StendhalDevelopmentBlog: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Ufizavipupu No edit summary |
imported>Madmetzger Undo revision 11788 by Ufizavipupu (Talk) spam |
||
| Line 1: | Line 1: | ||
| ⚫ | |||
---- |
|||
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> |
|||
---- |
|||
=[http://ebytery.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]= |
|||
---- |
|||
=[http://ebytery.co.cc CLICK HERE]= |
|||
---- |
|||
</div> |
|||
| ⚫ | |||
== Year 2009 == |
== Year 2009 == |
||
'''Database maintenance''' |
'''Database maintenance'''<br/> |
||
We are going to convert all MySQL tables from MyIsam to InnoDB. MyIsam is the default table engine in MySQL but it does not support transactions which sporadically leads to failed account creations. Several database operations are not possible at the moment because MyIsam always locks the complete table for concurrent access which in turn causes huge lag in game. |
We are going to convert all MySQL tables from MyIsam to InnoDB. MyIsam is the default table engine in MySQL but it does not support transactions which sporadically leads to failed account creations. Several database operations are not possible at the moment because MyIsam always locks the complete table for concurrent access which in turn causes huge lag in game. |
||
--[[User:Hendrik Brummermann|Hendrik Brummermann]] 10:30, 17 August 2009 (UTC) |
--[[User:Hendrik Brummermann|Hendrik Brummermann]] 10:30, 17 August 2009 (UTC) |
||
'''Hudson used for continuous integration''' |
'''Hudson used for continuous integration'''<br/> |
||
Since this summer we use hudson for regular building of stendhal. You can find it [http://stendhal.game-host.org/hudson here]. A documentation on how to configure hudson is placed [[HudsonTestServer|here]] in the wiki. |
Since this summer we use hudson for regular building of stendhal. You can find it [http://stendhal.game-host.org/hudson here]. A documentation on how to configure hudson is placed [[HudsonTestServer|here]] in the wiki. |
||
--[[User:Madmetzger|Madmetzger]] 19:44, 10 September 2009 (UTC) |
--[[User:Madmetzger|Madmetzger]] 19:44, 10 September 2009 (UTC) |
||
<br/><br/> |
|||
'''NPC available on the web''' |
'''NPC available on the web'''<br/> |
||
Information and pictures of NPCs are now available on the [http://stendhal.game-host.org/?id=content/game/npcs website]. It is now possible to include information and pictures of NPC (like |
Information and pictures of NPCs are now available on the [http://stendhal.game-host.org/?id=content/game/npcs website]. It is now possible to include information and pictures of NPC (like <npc>Margaret</npc>) into the wiki as well. Thanks to Hamtaro, most of the quests on the StendhalQuests page already contain such popup. |
||
--[[User:Hendrik Brummermann|Hendrik Brummermann]] 10:30, 2 June 2009 (UTC) |
--[[User:Hendrik Brummermann|Hendrik Brummermann]] 10:30, 2 June 2009 (UTC) |
||
| Line 27: | Line 19: | ||
== Year 2008 == |
== Year 2008 == |
||
'''[[User:Hendrik Brummermann|Hendrik Brummermann]], 20 Sep. 2008''' |
'''[[User:Hendrik Brummermann|Hendrik Brummermann]], 20 Sep. 2008'''<br> |
||
The wiki is now hosted on the game server. Apart from it now being much faster and more responsive it allows us to integrate it with the normal game server web site and the game itself. As a first step it is now possible to include data about creatures (like |
The wiki is now hosted on the game server. Apart from it now being much faster and more responsive it allows us to integrate it with the normal game server web site and the game itself. As a first step it is now possible to include data about creatures (like <creature>bear|bears</creature>), items (like the mighty <item>rod of the gm</item>) and players (like the dutiful <player>postman</player>). Have a look at the test page [[Sandbox/StendhalDataInclude Test]] for more details. |
||
'''[[User:Kymara|Kymara]], 20 June 2008''' |
'''[[User:Kymara|Kymara]], 20 June 2008'''<br> |
||
We got the http://stendhal.game-host.org/ working with live game data from the server. Players love looking up the stats of other players! The new Hall of Fame categories have been well received too. Players can login and change their password, before this could only be done through mysql, i.e. it needed a server admin. Oh, and ignore what I thought below about the News and Events - I was confused. We fiddled the permissions and now *game* admins of adminlevel |
We got the http://stendhal.game-host.org/ working with live game data from the server. Players love looking up the stats of other players! The new Hall of Fame categories have been well received too. Players can login and change their password, before this could only be done through mysql, i.e. it needed a server admin. Oh, and ignore what I thought below about the News and Events - I was confused. We fiddled the permissions and now *game* admins of adminlevel >= 400 can login and edit the News, Events, etc. This is great, it means we can easily announce raids and meetings. We also decided to add the detail of 'Server time' to the website to make it easier to specify what time any event occurs. |
||
We're experimenting with a new planning tool called plone. At the moment we're using it to decide what should be in the next release, 0.69. It's at http://stendhalxplanner.homelinux.net/ though please note only logged in users with sufficient permissions set can really see the plans. |
We're experimenting with a new planning tool called plone. At the moment we're using it to decide what should be in the next release, 0.69. It's at http://stendhalxplanner.homelinux.net/ though please note only logged in users with sufficient permissions set can really see the plans. |
||
'''--[[User:Kymara|Kymara]], 12 March 2008''' |
'''--[[User:Kymara|Kymara]], 12 March 2008'''<br> |
||
We recently appeared on the front page of [http://sourceforge.net sf.net]!!! |
We recently appeared on the front page of [http://sourceforge.net sf.net]!!! |
||
Our [http://sourceforge.net/forum/forum.php?forum_id=785542 news article] for the release of 0.67 was featured as a project news. If you go to [http://sourceforge.net/news/index.php?group_id=0 the news headline summary] and then click Older headlines you will find us. |
Our [http://sourceforge.net/forum/forum.php?forum_id=785542 news article] for the release of 0.67 was featured as a project news. If you go to [http://sourceforge.net/news/index.php?group_id=0 the news headline summary] and then click Older headlines you will find us. |
||
| Line 41: | Line 33: | ||
Over the last year we've been consistently in the top 20 of [http://sourceforge.net/top/mostactive.php?type=week Most Active Projects] (out of 170,000 projects) per week. Congrats all! |
Over the last year we've been consistently in the top 20 of [http://sourceforge.net/top/mostactive.php?type=week Most Active Projects] (out of 170,000 projects) per week. Congrats all! |
||
'''--[[User:Kymara|Kymara]], 4 March 2008''' |
'''--[[User:Kymara|Kymara]], 4 March 2008'''<br> |
||
The release of 0.67 was a success, with some nice new quests and maps. Players have adjusted well to the removal of underscores in item and creature names. The new introduction quest and tutorials has also been well received, certainly there are less clueless newbies around. |
The release of 0.67 was a success, with some nice new quests and maps. Players have adjusted well to the removal of underscores in item and creature names. The new introduction quest and tutorials has also been well received, certainly there are less clueless newbies around. |
||
| Line 48: | Line 40: | ||
As for the game itself, map making has been slowed down because the server is already at the threshold of what it can handle in the buildPerceptions phase. This means it is preferable not to add new instances of creatures or zones. I have been culling some rats and other weak creatures from areas which are not highly populated by newbies - after all these weak creatures take as much CPU as stronger ones (of the same size.) Still, I feel creativity is being curbed. Contributors tend to want to make new quests and so on for new zones rather than adding NPCs to old ones. mental note: do what you can to encourage development of existing zones. |
As for the game itself, map making has been slowed down because the server is already at the threshold of what it can handle in the buildPerceptions phase. This means it is preferable not to add new instances of creatures or zones. I have been culling some rats and other weak creatures from areas which are not highly populated by newbies - after all these weak creatures take as much CPU as stronger ones (of the same size.) Still, I feel creativity is being curbed. Contributors tend to want to make new quests and so on for new zones rather than adding NPCs to old ones. mental note: do what you can to encourage development of existing zones. |
||
'''--[[User:MartinFuchs|Martin Fuchs]], 1 January 2008''' |
'''--[[User:MartinFuchs|Martin Fuchs]], 1 January 2008'''<br> |
||
Work is going on to make conversation with virtual in game characters (NPCs) more flexible. Previously NPCs could only understand a very limited amount of predefined commands like for example |
Work is going on to make conversation with virtual in game characters (NPCs) more flexible. Previously NPCs could only understand a very limited amount of predefined commands like for example "buy banana". They should also be capable to understand sentences, which are worded in a more natural way of language. |
||
Currently (in release 0.65) the server code can already parse expressions containing verbal amounts with singular and plural nouns like |
Currently (in release 0.65) the server code can already parse expressions containing verbal amounts with singular and plural nouns like "buy two bananas". |
||
The next stage of conversation parser will also be able to understand sentences like |
The next stage of conversation parser will also be able to understand sentences like "Can you give me three bananas, please?". To achieve this, it will be based on a list known words with associated word types. If an user speaks to a NPC, the sentences are parsed into grammatical expressions like "SUBJECT VERB OBJECT" and matched with predefined expressions to model the character response. |
||
(see also the related [http://sourceforge.net/tracker/index.php?func=detail& |
(see also the related [http://sourceforge.net/tracker/index.php?func=detail&aid=1851849&group_id=1111&atid=973767 Developer Track entry].) |
||
== Year 2007 == |
== Year 2007 == |
||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 28 December 2007''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 28 December 2007'''<br> |
||
We had bug with the banks which allowed item duplication. Unfortunately this happened during the Christmas holidays so we could not fix it immediately but needed to deactivate the banks as an interim solution. The bugs have been fixed now and we implemented an item log which makes it very easy to detect abusing of bug like this in the future even if the duplicated items are handed to socket puppet accounts. |
We had bug with the banks which allowed item duplication. Unfortunately this happened during the Christmas holidays so we could not fix it immediately but needed to deactivate the banks as an interim solution. The bugs have been fixed now and we implemented an item log which makes it very easy to detect abusing of bug like this in the future even if the duplicated items are handed to socket puppet accounts. |
||
'''--[[User:Kymara|Kymara]] 02:50, 19 December 2007 (PST)''' |
'''--[[User:Kymara|Kymara]] 02:50, 19 December 2007 (PST)'''<br> |
||
We had a meeting for developers and contributors, see [[ArianneMeeting200712]] |
We had a meeting for developers and contributors, see [[ArianneMeeting200712]] |
||
'''--durkham / [[User:Hendrik Brummermann|Hendrik Brummermann]], 14 December 2007''' |
'''--durkham / [[User:Hendrik Brummermann|Hendrik Brummermann]], 14 December 2007'''<br> |
||
We did some automatic code cleanup and improved the package structure. This broke compatibility of server.ini (which you can fix as described in this [http://sourceforge.net/forum/forum.php?thread_id=1892910& |
We did some automatic code cleanup and improved the package structure. This broke compatibility of server.ini (which you can fix as described in this [http://sourceforge.net/forum/forum.php?thread_id=1892910&forum_id=3192 forum posting].) It was, however, a good time to do it now, because the ini-file needs adjustment anyway. To make use of the zone-storage feature (see last post) we need to provide our own StendhalRPObjectFactory and cannot use the default one from Marauroa anymore. |
||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 13 December 2007''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 13 December 2007'''<br> |
||
I have started to extend Stendhal to make use of the new persistent zone storage feature of Marauroa 2.0. I am currently trying to understand it and polish some rough edges based on the prototype of ArrestWarrants. So that it will be possible of jail players after they logged out and more important to set them free again even in case the server is restarted. I picked this example because it seems to be the easiest one; not because there is so much social trouble that we need this feature. So stay tuned, once we have a working prototype lots of new things will be possible. |
I have started to extend Stendhal to make use of the new persistent zone storage feature of Marauroa 2.0. I am currently trying to understand it and polish some rough edges based on the prototype of ArrestWarrants. So that it will be possible of jail players after they logged out and more important to set them free again even in case the server is restarted. I picked this example because it seems to be the easiest one; not because there is so much social trouble that we need this feature. So stay tuned, once we have a working prototype lots of new things will be possible. |
||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 12 December 2007''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]], 12 December 2007'''<br> |
||
Players are now automatically saved every 10 minutes. So in the rare case of a server crash, only little progress will be lost. |
Players are now automatically saved every 10 minutes. So in the rare case of a server crash, only little progress will be lost. |
||
'''--[[User:Kymara|kymara]] 17:35, 12 October 2007 (PDT)''' |
'''--[[User:Kymara|kymara]] 17:35, 12 October 2007 (PDT)'''<br> |
||
An immense amount of work has been done making new maps and creatures recently. One of the new maps was a big city with many houses and these are available for players to buy. Having houses meant it was possible to open up the Pets feature to players, since now they have a safe place to leave their pet when they do not want it with them. |
An immense amount of work has been done making new maps and creatures recently. One of the new maps was a big city with many houses and these are available for players to buy. Having houses meant it was possible to open up the Pets feature to players, since now they have a safe place to leave their pet when they do not want it with them. |
||
| Line 85: | Line 77: | ||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 01:27, 4 August 2007 (PDT)''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 01:27, 4 August 2007 (PDT)'''<br> |
||
Most of the developers have started to backport some new maps and creatures from 0.70 to 0.62 so that we will have a new release soon. It has been delayed because we had a hardware failure which caused the database to get destroyed and we needed some time to restore it. |
Most of the developers have started to backport some new maps and creatures from 0.70 to 0.62 so that we will have a new release soon. It has been delayed because we had a hardware failure which caused the database to get destroyed and we needed some time to restore it. |
||
| Line 91: | Line 83: | ||
'''--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 07:36, 10 July 2007 (PDT)''' |
'''--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 07:36, 10 July 2007 (PDT)'''<br> |
||
I have fixed the memory leak that was caused by a bug on the JVM. |
I have fixed the memory leak that was caused by a bug on the JVM. |
||
At the same time and in the previously days too I have managed to fix several problem existing on server side: |
At the same time and in the previously days too I have managed to fix several problem existing on server side: |
||
| Line 100: | Line 92: | ||
'''--[[User:Seather|Seather]] 01:42, 4 July 2007 (PDT)''' |
'''--[[User:Seather|Seather]] 01:42, 4 July 2007 (PDT)'''<br> |
||
Miguel recently spent a big chunk of the day modifying the HEAD branch of Stendhal to use the newest version of Marauroa, 2.0. In order to test it you need to drop all the tables in your db and generate a new ini (games.stendhal.server.GenerateINI) |
Miguel recently spent a big chunk of the day modifying the HEAD branch of Stendhal to use the newest version of Marauroa, 2.0. In order to test it you need to drop all the tables in your db and generate a new ini (games.stendhal.server.GenerateINI)<br> |
||
[23:54] |
[23:54] <mblanch> Everything is ported to Stendhal HEAD now, it should be working...<br> |
||
[2:15] |
[2:15] <mblanch> PLEASE report any bug you may find. |
||
'''--[[User:Kymara|kymara]] 16:20, 2 July 2007 (PDT)''' |
'''--[[User:Kymara|kymara]] 16:20, 2 July 2007 (PDT)'''<br> |
||
<b>Non-experts view on some recent and not so recent new features</b>: |
|||
Although 0.60 didn't bring the new RP System or Marauroa 2.0, as some had hoped, the new release was packed with features and quests. One of the features which made the most difference was to introduce a rate for weapons. The rate is a whole number from 1-15+. Low numbers mean fast rate jab jab jab while high numbers (for say a heavy weapon) mean you can hit only very slowly. Miguel came up with the idea and said it was very easy to implement. The quest of Marriage became possible, which I think must be a first for an RPG? When you are married, you and your spouse can be together whenever you like, with the help of a magic teleporting ring. The quest itself involves all the frills - wedding in a church, honeymoon in a hotel... I (kymara) worked on this, following specifications and ideas from lenocas. |
Although 0.60 didn't bring the new RP System or Marauroa 2.0, as some had hoped, the new release was packed with features and quests. One of the features which made the most difference was to introduce a rate for weapons. The rate is a whole number from 1-15+. Low numbers mean fast rate jab jab jab while high numbers (for say a heavy weapon) mean you can hit only very slowly. Miguel came up with the idea and said it was very easy to implement. The quest of Marriage became possible, which I think must be a first for an RPG? When you are married, you and your spouse can be together whenever you like, with the help of a magic teleporting ring. The quest itself involves all the frills - wedding in a church, honeymoon in a hotel... I (kymara) worked on this, following specifications and ideas from lenocas. |
||
| Line 116: | Line 108: | ||
'''--[[User:Seather|Seather]] 15:19, 1 July 2007 (PDT)''' |
'''--[[User:Seather|Seather]] 15:19, 1 July 2007 (PDT)'''<br> |
||
* Code Freeze (bug fixes only) has be in effect for about a week(?). |
* Code Freeze (bug fixes only) has be in effect for about a week(?). |
||
* Plan is to fix significant bugs then Miguel will port stendhal to Marauroa 2.0; He has already ported an out of date branch to 2.0. |
* Plan is to fix significant bugs then Miguel will port stendhal to Marauroa 2.0; He has already ported an out of date branch to 2.0. |
||
| Line 125: | Line 117: | ||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 23:44, 1 May 2007 (PDT)''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 23:44, 1 May 2007 (PDT)'''<br> |
||
We put some infrastructure in place to monitor memory usage (which has been the cause of recent lags). Gripnir fixed a bug which prevented the daily mayor quest to accept kills done in deathmatch. |
We put some infrastructure in place to monitor memory usage (which has been the cause of recent lags). Gripnir fixed a bug which prevented the daily mayor quest to accept kills done in deathmatch. |
||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 22 April 2007''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 22 April 2007'''<br> |
||
We had a developer (contributor) meeting. Have a look at [[ArianneMeeting200704]] |
We had a developer (contributor) meeting. Have a look at [[ArianneMeeting200704]] |
||
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 14 March 2007''' |
'''--[[User:Hendrik Brummermann|Hendrik Brummermann]] 14 March 2007'''<br> |
||
Today we are the 3rd activest project (of 140,000) on SourceForge which get us to their front page. |
Today we are the 3rd activest project (of 140,000) on SourceForge which get us to their front page. |
||
<b>Important Note</b>: This page is not kept up to date, and is missing many months of information, as of 12 April 2007 (Not 2006) this project is very active. Please add your comments to this page. |
|||
== Year 2006 == |
== Year 2006 == |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 00:01, 26 April 2006 (PDT)</b><br> |
|||
Seems that actual way of working with NPC has reach its limit, as server already takes 21 ms of turn time with no players. We need a new way of running NPC or decouple logic so it is not run once per turn. |
Seems that actual way of working with NPC has reach its limit, as server already takes 21 ms of turn time with no players. We need a new way of running NPC or decouple logic so it is not run once per turn. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 00:42, 19 April 2006 (PDT)</b><br> |
|||
Now I will work on fixing bugs, because Sourceforge bug tracker already owns around 130 of them. |
Now I will work on fixing bugs, because Sourceforge bug tracker already owns around 130 of them. |
||
Most of the features are there, the game needs a serious rebalancing so monsters are not so easy nor so stupid as they are now. |
Most of the features are there, the game needs a serious rebalancing so monsters are not so easy nor so stupid as they are now. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 00:44, 22 March 2006 (PST)</b><br> |
|||
I have added banks and it works! :) Yay! |
I have added banks and it works! :) Yay! |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 04:00, 16 March 2006 (PST)</b><br> |
|||
I have added doors and keys to CVS. |
I have added doors and keys to CVS. |
||
Also I have started to work in our next step AI that will help us create different profiles of monsters, so that not all of them behave on the same way. Right now green dragon drops a key on death if the user need it and lich will summon on some occasions zombies to help him fight you. |
Also I have started to work in our next step AI that will help us create different profiles of monsters, so that not all of them behave on the same way. Right now green dragon drops a key on death if the user need it and lich will summon on some occasions zombies to help him fight you. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 14:38, 11 March 2006 (PST)</b><br> |
|||
A new release, this time we fixed several issues and added new zones that I see are making the delight of our players :P. |
A new release, this time we fixed several issues and added new zones that I see are making the delight of our players :P.<br> |
||
We need to work a bit more on organizing stuff to ease content additions. It is going to be my priority. |
We need to work a bit more on organizing stuff to ease content additions. It is going to be my priority. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 03:43, 27 February 2006 (PST)</b><br> |
|||
I am balancing right now the monsters that exists and the new ones that I added. |
I am balancing right now the monsters that exists and the new ones that I added.<br> |
||
I am really thinking about an automatic tool as it is really time consuming. |
I am really thinking about an automatic tool as it is really time consuming. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 15:06, 22 February 2006 (PST)</b><br> |
|||
I have added several new features, mainly: |
I have added several new features, mainly: |
||
* Events API at client |
* Events API at client |
||
| Line 178: | Line 170: | ||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 00:55, 15 February 2006 (PST)</b><br> |
|||
I have added a very experimental support for Python startup script, so Stendhal can be configured fully using Python. If the result is possitive, we should think about porting actual XML system to Python. |
I have added a very experimental support for Python startup script, so Stendhal can be configured fully using Python. If the result is possitive, we should think about porting actual XML system to Python. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 02:41, 6 February 2006 (PST)</b><br> |
|||
Perception system has changed on CVS Marauroa, now we use around 60% less of bandwidth and make slots really private. |
Perception system has changed on CVS Marauroa, now we use around 60% less of bandwidth and make slots really private. |
||
There is still room for improvements though :) |
There is still room for improvements though :) |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 23:47, 25 January 2006 (PST)</b><br> |
|||
I have finally fixed the memory leak that was happening because of not closing Statements at JDBCPlayerDatabase class. |
I have finally fixed the memory leak that was happening because of not closing Statements at JDBCPlayerDatabase class. |
||
<b>--[[User:MiguelAngelBlanchLardin|MiguelAngelBlanchLardin]] 03:00, 23 January 2006 (PST)</b><br> |
|||
I announced the release of 0.43. |
I announced the release of 0.43.<br> |
||
From now, we are going to use this blog to post development news to you can have a look to what is going if you don't visit us at IRC |
From now, we are going to use this blog to post development news to you can have a look to what is going if you don't visit us at IRC |
||
| Line 198: | Line 190: | ||
see [[History]] |
see [[History]] |
||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
---- |
---- |
||