From c63e211cab5f7b7713d55c57c0ebb4d2495839af Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 14 Feb 2016 18:21:09 +0100 Subject: [PATCH 001/184] Fixed: Implements IPv6 in CInetAddress --- code/nel/include/nel/net/inet_address.h | 20 ++- code/nel/src/net/inet_address.cpp | 198 +++++++++++++++++++----- 2 files changed, 173 insertions(+), 45 deletions(-) diff --git a/code/nel/include/nel/net/inet_address.h b/code/nel/include/nel/net/inet_address.h index 5e8046b55..dcf5b3708 100644 --- a/code/nel/include/nel/net/inet_address.h +++ b/code/nel/include/nel/net/inet_address.h @@ -24,7 +24,9 @@ struct sockaddr_in; +struct sockaddr_in6; struct in_addr; +struct in6_addr; #ifdef NL_OS_WINDOWS @@ -89,17 +91,25 @@ public: /// Sets hostname and port (ex: www.nevrax.com:80) void setNameAndPort( const std::string& hostNameAndPort ); - /** Sets internal socket address directly (contents is copied). + /** Sets internal IPv4 socket address directly (contents is copied). * It also retrieves the host name if CInetAddress::RetrieveNames is true. */ void setSockAddr( const sockaddr_in* saddr ); + /** Sets internal IPv6 socket address directly (contents is copied). + * It also retrieves the host name if CInetAddress::RetrieveNames is true. + */ + void setSockAddr6( const sockaddr_in6* saddr6 ); + /// Returns if object (address and port) is valid bool isValid() const; - /// Returns internal socket address (read only) + /// Returns internal IPv4 socket address (read only) const sockaddr_in *sockAddr() const; + /// Returns internal IPv6 socket address (read only) + const sockaddr_in6 *sockAddr6() const; + /// Returns internal IP address uint32 internalIPAddress() const; @@ -140,9 +150,12 @@ public: protected: - /// Constructor with ip address, port=0 + /// Constructor with IPv4 address, port=0 CInetAddress( const in_addr *ip, const char *hostname = 0); + /// Constructor with IPv6 address, port=0 + CInetAddress( const in6_addr *ip, const char *hostname = 0); + /// Update _HostName from _SockAddr void updateHostName(); @@ -153,6 +166,7 @@ private: std::string _HostName; sockaddr_in *_SockAddr; + sockaddr_in6 *_SockAddr6; bool _Valid; }; diff --git a/code/nel/src/net/inet_address.cpp b/code/nel/src/net/inet_address.cpp index 9c3bb3984..45ff0c20e 100644 --- a/code/nel/src/net/inet_address.cpp +++ b/code/nel/src/net/inet_address.cpp @@ -27,6 +27,7 @@ #ifdef NL_OS_WINDOWS # include # include +# include // for Windows 2000 compatibility # include #elif defined NL_OS_UNIX @@ -58,20 +59,32 @@ bool CInetAddress::RetrieveNames = false; CInetAddress::CInetAddress() { init(); + + // IPv4 _SockAddr->sin_port = 0; // same as htons(0) memset( &_SockAddr->sin_addr, 0, sizeof(in_addr) ); // same as htonl(INADDR_ANY) + + // IPv6 + _SockAddr6->sin6_port = 0; + memset( &_SockAddr6->sin6_addr, 0, sizeof(in6_addr) ); // same as htonl(INADDR_ANY) } /* - * Constructor with ip address, port=0 + * Constructor with IPv4 address, port=0 */ CInetAddress::CInetAddress( const in_addr *ip, const char *hostname ) { init(); + + // IPv4 _SockAddr->sin_port = 0; memcpy( &_SockAddr->sin_addr, ip, sizeof(in_addr) ); + // invalid IPv6 + _SockAddr6->sin6_port = 0; + memset( &_SockAddr6->sin6_addr, 0, sizeof(in6_addr) ); + // get the host name to be displayed if(hostname) { @@ -81,6 +94,36 @@ CInetAddress::CInetAddress( const in_addr *ip, const char *hostname ) { updateHostName(); } + + _Valid = true; +} + + +/* + * Constructor with IPv6 address, port=0 + */ +CInetAddress::CInetAddress( const in6_addr *ip, const char *hostname ) +{ + init(); + + // IPv6 + _SockAddr6->sin6_port = 0; + memcpy( &_SockAddr6->sin6_addr, ip, sizeof(in6_addr) ); + + // invalid IPv4 + _SockAddr->sin_port = 0; + memset( &_SockAddr->sin_addr, 0, sizeof(in_addr) ); + + // get the host name to be displayed + if(hostname) + { + _HostName = hostname; + } + else + { + updateHostName(); + } + _Valid = true; } @@ -92,7 +135,20 @@ void CInetAddress::updateHostName() { char host[NI_MAXHOST]; - sint status = getnameinfo((struct sockaddr *) _SockAddr, sizeof (struct sockaddr), host, NI_MAXHOST, NULL, 0, NI_NUMERICSERV); + // if unable to resolve DNS, returns an error and use IP address instead + sint status = 1; + + // check if IPv4 is valid + if (_SockAddr->sin_addr.s_addr != 0) + { + // IPv4 + status = getnameinfo((struct sockaddr *) _SockAddr, sizeof (sockaddr_in), host, NI_MAXHOST, NULL, 0, NI_NUMERICSERV | NI_NAMEREQD); + } + else if (!IN6_IS_ADDR_UNSPECIFIED(&_SockAddr6->sin6_addr)) + { + // IPv6 + status = getnameinfo((struct sockaddr *) _SockAddr6, sizeof (sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICSERV | NI_NAMEREQD); + } if ( status ) { @@ -134,6 +190,7 @@ CInetAddress::CInetAddress( const CInetAddress& other ) init(); _HostName = other._HostName; memcpy( _SockAddr, other._SockAddr, sizeof( *_SockAddr ) ); + memcpy( _SockAddr6, other._SockAddr6, sizeof( *_SockAddr6 ) ); _Valid = other._Valid; } @@ -145,6 +202,7 @@ CInetAddress& CInetAddress::operator=( const CInetAddress& other ) { _HostName = other._HostName; memcpy( _SockAddr, other._SockAddr, sizeof( *_SockAddr ) ); + memcpy( _SockAddr6, other._SockAddr6, sizeof( *_SockAddr6 ) ); _Valid = other._Valid; return *this; } @@ -185,9 +243,15 @@ void CInetAddress::init() _Valid = false; + // IPv4 _SockAddr = new sockaddr_in; + memset(_SockAddr, 0, sizeof(_SockAddr)); _SockAddr->sin_family = AF_INET; - memset( _SockAddr->sin_zero, 0, 8 ); + + // IPv6 + _SockAddr6 = new sockaddr_in6; + memset(_SockAddr6, 0, sizeof(_SockAddr6)); + _SockAddr6->sin6_family = AF_INET6; } @@ -197,6 +261,7 @@ void CInetAddress::init() CInetAddress::~CInetAddress() { delete _SockAddr; + delete _SockAddr6; // _Valid = false; } @@ -225,12 +290,41 @@ void CInetAddress::setNameAndPort( const std::string& hostNameAndPort ) /* * Resolves a name */ -CInetAddress& CInetAddress::setByName( const std::string& hostName ) +CInetAddress& CInetAddress::setByName(const std::string& hostName) { - // Try to convert directly for addresses such as a.b.c.d - in_addr iaddr; - iaddr.s_addr = inet_addr( hostName.c_str() ); - if ( iaddr.s_addr == INADDR_NONE ) + // invalid IPv4 + memset(&_SockAddr->sin_addr, 0, sizeof(in_addr)); + + // invalid IPv6 + memset(&_SockAddr6->sin6_addr, 0, sizeof(in6_addr)); + + // Try to convert directly for addresses such as a.b.c.d and a:b:c:d:e:f:g:h + in_addr ipv4; + sint res = inet_pton(AF_INET, hostName.c_str(), &ipv4); + + if (res == 1) + { + // hostname is a valid IPv4 + memcpy(&_SockAddr->sin_addr, &ipv4, sizeof(in_addr)); + } + else + { + in6_addr ipv6; + res = inet_pton(AF_INET6, hostName.c_str(), &ipv6); + + if (res == 1) + { + // hostname is a valid IPv6 + memcpy(&_SockAddr6->sin6_addr, &ipv6, sizeof(in6_addr)); + } + } + + if (res == 1) + { + // use IPv4 or IPv6 as hostname + _HostName = hostName; + } + else { // Otherwise use the traditional DNS look-up struct addrinfo hints; @@ -249,6 +343,9 @@ CInetAddress& CInetAddress::setByName( const std::string& hostName ) throw ESocket( (string("Hostname resolution failed for ")+hostName).c_str() ); } + // hostname is valid, use it + _HostName = hostName; + struct addrinfo *p = res; // process all addresses @@ -260,20 +357,14 @@ CInetAddress& CInetAddress::setByName( const std::string& hostName ) // ipv4 struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr; - // convert the IP to a string - _HostName = string(inet_ntoa(ipv4->sin_addr)); memcpy( &_SockAddr->sin_addr, &ipv4->sin_addr, sizeof(in_addr) ); } else if (p->ai_family == AF_INET6) { // ipv6 - // TODO: modify class to be able to handle IPv6 + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; - // struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; - - // convert the IP to a string - // inet_ntop(p->ai_family, addr, ipstr, sizeof(ipstr)); - // memcpy( &_SockAddr->sin_addr, &ipv6->sin_addr, sizeof(in_addr) ); + memcpy( &_SockAddr6->sin6_addr, &ipv6->sin6_addr, sizeof(in6_addr) ); } // process next address @@ -283,11 +374,7 @@ CInetAddress& CInetAddress::setByName( const std::string& hostName ) // free the linked list freeaddrinfo(res); } - else - { - _HostName = hostName; - memcpy( &_SockAddr->sin_addr, &iaddr, sizeof(iaddr) ); - } + _Valid = true; return *this; } @@ -296,10 +383,10 @@ CInetAddress& CInetAddress::setByName( const std::string& hostName ) /* * Sets port */ -void CInetAddress::setPort( uint16 port ) +void CInetAddress::setPort(uint16 port) { - _SockAddr->sin_port = htons( port ); - + _SockAddr->sin_port = htons(port); + _SockAddr6->sin6_port = htons(port); } @@ -308,7 +395,10 @@ void CInetAddress::setPort( uint16 port ) */ void CInetAddress::setSockAddr( const sockaddr_in* saddr ) { - memcpy( _SockAddr, saddr, sizeof(*saddr) ); + memcpy(_SockAddr, saddr, sizeof(*saddr) ); + + // invalid IPv6 + memset(&_SockAddr6->sin6_addr, 0, sizeof(in6_addr)); // Get host name // Warning: when it can't find it, it take more than 4 seconds @@ -316,6 +406,28 @@ void CInetAddress::setSockAddr( const sockaddr_in* saddr ) { updateHostName(); } + + _Valid = true; +} + + +/* Sets internal socket address directly (contents is copied). + * It also retrieves the host name if CInetAddress::RetrieveNames is true. + */ +void CInetAddress::setSockAddr6( const sockaddr_in6* saddr6 ) +{ + memcpy( _SockAddr6, saddr6, sizeof(*saddr6) ); + + // invalid IPv4 + memset(&_SockAddr->sin_addr, 0, sizeof(in_addr)); + + // Get host name + // Warning: when it can't find it, it take more than 4 seconds + if ( CInetAddress::RetrieveNames ) + { + updateHostName(); + } + _Valid = true; } @@ -330,7 +442,7 @@ bool CInetAddress::isValid() const /* - * Returns internal socket address (read only) + * Returns internal IPv4 socket address (read only) */ const sockaddr_in *CInetAddress::sockAddr() const { @@ -338,6 +450,15 @@ const sockaddr_in *CInetAddress::sockAddr() const } +/* + * Returns internal IPv6 socket address (read only) + */ +const sockaddr_in6 *CInetAddress::sockAddr6() const +{ + return _SockAddr6; +} + + /* * Returns internal IP address */ @@ -383,10 +504,13 @@ uint32 CInetAddress::internalNetAddress() const */ string CInetAddress::ipAddress() const { - /*stringstream ss; // or use inet_ntoa - ss << inet_ntoa ( _SockAddr->sin_addr ); - return ss.str();*/ - const char *name = inet_ntoa ( _SockAddr->sin_addr ); + // longer size is IPv6 + char straddr[INET6_ADDRSTRLEN]; + const char *name = inet_ntop(AF_INET, &_SockAddr->sin_addr, straddr, INET_ADDRSTRLEN); + + // IPv4 is invalid, return IPv6 + if (name == NULL || strcmp(name, "0.0.0.0") == 0) name = inet_ntop(AF_INET6, &_SockAddr6->sin6_addr, straddr, INET6_ADDRSTRLEN); + return name ? string (name) : ""; } @@ -414,9 +538,6 @@ uint16 CInetAddress::port() const */ std::string CInetAddress::asString() const { -// stringstream ss; -// ss << hostName() << ":" << port() << " (" << ipAddress() << ")"; -// return ss.str(); return hostName() + ":" + NLMISC::toString(port()) + " (" + ipAddress() + ")"; } @@ -426,9 +547,6 @@ std::string CInetAddress::asString() const */ std::string CInetAddress::asIPString() const { -// stringstream ss; -// ss << ipAddress() << ":" << port(); -// return ss.str(); return ipAddress() + ":" + NLMISC::toString(port()); } @@ -537,13 +655,9 @@ std::vector CInetAddress::localAddresses() else if (p->ai_family == AF_INET6) { // ipv6 - // TODO: modify class to be able to handle IPv6 + struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; - // struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr; - - // convert the IP to a string - // inet_ntop(p->ai_family, addr, ipstr, sizeof(ipstr)); - // memcpy( &_SockAddr->sin_addr, &ipv6->sin_addr, sizeof(in_addr) ); + vect.push_back( CInetAddress( &ipv6->sin6_addr, localhost ) ); } // process next address From 588b832ddbcd5cb581e4568024518201cc23970f Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 14 Feb 2016 19:16:22 +0100 Subject: [PATCH 002/184] Fixed: Set _WIN32_WINNT used by WinSock for IPv6 --- code/nel/src/net/stdnet.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/code/nel/src/net/stdnet.h b/code/nel/src/net/stdnet.h index b09df1c4f..16e87c9f8 100644 --- a/code/nel/src/net/stdnet.h +++ b/code/nel/src/net/stdnet.h @@ -14,17 +14,24 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +#ifndef NL_STDNET_H +#define NL_STDNET_H + #include "nel/misc/types_nl.h" #ifdef NL_OS_WINDOWS -# define _WIN32_WINDOWS 0x0500 +# define WIN32_LEAN_AND_MEAN +# define _WIN32_WINDOWS 0x0500 +# ifndef _WIN32_WINNT +# define _WIN32_WINNT 0x0500 +# endif # ifndef NL_COMP_MINGW -# define WINVER 0x0500 +# define WINVER 0x0500 # define NOMINMAX # endif -# include -# include -#endif // NL_OS_WINDOWS +# include +# include +#endif #include #include @@ -49,7 +56,6 @@ #include #include "nel/misc/debug.h" - #include "nel/misc/common.h" #include "nel/misc/stream.h" #include "nel/misc/time_nl.h" @@ -57,3 +63,5 @@ #include "nel/misc/variable.h" #include "nel/misc/mem_stream.h" #include "nel/misc/hierarchical_timer.h" + +#endif From 395df606c0d81293c16bf0c0d0026351b1556340 Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 14 Feb 2016 19:58:42 +0100 Subject: [PATCH 003/184] Fixed: Windows XP doesn't support inet_pton and inet_ntop --- code/nel/src/net/inet_address.cpp | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/code/nel/src/net/inet_address.cpp b/code/nel/src/net/inet_address.cpp index 45ff0c20e..79224b1ee 100644 --- a/code/nel/src/net/inet_address.cpp +++ b/code/nel/src/net/inet_address.cpp @@ -30,6 +30,84 @@ # include // for Windows 2000 compatibility # include + +#if !defined(NTDDI_VISTA) || (NTDDI_VERSION < NTDDI_VISTA) + +// inet_pton and inet_ntop not defined in winsock DLL before Vista + +// taken from http://stackoverflow.com/questions/13731243/what-is-the-windows-xp-equivalent-of-inet-pton-or-inetpton +int inet_pton(int af, const char *src, void *dst) +{ + struct sockaddr_storage ss; + int size = sizeof(ss); + char src_copy[INET6_ADDRSTRLEN+1]; + + ZeroMemory(&ss, sizeof(ss)); + // stupid non-const API + strncpy (src_copy, src, INET6_ADDRSTRLEN+1); + src_copy[INET6_ADDRSTRLEN] = 0; + + if (WSAStringToAddress(src_copy, af, NULL, (struct sockaddr *)&ss, &size) == 0) + { + switch(af) + { + case AF_INET: + *(struct in_addr *)dst = ((struct sockaddr_in *)&ss)->sin_addr; + return 1; + + case AF_INET6: + *(struct in6_addr *)dst = ((struct sockaddr_in6 *)&ss)->sin6_addr; + return 1; + } + } + + return 0; +} + +const char *inet_ntop(int af, const void *src, char *dst, socklen_t size) +{ + struct sockaddr_storage ss; + unsigned long s = size; + + ZeroMemory(&ss, sizeof(ss)); + ss.ss_family = af; + + switch(af) + { + case AF_INET: + ((struct sockaddr_in *)&ss)->sin_addr = *(struct in_addr *)src; + break; + + case AF_INET6: + ((struct sockaddr_in6 *)&ss)->sin6_addr = *(struct in6_addr *)src; + break; + + default: + return NULL; + } + + // cannot directly use &size because of strict aliasing rules + return WSAAddressToString((struct sockaddr *)&ss, sizeof(ss), NULL, dst, &s) == 0 ? dst : NULL; +} + +BOOLEAN IN6_IS_ADDR_UNSPECIFIED(CONST IN6_ADDR *a) +{ + // + // We can't use the in6addr_any variable, since that would + // require existing callers to link with a specific library. + // + return (BOOLEAN)((a->s6_words[0] == 0) && + (a->s6_words[1] == 0) && + (a->s6_words[2] == 0) && + (a->s6_words[3] == 0) && + (a->s6_words[4] == 0) && + (a->s6_words[5] == 0) && + (a->s6_words[6] == 0) && + (a->s6_words[7] == 0)); +} + +#endif + #elif defined NL_OS_UNIX # include # include From ea37b61710d3b00a43045ec8c437cb935cac6956 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 15 Feb 2016 11:54:28 +0100 Subject: [PATCH 004/184] Fixed: Warning (wrong size) --- code/nel/src/net/inet_address.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/nel/src/net/inet_address.cpp b/code/nel/src/net/inet_address.cpp index 79224b1ee..9dc7f5d00 100644 --- a/code/nel/src/net/inet_address.cpp +++ b/code/nel/src/net/inet_address.cpp @@ -323,12 +323,12 @@ void CInetAddress::init() // IPv4 _SockAddr = new sockaddr_in; - memset(_SockAddr, 0, sizeof(_SockAddr)); + memset(_SockAddr, 0, sizeof(sockaddr_in)); _SockAddr->sin_family = AF_INET; // IPv6 _SockAddr6 = new sockaddr_in6; - memset(_SockAddr6, 0, sizeof(_SockAddr6)); + memset(_SockAddr6, 0, sizeof(sockaddr_in6)); _SockAddr6->sin6_family = AF_INET6; } From 6dcae90a4cc523444c5a2b7cc6ae1c2e4a8426d7 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 15 Feb 2016 12:07:49 +0100 Subject: [PATCH 005/184] Changed: Add other parameters for client --- code/ryzom/client/src/client.cpp | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 5ca1ef4b4..1cb3fb3c9 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -17,7 +17,6 @@ #include "stdpch.h" -#include "user_agent.h" ////////////// // INCLUDES // @@ -45,7 +44,6 @@ //#define TEST_CRASH_COUNTER #ifdef TEST_CRASH_COUNTER -#include "nel/net/email.h" #undef FINAL_VERSION #define FINAL_VERSION 1 #endif // TEST_CRASH_COUNTER @@ -61,6 +59,7 @@ #include "release.h" #include "client_cfg.h" #include "far_tp.h" +#include "user_agent.h" /////////// // USING // @@ -177,6 +176,12 @@ int main(int argc, char **argv) Args.addAdditionalArg("password", "Password to use", true, false); Args.addAdditionalArg("shard_id", "Shard ID to use", true, false); +#ifdef TEST_CRASH_COUNTER + Args.addArg("", "crash", "", "Crash client before init"); + Args.addArg("", "break", "", "Create a break point"); + Args.addArg("", "release", "", "Crash client after init"); +#endif // TEST_CRASH_COUNTER + #ifdef NL_OS_WINDOWS if (!Args.parse(cmdline)) return 1; #else @@ -214,6 +219,13 @@ int main(int argc, char **argv) CPath::setCurrentPath(currentPath); } +#ifdef TEST_CRASH_COUNTER + if (Args.haveLongArg("crash")) + { + volatile int toto = *(int*)0; + } +#endif // TEST_CRASH_COUNTER + #ifdef NL_OS_MAC struct rlimit rlp, rlp2, rlp3; @@ -233,19 +245,8 @@ int main(int argc, char **argv) #if defined(NL_OS_WINDOWS) -#if FINAL_VERSION - //initCrashReport (); -#endif // FINAL_VERSION - - // Set default email value for reporting error #ifdef TEST_CRASH_COUNTER - // initCrashReport (); - // setReportEmailFunction ((void*)sendEmail); - // setDefaultEmailParams ("smtp.nevrax.com", "", "hulud@nevrax.com"); - - if (string(cmdline) == "/crash") - volatile int toto = *(int*)0; - if (string(cmdline) == "/break") + if (Args.haveLongArg("break")) { __debugbreak(); } @@ -406,8 +407,10 @@ int main(int argc, char **argv) //CFile::createEmptyFile(getLogDirectory() + "during_release"); #ifdef TEST_CRASH_COUNTER - if (string(cmdline) == "/release") + if (Args.haveLongArg("release")) + { volatile int toto = *(int*)0; + } #endif // TEST_CRASH_COUNTER // Final release From 544aaa25107d21f909ce32f22c4f59d4f01f589e Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 15 Feb 2016 12:08:55 +0100 Subject: [PATCH 006/184] Changed: We're now using crash_report to send reports --- code/ryzom/client/src/init.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index c0df71a43..a203614e4 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -896,10 +896,6 @@ void prelogInit() FPU_CHECKER_ONCE - // Set default email value for reporting error - // setReportEmailFunction ((void*)sendEmail); - // setDefaultEmailParams ("smtp.nevrax.com", "", "ryzombug@nevrax.com"); - // create the save dir. if (!CFile::isExists("save")) CFile::createDirectory("save"); From 187e93e5c69656b4023c48b6bf866cbcdea43c62 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 15 Feb 2016 16:46:29 +0100 Subject: [PATCH 007/184] Changed: Updated translations --- .../ryzom/tools/translation/translated/de.uxt | 3756 ++++++++--------- .../translation/translated/item_words_de.txt | Bin 3089850 -> 2790406 bytes .../translated/outpost_words_de.txt | Bin 250016 -> 248896 bytes .../translated/sbrick_words_de.txt | Bin 2155960 -> 2155990 bytes .../translated/sphrase_words_de.txt | Bin 1785314 -> 1785450 bytes .../translation/translated/title_words_de.txt | Bin 323756 -> 323794 bytes 6 files changed, 1870 insertions(+), 1886 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index 56d0034f2..3ee0ddb6b 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -24,15 +24,15 @@ ArrivedGreatDesert [Du bist östlich der Vitka-Oase in der großen Wüste angeko // HASH_VALUE C6B78C97E7522A31 // INDEX 6 -ArrivedPureWater [Du bist im Dorf Etoole angekommen, im Lande des reinen Wassers.] +ArrivedPureWater [Du bist im Dorf Etoole angekommen, im Land des reinen Wassers.] // HASH_VALUE 85F15671AEAF648A // INDEX 7 -NoCastOnMount [Zauber sprechen ist unmöglich beim Reiten.] +NoCastOnMount [Zauber zu sprechen ist beim Reiten unmöglich.] // HASH_VALUE 24F2B967C4563470 // INDEX 8 -NoCreateOnMount [Zauber erschaffen ist unmöglich beim Reiten.] +NoCreateOnMount [Zauber zu erschaffen ist beim Reiten unmöglich.] // HASH_VALUE 83BA2A1EAEFC68ED // INDEX 9 @@ -88,11 +88,11 @@ uiRange [Reichweite] // HASH_VALUE AF06A35FABD45A88 // INDEX 22 -uittLead [Chef der Gruppe] +uittLead [Leiter der Gruppe] // HASH_VALUE 31DAA87FA2275372 // INDEX 23 -uittSuccessor [Vize-Chef der Gruppe] +uittSuccessor [Vize-Leiter der Gruppe] // HASH_VALUE 2C99B47EDE971C91 // INDEX 24 @@ -112,7 +112,7 @@ uiPlayerTitle [TITEL: ] // HASH_VALUE 4450141844501418 // INDEX 28 -uiFameTitle [RUHM] +uiFameTitle [Ruhm] // HASH_VALUE 9CE3947E9A96E7AC // INDEX 29 @@ -124,7 +124,7 @@ RangeFighter [Fernkämpfer] // HASH_VALUE D658F468E4B6BC8C // INDEX 31 -AttackCaster [Kampfzauberer] +AttackCaster [Kampfmagier] // HASH_VALUE 57F8006E22E6F080 // INDEX 32 @@ -248,7 +248,7 @@ SapCristal [Sap-Kristall] // HASH_VALUE A85654A521A9586D // INDEX 62 -SandCaravanner [Händler der Wüste] +SandCaravanner [Dünen-Karavanenführer] // HASH_VALUE EA1C14386ED894BC // INDEX 63 @@ -260,7 +260,7 @@ Steward [Verwalter] // HASH_VALUE A8C8806C26D5C489 // INDEX 65 -Hawker [Fliegender Händler] +Hawker [reisender Händler] // HASH_VALUE 6A32BC93D54A13A4 // INDEX 66 @@ -276,7 +276,7 @@ harvester [Rohstoffsammler] // HASH_VALUE 6229E47D20D26B98 // INDEX 69 -attack_magician [Kampfzauberer] +attack_magician [Kampfmagier] // HASH_VALUE 2498B07FA0E287A1 // INDEX 70 @@ -301,7 +301,7 @@ LakeMaster [Meister der Seen] // HASH_VALUE DA9AB6B3E228F4CD // INDEX 75 agp_trouble [Dem Treiber war es nicht möglich, AGP-Speicher zu belegen, was zu Funktions- und Anzeigeproblemen führen kann.\n - Möchtest Du mehr Details?] + Möchtest Du mehr Details erfahren?] // HASH_VALUE 5A56887FA8E007AF // INDEX 76 @@ -325,7 +325,7 @@ can_t_create_a_fullscreen_display [Vollbildmodus kann nicht eingestellt werden] // HASH_VALUE 701C9488701C9488 // INDEX 81 -bits [bits] +bits [Bits] // HASH_VALUE 2C48D0B42C48D0B4 // INDEX 82 @@ -333,7 +333,7 @@ ___faber_skill_sep___ [--------------------------------] // HASH_VALUE 60DC943460DC9434 // INDEX 83 -Misc [Misc] +Misc [Verschiedenes] // HASH_VALUE 4871A044C7026C0D // INDEX 84 @@ -349,31 +349,31 @@ GenericCompetences [ALLGEMEINE FERTIGKEITEN] // HASH_VALUE 50D1BC36BF231F2D // INDEX 87 -HarvestCompetences [Rohstoffgewinnungsfertigkeiten] +HarvestCompetences [ROHSTOFFERNTE - FERTIGKEITEN] // HASH_VALUE C4E184020E01DB03 // INDEX 88 -MagicAlterationCompetences [MAGIE-VERÄNDERUNGSFERTIGKEITEN] +MagicAlterationCompetences [VERÄNDERUNGSMAGIE - FERTIGKEITEN] // HASH_VALUE 8C22400D3F10F7E5 // INDEX 89 -MagicAttackCompetences [MAGIE-ANGRIFFSFERTIGKEITEN] +MagicAttackCompetences [ANGRIFFSMAGIE - FERTIGKEITEN] // HASH_VALUE C9D1CB27C7421A21 // INDEX 90 -MagicGenericCompetences [ALLGEMEINE MAGIEFERTIGKEITEN] +MagicGenericCompetences [ALLGEMEINE MAGIE - FERTIGKEITEN] // HASH_VALUE 0A50E71A08C13618 // INDEX 91 -MagicHealingCompetences [MAGIE-HEILUNGSFERTIGKEITEN] +MagicHealingCompetences [HEILUNGSMAGIE - FERTIGKEITEN] // HASH_VALUE 47CF70244E3EEF2F // INDEX 92 -MeleeFightingCompetences [Nahkampf-Fertigkeiten] +MeleeFightingCompetences [NAHKAMPF - FERTIGKEITEN] // HASH_VALUE C7EF602BCEFE032F // INDEX 93 -RangeFightingCompetences [Fernkampf-Fertigkeiten] +RangeFightingCompetences [FERNKAMPF - FERTIGKEITEN] // HASH_VALUE 8B00B8317F024F30 // INDEX 94 @@ -385,7 +385,7 @@ TrainingCharacteristics [AUSBILDUNGSVERLAUF] // HASH_VALUE C882C0098B3FD844 // INDEX 96 -TrainingScores [AUSBILDUNGSSTATISTIKA] +TrainingScores [AUSBILDUNGSSTATISTIKEN] // HASH_VALUE 6E074C942238548F // INDEX 97 @@ -417,15 +417,15 @@ ifCRAFTING_TOOL [Handwerkszeug] // HASH_VALUE 5D8B9449C8ABDC66 // INDEX 104 -ifHARVEST_TOOL [Rohstoffgewinnungswerkzeug] +ifHARVEST_TOOL [Rohstofferntewerkzeug] // HASH_VALUE 23C76797E3D3545E // INDEX 105 -ifTAMING_TOOL [Bändigungsgerät] +ifTAMING_TOOL [Zähmwerkzeug] // HASH_VALUE 6CE7844C66381BA2 // INDEX 106 -ifTRAINING_TOOL [Übungszeug] +ifTRAINING_TOOL [Übungswerkzeug] // HASH_VALUE 4850940448509404 // INDEX 107 @@ -445,11 +445,11 @@ ifCARRION [Aas] // HASH_VALUE 5126B04C19D4C86B // INDEX 111 -ifBAG [TASCHE] +ifBAG [Tasche] // HASH_VALUE 27C8509521485882 // INDEX 112 -ifSTACK [STAPEL] +ifSTACK [Stapel] // HASH_VALUE 9FC85F8E22B2545C // INDEX 113 @@ -473,15 +473,15 @@ ifTELEPORT [Teleportation] // HASH_VALUE 62C7348CE738649D // INDEX 118 -ifUNDEFINED [Undefiniert] +ifUNDEFINED [undefiniert] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 119 -ioUnknown [Unbekannt] +ioUnknown [unbekannt] // HASH_VALUE 2CD6E862AC34E48E // INDEX 120 -ioCommon [Gewöhnlich] +ioCommon [gewöhnlich] // HASH_VALUE B11894A16659889A // INDEX 121 @@ -517,31 +517,31 @@ ioKami [Kami] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 129 -atUNKNOWN [Unbekannt] +atUNKNOWN [unbekannt] // HASH_VALUE AC57209C60877498 // INDEX 130 -atHEAVY [Schwer] +atHEAVY [schwer] // HASH_VALUE 68B784736745A49B // INDEX 131 -atMEDIUM [Mittel] +atMEDIUM [mittelschwer] // HASH_VALUE 6A5644916017488F // INDEX 132 -atLIGHT [Leicht] +atLIGHT [leicht] // HASH_VALUE 6A5644916017488F // INDEX 133 -wtLIGHT [Leicht] +wtLIGHT [leicht] // HASH_VALUE 68B784736745A49B // INDEX 134 -wtMEDIUM [Mittel] +wtMEDIUM [mittelschwer] // HASH_VALUE AC57209C60877498 // INDEX 135 -wtHEAVY [Schwer] +wtHEAVY [schwer] // HASH_VALUE E8C62C801EB7048D // INDEX 136 @@ -549,35 +549,35 @@ wtHANDS [Hände] // HASH_VALUE 60B6647653438FAC // INDEX 137 -wtLIGHT_GUN [Leichtes Gewehr] +wtLIGHT_GUN [leichte Feuerwaffe] // HASH_VALUE 1F732057DF73A89B // INDEX 138 -wtMEDIUM_GUN [Mittleres Gewehr] +wtMEDIUM_GUN [mittelschwere Feuerwaffe] // HASH_VALUE 60D644729474C3B5 // INDEX 139 -wtHEAVY_GUN [Schweres Gewehr] +wtHEAVY_GUN [schwere Feuerwaffe] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 140 -wtUNKNOWN [Unbekannt] +wtUNKNOWN [unbekannt] // HASH_VALUE 6498F4386498F438 // INDEX 141 -stNONE [Nichts] +stNONE [nichts] // HASH_VALUE 69277F7B68464A94 // INDEX 142 -stSMALL_SHIELD [Kleiner Schild] +stSMALL_SHIELD [kleiner Schild] // HASH_VALUE E5491F6626571A7F // INDEX 143 -stLARGE_SHIELD [Großer Schild] +stLARGE_SHIELD [großer Schild] // HASH_VALUE 7058C44C649894A0 // INDEX 144 -dtSLASHING [Zuschlagen] +dtSLASHING [Schneiden] // HASH_VALUE 705894406498948C // INDEX 145 @@ -617,15 +617,15 @@ dtSHOCK [Schock] // HASH_VALUE 62C7348CE738649D // INDEX 154 -dtUNDEFINED [Undefiniert] +dtUNDEFINED [undefiniert] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 155 -ecosysUnknown [Unbekannt] +ecosysUnknown [unbekannt] // HASH_VALUE 2CD6E862AC34E48E // INDEX 156 -ecosysCommonEcosystem [Allgemein] +ecosysCommonEcosystem [allgemein] // HASH_VALUE 28D9906D28E6CC9B // INDEX 157 @@ -653,11 +653,11 @@ ecosysPrimaryRoot [Urwurzeln] // HASH_VALUE 62C7348CE738649D // INDEX 163 -mpcatUndefined [Undefiniert] +mpcatUndefined [undefiniert] // HASH_VALUE 30D620623134CC86 // INDEX 164 -mpcatExotic [Exotisch] +mpcatExotic [exotisch] // HASH_VALUE E5F6F07EDAC7FC7F // INDEX 165 @@ -669,7 +669,7 @@ mpcatUpgrade [Verbesserung] // HASH_VALUE D9A8E875D866AF80 // INDEX 167 -scoreHitPoints [HP] +scoreHitPoints [Lebenskraft] // HASH_VALUE 0C5398378883D425 // INDEX 168 @@ -705,7 +705,7 @@ scoreFearResist [Angstresistenz] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 176 -scoreUnknown [Unbekannt] +scoreUnknown [unbekannt] // Brick Type // HASH_VALUE 63F6E47ADE96EC80 @@ -718,11 +718,11 @@ bricktCOMBAT [Kampf] // HASH_VALUE E5F6F07EDAC7FC7F // INDEX 179 -bricktFABER [Handwerker] +bricktFABER [Handwerk] // HASH_VALUE EF1BBC91A3084494 // INDEX 180 -bricktHARVEST [Waldläufer] +bricktHARVEST [Rohstoffernte] // HASH_VALUE 60582450649894AC // INDEX 181 @@ -738,11 +738,11 @@ bricktMISCELLANEOUS [Diverses] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 184 -bricktUNKNOWN [Unbekannt] +bricktUNKNOWN [unbekannt] // HASH_VALUE EE09DC9C65D7A4A9 // INDEX 185 -toolNone [Unbekannt] +toolNone [unbekannt] // HASH_VALUE 6D25B7765A56B78F // INDEX 186 @@ -846,19 +846,19 @@ mpftMpBT [Schmiedewerkzeug] // HASH_VALUE 650AA3976C44E460 // INDEX 211 -mpftMpPES [Stoßgerät] +mpftMpPES [Reibwerkzeug] // HASH_VALUE EB5AA79A17587CA0 // INDEX 212 -mpftMpSH [Schärfungsgerät] +mpftMpSH [Schleifwerkzeug] // HASH_VALUE 698860976537D488 // INDEX 213 -mpftMpTK [Aushöhlungsmesser] +mpftMpTK [Grabwerkzeug] // HASH_VALUE EC6964961238A794 // INDEX 214 -mpftMpJH [Juweliershammer] +mpftMpJH [Ziselierhammer] // HASH_VALUE 7058140C649C9498 // INDEX 215 @@ -866,83 +866,83 @@ mpftMpCF [Lagerfeuer] // HASH_VALUE 6C19E092E3272083 // INDEX 216 -mpftMpVE [Stoff] +mpftMpVE [Kleidung] // HASH_VALUE 8DD918376804A77F // INDEX 217 -mpftMpMF [Magischer Fokus] +mpftMpMF [magischer Fokus] // HASH_VALUE 6408978EDFA22BB2 // INDEX 218 -mpft [Undefiniertes Rohstoff-Ziel] +mpft [undefiniertes Rohstoffernte-Ziel] // HASH_VALUE 8D999734D693746B // INDEX 219 -mpfqSlightly [Mittelmäßiges %p] +mpfqSlightly [mittelmäßiges %p] // HASH_VALUE 5D12B72C1AD6002C // INDEX 220 -mpfqModerately [Durchschnittliches %p] +mpfqModerately [durchschnittliches %p] // HASH_VALUE 86908B89A0672FFC // INDEX 221 -mpfq [Gutes %p] +mpfq [gutes %p] // HASH_VALUE B396C73030654FFA // INDEX 222 -mpfqQuite [Sehr gutes %p] +mpfqQuite [sehr gutes %p] // HASH_VALUE 6914F36AAB34C391 // INDEX 223 -mpfqExtremely [Exzellentes %p] +mpfqExtremely [exzellentes %p] // HASH_VALUE 9A07046D5FE60080 // INDEX 224 -mpcolRed [Rot] +mpcolRed [rot] // HASH_VALUE E586D8731C66D077 // INDEX 225 -mpcolBeige [Beige] +mpcolBeige [beige] // HASH_VALUE E947348C1FD7347F // INDEX 226 -mpcolGreen [Grün] +mpcolGreen [grün] // HASH_VALUE 6A1988956EFA20CD // INDEX 227 -mpcolTurquoise [Türkis] +mpcolTurquoise [türkis] // HASH_VALUE 645CC408645CC408 // INDEX 228 -mpcolBlue [Blau] +mpcolBlue [blau] // HASH_VALUE EE19007E2FF7C09A // INDEX 229 -mpcolPurple [Violett] +mpcolPurple [violett] // HASH_VALUE EAD8389866E76499 // INDEX 230 -mpcolWhite [Weiß] +mpcolWhite [weiß] // HASH_VALUE 2536EC7CDBB6F471 // INDEX 231 -mpcolBlack [Schwarz] +mpcolBlack [schwarz] // HASH_VALUE DEA8887EA6F5A8A1 // INDEX 232 -mpsapload0 [Niedrig] +mpsapload0 [niedrig] // HASH_VALUE 68B784736745A49B // INDEX 233 -mpsapload1 [Mittel] +mpsapload1 [mittel] // HASH_VALUE 68D8942068D89420 // INDEX 234 -mpsapload2 [Hoch] +mpsapload2 [hoch] // HASH_VALUE E8682C8E4DB34F70 // INDEX 235 -mpsapload3 [Sehr hoch] +mpsapload3 [sehr hoch] // HASH_VALUE 6D7804866957E48C // INDEX 236 @@ -970,19 +970,19 @@ mpstat5 [Reichweite] // HASH_VALUE E8F4B479DFA8889F // INDEX 242 -mpstat6 [Ausweich-Malus] +mpstat6 [Eigener Ausweich-Malus] // HASH_VALUE 2896CC906209E4C1 // INDEX 243 -mpstat7 [Abwehr-Malus] +mpstat7 [Eigener Abwehr-Malus] // HASH_VALUE A8EADC94A195F49F // INDEX 244 -mpstat8 [Gegnerischer Ausweich-Malus] +mpstat8 [Ausweich-Malus für Gegner] // HASH_VALUE 2B0A0C94A49544AA // INDEX 245 -mpstat9 [Gegnerischer Abwehr-Malus] +mpstat9 [Abwehr-Malus für Gegner] // HASH_VALUE EAB4047EEC7ABC90 // INDEX 246 @@ -990,15 +990,15 @@ mpstat10 [Schutzfaktor] // HASH_VALUE 9FA9C06C6A7A1CB4 // INDEX 247 -mpstat11 [Max. Schutz gegen Zerschneiden] +mpstat11 [max. Zerschneideschutz] // HASH_VALUE A156D87AAC493CB8 // INDEX 248 -mpstat12 [Max. Schutz gegen Zertrümmern] +mpstat12 [max. Zertrümmerungsschutz] // HASH_VALUE 9FE9B469286A2CAC // INDEX 249 -mpstat13 [Max. Schutz gegen Durchbohren] +mpstat13 [max. Durchbohrungsschutz] // HASH_VALUE 9859547D20178048 // INDEX 250 @@ -1038,7 +1038,7 @@ mpstat22 [Waldwiderstand] // HASH_VALUE 5438244EE7FCC08F // INDEX 259 -mpstat23 [Seenwiderstand] +mpstat23 [Seenlandwiderstand] // HASH_VALUE AA0A60660F549CBA // INDEX 260 @@ -1054,23 +1054,23 @@ mpstat26 [Elementarzauberzeit] // HASH_VALUE 6C27073DDFD8E8AF // INDEX 263 -mpstat27 [Elementarmacht] +mpstat27 [Elementarzauberkraft] // HASH_VALUE 5EC754634A55C70F // INDEX 264 -mpstat28 [Off. Beherrschungszeit] +mpstat28 [Off. Beherrschungszauberzeit] // HASH_VALUE 9A277B391248B061 // INDEX 265 -mpstat29 [Off. Beherrschungsmacht] +mpstat29 [Off. Beherrschungszauberkraft] // HASH_VALUE 1E1750584A55C70F // INDEX 266 -mpstat30 [Def. Beherrschungszeit] +mpstat30 [Def. Beherrschungszauberzeit] // HASH_VALUE 9A27772E12388461 // INDEX 267 -mpstat31 [Def. Beherrschungsmacht] +mpstat31 [Def. Beherrschungszauberkraft] // HASH_VALUE 9818E7416417B82D // INDEX 268 @@ -1078,7 +1078,7 @@ mpstat32 [Heilzauberzeit] // HASH_VALUE EDE67C3C6592502E // INDEX 269 -mpstat33 [Heilkraft] +mpstat33 [Heilzauberkraft] // HASH_VALUE 1FB5049096993C70 // INDEX 270 @@ -1114,11 +1114,11 @@ mpstatItemQualifier7 [der Abwehr] // HASH_VALUE 248A98B4E4D4FC24 // INDEX 278 -mpstatItemQualifier8 [mit gegnerischem Ausweich-Malus] +mpstatItemQualifier8 [mit Ausweich-Malus für Gegner] // HASH_VALUE 293BD0A6E7D4FC24 // INDEX 279 -mpstatItemQualifier9 [mit gegnerischem Abwehr-Malus] +mpstatItemQualifier9 [mit Abwehr-Malus für Gegner] // HASH_VALUE 68B560A596CB846A // INDEX 280 @@ -1126,15 +1126,15 @@ mpstatItemQualifier10 [des Schutzfaktors] // HASH_VALUE 2325A09A54D55C4F // INDEX 281 -mpstatItemQualifier11 [mit maximalem Schnitt-Schutz] +mpstatItemQualifier11 [des Zerschneideschutzes] // HASH_VALUE E5F283B561335F62 // INDEX 282 -mpstatItemQualifier12 [mit maximalem Zertrümmer-Schutz] +mpstatItemQualifier12 [des Zertrümmerungsschutzes] // HASH_VALUE E115B09794D55C4F // INDEX 283 -mpstatItemQualifier13 [mit maximalem Durchbohr-Schutz] +mpstatItemQualifier13 [des Durchbohrungsschutzes] // HASH_VALUE A2F39B9294190857 // INDEX 284 @@ -1174,7 +1174,7 @@ mpstatItemQualifier22 [des Waldwiderstandes] // HASH_VALUE 8E8464766BCB848B // INDEX 293 -mpstatItemQualifier23 [des Seenwiderstandes] +mpstatItemQualifier23 [des Seenlandwiderstandes] // HASH_VALUE 5FD38BAA23D477BC // INDEX 294 @@ -1194,19 +1194,19 @@ mpstatItemQualifier27 [der Elementarmacht] // HASH_VALUE 66D6F9F695A9A80F // INDEX 298 -mpstatItemQualifier28 [der offensiven Beherrschungszauberzeit] +mpstatItemQualifier28 [der off. Beherrschungszauberzeit] // HASH_VALUE A216A09E44081861 // INDEX 299 -mpstatItemQualifier29 [der offensiven Beherrschungsmacht] +mpstatItemQualifier29 [der off. Beherrschungsmacht] // HASH_VALUE A4D6F9F695A9A80E // INDEX 300 -mpstatItemQualifier30 [der defensiven Beherrschungszauberzeit] +mpstatItemQualifier30 [der def. Beherrschungszauberzeit] // HASH_VALUE E016A09E44081860 // INDEX 301 -mpstatItemQualifier31 [der defensiven Beherrschungsmacht] +mpstatItemQualifier31 [der Defensiv-Beherrschungsmacht] // HASH_VALUE 20632F838D25C418 // INDEX 302 @@ -1246,7 +1246,7 @@ ptElectricity [Elektro] // HASH_VALUE 6498F4386498F438 // INDEX 311 -ptNone [Kein] +ptNone [kein] // Resistances Against Magic // HASH_VALUE 28D9906D28E6CC9B @@ -1259,7 +1259,7 @@ rsForest [Wald] // HASH_VALUE 74D81430649C44CC // INDEX 314 -rsLacustre [See] +rsLacustre [Seenland] // HASH_VALUE 6836DC6EECF49C90 // INDEX 315 @@ -1267,11 +1267,11 @@ rsJungle [Dschungel] // HASH_VALUE DBB9185388BA1864 // INDEX 316 -rsPrimaryRoot [Urwurzel] +rsPrimaryRoot [Urwurzeln] // HASH_VALUE 6498F4386498F438 // INDEX 317 -rsNone [Kein] +rsNone [kein] // HASH_VALUE 5450841454508414 // INDEX 318 @@ -1295,11 +1295,11 @@ uiPassword [Passwort] // HASH_VALUE EA3A842642FA0CC0 // INDEX 323 -uiConfirmPassword [Password Bestätigung] +uiConfirmPassword [Password-Bestätigung] // HASH_VALUE A9797F6868794A8F // INDEX 324 -uiEmail [Email-Adresse] +uiEmail [E-Mail-Adresse] // HASH_VALUE 89C0C4320910CC2A // INDEX 325 @@ -1339,7 +1339,7 @@ uiOnChecking [ÜBERPRÜFE DATEIEN FÜR DEN PATCH...] // HASH_VALUE FB21B433B2B1EC22 // INDEX 334 -uiOnRelease [VERSIONSINFOS] +uiOnRelease [VERSIONS-INFORMATIONEN] // HASH_VALUE 48209C2B05607C06 // INDEX 335 @@ -1355,7 +1355,7 @@ uiEditAccount [ACCOUNT ÄNDERN] // HASH_VALUE 01F1BC27BC416CF8 // INDEX 338 -uiBetaAccount [ICH HABE BEREITS EINEN BETA-ACCOUNT] +uiBetaAccount [ICH HABE EINEN BETA-ACCOUNT] // HASH_VALUE 01120F12C422D70B // INDEX 339 @@ -1371,11 +1371,11 @@ uiLoginSupport [KUNDENSUPPORT] // HASH_VALUE 46E1C43A831ECFEA // INDEX 342 -uiReleaseNote [INFOS LESEN] +uiReleaseNote [VERSIONS-INFORMATIONEN LESEN] // HASH_VALUE 0B2190278A40A02A // INDEX 343 -uiNoteClose [SCHLIESSEN] +uiNoteClose [SCHLIEßEN] // HASH_VALUE 4792B81C49E2742F // INDEX 344 @@ -1395,7 +1395,7 @@ uiErrOffLineShard [Fehler : Der Shard, zu dem du dich verbinden willst, ist offl // HASH_VALUE 3DDF0D8BBD1D3C7A // INDEX 348 -uiErrCantPatch [Fehler : Du kannst nicht patchen, da die PatchURL noch nicht in die Datenbank eingegeben wurde (Fehlercode 16).] +uiErrCantPatch [Fehler : Du kannst nicht patchen, da die Patch-URL noch nicht in die Datenbank eingegeben wurde (Fehlercode 16).] // HASH_VALUE E1B933F053557A69 // INDEX 349 @@ -1407,23 +1407,23 @@ uiErrServerLost [Fehler : Die Verbindung zum Server wurde während des Patchens // HASH_VALUE 0781700FFA41B8F9 // INDEX 351 -uiPatching [PATCHE, BITTE WARTEN] +uiPatching [PATCH LÄUFT, BITTE WARTEN] // HASH_VALUE B11FE4024EE3A1CB // INDEX 352 -uiErrPatchApply [Fehler : Patchprozess beendet, aber der Patch konnte nicht erfolgreich eingesetzt werden.] +uiErrPatchApply [Fehler : Patchprozess beendet, aber der Patch konnte nicht erfolgreich implementiert werden.] // HASH_VALUE 428B3D2BDA3B2CD2 // INDEX 353 uiErrChecking [Fehler : Patchdateien versagen - Überprüfung.] -// HASH_VALUE 8E9280411622E45F +// HASH_VALUE 40D0242C40D0242C // INDEX 354 -uiKb [KB] +uiKb [KiB] -// HASH_VALUE 90B288459762EC61 +// HASH_VALUE 4050243440502434 // INDEX 355 -uiMb [MB] +uiMb [MiB] // HASH_VALUE 9FA5A06DD895B637 // INDEX 356 @@ -1435,11 +1435,11 @@ uiDLFailed [Download vom Notfall-Server gescheitert, Login wurde abgebrochen] // HASH_VALUE 0DD314AEEB0A6833 // INDEX 358 -uiDLURIFailed [Download vom URI gescheitert (neuer Versuch):] +uiDLURIFailed [Download von der URL gescheitert (neuer Versuch):] // HASH_VALUE 9FEF11F92FE58883 // INDEX 359 -uiNoMoreURI [Keine Verbindung mehr zum URI, versuche den Notfall-Server] +uiNoMoreURI [Keine Verbindung mehr zur URL, versuche den Notfall-Server] // HASH_VALUE D126843FEAF6BF89 // INDEX 360 @@ -1467,11 +1467,11 @@ uiApplyingDelta [Delta anlegen:] // HASH_VALUE 6BA9B484A5229440 // INDEX 366 -uiClientVersion [Klientversion] +uiClientVersion [Client-Version] // HASH_VALUE 2EAADC9D27B47047 // INDEX 367 -uiServerVersion [Serverversion] +uiServerVersion [Server-Version] // HASH_VALUE A8B6FC32E686BF9C // INDEX 368 @@ -1487,7 +1487,7 @@ uiCheckInBNP [Überprüfe innerhalb BNP :] // HASH_VALUE 8810F72436CBB610 // INDEX 371 -uiSHA1Diff [BNP Zwangsentpackung : Checksumme stimmt nicht überein :] +uiSHA1Diff [Erzwinge BNP-Entpackung: Checksumme stimmt nicht überein :] // HASH_VALUE 0328885969AA93AC // INDEX 372 @@ -1523,7 +1523,7 @@ uiUnpack [BNP entpacken:] // HASH_VALUE 57282453CE0D24A5 // INDEX 380 -uiUnpackErrHead [Bnp-Header unlesbar:] +uiUnpackErrHead [BNP-Header unlesbar:] // HASH_VALUE 3EC17830B80D1B1D // INDEX 381 @@ -1539,7 +1539,7 @@ uiChangeDate [Das Mod-Datum ändern :] // HASH_VALUE 4589434CDD042E75 // INDEX 384 -uiChgDateErr [File-Zeit unveränderbar :] +uiChgDateErr [Datei-Zeit unveränderbar :] // HASH_VALUE 5BCA0C0C45A99719 // INDEX 385 @@ -1547,31 +1547,31 @@ uiNowDate [Wir haben den :] // HASH_VALUE 485B4807F0581777 // INDEX 386 -uiSetAttrib [File-Attribute einstellen :] +uiSetAttrib [Datei-Attribute einstellen :] // HASH_VALUE 5EB5789353166D5E // INDEX 387 -uiAttribErr [Zugang unlesbar :] +uiAttribErr [Kein Lese-/Schreibzugriff:] // HASH_VALUE C2B6FF326665E080 // INDEX 388 -uiDelFile [File löschen :] +uiDelFile [Datei löschen :] // HASH_VALUE 0D262B3499A4A35A // INDEX 389 -uiDelErr [ File kann nicht gelöscht werden:] +uiDelErr [Datei kann nicht gelöscht werden:] // HASH_VALUE C238BC781514042B // INDEX 390 -uiDelNoFile [ File löschen (Keine File)] +uiDelNoFile [Datei löschen (Keine Datei)] // HASH_VALUE C1B7E33CDEF4085B // INDEX 391 -uiRenameFile [File umbenennen:] +uiRenameFile [Datei umbenennen:] // HASH_VALUE 8DB5533699858756 // INDEX 392 -uiRenameErr [File kann nicht umbenannt werden :] +uiRenameErr [Datei kann nicht umbenannt werden :] // ************************************************************************ // INTERFACE @@ -1591,51 +1591,51 @@ uiEmote0 [afk] // HASH_VALUE 2709809226094C9D // INDEX 396 -uiEmote1 [zustimmend] +uiEmote1 [einwilligen] // HASH_VALUE 6E99C0BA6809ECB3 // INDEX 397 -uiEmote2 [wütend] +uiEmote2 [zornig] // HASH_VALUE 6A69C4A9ACC8C8BA // INDEX 398 -uiEmote3 [entschuldigend] +uiEmote3 [bereuen] // HASH_VALUE E93AB8ADAB6AAC9B // INDEX 399 -uiEmote4 [applaudierend] +uiEmote4 [klatschen] // HASH_VALUE 6E7AB0A9ECC9A8B2 // INDEX 400 -uiEmote5 [schämend] +uiEmote5 [beschämt] // HASH_VALUE E80AE0AA2BB900B7 // INDEX 401 -uiEmote6 [verbeugend] +uiEmote6 [verneigen] // HASH_VALUE E769E8A2AD3998B9 // INDEX 402 -uiEmote7 [bye] +uiEmote7 [lebwohl] // HASH_VALUE 6C18148C6C18148C // INDEX 403 -uiEmote8 [ruhig] +uiEmote8 [beschwichtigen] // HASH_VALUE 68688CA2A4398C9F // INDEX 404 -uiEmote9 [jubelnd] +uiEmote9 [jubeln] // HASH_VALUE AA8B04B16E2A20C0 // INDEX 405 -uiEmote10 [heulend] +uiEmote10 [heulen] // HASH_VALUE 2478648DE498389A // INDEX 406 -uiEmote11 [tanzend] +uiEmote11 [tänzeln] // HASH_VALUE 60DC94906458249C // INDEX 407 -uiEmote12 [nicht zustimmend] +uiEmote12 [ablehnen] // HASH_VALUE EEE808A7AE8828B0 // INDEX 408 @@ -1643,15 +1643,15 @@ uiEmote13 [folgen] // HASH_VALUE 6FFC08B32B5990B3 // INDEX 409 -uiEmote14 [Kompliment] +uiEmote14 [gestikulieren] // HASH_VALUE 65287CA1E6286CA6 // INDEX 410 -uiEmote15 [Kichernd] +uiEmote15 [kichern] // HASH_VALUE EB989C96E3F8C4B8 // INDEX 411 -uiEmote16 [geh weg] +uiEmote16 [wegschicken] // HASH_VALUE 29BAE4B06B49BCB2 // INDEX 412 @@ -1659,15 +1659,15 @@ uiEmote17 [ungeduldig] // HASH_VALUE 70DC94AC70DC94AC // INDEX 413 -uiEmote18 [Ohrfeige] +uiEmote18 [ohrfeigen] // HASH_VALUE 6848ACAA27B8ACA1 // INDEX 414 -uiEmote19 [kniend] +uiEmote19 [knien] // HASH_VALUE A8A9AC9CA9B974B0 // INDEX 415 -uiEmote20 [lachend] +uiEmote20 [lachen] // HASH_VALUE 2C48DCB3EC48D0B6 // INDEX 416 @@ -1675,11 +1675,11 @@ uiEmote21 [lol] // HASH_VALUE ED79F4C1ECDA08BB // INDEX 417 -uiEmote22 [zeigend] +uiEmote22 [deuten] // HASH_VALUE 7058F4C87058F4C8 // INDEX 418 -uiEmote23 [tosend] +uiEmote23 [grollen] // HASH_VALUE 29D968ABA5CA7499 // INDEX 419 @@ -1687,11 +1687,11 @@ uiEmote24 [traurig] // HASH_VALUE 2969BCB1ACF9C8AD // INDEX 420 -uiEmote25 [lächelnd] +uiEmote25 [lächeln] // HASH_VALUE E7C9A4B52A99D8AE // INDEX 421 -uiEmote26 [dankend] +uiEmote26 [danken] // HASH_VALUE EEAAA0AC6A5A34CE // INDEX 422 @@ -1699,11 +1699,11 @@ uiEmote27 [unglücklich] // HASH_VALUE F29AC0B6ECCA2CD0 // INDEX 423 -uiEmote28 [Sieg] +uiEmote28 [siegreich] // HASH_VALUE 649C14DC649C14DC // INDEX 424 -uiEmote29 [Winken] +uiEmote29 [zuwinken] // HASH_VALUE 5190081E8FF0201E // INDEX 425 @@ -1735,7 +1735,7 @@ uiEM_Ges [KOMPLIMENT] // HASH_VALUE 4874F4E0C8B29444 // INDEX 432 -uiEM_PosOpi [GUTE MEINUNG] +uiEM_PosOpi [POSITIVE MEINUNG] // HASH_VALUE 8E12D032BF8EAC2B // INDEX 433 @@ -1743,11 +1743,11 @@ uiEM_NeuOpi [NEUTRALE MEINUNG] // HASH_VALUE 44F2A4DCC8B29444 // INDEX 434 -uiEM_NegOpi [SCHLECHTE MEINUNG] +uiEM_NegOpi [NEGATIVE MEINUNG] // HASH_VALUE 508203FA4C93EC3A // INDEX 435 -uiEM_PosAtt [GUTE EINSTELLUNG] +uiEM_PosAtt [POSITIVE EINSTELLUNG] // HASH_VALUE CE34CC1EB210B44C // INDEX 436 @@ -1755,11 +1755,11 @@ uiEM_NeuAtt [NEUTRALE EINSTELLUNG] // HASH_VALUE 4B21D3F84C93EC32 // INDEX 437 -uiEM_NegAtt [SCHLECHTE EINSTELLUNG] +uiEM_NegAtt [NEGATIVE EINSTELLUNG] // HASH_VALUE 4C12B4E04414F450 // INDEX 438 -uiEM_PosGes [GUTE GESTE] +uiEM_PosGes [POSITIVE GESTE] // HASH_VALUE 1314CC1FBDFE943A // INDEX 439 @@ -1767,1023 +1767,1023 @@ uiEM_NeuGes [NEUTRALE GESTE] // HASH_VALUE 489064DC4414F450 // INDEX 440 -uiEM_NegGes [SCHLECHTE GESTE] +uiEM_NegGes [NEGATIVE GESTE] // HASH_VALUE 0592741E0631BC2B // INDEX 441 -uiEM_Absentminded [ZERSTREUT] +uiEM_Absentminded [zerstreut] // HASH_VALUE 89A3D03A8DB1403C // INDEX 442 -uiEM_Adventurous [ABENTEUERLUSTIG] +uiEM_Adventurous [abenteuerlustig] // HASH_VALUE 0822A42F8B11C823 // INDEX 443 -uiEM_Aggressive [AGGRESSIV] +uiEM_Aggressive [aggressiv] // HASH_VALUE 0701801206014C1D // INDEX 444 -uiEM_Agree [ZUSTIMMEN] +uiEM_Agree [einverstanden] // HASH_VALUE 0D519C334871D02C // INDEX 445 -uiEM_Alert [ALARMIERT] +uiEM_Alert [alarmiert] // HASH_VALUE 5014C40454D49454 // INDEX 446 -uiEM_Altruist [SELBSTLOS] +uiEM_Altruist [selbstlos] // HASH_VALUE 9090E4084D90C00C // INDEX 447 -uiEM_Amazed [VERWUNDERT] +uiEM_Amazed [erstaunen] // HASH_VALUE 0BE0A0314661B027 // INDEX 448 -uiEM_Ambivalent [AMBIVALENT] +uiEM_Ambivalent [egal] // HASH_VALUE 0C12C81C8BD1A420 // INDEX 449 -uiEM_Amused [VERGNÜGT] +uiEM_Amused [amüsiert] // HASH_VALUE 4E91C03A4801EC33 // INDEX 450 -uiEM_Angry [WÜTEND] +uiEM_Angry [verärgert] // HASH_VALUE 8BC1142C49206423 // INDEX 451 -uiEM_Annoyed [VERÄRGERT] +uiEM_Annoyed [genervt] // HASH_VALUE C9617821CA628C2D // INDEX 452 -uiEM_Apathetic [TEILNAHMSLOS] +uiEM_Apathetic [gleichgültig] // HASH_VALUE 4D8308330C72B42B // INDEX 453 -uiEM_Approve [BILLIGEN] +uiEM_Approve [einverstanden] // HASH_VALUE 4C9424045490141C // INDEX 454 -uiEM_Arrogant [ARROGANT] +uiEM_Arrogant [arrogant] // HASH_VALUE 05C0A81D86117817 // INDEX 455 -uiEM_Ashamed [BESCHÄMT] +uiEM_Ashamed [schämen] // HASH_VALUE C5C2941ACA90E821 // INDEX 456 -uiEM_Belligerent [STREITLUSTIG] +uiEM_Belligerent [streitlustig] // HASH_VALUE 1002E41D4DE10820 // INDEX 457 -uiEM_Bitter [VERBITTERT] +uiEM_Bitter [verbittert] // HASH_VALUE 4EB1001ACD41201C // INDEX 458 -uiEM_Bloodthirsty [BLUTRÜNSTIG] +uiEM_Bloodthirsty [blutrünstig] // HASH_VALUE C991A01A48816C1D // INDEX 459 -uiEM_Bored [GELANGWEILT] +uiEM_Bored [gelangweilt] // HASH_VALUE C802E02A0BB10037 // INDEX 460 -uiEM_Bow [VERBEUGEN] +uiEM_Bow [verbeugen] // HASH_VALUE CAC26C2F09B1C01E // INDEX 461 -uiEM_Brave [MUTIG] +uiEM_Brave [tapfer] // HASH_VALUE CB3018129030281C // INDEX 462 -uiEM_Bubbly [AUFSCHÄUMEND] +uiEM_Bubbly [quirlig] // HASH_VALUE 5094540850945408 // INDEX 463 -uiEM_Burp [RÜLPSEN] +uiEM_Burp [rülpsen] // HASH_VALUE 4C10140C4C10140C // INDEX 464 -uiEM_Calm [RUHIG] +uiEM_Calm [ruhig] // HASH_VALUE 4C10140C4CD4F410 // INDEX 465 -uiEM_Calmdown [BERUHIGEND] +uiEM_Calmdown [beruhigen] // HASH_VALUE 4A327C1B0531982A // INDEX 466 -uiEM_Careful [VORSICHTIG] +uiEM_Careful [achtsam] // HASH_VALUE 4494140C50D45430 // INDEX 467 -uiEM_Careless [GLEICHGÜLTIG] +uiEM_Careless [sorglos] // HASH_VALUE 0DB2901A08B1BC18 // INDEX 468 -uiEM_Casual [ZWANGLOS] +uiEM_Casual [locker] // HASH_VALUE 0AE1B41B05006023 // INDEX 469 -uiEM_Chaotic [CHAOTISCH] +uiEM_Chaotic [chaotisch] // HASH_VALUE 48608C2284318C1F // INDEX 470 -uiEM_Cheer [JUBELND] +uiEM_Cheer [anfeuern] // HASH_VALUE 4C50C40C4C503424 // INDEX 471 -uiEM_Clinical [MEDIZINISCH] +uiEM_Clinical [observieren] // HASH_VALUE 4410F40C4410F40C // INDEX 472 -uiEM_Cold [KALT] +uiEM_Cold [kalt] // HASH_VALUE D0519036C921D81C // INDEX 473 -uiEM_Compassionate [MITLEIDIG] +uiEM_Compassionate [mitfühlen] // HASH_VALUE 47E180230AC0A41F // INDEX 474 -uiEM_Condescending [HERABLASSEND] +uiEM_Condescending [überheblich] // HASH_VALUE C751D42A4790882C // INDEX 475 -uiEM_Confident [ZUVERSICHTLICH] +uiEM_Confident [zuversichtlich] // HASH_VALUE 4490F40C44503454 // INDEX 476 -uiEM_Confused [VERWIRRT] +uiEM_Confused [verwirrt] // HASH_VALUE 1322EC201343E422 // INDEX 477 -uiEM_Contemptuous [VERACHTUNGSVOLL] +uiEM_Contemptuous [verächtlich] // HASH_VALUE 0E61DC344B51D42A // INDEX 478 -uiEM_Content [ZUFRIEDEN] +uiEM_Content [zufrieden] // HASH_VALUE 0E32E41E0BF1F02E // INDEX 479 -uiEM_Courageous [FURCHTLOS] +uiEM_Courageous [furchtlos] // HASH_VALUE 12832C398C12E03C // INDEX 480 -uiEM_Courtly [VORNEHM] +uiEM_Courtly [vornehm] // HASH_VALUE 8443902F0702643E // INDEX 481 -uiEM_Coward [FEIGE] +uiEM_Coward [feige] // HASH_VALUE D012C0484A022437 // INDEX 482 -uiEM_Crazy [VERRÜCKT] +uiEM_Crazy [verrückt] // HASH_VALUE 4BF2C01ECA027C21 // INDEX 483 -uiEM_Crude [GROB] +uiEM_Crude [grob] // HASH_VALUE 4D02DC260A729C29 // INDEX 484 -uiEM_Cruel [GRAUSAM] +uiEM_Cruel [grausam] // HASH_VALUE 4E0200330BE3043A // INDEX 485 -uiEM_Curious [NEUGIERIG] +uiEM_Curious [neugierig] // HASH_VALUE 85C0D0330B71A813 // INDEX 486 -uiEM_Cynical [ZYNISCH] +uiEM_Cynical [zynisch] // HASH_VALUE CCB1A82589610835 // INDEX 487 -uiEM_Dainty [ANMUTIG] +uiEM_Dainty [zierlich] // HASH_VALUE 0470640DC490381A // INDEX 488 -uiEM_Dance [TANZEND] +uiEM_Dance [tanzen] // HASH_VALUE 445094284E01B41E // INDEX 489 -uiEM_Defensive [DEFENSIV] +uiEM_Defensive [defensiv] // HASH_VALUE 0AE14C204AE3EC2C // INDEX 490 -uiEM_Depressed [DEPRIMIERT] +uiEM_Depressed [deprimiert] // HASH_VALUE 46D3642D45E2643B // INDEX 491 -uiEM_Desire [LEIDENSCHAFTLICH] +uiEM_Desire [begehren] // HASH_VALUE 4A114C1F87D2B829 // INDEX 492 -uiEM_Despaired [VERZWEIFELT] +uiEM_Despaired [verzweifeln] // HASH_VALUE CDF3CC358F510830 // INDEX 493 -uiEM_Destructive [ZERSTÖRERISCH] +uiEM_Destructive [destruktiv] // HASH_VALUE C58070160670601B // INDEX 494 -uiEM_Die [STERBEND] +uiEM_Die [todesverachtend] // HASH_VALUE C7905C1686709427 // INDEX 495 -uiEM_Dignified [WÜRDEVOLL] +uiEM_Dignified [würdevoll] // HASH_VALUE 4AF1B81DCD51982C // INDEX 496 -uiEM_Diplomatic [DIPLOMATISCH] +uiEM_Diplomatic [diplomatisch] // HASH_VALUE 03B2DC260571F832 // INDEX 497 -uiEM_Disappointed [ENTTÄUSCHT] +uiEM_Disappointed [enttäuscht] // HASH_VALUE 40D4941054505448 // INDEX 498 -uiEM_Discreet [VERTRAULICH] +uiEM_Discreet [diskret] // HASH_VALUE 07B2942846718C2D // INDEX 499 -uiEM_Disdainful [VERABSCHEUEND] +uiEM_Disdainful [herablassend] // HASH_VALUE 4AE390384C60042E // INDEX 500 -uiEM_Disgruntled [VERSTIMMT] +uiEM_Disgruntled [verdrossen] // HASH_VALUE 08515C218F430C38 // INDEX 501 -uiEM_Disgusted [EMPÖRT] +uiEM_Disgusted [empört] // HASH_VALUE 4A21A41B4EA18C36 // INDEX 502 -uiEM_Disillusioned [DESILLUSIONIERT] +uiEM_Disillusioned [desillusioniert] // HASH_VALUE 4CD4941044509404 // INDEX 503 -uiEM_Dismayed [BESTÜRZT] +uiEM_Dismayed [bestürzt] // HASH_VALUE 4B828C34CAD1BC25 // INDEX 504 -uiEM_Disoriented [DURCHEINANDER] +uiEM_Disoriented [durcheinander] // HASH_VALUE 8D018C1ECCD28C2E // INDEX 505 -uiEM_Distracted [ABGELENKT] +uiEM_Distracted [abgelenkt] // HASH_VALUE 4054F4104C546450 // INDEX 506 -uiEM_Doubtful [ZWEIFELND] +uiEM_Doubtful [skeptisch] // HASH_VALUE 4C50241040504404 // INDEX 507 -uiEM_Dramatic [SHOW] +uiEM_Dramatic [aufführen] // HASH_VALUE 8AC0FC1ACEB01823 // INDEX 508 -uiEM_Dreamy [VERTRÄUMT] +uiEM_Dreamy [verträumt] // HASH_VALUE 4EA2DC2F8D72C032 // INDEX 509 -uiEM_Drunk [BETRUNKEN] +uiEM_Drunk [betrunken] // HASH_VALUE 4B92E436CDA2EC2B // INDEX 510 -uiEM_Dutiful [GEHORSAM] +uiEM_Dutiful [pflichtgetreu] // HASH_VALUE 0630801DC3017823 // INDEX 511 -uiEM_Eager [EIFRIG] +uiEM_Eager [eifrig] // HASH_VALUE CD929C26C8D2B831 // INDEX 512 -uiEM_Earnest [ERNST] +uiEM_Earnest [ernst] // HASH_VALUE 54D4341440504404 // INDEX 513 -uiEM_Ecstatic [VERZÜCKT] +uiEM_Ecstatic [begeistert] // HASH_VALUE 48D074144050444C // INDEX 514 -uiEM_Egoistic [EGOISTISCH] +uiEM_Egoistic [egoistisch] // HASH_VALUE 09C2542C0CB1B025 // INDEX 515 -uiEM_Embarrassed [VERLEGEN] +uiEM_Embarrassed [peinlich] // HASH_VALUE 8CE0802008B1F039 // INDEX 516 -uiEM_Emotional [EMOTIONAL] +uiEM_Emotional [emotional] // HASH_VALUE 8A810C288CD1F837 // INDEX 517 -uiEM_Emotionless [EMOTIONSLOS] +uiEM_Emotionless [emotionslos] // HASH_VALUE 4814D41440504404 // INDEX 518 -uiEM_Emphatic [HERVORHEBEND] +uiEM_Emphatic [empathisch] // HASH_VALUE 0A71B4234CF09032 // INDEX 519 -uiEM_Encouraging [ERMUNTERND] +uiEM_Encouraging [aufmuntern] // HASH_VALUE 8301A426C8A17415 // INDEX 520 -uiEM_Enraged [ERZÜRNT] +uiEM_Enraged [aufgebracht] // HASH_VALUE 44B2103282012442 // INDEX 521 -uiEM_Enthusiastic [ENTHUSIASTISCH] +uiEM_Enthusiastic [enthusiastisch] // HASH_VALUE 4E42F432CBD2F03C // INDEX 522 -uiEM_Envious [NEIDISCH] +uiEM_Envious [neidisch] // HASH_VALUE 4C5064144C506414 // INDEX 523 -uiEM_Evil [TEUFLISCH] +uiEM_Evil [teuflisch] // HASH_VALUE C961E42989519C22 // INDEX 524 -uiEM_Excited [BEGEISTERT] +uiEM_Excited [aufgeregt] // HASH_VALUE 5050841444D4940C // INDEX 525 -uiEM_Exercise [TRAINIEREND] +uiEM_Exercise [trainieren] // HASH_VALUE C9A19C228FE3C836 // INDEX 526 -uiEM_Exhausted [ERSCHÖPFT] +uiEM_Exhausted [erschöpft] // HASH_VALUE 4C730028C8B1BC34 // INDEX 527 -uiEM_Exuberant [ÜBERSCHWÄNGLICH] +uiEM_Exuberant [ausgelassen] // HASH_VALUE 545014184C546420 // INDEX 528 -uiEM_Faithful [TREU] +uiEM_Faithful [treu] // HASH_VALUE C42054168721B424 // INDEX 529 -uiEM_Fanatical [FANATISCH] +uiEM_Fanatical [fanatisch] // HASH_VALUE 0C82A02D49C1B437 // INDEX 530 -uiEM_Fastidious [WÄHLERISCH] +uiEM_Fastidious [penibel] // HASH_VALUE 8DF27C1EC690B42D // INDEX 531 -uiEM_Fearful [ÄNGSTLICH] +uiEM_Fearful [ängstlich] // HASH_VALUE 4C9494184C949418 // INDEX 532 -uiEM_Firm [UNBEUGSAM] +uiEM_Firm [unbeugsam] // HASH_VALUE C7127C22C631C41E // INDEX 533 -uiEM_FBT [FBT] +uiEM_FBT [fbt] // HASH_VALUE 0992C82EC9D1C42A // INDEX 534 -uiEM_Forgive [VERGEBEND] +uiEM_Forgive [verzeihen] // HASH_VALUE 8A619821C8A2B42C // INDEX 535 -uiEM_Fraternal [BRÜDERLICH] +uiEM_Fraternal [brüderlich] // HASH_VALUE 4450241858104438 // INDEX 536 -uiEM_Friendly [FREUNDLICH] +uiEM_Friendly [freundschaftlich] // HASH_VALUE 8E21F4201112F034 // INDEX 537 -uiEM_Frustrated [FRUSTRIERT] +uiEM_Frustrated [frustriert] // HASH_VALUE D1810C420C320C3B // INDEX 538 -uiEM_Funny [LUSTIG] +uiEM_Funny [lustig] // HASH_VALUE 4490541C5054F448 // INDEX 539 -uiEM_Generous [GROßMÜTIG] +uiEM_Generous [freigiebig] // HASH_VALUE 457053204410021E // INDEX 540 -uiEM_Gimme5 [GIB MIR 5] +uiEM_Gimme5 [einschlagen] // HASH_VALUE 0F30042A4FB03830 // INDEX 541 -uiEM_Gloomy [TRÜBSINNIG] +uiEM_Gloomy [trübsinnig] // HASH_VALUE 8DC0FC3508F1D835 // INDEX 542 -uiEM_Goofy [ALBERN] +uiEM_Goofy [albern] // HASH_VALUE 4A01CC2E0632BC21 // INDEX 543 -uiEM_Great [GROßARTIG] +uiEM_Great [toll] // HASH_VALUE 4C50241C4C50241C // INDEX 544 -uiEM_Grin [GRINSEND] +uiEM_Grin [grinsen] // HASH_VALUE 90232C33D142483C // INDEX 545 -uiEM_Grumpy [MÜRRISCH] +uiEM_Grumpy [mürrisch] // HASH_VALUE D1E1402B13C15038 // INDEX 546 -uiEM_Guilty [SCHULDIG] +uiEM_Guilty [schuldig] // HASH_VALUE CEA2CC328A32CC41 // INDEX 547 -uiEM_Happy [FROH] +uiEM_Happy [froh] // HASH_VALUE 0802543145709823 // INDEX 548 -uiEM_Hardsilence [SEHR RUHIG] +uiEM_Hardsilence [mundtot] // HASH_VALUE 4E9298258882DC3D // INDEX 549 -uiEM_Haughty [HOCHNÄSIG] +uiEM_Haughty [hochnäsig] // HASH_VALUE 0D82A0298A60BC2F // INDEX 550 -uiEM_Helpful [HILFSBEREIT] +uiEM_Helpful [hilfsbereit] // HASH_VALUE C762742B45C16C2C // INDEX 551 -uiEM_Heroic [HEROISCH] +uiEM_Heroic [heroisch] // HASH_VALUE 4010942040109420 // INDEX 552 -uiEM_Hiha [HIHA] +uiEM_Hiha [hallo] // HASH_VALUE 8A81E0310C21F43C // INDEX 553 -uiEM_Honest [EHRLICH] +uiEM_Honest [ehrlich] // HASH_VALUE 4A12AC2C4A41E42F // INDEX 554 -uiEM_Hopeful [HOFFNUNGSVOLL] +uiEM_Hopeful [hoffnungsvoll] // HASH_VALUE 4414F42050D45430 // INDEX 555 -uiEM_Hopeless [HOFFNUNGSLOS] +uiEM_Hopeless [hoffnungslos] // HASH_VALUE C6F0C8298BA0882D // INDEX 556 -uiEM_Humble [DEMÜTIG] +uiEM_Humble [bescheiden] // HASH_VALUE 4D712C30D1113C3A // INDEX 557 -uiEM_Hungry [HUNGRIG] +uiEM_Hungry [hungrig] // HASH_VALUE 48320C418F429C1A // INDEX 558 -uiEM_Hurried [IN EILE] +uiEM_Hurried [eilig] // HASH_VALUE D32324488F932445 // INDEX 559 -uiEM_Hurry [BEEILUNG] +uiEM_Hurry [beeilen] // HASH_VALUE 4E61EC17CFA13021 // INDEX 560 -uiEM_Hysterical [HYSTERISCH] +uiEM_Hysterical [hysterisch] // HASH_VALUE CCE1B0274C71F838 // INDEX 561 -uiEM_Imploring [FLEHEND] +uiEM_Imploring [flehen] // HASH_VALUE 8612AC184BD0C427 // INDEX 562 -uiEM_Indifferent [UNPARTEIISCH] +uiEM_Indifferent [wertfrei] // HASH_VALUE 4801E82C47008C22 // INDEX 563 -uiEM_Indignant [ENTRÜSTET] +uiEM_Indignant [entrüstet] // HASH_VALUE 4B01E830C8E1B433 // INDEX 564 -uiEM_Indulgent [NACHGIEBIG] +uiEM_Indulgent [nachsichtig] // HASH_VALUE 4C90E4245490540C // INDEX 565 -uiEM_Innocent [UNSCHULDIG] +uiEM_Innocent [unschuldig] // HASH_VALUE 44D4E4244494540C // INDEX 566 -uiEM_Insecure [UNSICHER] +uiEM_Insecure [unsicher] // HASH_VALUE 0A62B0334A337434 // INDEX 567 -uiEM_Interested [INTERESSIERT] +uiEM_Interested [interessiert] // HASH_VALUE 0F21881C4641E041 // INDEX 568 -uiEM_Jealous [EIFERSÜCHTIG] +uiEM_Jealous [eifersüchtig] // HASH_VALUE 0823C4424A32B84D // INDEX 569 -uiEM_Joyful [ERFREUT] +uiEM_Joyful [freudig] // HASH_VALUE 4490942C4490942C // INDEX 570 -uiEM_Kind [GUTMÜTIG] +uiEM_Kind [freundlich] // HASH_VALUE 5894143058941430 // INDEX 571 -uiEM_Lazy [FAUL] +uiEM_Lazy [faul] // HASH_VALUE 5450F43044909420 // INDEX 572 -uiEM_Loathing [VERABSCHEUEN] +uiEM_Loathing [hassen] // HASH_VALUE 85508C2B09F0A41C // INDEX 573 -uiEM_Logical [LOGISCH] +uiEM_Logical [logisch] // HASH_VALUE CB50F4324D301C32 // INDEX 574 -uiEM_Lonely [EINSAM] +uiEM_Lonely [einsam] // HASH_VALUE 4454F4304454F430 // INDEX 575 -uiEM_Loud [LAUTSTARK] +uiEM_Loud [lautstark] // HASH_VALUE 4494F4304494F430 // INDEX 576 -uiEM_Love [LIEBE] +uiEM_Love [lieben] // HASH_VALUE 8C6104288C11A432 // INDEX 577 -uiEM_Loyal [LOYAL] +uiEM_Loyal [loyal] // HASH_VALUE 0E330C4851120C33 // INDEX 578 -uiEM_Lustful [LÜSTERN] +uiEM_Lustful [attraktiv] // HASH_VALUE 0740A83DC5C1A83D // INDEX 579 -uiEM_Malevolent [BÖSWILLIG] +uiEM_Malevolent [bösartig] // HASH_VALUE 08E1DC444A508819 // INDEX 580 -uiEM_Malicious [TÜCKISCH] +uiEM_Malicious [hinterhältig] // HASH_VALUE 4C5054344C505434 // INDEX 581 -uiEM_Mean [GEIZIG] +uiEM_Mean [fies] // HASH_VALUE C0D08C34C030B433 // INDEX 582 -uiEM_Megalomaniac [GRÖßENWAHNSINNIG] +uiEM_Megalomaniac [megaloman] // HASH_VALUE 409454344C546424 // INDEX 583 -uiEM_Merciful [GNÄDIG] +uiEM_Merciful [gnädig] // HASH_VALUE 48539C384E50182B // INDEX 584 -uiEM_Mischievous [SCHADENFROH] +uiEM_Mischievous [schelmisch] // HASH_VALUE 88609C2AC870C82B // INDEX 585 -uiEM_Mocking [VERSPOTTEND] +uiEM_Mocking [imitieren] // HASH_VALUE 91D3F43B0D92F045 // INDEX 586 -uiEM_Nervous [NERVÖS] +uiEM_Nervous [nervös] // HASH_VALUE 0CD3043C4E51842D // INDEX 587 -uiEM_Neutral [NEUTRAL] +uiEM_Neutral [neutral] // HASH_VALUE 44D0943844D09438 // INDEX 588 -uiEM_Nice [NETT] +uiEM_Nice [nett] // HASH_VALUE 4AA1C0340A51983B // INDEX 589 -uiEM_Noclue [KEINE IDEE] +uiEM_Noclue [ahnungslos] // HASH_VALUE 4490F4384490F438 // INDEX 590 -uiEM_None [NICHTS] +uiEM_None [untätig] // HASH_VALUE 4F41A8218691D437 // INDEX 591 -uiEM_Nostalgic [SEHNSÜCHTIG] +uiEM_Nostalgic [nostalgisch] // HASH_VALUE C931E8469001FC37 // INDEX 592 -uiEM_Obnoxious [ANSTÖßIG] +uiEM_Obnoxious [unausstehlich] // HASH_VALUE 0AE3B82707A1A43B // INDEX 593 -uiEM_Obscure [ANONYM] +uiEM_Obscure [obskur] // HASH_VALUE 44D4243C4450344C // INDEX 594 -uiEM_Obsessed [BESESSEN] +uiEM_Obsessed [besessen] // HASH_VALUE 4490643C44504438 // INDEX 595 -uiEM_Offended [BELEIDIGEND] +uiEM_Offended [schockiert] // HASH_VALUE 4B02C438CD429839 // INDEX 596 -uiEM_Optimistic [OPTIMISTISCH] +uiEM_Optimistic [optimistisch] // HASH_VALUE 5050643C5050643C // INDEX 597 -uiEM_Over [OVER&OUT] +uiEM_Over [bewältigen] // HASH_VALUE 05C0501D86817822 // INDEX 598 -uiEM_Pacific [PAZIFISTISCH] +uiEM_Pacific [urlaubsreif] // HASH_VALUE 8C317C284971CC37 // INDEX 599 -uiEM_Painful [SCHMERZHAFT] +uiEM_Painful [schmerzhaft] // HASH_VALUE C6015C31C4228424 // INDEX 600 -uiEM_Panick [PANISCH] +uiEM_Panick [panisch] // HASH_VALUE 4B11902ECBA3D037 // INDEX 601 -uiEM_Patient [GEDULDIG] +uiEM_Patient [geduldig] // HASH_VALUE 0D9278308CF2FC30 // INDEX 602 -uiEM_Patriotic [PATRIOTISCH] +uiEM_Patriotic [patriotisch] // HASH_VALUE 4010544040504438 // INDEX 603 -uiEM_Pedantic [PEDANTISCH] +uiEM_Pedantic [pedantisch] // HASH_VALUE 0EC27C1BCAE33840 // INDEX 604 -uiEM_Perturbed [BEUNRUHIGEND] +uiEM_Perturbed [beunruhigt] // HASH_VALUE 5032AC44C913DC20 // INDEX 605 -uiEM_Pessimistic [PESSIMISTISCH] +uiEM_Pessimistic [pessimistisch] // HASH_VALUE 5414544054901430 // INDEX 606 -uiEM_Petulant [GEREIZT] +uiEM_Petulant [launisch] // HASH_VALUE 4802B4250A00E034 // INDEX 607 -uiEM_Philosophical [PHILOSOPHISCH] +uiEM_Philosophical [philosophisch] // HASH_VALUE 0C520046D152BC2E // INDEX 608 -uiEM_Pitying [BEMITLEIDEND] +uiEM_Pitying [bemitleiden] // HASH_VALUE 4F62B436CDA1F837 // INDEX 609 -uiEM_Playful [VERSPIELT] +uiEM_Playful [verspielt] // HASH_VALUE 86F19822C861982C // INDEX 610 -uiEM_Pleased [GEFÄLLIG] +uiEM_Pleased [erfreut] // HASH_VALUE CD71F441CCD2083B // INDEX 611 -uiEM_Point [ZEIGEND] +uiEM_Point [zeigen] // HASH_VALUE CC41B81FC561B83A // INDEX 612 -uiEM_Pointback [ZURÜCKZEIGEND] +uiEM_Pointback [hinten] // HASH_VALUE 4EA2E444CA03E03B // INDEX 613 -uiEM_Pointfront [NACH VORN ZEIGEND] +uiEM_Pointfront [vorn] // HASH_VALUE CCD2E82F0A41E03A // INDEX 614 -uiEM_Pointleft [NACH LINKS ZEIGEND] +uiEM_Pointleft [links] // HASH_VALUE 4CB1F435CB721035 // INDEX 615 -uiEM_Pointright [NACH RECHTS ZEIGEND] +uiEM_Pointright [rechts] // HASH_VALUE C8D2B44049138C44 // INDEX 616 -uiEM_Polite [HÖFLICH] +uiEM_Polite [höflich] // HASH_VALUE 1022F03C4E022047 // INDEX 617 -uiEM_Pompous [PRUNKVOLL] +uiEM_Pompous [prahlerisch] // HASH_VALUE 44D4F4404C546448 // INDEX 618 -uiEM_Powerful [MÄCHTIG] +uiEM_Powerful [mächtig] // HASH_VALUE 0C21D83C4EB2E02E // INDEX 619 -uiEM_Praying [BETEND] +uiEM_Praying [beten] // HASH_VALUE CD73D83BD062F038 // INDEX 620 -uiEM_Proud [STOLZ] +uiEM_Proud [stolz] // HASH_VALUE CB81002B1112B038 // INDEX 621 -uiEM_Provocative [PROVOKANT] +uiEM_Provocative [provokativ] // HASH_VALUE 0B6258599543BC25 // INDEX 622 -uiEM_Puzzled [WUNDERND] +uiEM_Puzzled [verdutzt] // HASH_VALUE 0D52103F4C430033 // INDEX 623 -uiEM_Quiet [STILL] +uiEM_Quiet [gelassen] // HASH_VALUE 08D1C8344622D430 // INDEX 624 -uiEM_Ready [BEREIT] +uiEM_Ready [bereit] // HASH_VALUE 09D1842D0EE4F42C // INDEX 625 -uiEM_Reassured [BESTÄTIGEN] +uiEM_Reassured [ermutigt] // HASH_VALUE 4932D03C88A1A835 // INDEX 626 -uiEM_Rebellious [REBELLISCH] +uiEM_Rebellious [rebellisch] // HASH_VALUE 48D0544850D45430 // INDEX 627 -uiEM_Reckless [TOLLKÜHN] +uiEM_Reckless [tollkühn] // HASH_VALUE 4AB1E4394C22CC23 // INDEX 628 -uiEM_Regretful [BEDAUERND] +uiEM_Regretful [bedauern] // HASH_VALUE C8B1AC2448818433 // INDEX 629 -uiEM_Relaxed [ENTSPANNT] +uiEM_Relaxed [entspannt] // HASH_VALUE 4810544844506414 // INDEX 630 -uiEM_Relieved [ERLEICHTERT] +uiEM_Relieved [erleichtert] // HASH_VALUE 4D82E835C8E2E429 // INDEX 631 -uiEM_Reluctant [WIDERWILLIG] +uiEM_Reluctant [widerwillig] // HASH_VALUE C8A2AC3E8972D046 // INDEX 632 -uiEM_Remorseful [REUMÜTIG] +uiEM_Remorseful [reumütig] // HASH_VALUE 48D454484450E41C // INDEX 633 -uiEM_Resigned [ZURÜCKTRETEND] +uiEM_Resigned [resignieren] // HASH_VALUE 09F46C40C6F3943F // INDEX 634 -uiEM_Respectful [RESPEKTVOLL] +uiEM_Respectful [respektvoll] // HASH_VALUE 46337C3A04C2784B // INDEX 635 -uiEM_Revengeful [RACHSÜCHTIG] +uiEM_Revengeful [rachsüchtig] // HASH_VALUE 44D0944844D09448 // INDEX 636 -uiEM_Rice [REIS] +uiEM_Rice [reis] // HASH_VALUE 481094484410540C // INDEX 637 -uiEM_Ridicule [VERHÖHNEN] +uiEM_Ridicule [verspotten] // HASH_VALUE C96210498E11A42C // INDEX 638 -uiEM_Righteous [GERECHT] +uiEM_Righteous [gerecht] // HASH_VALUE 4050F44840504438 // INDEX 639 -uiEM_Romantic [ROMANTISCH] +uiEM_Romantic [romantisch] // HASH_VALUE 4410544844105448 // INDEX 640 -uiEM_Rude [FRECH] +uiEM_Rude [unhöflich] // HASH_VALUE 09D1682B85C27419 // INDEX 641 -uiEM_Sad [BETRÜBT] +uiEM_Sad [betrübt] // HASH_VALUE 88A284338BC2A817 // INDEX 642 -uiEM_Sarcastic [SARKASTISCH] +uiEM_Sarcastic [sarkastisch] // HASH_VALUE 09B1742C45D2781E // INDEX 643 -uiEM_Scared [VERÄNGSTIGT] +uiEM_Scared [verängstigt] // HASH_VALUE 4CD0344C44909410 // INDEX 644 -uiEM_Scolding [TADELND] +uiEM_Scolding [tadeln] // HASH_VALUE 4202443E43F3443F // INDEX 645 -uiEM_Sedate [BERUHIGEN] +uiEM_Sedate [besänftigen] // HASH_VALUE C9F1842AC9D1D037 // INDEX 646 -uiEM_Selfish [SELBSTSÜCHTIG] +uiEM_Selfish [selbstsüchtig] // HASH_VALUE 4E02C0330BE3044A // INDEX 647 -uiEM_Serious [WICHTIG] +uiEM_Serious [ernsthaft] // HASH_VALUE 8902083E8940801B // INDEX 648 -uiEM_Shameless [SCHAMLOS] +uiEM_Shameless [schamlos] // HASH_VALUE 4450844C48D49440 // INDEX 649 -uiEM_Sheepish [KLEINLAUT] +uiEM_Sheepish [verlegen] // HASH_VALUE 8AA2C0430B430444 // INDEX 650 -uiEM_Shifty [VERSCHLAGEN] +uiEM_Shifty [gerissen] // HASH_VALUE 0430982D89F19427 // INDEX 651 -uiEM_Shocked [SCHOCKIERT] +uiEM_Shocked [geschockt] // HASH_VALUE 5034D4504D14F452 // INDEX 652 -uiEM_Shutup [SEI STILL] +uiEM_Shutup [schweigen] // HASH_VALUE 10E3F4474E83383C // INDEX 653 -uiEM_Shy [SCHÜCHTERN] +uiEM_Shy [schüchtern] // HASH_VALUE 48D0944C48D0944C // INDEX 654 -uiEM_Sigh [SEUFZEN] +uiEM_Sigh [seufzen] // HASH_VALUE 0530A42D8AE19429 // INDEX 655 -uiEM_Silence [STILLE] +uiEM_Silence [still] // HASH_VALUE CE5108414C220844 // INDEX 656 -uiEM_Silly [DUMM] +uiEM_Silly [närrisch] // HASH_VALUE 8942083D4901A41F // INDEX 657 -uiEM_Sincerely [AUFRICHTIG] +uiEM_Sincerely [aufrichtig] // HASH_VALUE 0BE2DC3BCDC31038 // INDEX 658 -uiEM_Sleepy [SCHLÄFRIG] +uiEM_Sleepy [schläfrig] // HASH_VALUE 1123144B50C34844 // INDEX 659 -uiEM_Sly [HINTERLISTIG] +uiEM_Sly [verschlagen] // HASH_VALUE 4551B42E47D1BC22 // INDEX 660 -uiEM_Smack [OHRFEIGE] +uiEM_Smack [schlagen] // HASH_VALUE 4454D44C4454D44C // INDEX 661 -uiEM_Smug [SELBSTGEFÄLLIG] +uiEM_Smug [selbstgefällig] // HASH_VALUE 5173384DCFE33850 // INDEX 662 -uiEM_Sorry [ENTSCHULDIGUNG] +uiEM_Sorry [entschuldigen] // HASH_VALUE 5450044C4C546414 // INDEX 663 -uiEM_Spiteful [BOSHAFT] +uiEM_Spiteful [boshaft] // HASH_VALUE CE230037C9D0A42C // INDEX 664 -uiEM_Squeamish [ZIMPERLICH] +uiEM_Squeamish [empfindlich] // HASH_VALUE 8800C42B4AC0C032 // INDEX 665 -uiEM_Stop [HALT] +uiEM_Stop [stoppen] // HASH_VALUE 8C63FC46CE73C841 // INDEX 666 -uiEM_Strong [STARK] +uiEM_Strong [stark] // HASH_VALUE 4054444C4C94F408 // INDEX 667 -uiEM_Stubborn [HARTNÄCKIG] +uiEM_Stubborn [dickköpfig] // HASH_VALUE 4B62F831CA719026 // INDEX 668 -uiEM_Suffering [LEIDEND] +uiEM_Suffering [leiden] // HASH_VALUE D1F3C82F0BF3F849 // INDEX 669 -uiEM_Surprised [ÜBERRASCHT] +uiEM_Surprised [überrascht] // HASH_VALUE 1053EC3A0C92F044 // INDEX 670 -uiEM_Suspicious [VERDÄCHTIG] +uiEM_Suspicious [verdächtigen] // HASH_VALUE 4C54145044909450 // INDEX 671 -uiEM_Taunting [SPOTTEN] +uiEM_Taunting [spotten] // HASH_VALUE 8E028C2686B1D032 // INDEX 672 -uiEM_Terrified [GRAUENERREGEND] +uiEM_Terrified [entsetzt] // HASH_VALUE 4C5084504C54642C // INDEX 673 -uiEM_Thankful [DANKBAR] +uiEM_Thankful [dankbar] // HASH_VALUE D333DC370DF22854 // INDEX 674 -uiEM_Thirsty [DURSTIG] +uiEM_Thirsty [durstig] // HASH_VALUE 0BD38C440AF2C83F // INDEX 675 -uiEM_Thoughtful [NACHDENKLICH] +uiEM_Thoughtful [nachdenken] // HASH_VALUE 4852D0264C429C2F // INDEX 676 -uiEM_Tired [MÜDE] +uiEM_Tired [müde] // HASH_VALUE 4410F45054901448 // INDEX 677 -uiEM_Tolerant [TOLERANT] +uiEM_Tolerant [tolerant] // HASH_VALUE 54D024504450C408 // INDEX 678 -uiEM_Troubled [BEUNRUHIGT] +uiEM_Troubled [besorgt] // HASH_VALUE 0951EC2D4BD2BC28 // INDEX 679 -uiEM_Uncertain [UNGEWISS] +uiEM_Uncertain [unschlüssig] // HASH_VALUE CEA2A02C4A52344E // INDEX 680 -uiEM_Unhappy [BEDRÜCKT] +uiEM_Unhappy [unzufrieden] // HASH_VALUE 0F22E4330BB0E43A // INDEX 681 -uiEM_Unwilling [UNFREIWILLIG] +uiEM_Unwilling [unwillig] // HASH_VALUE 449054584C546414 // INDEX 682 -uiEM_Vengeful [RACHSÜCHTIG] +uiEM_Vengeful [rachedurstig] // HASH_VALUE 5450145C5450145C // INDEX 683 -uiEM_Wait [WARTEN] +uiEM_Wait [warten] // HASH_VALUE 4C94145C4C94145C // INDEX 684 -uiEM_Warm [HERZLICH] +uiEM_Warm [herzlich] // HASH_VALUE 5894145C5894145C // INDEX 685 -uiEM_Wary [MISSTRAUISCH] +uiEM_Wary [misstrauisch] // HASH_VALUE 4494145C4494145C // INDEX 686 -uiEM_Wave [WELLE] +uiEM_Wave [winken] // HASH_VALUE 4871B832CCE1CC33 // INDEX 687 -uiEM_Whine [WIMMERN] +uiEM_Whine [beschweren] // HASH_VALUE 0731883687727424 // INDEX 688 -uiEM_Wicked [BÖSE] +uiEM_Wicked [böse] // HASH_VALUE 44D4945C44D4945C // INDEX 689 -uiEM_Wise [WEISE] +uiEM_Wise [weise] // HASH_VALUE 0E33DC471002083E // INDEX 690 -uiEM_Wistful [WEHMÜTIG] +uiEM_Wistful [wehmütig] // HASH_VALUE 4832F44AD0D2C029 // INDEX 691 -uiEM_Worried [BESORGT] +uiEM_Worried [sorgen] // HASH_VALUE 06D1DC499002C024 // INDEX 692 -uiEM_Wounded [VERWUNDET] +uiEM_Wounded [verletzt] // HASH_VALUE 4CD414644CD41464 // INDEX 693 -uiEM_Yawn [GÄHNEN] +uiEM_Yawn [gähnen] // HASH_VALUE 4054F46444504438 // INDEX 694 -uiEM_Youandme [DU UND ICH] +uiEM_Youandme [gemeinsam] // HASH_VALUE CBD0C4394911E831 // INDEX 695 @@ -2903,11 +2903,11 @@ uiRadarZoom3 [250m] // HASH_VALUE 405E2F458F710411 // INDEX 724 -uimZoomIn [Reinzoomen] +uimZoomIn [Hineinzoomen] // HASH_VALUE 4CD0F4685454F480 // INDEX 725 -uimZoomOut [Rauszoomen] +uimZoomOut [Herauszoomen] // HASH_VALUE 7212E837BB01C03B // INDEX 726 @@ -2955,11 +2955,11 @@ uiInventoryFull [INVENTAR VOLL] // HASH_VALUE D9F4B3922521435D // INDEX 737 -uiBonusURInAWorkshop [Bonus: Du bist in einer Werkstatt] +uiBonusURInAWorkshop [Bonus: du bist in einer Werkstatt] // HASH_VALUE 3F32C42ACACEB43B // INDEX 738 -uiSourceObject [QUELLENOBJEKT] +uiSourceObject [URSPRUNGSOBJEKT] // HASH_VALUE 87C18F23CAD10A2F // INDEX 739 @@ -3015,19 +3015,19 @@ uittClickSelMat [Klicke, um Rohmaterialien aus deiner Tasche zu nehmen] // HASH_VALUE E32F9F0DC46BED9B // INDEX 752 -uittDropPlan [Lasse einen Handwerksplan fallen, um ein Objekt zu erstellen] +uittDropPlan [Lass einen Handwerksplan fallen, um ein Objekt zu erstellen] // HASH_VALUE 2F8F0856F46D4C19 // INDEX 753 -uittClickSelTool [Klicke, um ein Werkzeug aus dem Etui zu wählen] +uittClickSelTool [Klicke, um ein Werkzeug auszuwählen] // HASH_VALUE 5D24E07C5DFACCB8 // INDEX 754 -uittDefComp [Aufbau-Vorlage] +uittDefComp [Standard-Komposition] // HASH_VALUE 6819348DE815BFAF // INDEX 755 -uittClearComp [Lösche den Aufbau] +uittClearComp [Lösche die Komposition] // HASH_VALUE 97978B9D54F7AF6C // INDEX 756 @@ -3039,7 +3039,7 @@ uittDropItem [Einen Gegenstand zum Reparieren fallen lassen] // HASH_VALUE 2F8F0856F46D4C19 // INDEX 758 -uittClickTool [Klicken, um ein Werkzeug aus dem Etui zu wählen] +uittClickTool [Klicke, um ein Werkzeug auszuwählen] // HASH_VALUE 1A98B46411D75E99 // INDEX 759 @@ -3055,11 +3055,11 @@ uittStartFaRefine [Veredelung starten] // HASH_VALUE EE1AB066D965CB6A // INDEX 762 -uigcUnitMeters [Meter] +uigcUnitMeters [ Meter] // HASH_VALUE 112BE84E25A4C48A // INDEX 763 -uigcUnitChar [Charaktere] +uigcUnitChar [ Charaktere] // HASH_VALUE 2408508024085080 // INDEX 764 @@ -3067,27 +3067,27 @@ uigcUnitPercent [ %] // HASH_VALUE 50582440208C4494 // INDEX 765 -uigcPreSet [Voreinstellung: ] +uigcPreSet [Standard: ] // HASH_VALUE CEA2083E8EF12841 // INDEX 766 -uigcPreSetLow [Niedrig] +uigcPreSetLow [niedrig] // HASH_VALUE 48B184334741A43B // INDEX 767 -uigcPreSetMedium [MITTEL] +uigcPreSetMedium [mittel] // HASH_VALUE 8C42E02F0C01D422 // INDEX 768 -uigcPreSetNormal [NORMAL] +uigcPreSetNormal [normal] // HASH_VALUE 48D0942048D09420 // INDEX 769 -uigcPreSetHigh [HOCH] +uigcPreSetHigh [hoch] // HASH_VALUE D292302812911034 // INDEX 770 -uigcPreSetCustom [Individuell] +uigcPreSetCustom [individuell] // HASH_VALUE 91E2EC368BB3DC36 // INDEX 771 @@ -3103,7 +3103,7 @@ uiGCCancel [ABBRUCH] // HASH_VALUE 91E2EC368BB3DC36 // INDEX 774 -uiGCApply [Übernehmen] +uiGCApply [übernehmen] // HASH_VALUE 48D0B43C48D0B43C // INDEX 775 @@ -3127,7 +3127,7 @@ uigcHighTextureMode [HOCH (128 MB)] // HASH_VALUE 14D8DB8825D52063 // INDEX 780 -uigcScreenRatio [Bildschirm-Ratio:] +uigcScreenRatio [Bildschirm-Anzeigeformat:] // HASH_VALUE B19B14CA6FAB24C5 // INDEX 781 @@ -3144,8 +3144,8 @@ uigcScreenRatioCustom [ANGEPASST] // HASH_VALUE F58CB6044EEA9C23 // INDEX 784 uigcttScreenRatio [@{6F6F}Aspect Ratio@{FFFF} deines Bildschirms.\n - Ändere die Einstellung, wenn du nicht über einen Standard 4:3 Bildschirm verfügst.\n - NB: Du brauchst die Bildschirmauflösung nicht zu ändern, Ryzom übernimmt dies automatisch.] + Ändere diese Einstellung, wenn du keinen 4:3 Standard-Bildschirm hast.\n + Du musst die Bildschirmauflösung nicht ändern, Ryzom übernimmt diese automatisch.] // HASH_VALUE 5050241C50D09420 // INDEX 785 @@ -3177,7 +3177,7 @@ uigcInterface [INTERFACE] // HASH_VALUE 8A61DC29CDA19836 // INDEX 792 -uigcHUD [HUD] +uigcHUD [STATUSANZEIGEN] // HASH_VALUE 8D91AC32CB222C50 // INDEX 793 @@ -3189,7 +3189,7 @@ uigcWinColor [ÜBERSCHRIFTEN] // HASH_VALUE 0CB0F444FB91E30C // INDEX 795 -uigcWinColorR2 [RING ÜBERSCHRIFTEN] +uigcWinColorR2 [RING-ÜBERSCHRIFTEN] // HASH_VALUE 5450840C5450840C // INDEX 796 @@ -3197,11 +3197,11 @@ uigcChatColor [CHAT] // HASH_VALUE 4B01AC26C830BC29 // INDEX 797 -uigcEnglish [ENGLISH] +uigcEnglish [ENGLISCH] // HASH_VALUE 4C5024185050140C // INDEX 798 -uigcFrancais [FRANCAIS] +uigcFrancais [FRANZÖSISCH] // HASH_VALUE 8D229C20C911A81F // INDEX 799 @@ -3209,15 +3209,15 @@ uigcDeutch [DEUTSCH] // HASH_VALUE 0912144D9193DC2A // INDEX 800 -uigcRussian [РУССКИЙ] +uigcRussian [RUSSISCH] // HASH_VALUE CBC1A432CBD2FC37 // INDEX 801 -uigcSpanish [ESPANOL] +uigcSpanish [SPANISCH] // HASH_VALUE D72E51D69923FABB // INDEX 802 -uigcRequestReboot [Ryzom muss neugestartet werden, um diese Änderungen zu übernehmen.] +uigcRequestReboot [Ryzom muss neu gestartet werden, um diese Änderungen zu übernehmen. Jetzt neustarten?] // HASH_VALUE 11E314364F722841 // INDEX 803 @@ -3237,7 +3237,7 @@ uigcSound [SOUND] // HASH_VALUE 07F1B03C09518420 // INDEX 807 -uigcLandmarkColor [LANDMARKEN] +uigcLandmarkColor [KARTENMARKIERUNG] // HASH_VALUE 38D4041838D40418 // INDEX 808 @@ -3265,11 +3265,11 @@ uiGamma [Gamma] // HASH_VALUE 182AF39428C3A0A6 // INDEX 814 -uiDivideTxBy2 [Textur niedriger Auflösung] +uiDivideTxBy2 [Textur mit niedriger Auflösung] // HASH_VALUE 7458145C4C906480 // INDEX 815 -uiWaitVBL [Warte VBL] +uiWaitVBL [VBL Sync] // HASH_VALUE 6CA7B090A988CC8A // INDEX 816 @@ -3289,7 +3289,7 @@ uiVision [Sichtweite] // HASH_VALUE 23926B7513882442 // INDEX 820 -uiTileNear [Details am Sichthorizont] +uiTileNear [Fern-Details] // HASH_VALUE F0B9B0932419D0A7 // INDEX 821 @@ -3325,7 +3325,7 @@ uiFxCloudQuality [Qualität] // HASH_VALUE 6ABAAC8EDE709CB2 // INDEX 829 -uiFxCloudUpdate [Wolkenaktualisierung] +uiFxCloudUpdate [Update-Frequenz] // HASH_VALUE A89984725FF26848 // INDEX 830 @@ -3345,7 +3345,7 @@ uiFxDensityBloom [Intensität] // HASH_VALUE B2D1AC8FB27D333E // INDEX 834 -uiFxTooltipBloom [Der Bloom-Effekt wird von deinem System nicht unterstützt. Eventuell hilft ein Treiberupdate deiner Grafikkarte.] +uiFxTooltipBloom [Der Bloom-Effekt wird von deinem System nicht unterstützt. Eventuell hilft ein Treiber-Update für deine Grafikkarte.] // HASH_VALUE 6573D09729FA6452 // INDEX 835 @@ -3361,7 +3361,7 @@ uiCharMaxPoly [Max. Polygone] // HASH_VALUE C3DAC002D5C9E0FD // INDEX 838 -uiCharMaxNotCLod [Max. Hoch Def] +uiCharMaxNotCLod [Max. HD] // HASH_VALUE 209C14187058C40C // INDEX 839 @@ -3369,7 +3369,7 @@ uiCharFarClip [Sichtweite] // HASH_VALUE 28E8807DD82152A6 // INDEX 840 -uiEnableRacialAnimation [Aktiviere die neuen Animationen] +uiEnableRacialAnimation [alternative Geh-Animation] // HASH_VALUE 5CDA8874D1C96450 // INDEX 841 @@ -3378,27 +3378,27 @@ uiHDTexture [Hohe Texturauflösung] // interface - hud // HASH_VALUE 8A61DC29CDA19836 // INDEX 842 -uiHud [HUD] +uiHud [Statusanzeigen] // HASH_VALUE 6EEBB02CCB28D4BA // INDEX 843 -uiHardwareCursor [Hardware Cursor] +uiHardwareCursor [Hardware-Cursor] // HASH_VALUE 33832A66F2D875AC // INDEX 844 -uiActivateHardwareCursor [Hardware Cursor aktivieren?] +uiActivateHardwareCursor [Hardware-Cursor aktivieren?] // HASH_VALUE 90A54C8E6B99734F // INDEX 845 -uiShowUnderCursor [Unter Zeiger anzeigen] +uiShowUnderCursor [Anzeige unterm Mauszeiger] // HASH_VALUE A8B74796A9F41865 // INDEX 846 -uiShowTargeted [Anvisierten zeigen] +uiShowTargeted [Ziel zeigen] // HASH_VALUE 5A081C44E478CB3A // INDEX 847 -uiSelectWithRClick [Rechtsklickauswahl aktiviert] +uiSelectWithRClick [Rechtsklick-Auswahl aktiviert] // HASH_VALUE 4E72B87EA335E4A3 // INDEX 848 @@ -3406,7 +3406,7 @@ uiFollowOnAtk [Dem angegriffenen Ziel folgen] // HASH_VALUE 7EB8F3F064C41068 // INDEX 849 -uiAtkOnSelect [Ziel sofort nach der Auswahl angreifen] +uiAtkOnSelect [Ziel sofort nach Auswahl angreifen] // HASH_VALUE 6E56639A22D5F44D // INDEX 850 @@ -3414,16 +3414,16 @@ uiCharFade [Charakterausblendung] // HASH_VALUE E7C8A475884340BF // INDEX 851 -uiCharOpacityMin [Minimale Durchsichtigkeit] +uiCharOpacityMin [Minimale Transparenz] // HASH_VALUE 98FC03AA6A398888 // INDEX 852 -uiCurrentActionOut [dynamische Anzeige der laufenden Aktion] +uiCurrentActionOut [Dynamische Anzeige der laufenden Aktion] // HASH_VALUE 0290135ACB958DD5 // INDEX 853 -uittCurrentActionOut [Falls angekreuzt, wird die @{6F6F}laufende Aktion@{FFFF} unter der Aktionsleiste angezeigt, wenn nötig.\n - Falls nicht angekreuzt, wird die @{6F6F}laufende Aktion@{FFFF} im Statusfenster des Spielers angezeigt.] +uittCurrentActionOut [Falls angekreuzt, wird der Verlauf der @{6F6F}laufenden Aktion@{FFFF} mittig unter der Aktionsleiste angezeigt.\n + Falls nicht angekreuzt, wird die @{6F6F}laufende Aktion@{FFFF} unterm Werte-Fenster (links oben) angezeigt.] // HASH_VALUE 2909F07F0AE530C3 // INDEX 854 @@ -3439,7 +3439,7 @@ uiGlobalOpacity [Allgemeine Transparenz] // HASH_VALUE 2683447557870F6A // INDEX 857 -uiMouseOverOpacity [Transparenz bei Mausberührung] +uiMouseOverOpacity [Transparenz unterm Mauszeiger] // HASH_VALUE 26836833A153FC85 // INDEX 858 @@ -3483,7 +3483,7 @@ uiAlphaRolloverContent [Inhalt] // HASH_VALUE A1E43C6A1BA05492 // INDEX 868 -uiRolloverAlphaSpeed [Ausblend-Geschwindigkeit] +uiRolloverAlphaSpeed [Ausblende-Geschwindigkeit] // HASH_VALUE 63372888A6D9B4B2 // INDEX 869 @@ -3543,15 +3543,15 @@ uiCCDShout [Farbe der gerufenen Texte] // HASH_VALUE 6C1854506C185450 // INDEX 883 -uiTellColor [Tellfenster] +uiTellColor [Anflüstern/Tell] // HASH_VALUE AC6A833F58C07C60 // INDEX 884 -uittChooseTellColor [Farbe für Texte in Tellfenstern wählen] +uittChooseTellColor [Farbe für Texte im Flüster-Chat wählen] // HASH_VALUE 56C58C5B98B562B2 // INDEX 885 -uiCCDTell [Farbe der Texte in Tellfenstern ändern] +uiCCDTell [Farbe der Texte im Flüster-Chat] // HASH_VALUE 0A51C82F8B019431 // INDEX 886 @@ -3559,11 +3559,11 @@ uiNpcColor [NPC] // HASH_VALUE E307BB379F315F3D // INDEX 887 -uittChooseNpcColor [Farbe für NPC-Texte wählen] +uittChooseNpcColor [Farbe für NPC-Texte im Chat wählen] // HASH_VALUE 9EE73730DAF35326 // INDEX 888 -uiCCDNpc [Farbe der NPC-Texte] +uiCCDNpc [Farbe der NPC-Texte im Chat] // HASH_VALUE A7FB9466A5CB948F // INDEX 889 @@ -3571,11 +3571,11 @@ uiCiviColor [Zivilisation] // HASH_VALUE 079E08B2B28629D9 // INDEX 890 -uittChooseCiviColor [Farbe für Zivilisationstexte wählen] +uittChooseCiviColor [Farbe für Zivilisations-Chattexte wählen] // HASH_VALUE AB29685099037EB0 // INDEX 891 -uiCCDCivi [Farbe der Zivilisationstexte] +uiCCDCivi [Farbe der Zivilisations-Chattexte] // HASH_VALUE A65994AEEEFA08B2 // INDEX 892 @@ -3583,11 +3583,11 @@ uiTerriColor [Territorium] // HASH_VALUE F23E3CB46DE4AC98 // INDEX 893 -uittChooseTerriColor [Farbe für Territoriumstexte wählen] +uittChooseTerriColor [Farbe für Territoriums-Chattexte wählen] // HASH_VALUE 95909C692C9B9064 // INDEX 894 -uiCCDTerri [Farbe der Territoriumstexte] +uiCCDTerri [Farbe der Territoriums-Chattexte] // HASH_VALUE 7458E45464DC2494 // INDEX 895 @@ -3595,11 +3595,11 @@ uiUnivColor [Universum] // HASH_VALUE F60920A6EC859C69 // INDEX 896 -uittChooseUnivColor [Farbe für Universumstexte wählen] +uittChooseUnivColor [Farbe für Universums-Chattexte wählen] // HASH_VALUE 58742265AB7AF8A7 // INDEX 897 -uiCCDUniv [Farbe der Universumstexte] +uiCCDUniv [Farbe der Universums-Chattexte] // HASH_VALUE A807887AA7B6AC97 // INDEX 898 @@ -3607,16 +3607,16 @@ uiRegionColor [Region] // HASH_VALUE 29E73B5EE804A06D // INDEX 899 -uittChooseRegionColor [Farbe für Regionstexte wählen] +uittChooseRegionColor [Farbe für Regions-Chattexte wählen] // HASH_VALUE 82820D6BEE8C6D1D // INDEX 900 -uittChatEnter [Wenn du dieses Feld ankreuzt, verlässt du den Chat nicht nach Versand einer Nachricht.\n - Du kannst auch den Befehl @{6F6F}/chat @{FFFF}eingeben, um von einem Modus in den anderen zu wechseln.] +uittChatEnter [Wenn du dieses Feld ankreuzt, verlässt du den Chat nicht nach dem Absenden einer Nachricht.\n + Du kannst den Befehl @{6F6F}/chat @{FFFF}eingeben, um von einem Modus in den anderen zu wechseln.] // HASH_VALUE EA58130CF3F5B8B7 // INDEX 901 -uiCCDRegion [Farbe der Regionstexte] +uiCCDRegion [Farbe der Regions-Chattexte] // HASH_VALUE 6C59A0585505AB92 // INDEX 902 @@ -3648,7 +3648,7 @@ uiLabColor [Orientierung] // HASH_VALUE 99A4BF4686706A63 // INDEX 909 -uiMemColor [Gilde & Gruppe] +uiMemColor [Gilde und Gruppe] // HASH_VALUE 7018542070185420 // INDEX 910 @@ -3664,100 +3664,100 @@ uiTraColor [Handel] // HASH_VALUE 0A51C82F8B019431 // INDEX 913 -uiBotColor [NSC] +uiBotColor [NPC] // HASH_VALUE 24097393EA255FA4 // INDEX 914 -uiCCDPla [Farbe der Spielerüberschrift] +uiCCDPla [Farbe der Überschrift für 'Spieler'] // HASH_VALUE 18D9B07954E5C86F // INDEX 915 -uiCCDAni [Farbe der Tierüberschrift] +uiCCDAni [Farbe der Überschrift für 'Tiere'] // HASH_VALUE ADF6E874E7697B70 // INDEX 916 -uiCCDCom [Kommunikationsüberschriften-Farbe] +uiCCDCom [Farbe der Überschrift für 'Kommunikation'] // HASH_VALUE EAC95B58DB77F4AD // INDEX 917 -uiCCDInv [Inventarüberschriften-Farbe] +uiCCDInv [Farbe der Überschrift für 'Inventar'] // HASH_VALUE 178AC0955396D88B // INDEX 918 -uiCCDOpt [Optionenüberschriften-Farbe] +uiCCDOpt [Farbe der Überschrift für 'Optionen'] // HASH_VALUE 9214186CEF38E8B3 // INDEX 919 -uiCCDLab [Orientationsüberschriften-Farbe] +uiCCDLab [Farbe der Überschrift für 'Orientation'] // HASH_VALUE D82A1C71C4806F53 // INDEX 920 -uiCCDMem [Gilden- & Gruppenüberschriften-Farbe] +uiCCDMem [Farbe der Überschrift für 'Gilden- und Gruppen'] // HASH_VALUE DB99DC7FA7986B13 // INDEX 921 -uiCCDHel [Hilfeüberschriften-Farbe] +uiCCDHel [Farbe der Überschrift für 'Hilfe'] // HASH_VALUE 96B4F860EF38B0BB // INDEX 922 -uiCCDInf [Informationsüberschriften-Farbe] +uiCCDInf [Farbe der Überschrift für 'Information'] // HASH_VALUE 6AC7B88C54D4674B // INDEX 923 -uiCCDTra [Handelsüberschriften-Farbe] +uiCCDTra [Farbe der Überschrift für 'Handel'] // HASH_VALUE C06C14666A188CAE // INDEX 924 -uiCCDBot [NSC-Überschriften-Farbe] +uiCCDBot [Farbe der Überschrift für 'NPC'] // HASH_VALUE EB776EF9ACA4A455 // INDEX 925 -uittChoosePlaColor [Farbe der 'Spieler'-Überschrift wählen] +uittChoosePlaColor [Farbe der Überschrift 'Spieler' wählen] // HASH_VALUE 2C028AB7E8546861 // INDEX 926 -uittChooseAniColor [Farbe der 'Tiere'-Überschrift wählen] +uittChooseAniColor [Farbe der Überschrift 'Tiere' wählen] // HASH_VALUE C78C1C5BD85C35CD // INDEX 927 -uittChooseComColor [Farbe der 'Kommunikation'-Überschrift wählen] +uittChooseComColor [Farbe der Überschrift 'Kommunikation' wählen] // HASH_VALUE DB3E4CA5E9346429 // INDEX 928 -uittChooseInvColor [Farbe der 'Inventar'-Überschrift wählen] +uittChooseInvColor [Farbe der Überschrift 'Inventar' wählen] // HASH_VALUE ADE28AB76834586C // INDEX 929 -uittChooseOptColor [Farbe der 'Optionen'-Überschrift wählen] +uittChooseOptColor [Farbe der Überschrift 'Optionen' wählen] // HASH_VALUE 47BC4498ABE05FDC // INDEX 930 -uittChooseLabColor [Farbe der 'Orientierung'-Überschrift wählen] +uittChooseLabColor [Farbe der Überschrift 'Orientierung' wählen] // HASH_VALUE 46BB036084B05DC2 // INDEX 931 -uittChooseMemColor [Farbe der 'Gilde&Gruppe'-Überschrift wählen] +uittChooseMemColor [Farbe der Überschrift 'Gilde&Gruppe' wählen] // HASH_VALUE E986833A969EB864 // INDEX 932 -uittChooseHelColor [Farbe der 'Hilfe'-Überschrift wählen] +uittChooseHelColor [Farbe der Überschrift 'Hilfe' wählen] // HASH_VALUE 062C549BD79181CC // INDEX 933 -uittChooseInfColor [Farbe der 'Informationen'-Überschrift wählen] +uittChooseInfColor [Farbe der Überschrift 'Informationen' wählen] // HASH_VALUE 6B878FF20D755458 // INDEX 934 -uittChooseTraColor [Farbe der 'Handel'-Überschrift wählen] +uittChooseTraColor [Farbe der Überschrift 'Handel' wählen] // HASH_VALUE E41673376980D748 // INDEX 935 -uittChooseBotColor [Farbe der 'NSC'-Überschrift wählen] +uittChooseBotColor [Farbe der Überschrift 'NPC' wählen] // interface - LandMarks // HASH_VALUE E8340A7E6C9C84B2 // INDEX 936 -uiLandmarkColors [Markierungs-Farben] +uiLandmarkColors [Kartenmarkierungs-Farben] // HASH_VALUE 60DC943460DC9434 // INDEX 937 @@ -3769,35 +3769,35 @@ uiLMTribeColor [Stamm] // HASH_VALUE A7866C5BE6C4B882 // INDEX 939 -uiLMBanditColor [Bandit] +uiLMBanditColor [Banditen] // HASH_VALUE ECDA0489A1F70090 // INDEX 940 -uiLMCitizenColor [Bürger] +uiLMCitizenColor [NPC] // HASH_VALUE A8B7F876E1E7DC8A // INDEX 941 -uiLMFaunaColor [Fauna] +uiLMFaunaColor [Kreaturen] // HASH_VALUE 0CBAE83E27D4E76C // INDEX 942 -uiLMFaunaExcelColor [exz. Fauna] +uiLMFaunaExcelColor [exz. 'Named'-Kreatur] // HASH_VALUE 6C5C1418705C3484 // INDEX 943 -uiLMFaunaSupColor [erh. Fauna] +uiLMFaunaSupColor [erh. 'Boss'-Kreatur] // HASH_VALUE E428946567656C86 // INDEX 944 -uiLMForageColor [Rohstoffabbau] +uiLMForageColor [Rohstoffe] // HASH_VALUE 1AEAEC802B04F080 // INDEX 945 -uiLMForageExcelColor [exz. Rohstoffabbau] +uiLMForageExcelColor [exzellente Rohstoffe] // HASH_VALUE 60886C7E631780A9 // INDEX 946 -uiLMForageSupColor [erh. Rohstoffabbau] +uiLMForageSupColor [erhabene Rohstoffe] // HASH_VALUE 1C591877A0875485 // INDEX 947 @@ -3825,7 +3825,7 @@ uiLMSeedColor [Samen] // HASH_VALUE A9D7349362D75090 // INDEX 953 -uiLMShellColor [Schale] +uiLMShellColor [Muschel] // HASH_VALUE 2A48648E23983C9C // INDEX 954 @@ -3881,243 +3881,243 @@ uiLMTeleporterColor [Teleporter] // HASH_VALUE E05A9C8958A98361 // INDEX 967 -uiCCDLMMisc [Versch. Markeriungs-Farbe] +uiCCDLMMisc [Markierungsfarbe Verschied.] // HASH_VALUE E4288B9620348799 // INDEX 968 -uiCCDLMTribe [Stamm-Markierungs-Farbe] +uiCCDLMTribe [Stammes-Markierungsfarbe] // HASH_VALUE 5739A06AD7B428A8 // INDEX 969 -uiCCDLMBandit [Bandit-Markierungs-Farbe] +uiCCDLMBandit [Banditen-Markierungsfarbe] // HASH_VALUE E7CA5C43940763C4 // INDEX 970 -uiCCDLMCitizen [Bürger-Markierungs-Farbe] +uiCCDLMCitizen [NPC-Markierungsfarbe] // HASH_VALUE E7E9478423F54387 // INDEX 971 -uiCCDLMFauna [Fauna-Markierungs-Farbe] +uiCCDLMFauna [Kreaturen-Markierungsfarbe] // HASH_VALUE 1B25187E2CE71093 // INDEX 972 -uiCCDLMFaunaExcel [exz. Fauna-Markierungs-Farbe] +uiCCDLMFaunaExcel [Named-Markierungsfarbe] // HASH_VALUE 69898B32519B9484 // INDEX 973 -uiCCDLMFaunaSup [erh. Fauna-Markierungs-Farbe] +uiCCDLMFaunaSup [Boss-Markierungsfarbe] // HASH_VALUE 9689D06BD894FCA6 // INDEX 974 -uiCCDLMForage [Rohstoffabbau-Markierungs-Farbe] +uiCCDLMForage [Rohstoff-Markierungsfarbe] // HASH_VALUE 1578A085ABA62C65 // INDEX 975 -uiCCDLMForageExcel [exz. Rohstoffabbau-Markierungs-Farbe] +uiCCDLMForageExcel [exz. Rohstoff-Markierungsfarbe] // HASH_VALUE E016A76EAE366CAB // INDEX 976 -uiCCDLMForageSup [erh. Rohstoffabbau-Markierungs-Farbe] +uiCCDLMForageSup [erh. Rohstoff-Markierungsfarbe] // HASH_VALUE 9239649D64A43F6E // INDEX 977 -uiCCDLMSap [Sap-Markierungs-Farbe] +uiCCDLMSap [Sap-Markierungsfarbe] // HASH_VALUE A5B87790E1C47393 // INDEX 978 -uiCCDLMAmber [Bernstein-Markierungs-Farbe] +uiCCDLMAmber [Bernstein-Markierungsfarbe] // HASH_VALUE A169B48A58C94767 // INDEX 979 -uiCCDLMNode [Holzgewebe-Markierungs-Farbe] +uiCCDLMNode [Holzgewebe-Markierungsfarbe] // HASH_VALUE A5B86795E1C46398 // INDEX 980 -uiCCDLMFiber [Faser-Markierungs-Farbe] +uiCCDLMFiber [Faser-Markierungsfarbe] // HASH_VALUE 1F4A7C7E58297F59 // INDEX 981 -uiCCDLMBark [Rinde-Markierungs-Farbe] +uiCCDLMBark [Rinde-Markierungsfarbe] // HASH_VALUE A2798C8F58B94B5D // INDEX 982 -uiCCDLMSeed [Samen-Markierungs-Farbe] +uiCCDLMSeed [Samen-Markierungsfarbe] // HASH_VALUE 67E8639CA3F45F9F // INDEX 983 -uiCCDLMShell [Schale-Markierungs-Farbe] +uiCCDLMShell [Muschel-Markierungsfarbe] // HASH_VALUE A6C9579DE2D553A0 // INDEX 984 -uiCCDLMResin [Harz-Markierungs-Farbe] +uiCCDLMResin [Harz-Markierungsfarbe] // HASH_VALUE A319B49358B97367 // INDEX 985 -uiCCDLMWood [Holz-Markierungs-Farbe] +uiCCDLMWood [Holz-Markierungsfarbe] // HASH_VALUE 94B7849964A43F6A // INDEX 986 -uiCCDLMOil [Öl-Markierungs-Farbe] +uiCCDLMOil [Öl-Markierungsfarbe] // HASH_VALUE EBA9844C94A78BB3 // INDEX 987 -uiCCDLMMission [Mission-Markierungs-Farbe] +uiCCDLMMission [Missions-Markierungsfarbe] // HASH_VALUE 5F19B48258B97367 // INDEX 988 -uiCCDLMFood [Nahrung-Markierungs-Farbe] +uiCCDLMFood [Nahrungs-Markierungsfarbe] // HASH_VALUE E319D4876BDAB36E // INDEX 989 -uiCCDLMConstruction [Baumaterial-Markierungs-Farbe] +uiCCDLMConstruction [Baumaterial-Markierungsfarbe] // HASH_VALUE 15679C9164A43F6D // INDEX 990 -uiCCDLMGoo [Goo-Markierungs-Farbe] +uiCCDLMGoo [Goo-Markierungsfarbe] // HASH_VALUE 978ABC72188444A2 // INDEX 991 -uiCCDLMInsect [Insekt-Markierungs-Farbe] +uiCCDLMInsect [Insekt-Markierungsfarbe] // HASH_VALUE A6D96796E2E56399 // INDEX 992 -uiCCDLMKitin [Kitin-Markierungs-Farbe] +uiCCDLMKitin [Kitin-Markierungsfarbe] // HASH_VALUE 98980C7B14941CB5 // INDEX 993 -uiCCDLMNocive [Schadstoff-Markierungs-Farbe] +uiCCDLMNocive [Schadstoff-Markierungsfarbe] // HASH_VALUE E5FAE09427EA8F62 // INDEX 994 -uiCCDLMPreservative [Konservierungsmittel-Markierungs-Farbe] +uiCCDLMPreservative [Konservierungsmittel-Markierungsfarbe] // HASH_VALUE E929644F92486BA2 // INDEX 995 -uiCCDLMPassage [Durchgang-Markierungs-Farbe] +uiCCDLMPassage [Durchgangs-Markierungsfarbe] // HASH_VALUE 97D4788CEF29F499 // INDEX 996 -uiCCDLMTeleporter [Teleporter-Markierungs-Farbe] +uiCCDLMTeleporter [Teleporter-Markierungsfarbe] // HASH_VALUE EAA6733E56914073 // INDEX 997 -uittChooseLMMiscColor [Wähle eine Farbe für 'Versch.'-Markierung] +uittChooseLMMiscColor [Wähle eine Farbe für Markierung 'Verschied.'] // HASH_VALUE AE479F5DD9646C60 // INDEX 998 -uittChooseLMTribeColor [Wähle eine Farbe für 'Stamm'-Markierung] +uittChooseLMTribeColor [Wähle eine Farbe für Markierung 'Stamm'] // HASH_VALUE 27D61B6BE964506F // INDEX 999 -uittChooseLMBanditColor [Wähle eine Farbe für 'Bandit'-Markierung] +uittChooseLMBanditColor [Wähle eine Farbe für Markierung 'Banditen'] // HASH_VALUE ECD853A128E58C68 // INDEX 1000 -uittChooseLMCitizenColor [Wähle eine Farbe für 'Bürger'-Markierung] +uittChooseLMCitizenColor [Wähle eine Farbe für Markierung 'NPC'] // HASH_VALUE 6A669F5DD9249C6C // INDEX 1001 -uittChooseLMFaunaColor [Wähle eine Farbe für 'Fauna'-Markierung] +uittChooseLMFaunaColor [Wähle eine Farbe für Markierung 'Kreaturen'] // HASH_VALUE 427C0CB81DD414A1 // INDEX 1002 -uittChooseLMFaunaExcelColor [Wähle eine Farbe für 'exz. Fauna'-Markierung] +uittChooseLMFaunaExcelColor [Wähle eine Farbe für Markierung 'Named-Kreatur'] // HASH_VALUE B1E934B461F46C74 // INDEX 1003 -uittChooseLMFaunaSupColor [Wähle eine Farbe für 'erh. Fauna'-Markierung] +uittChooseLMFaunaSupColor [Wähle eine Farbe für Markierung 'Boss-Kreatur'] // HASH_VALUE AA161B6B25444473 // INDEX 1004 -uittChooseLMForageColor [Wähle eine Farbe für 'Rohstoffabbau'-Markierung] +uittChooseLMForageColor [Wähle eine Farbe für Markierung 'Rohstoff'] // HASH_VALUE 06CC8878E82618D2 // INDEX 1005 -uittChooseLMForageExcelColor [Wähle eine Farbe für 'exz. Rohstoffabbau'-Markierung] +uittChooseLMForageExcelColor [Wähle eine Farbe für Markierung 'exz. Rohstoff'] // HASH_VALUE B76D788968846490 // INDEX 1006 -uittChooseLMForageSupColor [Wähle eine Farbe für 'erh. Rohstoffabbau'-Markierung] +uittChooseLMForageSupColor [Wähle eine Farbe für Markierung 'erh. Rohstoff'] // HASH_VALUE 2A67A7335FB09364 // INDEX 1007 -uittChooseLMSapColor [Wähle eine Farbe für 'Sap'-Markierung] +uittChooseLMSapColor [Wähle eine Farbe für Markierung 'Sap'] // HASH_VALUE 6D169F5DD9357859 // INDEX 1008 -uittChooseLMAmberColor [Wähle eine Farbe für 'Bernstein'-Markierung] +uittChooseLMAmberColor [Wähle eine Farbe für Markierung 'Bernstein'] // HASH_VALUE 6BB6733E56914864 // INDEX 1009 -uittChooseLMNodeColor [Wähle eine Farbe für 'Holzgewebe'-Markierung] +uittChooseLMNodeColor [Wähle eine Farbe für Markierung 'Holzgewebe'] // HASH_VALUE E8F6733E56916072 // INDEX 1010 -uittChooseLMBarkColor [Wähle eine Farbe für 'Rinde'-Markierung] +uittChooseLMBarkColor [Wähle eine Farbe für Markierung 'Rinde'] // HASH_VALUE E907733E56914465 // INDEX 1011 -uittChooseLMSeedColor [Wähle eine Farbe für 'Samen'-Markierung] +uittChooseLMSeedColor [Wähle eine Farbe für Markierung 'Samen'] // HASH_VALUE 2C379F5DD9D4945C // INDEX 1012 -uittChooseLMShellColor [Wähle eine Farbe für 'Schale'-Markierung] +uittChooseLMShellColor [Wähle eine Farbe für Markierung 'Muschel'] // HASH_VALUE 6B279F5DD9F4886A // INDEX 1013 -uittChooseLMResinColor [Wähle eine Farbe für 'Harz'-Markierung] +uittChooseLMResinColor [Wähle eine Farbe für 'Markierung Harz'] // HASH_VALUE 6B47733E5691446F // INDEX 1014 -uittChooseLMWoodColor [Wähle eine Farbe für 'Holz'-Markierung] +uittChooseLMWoodColor [Wähle eine Farbe für Markierung 'Holz'] // HASH_VALUE 2C26A7335FB09360 // INDEX 1015 -uittChooseLMOilColor [Wähle eine Farbe für 'Öl'-Markierung] +uittChooseLMOilColor [Wähle eine Farbe für Markierung 'Öl'] // HASH_VALUE EC7853A1AAD4B467 // INDEX 1016 -uittChooseLMMissionColor [Wähle eine Farbe für 'Mission'-Markierung] +uittChooseLMMissionColor [Wähle eine Farbe für Markierung 'Mission'] // HASH_VALUE 6B36733E5691446F // INDEX 1017 -uittChooseLMFoodColor [Wähle eine Farbe für 'Nahrung'-Markierung] +uittChooseLMFoodColor [Wähle eine Farbe für Markierung 'Nahrung'] // HASH_VALUE C54D00B3F2D839DD // INDEX 1018 -uittChooseLMConstructionColor [Wähle eine Farbe für 'Baumaterial'-Markierung] +uittChooseLMConstructionColor [Wähle eine Farbe für Markierung 'Baumaterial'] // HASH_VALUE ADA6A7335FB09363 // INDEX 1019 -uittChooseLMGooColor [Wähle eine Farbe für 'Goo'-Markierung] +uittChooseLMGooColor [Wähle eine Farbe für Markierung 'Goo'] // HASH_VALUE 6A461B6BE9045474 // INDEX 1020 -uittChooseLMInsectColor [Wähle eine Farbe für 'Insekt'-Markierung] +uittChooseLMInsectColor [Wähle eine Farbe für Markierung 'Insekt'] // HASH_VALUE 6CB69F5DD9F4886B // INDEX 1021 -uittChooseLMKitinColor [Wähle eine Farbe für 'Kitin'-Markierung] +uittChooseLMKitinColor [Wähle eine Farbe für Markierung 'Kitin'] // HASH_VALUE AA961B6B25356464 // INDEX 1022 -uittChooseLMNociveColor [Wähle eine Farbe für 'Schadstoffe'-Markierung] +uittChooseLMNociveColor [Wähle eine Farbe für Markierung 'Schadstoffe'] // HASH_VALUE 861EF8B4F2E715DB // INDEX 1023 -uittChooseLMPreservativeColor [Wähle eine Farbe für 'Konservierungsmittel'-Markierung] +uittChooseLMPreservativeColor [Wähle eine Farbe für Markierung 'Konservierungsmittel'] // HASH_VALUE EAA95398A854B467 // INDEX 1024 -uittChooseLMPassageColor [Wähle eine Farbe für 'Passage'-Markierung] +uittChooseLMPassageColor [Wähle eine Farbe für Markierung 'Durchgang'] // HASH_VALUE C45D50B2A7C5F098 // INDEX 1025 -uittChooseLMTeleporterColor [Wähle eine Farbe für 'Teleporter'-Markierung] +uittChooseLMTeleporterColor [Wähle eine Farbe für Markierung 'Teleporter'] // HASH_VALUE 2523C4A25CD653BD // INDEX 1026 -uiMouseOptions [Mausoptionen] +uiMouseOptions [Maus-Optionen] // HASH_VALUE 6317007265F9C8B9 // INDEX 1027 @@ -4125,15 +4125,15 @@ uiMouseInterface [Schnittstelle] // HASH_VALUE 4D0407315B567C79 // INDEX 1028 -uiDoubleClickSpeed [Doppelklickgeschwindigkeit] +uiDoubleClickSpeed [Doppelklick-Geschwindigkeit] // HASH_VALUE A5A608659D81FC91 // INDEX 1029 -uiCursorSpeed [Zeigergeschwindigkeit] +uiCursorSpeed [Zeiger-Geschwindigkeit] // HASH_VALUE 9F779F81A115F0AC // INDEX 1030 -uiCursorAccel [Zeigerbeschleunigung] +uiCursorAccel [Zeiger-Beschleunigung] // HASH_VALUE DF974C8FD112DB5C // INDEX 1031 @@ -4149,11 +4149,11 @@ uiHeadAccel [Beschleunigung] // HASH_VALUE 6A3CA4D6EA1A84B0 // INDEX 1034 -uiKeybOptions [Tastaturoptionen] +uiKeybOptions [Tastatur-Optionen] // HASH_VALUE 9F0424681A302497 // INDEX 1035 -uiKeybCamera [Kamerageschwindigkeit] +uiKeybCamera [Kamera-Geschwindigkeit] // HASH_VALUE 6D4AC08F2347449C // INDEX 1036 @@ -4165,7 +4165,7 @@ uiKeybCamSpeedMin [Minimum] // HASH_VALUE E484C0A35CC657BC // INDEX 1038 -uiSoundGeneral [Soundoptionen] +uiSoundGeneral [Sound-Optionen] // HASH_VALUE 2446905727846C7E // INDEX 1039 @@ -4177,7 +4177,7 @@ uiUseEax [EAX nutzen] // HASH_VALUE 1427A86DD4B69B84 // INDEX 1041 -uiMaxTracks [Max Titel] +uiMaxTracks [Max. Titel/Stücke] // HASH_VALUE 19D9773EAEB8F72D // INDEX 1042 @@ -4201,39 +4201,39 @@ uiSoundVolume [Lautstärke] // HASH_VALUE 4494F4344494F434 // INDEX 1047 -uimGcmMove [BEWEGEN] +uimGcmMove [Bewegen] // HASH_VALUE D0C20C3DC3CF3313 // INDEX 1048 -uimGcmStopMove [ANHALTEN] +uimGcmStopMove [Anhalten] // HASH_VALUE 4810145048101450 // INDEX 1049 -uimGcmTalk [REDEN] +uimGcmTalk [Reden] // HASH_VALUE 50D4543850D45438 // INDEX 1050 -uimGcmNews [NEUIGKEITEN] +uimGcmNews [Neuigkeiten] // HASH_VALUE CF3204424E33CC40 // INDEX 1051 -uimGcmUse [NUTZEN] +uimGcmUse [Nutzen] // HASH_VALUE 5490943054909430 // INDEX 1052 -uimGcmLift [HEBEN] +uimGcmLift [Heben] // HASH_VALUE 48D0F43048D0F430 // INDEX 1053 -uimGcmLook [SCHAUEN] +uimGcmLook [Schauen] // HASH_VALUE 87D2D4194CA1B01B // INDEX 1054 -uimGcmAttack [ANGREIFEN] +uimGcmAttack [Angreifen] // HASH_VALUE 47F0D326C6BF74FA // INDEX 1055 -uimGcmDuel [DUELL ANNEHMEN] +uimGcmDuel [DUELL ERÖFFNEN] // HASH_VALUE 4160A40AB630D80D // INDEX 1056 @@ -4241,7 +4241,7 @@ uimGcmUnDuel [DUELL AUFGEBEN] // HASH_VALUE 85ECC827473C942A // INDEX 1057 -uimGcmPvpChallenge [PVP-HERAUSFORDERUNG ANNEHMEN] +uimGcmPvpChallenge [PVP-HERAUSFORDERUNG ERÖFFNEN] // HASH_VALUE FFF1882B7F81A4EC // INDEX 1058 @@ -4257,7 +4257,7 @@ uimGcmGuildInvit [GILDENEINLADUNG] // HASH_VALUE 54D0F43054D0F430 // INDEX 1061 -uimGcmLoot [PLÜNDERN] +uimGcmLoot [Plündern] // HASH_VALUE CF13BC318B02C434 // INDEX 1062 @@ -4277,27 +4277,27 @@ uimGcmHarvesting [ROHSTOFFGEWINNUNG] // HASH_VALUE C7F28C2CC7D18436 // INDEX 1066 -uimGcmDiving [TAUCHEN] +uimGcmDiving [Tauchen] // HASH_VALUE C831B82AC9A19424 // INDEX 1067 -uimGcmFishing [FISCHEN] +uimGcmFishing [Fischen] // HASH_VALUE 0C32AC458C93D034 // INDEX 1068 -uimGcmQuartering [AUSWEIDEN] +uimGcmQuartering [Ausnehmen] // HASH_VALUE 48D0841444D0E404 // INDEX 1069 -uimGcmExchange [TAUSCHHANDEL] +uimGcmExchange [Tauschhandel] // HASH_VALUE D001183E0E62FC44 // INDEX 1070 -uimGcmMount [REITEN] +uimGcmMount [Reiten] // HASH_VALUE 8861681185C0B82F // INDEX 1071 -uimGcmDisengage [VERLASSEN] +uimGcmDisengage [Verlassen] // HASH_VALUE 10D2D424BEE04712 // INDEX 1072 @@ -4305,7 +4305,7 @@ uimGcmQuitTeam [GRUPPE VERLASSEN] // HASH_VALUE CDC2A8128D00D406 // INDEX 1073 -uimGcmQuitGuild [GRUPPE VERLASSEN] +uimGcmQuitGuild [GILDE VERLASSEN] // HASH_VALUE 4C90E4244C90E424 // INDEX 1074 @@ -4313,19 +4313,19 @@ uimGcmInfo [INFO] // HASH_VALUE 8A70A0F8032FFC36 // INDEX 1075 -uimFollowMe [Folge mir] +uimFollowMe [Das Tier folgen lassen] // HASH_VALUE 70D8444C70D8444C // INDEX 1076 -uimGcmStop [Stopp] +uimGcmStop [Das Tier stoppen] // HASH_VALUE 6458241864582418 // INDEX 1077 -uimGcmFree [Freilassen] +uimGcmFree [Das Tier freilassen] // HASH_VALUE 28897B5DEC77428A // INDEX 1078 -uimGcmEnterStable [Stall betreten] +uimGcmEnterStable [Das Tier den Stall betreten lassen] // HASH_VALUE EDC82852A5045446 // INDEX 1079 @@ -4349,7 +4349,7 @@ uiGuildInfoEff [Mitglieder] // HASH_VALUE 59BA788624C3D244 // INDEX 1084 -uiGuildInfoHead [Hauptquartiere: ] +uiGuildInfoHead [Hauptquartier: ] // HASH_VALUE 289714776057E07A // INDEX 1085 @@ -4381,27 +4381,27 @@ uiGuildChargeState [Unter Kontrolle] // HASH_VALUE 4A42C82AC7808C2E // INDEX 1092 -uiGuildInfoBuilding [GEBÄUDE] +uiGuildInfoBuilding [Gebäude] // HASH_VALUE 8621C0330B42842C // INDEX 1093 -uiBuildingType1 [STALLUNG] +uiBuildingType1 [Stall] // HASH_VALUE 0B10E0160C70AC16 // INDEX 1094 -uiBuildingType2 [GEHÖFT] +uiBuildingType2 [Gehöft] // HASH_VALUE CAD1F82ECA12E831 // INDEX 1095 -uiBuildingType3 [WOHNEINHEIT] +uiBuildingType3 [Wohneinheit] // HASH_VALUE 389174147021A819 // INDEX 1096 -uiBuildingType4 [TANZKLUB] +uiBuildingType4 [Tanzlokal] // HASH_VALUE 0DA2F4374E83A83C // INDEX 1097 -uiBuildingType5 [KNEIPE] +uiBuildingType5 [Kneipe] // HASH_VALUE F278709FE5C880A2 // INDEX 1098 @@ -4409,19 +4409,19 @@ uiEmptyBuilding [LEER] // HASH_VALUE 9A87643DAF65D3BA // INDEX 1099 -uiBuidingState1 [Im Gange] +uiBuidingState1 [Im Bau] // HASH_VALUE EBD714876257207B // INDEX 1100 -uiBuidingState2 [Bauen] +uiBuidingState2 [Erbaut] // HASH_VALUE 497168218731E037 // INDEX 1101 -uiGuildMembers [MITGLIEDER] +uiGuildMembers [Mitglieder] // HASH_VALUE A8882C8D23B73899 // INDEX 1102 -uiGuildMemberScore [Punktzahl] +uiGuildMemberScore [Punktezahl] // HASH_VALUE 6898144868981448 // INDEX 1103 @@ -4525,7 +4525,7 @@ uiBuildingKamiAltar [Kami-Altar] // HASH_VALUE EA48D0AE2BF8D0B3 // INDEX 1128 -uiBuildingInn [Schenken] +uiBuildingInn [Schenke] // HASH_VALUE 6D0AC8AF2E29C0B5 // INDEX 1129 @@ -4557,7 +4557,7 @@ uiBuildingEmpty [Kein Gebäude] // HASH_VALUE 6C58548864989490 // INDEX 1136 -uiBuildingState0 [Bauen] +uiBuildingState0 [Im Bau] // HASH_VALUE A6F8BCAC6A59848F // INDEX 1137 @@ -4668,50 +4668,46 @@ uittOutpostAttackBefore [@{6F6F}Warten auf Angriff@{FFFF}\n // HASH_VALUE 8D5E59E3DBC77439 // INDEX 1162 uittOutpostAttackRound [@{6F6F}Angriffsperiode!@{FFFF}\n - Die Angreifer müssen einen höchst möglichen @{6F6F}Rundenstand@{FFFF} erreichen.\n + Die Angreifer müssen einen höchstmöglichen @{6F6F}Rundenstand@{FFFF} erreichen.\n Sie müssen mindestens die angegebene @{6F6F}Mindestschwelle@{FFFF} erreichen, die der Außenposten zur Zeit hat.\n - Bei jeder gewonnenen Runde steigt das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n - Bei jeder verlorenen Runde sinkt das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n - ] + Bei jeder gewonnenen Runde steigen das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n + Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n ] // HASH_VALUE C3CD3092CDC57722 // INDEX 1163 uittOutpostAttackAfterWin [@{6F6F}Nach dem Angriff@{FFFF}\n Der Krieg geht weiter! \n Die Angreifer haben es geschafft, die @{6F6F}Mindestschwelle@{FFFF} zu erreichen, die die Verteidiger während der @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n - Man muss das Ende der Angriffsphase abwarten, ehe die Angreifer den Außenposten gewinnen.\n - ] + Das Ende der Angriffsphase muss abgewartet werden, ehe die Angreifer den Außenposten gewinnen.\n ] // HASH_VALUE 3FD04DD028A7D053 // INDEX 1164 uittOutpostAttackAfterLoose [@{6F6F}Nach Angriff@{FFFF}\n Es ist den Angreifern nicht gelungen, die @{6F6F}Mindestschwelle@{FFFF} zu überschreiten, die die Verteidiger während der @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n - Also haben sie verloren.\n - Der Außenposten wird am Ende der Angriffsphase ganz befreit.\n - ] + Also haben die Angreifer verloren.\n + Der Außenposten wird am Ende der Angriffsphase ganz befreit.\n ] // HASH_VALUE FE5CECB92CB02670 // INDEX 1165 uittOutpostDefenseBefore [@{6F6F}Warten auf Verteidigung@{FFFF}\n Der Krieg geht weiter! \n Die Angreifer haben es geschafft, die nötige @{6F6F}Mindestschwelle@{FFFF} zu erreichen.\n - Du hast vorübergehend die Kontrolle über die Truppen des Außenpostens übernommen.\n + Sie haben vorübergehend die Kontrolle über die Truppen des Außenpostens übernommen.\n Diese Truppen erscheinen erst während der @{6F6F}Verteidigungsperiode@{FFFF}.\n Während dieser Periode müssen die Verteidiger den maximalen @{6F6F}Rundenlevel@{FFFF} der Angreifer erreichen, um den Außenposten zu halten.] // HASH_VALUE 37F579E582C09905 // INDEX 1166 uittOutpostDefenseRound [@{6F6F}Verteidigungsperiode!@{FFFF}\n - Die Angreifer müssen das @{6F6F}Rundenlevel@{FFFF} überschreiten, das die Angreifer während ihrer @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n - Wenn sie dieses Niveau nicht erreichen, verliert die verteidigende Gilde den Außenposten.\n - Bei jeder gewonnenen Runde steigt das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n - Bei jeder verlorenen Runde sinkt das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n - ] + Die Verteidiger müssen das @{6F6F}Rundenlevel@{FFFF} überschreiten, das die Angreifer während ihrer @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n + Die Verteidiger verlieren den Außenposten, wenn sie dieses Niveau nicht erreichen.\n + Bei jeder gewonnenen Runde steigen das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n + Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n ] // HASH_VALUE 327473E0EACEF1A3 // INDEX 1167 uittOutpostDefenseAfter [@{6F6F}Warten auf Ergebnis@{FFFF}\n - Man muss das Ende der 24-stündigen Verteidigungsphase abwarten, um den Ausgang des Kampfes zu erfahren.] + Das Ende der 24-stündigen Verteidigungsphase muss abgewartet werden, um den Ausgang des Kampfes zu erfahren.] // HASH_VALUE 42E75F8E29188B60 // INDEX 1168 @@ -4728,7 +4724,7 @@ uiOutpostLevel [Level: ] // HASH_VALUE 6EFBF746AB75B469 // INDEX 1171 uittOutpostLevel [Level des Außenpostens\n - Je höher das Level, desto widerstandsfähiger sind die Truppen und umso höher fallen die Boni aus. ] + Je höher das Level, desto widerstandsfähiger sind die Truppen, und umso höher fallen die Boni aus. ] // HASH_VALUE 197AF48C25ECB435 // INDEX 1172 @@ -4740,7 +4736,7 @@ uittOutpostOwner [Besitzer des Außenpostens. ] // HASH_VALUE 4B48AC7CBB368441 // INDEX 1174 -uiOutpostTribe [Der Außenposten wird von der Gilde der Marodeure gehalten.] +uiOutpostTribe [Der Außenposten wird von einem Marodeurs-Stamm gehalten.] // HASH_VALUE 5347F7679616FB97 // INDEX 1175 @@ -4805,7 +4801,7 @@ uiOutpostLvlCurrent [Level der laufenden Runde: ] // HASH_VALUE CE36AF95996F110D // INDEX 1188 uittOutpostLvlCurrent [Laufendes @{6F6F}Rundenlevel@{FFFF}.\n - Während einer Angriffs- oder Verteidigungsphase handelt es sich um das laufende @{6F6F}Rundenlevel@{FFFF}, das die Seite erreicht hat, die die Truppen angreift.\n + Während einer Angriffs- oder Verteidigungsphase handelt es sich um das laufende @{6F6F}Rundenlevel@{FFFF}, das die Seite gerade erreicht hat, die die Truppen angreift.\n ] // HASH_VALUE 6CDA0C8EC6AE00B0 @@ -4815,7 +4811,7 @@ uiOutpostRoundCur [Laufende Runde: ] // HASH_VALUE 280C5A64E033A6AE // INDEX 1190 uittOutpostRoundCur [Laufende Runde.\n - Während einer Angriffs- oder Verteidigungsphase handelt es sich um die Nummer der laufenden Runde / Maximale Anzahl der Runden.\n + Während einer Angriffs- oder Verteidigungsphase handelt es sich dabei um die Nummer der laufenden Runde.\n ] // HASH_VALUE 3DC388FE8A8EEF2D @@ -4829,19 +4825,19 @@ uiOutpostDefHour [Verteidigungszeit: ] // HASH_VALUE F3E48BB10FDA1262 // INDEX 1193 uittOutpostDefHour [@{6F6F}Verteidigungszeit@{FFFF}\n - Zeit, zu der die Gilde ihren Außenposten verteidigen will. ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).] + Die Zeit, zu der die Gilde ihren Außenposten verteidigen will. ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).] // HASH_VALUE 326075E495374C2E // INDEX 1194 uittOutpostDefHourError [@{6F6F}Verteidigungszeit@{FFFF}\n - Zeit, zu der die Gilde ihren Außenposten verteidigen will. ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).\n - @{F80F}Die gewählte Startzeit wurde modifiziert, weil sie nicht mindestens 2 Stunden vor dem Ende der "Verteidigungsphase" lag.] + Die Zeit, zu der die Gilde ihren Außenposten verteidigen will. ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).\n + @{F80F}Die gewählte Startzeit wurde modifiziert, weil sie nicht mindestens 2 Stunden vor dem Ende der Verteidigungsphase lag.] // HASH_VALUE A0B52418EF5A9327 // INDEX 1195 uittOutpostDefHourCannotEdit [Du kannst die Verteidigungsperiode nur ändern, wenn:\n - - Du ein Offizier der Gilde bist, die den Außenposten verteidigt\n - - der Zustand des Außenpostens @{6F6F}friedlich@{FFFF} ist, oder in @{6F6F}Kriegserklärung@{FFFF}\n + - du ein Offizier der Gilde bist, die den Außenposten verteidigt\n + - der Außenposten gerade im Zustand des @{6F6F}Friedens@{FFFF} ist, oder wenn der @{6F6F}Krieg erklärt@{FFFF} wurde \n ] // HASH_VALUE 52718E9047A0FC98 @@ -4851,7 +4847,7 @@ uiOutpostDefPeriod [Verteidigungsperiode: ] // HASH_VALUE A173BD1DA14A45A2 // INDEX 1197 uittOutpostDefPeriod [@{6F6F}Verteidigungsperiode@{FFFF}\n - Tatsächliche Zeitspanne, während der die Gilde ihren Außenposten verteidigen wird ( @{6F6F}DATUM@{FFFF} in der ausgewählten Zeitzone).] + Tatsächliche Zeitspanne, während der die Gilde ihren Außenposten verteidigen wird ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).] // HASH_VALUE 87345488DCA85997 // INDEX 1198 @@ -4860,7 +4856,7 @@ uiOutpostAttPeriod [Angriffsperiode: ] // HASH_VALUE 479AFD7F21DC723E // INDEX 1199 uittOutpostAttPeriod [@{6F6F}Angriffsperiode@{FFFF}\n - Tatsächliche Zeitspanne, in der die angreifende Gilde diesen Außenposten angreifen wird. (@{6F6F}DATUM@{FFFF} in der ausgewählten Zeitzone).] + Tatsächliche Zeitspanne, in der die angreifende Gilde diesen Außenposten angreifen wird. (@{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).] // HASH_VALUE FC234C09E2729D59 // INDEX 1200 @@ -4891,13 +4887,12 @@ uittOutpostDeclareWar [Diesem Außenposten den Krieg erklären\n // HASH_VALUE F64ED3F482D06804 // INDEX 1206 -uiOutpostWarCost [KOSTEN DES KRIEGES: ] +uiOutpostWarCost [KOSTEN DER KRIEGSERKLÄRUNG: ] // HASH_VALUE CAF544A84E2694D6 // INDEX 1207 -uiOutpostWarCostDesc [Einem Außenposten den Krieg zu erklären kostet die Gilde Geld (hauptsächlich, um die Truppen während der Verteidigungsperiode zu bezahlen.).\n - Diese Summe wird dem Gildenvermögen oder Deiner Tasche entnommen\n - ] +uiOutpostWarCostDesc [Einem Außenposten den Krieg zu erklären, kostet die Gilde Dapper (Geld) - hauptsächlich, um die Truppen während der Verteidigungsperiode zu bezahlen..\n + Diese Summe wird entweder dem Gildenvermögen oder deiner Tasche entnommen\n ] // HASH_VALUE 8F52938208D44C1D // INDEX 1208 @@ -4912,7 +4907,7 @@ uittOutpostAttHour [@{6F6F}Zeit des Angriffs@{FFFF}\n // INDEX 1210 uittOutpostAttHourError [@{6F6F}Zeit des Angriffs@{FFFF}\n Zeit, zu der die Gilde den Außenposten angreifen will ( @{6F6F}LOKALZEIT@{FFFF} in der ausgewählten Zeitzone).\n - @{F80F}Die gewählte Startzeit wurde modifiziert, weil sie nicht mindestens 2 Stunden vor dem Ende der "Angriffsphase" lag.] + @{F80F}Die gewählte Startzeit wurde modifiziert, weil sie nicht mindestens 2 Stunden vor dem Ende der Angriffsphase lag.] // HASH_VALUE CD7124A26E55399A // INDEX 1211 @@ -4924,7 +4919,7 @@ uiOutpostSetSquad [ANHEUERN] // HASH_VALUE 605E78394D00F5FA // INDEX 1213 -uittOutpostSetSquad [Die Truppe anstatt der angeheuerten Truppe auswählen] +uittOutpostSetSquad [Diese Truppe anstatt der angeheuerten Truppe auswählen] // HASH_VALUE 69BA8097AA9AF0C7 // INDEX 1214 @@ -4973,18 +4968,16 @@ uiOutpostSSquad [AKTIVE TRUPPEN] // HASH_VALUE 0F3B4563845E6EFF // INDEX 1225 uittOutpostSSquad [Eingesetzte Truppen, die den Außenposten verteidigen.\n - Die Gesamtheit aller eingesetzten Truppen hängt vom @{6F6F}Rundenlevel@{FFFF} ab.\n - ] + Die Gesamtheit aller eingesetzten Truppen hängt vom @{6F6F}Rundenlevel@{FFFF} ab.\n ] // HASH_VALUE 08110B32CC11D70D // INDEX 1226 -uiOutpostTSquad [WARTEN AUF TRUPPEN] +uiOutpostTSquad [BEREITSTEHENDE TRUPPEN] // HASH_VALUE F1D1A88C0BDB046E // INDEX 1227 uittOutpostTSquad [Kampfbereite Truppen, die auf die nächste Runde warten.\n - Laut des @{6F6F}Rundenlevels@{FFFF}, kommen nur die 'X' Ersten heraus.\n - ] + Laut des @{6F6F}Rundenlevels@{FFFF}, kommen nur die 'X' Ersten heraus.\n ] // HASH_VALUE DB499A35C8B08D6A // INDEX 1228 @@ -5020,17 +5013,17 @@ uittOutpostTSquadDuring [Truppen, die nacheinander während der Runde auftauchen // HASH_VALUE 9344AEB00A6F6FA1 // INDEX 1236 -uiOutpostSquadEditDef [Sie verteidigen diesen Außenposten.\n +uiOutpostSquadEditDef [Du verteidigst diesen Außenposten.\n Während der @{6F6F}Angriffsperiode@{FFFF} erscheinen Truppen, um diesen Außenposten zu verteidigen.\n - In diesem Fenster kannst du alle eingesetzten Truppen sehen und die Truppen ändern, die eingesetzt werden.\n - Achtung: Nur hohe Offiziere und Gildenanführer können Truppen verändern.] + In diesem Fenster kannst du alle eingesetzten Truppen sehen, und die Truppen ändern, die eingesetzt werden.\n + Achtung: nur hohe Offiziere und Gildenanführer können Truppen verändern.] // HASH_VALUE C24385362A0BC5BD // INDEX 1237 -uiOutpostSquadEditAtt [Sie greifen diesen Außenposten an.\n - Während der @{6F6F}Verteidigungsperiode@{FFFF}, erscheinen Truppen, um sich gegen die Verteidiger zu stellen, die versuchen diesen Außenposten wiederzugewinnen.\n +uiOutpostSquadEditAtt [Du greifst diesen Außenposten an.\n + Während der @{6F6F}Verteidigungsperiode@{FFFF}, erscheinen Truppen, um sich gegen die Verteidiger zu stellen, die versuchen, diesen Außenposten wiederzugewinnen.\n In diesem Fenster kannst du alle Truppen im Einsatz einsehen und die Truppen ändern, die eingesetzt werden.\n - Achtung: Nur hohe Offiziere und Gildenanführer können Truppen ändern.] + Achtung: nur hohe Offiziere und Gildenanführer können Truppen ändern.] // HASH_VALUE 3F6F38EC4351C039 // INDEX 1238 @@ -5038,13 +5031,12 @@ uiOutpostCapital [KRIEGSKASSE] // HASH_VALUE B3ECCE9347314BB9 // INDEX 1239 -uiOutpostCapitalDoc [Die Truppen, die du hier bearbeiten willst, kosten die Gilde nicht sofort Geld.\n - Das Geld wird erst ausgegeben, wenn eine Truppe für eine Runde auch wirklich erscheint.\n - Doch wenn die Gilde nicht mehr genug Geld hat, um den @{6F6F) Einsatz einer Truppe@{FFFF} zu bezahlen, wird eine Standard-Truppe eingesetzt (die nicht so stark ist).\n - Außerdem hast du die Möglichkeit, @{6F6F}durch Außenposten@{FFFF} die Ausgaben für die Truppen zu vermindern, indem du den Etat der unten stehenden @{6F6F}Kriegskasse@{FFFF} änderst.\n +uiOutpostCapitalDoc [Die Truppen, die du hier bearbeiten willst, kosten die Gilde nicht sofort Dapper.\n + Die Dapper werden erst ausgegeben, wenn eine Truppe für eine Runde auch wirklich erscheint.\n + Doch wenn die Gilde nicht mehr genug Dapper hat, um den @{6F6F) Einsatz einer Truppe@{FFFF} zu bezahlen, wird eine Standard-Truppe eingesetzt, die nicht stark ist.\n + Außerdem hast du die Möglichkeit, @{6F6F}über Außenposten@{FFFF} die Ausgaben für die Truppen zu vermindern, indem du den Etat der unten stehenden @{6F6F}Kriegskasse@{FFFF} änderst.\n Jeder @{6F6F}Einsatz einer Truppe@{FFFF} vermindert gleichzeitig das Vermögen einer Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens (wenn möglich).\n - Jeder Einzug einer lebenden @{6F6F}Truppe@{FFFF} (auch nur teilweise) erhöht das Vermögen der Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens.\n - ] + Jeder Einzug einer lebenden @{6F6F}Truppe@{FFFF} (auch nur teilweise) erhöht das Vermögen der Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens.\n ] // HASH_VALUE 9E53FA091EB9BCAE // INDEX 1240 @@ -5052,7 +5044,7 @@ uiOutpostCapitalHeader [Etat: ] // HASH_VALUE B5F8EA99B9981482 // INDEX 1241 -uiOutpostCapitalEditOK [Klicke auf diesen Knopf, um den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens zu ändern.] +uiOutpostCapitalEditOK [Klicke auf diesen Button, um den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens zu ändern.] // HASH_VALUE 0906F15B3A481A8C // INDEX 1242 @@ -5065,7 +5057,7 @@ uiOutpostChangeCapital [Den Etat ändern.] // HASH_VALUE 0B48E9436F6E2255 // INDEX 1244 uittPvpOutpostOutOfZone [Du nimmst an einem Außenpostenkampf teil.\n - Du hast die Zone verlassen, wirst die PVP-Flagge aber noch einen Augenblick behalten. Wenn du eine der folgenden Aktionen durchführst, startet der Timer erneut:\n + Du hast die Zone verlassen, wirst die PvP-Flagge aber noch einen Augenblick behalten. Wenn du eine der folgenden Aktionen durchführst, startet der PvP-Timer erneut:\n @{T4}- Einen Alliierten heilen.\n @{T4}- Einen Feind angreifen.\n @{T4}- Die Zone des Außenpostens erneut betreten.] @@ -5084,13 +5076,13 @@ uittPvpOutpostInRound [Du nimmst an einem Außenpostenkampf teil.\n // HASH_VALUE 544777846044A88C // INDEX 1247 -uiOutpostJoinPVPProposalTitle [PVP Außenposten] +uiOutpostJoinPVPProposalTitle [Außenposten-PvP] // HASH_VALUE F15D3DA357B124B7 // INDEX 1248 -uiOutpostJoinPVPProposalDesc [Du befindest dich in der Zone eines Außenpostens.\n - Du kannst am Kampf teilnehmen, um den Außenposten zu erobern oder zu verteidigen.\n - Wenn deine Gilde daran teil nimmt, kannst du nicht gegen sie kämpfen. (Doch du kannst neutral bleiben).\n +uiOutpostJoinPVPProposalDesc [Du befindest dich in der Zone eines Außenposten-Kampfs.\n + Du kannst am PvP-Kampf teilnehmen, um den Außenposten zu erobern oder zu verteidigen.\n + Wenn deine Gilde daran teilnimmt, kannst du nicht gegen sie kämpfen. (Doch du kannst neutral bleiben).\n ] // HASH_VALUE 4014440450505444 @@ -5231,11 +5223,11 @@ uiLinkInfo [Details] // HASH_VALUE EE1834D82CB0E2BA // INDEX 1283 -uiTIWaitLoot [Plünderung, warten...] +uiTIWaitLoot [Durchsuchen, bitte warten...] // HASH_VALUE 9350F35271E64FC7 // INDEX 1284 -uiTIWaitQuartering [Ausweidung, warten...] +uiTIWaitQuartering [Ausnehmen, bitte warten...] // HASH_VALUE AA28F306DC05B0A5 // INDEX 1285 @@ -5247,31 +5239,31 @@ uiTIWaitBagFull [Tasche voll, bitte warten...] // HASH_VALUE 26B606048AA5ECA4 // INDEX 1287 -uiTIWaitCraft [Herstellung, warten...] +uiTIWaitCraft [Herstellung, bitte warten...] // HASH_VALUE 6C9A04DA3290EABA // INDEX 1288 -uiTIWaitMissionItem [Mission: Warten...] +uiTIWaitMissionItem [Mission, bitte warten...] // HASH_VALUE 5ABB248632929E75 // INDEX 1289 -uiTIWaitCrystallize [Kristallisierung, warten...] +uiTIWaitCrystallize [Kristallisierung, bitte warten...] // HASH_VALUE C6F1C8331DF0CFC0 // INDEX 1290 -uiTIForaging [%qt Objekt(e) der Qualität %ql] +uiTIForaging [%qt Material/ien der Qualität %ql] // HASH_VALUE AAC6F3742A34A29E // INDEX 1291 -uiTILoot [Gegenstände geplündert] +uiTILoot [Gefunden] // HASH_VALUE A8E837A967CAA45B // INDEX 1292 -uiTIQuartering [Ausgeweidete Ressourcen] +uiTIQuartering [Verwertbare Materialien] // HASH_VALUE 5638F878EEA5C8BF // INDEX 1293 -uiTIForageResult [Abgebaute Rohstoffe] +uiTIForageResult [Geerntete Materialien] // HASH_VALUE 20D814086C185418 // INDEX 1294 @@ -5283,15 +5275,15 @@ uiTICraft [Gegenstände hergestellt] // HASH_VALUE 6859174F57BE07AF // INDEX 1296 -uiTIMissionItem [Mission: Gegenstände nehmen] +uiTIMissionItem [Gegenstände erhalten] // HASH_VALUE 6CDC2CDE68D814B8 // INDEX 1297 -uiTICrystallize [Erhaltener Kristall] +uiTICrystallize [Kristall erhalten] // HASH_VALUE 02F3CC00B79E8633 // INDEX 1298 -uiTIError [FEHLER TITEL NICHT GEFUNDEN!] +uiTIError [FEHLER: TITEL NICHT GEFUNDEN!] // HASH_VALUE 8BD3A835C7E3803B // INDEX 1299 @@ -5300,7 +5292,7 @@ uihIntro [Einführung] // Help.xml // HASH_VALUE 8841AC214512B434 // INDEX 1300 -uihInterfaces [INTERFACES] +uihInterfaces [OBERFLÄCHEN] // HASH_VALUE 4C1454504C509448 // INDEX 1301 @@ -5308,7 +5300,7 @@ uihTutorial [TUTORIAL] // HASH_VALUE B6B3373B81C23747 // INDEX 1302 -uihHowTo [WIE MAN...] +uihHowTo [ANLEITUNG] // HASH_VALUE 60FA9C56E8B0CCAE // INDEX 1303 @@ -5320,7 +5312,7 @@ uihManageChar [Charakter verwalten] // HASH_VALUE E878568FD8105420 // INDEX 1305 -uihTalkToBot [Sprich mit einem Bot] +uihTalkToBot [Sprich mit einem NPC] // HASH_VALUE 2C5C54086C18544C // INDEX 1306 @@ -5348,7 +5340,7 @@ uihMaps [KARTEN] // HASH_VALUE DB4498851A1713B8 // INDEX 1312 -uihMatisGenMap [Matis Allgemein] +uihMatisGenMap [Matis-Karte allgemein] // HASH_VALUE AAD72C8F5DB8407E // INDEX 1313 @@ -5376,7 +5368,7 @@ uihHowToFindRMSources [Quellen finden] // HASH_VALUE C7EA20F9D80C6861 // INDEX 1319 -uihHowToExtractRMFromASource [Abbau einer Quelle] +uihHowToExtractRMFromASource [Aus Quellen ernten] // HASH_VALUE 28F6B84BD6A37CA8 // INDEX 1320 @@ -5392,7 +5384,7 @@ uihWhatIsYourStatsAndCharac [Deine Werte und Eigenschaften] // HASH_VALUE C550782A7ECEEFF3 // INDEX 1323 -uihGameInfo [Spielinfo] +uihGameInfo [Spiel-Info] // HASH_VALUE AD07589D2368788E // INDEX 1324 @@ -5420,11 +5412,11 @@ uihJewelry [Schmuck] // HASH_VALUE 6C584424781C94D0 // INDEX 1330 -uihIdentity [Meine Werte] +uihIdentity [Identität] // HASH_VALUE E67874686595BC86 // INDEX 1331 -uihGauges [Mein Status] +uihGauges [Werte-Anzeige] // HASH_VALUE 27E9787FA607C490 // INDEX 1332 @@ -5432,7 +5424,7 @@ uihTarget [Ziel] // HASH_VALUE E8C62C801EB7048D // INDEX 1333 -uihHands [Hände] +uihHands [Hände Aktionsleiste] // HASH_VALUE A0C7108A4AA2EB58 // INDEX 1334 @@ -5456,7 +5448,7 @@ uihTradeNPC [NPC-Interaktion] // HASH_VALUE C7123CF2C76344CB // INDEX 1339 -uihCredits [Credits] +uihCredits [Ausgleich] // HASH_VALUE 2EE71C61EF252092 // INDEX 1340 @@ -5488,7 +5480,7 @@ uihCraftTool [Handwerkszeug] // HASH_VALUE 2DD8A47E5BA9186A // INDEX 1347 -uihHarvestTool [Rohstoffgewinnungswerkzeug] +uihHarvestTool [Rohstofferntewerkzeug] // HASH_VALUE 60DC943460DC9434 // INDEX 1348 @@ -5496,7 +5488,7 @@ uihItemMisc [Verschiedenes] // HASH_VALUE 6498943064989430 // INDEX 1349 -uiLife [Leben] +uiLife [Lebenskraft] // HASH_VALUE 1C591877A0875485 // INDEX 1350 @@ -5528,79 +5520,81 @@ uiActionStatus [Fortschritt der laufenden Aktion] // HASH_VALUE 41E3D738C5300C19 // INDEX 1357 -uiSapBarDisplay [SAP-ANZEIGE] +uiSapBarDisplay [Sapanzeige] // HASH_VALUE CC22C83402E0A824 // INDEX 1358 -uiStaBarDisplay [AUSDAUER-ANZEIGE] +uiStaBarDisplay [Ausdaueranzeige] // HASH_VALUE 895E302F3D723B38 // INDEX 1359 -uiFocBarDisplay [FOKUS-ANZEIGE] +uiFocBarDisplay [Fokusanzeige] // HASH_VALUE EB5042B44A367EE6 // INDEX 1360 -uiXpBonusInfo [XP Bonus: Lvl@{6F6F}%lvl@{FFFF} x@{6F6F}%count@{FFFF}] +uiXpBonusInfo [XP-Bonus: Stufe @{6F6F}%lvl@{FFFF} x @{6F6F}%count@{FFFF}] // HASH_VALUE 2D79EC806D00D1D6 // INDEX 1361 -uittXpBonus [Ein Erfahrungskatalysator ist aktiv. Er verleiht dir einen Erfahrungsbonus.\n - Klicken, um ihn zu deaktivieren.] +uittXpBonus [Erfahrungskatalysatoren (Kristalle) sind aktiv.\n + Sie geben Erfahrungsboni für die Anwendung von Aktionen mit geringeren Fertigkeitsstufen als die gewählten Katalysatoren. \n + Einige Katalysatoren werden dazu verbraucht. Klicke hier, um die Katalysatoren zu deaktivieren.\n + Die automatischen Erfahrungsboni für Bezahlaccounts können nicht deaktiviert werden. ] // HASH_VALUE E02A77CCC8F159E8 // INDEX 1362 -uittDeathPenalty [@{6F6F}XP Todesstrafe\n - @{FFFF}Wenn du stirbst, wird diese Strafe erhöht.\n - Die nächsten XP-Gewinne werden diese Schulden begleichen.\n - Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] +uittDeathPenalty [@{6F6F}Du hast eine Sterbe-Erfahrungsstrafe.\n + @{FFFF}Wenn dein Charakter von den Mächten wiederbelebt werden muss, wird diese Strafe erhöht.\n + Die darauf folgenden Erfahrungs-Gewinne begleichen die Strafe, bis sie abgetragen ist.\n + Bis die Strafe auf 0 gesunken ist, bringen Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] // HASH_VALUE 54642750D9A8FC62 // INDEX 1363 -uiHpMax [HP Max] +uiHpMax [max. Leben] // HASH_VALUE 50A43B50D9A8B866 // INDEX 1364 -uiHpReg [HP Reg] +uiHpReg [Lebens-Reg.] // HASH_VALUE 1D35906FD7F59F9F // INDEX 1365 -uiStaMax [Ausdauer Max] +uiStaMax [max. Ausdauer] // HASH_VALUE 5E24A074D8465BA3 // INDEX 1366 -uiStaReg [Ausdauer Reg] +uiStaReg [Ausdauer-Reg.] // HASH_VALUE D1F3FB4450D93879 // INDEX 1367 -uiSapMax [Sap Max] +uiSapMax [max. Sap] // HASH_VALUE CE840F4450C80471 // INDEX 1368 -uiSapReg [Sap Reg] +uiSapReg [Sap-Reg.] // HASH_VALUE A1173C6C8F64AFBA // INDEX 1369 -uiWishMax [Fokus Max] +uiWishMax [max. Fokus] // HASH_VALUE A1060864D1B5AFBA // INDEX 1370 -uiWishReg [Fokus Reg] +uiWishReg [Fokus-Reg.] // HASH_VALUE D433345651734C4C // INDEX 1371 -uitabFameYou [DU] +uitabFameYou [Du] // HASH_VALUE CB21A82C8BA1B420 // INDEX 1372 -uitabFameGuild [GILDE] +uitabFameGuild [Gilde] // HASH_VALUE 88C1E8368C72EC27 // INDEX 1373 -uitabFameTribes [STÄMME] +uitabFameTribes [Stämme] // HASH_VALUE D174344652741C4C // INDEX 1374 -uitabFamePvp [PVP] +uitabFamePvp [PvP] // HASH_VALUE 6858142C6858142C // INDEX 1375 @@ -5656,11 +5650,11 @@ uiFameAllegianceCiv [Zivilisation: ] // HASH_VALUE 5E01D07BAEA782C2 // INDEX 1388 -uiFameAllegiance0 [Unentschlossen] +uiFameAllegiance0 [unbestimmt] // HASH_VALUE ECB99083284690A7 // INDEX 1389 -uiFameAllegiance1 [Neutral] +uiFameAllegiance1 [neutral] // HASH_VALUE 6858142C6858142C // INDEX 1390 @@ -5693,8 +5687,8 @@ uittFameAllegianceCiv0 [Deine Zivilisationsangehörigkeit ist @{2F2F}unbestimmt@ Dies könnte beispielsweise geschehen sein, weil deine Gilde durch einen zu geringen Ruhm ihre Angehörigkeit verlor.\n In dieser Lage kannst du keinen Ruhm mehr gewinnen. Du kannst:\n @{T4}- neutral werden\n - @{T4}- deine Gilde verlassen und einen @{2F2F}Magistrat@{FFFF} in der Hauptstadt einer Zivilisation aufsuchen, wenn du ihm Folgschaft geloben willst (Ruhm von 30 benötigt).\n - @{T4}- warten, bis deine Gilde erneut ihre Angehörigkeit zu einer Zivilisation erklärt, damit auch du daraufhin deine Folgschaft erneuern kannst.] + @{T4}- deine Gilde verlassen und einen @{2F2F}Magistrat@{FFFF} in der Hauptstadt einer Zivilisation aufsuchen, wenn du dieser Gefolgschaft geloben willst (Ruhm von 30 benötigt).\n + @{T4}- warten, bis deine Gilde erneut ihre Angehörigkeit zu einer Zivilisation erklärt, damit auch du daraufhin deine Gefolgschaft erneuern kannst.] // HASH_VALUE 21D8DEBBDF540F69 // INDEX 1397 @@ -5705,31 +5699,31 @@ uittFameAllegianceCiv1 [Du bist @{2F2F}staatenlos@{FFFF}.\n // HASH_VALUE EEF11BA25CE59320 // INDEX 1398 -uittFameAllegianceCiv4 [Du hast den @{2F2F}Fyros@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Fyros zu erlangen, aber deine Gilde muss ebenso den Fyros Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in einer Hauptstadt gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Fyros@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCiv4 [Du hast den @{2F2F}Fyros@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Fyros zu erlangen, aber deine Gilde muss ebenso den Fyros Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in Pyr gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Fyros@{FFFF}-Ruhm 0 erreicht.] // HASH_VALUE F3701FA45695A3EA // INDEX 1399 -uittFameAllegianceCiv5 [Du hast den @{2F2F}Matis@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Matis zu erlangen, aber deine Gilde muss ebenso den Matis Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in einer Hauptstadt gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Matis@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCiv5 [Du hast den @{2F2F}Matis@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Matis zu erlangen, aber deine Gilde muss ebenso den Matis Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in Yrkanis gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Matis@{FFFF}-Ruhm 0 erreicht.] // HASH_VALUE 9F69A500FA32081B // INDEX 1400 -uittFameAllegianceCiv6 [Du hast den @{2F2F}Trykern@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Trykern zu erlangen, aber deine Gilde muss ebenso den Trykern Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in einer Hauptstadt gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Tryker@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCiv6 [Du hast den @{2F2F}Trykern@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Trykern zu erlangen, aber deine Gilde muss ebenso den Trykern Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in Fairhaven gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Tryker@{FFFF}-Ruhm 0 erreicht.] // HASH_VALUE F8AF33A2D5666BFE // INDEX 1401 -uittFameAllegianceCiv7 [Du hast den @{2F2F}Zoraï@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Zoraï zu erlangen, aber deine Gilde muss ebenso den Zoraï Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in einer Hauptstadt gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Zoraï@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCiv7 [Du hast den @{2F2F}Zoraï@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Zoraï zu erlangen, aber deine Gilde muss ebenso den Zoraï Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Magistrat@{FFFF} in Zora gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Zoraï@{FFFF}-Ruhm 0 erreicht.] // player cult tooltip // HASH_VALUE C5FDDEC1A0AFC303 @@ -5738,36 +5732,37 @@ uittFameAllegianceCult0 [Deine Religionsangehörigkeit ist @{2F2F}unbestimmt@{FF Dies könnte beispielsweise geschehen sein, weil deine Gilde durch einen zu geringen Ruhm ihre Angehörigkeit verlor.\n In dieser Lage kannst du keinen Ruhm mehr gewinnen. Du kannst:\n @{T4}- neutral werden\n - @{T4}- deine Gilde verlassen und einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} des Tempels eines Kultes aufsuchen, wenn du ihm Folgschaft geloben willst (Ruhm von 30 benötigt).\n - @{T4}- warten, bis deine Gilde erneut ihre Angehörigkeit zu einem Kult erklärt, damit auch du daraufhin deine Folgschaft erneuern kannst.] + @{T4}- deine Gilde verlassen und einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} des Tempels einer Macht aufsuchen, wenn du ihr Gefolgschaft geloben willst (Ruhm von 30 benötigt).\n + @{T4}- warten, bis deine Gilde erneut ihre Angehörigkeit zu einer Macht erklärt, damit auch du daraufhin deine Gefolgschaft erneuern kannst.] // HASH_VALUE 21C50A6E944DEAAC // INDEX 1403 uittFameAllegianceCult1 [Du bist @{2F2F}religionslos@{FFFF}.\n - Du bist in deinem Ruhm bei den Kulten eingeschränkt, aber du kannst jedweder Gilde beitreten.\n - Um dich zu einem Kult zu bekennen, musst du einen @{2F2F}Priester@{FFFF} oder @{2F2F}Meister@{FFFF} im entsprechenden Tempel aufsuchen.\n - Du musst dazu über mindestens @{2F2F}30@{FFFF} Ruhm bei dem entsprechenden Kult verfügen.] + Du bist in deinem Ruhm bei den Mächten eingeschränkt, aber du kannst jedweder Gilde beitreten.\n + Um dich zu einer Macht zu bekennen, musst du einen @{2F2F}Priester@{FFFF} oder @{2F2F}Meister@{FFFF} eines entsprechenden Tempels aufsuchen.\n + Du musst dazu über mindestens @{2F2F}30@{FFFF} Ruhm bei der entsprechenden Macht verfügen.] // HASH_VALUE D2FE27E9B9979E1B // INDEX 1404 -uittFameAllegianceCult2 [Du hast den @{2F2F}Kami@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Kami zu erlangen, aber deine Gilde muss ebenso den Kami Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Priester@{FFFF}oder @{2F2F}Meister@{FFFF} eines Tempels gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Kami@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCult2 [Du hast den @{2F2F}Kami@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Kami zu erlangen, aber deine Gilde muss ebenso den Kami Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Priester@{FFFF}oder @{2F2F}Meister@{FFFF} eines Ma-Duk-Tempels gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Kami@{FFFF}-Ruhm 0 erreicht.] // HASH_VALUE FDC4333DC5DF2BAB // INDEX 1405 -uittFameAllegianceCult3 [Du hast den @{2F2F}Karavan@{FFFF} Folgschaft geschworen.\n - Dies erlaubt dir, einen höheren Ruhm bei den Karavan zu erlangen, aber deine Gilde muss ebenso den Karavan Folgschaft geschworen haben.\n - Um deine Folgschaft aufzukündigen, kannst du zu einem @{2F2F}Priester@{FFFF}oder @{2F2F}Meister@{FFFF} eines Tempels gehen.\n - Du kündigst deine Folgschaft automatisch auf, sobald dein @{2F2F}Karavan@{FFFF}-Ruhm 0 erreicht.] +uittFameAllegianceCult3 [Du hast den @{2F2F}Karavan@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt dir, einen höheren Ruhm bei den Karavan zu erlangen, aber deine Gilde muss ebenso den Karavan Gefolgschaft geschworen haben.\n + Um deine Gefolgschaft aufzukündigen, kannst du zu einem @{2F2F}Priester@{FFFF}oder @{2F2F}Meister@{FFFF} eines Jena-Tempels gehen.\n + Du kündigst deine Gefolgschaft automatisch auf, sobald dein @{2F2F}Karavan@{FFFF}-Ruhm 0 erreicht.] // Guild civ tooltip // HASH_VALUE 0A90322EFBC91874 // INDEX 1406 uittFameAllegianceCivGuild0 [Die Zivilisationsangehörigkeit deiner Gilde ist @{2F2F}unbestimmt@{FFFF}.\n - Deine Gilde kann keinen weiteren Ruhm erlangen. Der Gildenführer kann:@{T4}- die Gilde neutral werden lassen\n - @{T4}- einer Zivilisation Folgschaft geloben, indem er einen @{2F2F}Magistrat@{FFFF} für Gilden in der entsprechenden Hauptstadt aufsucht (keine Ruhm-Voraussetzungen).] + Deine Gilde kann keinen weiteren Ruhm erlangen. Der Gildenführer kann:\n + @{T4}- die Gilde neutral werden lassen\n + @{T4}- einer Zivilisation Gefolgschaft geloben, indem er einen @{2F2F}Magistrat@{FFFF} für Gilden in der entsprechenden Hauptstadt aufsucht (keine Ruhm-Voraussetzungen).] // HASH_VALUE 3867F610AADC3C4B // INDEX 1407 @@ -5778,60 +5773,60 @@ uittFameAllegianceCivGuild1 [Deine Gilde ist @{2F2F}staatenlos@{FFFF}.\n // HASH_VALUE 48B5E21ED594D35A // INDEX 1408 -uittFameAllegianceCivGuild4 [Deine Gilde hat den @{2F2F}Fyros@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Fyros zu erlangen und fyrostreue oder zivilisationsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in einer Hauptstadt gehen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Fyros@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] +uittFameAllegianceCivGuild4 [Deine Gilde hat den @{2F2F}Fyros@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Fyros zu erlangen und fyrostreue und/oder zivilisationsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in Pyr gehen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Fyros@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] // HASH_VALUE 0AB5CA14D1A21342 // INDEX 1409 -uittFameAllegianceCivGuild5 [Deine Gilde hat den @{2F2F}Matis@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Matis zu erlangen und matistreue oder zivilisationsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in einer Hauptstadt gehen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Matis@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] +uittFameAllegianceCivGuild5 [Deine Gilde hat den @{2F2F}Matis@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Matis zu erlangen und matistreue und/oder zivilisationsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in Yrkanis gehen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Matis@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] // HASH_VALUE 527303AF879765CE // INDEX 1410 -uittFameAllegianceCivGuild6 [Deine Gilde hat den @{2F2F}Trykern@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Trykern zu erlangen und trykertreue oder zivilisationsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in einer Hauptstadt gehen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Tryker@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] +uittFameAllegianceCivGuild6 [Deine Gilde hat den @{2F2F}Trykern@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Trykern zu erlangen und trykertreue und/oder zivilisationsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in Fairhaven gehen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Tryker@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] // HASH_VALUE 4D145A02D0B37350 // INDEX 1411 -uittFameAllegianceCivGuild7 [Deine Gilde hat den @{2F2F}Zoraï@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Zoraï zu erlangen und zoraïtreue oder zivilisationsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in einer Hauptstadt gehen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Zoraï@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] +uittFameAllegianceCivGuild7 [Deine Gilde hat den @{2F2F}Zoraï@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Zoraï zu erlangen und zoraïtreue und/oder zivilisationsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer zu einem @{2F2F}Magistrat@{FFFF} für Gilden in Zora gehen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Zoraï@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Zivilisationsangehörigkeit unbestimmt sein.] // Guild cult tooltip // HASH_VALUE 87F020E581564B7C // INDEX 1412 -uittFameAllegianceCultGuild0 [Die Religionsangehörigkeit ihrer Gilde ist @{2F2F}unbestimmt@{FFFF}.\n +uittFameAllegianceCultGuild0 [Die Religionsangehörigkeit deiner Gilde ist @{2F2F}unbestimmt@{FFFF}.\n Deine Gilde kann keinen Ruhm mehr gewinnen. Der Gildenführer kann:\n @{T4}- die Gilde neutral werden lassen.\n - @{T4}- einem Kult Folgschaft geloben, indem er einen @{2F2F}Priester@{FFFF} oder @{2F2F}Meister@{FFFF} für Gilden eines entsprechenden Tempels aufsucht (keine Ruhm-Voraussetzungen)] + @{T4}- einer Macht Gefolgschaft geloben, indem er einen @{2F2F}Priester@{FFFF} oder @{2F2F}Meister@{FFFF} für Gilden eines entsprechenden Tempels aufsucht (keine Ruhm-Voraussetzungen)] // HASH_VALUE 7B003A98BC232BB8 // INDEX 1413 uittFameAllegianceCultGuild1 [Deine Gilde ist @{2F2F}religionslos@{FFFF}.\n - Sie ist in ihrem Ruhm bei den Kulten eingeschränkt und kann ausschließlich religionsneutrale Mitglieder aufnehmen.\n - Um sich zu einem Kult zu bekennen, muss der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden des entsprechenden Tempels aufsuchen.\n - Die Gilde muss dazu über mindestens @{2F2F}30@{FFFF} Ruhm bei dem entsprechenden Kult verfügen.] + Sie ist in ihrem Ruhm bei den Mächten eingeschränkt und kann ausschließlich religionsneutrale Mitglieder aufnehmen.\n + Um sich zu einer Macht zu bekennen, muss der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden eines entsprechenden Tempels aufsuchen.\n + Die Gilde muss dazu über mindestens @{2F2F}30@{FFFF} Ruhm bei der entsprechenden Macht verfügen.] // HASH_VALUE A1B5C5D32E70A250 // INDEX 1414 -uittFameAllegianceCultGuild2 [Deine Gilde hat den @{2F2F}Kami@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Kami zu erlangen und kamitreue oder religionsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden eines Tempels aufsuchen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Kami@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Religionsangehörigkeit unbestimmt sein.] +uittFameAllegianceCultGuild2 [Deine Gilde hat den @{2F2F}Kami@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Kami zu erlangen und kamitreue und/oder religionsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden eines Ma-Duk-Tempels aufsuchen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Kami@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Religionsangehörigkeit unbestimmt sein.] // HASH_VALUE A6342B025D599CA6 // INDEX 1415 -uittFameAllegianceCultGuild3 [Deine Gilde hat den @{2F2F}Karavan@{FFFF} Folgschaft geschworen.\n - Dies erlaubt ihr, einen höheren Ruhm bei den Karavan zu erlangen und karavantreue oder religionsneutrale Mitglieder aufzunehmen.\n - Um die Folgschaft aufzukündigen, kann der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden eines Tempels aufsuchen.\n - Deine Gilde kündigt ihre Folgschaft automatisch auf, sobald ihr @{2F2F}Karavan@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Religionsangehörigkeit unbestimmt sein.] +uittFameAllegianceCultGuild3 [Deine Gilde hat den @{2F2F}Karavan@{FFFF} Gefolgschaft geschworen.\n + Dies erlaubt ihr, einen höheren Ruhm bei den Karavan zu erlangen und karavantreue und/oder religionsneutrale Mitglieder aufzunehmen.\n + Um die Gefolgschaft aufzukündigen, kann der Gildenführer einen @{2F2F}Meister@{FFFF} oder @{2F2F}Priester@{FFFF} für Gilden eines Jena-Tempels aufsuchen.\n + Deine Gilde kündigt ihre Gefolgschaft automatisch auf, sobald ihr @{2F2F}Karavan@{FFFF}-Ruhm 0 erreicht. Die Mitglieder werden dann in ihrer Religionsangehörigkeit unbestimmt sein.] // HASH_VALUE D8AA849A28C56C8B // INDEX 1416 @@ -5843,11 +5838,11 @@ uiFameAllegianceCultSetNeutral [Neutral werden] // HASH_VALUE 77E6B622B95448FB // INDEX 1418 -uiFameAllegianceCivSetNeutralTT [Die Loyalität der Zivilisation zum neutralen Modus zwingen] +uiFameAllegianceCivSetNeutralTT [Die Loyalität für Zivilisationen in den neutralen Modus verändern] // HASH_VALUE F0D1D5B5D65C7E37 // INDEX 1419 -uiFameAllegianceCultSetNeutralTT [Die Glaubensrichtung zum neutralen Modus zwingen] +uiFameAllegianceCultSetNeutralTT [Die Religionszugehörigkeit in den neutralen Modus verändern] // HASH_VALUE C6382BD9E5BE63CA // INDEX 1420 @@ -5855,27 +5850,27 @@ uiFameAllegianceCivSetNeutralWarning [Achtung! Wenn du in den neutralen Modus we // HASH_VALUE E090B9CAD3908C08 // INDEX 1421 -uiFameAllegianceCultSetNeutralWarning [Achtung! Wenn du in den neutralen Modus wechselst, riskierst du, Punkte beim Glaubensruhm (Kami/Karavan) zu verlieren.] +uiFameAllegianceCultSetNeutralWarning [Achtung! Wenn du in den neutralen Modus wechselst, riskierst du, Punkte beim Religionsruhm (Kami/Karavan) zu verlieren.] // HASH_VALUE 12E4812321F30793 // INDEX 1422 -uiFameAllegianceCivSetNeutralGuildTT [Durch eine neutrale Haltung wird deine GILDE keine Zivilisationsangehörigkeit besitzen\n - und sie wird keine Loyalität der Zivilisation genießen.\n +uiFameAllegianceCivSetNeutralGuildTT [Durch eine neutrale Haltung wird deine GILDE keine Zivilisationsangehörigkeit haben\n + und sie wird keine Vorteile bei einer Zivilisation genießen.\n Der Gildenleiter ist der einzige, der diese Änderung durchführen kann.] // HASH_VALUE AE8AC62D968D7C91 // INDEX 1423 -uiFameAllegianceCultSetNeutralGuildTT [Durch eine neutrale Haltung wird deine GILDE keine Religionszugehörigkeit besitzen\n - und keinerlei Loyalität durch die Religionsfraktion erhalten.\n +uiFameAllegianceCultSetNeutralGuildTT [Durch eine neutrale Haltung wird deine GILDE keine Religionszugehörigkeit haben\n + und keine Vorteile bei einer Macht genießen.\n Der Gildenleiter ist der einzige, der diese Änderung durchführen kann.] // HASH_VALUE BE5FE5FA26384BE9 // INDEX 1424 -uiFameAllegianceCivSetNeutralGuildWarning [Sei vorsichtig! Durch den neutralen Status, trägt die GILDE das Risiko Zivilisationsruhm zu verlieren. (Fyros/Matis/Tryker/Zoraï).] +uiFameAllegianceCivSetNeutralGuildWarning [Sei vorsichtig! Durch den neutralen Status trägt die GILDE das Risiko, Zivilisationsruhm zu verlieren. (Fyros/Matis/Tryker/Zoraï).] // HASH_VALUE 0F277CDE233581B4 // INDEX 1425 -uiFameAllegianceCultSetNeutralGuildWarning [Sei vorsichtig! Durch den neutralen Status, trägt die GILDE das Risiko Franktionsruhm wegen Religionslosigkeit zu verlieren (Kami/Karavan).] +uiFameAllegianceCultSetNeutralGuildWarning [Sei vorsichtig! Durch den neutralen Status trägt die GILDE das Risiko, Religionsruhm wegen Religionslosigkeit zu verlieren (Kami/Karavan).] // HASH_VALUE 2969AC6199D5BF7E // INDEX 1426 @@ -5911,7 +5906,7 @@ uiFame_tribe_company_of_the_eternal_tree [Gemeinschaft des Ewigen Baumes] // HASH_VALUE 2A0AD8972378387F // INDEX 1434 -uiFame_tribe_corsair [Korsare] +uiFame_tribe_corsair [Korsaren] // HASH_VALUE 641C540C641C540C // INDEX 1435 @@ -5931,15 +5926,15 @@ uiFame_tribe_ecowarriors [Ökokrieger] // HASH_VALUE 2AE7F46DEAC7D07E // INDEX 1439 -uiFame_tribe_firebrands [Blutrünstigen] +uiFame_tribe_firebrands [Heißsporne] // HASH_VALUE 9DEBD89DE8068363 // INDEX 1440 -uiFame_tribe_first_deserter [Ersten Deserteure] +uiFame_tribe_first_deserter [Erste Deserteure] // HASH_VALUE 6CA6FC4EEEF4FC69 // INDEX 1441 -uiFame_tribe_frahar [Fraider] +uiFame_tribe_frahar [Fraiders] // HASH_VALUE EB9AB89063D38039 // INDEX 1442 @@ -5947,7 +5942,7 @@ uiFame_tribe_frahar_hunters [Fraharjäger] // HASH_VALUE E8D6B851AA24F86B // INDEX 1443 -uiFame_tribe_gibbay [Gibbad] +uiFame_tribe_gibbay [Gibads] // HASH_VALUE 8F97387FDCF2F346 // INDEX 1444 @@ -5955,7 +5950,7 @@ uiFame_tribe_goo_heads [Erleuchtete des Goo] // HASH_VALUE 67556F6D56E56F7F // INDEX 1445 -uiFame_tribe_green_seed [Grünen Samen] +uiFame_tribe_green_seed [Grüne Samen] // HASH_VALUE D468F810D8A85C6F // INDEX 1446 @@ -6063,7 +6058,7 @@ uiFame_tribe_the_arid_matis [Dörre Matis] // HASH_VALUE 9677BC6C9AE58B68 // INDEX 1472 -uiFame_tribe_the_kuilde [Die Kuilde] +uiFame_tribe_the_kuilde [Kuilde] // HASH_VALUE C537A78F5CB56A7D // INDEX 1473 @@ -6083,7 +6078,7 @@ uiFame_tribe_woven_bridles [Wüstenplünderer] // HASH_VALUE 5D739D0817C7B25B // INDEX 1477 -uittFameKOS [Die Wachen attackieren, sobald sie dich sehen.] +uittFameKOS [Deren Wachen attackieren dich, sobald sie dich sehen.] // HASH_VALUE 159A5C875A391426 // INDEX 1478 @@ -6103,11 +6098,11 @@ uittFameMaxPossible [Maximal möglicher Ruhm: %famemax] // HASH_VALUE 1DD98C4C3E297072 // INDEX 1482 -uiPvpFameAllegiance [Treue:] +uiPvpFameAllegiance [Treue: ] // HASH_VALUE 1A54278F5EAD1979 // INDEX 1483 -uiPvpFameNoCultAllegiance [Du hast dich zu keinem Glauben bekannt.] +uiPvpFameNoCultAllegiance [Du hast dich zu keiner Macht bekannt.] // HASH_VALUE 47EAD801B913A297 // INDEX 1484 @@ -6115,17 +6110,17 @@ uiPvpFameNoCivAllegiance [Du hast dich zu keiner Zivilisation bekannt.] // HASH_VALUE 4A97CD1D36796BAD // INDEX 1485 -uiPvpFameAllegiancePoints [ Punkte der Fraktion @{FE7F}%Faktion @{2F2F}: %Punkte] +uiPvpFameAllegiancePoints [ Punkte der Fraktion @{FE7F}%faction@{2F2F}: %points] // HASH_VALUE EF3939FA4ACF5B6F // INDEX 1486 -uittPvpFameInfo [Du kannst deinen @{2F2F}PVP-Tag @{FFFF} mit einem Knopf aktivieren, der mit dem Spielerfenster verbunden ist.\n - Du machst @{2F2F}Bonus @{FFFF}wenn du dich in einer Zone befindest, die von deiner Fraktion kontrolliert wird.\n - Du machst @{2F2F}Malus @{FFFF}, wenn du dich in einer Zone befindest, die von der gegnerischen Fraktion kontrolliert wird. ] +uittPvpFameInfo [Du kannst deinen @{2F2F}PvP-Tag @{FFFF} (Flag) aktivieren, indem du auf das Schwert-Symbol im Werte-Fenster (links oben) klickst. \n + Du erhältst einen @{2F2F}Bonus@{FFFF}, wenn du dich in einer Zone befindest, die von deiner Fraktion kontrolliert wird.\n + Du erhältst einen @{2F2F}Malus@{FFFF}, wenn du dich in einer Zone befindest, die von der gegnerischen Fraktion kontrolliert wird. ] // HASH_VALUE 5EB9CE136A1CA81F // INDEX 1487 -uittPvpFameAllegianceInfo [Du gewinnst Punkte, wenn du ein Mitglied der @{FFFF}gegnerischen@{2F2F} Fraktion tötest oder einen @{FFFF}feindlichen@{2F2F} Turm zerstörst.] +uittPvpFameAllegianceInfo [Du gewinnst Punkte, wenn du ein Mitglied der @{FFFF}gegnerischen@{2F2F} Religion tötest oder einen @{FFFF}feindlichen@{2F2F} Turm zerstörst.] // HASH_VALUE 3C424447D935F882 // INDEX 1488 @@ -6183,12 +6178,12 @@ uiPvPEffect_region_dunesofexil_Malus [@{FE7F}Der Fokus der Dünen der Verbannung // HASH_VALUE D7422DA99D1FBF22 // INDEX 1499 uiPvPEffect_region_outlawcanyon_Bonus [@{FE7F}Der Fokus des Canyons der Gesetzlosen @{FFFF}:\n - Reduziert die Aggressivität des Abbaus um @{2F2F}%p] + Reduziert die Aggressivität des Rohstoff-Abbaus um @{2F2F}%p] // HASH_VALUE FF6A8249DD73501C // INDEX 1500 uiPvPEffect_region_outlawcanyon_Malus [@{FE7F}Der Fokus des Canyons der Gesetzlosen @{FFFF}:\n - Erhöht die Aggressivität des Abbaus um @{2F2F}%p] + Erhöht die Aggressivität des Rohstoff-Abbaus um @{2F2F}%p] // HASH_VALUE 1CF7E12B68571C28 // INDEX 1501 @@ -6304,12 +6299,12 @@ uiPvPEffect_region_restingwater_Malus [@{FE7F}Der Fokus des Ruhigen Wassers @{FF // HASH_VALUE DB10BD4E5027D67E // INDEX 1523 -uiPvPEffect_region_dewdrops_Bonus [@{FE7F}Der Fokus der Tautropfen @{FFFF}:\n +uiPvPEffect_region_dewdrops_Bonus [@{FE7F}Der Fokus des Tautropfens @{FFFF}:\n Erhöht den Willen um @{2F2F}%n] // HASH_VALUE D09AFB32C570750B // INDEX 1524 -uiPvPEffect_region_dewdrops_Malus [@{FE7F}Der Fokus der Tautropfen @{FFFF}:\n +uiPvPEffect_region_dewdrops_Malus [@{FE7F}Der Fokus desTautropfens @{FFFF}:\n Vermindert den Willen um @{2F2F}%n] // HASH_VALUE 4C7F8B6E3D85B01D @@ -6535,62 +6530,62 @@ uiPvPEffect_region_nexus_Malus [@{FE7F}Der Fokus des Nexus @{FFFF}:\n // HASH_VALUE AA1DC3C4FD396774 // INDEX 1569 uiHPDesc [@{6F6F}HP@{FFFF}, \n - Die Lebenspunkte messen den Schaden, den ein Charakter einstecken kann, ehe er stirbt.] + Lebenspunkte definieren den Schaden, den ein Charakter einstecken kann, ehe er stirbt.] // HASH_VALUE 08CF5A4F3BBC8D17 // INDEX 1570 uiStaDesc [@{6F6F}Ausdauer@{FFFF}, \n - Bei körperlichen Kampfaktionen misst die Ausdauer die Ermüdung eines Charakters.] + Während körperlicher Kampfaktionen sinkt die Ausdauer bei Ermüdung eines Charakters.] // HASH_VALUE 57516E1B1624B27C // INDEX 1571 uiSapDesc [@{6F6F}Sap@{FFFF}, \n - Die Energie, die einem Charakter ermöglicht, Magie zu wirken.] + Sap ist die Atys-typische Energie, die einem Charakter ermöglicht, Magie zu wirken.] // HASH_VALUE 0818382AFDB10CD9 // INDEX 1572 uiFocDesc [@{6F6F}Fokus@{FFFF}, \n - Misst die Fähigkeit des Charakters, sich auf Rohstoffabbau oder Handwerk zu konzentrieren.] + Fokus ist die Fähigkeit eines Charakters, sich auf Rohstoffabbau oder Handwerk zu konzentrieren.] // HASH_VALUE C5C5AADDE9B1CB06 // INDEX 1573 uiConsDesc [@{6F6F}Konstitution@{FFFF}, \n - Misst die Fähigkeit eines Charakters, lange und anstrengende körperliche Aktivitäten auf sich zu nehmen.] + Die Fähigkeit eines Charakters, anstrengende körperliche Aktivitäten auf sich zu nehmen.] // HASH_VALUE B4C1EFCDAFE00362 // INDEX 1574 uiIntDesc [@{6F6F}Intelligenz@{FFFF}, \n - Misst, wie gut ein Charakter sich auf seine mentalen Fähigkeiten fokussieren kann.] + Zeigt an, wie gut sich ein Charakter auf seine mentalen Fähigkeiten konzentrieren kann.] // HASH_VALUE 2D2E06E01D8CC946 // INDEX 1575 -uiStrDesc [@{6F6F}Kraft@{FFFF}, \n - Wert, der die körperliche Stärke eines Charakters misst. ] +uiStrDesc [@{6F6F}Stärke@{FFFF}, \n + Stärke ist der Wert, der die körperliche Kraft eines Charakters symbolisiert. ] // HASH_VALUE 2CBDF588F00F8902 // INDEX 1576 uiDexDesc [@{6F6F}Geschicklichkeit@{FFFF}, \n - Misst, wie fähig ein Charakter ist, feine Handarbeit durchzuführen. ] + Zeigt an, wie fähig ein Charakter dazu ist, feine Handarbeit durchzuführen. ] // HASH_VALUE EE7A5B01A1BEDC58 // INDEX 1577 uiMetaDesc [@{6F6F}Metabolismus@{FFFF}, \n - Misst die Rate, mit der der Körper eines Charakters sich von Verletzungen erholen kann.] + Misst die Schnelligkeit, mit der der Körper eines Homin-Charakters sich von Schäden erholen kann.] // HASH_VALUE 9DF5C8519F10DD99 // INDEX 1578 uiWisDesc [@{6F6F}Weisheit@{FFFF}, \n - Misst die mentale Kontrolle. Weisheit ist unabkömmlich für alle, die Magie einsetzen wollen.] + Symbolisiert die mentale Kontrolle. Weisheit ist unabkömmlich für den Einsatz von Magie.] // HASH_VALUE DFFD9B8BE269FBC5 // INDEX 1579 uiWBDesc [@{6F6F}Gleichgewicht@{FFFF}, \n - Charaktere, die eine größere Kontrolle über ihren körperlichen Zustand haben wollen, haben hohe Gleichgewichtswerte. ] + Ist gleichbedeutend mit der Kontrolle über den körperlichen Zustand eines Homin-Charakters. ] // HASH_VALUE C9E791CC1DBE5661 // INDEX 1580 uiWillDesc [@{6F6F}Wille@{FFFF}, \n - Die Fähigkeit, die Konzentration über lange Zeit hinweg zu wahren.] + Wille ist die Fähigkeit, über lange Zeit hinweg den Fokus auf Handwerk oder Rohstoffernte zu bewahren.] // HASH_VALUE CE41AC3DC9E2F42C // INDEX 1581 @@ -6598,7 +6593,7 @@ uiValues [WERTE] // HASH_VALUE 8501644684B26442 // INDEX 1582 -uiRegeneration [REGENERATION] +uiRegeneration [Regeneration] // HASH_VALUE B009C46E316AAC9F // INDEX 1583 @@ -6666,11 +6661,11 @@ uiCaracId7 [Wille] // HASH_VALUE DAA9BC7956B86772 // INDEX 1599 -uiScoreMax [Maximale Punktwerte] +uiScoreMax [Maximale Punktezahl] // HASH_VALUE 6514289CA0C54BAA // INDEX 1600 -uiScoreRegen [Punktregenerationswerte] +uiScoreRegen [Regenerationswerte] // HASH_VALUE E6DA8C85A067187D // INDEX 1601 @@ -6678,7 +6673,7 @@ uiDisease [Krankheit] // HASH_VALUE 68978879A7A6B093 // INDEX 1602 -uiTechno [Techno] +uiTechno [Technologie] // HASH_VALUE 28D8C0652B65DC7F // INDEX 1603 @@ -6778,7 +6773,7 @@ uiFaberTitle [HANDWERKER] // HASH_VALUE 4490A42388E12728 // INDEX 1627 -uiMagicSuffixTitle [MAGISCHE SUFFIXE] +uiMagicSuffixTitle [MAGIE-SUFFIXE] // HASH_VALUE 4331941787212730 // INDEX 1628 @@ -6835,7 +6830,7 @@ uiJoinGuildProposal [Gildeneinladung annehmen] // HASH_VALUE 0D520B173C3C8C2F // INDEX 1641 -uiJoinDuelProposal [WARNUNG - DUELLAUFFORDERUNG] +uiJoinDuelProposal [WARNUNG : DUELLAUFFORDERUNG] // HASH_VALUE 201464406C58C40C // INDEX 1642 @@ -6847,11 +6842,11 @@ uiPvpClanNeutral [Neutral] // HASH_VALUE 190C2BCF467374EF // INDEX 1644 -uiJoinClanProposalDesc [Du betrittst ein Gebiet eines PVP-Clans. Du kannst einen Clan auswählen oder neutral bleiben. Achtung: Die Wahl eines Clans kann einen Einfluss auf deinen Ruf haben... ] +uiJoinClanProposalDesc [Du betrittst ein Gebiet einer PvP-Fraktion. Du kannst eine Fraktion auswählen oder neutral bleiben. Achtung: Die Wahl einer Fraktion kann Einfluss auf deinen Ruf haben... ] // HASH_VALUE 4B6F401306FF332F // INDEX 1645 -uiInfosSystem [MEIN INFOSYSTEM] +uiInfosSystem [SYSTEM-INFO] // HASH_VALUE 1362A01A1341C41F // INDEX 1646 @@ -6867,11 +6862,11 @@ uimNewPartyChat [NEUER GRUPPENCHAT] // HASH_VALUE FA12C8CF4F318652 // INDEX 1649 -uimNewUserChat [NEUER NUTZERCHAT] +uimNewUserChat [NEUER BENUTZERCHAT] // HASH_VALUE B6F2544AD42C6C32 // INDEX 1650 -uimRemoveUserChat [NUTZERCHAT ENTFERNEN] +uimRemoveUserChat [BENUTZERCHAT ENTFERNEN] // HASH_VALUE 4DD2CC2D8A42D033 // INDEX 1651 @@ -6976,7 +6971,7 @@ uimMoveToIgnoreList [AUF DIE IGNORE-LISTE SETZEN] // HASH_VALUE 86401030B69EE00F // INDEX 1676 -uimMoveToFriendList [ZUR FREUNDESLISTE SCHIEBEN] +uimMoveToFriendList [ZUR FREUNDESLISTE ZIEHEN] // HASH_VALUE 8810A41C4690741F // INDEX 1677 @@ -6984,11 +6979,11 @@ uimBlock [BLOCKIEREN] // HASH_VALUE 4C1054504C105450 // INDEX 1678 -uimTell [TELLFENSTER ÖFFNEN] +uimTell [FLÜSTERN/TELLFENSTER] // HASH_VALUE 8810B0318B11C832 // INDEX 1679 -uimUnBlock [FREI SCHALTEN] +uimUnBlock [FREISCHALTEN] // HASH_VALUE 45812B1C0E4EB813 // INDEX 1680 @@ -7044,7 +7039,7 @@ uitabChatGuild [GILDE] // HASH_VALUE 8B8308478F83BC42 // INDEX 1693 -uitabChatSysInfo [SYS. INFO] +uitabChatSysInfo [SYSTEM-INFO] // HASH_VALUE 5050345450503454 // INDEX 1694 @@ -7100,11 +7095,11 @@ uittEmote [Klicken, um ein Emote auszuwählen und es auszuführen.] // HASH_VALUE 17774BA065F05056 // INDEX 1707 -uittTell [Einen Freund antellen] +uittTell [Einen Freund anflüstern/antellen] // HASH_VALUE 5050545044502480 // INDEX 1708 -uiTempMemory [TEMP TASCHE] +uiTempMemory [TEMPORÄRE TASCHE] // HASH_VALUE 64D814506C181480 // INDEX 1709 @@ -7144,7 +7139,7 @@ uiTeamShareValid [BESTÄTIGUNGEN] // HASH_VALUE 9CB8AA9BEB75D446 // INDEX 1718 -uiTS_Select [AUSWAHL IHRES GEGENSTANDES] +uiTS_Select [AUSWAHL DEINES GEGENSTANDES] // HASH_VALUE AA48C06E5918ABBA // INDEX 1719 @@ -7241,27 +7236,27 @@ uittDetail [Liste vom erweiterten in den einfachen Modus umschalten] // HASH_VALUE FD72B7455EC7285F // INDEX 1742 uittFilterArmor [Rüstungsfilter @{6F6F}\n - @{FFFF}Rechtsklick, um ausschließlich die @{6F6F}Rüstungen@{FFFF} anzuzeigen.] + @{FFFF}Rechtsklick, um ausschließlich @{6F6F}Rüstungen@{FFFF} anzuzeigen.] // HASH_VALUE E9E3C6E6EE8B69C7 // INDEX 1743 uittFilterWeapon [Waffenfilter @{6F6F}\n - @{FFFF}Rechtsklick, um ausschließlich die @{6F6F}Waffen@{FFFF} anzuzeigen.] + @{FFFF}Rechtsklick, um ausschließlich @{6F6F}Waffen@{FFFF} anzuzeigen.] // HASH_VALUE 55691FEE9A045C17 // INDEX 1744 uittFilterTool [Werkzeugfilter @{6F6F}\n - @{FFFF}Rechtsklick, um ausschließlich das @{6F6F}Werkzeug@{FFFF} anzuzeigen.] + @{FFFF}Rechtsklick, um ausschließlich @{6F6F}Werkzeug@{FFFF} anzuzeigen.] // HASH_VALUE F7EC4C94289E3142 // INDEX 1745 uittFilterMP [Rohstofffilter @{6F6F}\n - @{FFFF}Rechtsklick, um ausschließlich die @{6F6F}Rohstoffe@{FFFF} anzuzeigen.] + @{FFFF}Rechtsklick, um ausschließlich @{6F6F}Rohstoffe@{FFFF} anzuzeigen.] // HASH_VALUE 9BDEB6C211CDE882 // INDEX 1746 uittFilterMissMP [Filter von @{6F6F}Missionsgegenständen und -rohstoffen\n - @{FFFF}Rechtsklick, um ausschließlich die @{6F6F}Missionsgegenstände und -rohstoffe@{FFFF} anzuzeigen.] + @{FFFF}Rechtsklick, um ausschließlich @{6F6F}Missionselemente@{FFFF} anzuzeigen.] // HASH_VALUE A54058101559C818 // INDEX 1747 @@ -7273,7 +7268,7 @@ uittDropCmd [Befehlsstanza hier hineinlegen] // HASH_VALUE A96A94FAA7638CD0 // INDEX 1749 -uittMacroMemorize [Merke dir folgendes Makro] +uittMacroMemorize [Folgendes Makro merken] // HASH_VALUE A524A030BB79C757 // INDEX 1750 @@ -7353,31 +7348,31 @@ uimMCDel [LÖSCHEN] // HASH_VALUE 4F517B288CF0C80A // INDEX 1769 -uiKeysPlayerTitle [SPIELERTASTEN] +uiKeysPlayerTitle [SPIELER-TASTEN] // HASH_VALUE 0C62243E815E1B0A // INDEX 1770 -uiKeysMovementTitle [BEWEGUNGSTASTEN] +uiKeysMovementTitle [BEWEGUNGS-TASTEN] // HASH_VALUE 86221728CBFE040B // INDEX 1771 -uiKeysActionsTitle [AKTIONSTASTEN] +uiKeysActionsTitle [AKTIONS-TASTEN] // HASH_VALUE 4701E034814F03FD // INDEX 1772 -uiKeysChatTitle [CHATTASTEN] +uiKeysChatTitle [CHAT-TASTEN] // HASH_VALUE 0D823047817F1F05 // INDEX 1773 -uiKeysViewTitle [TASTEN ANZEIGEN] +uiKeysViewTitle [KAMERA-PERSPEKTIVE] // HASH_VALUE FE92BC48F5E3F440 // INDEX 1774 -uiKeysWindowsTitle [FENSTERTASTE] +uiKeysWindowsTitle [FENSTER-TASTEN] // HASH_VALUE 8D729B38CFD0FC17 // INDEX 1775 -uiKeysSystemTitle [SYSTEMTASTEN] +uiKeysSystemTitle [SYSTEM-TASTEN] // HASH_VALUE C961D836814F2301 // INDEX 1776 @@ -7637,63 +7632,63 @@ uiKeyMODECHANGE [MODECHANGE] // HASH_VALUE 8582A82B08A2B01C // INDEX 1840 -uiKeySPACE [SPACE] +uiKeySPACE [LEERTASTE] // HASH_VALUE 4DB2F843CDE3103A // INDEX 1841 -uiKeyPRIOR [PRIOR] +uiKeyPRIOR [BILD AUF] // HASH_VALUE 5414543854145438 // INDEX 1842 -uiKeyNEXT [NEXT] +uiKeyNEXT [BILD AB] // HASH_VALUE 46C0981C88D07025 // INDEX 1843 -uiKeyEND [END] +uiKeyEND [ENDE] // HASH_VALUE 4450F4204450F420 // INDEX 1844 -uiKeyHOME [HOME] +uiKeyHOME [POS1] // HASH_VALUE 5490543054905430 // INDEX 1845 -uiKeyLEFT [LEFT] +uiKeyLEFT [LINKS] // HASH_VALUE 5054045450540454 // INDEX 1846 -uiKeyUP [UP] +uiKeyUP [HINAUF] // HASH_VALUE 4AB1DC37C972E035 // INDEX 1847 -uiKeyRIGHT [RIGHT] +uiKeyRIGHT [RECHTS] // HASH_VALUE 4CD4F4104CD4F410 // INDEX 1848 -uiKeyDOWN [DOWN] +uiKeyDOWN [HINUNTER] // HASH_VALUE 08F190350862CC25 // INDEX 1849 -uiKeySELECT [SELECT] +uiKeySELECT [SHIFT] // HASH_VALUE 8EA200448D03143B // INDEX 1850 -uiKeyPRINT [PRINT] +uiKeyPRINT [DRUCK] // HASH_VALUE 8B22D8258881DC33 // INDEX 1851 -uiKeyEXECUTE [EXECUTE] +uiKeyEXECUTE [EINGABE] // HASH_VALUE 5050E44C54D0844C // INDEX 1852 -uiKeySNAPSHOT [SNAPSHOT] +uiKeySNAPSHOT [DRUCK] // HASH_VALUE 4A23D8378C82F040 // INDEX 1853 -uiKeyINSERT [INSERT] +uiKeyINSERT [EINFÜG.] // HASH_VALUE 4411542844915438 // INDEX 1854 -uiKeyDELETE [DELETE] +uiKeyDELETE [ENTFERNEN] // HASH_VALUE 5010542050105420 // INDEX 1855 @@ -7701,11 +7696,11 @@ uiKeyHELP [HELP] // HASH_VALUE 4C5074304C507430 // INDEX 1856 -uiKeyLWIN [LWIN] +uiKeyLWIN [LWINDOWS] // HASH_VALUE 4C5074484C507448 // INDEX 1857 -uiKeyRWIN [RWIN] +uiKeyRWIN [RWINDOWS] // HASH_VALUE 5014040450140404 // INDEX 1858 @@ -7753,27 +7748,27 @@ uiKeyNUMPAD9 [NUMPAD9] // HASH_VALUE 5410543458100424 // INDEX 1869 -uiKeyMULTIPLY [MULTIPLY] +uiKeyMULTIPLY [MULTIPLIZIEREN] // HASH_VALUE C2E0380A83B0380D // INDEX 1870 -uiKeyADD [ADD] +uiKeyADD [ADDITION] // HASH_VALUE 89B3E848CC929428 // INDEX 1871 -uiKeySEPARATOR [SEPARATOR] +uiKeySEPARATOR [TRENNZEICHEN] // HASH_VALUE 5490544C54D01448 // INDEX 1872 -uiKeySUBTRACT [SUBTRACT] +uiKeySUBTRACT [MINUS] // HASH_VALUE 08B07C1584905C1E // INDEX 1873 -uiKeyDECIMAL [DECIMAL] +uiKeyDECIMAL [DEZIMAL] // HASH_VALUE 4752842247317422 // INDEX 1874 -uiKeyDIVIDE [DIVIDE] +uiKeyDIVIDE [DIVIDIEREN] // HASH_VALUE 3090101830901018 // INDEX 1875 @@ -7877,7 +7872,7 @@ uiKeyNUMLOCK [NUMLOCK] // HASH_VALUE 894388448653AC3D // INDEX 1900 -uiKeySCROLL [SCROLL] +uiKeySCROLL [SCROLLEN] // HASH_VALUE 8D3010260F701420 // INDEX 1901 @@ -7889,11 +7884,11 @@ uiKeyRSHIFT [RSHIFT] // HASH_VALUE 4CD034304CD02450 // INDEX 1903 -uiKeyLCONTROL [LCONTROL] +uiKeyLCONTROL [LSTRG] // HASH_VALUE 4CD034484CD02450 // INDEX 1904 -uiKeyRCONTROL [RCONTROL] +uiKeyRCONTROL [RSTRG] // HASH_VALUE 8CD0D03C4A41F434 // INDEX 1905 @@ -8063,7 +8058,7 @@ uiDebugToggleHelp [Hilfe umschalten] // HASH_VALUE AFF7DC6CD5D97C72 // INDEX 1946 -uiDebugDisplayInfos [Anzeigeinfo] +uiDebugDisplayInfos [Anzeige-Info] // HASH_VALUE 246637A11E634C4E // INDEX 1947 @@ -8103,11 +8098,11 @@ uiDebugTest [Test] // HASH_VALUE D344274C52096C85 // INDEX 1956 -uiDebugSetPos [Setze Pos] +uiDebugSetPos [Setze Pos.] // HASH_VALUE 3089A824F0492CF4 // INDEX 1957 -uiDebugPacsBorders [Pacs Ränder] +uiDebugPacsBorders [Pacs-Ränder] // HASH_VALUE 9A0ACC8FADF59360 // INDEX 1958 @@ -8127,7 +8122,7 @@ uiDebugProfileVbLock [Profil VB Locks] // HASH_VALUE E859D05F09290C63 // INDEX 1962 -uiDebugProfileTexture [Profil Texture Usage] +uiDebugProfileTexture [Profil-Texturen benutzen] // HASH_VALUE D837F09328866CA5 // INDEX 1963 @@ -8135,15 +8130,15 @@ uiDebugMemoryReport [Speicherreport] // HASH_VALUE 6698C48CDAD274C0 // INDEX 1964 -uiDebugTogglePrimitive [Primitive umschalten] +uiDebugTogglePrimitive [graph. Primitiv umschalten] // HASH_VALUE 6F17E36EB117EB87 // INDEX 1965 -uiDebugPrimitiveUp [Primitive hoch] +uiDebugPrimitiveUp [graph. Primitiv hoch] // HASH_VALUE EEE7BB629C872C99 // INDEX 1966 -uiDebugPrimitiveDown [Primitive herunter] +uiDebugPrimitiveDown [graph. Primitiv herunter] // HASH_VALUE 66B47A30D0B0CCB0 // INDEX 1967 @@ -8207,7 +8202,7 @@ uiDebugWeatherDecHour [Stunde reduzieren] // HASH_VALUE 6ED970AE66C9BC9B // INDEX 1982 -uiDebugWeatherStats [Statistika] +uiDebugWeatherStats [Wetter-Statistiken] // HASH_VALUE C1D7A492EB152A66 // INDEX 1983 @@ -8231,7 +8226,7 @@ uiEditPreviousChar [Vorheriger Buchstabe] // HASH_VALUE 63459C6BCF66D097 // INDEX 1988 -uiEditSelectPreviousChar [Vorherigen Buchstaben wählen] +uiEditSelectPreviousChar [Vorherigen Buchstaben auswählen] // HASH_VALUE 32475C58EB8957A5 // INDEX 1989 @@ -8239,7 +8234,7 @@ uiEditPreviousWord [Vorheriges Wort] // HASH_VALUE E056B87FCF66D097 // INDEX 1990 -uiEditSelectPreviousWord [Vorheriges Wort wählen] +uiEditSelectPreviousWord [Vorheriges Wort auswählen] // HASH_VALUE 27E81C894A033F71 // INDEX 1991 @@ -8247,7 +8242,7 @@ uiEditNextChar [Nächster Buchstabe] // HASH_VALUE C21AEC705E30E44C // INDEX 1992 -uiEditSelectNextChar [Nächsten Buchstaben wählen] +uiEditSelectNextChar [Nächsten Buchstaben auswählen] // HASH_VALUE 2707289354B48F71 // INDEX 1993 @@ -8255,7 +8250,7 @@ uiEditNextWord [Nächstes Wort] // HASH_VALUE C21AEC7058521C74 // INDEX 1994 -uiEditSelectNextWord [Nächstes Wort wählen] +uiEditSelectNextWord [Nächstes Wort auswählen] // HASH_VALUE 15B7173BA0D6343C // INDEX 1995 @@ -8263,7 +8258,7 @@ uiEditGotoLineBegin [Zum Zeilenanfang gehen] // HASH_VALUE 6322838A588E7B93 // INDEX 1996 -uiEditSelectToLineBegin [Wähle zum Zeilenanfang] +uiEditSelectToLineBegin [Zeilenanfang auswählen] // HASH_VALUE D692D454ECB84C0A // INDEX 1997 @@ -8271,7 +8266,7 @@ uiEditGotoBlockBegin [Zum Blockanfang gehen] // HASH_VALUE D6A73769C8106894 // INDEX 1998 -uiEditSelectToBlockBegin [Blockanfang wählen] +uiEditSelectToBlockBegin [Blockanfang auswählen] // HASH_VALUE ABD14E891490A046 // INDEX 1999 @@ -8279,7 +8274,7 @@ uiEditGotoLineEnd [Zum Zeilenende gehen] // HASH_VALUE 14B5F750DC20A089 // INDEX 2000 -uiEditSelectToLineEnd [Zeilenende wählen] +uiEditSelectToLineEnd [Zeilenende auswählen] // HASH_VALUE D5313C3E6BB71441 // INDEX 2001 @@ -8287,7 +8282,7 @@ uiEditGotoBlockEnd [Zum Blockende gehen] // HASH_VALUE 23754E7BD0D41857 // INDEX 2002 -uiEditSelectToBlockEnd [Blockende wählen] +uiEditSelectToBlockEnd [Blockende auswählen] // HASH_VALUE 31E734546AD857A6 // INDEX 2003 @@ -8333,7 +8328,7 @@ uiMagicTitle [MAGIE] // HASH_VALUE CCA12B3002711F33 // INDEX 2013 -uiSpellBookTitle [ZAUBERBUCH] +uiSpellBookTitle [MAGIELISTE] // HASH_VALUE D2552AA15002473D // INDEX 2014 @@ -8353,15 +8348,15 @@ uimMaInfos [INFO] // HASH_VALUE 4AB1D01C87CFB72A // INDEX 2018 -uimMaDel [SATZ LÖSCHEN] +uimMaDel [AKTION LÖSCHEN] // HASH_VALUE 4701BB304CEE04FC // INDEX 2019 -uimMaEdit [SATZ EDITIEREN] +uimMaEdit [AKTION EDITIEREN] // HASH_VALUE 1A151D0AE1D3564D // INDEX 2020 -uittSelectBrick [Hier klicken, um die Basisstanza zu wählen] +uittSelectBrick [Hier klicken, um die Basis-Stanza zu wählen] // HASH_VALUE 62C7447F6306449A // INDEX 2021 @@ -8417,7 +8412,7 @@ uiTextHelpSelectEffectBrick [<- Wähle einen EFFEKT aus.] // HASH_VALUE 2B25EA1199395CC8 // INDEX 2034 -uiTextHelpSelectOtherBrick [Dein KREDITRAHMEN muß größer als die AKTIONSKOSTEN sein.] +uiTextHelpSelectOtherBrick [Dein AUSGLEICH muß größer als die AKTIONSKOSTEN sein.] // HASH_VALUE 8516934358A74240 // INDEX 2035 @@ -8429,7 +8424,7 @@ uiMagicSpellIcon [Symbol] // HASH_VALUE 2E828FA091228B8B // INDEX 2037 -uittMagicSpellNotFound [Spruch nicht im Zauberbuch gefunden] +uittMagicSpellNotFound [Zauber nicht in der Magieliste gefunden] // HASH_VALUE 09D17C144450882A // INDEX 2038 @@ -8534,7 +8529,7 @@ uiBagTitle4 [TASCHE 4] // HASH_VALUE 0BD2C8338B41F431 // INDEX 2063 -uiKitTitle [SATZ] +uiKitTitle [BAUSATZ] // HASH_VALUE 4E01CC340A32D42F // INDEX 2064 @@ -8550,7 +8545,7 @@ uiJewelryTitle [SCHMUCK] // HASH_VALUE 4DA1CC39CBA11C3E // INDEX 2067 -uiMemoryTitle [SPEICHER] +uiMemoryTitle [EINSTUDIEREN] // HASH_VALUE 08F0D4144B50E812 // INDEX 2068 @@ -8566,15 +8561,15 @@ uiMemSpecialTitle [SPEZIAL] // HASH_VALUE 7C61E42C094F1436 // INDEX 2071 -uiMemCombatFull [KAMPF SPEICHERN] +uiMemCombatFull [KAMPF EINSTUDIEREN] // HASH_VALUE C93EAC2D496CFC32 // INDEX 2072 -uiMemMagicFull [MAGIE SPEICHERN] +uiMemMagicFull [MAGIE EINSTUDIEREN] // HASH_VALUE 8E418C2D49AFF800 // INDEX 2073 -uiMemSpecialFul [SPEZIALSPEICHER] +uiMemSpecialFul [SPEZIELLES EINSTUDIEREN] // HASH_VALUE D001183E0E62FC44 // INDEX 2074 @@ -8594,7 +8589,7 @@ uimAssist [ASSISTIEREN] // HASH_VALUE 50D0444C50D0444C // INDEX 2078 -uimStop [STOPP] +uimStop [STOP] // HASH_VALUE 4450241844502418 // INDEX 2079 @@ -8606,11 +8601,11 @@ uimCall [RUFEN] // HASH_VALUE 7F62DC1F4B8F9426 // INDEX 2081 -uimForgetPhrase [VERGESSE AKTION] +uimForgetPhrase [VERGISS AKTION] // HASH_VALUE C871D8124A4EEC11 // INDEX 2082 -uimForgetMacro [VERGESSE MAKRO] +uimForgetMacro [VERGISS MAKRO] // HASH_VALUE 46F2302652C1B04C // INDEX 2083 @@ -8642,11 +8637,11 @@ uittFeet [Stiefel] // HASH_VALUE DC275093EA09708E // INDEX 2090 -uittHeaddress [Kopfschmuck] +uittHeaddress [Kopf] // HASH_VALUE 68D8543864D814B0 // INDEX 2091 -uittNeck [Halskette] +uittNeck [Anhänger] // HASH_VALUE AFC8E42A2E7864FE // INDEX 2092 @@ -8658,11 +8653,11 @@ uittEarr [Rechter Ohrring] // HASH_VALUE 6B147B889CD5985B // INDEX 2094 -uittWristl [Linker Armreif] +uittWristl [Linkes Armband] // HASH_VALUE 5A69847FE8D5BF6D // INDEX 2095 -uittWristr [Rechter Armreif] +uittWristr [Rechtes Armband] // HASH_VALUE 22F61C8A9104335F // INDEX 2096 @@ -8674,11 +8669,11 @@ uittFingerr [Rechter Ring] // HASH_VALUE 9B65B45F94B71C58 // INDEX 2098 -uittAnklel [Linke Fußkette] +uittAnklel [Linker Fußring] // HASH_VALUE EC567B836DF456A5 // INDEX 2099 -uittAnkler [Rechte Fußkette] +uittAnkler [Rechter Fußring] // HASH_VALUE 6C58D4046C58D404 // INDEX 2100 @@ -8730,8 +8725,8 @@ uittPvPTagTimer [\n // INDEX 2109 uittPvPModeFlag [@{6F6F}Fraktions-PvP@{FFFF}\n Dein @{6F6F}PvP-Tag@{FFFF} ist @{6F6F}an@{FFFF} und du hast kürzlich eine offensive PvP-Aktion ausgeführt.\n - PvP wurde aktiviert. (Du bist nun nicht mehr in der Lage, alle PvE- und Interaktionen mit anderen Spielern auszuführen. Z.B: Du kannst keine Gruppe mit Spielern der anderen Fraktion bilden, solange PvP aktiviert ist.)\n - Dein Flag wird in %temps entfernt.] + PvP wurde aktiviert. (Du bist nun nicht mehr in der Lage, alle PvE- und Interaktionen mit anderen Spielern auszuführen. Z.B: du kannst keine Gruppe mit Spielern der anderen Fraktion bilden, solange PvP aktiviert ist.)\n + Dein Tag wird in %temps entfernt.] // HASH_VALUE 00841A0EC6F3BC0E // INDEX 2110 @@ -8783,7 +8778,7 @@ uittSetMoney [DAPPER BESTIMMEN] // HASH_VALUE CB0A8036EB06B7B0 // INDEX 2122 -uittClearMoney [DAPPER ZERSTÖREN] +uittClearMoney [DAPPER LEEREN] // HASH_VALUE 8530882B0952C429 // INDEX 2123 @@ -8795,7 +8790,7 @@ uiMacrosTitle [MAKROS] // HASH_VALUE C464BFDDA7589F68 // INDEX 2125 -uiShortCutTT [Lege einen Kampf- oder Zauberspruch hier ab] +uiShortCutTT [Leg einen Kampf- oder Zauberspruch hier ab] // HASH_VALUE 2D19632A97548F17 // INDEX 2126 @@ -8839,7 +8834,7 @@ uimCombat [KAMPF] // HASH_VALUE C5F0701EC2C17C1F // INDEX 2136 -uimFaber [SAMMELN] +uimFaber [HANDWERK] // HASH_VALUE 8521AC1FC9017830 // INDEX 2137 @@ -8859,7 +8854,7 @@ uimCommerce [HANDELN] // HASH_VALUE CF13BC318B02C434 // INDEX 2141 -uimHarvest [SAMMELN] +uimHarvest [ERNTEN] // HASH_VALUE 4C30A02C08D0E82E // INDEX 2142 @@ -8896,7 +8891,7 @@ uimwSet [SETS] // HASH_VALUE C8C0AC2006B1842D // INDEX 2150 -uimwHands [HÄNDE] +uimwHands [HÄNDE Aktionsleiste] // HASH_VALUE CB720C430F71F837 // INDEX 2151 @@ -8964,7 +8959,7 @@ uimwFaberRepair [REPARATUR] // HASH_VALUE CCA12B3002711F33 // INDEX 2167 -uimwMagic [ZAUBERBUCH] +uimwMagic [MAGIE] // HASH_VALUE 8530882B0952C429 // INDEX 2168 @@ -8992,11 +8987,11 @@ uimwInfoSys [SYSTEM INFO] // HASH_VALUE 0C8198F3FF7FDC44 // INDEX 2174 -uimwAroundMe [UMFELD] +uimwAroundMe [UMGEBUNG] // HASH_VALUE 4C1054504C105450 // INDEX 2175 -uimwTell [FLÜSTERN] +uimwTell [FLÜSTERN/TELL] // HASH_VALUE 09F2BC313A8EC7F3 // INDEX 2176 @@ -9016,15 +9011,15 @@ uimwFame [RUHM] // HASH_VALUE 4408943444D05404 // INDEX 2180 -uimwBars [MEINE ANZEIGE] +uimwBars [MEINE WERTE-ANZEIGE] // HASH_VALUE C3621C0B4C114744 // INDEX 2181 -uimwBonusMalus [BONUS/MALUS] +uimwBonusMalus [BONUS / MALUS] // HASH_VALUE 8B11903507628423 // INDEX 2182 -uimwWebIG [WEB] +uimwWebIG [WEBFENSTER] // HASH_VALUE BE714CFB02BEE010 // INDEX 2183 @@ -9060,7 +9055,7 @@ uimwChatMode0 ["ESC", UM DEN CHAT ZU VERLASSEN] // HASH_VALUE 831CBCFE764DC013 // INDEX 2191 -uimwChatMode1 ["ENTER", UM DEN CHAT ZU BETRETEN] +uimwChatMode1 ["ENTER", UM DEN CHAT ZU VERLASSEN] // HASH_VALUE 7C61E42C094F1436 // INDEX 2192 @@ -9092,7 +9087,7 @@ uimwMacros [MAKROS] // HASH_VALUE 6005D327D4545744 // INDEX 2199 -uimSortUser [Sortierung: NUTZER] +uimSortUser [Sortierung: BENUTZER] // HASH_VALUE 9FA6B7315644234F // INDEX 2200 @@ -9156,11 +9151,11 @@ uimEquip [AUSRÜSTEN] // HASH_VALUE 0921EF39F322FB1F // INDEX 2215 -uimCristalEnchant [RECHTE HAND VERZAUBERN] +uimCristalEnchant [ITEM IN RECHTER HAND VERZAUBERN] // HASH_VALUE 0D10A0317FDEB704 // INDEX 2216 -uimCristalReload [RECHTE HAND WIEDERAUFLADEN] +uimCristalReload [ITEM IN RECHTER HAND AUFLADEN] // HASH_VALUE 7691EC4EBF01B44D // INDEX 2217 @@ -9216,15 +9211,15 @@ uiCrashing1 [VERBINDUNG GESCHEITERT.] // HASH_VALUE 180E5AA16915A2F0 // INDEX 2230 -uiCrashing2 [Wenn du das Spiel gerade verlassen hast, warte bitte 30 Sekunden.] +uiCrashing2 [Wenn du das Spiel gerade verlassen hast, warte bitte 30 Sekunden, ] // HASH_VALUE B2BFBE15B45FEB3C // INDEX 2231 -uiCrashing3 [Um deinen vorigen Charakter abzumelden und es noch einmal zu versuchen.] +uiCrashing3 [um deinen vorigen Charakter abzumelden und es noch einmal zu versuchen.] // HASH_VALUE 08DE1628072C9C92 // INDEX 2232 -uiFirewallAlert [Bitte Firewall-Zugriff für Ryzom einstellen] +uiFirewallAlert [Bitte den Firewall-Zugriff für Ryzom umstellen.] // HASH_VALUE D7C4407FEBD94C9A // INDEX 2233 @@ -9244,11 +9239,11 @@ uiQuit [Spiel verlassen] // HASH_VALUE 5F725DC938E549F6 // INDEX 2237 -uiQuitGameWithoutWarning [Ohne Warnung Spiel in Richtung Hauptmenü verlassen] +uiQuitGameWithoutWarning [Ohne Warnung das Spiel zum Hauptmenü verlassen] // HASH_VALUE 70384C5765C79660 // INDEX 2238 -uiQuitRyzomWithoutWarning [Ohne Warnung Spiel verlassen] +uiQuitRyzomWithoutWarning [Ohne Warnung das Spiel verlassen] // HASH_VALUE 6458F4206458F420 // INDEX 2239 @@ -9312,7 +9307,7 @@ uiDeleteTitle [WIRKLICH LÖSCHEN?] // HASH_VALUE 071C63FDB432AC50 // INDEX 2254 -uiSelectTitle [WILLKOMMEN ZU RYZOM - Beta 2] +uiSelectTitle [WILLKOMMEN IN RYZOM] // HASH_VALUE C27F70D8CA8F7029 // INDEX 2255 @@ -9432,7 +9427,7 @@ uiDescRF [FERNKÄMPFER - BESCHREIBUNG] // HASH_VALUE 40F2C00F83FFA832 // INDEX 2284 -uiDescAM [KAMPFZAUBERER - BESCHREIBUNG] +uiDescAM [KAMPFMAGIER - BESCHREIBUNG] // HASH_VALUE C5C1841604AF7825 // INDEX 2285 @@ -9444,7 +9439,7 @@ uiDescBM [SCHUTZMAGIER - BESCHREIBUNG] // HASH_VALUE CE321F404850C42B // INDEX 2287 -uiDescH [WALDLÄUFER - BESCHREIBUNG] +uiDescH [ROHSTOFFERNTER - BESCHREIBUNG] // HASH_VALUE 8330D40FC8B1C83C // INDEX 2288 @@ -9472,7 +9467,7 @@ uiCarRF [FERNKÄMPFER - CHARAKTERISTIKA] // HASH_VALUE C243C00E474ED012 // INDEX 2294 -uiCarAM [Kampfzauberer - CHARAKTERISTIKA] +uiCarAM [KAMPFMAGIER - CHARAKTERISTIKA] // HASH_VALUE 8512841583BEEC14 // INDEX 2295 @@ -9484,7 +9479,7 @@ uiCarBM [SCHUTZMAGIER - CHARAKTERISTIKA] // HASH_VALUE 4E1207278BF2C430 // INDEX 2297 -uiCarH [WALDLÄUFER - CHARAKTERISTIKA] +uiCarH [ROHSTOFFERNTER - CHARAKTERISTIKA] // HASH_VALUE 46F08F198910C44E // INDEX 2298 @@ -9520,7 +9515,7 @@ uiCaNaR [Handwerker] // HASH_VALUE F45FC41D05204C10 // INDEX 2306 -uiCareerTitle [WAS WILLST DU WERDEN?] +uiCareerTitle [WAS WILLST DU SPIELEN?] // HASH_VALUE 4871AC1F06706826 // INDEX 2307 @@ -9584,7 +9579,7 @@ uiBreasts [BRUST] // HASH_VALUE 0C60B0210A20EC1E // INDEX 2322 -uiHelmet [HELM] +uiHelmet [KOPF] // HASH_VALUE 0E93144550521848 // INDEX 2323 @@ -9604,11 +9599,11 @@ uiTrouser [HOSEN] // HASH_VALUE 5450541854505418 // INDEX 2327 -uiFeet [FÜSSE] +uiFeet [FÜßE] // HASH_VALUE EBF2AFF80CFC1F3B // INDEX 2328 -uiAppearTitle [WIE WILLST DU AUSSEHEN?] +uiAppearTitle [WIE SOLL DEIN CHARAKTER AUSSEHEN?] // HASH_VALUE 5810F4085810F408 // INDEX 2329 @@ -9636,7 +9631,7 @@ uiFace1Fy [MUNDHÖHE] // HASH_VALUE 082FE819C251AC06 // INDEX 2335 -uiFace2Fy [AUGE] +uiFace2Fy [AUGEN] // HASH_VALUE C71088303F00E4FC // INDEX 2336 @@ -9720,7 +9715,7 @@ uiFace6Tr [MUNDHÖHE] // HASH_VALUE 09E1982DC4006306 // INDEX 2356 -uiFace7Tr [OHRENGRÖSSE] +uiFace7Tr [OHRENGRÖßE] // HASH_VALUE 4C50840C4C50840C // INDEX 2357 @@ -9756,23 +9751,23 @@ uiFace7Zo [HORN: STIRN & WANGE 2] // HASH_VALUE 1884DB5E28B067C1 // INDEX 2365 -uiInvalid [ist kein gültiger Name] +uiInvalid [Dieser Name ist nicht zulässig] // HASH_VALUE 53005EA9ABC8A864 // INDEX 2366 -uiValid [ist ein gültiger Name] +uiValid [Dieser Name ist zulässig] // HASH_VALUE 83B10304CECF23E2 // INDEX 2367 -uiSummaryTitle [WELCHEN NAMEN WÜNSCHST DU?] +uiSummaryTitle [WELCHEN NAMEN WÄHLST DU?] // HASH_VALUE 856F6F1D7831E300 // INDEX 2368 -uiEnterName [GEBE EINEN NAMEN EIN:] +uiEnterName [GIB EINEN NAMEN EIN:] // HASH_VALUE EBD96355AAC4735D // INDEX 2369 -uiValidName [Prüfe den Namen] +uiValidName [Name wird geprüft] // HASH_VALUE 8871CC3A0EA0BC22 // INDEX 2370 @@ -9810,40 +9805,40 @@ uiRand7 [FARBEN] // INDEX 2378 uiSelInfos [INFORMATION\n \n - Du hast 5 Slots, um 5 verschiedene Charaktere zu erstellen.\n - Um einen neuen Charakter zu erschaffen, musst du einen leeren Slot auswählen.\n + Du hast 5 Slots, um 5 verschiedene Homin-Charaktere zu erstellen.\n + Um einen neuen Charakter zu erschaffen, musst du einen leeren Charakter-Platz auswählen.\n \n - Wenn du keinen leeren Slot mehr besitzt, musst du einen deiner Charaktere löschen, um einen neuen anzulegen.] + Wenn kein Platz mehr leer ist, müsstest du einen deiner Charaktere löschen, um einen neuen anzulegen.] // HASH_VALUE D9161EE8306CE124 // INDEX 2379 uiCultFy [FYROS: KRIEGER DES FEUERS UND HERRSCHER ÜBER DIE BRENNENDE WÜSTE\n \n - Die Fyros sind eine Kriegerrasse.\n - Deine Gesellschaft lebt nach der strengen Richtlinie von Ehre und einem allgemeinen Ziel: Die Suche nach dem Drachen, welcher ganze Regionen des Planeten verwüstete.] + Die Fyros sind eine aufrechte, wahrheitsliebende Kriegerrasse.\n + Ihre Gesellschaft richtet sich nach der strengen Leitlinie von Ehre, Disziplin und einem Ziel: die Suche nach dem Drachen, dessen Feuer ganze Regionen der Welt verwüstete.] // HASH_VALUE BD8E5DB70F346936 // INDEX 2380 -uiCultMa [MATIS: MANIPULATOREN DER NATUR UND Herrscher DER ÜPPIGEN WÄLDER\n +uiCultMa [MATIS: MANIPULATOREN DER NATUR UND HERRSCHER DER GRÜNEN WÄLDER\n \n - Die Matis sind ein romantisches und tyrannisches Volk.\n - Sie sind besessen von genetischer Mutation, fantastisch und schrecklich zugleich.\n - Sie versuchen, ihr verlorenes Imperium wieder aufzubauen, aber ihre eigenen Intrigen verbrauchen ihre ganze Energie, weil jede Familie um die Krone konkurriert.] + Die Matis sind ein romantisches, edles, aber auch dominanzstrebendes Volk.\n + Sie sind Meister der genetischen Manipulation, welche großartige Kunstwerke aus Natur erschafft.\n + Sie versuchen, ihr altes Königreich wieder aufzubauen, wobei jedes Haus zugleich um einen höheren Status konkurriert.] // HASH_VALUE 6D776444536B145E // INDEX 2381 uiCultTr [TRYKER: FREUNDE DES WINDES UND DER STRÖMUNGEN, PRINZEN DES LANDES DER SEEN\n \n - Die Tryker sind listige Genussmenschen, die die Gemeinschaft der Einsiedlerei vorziehen.\n - Sie leben als freie Homins.\n - Die anderen Rassen sehen sie als nicht mehr als einen missratenen Räuberhaufen voller Helden für einen Tag an. ] + Die Tryker sind schlaue und weltoffene Homins, die einfache Vergnügen lieben und eher eine Föderation als ein einheitliches Volk darstellen.\n + Sie leben heute als freie Homins, während sie in der Vergangenheit oft versklavt waren.\n + Andere Rassen sehen die klein gewachsenen Tryker häufig vorschnell als unreif oder kindlich an. ] // HASH_VALUE AB92CE5AC6C599F2 // INDEX 2382 -uiCultZo [ZORAÏ: MAGIER DER DSCHUNGEL UND DES ÖDLANDES\n +uiCultZo [ZORAÏ: MAGIER DER DSCHUNGEL IN DEN VERDORRENDEN LANDEN\n \n - Die Zoraï gelten als die Mystiker von Atys.\n - Sie beherrschen meisterlich die Manipulation von Magnetfeldern, die sie zum Bau von Waffen und Gebäuden einsetzen.] + Die groß gewachsenen blauhäutigen und maskentragenden Zoraï gelten als die Mystiker von Atys.\n + Sie sind Meister der Manipulation von Magnetfeldern, die sie zum Bau von Waffen und Gebäuden einsetzen.] // HASH_VALUE 0000000000000000 // INDEX 2383 @@ -9863,7 +9858,7 @@ uiEcoZo [] // HASH_VALUE E512F038A22B4E1E // INDEX 2387 -uiExplcarac [CHARAKTERISTIKA\n +uiExplcarac [CHARAKTERISTIKEN\n \n Du kannst 20 Punkte für deine Eigenschaften verwenden.\n \n @@ -9882,55 +9877,55 @@ uiExplM [MAGIER-ERLÄUTERUNGEN] // HASH_VALUE CB31FF4B87CFB824 // INDEX 2390 -uiExplR [WALDLÄUFER-ERLÄUTERUNGEN] +uiExplR [RANGER-ERLÄUTERUNGEN] // HASH_VALUE CA0FF03289D11630 // INDEX 2391 -uiMoreFFy [FYROS KRIEGER: DER BERSERKER] +uiMoreFFy [FYROS-KRIEGER: DER BERSERKER] // HASH_VALUE 43E2743B9051DF2C // INDEX 2392 -uiMoreFMa [MATISIANISCHER NAHKÄMPFER: DER TRÄGER DER KLINGE] +uiMoreFMa [MATIS-NAHKÄMPFER: SCHWERTMEISTER] // HASH_VALUE FC63BC31450D2032 // INDEX 2393 -uiMoreFTr [TRYKER NAHKÄMPFER: DER SÄBELRASSLER] +uiMoreFTr [TRYKER-NAHKÄMPFER: DER SÄBELRASSLER] // HASH_VALUE 87412441CB0DA6FC // INDEX 2394 -uiMoreFZo [ZORAÏ NAHKÄMPFER: DIE FAUST DER KAMI] +uiMoreFZo [ZORAÏ-NAHKÄMPFER: KAMISCHE FAUST] // HASH_VALUE 7EF2EC3680310F29 // INDEX 2395 -uiMoreMFy [FYROS ZAUBERER: DER VERDORBENE] +uiMoreMFy [FYROS-MAGIER: DER VERDERBER] // HASH_VALUE 8AA06F000C8E5C30 // INDEX 2396 -uiMoreMMa [MATISIANISCHER ZAUBERER: DER VERDORBENE] +uiMoreMMa [MATIS-MAGIER: DER VERDORRER] // HASH_VALUE C6D16B4BC53EA0F5 // INDEX 2397 -uiMoreMTr [TRYKERZAUBERER: DER VERSEUCHER] +uiMoreMTr [TRYKER-MAGIER: DER VERSEUCHER] // HASH_VALUE FF1103387DF02327 // INDEX 2398 -uiMoreMZo [ZORAÏ ZAUBERER: DIE FURIE DER KAMI] +uiMoreMZo [ZORAÏ-MAGIER: KAMISCHE FURIE] // HASH_VALUE 8C32822D47829A1C // INDEX 2399 -uiMoreRFy [FYROS WALDLÄUFER: DER SCHARLACHROTE JÄGER] +uiMoreRFy [FYROS-RANGER: SCHARLACHROTER JÄGER] // HASH_VALUE 48DFD824C3A3900F // INDEX 2400 -uiMoreRMa [MATISIANISCHER WALDLÄUFER: DER GRÜNE JÄGER] +uiMoreRMa [MATISIANISCHER-RANGER: GRÜNER JÄGER] // HASH_VALUE 4C8F1734109C872D // INDEX 2401 -uiMoreRTr [TRYKER WALDLÄUFER:DER SCHATTENJÄGER] +uiMoreRTr [TRYKER -RANGER: SCHATTENJÄGER] // HASH_VALUE 0CEF6087C9C2C90A // INDEX 2402 -uiMoreRZo [ZORAÏ WALDLÄUFER: DER WÄCHTER VON ATYS] +uiMoreRZo [ZORAÏ-RANGER: WÄCHTER VON ATYS] // HASH_VALUE 09F2BC313A8EC7F3 // INDEX 2403 @@ -9946,11 +9941,11 @@ uiIgnoreList [IGNORE-LISTE] // HASH_VALUE CF114F418A60E404 // INDEX 2406 -uiSystemInfoTitle [SYSTEM INFO] +uiSystemInfoTitle [SYSTEM-INFO] // HASH_VALUE 0C8198F3FF7FDC44 // INDEX 2407 -uiAroundMeTitle [UMFELD] +uiAroundMeTitle [UMGEBUNG] // HASH_VALUE 5450E45444D42414 // INDEX 2408 @@ -9986,15 +9981,15 @@ uiTEAM [GRUPPE] // HASH_VALUE 4E73BC40CA131C2E // INDEX 2416 -uiSAY [SAGE] +uiSAY [SAGEN] // HASH_VALUE 4F02FC440EF2144B // INDEX 2417 -uiSHOUT [RUFE] +uiSHOUT [RUFEN] // HASH_VALUE 7058542C7058542C // INDEX 2418 -uiKeepInfoButton [Halten] +uiKeepInfoButton [Behalten] // HASH_VALUE ECB89CF96AE9664D // INDEX 2419 @@ -10038,17 +10033,17 @@ uihelpItemMagicBonusDefAffliction [@{FFF9}Bonus für def. Beherrschungsmagie :\n // HASH_VALUE 4A4CE5C3DA44A737 // INDEX 2425 uihelpItemMagicBonusHeader [\n - @{FFFF}Magiebonus @{FFF9}(nur wenn ein Zauber einen 'Zauberlevel' unter oder gleich dem folgenden hat: @{FFFF}%mglvl@{FFF9}):\n + @{FFFF}Magiebonus @{FFF9}(nur für Magie-Aktionen/Zauber mit Stufe @{FFFF}%mglvl@{FFF9}) oder darunter) \n ] // HASH_VALUE 49F09B8ED6794263 // INDEX 2426 -uihelpItemHpBonus [@{FFF9}HP-Bonus:@{T12}@{2F2F}%val\n +uihelpItemHpBonus [@{FFF9}Lebens-Bonus:@{T12}@{2F2F}%val\n ] // HASH_VALUE C6C052A2D6794261 // INDEX 2427 -uihelpItemHpMalus [@{FFF9}HP-Strafe:@{T12}@{F44F}%val\n +uihelpItemHpMalus [@{FFF9}Lebens-Strafe:@{T12}@{F44F}%val\n ] // HASH_VALUE C22128B75D575A2C @@ -10094,7 +10089,7 @@ uihelpMagicProtectFormat [@{T4}@{FFF9}%t:@{T18}@{FFFF}+%v%\n // HASH_VALUE ED2AD1F20B1DE4B3 // INDEX 2436 -uihelpMagicProtectMaxAbsorbFormat [@{T4}@{FFF9}Max Absorbiert:@{T18}@{FFFF}+%v\n +uihelpMagicProtectMaxAbsorbFormat [@{T4}@{FFF9}Max. absorbiert:@{T18}@{FFFF}+%v\n ] // HASH_VALUE FCD4C98932A028D0 @@ -10107,8 +10102,6 @@ uihelpMagicResistFormatHeader [@{FFF9}@{HuittInfoResist}Widerstand:@{H}\n uihelpMagicResistFormat [@{T4}@{FFF9}%t:@{T18}@{FFFF}+%v\n ] -// HELP - ITEM : class & faber stat type -// example : fine sword of lightness : 'fine' is the raw material class type (uiItemRMClass), and 'of lightness' is the raw material faber stat type (mpstatItemQualifier) // HASH_VALUE 24080494704800B8 // INDEX 2439 uihelpItemFaberPrefixAndSuffix [%p %n %s] @@ -10123,51 +10116,51 @@ uiItemRMClass0 [Basis] // HASH_VALUE 6498941864989418 // INDEX 2442 -uiItemRMClass1 [Feine(r/s)] +uiItemRMClass1 [feine(r/s)] // HASH_VALUE 27567C58E7947078 // INDEX 2443 -uiItemRMClass2 [Vorzügliche(r/s)] +uiItemRMClass2 [vorzügliche(r/s)] // HASH_VALUE A058808C2A3884AC // INDEX 2444 -uiItemRMClass3 [Exzellente(r/s)] +uiItemRMClass3 [exzellente(r/s)] // HASH_VALUE A95AF4AAE9E96C8A // INDEX 2445 -uiItemRMClass4 [Erhabene(r/s)] +uiItemRMClass4 [erhabene(r/s)] // HASH_VALUE 5D26625CB2217642 // INDEX 2446 -uiItemFX_ISE_FIGHT_ADD_CRITICAL [@{2F2F}+%p% @{FFFF}Chancen, einen kritischen Schlag zu versetzen.] +uiItemFX_ISE_FIGHT_ADD_CRITICAL [@{2F2F}+%p% @{FFFF}Chance, einen kritischen Schlag zu versetzen.] // HASH_VALUE BE7D5E89F09FE48B // INDEX 2447 -uiItemFX_ISE_FIGHT_VAMPIRISM [@{2F2F}%p% @{FFFF}Chancen, dass der zugefügte Schaden den eigenen Lebenspunkten (HP) hinzugefügt wird.] +uiItemFX_ISE_FIGHT_VAMPIRISM [@{2F2F}%p% @{FFFF}Chance, dass der zugefügte Schaden den eigenen Lebenspunkten (HP) hinzugefügt wird.] // HASH_VALUE C95C259659D8F880 // INDEX 2448 -uiItemFX_ISE_MAGIC_DIVINE_INTERVENTION [@{2F2F}%p% @{FFFF}Chancen, dass der Zauberspruch die Gegenleistung nicht beansprucht.] +uiItemFX_ISE_MAGIC_DIVINE_INTERVENTION [@{2F2F}%p% @{FFFF}Chance, dass der Zauberspruch den Ausgleich nicht beansprucht.] // HASH_VALUE D3DC792607B34F92 // INDEX 2449 -uiItemFX_ISE_MAGIC_SHOOT_AGAIN [@{2F2F}%p% @{FFFF} Chancen, dass der nächste Zauberspruch den Zeit-Kredit nicht beansprucht, wenn er innerhalb von @{2F2F}%r @{FFFF}Sekunden gesprochen wird.] +uiItemFX_ISE_MAGIC_SHOOT_AGAIN [@{2F2F}%p% @{FFFF} Chance, dass der nächste Zauberspruch den Zeit-Ausgleich nicht beansprucht, wenn er innerhalb von @{2F2F}%r @{FFFF}Sekunden gesprochen wird.] // HASH_VALUE 14C6AB5BBD7F0131 // INDEX 2450 -uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}Chancen, einen Bonus von @{2F2F}%r @{FFFF} Punkten + einem qualitätsabhängigen Betrag auf den Boost (z.B. HP-Bonus) eines hergestellen Gegenstandes zu erhalten.] +uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}Chance, einen Bonus von @{2F2F}%r @{FFFF} Punkten plus qualitätsabhängigen Punkten auf den Boost (z.B. Sap-Bonus) eines hergestellen Gegenstandes zu erhalten.] // HASH_VALUE 64B7C8128FA0596D // INDEX 2451 -uiItemFX_ISE_CRAFT_ADD_LIMIT [@{2F2F}%p0% @{FFFF}Chancen, die Werte des hergestellten Gegenstandes um @{2F2F}%p1% zu erhöhen.] +uiItemFX_ISE_CRAFT_ADD_LIMIT [@{2F2F}%p0% @{FFFF}Chance, die Werte des hergestellten Gegenstandes um @{2F2F}%p1% zu erhöhen.] // HASH_VALUE 8B38411BDCE9655F // INDEX 2452 -uiItemFX_ISE_FORAGE_ADD_RM [@{2F2F}%p0% @{FFFF}Chancen, die Menge abgebauter Rohstoffe um @{2F2F}%p1% @{FFFF}zu erhöhen] +uiItemFX_ISE_FORAGE_ADD_RM [@{2F2F}%p0% @{FFFF}Chance, die Menge abgebauter Rohstoffe um @{2F2F}%p1% @{FFFF}zu erhöhen] // HASH_VALUE 0C5DFA830D612515 // INDEX 2453 -uiItemFX_ISE_FORAGE_NO_RISK [@{2F2F}%p% @{FFFF}Chancen, dass eine Quelle ohne Risiko erscheint.] +uiItemFX_ISE_FORAGE_NO_RISK [@{2F2F}%p% @{FFFF}Chance, dass eine Quelle ohne Risiko erscheint.] // HASH_VALUE 6498F4386498F438 // INDEX 2454 @@ -10215,7 +10208,7 @@ uihelpSkillModVsType [@{FFF9}Fähigkeitenbonus : @{FFFF}+%mod @{FFF9}gegen @{FFF // HASH_VALUE F20CAAD34A44EC7F // INDEX 2463 uihelpItemDefaultFormat [@{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n \n \n %cansell@{FFFF}%desc%no_rent@{FFFF}%descnr%custom_text] @@ -10227,16 +10220,16 @@ uihelpItemCantSell [@{F80B}Dieser Gegenstand kann an keinen Händler verkauft we // HASH_VALUE A203D9DB12EA02AC // INDEX 2465 -uihelpItemCosmeticDontFit [Diese kosmetische Veränderung kann wegen deiner @{F80B}Rasse{FFFF} oder deines @{F80B}Geschlechts@{FFFF} nicht bei dir angewandt werden. \n +uihelpItemCosmeticDontFit [Diese kosmetische Veränderung kann nur bei einer bestimmten @{F80B}Rasse{FFFF} und einem bestimmten @{F80B}Geschlecht@{FFFF} angewandt werden. \n ] // HASH_VALUE 03E5545F85F4B4DE // INDEX 2466 -uihelpItemNoRent [@{F80B}Item nicht zu mieten: @{FFFF}] +uihelpItemNoRent [@{F80B}Gegenstand nicht mietbar: @{FFFF}] // HASH_VALUE CC04DC80B5D30827 // INDEX 2467 -uihelpItemNoRentDesc [@{F80B}Dieser Gegenstand wird bei der Trennung der Verbindung zerstört.@{FFFF}\n +uihelpItemNoRentDesc [@{F80B}Dieser Gegenstand wird bei Trennung der Verbindung zerstört.@{FFFF}\n ] // HASH_VALUE 68DDFECD9FC79CEE @@ -10252,7 +10245,7 @@ uihelpItemCosmetic [\n uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoArmorQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell@{FFF9}@{HuittInfoRequirement}Anforderungen:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n @@ -10271,7 +10264,7 @@ uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origi uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung:@{H}@{T12}@{FFFF}%sap / %sapmax\n @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n @@ -10293,7 +10286,7 @@ uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF} uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung:@{H}@{T12}@{FFFF}%sap / %sapmax\n @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n @@ -10315,7 +10308,7 @@ uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF} uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n %cansell\n @@ -10331,7 +10324,7 @@ uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin // INDEX 2473 uihelpItemMPFormat [@{FFF9}@{HuittInfoMpQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n %cansell\n @{FFF9}@{HuittInfoMpEco}Ökosystem:@{H}@{T12}@{FFFF}%ecosystem\n @{FFF9}@{HuittInfoMpFam}Art:@{H}@{T12}@{FFFF}%family\n @@ -10356,12 +10349,12 @@ uihelpItemMPCraft [@{FFF9}Eignet sich im Handwerk als:\n // HASH_VALUE 14FEA68DBA9776FB // INDEX 2477 -uihelpItemMPNoCraft [@{FFF9}Das ist ein Missionsgegenstand. Er kann nicht fürs Handwerk@{FFFF} benutzt werden.\n +uihelpItemMPNoCraft [@{FFF9}Ist nur für Missionen relevant und kann nicht fürs Handwerk@{FFFF} benutzt werden.\n ] // HASH_VALUE 3BFD23539F5DEDFE // INDEX 2478 -uihelpItemMPCraftRequirement [@{FFF9}Wird als Bestandteil bei der Herstellung mancher spezieller@{FFFF} Gegenstände benutzt.\n +uihelpItemMPCraftRequirement [@{FFF9}Wird als Bestandteil bei der Herstellung spezieller@{FFFF} Gegenstände benutzt.\n ] // HASH_VALUE 9DB73B2E92320463 @@ -10409,7 +10402,7 @@ iompfKaravan [Nur Karavan] uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoArmorQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell@{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n @@ -10418,9 +10411,9 @@ uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%orig @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator:@{H}@{T22}@{FFFF}%parry\n @{FFF9}@{HuittInfoMalus}Aktionsstrafe:@{H}@{T22}@{FFFF}+%actmalus\n @{FFF9}@{HuittInfoArmorProtection}Schutzfaktor:@{H}@{T22}@{FFFF}%protect%\n - @{FFF9} @{HuittInfoArmorSlash}Maximum vs Zerscheiden:@{H}@{T22}@{FFFF}%p_slash\n - @{FFF9} @{HuittInfoArmorBlunt}Maximum vs Zertrümmern:@{H}@{T22}@{FFFF}%p_blunt\n - @{FFF9} @{HuittInfoArmorPierc}Maximum vs Durchbohren:@{H}@{T22}@{FFFF}%p_pierce\n + @{FFF9} @{HuittInfoArmorSlash}Zerschneidungsschutz max.:@{H}@{T22}@{FFFF}%p_slash\n + @{FFF9} @{HuittInfoArmorBlunt}Zertrümmerungsschutz max.:@{H}@{T22}@{FFFF}%p_blunt\n + @{FFF9} @{HuittInfoArmorPierc}Durchbohrungsschutz max.:@{H}@{T22}@{FFFF}%p_pierce\n %buffs%special_effects%desc%custom_text] // HASH_VALUE FFE62CC8B7369AC0 @@ -10428,12 +10421,12 @@ uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%orig uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittToolCraftType}Werkzeugart:@{H}@{T12}@{FFFF}%tool\n %cansell\n @{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n - %buffs\n + %buffs\n %special_effects\n \n @{FFFF}%desc%custom_text] @@ -10443,7 +10436,7 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell\n @{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n @@ -10457,7 +10450,7 @@ uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF} uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n %cansell\n @@ -10471,7 +10464,7 @@ uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}% uihelpItemJewelFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n @{FFF9}@{HuittInfoJewelryQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell@{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n %magic_protection%magic_resistance%buffs%desc%custom_text] @@ -10492,7 +10485,7 @@ uihelpItemCrystalSpell [Mit diesem Gegenstand kann man\n // HASH_VALUE 6CF513AA416395BB // INDEX 2495 uihelpItemChargeSpell [@{FFF9}Sapladung:@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoBulk}Größe:@{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n \n Mit diesem Gegenstand kann man\n das Sap einer verzauberten Waffe wieder aufladen.\n @@ -10504,48 +10497,39 @@ uihelpItemChargeSpell [@{FFF9}Sapladung:@{T12}@{FFFF}%quality\n Die Sapladung und ihr Maximum können mit einem Rechtsklick auf den Gegenstand unter "Info" eingesehen werden.\n %cansell%custom_text] -// HELP - ITEM - animals -// ************** -/* OLD VALUE : [This item represent one -of your animal. -You can give or sell an animal through this item, but only if your animal's inventory is empty! -%cansell%desc%custom_text] */ -/* OLD VALUE : [Dieser Gegenstand symbolisiert eines -deiner Tiere. -Damit kannst Du ein Tier verschenken oder verkaufen, aber nur wenn sein Inventar leer ist. -%cansell%desc%custom_text] */ + // HASH_VALUE E83415184D022FA7 // INDEX 2496 uihelpItemAnimal [Dieser Gegenstand symbolisiert \n - Dein Tier #%petnumber.\n + ein Tier #%petnumber.\n \n - Du kannst ein Tier über diesen Gegenstand verschenken oder verkaufen, aber nur wenn sein Inventar leer ist.\n + Du kannst ein Tier mit Hilfe dieses Gegenstands verschenken oder verkaufen, aber nur, wenn sein Inventar leer ist.\n %cansell%desc%custom_text] // HASH_VALUE CB10EC5C14C1477D // INDEX 2497 -uihelpItemTeleport [Teleportieren\n - \n - \n +uihelpItemTeleport [Zum Verwenden rechtsklicken und \n + "Teleportieren" auswählen \n + Ein Teleportpakt wird dafür bei Ankunft verbraucht. \n %cansell%desc%custom_text] // HASH_VALUE 9B6A37002639A74D // INDEX 2498 -uihelpBrickFormat [@{FFF9}Level:@{T8}@{FFFF}%lvl\n - %ks@{FFF9}Skill:@{T8}@{FFFF}%skill\n +uihelpBrickFormat [@{FFF9}Stufe:@{T8}@{FFFF}%lvl\n + %ks@{FFF9}Aktion:@{T8}@{FFFF}%skill\n %ks@{FFF9}%hcost:@{T8}@{FFFF}%cost\n %magicresist\n @{FFFF}%desc] // HASH_VALUE E9693C64187AA7CC // INDEX 2499 -uihelpBrickMagicResist [@{FFF9}Zauberbranche:\n +uihelpBrickMagicResist [@{FFF9}Magie-Art:\n @{T4}@{FFFF}%t\n ] // HASH_VALUE C3CCBC6A52334340 // INDEX 2500 -uihelpBrickCombatSkillSeparator [@{FFF9} or\n +uihelpBrickCombatSkillSeparator [@{FFF9} oder \n @{T8}@{FFFF}] // HASH_VALUE 74DCF40C74DCF40C @@ -10554,11 +10538,11 @@ uihelpSabrinaCost [Kosten] // HASH_VALUE EB76F4546E54FC7A // INDEX 2502 -uihelpSabrinaCredit [Guthaben] +uihelpSabrinaCredit [Ausgleich] // HASH_VALUE E6DE7A794789E895 // INDEX 2503 -uihelpBrickFaberFormat [@{FFF9}Level:@{T8}@{FFFF}%lvl\n +uihelpBrickFaberFormat [@{FFF9}Stufe:@{T8}@{FFFF}%lvl\n %ks@{FFF9}Fertigkeit:@{T8}@{FFFF} %skill\n %ks@{FFF9}%hcost:@{T8}@{FFFF}%cost\n \n @@ -10579,7 +10563,7 @@ uihelpMpNone [@{T4}Kein(e)\n uihelpAuraDisabled [\n \n Diese Aura ist deaktiviert.\n - Vielleicht bist Du ausser Reichweite oder es braucht etwas Zeit, bis Du wieder von dieser Aura beeinflusst wirst..] + Vielleicht bist du außer Reichweite oder es braucht etwas Zeit, bis du wieder von dieser Aura beeinflusst werden kannst.] // HASH_VALUE 5072B2C842D8F4AE // INDEX 2506 @@ -10596,10 +10580,10 @@ uihelpPhraseHeaderBricks [@{FFFF}--- Stanzas ---] // INDEX 2508 uihelpPhraseCombatFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n @{FFF9}Verwendb. mit:@{T12}@{FFFF}%wcomp\n \n - %compostart Diese Eigenschaften sind von der ausgestatteten Waffe abhängig.\n + %compostart Diese Eigenschaften sind von der ausgerüsteten Waffe abhängig.\n @{FFF9}@{HuittActionSuccessRateSF}Erfolgsrate:@{H}@{T16}@{FFFF}%success%\n @{FFF9}Ausd.-Verbrauch:@{T16}@{FFFF}%energy_cost\n @{FFF9}HP-Verbrauch:@{T16}@{FFFF}%hp_cost\n @@ -10609,19 +10593,19 @@ uihelpPhraseCombatFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n // INDEX 2509 uihelpPhraseMagicFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n - @{FFF9}@{HuittActionSpellLevel}Spruchlevel:@{T12}@{FFFF}%mglvl@{H}\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n + @{FFF9}@{HuittActionSpellLevel}Magiestufe:@{T12}@{FFFF}%mglvl@{H}\n %magicresist\n %compostart@{FFF9}@{HuittActionSuccessRateSM}Erfolg:@{H}@{T12}@{FFFF}%success%\n @{FFF9}Zauberzeit:@{T12}@{FFFF}%duration Sekunden\n - @{FFF9}Sapverbrauch:@{T12}@{FFFF}%energy_cost\n + @{FFF9}Sap-Verbrauch:@{T12}@{FFFF}%energy_cost\n @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n @{FFF9}Reichweite:@{T12}@{FFFF}%range\n @{FFFF}%desc%req] // HASH_VALUE E9693C64187AA7CC // INDEX 2510 -uihelpPhraseMagicResist [@{FFF9}Magiebereich:\n +uihelpPhraseMagicResist [@{FFF9}Magie-Art:\n @{T4}@{FFFF}%t\n ] @@ -10637,7 +10621,7 @@ uihelpPhraseRangeSelf [Selbst] // INDEX 2513 uihelpPhraseCraftFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n %compostart@{FFF9}@{HuittActionSuccessRateSC}Erfolg:@{H}@{T12}@{FFFF} abhängig vom zu erschaffenden Gegenstand (siehe Handwerk).\n @{FFF9}Aktionsdauer:@{T12}@{FFFF}%duration Sekunden\n @@ -10648,15 +10632,15 @@ uihelpPhraseCraftFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n // INDEX 2514 uihelpPhraseForageExtractionFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}Zauberzeit:@{T12}@{FFFF}%duration Sekunden\n + %compostart@{FFF9}Aktionszeit:@{T12}@{FFFF}%duration Sekunden\n @{FFF9}Fokusverbr.:@{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE E1F8D905BBCF29E1 // INDEX 2515 -uihelpPhraseForageSuccessAll [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} (Wüste/ Wälder / Dschungel/ Seen/ Urwurzeln) :\n +uihelpPhraseForageSuccessAll [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} (Wüste/ Wälder / Dschungel/ Seenland/ Urwurzeln) :\n @{T4}@{FFFF}%suc_desert%@{FFF9} / @{FFFF}%suc_forest%@{FFF9} / @{FFFF}%suc_jungle%@{FFF9} / @{FFFF}%suc_lake%@{FFF9} / @{FFFF}%suc_prime%\n ] @@ -10689,17 +10673,17 @@ uihelpPhraseForageSuccessPrimaryRoot [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{ // INDEX 2521 uihelpPhraseOtherFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n - %compostart%suc_forage@{FFF9}Zauberzeit:@{T12}@{FFFF}%duration seconds\n - @{FFF9}Verbrauchter Fokus:@{T12}@{FFFF}%energy_cost\n + %compostart%suc_forage@{FFF9}Aktionszeit:@{T12}@{FFFF}%duration seconds\n + @{FFF9}Fokusverbrauch:@{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE 7BF23D9209DAD4A2 // INDEX 2522 uihelpPhraseSpecialPowerFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n %compostart@{FFF9}Reichweite:@{T12}@{FFFF}%range\n @{FFFF}%desc%req] @@ -10710,9 +10694,9 @@ uihelpPhraseEnchantmentFormat [\n @{FFFF}--- Verzauberung ---\n @{FFF9}Dieser Gegenstand ist mit dieser Aktion verzaubert:\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n - @{FFF9}Aktionen auf verzauberten Gegenständen gelingen immer.\n + @{FFF9}Aktionen und Zauber auf verzauberten Gegenständen gelingen immer.\n @{FFF9}Zauberdauer:@{T12}@{FFFF}%duration seconds\n @{FFF9}Sapverbrauch:@{T12}@{FFFF}%energy_cost\n @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n @@ -10722,11 +10706,11 @@ uihelpPhraseEnchantmentFormat [\n // HASH_VALUE DFEC9DA28E2CA03B // INDEX 2524 uihelpPhraseCrystalSpellFormat [@{FFFF}--- Verzauberung ---\n - @{FFF9}Dieser Gegenstand kann eine Waffe mit dieser Aktion verzaubern:\n + @{FFF9}Dieser Kristall kann eine Waffe mit der kristallisierten Magie-Aktion verzaubern:\n @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Kredit:@{T12}@{FFFF}%credit\n + @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n \n - @{FFF9}Aktionen auf verzauberten Gegenständen gelingen immer.\n + @{FFF9}Aktionen und Zauber auf verzauberten Gegenständen gelingen immer.\n @{FFF9}Zauberdauer:@{T12}@{FFFF}%duration Sekunden\n @{FFF9}Sapverbrauch:@{T12}@{FFFF}%energy_cost\n @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n @@ -10737,23 +10721,23 @@ uihelpPhraseCrystalSpellFormat [@{FFFF}--- Verzauberung ---\n // INDEX 2525 uihelpPhraseRequirementHeader [\n @{FFFF}--- Anforderungen --- \n - @{FFF9}@{HuittActionSkillPoint}Benötigte Fähigkeitspunkte: @{H}@{T12}@{FFFF}%sp / %basesp\n - @{FFF9}@{HuittActionSkillReq}Benötigte Fähigkeiten:@{H}\n + @{FFF9}@{HuittActionSkillPoint}Benötigte Fertigkeitspunkte: @{H}@{T12}@{FFFF}%sp / %basesp\n + @{FFF9}@{HuittActionSkillReq}Benötigte Fertigkeiten:@{H}\n ] // HASH_VALUE 03B2BD64B83F75A9 // INDEX 2526 -uihelpPhraseRequirementLine [@{T4}@{FFF9}Fertigkeit @{FFFF}%s@{FFF9} Level @{FFFF}%d\n +uihelpPhraseRequirementLine [@{T4}@{FFF9}Fertigkeit @{FFFF}%s@{FFF9} Stufe @{FFFF}%d\n ] // HASH_VALUE 03436449B0FD3CA9 // INDEX 2527 -uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Fähigkeit @{F80F}%s@{F80B} auf Level @{F80F}%d\n +uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Fertigkeit @{F80F}%s@{F80B} auf Stufe @{F80F}%d\n ] // HASH_VALUE C4646B55D3A3471E // INDEX 2528 -uihelpPhraseRequirementOR [@{FFFF}ODER\n +uihelpPhraseRequirementOR [@{FFFF}oder \n ] // HASH_VALUE E38ADC3C9A64A5D1 @@ -10763,27 +10747,27 @@ uihelpPhraseBrickRequirement [@{FFF9}@{HuittActionStanzaReq}Benötigte Stanzas:@ // HASH_VALUE 428D8631CC10708E // INDEX 2530 -uihelpPhraseNotCastableFormat [@{FFFF}Das ist ein Aktionsupgrade, das dir neue Stanzas beibringt.\n - Du kannst es weder in die Aktionsleiste aufnehmen noch direkt zaubern.\n +uihelpPhraseNotCastableFormat [@{FFFF}Das ist eine Aktionsverbesserung, die dir neue Stanzas beibringt.\n + Du kannst diese einzelnen Aktionsteile weder direkt zaubern noch in die Aktionsleiste ziehen.\n @{FFFF}%desc%req] // HASH_VALUE 0F0F8DFF048A8EF8 // INDEX 2531 uihelpPhraseCharacteristic [@{FFFF}Dies ist eine Verbesserung, welche einen Charakterwert erhöht.\n - Es ist eine passive Verbesserung, Du kannst sie nicht aktiv zaubern.\n + Es handelt sich um eine passive Verbesserung, Du kannst sie nicht aktiv zaubern.\n @{FFFF}%desc%req] // HASH_VALUE AFC850B7201BDDEA // INDEX 2532 -uihelpPhraseProcEnchantment [@{FFFF}Mit dieser Aktion kannst Du die Verzauberung des Gegenstands in deiner rechten Hand nutzen.\n +uihelpPhraseProcEnchantment [@{FFFF}Mit dieser Aktion kannst du die Verzauberung des Gegenstands in deiner rechten Hand nutzen.\n \n - Sollte der Gegenstand in deiner rechten Hand nicht verzaubert sein kann diese Aktion nicht ausgeführt werden.\n + Sollte der Gegenstand in deiner rechten Hand nicht verzaubert sein, kann diese Aktion nicht ausgeführt werden.\n ] // HASH_VALUE 0B663B02619E27B2 // INDEX 2533 -uihelpPactFormat [@{FFF9}Level:@{T12}@{FFFF}%lvl\n - @{FFF9}Verlorene HP:@{T12}@{FFFF}%hp\n +uihelpPactFormat [@{FFF9}Stufe:@{T12}@{FFFF}%lvl\n + @{FFF9}Verlorene Lebenskraft:@{T12}@{FFFF}%hp\n @{FFF9}Verlorene Ausdauer:@{T12}@{FFFF}%sta\n @{FFF9}Verlorener Sap:@{T12}@{FFFF}%sap\n @{FFF9}Verlorene Fertigkeiten:@{T12}@{FFFF}%skill\n @@ -10792,8 +10776,8 @@ uihelpPactFormat [@{FFF9}Level:@{T12}@{FFFF}%lvl\n // HASH_VALUE A3640C075B010074 // INDEX 2534 uihelpOBFormat_Empty [@{FFFF}Das ist eine bebaubare Zone.\n - Wenn Du diesen Ort bebaust, wird das jetzige Gebäude zerstört.\n - Doch Du kannst ihn erneut bebauen.\n + Wenn du diesen Ort bebaust, wird das jetzige Gebäude zerstört.\n + Doch du kannst ihn erneut bebauen.\n \n @{FFF9}Bauzeit: @{T12}@{FFFF}%costtime\n @{FFF9}Baukosten: @{T12}@{FFFF}%costdapper\n @@ -10802,8 +10786,8 @@ uihelpOBFormat_Empty [@{FFFF}Das ist eine bebaubare Zone.\n // HASH_VALUE A2A17E19C1AD5601 // INDEX 2535 uihelpOBFormat_TownHall [@{FFFF}Dies ist eine Gildenhalle.\n - Dieses Gebäude gewährt Zugang zum Gildeninventar, wenn man sich in der Nähe befindet.\n - Sie ist automatisch erobert, wenn man den Außenposten gewinnt.\n + Dieses Gebäude gewährt Gildenmitgliedern Zugang zum Gildeninventar, wenn sie in der Nähe sind.\n + Die Gildenhalle wird automatisch gewonnen, wenn der Außenposten erobert wird.\n ] // HASH_VALUE 90B3DB8470400161 @@ -10812,7 +10796,7 @@ uihelpOBFormat_Driller [@{FFFF}%name\n \n @{FFF9}Dieses Gebäude ist ein Bohrer. Er ermöglicht es, Rohstoffe abzubauen.\n \n - @{FFF9}Man kann nur einen Bohrer pro Außenposten errichten.\n + @{FFF9}Es kann nur ein Bohrer pro Außenposten errichtet werden.\n \n @{FFF9}Bauzeit: @{T12}@{FFFF}%costtime\n @{FFF9}Installationskosten: @{T12}@{FFFF}%costdapper\n @@ -10822,20 +10806,20 @@ uihelpOBFormat_Driller [@{FFFF}%name\n // HASH_VALUE 91F02F314780B0F7 // INDEX 2537 -uihelpTitleInfo [Spieler INFO] +uihelpTitleInfo [Spieler-INFO] // HASH_VALUE DCA8B0599A987B59 // INDEX 2538 -uiTitleCantObtain [Du kannst diesen Titel nicht bekommen.] +uiTitleCantObtain [Du kannst diesen Titel nicht erhalten.] // HASH_VALUE 75276CBE949A8C0C // INDEX 2539 -uiTitleSkillNoNeed [Es werden keine Fähigkeiten benötigt um diesen Titel zu bekommen.\n +uiTitleSkillNoNeed [Es werden keine Fähigkeiten benötigt, um diesen Titel zu bekommen.\n ] // HASH_VALUE 77C78094F0880DD9 // INDEX 2540 -uiTitleBrickNoNeed [Es werden keine Stanzas benötigt um diesen Titel zu bekommen.\n +uiTitleBrickNoNeed [Es werden keine Stanzas benötigt, um diesen Titel zu bekommen.\n ] // HASH_VALUE DEF51475829BA943 @@ -10864,7 +10848,7 @@ uihelpToolType [Werkzeugart: ] // HASH_VALUE 9C798F5A891A8A7B // INDEX 2546 -ChildPlay [Kinderspiel] +ChildPlay [Ein Kinderspiel] // HASH_VALUE 65C9938DA903E464 // INDEX 2547 @@ -10880,23 +10864,23 @@ FairlyEasy [Ziemlich einfach] // HASH_VALUE 2C16E37ED4598C95 // INDEX 2550 -Average [Durchschnitt] +Average [Durchschnittlich] // HASH_VALUE ABA9B892A4389366 // INDEX 2551 -QuiteDifficult [Ziemlich schwer] +QuiteDifficult [Ziemlich schwierig] // HASH_VALUE 9D873899AA89649E // INDEX 2552 -Difficult [Schwer] +Difficult [Schwierig] // HASH_VALUE EAF85C766C90749E // INDEX 2553 -ReallyDifficult [Sehr schwer] +ReallyDifficult [Sehr schwierig] // HASH_VALUE EAF81084E2471495 // INDEX 2554 -Harsh [Rau] +Harsh [Heftig] // HASH_VALUE A59AA7A0E5A9B063 // INDEX 2555 @@ -10904,7 +10888,7 @@ ExtremelyDifficult [Extrem schwer] // HASH_VALUE 6B07D498D92AA7BD // INDEX 2556 -FeatureUnderConstruction [In Konstruktion] +FeatureUnderConstruction [Im Bau befindlich] // HASH_VALUE EA9A9C78C2F8BCA2 // INDEX 2557 @@ -10912,7 +10896,7 @@ InvalidSentence [Ungültiger Satz] // HASH_VALUE 2AABD08122B5376E // INDEX 2558 -ErrorCreating [Fehler bei Satzerstellung] +ErrorCreating [Fehler bei der Satzerstellung] // HASH_VALUE 29E48CA7663A87A5 // INDEX 2559 @@ -10920,12 +10904,12 @@ Uncomplete [Unvollständiger Satz] // HASH_VALUE D4C39BFF16992FAE // INDEX 2560 -Cheater [Cheating ist fies...] +Cheater [Cheaten ist falsch, solltest du wissen...] // NEWS (28/04/03 by LEM) // HASH_VALUE 0E13C83F8B030431 // INDEX 2561 -uiSet [SET] +uiSet [Einstellen] // HASH_VALUE F0223D05D05A5A86 // INDEX 2562 @@ -10965,11 +10949,11 @@ uiConnectionTitle [VERBINDUNG] // HASH_VALUE CBF1D0370C82A023 // INDEX 2571 -uiUpload [UPLOAD] +uiUpload [HOCHLADEN] // HASH_VALUE 4CD4F4104450F430 // INDEX 2572 -uiDownload [DOWNLOAD] +uiDownload [HERUNTERLADEN] // HASH_VALUE 4490944044909440 // INDEX 2573 @@ -11009,7 +10993,7 @@ uiServerState5 [Verbunden] // HASH_VALUE 68485C8923782886 // INDEX 2582 -uiServerState6 [Sonde] +uiServerState6 [Sondieren] // HASH_VALUE A8F8B89464D84488 // INDEX 2583 @@ -11029,291 +11013,291 @@ uiGlobalSettingsTitle [KONFIGURATION] // HASH_VALUE 0D93EA4AA0A3F23C // INDEX 2587 -fct_steward [ (Kellner)] +fct_steward [(Verwalter)] // HASH_VALUE 64168A06A47834E0 // INDEX 2588 -_Davae_citizen [ (Einwohner von Davae)] +_Davae_citizen [(Einwohner von Davae)] // HASH_VALUE 64622DCEA5D9C4B4 // INDEX 2589 -_Avalae_citizen [ (Einwohner von Avalae)] +_Avalae_citizen [(Einwohner von Avalae)] // HASH_VALUE 0804696F658A989B // INDEX 2590 -_Yrkanis_citizen [ (Einwohner von Yrkanis)] +_Yrkanis_citizen [(Einwohner von Yrkanis)] // HASH_VALUE 64568A06A47834DC // INDEX 2591 -_Natae_citizen [ (Einwohner von Natae)] +_Natae_citizen [(Einwohner von Natae)] // HASH_VALUE 4213921329B54F93 // INDEX 2592 -fct_k_pactgiver [ (Paktgeber der Kami)] +fct_k_pactgiver [(Kami-Paktanbieter)] // HASH_VALUE E929C25827ED8F5F // INDEX 2593 -fct_kv_pactgiver [ (Paktgeber der Karavan)] +fct_kv_pactgiver [(Karavan-Paktanbieter)] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2594 -fct_kitin_mg_1 [ (Kitin-Aufpasser)] +fct_kitin_mg_1 [(Kitin-Gefahren-Beobachter)] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2595 -fct_kitin_mg_2 [ (Kitin-Aufpasser)] +fct_kitin_mg_2 [(Kitin-Gefahren-Beobachter)] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2596 -fct_kitin_mg_3 [ (Kitin-Aufpasser)] +fct_kitin_mg_3 [(Kitin-Gefahren-Beobachter)] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2597 -fct_kitin_mg_4 [ (Kitin-Aufpasser)] +fct_kitin_mg_4 [(Kitin-Gefahren-Beobachter)] // HASH_VALUE 5D04EE05DF563349 // INDEX 2598 -fct_bg [ (Leibwächter)] +fct_bg [ (Leibwächter] // HASH_VALUE 87558E59A8B03B62 // INDEX 2599 -fct_kami_adept [ (Kami-Anhänger)] +fct_kami_adept [(Kami-Anhänger)] // HASH_VALUE 66B6271BC1B1C3AF // INDEX 2600 -fct_larmor_merchant [ (Händler für leichte Rüstungen)] +fct_larmor_merchant [(Händler für leichte Rüstungen)] // HASH_VALUE 27058EC55BF7CC98 // INDEX 2601 -fct_marmor_merchant [ (Rüstungshändler (mittel))] +fct_marmor_merchant [(Händler für mittelschwere Rüstungen)] // HASH_VALUE E436171BC1010FB7 // INDEX 2602 -fct_harmor_merchant [ (Rüstungshändler (schwer)] +fct_harmor_merchant [(Händler für schwere Rüstungen)] // HASH_VALUE 61DF52249C5960AA // INDEX 2603 -fct_ctool_merchant [ (Werkszeughändler)] +fct_ctool_merchant [(Händler für Handwerkswerkzeug)] // HASH_VALUE E6D74FDA42C4AFB0 // INDEX 2604 -fct_ttool_merchant [ (Zähmzeughändler)] +fct_ttool_merchant [(Händler für Dressurwerkzeug] // HASH_VALUE A58589195DF51CB4 // INDEX 2605 -fct_htool_merchant [ (Händler für Rohstoffgewinnungswerkzeuge)] +fct_htool_merchant [(Händler für Erntewerkzeug)] // HASH_VALUE 1B8F8A2027A8A084 // INDEX 2606 -fct_shield_merchant [ (Schildhändler)] +fct_shield_merchant [(Händler für Schilde)] // HASH_VALUE EA94D20A4A92EC9C // INDEX 2607 -fct_ammo_merchant [ (Munitionshändler)] +fct_ammo_merchant [(Händler für Munition)] // HASH_VALUE E6969EFCB5F5ACAC // INDEX 2608 -fct_rangeweapon_merchant [ (Fernwaffenhändler)] +fct_rangeweapon_merchant [(Händler für Fernwaffen)] // HASH_VALUE E8F49EFCB5F59CA8 // INDEX 2609 -fct_meleeweapon_merchant [ (Nahkampfwaffenhändler)] +fct_meleeweapon_merchant [(Händler für Nahkampfwaffen)] // HASH_VALUE A053522DA0845A42 // INDEX 2610 -fct_stableboy_merchant [ (Stalljunge)] +fct_stableboy_merchant [(Stallbursche)] // HASH_VALUE 24A79E1955F16AB0 // INDEX 2611 -fct_rm_merchant [ (Rohstoffhändler)] +fct_rm_merchant [(Rohmaterial-Händler)] // HASH_VALUE 5FA36AD6DB1898A7 // INDEX 2612 -fct_jewel_merchant [ (Schmuckhändler)] +fct_jewel_merchant [(Schmuck-Händler)] // HASH_VALUE EAF6D20A4A92D4A0 // INDEX 2613 -fct_tool_merchant [ (Werkzeughändler)] +fct_tool_merchant [(Werkzeughändler)] // HASH_VALUE DAE3DB4397468A5E // INDEX 2614 -fct_plarmor_merchant [ (Rüstungshändler (leicht))] +fct_plarmor_merchant [(Händler für Bestandteile leichter Rüstungen)] // HASH_VALUE D9C72F149A028369 // INDEX 2615 -fct_pmarmor_merchant [ (Rüstungshändler (mittel))] +fct_pmarmor_merchant [(Händler für Bestandteile mittelschwerer Rüstungen)] // HASH_VALUE D9A3DB439656C258 // INDEX 2616 -fct_pharmor_merchant [ (Rüstungshändler (schwer))] +fct_pharmor_merchant [(Händler für Bestandteile schwerer Rüstungen)] // HASH_VALUE AD16BB14C9849673 // INDEX 2617 -fct_parmor_merchant [ (Rüstungshändler)] +fct_parmor_merchant [(Händler für Rüstungsteile)] // HASH_VALUE EF628F410865AF64 // INDEX 2618 -fct_pctool_merchant [ (Handwerkszeughändler)] +fct_pctool_merchant [(Händler für Werkzeugteile)] // HASH_VALUE D884E30266668E5E // INDEX 2619 -fct_pttool_merchant [ (Zähmzeughändler)] +fct_pttool_merchant [(Händler für Dressurwerkzeugteile)] // HASH_VALUE 58972A68DA019F77 // INDEX 2620 -fct_phtool_merchant [ (Händler für Rohstoffgewinnungswerkzeuge)] +fct_phtool_merchant [(Händler für Erntewerkzeugteile)] // HASH_VALUE 08D767639CC17755 // INDEX 2621 -fct_ptool_merchant [ (Werkzeughändler)] +fct_ptool_merchant [(Händler für Werkzeug-Zusammensetzung)] // HASH_VALUE 2407BBDA827497AA // INDEX 2622 -fct_pshield_merchant [ (Schildhändler)] +fct_pshield_merchant [(Händler für Schildteile)] // HASH_VALUE 88D65F61D7C18353 // INDEX 2623 -fct_pammo_merchant [ (Munitionshändler)] +fct_pammo_merchant [(Händler für Munitionsteile)] // HASH_VALUE 99073F4B88016B73 // INDEX 2624 -fct_prangeweapon_merchant [ (Fernwaffenhändler)] +fct_prangeweapon_merchant [(Händler für Fernwaffenteile)] // HASH_VALUE 9AB63F4B47016371 // INDEX 2625 -fct_pmeleeweapon_merchant [ (Nahkampfwaffenhändler)] +fct_pmeleeweapon_merchant [(Händler für Nahkampfwaffenteile)] // HASH_VALUE D7183F68D87F466E // INDEX 2626 -fct_prm_merchant [ (Rohstoffhändler)] +fct_prm_merchant [(Händler für Rohmaterialteile)] // HASH_VALUE ABF6872799C5DB77 // INDEX 2627 -fct_consumable_merchant [ (Händler für Gebrauchsgegenstände)] +fct_consumable_merchant [(Händler für Gebrauchsgegenstände)] // HASH_VALUE E847871DC9236E77 // INDEX 2628 -fct_pjewel_merchant [ (Schmuckhändler)] +fct_pjewel_merchant [(Händler für Schmuckteile)] // HASH_VALUE E9D6A719718673A9 // INDEX 2629 -fct_mf_welcomer [ (Empfänger der Nahkampf-Gilde)] +fct_mf_welcomer [(Nahkampf-Gilden-Empfänger)] // HASH_VALUE E827A71971867BAB // INDEX 2630 -fct_rf_welcomer [ (Empfänger der Fernkampf-Gilde)] +fct_rf_welcomer [(Fernkampf-Gildenempfänger)] // HASH_VALUE E5869740FE90EF5E // INDEX 2631 -fct_mh_welcomer [ (Empfänger der Heiler-Gilde)] +fct_mh_welcomer [(Heilmagier-Gilden-Empfänger)] // HASH_VALUE 63D6D73AFE90EF5E // INDEX 2632 -fct_mb_welcomer [ (Empfänger der Schutzmagier-Gilde] +fct_mb_welcomer [(Schutzmagier-Gilden-Empfänger)] // HASH_VALUE 22B7D339FE90D35C // INDEX 2633 -fct_ma_welcomer [ (Empfänger der Kampfzauberer-Gilde)] +fct_ma_welcomer [(Kampfmagier-Gilden-Empfänger)] // HASH_VALUE 6D170EC55FD5489B // INDEX 2634 -fct_t_welcomer [ (Empfänger der Händler-Gilde)] +fct_t_welcomer [(Händler-Gilden-Empfänger)] // HASH_VALUE C1B47E5DEEF85C4D // INDEX 2635 -fct_h_welcomer [ (Empfänger der Waldläufer-Gilde)] +fct_h_welcomer [(Ranger-Gilden-Empfänger)] // HASH_VALUE 21D0352ED869DCBE // INDEX 2636 -fct_f_welcomer [ (Empfänger der Handwerker-Gilde)] +fct_f_welcomer [(Handwerks-Gilden-Empfänger)] // HASH_VALUE 211292E01638C8B0 // INDEX 2637 -fct_welcomer [ (Empfänger der Gilde)] +fct_welcomer [(Gildenempfänger)] // HASH_VALUE DF64230F2604FF5D // INDEX 2638 -fct_p_caretaker [ (Homin Appartementbediensteter)] +fct_p_caretaker [(Wohnungs-Verwalter)] // HASH_VALUE 9BE5764058579B6F // INDEX 2639 -fct_g_caretaker [ (Gilden Appartementbediensteter)] +fct_g_caretaker [(Gildenhallen-Verwalter)] // HASH_VALUE 52D66A1D52E95F6F // INDEX 2640 -fct_caretaker [ (Aufpasser)] +fct_caretaker [(Hausverwalter)] // HASH_VALUE 2A36AB0EBCC52A6D // INDEX 2641 -fct_mf_chief [ (Gildenführer der Nahkämpfer)] +fct_mf_chief [(Nahkampf-Gilden-Führer))] // HASH_VALUE 2987AB0EFDC5326F // INDEX 2642 -fct_rf_chief [ (Gildenführer der Fernkämpfer)] +fct_rf_chief [(Fernkampf-Gilden-Führer)] // HASH_VALUE D6D76F418962BF0C // INDEX 2643 -fct_mh_chief [ (Gildenführer der Heiler)] +fct_mh_chief [(Heilmagier-Gilden-Führer)] // HASH_VALUE 5427AF3B8962BF0C // INDEX 2644 -fct_mb_chief [ (Gildenführer der Schutzmagier)] +fct_mb_chief [(Schutzmagier-Gilden-Führer)] // HASH_VALUE 1308AB3A8962A30A // INDEX 2645 -fct_ma_chief [ (Gildenführer der Kampfzauberer)] +fct_ma_chief [(Kampfmagier-Gilden-Führer)] // HASH_VALUE 68F80BF9925C8FA4 // INDEX 2646 -fct_t_chief [ (Gildenführer der Händler)] +fct_t_chief [(Händler-Gilden-Führer)] // HASH_VALUE CBF33521ECA9087B // INDEX 2647 -fct_h_chief [ (Gildenführer der Rohstoffsammler)] +fct_h_chief [(Ernte-Gilden-Führer)] // HASH_VALUE 2FC5BA220325ECAB // INDEX 2648 -fct_f_chief [ (Gildenführer der Handwerker)] +fct_f_chief [(Handwerks-Gilden-Führer)] // HASH_VALUE 05B081696A69B075 // INDEX 2649 -fct_mission_officer [ (Missionsoffizier)] +fct_mission_officer [(Missionsoffizier)] // HASH_VALUE 77058565AB28A39E // INDEX 2650 -fct_mv_guard [ (Yrkanis - Wächter)] +fct_mv_guard [(Wächter von Yrkanis)] // HASH_VALUE 5A975C179A4874A6 // INDEX 2651 -fct_mv_guardchief [ (Yrkanis - Hauptmann der Wache)] +fct_mv_guardchief [(Oberwächter von Yrkanis)] // HASH_VALUE 6AB4402626389CAA // INDEX 2652 -fct_ma_guard [ (Natae - Wächter)] +fct_ma_guard [(Wächter von Natae)] // HASH_VALUE 66374644E3D58EA0 // INDEX 2653 -fct_ma_guardchief [ (Natae - Hauptmann der Wache)] +fct_ma_guardchief [(Oberwächter von Natae)] // HASH_VALUE 6A74402626389CAE // INDEX 2654 -fct_mb_guard [ (Davae - Wächter)] +fct_mb_guard [(Wächter von Davae)] // HASH_VALUE 66B7463AE3D58EA2 // INDEX 2655 -fct_mb_guardchief [ (Davae - Hauptmann der Wache)] +fct_mb_guardchief [(Oberwächter von Davae)] // HASH_VALUE CECF89D5661990B3 // INDEX 2656 -fct_mc_guard [ (Avalae - Wächter)] +fct_mc_guard [(Wächter von Avalae)] // HASH_VALUE 2803FF8F432554A7 // INDEX 2657 -fct_mc_guardchief [ (Avalae - Hauptmann der Wache)] +fct_mc_guardchief [(Oberwächter von Avalae)] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2658 -fct_mf_guard [ (Grenzwächter)] +fct_mf_guard [(Grenzwächter)] // HASH_VALUE 1E1AF84D55D0B764 // INDEX 2659 @@ -11321,163 +11305,163 @@ fct_tax_collector [(Steuereintreiber)] // HASH_VALUE 1055235F1E037B40 // INDEX 2660 -fct_tribe_chief [(Stammesanführer)] +fct_tribe_chief [(Stammesführer)] // HASH_VALUE FA3A7D18EA290C3D // INDEX 2661 -fct_barman [ (Zapfer)] +fct_barman [(Barmann)] // HASH_VALUE 60508080289CF4E4 // INDEX 2662 -fct_mayor [ (Bürgermeister)] +fct_mayor [(Bürgermeister)] // HASH_VALUE 982391679B0BB8AC // INDEX 2663 -fct_amayor [ (Bürgermeistergehilfe)] +fct_amayor [(Bürgermeister-Assistent)] // HASH_VALUE 24876B47741546A0 // INDEX 2664 -fct_natae_chief [ (Natae Dorfoberhaupt)] +fct_natae_chief [(Dorfvorsteher von Natae)] // HASH_VALUE 24076B3D741546A2 // INDEX 2665 -fct_davae_chief [ (Davae Dorfoberhaupt)] +fct_davae_chief [(Dorfvorsteher von Davae)] // HASH_VALUE 6A970B88C274549E // INDEX 2666 -fct_avalae_chief [ (Avalae Dorfoberhaupt)] +fct_avalae_chief [(Dorfvorsteher von Avalae)] // HASH_VALUE C77392162DB55467 // INDEX 2667 -fct_counselor [ (Königlicher Ratsherr)] +fct_counselor [(Berater des Königs)] // HASH_VALUE DC51994A56FAC49D // INDEX 2668 -fct_cutthroat [ (Matis Halsabschneider)] +fct_cutthroat [(Halsaufschneider)] // HASH_VALUE A65857CB3771739D // INDEX 2669 -fct_bandit_chief [ (Banditenchef)] +fct_bandit_chief [(Banditenanführer)] // HASH_VALUE 9798965A86668796 // INDEX 2670 -fct_mv_intendant [ (Yrkanis Aufseher)] +fct_mv_intendant [ (Intendant von Yrkanis)] // HASH_VALUE 06155E68D5B43A7B // INDEX 2671 -fct_ma_intendant [ (Natae Aufseher)] +fct_ma_intendant [(Intendant von Natae)] // HASH_VALUE 06755E6AD5143A7D // INDEX 2672 -fct_mb_intendant [ (Davae Aufseher)] +fct_mb_intendant [(Intendant von Davae)] // HASH_VALUE 64C277214C259E5D // INDEX 2673 -fct_mc_intendant [ (Avalae Aufseher)] +fct_mc_intendant [(Intendant von Avalae)] // HASH_VALUE 0854320F29F56048 // INDEX 2674 -fct_zv_intendant [ (Zora Aufseher)] +fct_zv_intendant [(Intendantvon Zora)] // HASH_VALUE 47D762C7840B9677 // INDEX 2675 -fct_za_intendant [ (Aufseher von Jen-Laï)] +fct_za_intendant [(Intendantvon Jen-Laï)] // HASH_VALUE 4807724A4673B26E // INDEX 2676 -fct_zb_intendant [ (Min-Cho Aufseher)] +fct_zb_intendant [(Intendant von Min-Cho)] // HASH_VALUE C9CF8A454673B2EF // INDEX 2677 -fct_zc_intendant [ (Aufseher von Hoï-Cho)] +fct_zc_intendant [(Intendant von Hoï-Cho)] // HASH_VALUE 5CE27D50855AA7A4 // INDEX 2678 -fct_fv_intendant [ (Pyr Aufseher)] +fct_fv_intendant [(Intendant von Pyr)] // HASH_VALUE 646487139405BA6F // INDEX 2679 -fct_fa_intendant [ (Thesos Aufseher)] +fct_fa_intendant [(Intendant von Thesos)] // HASH_VALUE 0C059666DBA47279 // INDEX 2680 -fct_fb_intendant [ (Dyron Aufseher)] +fct_fb_intendant [(Intendant von Dyron)] // HASH_VALUE 92946A2A95E7CBA6 // INDEX 2681 -fct_tv_intendant [ (Fairhaven Aufseher)] +fct_tv_intendant [(Intendant von Fairhaven)] // HASH_VALUE 66A3862464849C62 // INDEX 2682 -fct_ta_intendant [ (Windermeer Aufseher)] +fct_ta_intendant [(Intendant von Windermeer)] // HASH_VALUE 22D28619E4660476 // INDEX 2683 -fct_tb_intendant [ (Crystabell Aufseher)] +fct_tb_intendant [(Intendant von Crystabell)] // HASH_VALUE 2A33F31998D44061 // INDEX 2684 -fct_tc_intendant [ (Avendale Aufseher)] +fct_tc_intendant [(Intendant von Avendale)] // HASH_VALUE 6B087BCFF63D56A9 // INDEX 2685 -fct_zv_guard [ (Zora-Wächter)] +fct_zv_guard [(Wächter von Zora)] // HASH_VALUE 9568AB17A76C1680 // INDEX 2686 -fct_zv_guardchief [ (Zora-Hauptwächter)] +fct_zv_guardchief [(Oberwächter von Zora)] // HASH_VALUE 34DB65BF9C369E92 // INDEX 2687 -fct_za_guard [ (Wächter von Jen-Laï)] +fct_za_guard [(Wächter von Jen-Laï)] // HASH_VALUE D4B55C939604D2AC // INDEX 2688 -fct_za_guardchief [ (Hauptwächter von Jen-Laï)] +fct_za_guardchief [(Oberwächter von Jen-Laï)] // HASH_VALUE 350381365EA6AE95 // INDEX 2689 -fct_zb_guard [ (Min-Cho Wächter)] +fct_zb_guard [(Wächter von Min-Cho)] // HASH_VALUE D6155C131AE4D2AC // INDEX 2690 -fct_zb_guardchief [ (Min-Cho Hauptmann der Wache)] +fct_zb_guardchief [(Oberwächter von Min-Cho)] // HASH_VALUE B6B381365EBEC611 // INDEX 2691 -fct_zc_guard [ (Wächter von Hoï-Cho)] +fct_zc_guard [(Wächter von Hoï-Cho)] // HASH_VALUE D8755C131AE4D2AE // INDEX 2692 -fct_zc_guardchief [ (Hauptwächter von Hoï-Cho)] +fct_zc_guardchief [(Oberwächter von Hoï-Cho)] // HASH_VALUE 0D882338CDB46069 // INDEX 2693 -fct_fv_guard [ (Pyr - Wächter)] +fct_fv_guard [ (Wächter von Pyr)] // HASH_VALUE 4CB8A6621C88915D // INDEX 2694 -fct_fv_guardchief [ (Pyr - Hauptmann der Wache)] +fct_fv_guardchief [(Oberwächter von Pyr)] // HASH_VALUE 9A23A721D76B0325 // INDEX 2695 -fct_fv_rookieguard [ (Pyr Rekrut)] +fct_fv_rookieguard [(Wächter-Rekrut von Pyr)] // HASH_VALUE A6534B8FC6E6A8B2 // INDEX 2696 -fct_fa_guardchief [ (Thesos - Hauptmann der Wache)] +fct_fa_guardchief [(Oberwächter von Thesos)] // HASH_VALUE 100089E36C6ABCA9 // INDEX 2697 -fct_fa_guard [ (Thesos - Wächter)] +fct_fa_guard [ (Wächter von Thesos)] // HASH_VALUE EF77A63AE365C6A7 // INDEX 2698 -fct_fb_guardchief [ (Dyron - Hauptmann der Wache)] +fct_fb_guardchief [(Oberwächter von Dyron)] // HASH_VALUE 7674402626580CA6 // INDEX 2699 -fct_fb_guard [ (Dyron - Wächter)] +fct_fb_guard [ (Wächter von Dyron)] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2700 @@ -11485,127 +11469,127 @@ fct_ff_guard [ (Grenzwächter)] // HASH_VALUE C316C760D6467E72 // INDEX 2701 -fct_tv_guard [ (Fairhaven - Wächter)] +fct_tv_guard [ (Wächter von Fairhaven)] // HASH_VALUE 3392A25DAA286F85 // INDEX 2702 -fct_tv_guardchief [ (Fairhaven - Hauptmann der Wache)] +fct_tv_guardchief [(Oberwächter von Fairhaven)] // HASH_VALUE 6838736BA3309330 // INDEX 2703 -fct_ta_guard [ (Windermeer - Wächter)] +fct_ta_guard [(Wächter von Windermeer)] // HASH_VALUE 178453676A7448DD // INDEX 2704 -fct_ta_guardchief [ (Windermeer - Hauptmann der Wache)] +fct_ta_guardchief [(Oberwächter von Windermeer)] // HASH_VALUE ED589F691C21A32A // INDEX 2705 -fct_tc_guard [ (Crystabell - Wächter)] +fct_tc_guard [(Wächter von Crystabell)] // HASH_VALUE D8B3535CE9F634E8 // INDEX 2706 -fct_tc_guardchief [ (Crystabell - Hauptmann der Wache)] +fct_tc_guardchief [(Oberwächter von Crystabell)] // HASH_VALUE 9C2E576C113BF712 // INDEX 2707 -fct_tb_guard [ (Avendale - Wächter)] +fct_tb_guard [(Wächter von Avendale)] // HASH_VALUE A10A462762D99063 // INDEX 2708 -fct_tb_guardchief [ (Avendale - Hauptmann der Wache)] +fct_tb_guardchief [(Oberwächter von Avendale)] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2709 -fct_zf_guard [ (Grenzwächter)] +fct_zf_guard [(Grenzwächter)] // HASH_VALUE 9BA7D7FC59FF6259 // INDEX 2710 -fct_stablegirl_merchant [ (Stallmädchen)] +fct_stablegirl_merchant [(Stallbedienstete)] // HASH_VALUE 06829E5717637E38 // INDEX 2711 -fct_barmaid [ (Bardame)] +fct_barmaid [(Bardame)] // HASH_VALUE 0000000000000000 // INDEX 2712 -fct_civil [] +fct_civil [(Einwohner)] // HASH_VALUE D4170FFC3E4B5915 // INDEX 2713 -fct_sage [ (Gelehrter)] +fct_sage [(Weiser)] // HASH_VALUE 5E955E0E9EA8574F // INDEX 2714 -fct_craftsman [ (Handwerker)] +fct_craftsman [(Handwerker)] // HASH_VALUE DA64EF481C755776 // INDEX 2715 -fct_supplier [ (Lieferant)] +fct_supplier [(Zulieferer)] // HASH_VALUE 899C8D20ADDA0073 // INDEX 2716 -fct_hunter [ (Jäger)] +fct_hunter [(Jäger)] // HASH_VALUE ABF96FCBB611A3AD // INDEX 2717 -fct_hunter_chief [ (Anführer der Jäger)] +fct_hunter_chief [(Oberjäger)] // HASH_VALUE FA3A95262BD8D839 // INDEX 2718 -fct_bandit [ (Bandit)] +fct_bandit [(Bandit)] // HASH_VALUE 60588080289CF4D0 // INDEX 2719 -fct_actor [ (Schauspieler)] +fct_actor [(Schauspieler)] // HASH_VALUE 08A5DA6C5AB59A68 // INDEX 2720 -fct_actress [ (Schauspielerin)] +fct_actress [(Schauspielerin)] // HASH_VALUE 55F8874091CE1E1F // INDEX 2721 -fct_kami_master [ (Kami-Meister)] +fct_kami_master [(Kami-Meister)] // HASH_VALUE 03904976632A4872 // INDEX 2722 -fct_karavan_officer [ (Karavan-Offizier)] +fct_karavan_officer [(Karavan-Offizier)] // HASH_VALUE 9BB2924395F7AB84 // INDEX 2723 -fct_h_hairdresser [ (Männer-Frisör)] +fct_h_hairdresser [(Herren-Friseur)] // HASH_VALUE C9184F485B478339 // INDEX 2724 -fct_f_hairdresser [ (Frauen-Frisör)] +fct_f_hairdresser [(Damen-Friseurin)] // HASH_VALUE 2816633087EF3E65 // INDEX 2725 -fct_h_tattooer [ (Männer-Tätowierer)] +fct_h_tattooer [(Herren-Tätowierer)] // HASH_VALUE EA54F6BD9888C4BF // INDEX 2726 -fct_f_tattooer [ (Frauen-Tätowierer)] +fct_f_tattooer [(Damen-Tätowiererin)] // HASH_VALUE 93D5536A24E46F62 // INDEX 2727 -fct_newb_welcomer [(Vorsteher)] +fct_newb_welcomer [(Empfänger] // HASH_VALUE 69E95FCF74F097A3 // INDEX 2728 -fct_newb_a [ (Stalli - Wächter)] +fct_newb_a [(Stalli - Wächter)] // HASH_VALUE A804478F441580A7 // INDEX 2729 -fct_newb_a_chief [ (Stalli - Hauptmann der Wache)] +fct_newb_a_chief [(Stalli - Oberwächter)] // HASH_VALUE 1AA7FB2A4AB25957 // INDEX 2730 -fct_newb_b [ (Borea - Wächter)] +fct_newb_b [(Borea - Wächter)] // HASH_VALUE C9B69F6299868A5D // INDEX 2731 -fct_newb_b_chief [ (Borea - Hauptmann der Wache)] +fct_newb_b_chief [ (Borea - Oberwächter)] // HASH_VALUE 2AE74BCF7240ABBD // INDEX 2732 @@ -11613,7 +11597,7 @@ fct_newb_c [ (Nistia - Wächter)] // HASH_VALUE A5D8AF112090626F // INDEX 2733 -fct_newb_c_chief [ (Nistia - Hauptmann der Wache)] +fct_newb_c_chief [ (Nistia - Oberwächter)] // HASH_VALUE 7036401E4818DCA8 // INDEX 2734 @@ -11621,7 +11605,7 @@ fct_newb_d [ (Rosilio - Wächter)] // HASH_VALUE EB687E447404B7A6 // INDEX 2735 -fct_newb_d_chief [ (Rosilio - Hauptmann der Wache)] +fct_newb_d_chief [ (Rosilio - Oberwächter)] // HASH_VALUE DB46E335C9E27D4E // INDEX 2736 @@ -11629,15 +11613,13 @@ fct_newb_e [ (Miani - Wächter)] // HASH_VALUE 48E6C35118B6AE4C // INDEX 2737 -fct_newb_e_chief [ (Miani - Hauptmann der Wache)] - // HASH_VALUE 479857CFF54E1AF2 // INDEX 2738 fct_newb_za [ (Qai-Lo - Wächter)] // HASH_VALUE 5C94A10964BE45F9 // INDEX 2739 -fct_newb_za_chief [ (Qai-Lo - Hauptmann der Wache)] +fct_newb_za_chief [ (Qai-Lo - Oberwächter)] // HASH_VALUE CDDE76202594C7AF // INDEX 2740 @@ -11645,15 +11627,15 @@ fct_newb_zc [ (Nen-Xing - Wächter)] // HASH_VALUE 27C203D616D43375 // INDEX 2741 -fct_newb_zc_chief [ (Nen-Xing - Hauptmann der Wache)] +fct_newb_zc_chief [ (Nen-Xing - Oberwächter)] // HASH_VALUE 46A29942DF58AF8E // INDEX 2742 -fct_newb_zb [ (Sheng-Wo Wächter)] +fct_newb_zb [ (Sheng-Wo - Wächter)] // HASH_VALUE 569661FB7C68DC9A // INDEX 2743 -fct_newb_zb_chief [ (Sheng-Wo Hauptmann)] +fct_newb_zb_chief [ (Sheng-Wo - Oberwächter)] // HASH_VALUE 0723A2359E77AE95 // INDEX 2744 @@ -11661,7 +11643,7 @@ fct_newb_ze [ (Yin-Piang - Wächter)] // HASH_VALUE D6D679059A86D2AC // INDEX 2745 -fct_newb_ze_chief [ (Yin-Piang - Hauptmann der Wache)] +fct_newb_ze_chief [ (Yin-Piang - Oberwächter)] // HASH_VALUE 7054401C4ED6FAA0 // INDEX 2746 @@ -11669,7 +11651,7 @@ fct_newb_zd [ (Koi-Zun - Wächter)] // HASH_VALUE DCBE7E3C77D3F610 // INDEX 2747 -fct_newb_zd_chief [ (Koi-Zun - Hauptmann der Wache)] +fct_newb_zd_chief [ (Koi-Zun - Oberwächter)] // HASH_VALUE 9CE6D329C8C3995E // INDEX 2748 @@ -11677,7 +11659,7 @@ fct_newb_fa [ (Aegus - Wächter)] // HASH_VALUE 47C7DF571797CA52 // INDEX 2749 -fct_newb_fa_chief [ (Aegus - Hauptmann der Wache)] +fct_newb_fa_chief [ (Aegus - Oberwächter)] // HASH_VALUE 6C564030485A0C98 // INDEX 2750 @@ -11685,7 +11667,7 @@ fct_newb_fc [ (Sekovix - Wächter)] // HASH_VALUE EAF7564E7436CFA8 // INDEX 2751 -fct_newb_fc_chief [ (Sekovix - Hauptmann der Wache)] +fct_newb_fc_chief [ (Sekovix - Oberwächter)] // HASH_VALUE A5373FCFB570A7A8 // INDEX 2752 @@ -11693,7 +11675,7 @@ fct_newb_fb [ (Kaemon - Wächter)] // HASH_VALUE 24377709A2F0466E // INDEX 2753 -fct_newb_fb_chief [ (Kaemon - Hauptmann der Wache)] +fct_newb_fb_chief [ (Kaemon - Oberwächter)] // HASH_VALUE 6AD440264E38BC9A // INDEX 2754 @@ -11701,7 +11683,7 @@ fct_newb_fe [ (Galemus - Wächter)] // HASH_VALUE 6746463D7755D7A0 // INDEX 2755 -fct_newb_fe_chief [ (Galemus - Hauptmann der Wache)] +fct_newb_fe_chief [ (Galemus - Oberwächter)] // HASH_VALUE 6CF853CFB570D3C7 // INDEX 2756 @@ -11709,187 +11691,187 @@ fct_newb_fd [ (Phyxon - Wächter)] // HASH_VALUE E639C710E4F07282 // INDEX 2757 -fct_newb_fd_chief [ (Phyxon - Hauptmann der Wache)] +fct_newb_fd_chief [ (Phyxon - Oberwächter)] // HASH_VALUE 5AC3CF66535B081F // INDEX 2758 -fct_newb_ta [ (Aubermouth Wächter)] +fct_newb_ta [ (Aubermouth - Wächter)] // HASH_VALUE 9FDF862AE82A605F // INDEX 2759 -fct_newb_ta_chief [ (Aubermouth Hauptmann)] +fct_newb_ta_chief [ (Aubermouth - Oberwächter)] // HASH_VALUE C96E821A2739D0AF // INDEX 2760 -fct_newb_tb [ (Barkdell Wächter)] +fct_newb_tb [ (Barkdell - Wächter)] // HASH_VALUE 27C2E7D495555CB7 // INDEX 2761 -fct_newb_tb_chief [ (Barkdell Hauptmann)] +fct_newb_tb_chief [ (Barkdell - Oberwächter)] // HASH_VALUE CE9FB621290AC0AD // INDEX 2762 -fct_newb_tc [ (Hobwelly Wächter)] +fct_newb_tc [ (Hobwelly - Wächter)] // HASH_VALUE A60233D457D590B3 // INDEX 2763 -fct_newb_tc_chief [ (Hobwelly Hauptmann)] +fct_newb_tc_chief [ (Hobwelly - Oberwächter)] // HASH_VALUE 0EDF962C6EBAC8B3 // INDEX 2764 -fct_newb_td [ (Waverton Wächter)] +fct_newb_td [ (Waverton - Wächter)] // HASH_VALUE 281343D719277CB5 // INDEX 2765 -fct_newb_td_chief [ (Waverton Hauptmann)] +fct_newb_td_chief [ (Waverton - Oberwächter)] // HASH_VALUE 477396642B389787 // INDEX 2766 -fct_newb_te [ (Dingleton Wächter)] +fct_newb_te [ (Dingleton - Wächter)] // HASH_VALUE D6A47D189808A4AC // INDEX 2767 -fct_newb_te_chief [ (Dingleton Hauptmann)] +fct_newb_te_chief [ (Dingleton - Oberwächter)] // HASH_VALUE 2392DEAB33A0A7BB // INDEX 2768 -fct_registar [ ( Gildenbeauftragter)] +fct_registar [(Gildenschreiber)] // HASH_VALUE D92FF3609A5A5C6F // INDEX 2769 -fct_ins_f [ (Kampflehrmeister)] +fct_ins_f [(Kampflehrer)] // HASH_VALUE D79FAF619AC97C6F // INDEX 2770 -fct_ins_m [ (Magielehrmeister)] +fct_ins_m [(Magielehrer)] // HASH_VALUE AF36C2635FE2AF71 // INDEX 2771 -fct_ins_r [ (Handwerkslehrmeister)] +fct_ins_r [(Handwerkslehrer)] // HASH_VALUE 1A889F22A8B8AB22 // INDEX 2772 -fct_ins_h [ (Lehrmeister für Rohstoffgewinnung)] +fct_ins_h [(Erntelehrer)] // HASH_VALUE E6B6AF4287FA7BB7 // INDEX 2773 -fct_mf_rolemaster [ (Gildengelehrter für Nahkampf)] +fct_mf_rolemaster [(Nahkampf-Gilden-Gelehrter)] // HASH_VALUE E507AF4287FA83B9 // INDEX 2774 -fct_rf_rolemaster [ (Gildengelehrter für Fernkampf)] +fct_rf_rolemaster [(Fernkampf-Gilden-Gelehrter)] // HASH_VALUE 1830A669575AF065 // INDEX 2775 -fct_c_rolemaster [ (Gildengelehrter für Kampf)] +fct_c_rolemaster [(Kampf-Gilden-Gelehrter)] // HASH_VALUE 68C68F423E55CC60 // INDEX 2776 -fct_mh_rolemaster [ (Gildengelehrter für Heilmagie)] +fct_mh_rolemaster [(Heilmagie-Gilden-Gelehrter)] // HASH_VALUE E616CF3C3E55CC60 // INDEX 2777 -fct_mb_rolemaster [ (Gildengelehrter für Schutzmagie)] +fct_mb_rolemaster [(Schutzmagie-Gilden-Gelehrter)] // HASH_VALUE A5F7CB3B3E55B05E // INDEX 2778 -fct_ma_rolemaster [ (Gildengelehrter für Kampfmagie)] +fct_ma_rolemaster [(Kampfmagie-Gilden-Gelehrter)] // HASH_VALUE 1EC28AFC5749939F // INDEX 2779 -fct_m_rolemaster [ (Gildengelehrter für Magie)] +fct_m_rolemaster [(Magie-Gilden-Gelehrter)] // HASH_VALUE 5BF41221AAB5B882 // INDEX 2780 -fct_t_rolemaster [ (Gildengelehrter für Handel)] +fct_t_rolemaster [(Handels-Gilden-Gelehrter)] // HASH_VALUE D728866B6144C34E // INDEX 2781 -fct_h_rolemaster [ (Gildengelehrter für Rohstoffgewinnung)] +fct_h_rolemaster [(Rohstoffernte-Gilden-Gelehrter)] // HASH_VALUE 5AE0A6659ADBE072 // INDEX 2782 -fct_f_rolemaster [ (Gildengelehrter füt Handwerk)] +fct_f_rolemaster [(Handwerks-Gilden-Gelehrter)] // HASH_VALUE 08D2597826B9B462 // INDEX 2783 -fct_f_trainer [ (Kampflehrer)] +fct_f_trainer [(Kampflehrer)] // HASH_VALUE CDFEAF4F6A27DF6F // INDEX 2784 -fct_m_trainer [ (Magielehrer)] +fct_m_trainer [(Magielehrer)] // HASH_VALUE 4AA25978A559D059 // INDEX 2785 -fct_c_trainer [ (Handwerkslehrer)] +fct_c_trainer [(Handwerkslehrer)] // HASH_VALUE 8628A3749617D75A // INDEX 2786 -fct_h_trainer [ (Lehrer für Rohstoffgewinnung)] +fct_h_trainer [(Rohstofferntelehrer)] // HASH_VALUE 6B52890604FB88A5 // INDEX 2787 -fct_f_guild_trainer [ (Gildenlehrmeister für Kämpfer)] +fct_f_guild_trainer [(Kampf-Gilden-Lehrer)] // HASH_VALUE D47F2ACAE7E8A0A6 // INDEX 2788 -fct_m_guild_trainer [ (Gildenlehrmeister für Magier)] +fct_m_guild_trainer [(Magie-Gilden-Lehrer)] // HASH_VALUE EFF2890604FB7899 // INDEX 2789 -fct_c_guild_trainer [ (Gildenlehrmeister für Handwerker)] +fct_c_guild_trainer [(Handwerks-Gilden-Lehrer)] // HASH_VALUE 06F2596AEDF9D862 // INDEX 2790 -fct_h_guild_trainer [ (Gildenlehrmeister für Rohstoffgewinnung)] +fct_h_guild_trainer [(Rohstoffernte-Gilden-Lehrer)] // HASH_VALUE 92A3BB3F1CA44375 // INDEX 2791 -fct_guild_we [ (Sprecher)] +fct_guild_we [(Empfänger)] // HASH_VALUE 9990F75DD8FB5C65 // INDEX 2792 -fct_guild_rm_craft [ (Handwerks-Gelehrter)] +fct_guild_rm_craft [(Handwerks-Gelehrter)] // HASH_VALUE 57C0F75F596A706B // INDEX 2793 -fct_guild_rm_fight [ (Kampf-Gelehrter)] +fct_guild_rm_fight [(Kampf-Gelehrter)] // HASH_VALUE 5530B36059D9906B // INDEX 2794 -fct_guild_rm_magic [ (Magie-Gelehrter)] +fct_guild_rm_magic [(Magie-Gelehrter)] // HASH_VALUE 2DB8689FE4A880AB // INDEX 2795 -fct_scout [Kundschafter] +fct_scout [(Kundschafter)] // HASH_VALUE 6846DC84A887D085 // INDEX 2796 -fct_ambassador [Botschafter] +fct_ambassador [(Botschafter)] // HASH_VALUE 709CF40C6C5824BC // INDEX 2797 -fct_corporal [Korporal] +fct_corporal [(Korporal)] // HASH_VALUE EAD99091A2F96C9A // INDEX 2798 -fct_sergent [Sergeant] +fct_sergent [(Wachtmeister)] // HASH_VALUE 6AFA9C886137F07B // INDEX 2799 -fct_captain [Captain] +fct_captain [(Führungskraft)] // HASH_VALUE 6AC6AB8468E4DC72 // INDEX 2800 -fct_city_welcomer [Stadtvorsteher] +fct_city_welcomer [(Stadtempfänger)] // HASH_VALUE E618745A4858A4A0 // INDEX 2801 -fct_village_welcomer [Dorfvorsteher] +fct_village_welcomer [(Dorfempfänger)] // HASH_VALUE ECA6935855599CB4 // INDEX 2802 -fct_foreman_apprentice [Vorarbeiterlehrling] +fct_foreman_apprentice [(Lehrlings-Ausbilder)] // HASH_VALUE A769D08C61671482 // INDEX 2803 @@ -11897,15 +11879,15 @@ fct_foreman [Vorarbeiter] // HASH_VALUE 6A8AA87894458B86 // INDEX 2804 -fct_foreman_master [Vorarbeitermeister] +fct_foreman_master [Meister-Vorarbeiter] // HASH_VALUE A8C8806C26D5C489 // INDEX 2805 -fct_hawker [Straßenhändler] +fct_hawker [(Hausierer)] // HASH_VALUE 6DA8C0922B78D48E // INDEX 2806 -fct_journeyman [Tagelöhner] +fct_journeyman [(Geselle)] // HASH_VALUE D3B9D4801AD74034 // INDEX 2807 @@ -11929,84 +11911,84 @@ fct_karavan_welcomer [Karavan-Empfänger] // HASH_VALUE E788ACA123151358 // INDEX 2812 -fct_local_messenger [Stadtbote] +fct_local_messenger [(Lokaler Bote)] // HASH_VALUE 6118738930E86479 // INDEX 2813 -fct_frontiers_messenger [Grenzbote] +fct_frontiers_messenger [(Grenzbote)] // HASH_VALUE A793A038A979CCAD // INDEX 2814 -fct_outlands_messenger [Auslandsbote] +fct_outlands_messenger [(Kurier)] // HASH_VALUE 2548048CA9B908B6 // INDEX 2815 -fct_patrolman [Hüter] +fct_patrolman [(Patrouille)] // HASH_VALUE 3127F892EE38F49E // INDEX 2816 -fct_prospector [Rohstoffabbauer] +fct_prospector [(Prospektor)] // HASH_VALUE 973894986516A775 // INDEX 2817 -fct_tribe_welcomer [Stammvorsteher] +fct_tribe_welcomer [(Stammesempfänger)] // HASH_VALUE 5618A88BAC36DB70 // INDEX 2818 -fct_local_supplier [Lokaler Zwischenhändler] +fct_local_supplier [(Lokaler Lieferant)] // HASH_VALUE 9CC6DB836C6AF4A6 // INDEX 2819 -fct_frontiers_supplier [Grenzgebietszwischenhändler] +fct_frontiers_supplier [(Grenzzulieferer)] // HASH_VALUE B12ADF54A888B0AD // INDEX 2820 -fct_outlands_supplier [Ausfuhrzwischenhändler] +fct_outlands_supplier [(Fernzulieferer)] // HASH_VALUE 2C1B0C8B0C83F8B5 // INDEX 2821 -fct_outpost_steward [Außenpostenverwalter] +fct_outpost_steward [(Außenposten-Verwalter)] // HASH_VALUE E3A4FC8FAF5722B2 // INDEX 2822 -fct_outpost_steward_tribe [Außenpostenverwalter des Stammes] +fct_outpost_steward_tribe [(Stammesaußenposten-Verwalter)] // HASH_VALUE 294AD8790B64FCAA // INDEX 2823 -fct_outpost_officer [Außenpostenoffizier] +fct_outpost_officer [(Außenposten-Offizier)] // HASH_VALUE A0C4C4902B1622C0 // INDEX 2824 -fct_outpost_officer_tribe [Außenpostenoffizier des Stammes] +fct_outpost_officer_tribe [(Stammesaußenposten-Offizier)] // HASH_VALUE B053DCD1E8FD3C1C // INDEX 2825 -welcome_phrase [Ich heiße dich Willkommen, junger Homin.\n - Du hast großen Mut bewiesen und diese gefahrenvolle Reise auf Dich genommen, um unserem Ruf nach Hilfe bei der Wiedererrichtung des großen Königreiches der Matis zu folgen...{break}\n +welcome_phrase [Ich heiße dich willkommen, junger Homin.\n + Du hast großen Mut bewiesen und diese gefahrenvolle Reise auf dich genommen, um unserem Ruf nach Hilfe bei der Wiedererrichtung des großen Königreiches der Matis zu folgen...{break}\n Wir bewundern deinen Mut und heißen dich bei uns willkommen.\n Nun ist es meine Pflicht, dir mehr über diesen Ort zu berichten. Du bist auf einer kleinen Insel, die unweit des Hauptlandes der Matis liegt.\n - Es gibt fünf kleine Außenposten auf dieser Insel und Du bist in einem von diesen.\n - Jeder dieser Außenposten hat einen Missionsoffizier, Lehrer, Händler und Wachen.\n + Es gibt fünf kleine Außenposten auf dieser Insel, und du bist in einem von diesen.\n + Jeder dieser Außenposten beherbergt einen Missionsoffizier, dazu Lehrer, Händler und Wachen.\n Wir sind durch die Anwesenheit einiger Repräsentanten des Karavan gesegnet.\n - Bevor Du uns verlässt und eine der anderen Dörfer besuchst, solltest Du beginnen, deine Fertigkeiten und Ausrüstung zu verbessern.\n - Wenn Du mehr erfahren willst, solltest Du gehen und unsere Lehrer aufsuchen.\n - Sie befinden sich in diesem Gebäude und Du kannst sie finden, indem Du einfach den Aufzug direkt hinter dir benutzt.] + Bevor du uns verlässt und eines der anderen Dörfer besuchst, solltest du deine Fertigkeiten und Ausrüstung verbessern.\n + Wenn du mehr erfahren willst, solltest du gehen und unsere Lehrer aufsuchen.\n + Sie befinden sich in diesem Gebäude und du kannst zu ihnen, indem du einfach den Aufzug benutzt.] // HASH_VALUE 8D55FA233A55F62F // INDEX 2826 -msgCantUseItem [&CHK&Gegenstand kann nicht angewandt werden.] +msgCantUseItem [&CHK&Dieser Gegenstand kann nicht angewendet werden.] // HASH_VALUE FFC356400C128F30 // INDEX 2827 -msgCantBuild [&CHK&Nicht möglich, den Gegenstand zu bauen.] +msgCantBuild [&CHK&Es ist nicht möglich, diesen Gegenstand herzustellen.] // HASH_VALUE C5C3335B8582FA57 // INDEX 2828 -msgCantUseBuiltItem [&CHK&Gebauter Gegenstand ist nicht anwendbar.] +msgCantUseBuiltItem [&CHK&Dieser hergestellte Gegenstand ist nicht anwendbar.] // HASH_VALUE DBEE187F4177BB42 // INDEX 2829 -msgCantPutItemInBag [&CHK&Gegenstand kann nicht verstaut werden. Tasche ist voll.] +msgCantPutItemInBag [&CHK&Dieser Gegenstand kann nicht verstaut werden: deine Tasche ist voll.] // HASH_VALUE 1FDA9BE2E90C44B0 // INDEX 2830 @@ -12022,23 +12004,23 @@ msgCantFightRide [&CHK&Du kannst nicht während des Reitens kämpfen.] // HASH_VALUE 13A3D3621475754B // INDEX 2833 -msgUserIsRunning [&SYS&Du läufst.] +msgUserIsRunning [&SYS&Du bist jetzt im Laufmodus.] // HASH_VALUE 13A3C7600FC5754B // INDEX 2834 -msgUserIsWalking [&SYS&Du gehst.] +msgUserIsWalking [&SYS&Du bist jetzt im Gehen-Modus.] // HASH_VALUE 88A32B9E3798F085 // INDEX 2835 -msgUserModeParry [&CHKCB&Du wirst versuchen, Nahkampfangriffe abzuwehren.] +msgUserModeParry [&CHKCB&Du wirst jetzt versuchen, Nahkampfangriffe abzuwehren.] // HASH_VALUE 3AB415FF4D287548 // INDEX 2836 -msgUserModeDodge [&CHKCB&Du wirst versuchen, Nahkampfangriffen auszuweichen.] +msgUserModeDodge [&CHKCB&Du wirst jetzt versuchen, Nahkampfangriffen auszuweichen.] // HASH_VALUE C175BF678BE34219 // INDEX 2837 -msgUserIsSitting [&SYS&Du sitzt.] +msgUserIsSitting [&SYS&Du setzt dich.] // HASH_VALUE D7A4F330C4576BFA // INDEX 2838 @@ -12046,19 +12028,19 @@ msgUserIsStanding [&SYS&Du stehst auf.] // HASH_VALUE 312F1AA8FDEFD53C // INDEX 2839 -msgPermanentlyBanned [&BC&Dein Ryzom Account wurde permanent gesperrt.] +msgPermanentlyBanned [&BC&Dein Ryzom-Account wurde permanent gesperrt.] // HASH_VALUE 3911721FF5C10731 // INDEX 2840 -uiCantUseItem [Du hast nicht die Fähigkeit, es anzuwenden.] +uiCantUseItem [Du hast nicht die Fähigkeit, das anzuwenden.] // HASH_VALUE 45B15625FAA23625 // INDEX 2841 -uiCantUseBuiltItem [DU KANNST DAS GEBAUTE OBJEKT NICHT BENUTZEN.] +uiCantUseBuiltItem [Du kannst das hergestellte Objekt nicht benutzen.] // HASH_VALUE A2506C1850F0A23A // INDEX 2842 -uiCantBuildItem [DU KANNST DAS OBJEKT NICHT BAUEN.] +uiCantBuildItem [Du kannst das Objekt nicht herstellen.] // HASH_VALUE C7C5908EE2C4720F // INDEX 2843 @@ -12074,7 +12056,7 @@ uiBotChatFactionPointPrice [. Punkte: ] // HASH_VALUE 6698829CC29474AE // INDEX 2846 -uiBotChatRetirePrice [ Verkaufspreis: ] +uiBotChatRetirePrice [. Verkaufspreis: ] // HASH_VALUE 681400B8208C54B4 // INDEX 2847 @@ -12094,7 +12076,7 @@ uiBotChatResaleTimeLeft [Verbleibende Verkaufszeit: Tag %d, Stunde %h.] // HASH_VALUE 06A4172916D08F05 // INDEX 2851 -uiBotChatNPCTag [(NPC Gegenstand)] +uiBotChatNPCTag [(NPC-Gegenstand)] // HASH_VALUE 6C18544C208C2494 // INDEX 2852 @@ -12106,11 +12088,11 @@ uiBotChatRefresh [Aktualisieren] // HASH_VALUE C15EC7DCAF7E2C87 // INDEX 2854 -uittBotChatRefresh [ @{6F6F}Aktualisiert@{FFFF} die Liste der zu verkaufenden Gegenstände. Nützlich um Gegenstände einzusehen, die Du gerade verkauft hast.] +uittBotChatRefresh [ @{6F6F}Aktualisiert@{FFFF} die Liste der zu verkaufenden Gegenstände. Nützlich, um Gegenstände einzusehen, die du gerade verkauft hast.] // HASH_VALUE DBE3D7319D218622 // INDEX 2855 -uiBotChatItem [Objekt: ] +uiBotChatItem [Gegenstand: ] // HASH_VALUE D5F4435F97D33E8B // INDEX 2856 @@ -12130,11 +12112,11 @@ uiBotChatSkill [Fähigkeit: ] // HASH_VALUE ADAA68F59C1A6E57 // INDEX 2860 -uiConfirmCloseBCReward [Du hast nicht alle Objekte aufgenommen, trotzdem schließen?] +uiConfirmCloseBCReward [Du hast nicht alles genommen! Trotzdem schließen?] // HASH_VALUE 59C8DC83EF5544B3 // INDEX 2861 -FlowerMaster [Blumenmeister] +FlowerMaster [Blumen-Meister] // HASH_VALUE 19C9A478D5475375 // INDEX 2862 @@ -12154,19 +12136,19 @@ uiShout [RUFEN] // HASH_VALUE 4EE1131549BE1308 // INDEX 2866 -uimToggleChatEBVis [ANZEIGEN/VERBERGEN DER CHATEINGÄNGE] +uimToggleChatEBVis [ANZEIGEN/VERBERGEN DES CHATS] // HASH_VALUE 74AF7A81D97452AE // INDEX 2867 -uiRenamePartyChat [Bitte ändere den Namen dieses anonymen Gruppenchats mit /name .] +uiRenamePartyChat [Bitte ändere den Namen dieses anonymen Gruppenchats mit dem Befehl /name .] // HASH_VALUE 579BABAAD536705D // INDEX 2868 -uiAnomymousPCAlreadyCreated [Ein anonymer Gruppenchat wurde bereits geöffnet. Bitte ändere den Name mit /name bevor Du einen neuen öffnest.] +uiAnomymousPCAlreadyCreated [Ein anonymer Gruppenchat wurde bereits geöffnet. Bitte ändere den Namen mit dem Befehl /name , bevor du einen neuen öffnest.] // HASH_VALUE 3E013627BDCA4051 // INDEX 2869 -uiContactAlreadyInList [Kann den Kontakt nicht hinzufügen: Er ist bereits in deiner Liste.] +uiContactAlreadyInList [Der Kontakt ist bereits in deiner Liste und wird nicht erneut hinzugefügt.] // HASH_VALUE A1AEFE5B1DBBCB86 // INDEX 2870 @@ -12174,7 +12156,7 @@ uiInvalidPartyChatName [Der Name dieses Gruppenchats existiert bereits oder ist // HASH_VALUE 1E3F32C3181647B4 // INDEX 2871 -uiPartyChatAlreadyCreated [Es gibt bereits einen namenlosen Gruppenchat. Bitte ändere ihn mit /name.] +uiPartyChatAlreadyCreated [Es gibt bereits einen namenlosen Gruppenchat. Bitte ändere ihn mit dem Befehl /name .] // HASH_VALUE CAF93F8CDAA55B8C // INDEX 2872 @@ -12182,31 +12164,31 @@ uiBadPartyChatName [Unzulässiger Gruppenchatname.] // HASH_VALUE 63B6DC3458C4E7BB // INDEX 2873 -uiCantRemovePartyChat [Kann Gruppenchat nicht löschen.] +uiCantRemovePartyChat [Der Gruppenchat konnte nicht gelöscht werden.] // HASH_VALUE 2D617206A007A310 // INDEX 2874 -uiNoNewPartyChatCReated [: Es wurde kein neuer Gruppenchat geöffnet.] +uiNoNewPartyChatCReated [: es konnte kein neuer Gruppenchat erstellt werden.] // HASH_VALUE AB00A28AF4659B2E // INDEX 2875 -uiPartyChatCmdHelp [ Es wird noch ein Argument benötigt: Name der Gruppe.] +uiPartyChatCmdHelp [ Es wird noch eine Eingabe benötigt: Name des Gruppenchats.] // HASH_VALUE 9C6A341BF378FD16 // INDEX 2876 -uiNameCmd [ Es wird noch ein Argument benötigt: Name des neuen Chats der geöffnet werden soll.] +uiNameCmd [ Es wird noch eine Eingabe benötigt: Name des neuen Chats, der erstellt werden soll.] // HASH_VALUE DCC5015043786F31 // INDEX 2877 -uiRemovePartyChatCmd [ Es wird noch ein Argument benötigt: Name des Gruppenchats der gelöscht werden soll.] +uiRemovePartyChatCmd [ es wird noch eine Eingabe benötigt: Name des Gruppenchats, der gelöscht werden soll.] // HASH_VALUE 4130B94CC59767F3 // INDEX 2878 -uiAddPartyChatCmd [ Es wird noch ein Argument benötigt: Name des Gruppenchats, dem Du beitreten möchtest.] +uiAddPartyChatCmd [ es wird noch eine Eingabe benötigt: Name des Gruppenchats, dem du beitreten möchtest.] // HASH_VALUE 85106EC49E173C2A // INDEX 2879 -uiInviteCmd [ Es werden noch zwei Argumente benötigt: .] +uiInviteCmd [ es werden noch zwei Eingaben benötigt: und .] // HASH_VALUE 68D8F43068D8F430 // INDEX 2880 @@ -12222,7 +12204,7 @@ uiRestore [Wiederherstellen] // HASH_VALUE 24E2D7E89F86DC5A // INDEX 2883 -uiAddMacro [Erstelle neues Makro: ] +uiAddMacro [Erstelle ein neues Makro: ] // HASH_VALUE D1A754921F221749 // INDEX 2884 @@ -12254,7 +12236,7 @@ uiMacroCom [BEFEHLE] // HASH_VALUE 7B90FF15C7FE9422 // INDEX 2891 -uiMacroAddCom [BEFEHLE HINZUFÜGEN] +uiMacroAddCom [BEFEHL HINZUFÜGEN] // HASH_VALUE 7B90FF15C7FE9422 // INDEX 2892 @@ -12262,7 +12244,7 @@ uiMacroAddCmd [BEFEHL HINZUFÜGEN] // HASH_VALUE CA50172746A07002 // INDEX 2893 -uiIconCreation [ICON ERSTELLUNG] +uiIconCreation [ICON ERSTELLEN] // HASH_VALUE 8830B4260BC08C1A // INDEX 2894 @@ -12294,7 +12276,7 @@ uiAddKeys [Bestimme neue Taste: ] // HASH_VALUE C6A2742E45F1BC29 // INDEX 2901 -uiJauges [CHARDATEN] +uiJauges [WERTE-ANZEIGE] // HASH_VALUE 4C52AC444652AC32 // INDEX 2902 @@ -12318,7 +12300,7 @@ uiTargetTitle [ZIEL] // HASH_VALUE 27E9787FA607C490 // INDEX 2907 -uiTarget [ZIEL] +uiTarget [Ziel] // HASH_VALUE 88C1902A3A9EEBF8 // INDEX 2908 @@ -12330,7 +12312,7 @@ uiContactListTitle [KONTAKTE] // HASH_VALUE 0B62D02D40411433 // INDEX 2910 -uiWinDisplay [FENSTERANZEIGE] +uiWinDisplay [FENSTER-ANZEIGE] // HASH_VALUE 895E94333E311F1D // INDEX 2911 @@ -12366,31 +12348,31 @@ uiAggro [AGGRESSIVITÄT] // HASH_VALUE 73A634607114247F // INDEX 2919 -uiFrozenSkill [EINFRIEREN] +uiFrozenSkill [EINGEFROREN] // HASH_VALUE A7F65A607EA47B98 // INDEX 2920 -uiInitHelp1 [Mit diesen Knöpfen erreichst Du deine 4 virtuellen Arbeitsflächen.] +uiInitHelp1 [Mit diesen Buttons kannst du zwischen 4 alternativen Spiel-Oberflächen-Darstellungen (UIs) wechseln.] // HASH_VALUE C494ACDDCE7EE794 // INDEX 2921 -uiInitHelp2 [Du kannst zwischen ihnen wechseln, indem Du diese Knöpfe oder die entsprechenden Tastaturkombinationen F1, F2, F3 und F4 nutzt (Anfangseinstellung).] +uiInitHelp2 [Du kannst zwischen alternativen UIs wechseln, indem du die Buttons oder die entsprechenden Tastaturkombinationen F1, F2, F3 und F4 benutzt (diese Standard-Tastenbelegung dafür ist individualisierbar).] // HASH_VALUE B0921BE50D3DDE9C // INDEX 2922 -uiInitHelp3 [Hältst Du den Knopf etwas länger gedrückt, wird dir das Hauptfenster angezeigt, in welchem es dir erlaubt ist Fenster auf der aktuellen Arbeitsfläche anzuzeigen/zu verstecken.] +uiInitHelp3 [Hältst du den Button etwas länger gedrückt, wird dir das Hauptfenster angezeigt, in welchem es dir möglich ist, einzelne Fenster in der aktuellen UI anzuzeigen oder zu verstecken.] // HASH_VALUE 39ACC5456D3C6BC1 // INDEX 2923 -uiInitHelp4 [Du kannst auch das Tastaturkürzel für die jeweilige Arbeitsfläche nutzen, um dir das Hauptmenü anzuzeigen und die Arbeitsfläche unterdrücken, während Du deine Änderungen vornimmst.] +uiInitHelp4 [Du kannst auch das Tastaturkürzel für die jeweilige UI nutzen, um das Hauptmenü anzuzeigen und die gesamte UI zu unterdrücken, während du deine Änderungen vornimmst.] // HASH_VALUE 17D66E96B10293C6 // INDEX 2924 -uiInitHelp5 [Oder Du benutzt den kleinen Schieberegler.] +uiInitHelp5 [Oder du benutzt den kleinen Schieberegler.] // HASH_VALUE D7EB9100DC7B5BD4 // INDEX 2925 -uiInitHelp6 [Nun kannst Du deine 4 Arbeitsflächen anpassen.] +uiInitHelp6 [Nun kannst du deine 4 User-Oberflächen anpassen.] // HASH_VALUE 8EE3BC39CBA3F82E // INDEX 2926 @@ -12602,7 +12584,7 @@ uiLocDest5Zorai [YIN-PIANG] // HASH_VALUE 46C2B42F0AD2C01E // INDEX 2978 -uiBotChatTrade [TRADE] +uiBotChatTrade [HANDEL] // HASH_VALUE 4E10ACC6C6EC744C // INDEX 2979 @@ -12610,7 +12592,7 @@ uiBotMissionChoice [MISSION WÄHLEN] // HASH_VALUE 7B60EF008C420004 // INDEX 2980 -uiBotChatOffer [MACHE EIN ANGEBOT] +uiBotChatOffer [MACH DEIN ANGEBOT] // HASH_VALUE 0234404D03E43C4D // INDEX 2981 @@ -12618,7 +12600,7 @@ uiBotChatReward [BELOHNUNG] // HASH_VALUE C2AE4C03832E2831 // INDEX 2982 -uiBotManageJob [MEISTERE DEN AUFTRAG] +uiBotManageJob [ORGANISIERE DEN AUFTRAG] // HASH_VALUE D7DA0861C574E469 // INDEX 2983 @@ -12630,7 +12612,7 @@ uiBotChatSelectJob [WÄHLE EINEN AUFTRAG ZUR AKTIVIERUNG] // HASH_VALUE 73A634607114247F // INDEX 2985 -uiJobFreezeTime [Einfrieren] +uiJobFreezeTime [Eingefroren] // HASH_VALUE DCF3184561338491 // INDEX 2986 @@ -12646,7 +12628,7 @@ uiConfirmSwapJob [Dieser Auftrag soll getauscht werden?] // HASH_VALUE DB123FD2AD2687D6 // INDEX 2989 -uiEmptyJob [- Kein Auftrag aktiv -] +uiEmptyJob [- kein Auftrag aktiv -] // HASH_VALUE 9A74CC6F132098A0 // INDEX 2990 @@ -12654,7 +12636,7 @@ uiBotCreateGuild [Gründe eine Gilde] // HASH_VALUE 4C1054504C105450 // INDEX 2991 -uiTell [ANSPRECHEN] +uiTell [ANFLÜSTERN] // HASH_VALUE D6D28F5A4D442F0C // INDEX 2992 @@ -12674,11 +12656,11 @@ uiInvertNames [Namen umschalten] // HASH_VALUE 738710663076287B // INDEX 2996 -uiPlayer [Spieler] +uiPlayer [Werte-Anzeige] // HASH_VALUE D36A9C4B6C15C7A4 // INDEX 2997 -uiBonusMalus [Bonus/Malus] +uiBonusMalus [Bonus / Malus] // HASH_VALUE EB27288CA3A73480 // INDEX 2998 @@ -12702,7 +12684,7 @@ uiTaskbar [Taskleiste] // HASH_VALUE 6E75B78D0F95A822 // INDEX 3003 -uiShowOnPress [Drücke um anzuzeigen] +uiShowOnPress [Klicke für Anzeige] // HASH_VALUE 8E253FF3DA307775 // INDEX 3004 @@ -12734,15 +12716,15 @@ uiLog [Log an/aus] // HASH_VALUE C2B80C8260EC9A9A // INDEX 3011 -uiLogTurnedOn [Log ist AN] +uiLogTurnedOn [Chat-Log ist jetzt AN] // HASH_VALUE D5798C7B892F8352 // INDEX 3012 -uiLogTurnedOff [Log ist AUS] +uiLogTurnedOff [Chat-Log ist jetzt AUS] // HASH_VALUE 20F54B2D593182F9 // INDEX 3013 -uiTalkLeave [REDEN / VERLASSEN] +uiTalkLeave [Reden / Verlassen] // HASH_VALUE 28F6D4546B54E872 // INDEX 3014 @@ -12754,15 +12736,15 @@ uiMagic [Magie] // HASH_VALUE A7C70F63EAD50A8F // INDEX 3016 -uiFaberCreate [Handwerker Erschaffung] +uiFaberCreate [Handwerker für Produktion] // HASH_VALUE A7070F6EA7060A9A // INDEX 3017 -uiFaberRepair [Handwerker Reparatur] +uiFaberRepair [Handwerker für Reparatur] // HASH_VALUE 64572F6464562A90 // INDEX 3018 -uiFaberRefine [Handwerker Veredelung] +uiFaberRefine [Handwerker für Veredelung] // HASH_VALUE 6C58F40C64D82494 // INDEX 3019 @@ -12782,7 +12764,7 @@ uiStatus [Status] // HASH_VALUE EC27D87BABC6F894 // INDEX 3023 -uiSkills [Fähigkeiten] +uiSkills [Aktionen] // HASH_VALUE 70DC94347098F4A4 // INDEX 3024 @@ -12790,11 +12772,11 @@ uiJournal [Missionen] // HASH_VALUE 5D07F0822A39CCA0 // INDEX 3025 -uiAbilities [Erlerntes] +uiAbilities [Fähigkeiten] // HASH_VALUE A03AF08DEF48D8C6 // INDEX 3026 -uiProgression [Fortschritt] +uiProgression [Identität] // HASH_VALUE 701C544C701C544C // INDEX 3027 @@ -12850,7 +12832,7 @@ uiBag4 [Tasche 4] // HASH_VALUE 1BD84873A3457491 // INDEX 3040 -uiKit [Kit] +uiKit [Bausatz] // HASH_VALUE 6E074C942238548F // INDEX 3041 @@ -12862,7 +12844,7 @@ uiJewelry [Schmuck] // HASH_VALUE 6DA7CC79EBA51C9E // INDEX 3043 -uiMemory [Speicher] +uiMemory [Erinnerung] // HASH_VALUE 28F6D4546B54E872 // INDEX 3044 @@ -12882,7 +12864,7 @@ uiMainChat [Hauptchat] // HASH_VALUE E717CFA1A2646464 // INDEX 3048 -uiSystemInfo [System Info] +uiSystemInfo [System-Info] // HASH_VALUE 248798130F85DCC4 // INDEX 3049 @@ -12890,11 +12872,11 @@ uiAroundMe [Umgebung] // HASH_VALUE 1E25A87BD7E7A45D // INDEX 3050 -uiTellWinAct [Ansprechfenster] +uiTellWinAct [Flüstern-/Tellfenster] // HASH_VALUE 21F83C914A92C753 // INDEX 3051 -uiTeamChat [Gruppen Chat] +uiTeamChat [Gruppen-Chat] // HASH_VALUE 6909C46F6B06949A // INDEX 3052 @@ -12926,11 +12908,11 @@ uiGlobalSettings [Konfiguration] // HASH_VALUE DC65D87AD7C76461 // INDEX 3059 -uiNextSheath [Nächste Hülle] +uiNextSheath [Nächste Umhüllung] // HASH_VALUE A8994C35941904AD // INDEX 3060 -uiPrevSheath [Vorherige Hülle] +uiPrevSheath [Vorherige Umhüllung] // HASH_VALUE 649CF434649CF434 // INDEX 3061 @@ -12938,11 +12920,11 @@ uiMovement [Bewegen] // HASH_VALUE EADBE89EE5C7307D // INDEX 3062 -uiMoveForward [Vorwärtsbewegen] +uiMoveForward [Vorwärts bewegen] // HASH_VALUE 68D81408649C14DC // INDEX 3063 -uiMoveBackward [Rückwärtsbewegen] +uiMoveBackward [Rückwärts bewegen] // HASH_VALUE A90A90930D023375 // INDEX 3064 @@ -12954,19 +12936,19 @@ uiMoveTurnRight [Rechtsdrehung] // HASH_VALUE DE986F8F62A36060 // INDEX 3066 -uiMoveStrafeLeft [nach Links bewegen] +uiMoveStrafeLeft [nach links bewegen] // HASH_VALUE 61D6D4759DB19888 // INDEX 3067 -uiMoveStrafeRight [nach Rechts bewegen] +uiMoveStrafeRight [nach rechts bewegen] // HASH_VALUE 5303A795A3B70431 // INDEX 3068 -uiMoveLookUp [nach Oben schauen] +uiMoveLookUp [nach oben schauen] // HASH_VALUE A39684A0D1F2FB69 // INDEX 3069 -uiMoveLookDown [nach Unten schauen] +uiMoveLookDown [nach onten schauen] // HASH_VALUE 3CC62B48DD82B359 // INDEX 3070 @@ -12990,19 +12972,19 @@ uiToggleCamera [Kamerasicht umschalten] // HASH_VALUE 8B235C8E26F81F44 // INDEX 3075 -uiNoTarget [Kein Ziel] +uiNoTarget [kein Ziel] // HASH_VALUE E8FA0A846C92ECB2 // INDEX 3076 -uiTargetCmd [Markiere ein Wesen:] +uiTargetCmd [Visiere ein Wesen an] // HASH_VALUE 6E0914F3103796B9 // INDEX 3077 -uiTargetCmdEntity [Name des zu markierenden Wesens:] +uiTargetCmdEntity [Name des anzuvisierenden Wesens] // HASH_VALUE 2B29F0307EE6BC9A // INDEX 3078 -uiTargetTeammateCmd [Zielen auf Teamkollegen #] +uiTargetTeammateCmd [Schau zu Teamkollege #] // HASH_VALUE 29E6FC6EEEF4F085 // INDEX 3079 @@ -13010,63 +12992,63 @@ uiTargetTeammateCmdI [Nummer] // HASH_VALUE 42A740FFAFE6FCAA // INDEX 3080 -uiAssistCmd [Markiere das Ziel eines Wesens] +uiAssistCmd [Visiere das Ziel des aktuellen Ziels an] // HASH_VALUE AE2AC8F31037CEBB // INDEX 3081 -uiAssistCmdEntity [Name des zu assistierenden Wesens.] +uiAssistCmdEntity [Name des Wesens, dem assistiert wird] // HASH_VALUE D6625803A8C6E8AF // INDEX 3082 -uiAssistTargetCmd [Markiere das Ziel des derzeitig markierten Ziels] +uiAssistTargetCmd [Visiere das Ziel des ausgewählten Ziels an] // HASH_VALUE E692146868D074C6 // INDEX 3083 -uiTargetErrorCmd [Wesen nicht gefunden.] +uiTargetErrorCmd [Wesen nicht gefunden] // HASH_VALUE 5B36487A56279C4B // INDEX 3084 -uiSelfTarget [Selbstmarkierung] +uiSelfTarget [sich selbst anvisieren] // HASH_VALUE 1437F48B9A94408A // INDEX 3085 -uiToggleCombat [Kampf umschalten] +uiToggleCombat [Kampfmodus ein-/ausschalten] // HASH_VALUE 52489FA01FB5D48B // INDEX 3086 -uiSetDesktop [Arbeitsfläche einrichten] +uiSetDesktop [Oberfläche (UI) einrichten] // HASH_VALUE 711AB86450AA2CD4 // INDEX 3087 -uiCopyToDesktop [Kopiere die derzeitige Arbeitsfläche zur Arbeitsfläche] +uiCopyToDesktop [Kopiere aktuelle Oberfläche zur Oberfläche] // HASH_VALUE E9AAA07298669B8D // INDEX 3088 -uiDesktopNumber [Nummer der Arbeitsfläche] +uiDesktopNumber [Nummer der Oberfläche] // HASH_VALUE C919D86B5D29A46C // INDEX 3089 -uiRunShortcut [Führe Tastaturkürzel aus] +uiRunShortcut [Führe Schnelltaste aus] // HASH_VALUE AC4A6C2913FAC09E // INDEX 3090 -uiShortcutNumber [Nummer des Tastaturkürzels] +uiShortcutNumber [Nummer der Schnelltaste] // HASH_VALUE 644957718CE6209A // INDEX 3091 -uiSelectShortcutBar [Wähle Tastaturkürzelbalken] +uiSelectShortcutBar [Wähle Schnelltastenbalken] // HASH_VALUE 147A14389DFC083E // INDEX 3092 -uiShortcutBarNumber [Nummer des Tastaturkürzelbalkens] +uiShortcutBarNumber [Nummer des Schnelltastenbalkens] // HASH_VALUE 6889B89AE6E9AC99 // INDEX 3093 -uiScreenShot [Screenshot TGA] +uiScreenShot [Bildschirmfoto in TGA] // HASH_VALUE 57841C546889047B // INDEX 3094 -uiScreenShotJPG [Screenshot JPG] +uiScreenShotJPG [Bildschirmfoto in JPG] // HASH_VALUE 74DC545074DC5450 // INDEX 3095 @@ -13078,15 +13060,15 @@ uiLight [Licht] // HASH_VALUE ABE76848A5B2283E // INDEX 3097 -uiFreeMouse [Freie Maus] +uiFreeMouse [freie Maus] // HASH_VALUE A9070F3B21451361 // INDEX 3098 -uiCloseHelp [Schließe jegliche Hilfe] +uiCloseHelp [schließe alle Hilfe] // HASH_VALUE 93A810995EB5EC4B // INDEX 3099 -uiToggleMovieRecorder [Filmaufname umschalten] +uiToggleMovieRecorder [Filmaufname ein-/ausschalten] // HASH_VALUE E2A6E8741AA13883 // INDEX 3100 @@ -13098,15 +13080,15 @@ uiSaveMovie [Film speichern] // HASH_VALUE 2BA95B8969E746B0 // INDEX 3102 -uiReplyTeller [Antworte dem Ansprecher] +uiReplyTeller [antworte dem Sprecher] // HASH_VALUE E8375B8BD50877A7 // INDEX 3103 -uiReplyTellerOnce [Antworte der Ansprache] +uiReplyTellerOnce [antworte dem Flüstern] // HASH_VALUE 0E1FA83BBFE124FD // INDEX 3104 -uiTellWindow [Ansprachefenster] +uiTellWindow [Flüster-/Tell-Fenster] // HASH_VALUE 07AE900FC85F7C34 // INDEX 3105 @@ -13134,7 +13116,7 @@ uiCameraTurnRight [Kamerarotation rechts] // HASH_VALUE 306B45B16DF488CA // INDEX 3111 -uiCameraTurnCenter [Standardkameraposition] +uiCameraTurnCenter [Standard-Kameraposition hinten] // HASH_VALUE 2CA4D39D65B41417 // INDEX 3112 @@ -13142,7 +13124,7 @@ uiCycleTell [Letzte Kontakte durchblättern] // HASH_VALUE 81C8A43925626C7A // INDEX 3113 -uiTellCmd [Ansprechnachricht an einen Spieler senden] +uiTellCmd [einen Spieler anflüstern/antellen] // HASH_VALUE 2F87E87D2E27E88F // INDEX 3114 @@ -13154,11 +13136,11 @@ uiTellCmdMsg [Nachricht] // HASH_VALUE 6CA69F2A1A48B6A8 // INDEX 3116 -uiEnterTellCmd [Per Ansprache mit einem Spieler reden.] +uiEnterTellCmd [Flüsternd mit einem Spieler reden] // HASH_VALUE 5539D484CDD40467 // INDEX 3117 -uiTalkCmd [Mit jedem reden] +uiTalkCmd [für alle hörbar reden] // HASH_VALUE ECA9A7F2A6195B10 // INDEX 3118 @@ -13178,35 +13160,35 @@ uiTalkCmdModeShout [Rufen] // HASH_VALUE 6C5854506C585450 // INDEX 3122 -uiTalkCmdModeTeam [Gruppe] +uiTalkCmdModeTeam [Gruppenchat] // HASH_VALUE EB27288CA3A73480 // INDEX 3123 -uiTalkCmdModeGuild [Gilde] +uiTalkCmdModeGuild [Gildenchat] // HASH_VALUE A807887AA7B6AC97 // INDEX 3124 -uiTalkCmdModeRegion [Region] +uiTalkCmdModeRegion [Regions-Chat] // HASH_VALUE A7FB9466A5CB948F // INDEX 3125 -uiTalkCmdModeCivilisation [Zivilisation] +uiTalkCmdModeCivilisation [Zivilisations-Chat] // HASH_VALUE A65994AEEEFA08B2 // INDEX 3126 -uiTalkCmdModeTerritory [Territorium] +uiTalkCmdModeTerritory [Territoriums-Chat] // HASH_VALUE 7458E45464DC2494 // INDEX 3127 -uiTalkCmdModeUniverse [Universum] +uiTalkCmdModeUniverse [Universums-Chat] // HASH_VALUE 66FAB49864B7FC7A // INDEX 3128 -uiTalkCmdMsg [Nachricht] +uiTalkCmdMsg [Nachricht senden] // HASH_VALUE 2CB3D832864946B2 // INDEX 3129 -uiEnterTalkCmd [In den Sprachmodus gehen.] +uiEnterTalkCmd [In den Sprachmodus gehen] // HASH_VALUE 41F97062092C55F4 // INDEX 3130 @@ -13214,7 +13196,7 @@ uiEditExpandOrCycleTell [Letzten Befehl erweitern / Kontakte durchblättern] // HASH_VALUE 578F4F0AEE340406 // INDEX 3131 -uiDragToInventory [Lege per Drag'n Drop Objekte in dein Inventar.] +uiDragToInventory [Leg Objekte per Drag & Drop in dein Inventar.] // HASH_VALUE AD99AC92E328ACB0 // INDEX 3132 @@ -13222,7 +13204,7 @@ uiWindows [Fenster] // HASH_VALUE 6C58043C6C58043C // INDEX 3133 -uiOpenWindow [Öffnen] +uiOpenWindow [öffnen] // HASH_VALUE 6458143864581438 // INDEX 3134 @@ -13230,7 +13212,7 @@ uiWindowName [Name] // HASH_VALUE 87C6306B1D12FC4A // INDEX 3135 -uiCloseWindow [Schließen] +uiCloseWindow [schließen] // HASH_VALUE 5FE5FB2A9491F6FB // INDEX 3136 @@ -13242,27 +13224,27 @@ uiPopupWindow [Fenster öffnen] // HASH_VALUE EC98789665E85C97 // INDEX 3138 -uiPopinWindow [Popin] +uiPopinWindow [Pop-in] // HASH_VALUE 5D15F47E48E5D76E // INDEX 3139 -uiTogglePopupPopinWindow [Popup / Popin] +uiTogglePopupPopinWindow [Pop up / Pop-in umschalten] // HASH_VALUE E8982C846052A4C0 // INDEX 3140 -uiToggleInventory [Inventar umschalten] +uiToggleInventory [Inventar ein-/ausschalten] // HASH_VALUE D67740F4A74949CB // INDEX 3141 -uiCantAddYourSelfInContactList [Du kannst Dich nicht selbst auf Die Kontaktliste setzen.] +uiCantAddYourSelfInContactList [Du kannst dich nicht selbst auf deine Kontaktliste setzen] // HASH_VALUE FED1A006BE4F7621 // INDEX 3142 -uimGcmAddToFriendList [Zur Freundesliste hinzufügen] +uimGcmAddToFriendList [zur Freundesliste hinzufügen] // HASH_VALUE 0211F31D4D3E1408 // INDEX 3143 -uiJoinTeamProposal [TEAMEINLADUNG ANNEHMEN] +uiJoinTeamProposal [Team-Einladung annehmen] // HASH_VALUE C2B2DC544C104A32 // INDEX 3144 @@ -13274,19 +13256,19 @@ uiCreateNewPartyChat [EIGENEN GRUPPENCHAT ÖFFNEN] // HASH_VALUE 4C50840C38105438 // INDEX 3146 -uiChannel [CHAT:] +uiChannel [CHAT: ] // HASH_VALUE 205CF4E46C1854D0 // INDEX 3147 -youTell [Du sagst] +youTell [Du flüsterst] // HASH_VALUE ACBAF8D11D96AFB0 // INDEX 3148 -tellsYou [sagt Dir] +tellsYou [flüstert Dir] // HASH_VALUE 2629789252E56B6A // INDEX 3149 -uiUserChat [User Chat] +uiUserChat [User-Chat] // HASH_VALUE 0B32468E7A0E5086 // INDEX 3150 @@ -13294,7 +13276,7 @@ uiWindowDontAcceptPeopleAsTarget [Fenster akzeptiert keine Spielernamen als Ziel // HASH_VALUE 2F588D37A0728ABB // INDEX 3151 -uiWindowWantSayOrShout [Du kannst in diesem Fenster nur etwas "sagen" oder "rufen".] +uiWindowWantSayOrShout [Du kannst in diesem Fenster nur etwas "sagen" oder "rufen"] // HASH_VALUE 2CB9580BC545175C // INDEX 3152 @@ -13306,7 +13288,7 @@ uimwChat [HAUPTCHAT] // HASH_VALUE 09F20444412EEBF3 // INDEX 3154 -uimwTeam [TEAM LISTE] +uimwTeam [TEAMLISTE] // HASH_VALUE 7458E45464DC2494 // INDEX 3155 @@ -13328,26 +13310,26 @@ uiPeopleAddContact [Kontakt zur Liste hinzufügen] // INDEX 3159 uiCongifExplanation [Wähle die Konfiguration in der Baumstruktur auf der linken Seite\n \n - -Die Auflösung wird nur verändert, wenn Du auf 'Anwenden' klickst.\n - -Texturdetails werden erst geändert, wenn Du das Spiel das nächste Mal startest.\n + -Die Auflösung wird erst verändert, wenn du auf 'Anwenden' klickst.\n + -Texturdetails werden erst geändert, wenn du das Spiel das nächste Mal startest.\n \n - -Der "ABBRUCH" und "SCHLIEßEN" Knopf wird nur Veränderungen abbrechen, die nicht Angewendet' wurden.] + -"ABBRUCH" und "SCHLIEßEN"-Buttons werden nur Veränderungen abbrechen, die nicht mit 'Anwenden' gespeichert wurden.] // HASH_VALUE 6458C4186458C418 // INDEX 3160 -uiGuildBlason [Flagge] +uiGuildBlason [Gildensymbol] // HASH_VALUE 6458143864581438 // INDEX 3161 -uiGuildName [Name] +uiGuildName [Gildenname] // HASH_VALUE 9D8BA089ED17FCB6 // INDEX 3162 -uiGuildDescription [Beschreibung] +uiGuildDescription [Gilden-Beschreibung] // HASH_VALUE D5358054D8C61C58 // INDEX 3163 -uiGuildBlasonDesign [Flaggen-Design] +uiGuildBlasonDesign [Gildensymbol-Design] // HASH_VALUE 68D8140868D81408 // INDEX 3164 @@ -13379,11 +13361,11 @@ uiGuildBlasonC2 [Hintergrundfarbe 2] // HASH_VALUE 1398E4361C42C837 // INDEX 3171 -uittGuildFlagBack [Hintergrundsymbol der Flagge bestimmen] +uittGuildFlagBack [Hintergrundsymbol bestimmen] // HASH_VALUE 13E6E43FE0F39F8E // INDEX 3172 -uittGuildFlagFore [Flaggensymbol bestimmen] +uittGuildFlagFore [Hauptsymbol bestimmen] // HASH_VALUE 9CC834756265708C // INDEX 3173 @@ -13403,7 +13385,7 @@ uimGcmTrade [Tauschhandel] // HASH_VALUE CE21DB2F0C424631 // INDEX 3177 -uimGcmLearnSkills [FÄHIGKEITEN LERNEN] +uimGcmLearnSkills [AKTIONEN LERNEN] // HASH_VALUE 50D494345090F424 // INDEX 3178 @@ -13423,7 +13405,7 @@ uimGcmFaction [GEGENSTÄNDE DER FRAKTION KAUFEN] // HASH_VALUE 33F3380C7E93200D // INDEX 3182 -uimGcmCosmetic [KOSMETIKA KAUFEN] +uimGcmCosmetic [STYLING KAUFEN] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3183 @@ -13431,7 +13413,7 @@ uimGcmGuildOptions [GEBÄUDEHANDEL] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3184 -uimGcmOutpostBuilding [GEBÄUDE ERRICHTEN] +uimGcmOutpostBuilding [GEBÄUDEHANDEL] // HASH_VALUE 0962902D7F701700 // INDEX 3185 @@ -13467,7 +13449,7 @@ uimQuickHelp [SCHNELLHILFE] // HASH_VALUE 4CB444E94F019BA7 // INDEX 3193 -uiInitHelp [Klick mich an, um Hilfe zu bekommen.] +uiInitHelp [Klick auf mich zur Hilfestellung!] // HASH_VALUE D0E6969DE07E6459 // INDEX 3194 @@ -13487,7 +13469,7 @@ uiQH_4 [Wie man zaubert.] // HASH_VALUE 8745D732E1C59BA3 // INDEX 3198 -uiQH_5 [Wie Du deine Erscheinung veränderst.] +uiQH_5 [Wie man sich orientiert.] // HASH_VALUE C52A9867D7FF9F80 // INDEX 3199 @@ -13499,7 +13481,7 @@ uiQH_7 [Wie man seinen Trainer/Lehrer findet.] // HASH_VALUE 6818540868185408 // INDEX 3201 -uiBulkTitle [Größe] +uiBulkTitle [Volumen] // HASH_VALUE E6E73C38AB06C7B5 // INDEX 3202 @@ -13515,19 +13497,19 @@ uimwGuildForum [GILDENFORUM] // HASH_VALUE 9D39ACA4E686FBD7 // INDEX 3205 -uiExpandWindows [Anzeigen / Verstecken der Arbeitsflächenknöpfe] +uiExpandWindows [Anzeigen / Verstecken der Oberflächen-Buttons] // HASH_VALUE D46D58FC6B8D9ADD // INDEX 3206 -uiDisconnected [Die Verbindung wurde getrennt. Der Server ist down oder es gibt Netzwerkprobleme.] +uiDisconnected [Die Verbindung wurde getrennt. Der Server ist offline oder es gibt Verbindungsprobleme.] // HASH_VALUE 8C7064230801D836 // INDEX 3207 -uiMailboxTitle [MAILBOX] +uiMailboxTitle [PN Briefe] // HASH_VALUE 8C7064230801D836 // INDEX 3208 -uimwMailbox [MAILBOX] +uimwMailbox [PN Briefe] //Compass Waypoints // HASH_VALUE AE4860992787689C @@ -13540,7 +13522,7 @@ uimCompassMissions [Missionen] // HASH_VALUE E976503860C21845 // INDEX 3211 -uimCompassLandMarks [Landmarken] +uimCompassLandMarks [Kartenmarkierungen] // HASH_VALUE 6C5854506C585450 // INDEX 3212 @@ -13613,42 +13595,42 @@ uiWebDelPost [Markierte Postings löschen] // HASH_VALUE 9B1710751F660483 // INDEX 3229 -uiWebIG [Web] +uiWebIG [Webfenster] // HASH_VALUE D310CC1C52CDC429 // INDEX 3230 -uiBubbleBR [Unten Rechts] +uiBubbleBR [Unten rechts] // HASH_VALUE 04830037C92F2F11 // INDEX 3231 -uiBubbleTR [Oben Rechts] +uiBubbleTR [Oben rechts] // HASH_VALUE 494227284ABF0804 // INDEX 3232 -uiBubbleBL [Unten Links] +uiBubbleBL [Unten links] // HASH_VALUE 2014F45054905430 // INDEX 3233 -uiBubbleTL [Oben Links] +uiBubbleTL [Oben links] // HASH_VALUE B54C279E920E61A6 // INDEX 3234 -uiTryton1 [Viele Jahrhunderte wandere ich nun schon durch die entlegensten Gebiete Ryzoms. Ich beobachtete die grüne Auferstehung von Atys und die Geburt der gesamten Hominheit. Ich war Zeuge ihres beeindruckenden Überlebenskampfes in einer gnadenlosen Welt voller tödlicher Pflanzen und ausschwärmender Bestien. Aber noch viel schlimmer wog ihre eigene, fast schon brutale Ignoranz, die sich sich gegenseitig entgegenbrachten in ihrem Wetteifer, ihrer eigenen Sippe die grösste Macht zu verleihen. Derart durch ihre Rassenkriege geschwächt und gebunden an ihr eigenes Territorium ohne jegliche wahre Verbundenheit zu ihren Nachbarn, wurden sie ein allzu leichtes Opfer für die Schwärme der Kitins.] +uiTryton1 [Viele Jahrhunderte wandere ich nun schon durch die entlegensten Gebiete Ryzoms. Ich beobachtete die grüne Auferstehung von Atys und die Geburt der gesamten Hominheit. Ich war Zeuge ihres beeindruckenden Überlebenskampfes in einer gnadenlosen Welt voller tödlicher Pflanzen und umherschwärmender Bestien. Aber noch viel schlimmer wog ihre eigene, fast schon brutale Ignoranz, die sie einander gegenseitig entgegenbrachten in ihrem Wetteifer, ihren eigenen Sippen die größte Macht zu verschaffen. Derart durch Rassenkriege geschwächt und gebunden an ihre jeweiligen Territorien in selbst-auferlegter Abgrenzung von ihren Nachbarn, wurden sie ein allzu leichtes Opfer für ein verheerendes Schwärmen der Kitins.] // HASH_VALUE DF28A0BE35A6586F // INDEX 3235 -uiTryton2 [Selbst die größten Atysianischen Mächte der Kami und des Karavan zusammen waren kraftlos gegen die Kitinattacken in diesem unheilvollen Jahr. Ganze Stämme kamen dabei um. Als ich von den schrecklichen Geschehnissen hörte, gab ich alle Hilfe, die ich zu geben in der Lage war, um die letzten Überlebenden zu retten, welche entkommen konnten und es geschafft hatten, in die Wildnis zu entfliehen.] +uiTryton2 [Selbst die großen Atysianischen Mächte zusammengenommen, die Kami und der Karavan, waren kraftlos gegen die Kitinattacken in diesem unheilvollen Jahr. Ganze Populationen kamen dabei um. Als ich von den schrecklichen Geschehnissen hörte, zögerte ich nicht, alle Unterstützung zu leisten, die ich zu geben in der Lage war, um die letzten Überlebenden zu retten, viele von denen, die entkommen konnten und es geschafft hatten, in die Wildnis zu entfliehen.] // HASH_VALUE D14C39293E363403 // INDEX 3236 -uiTryton3 [Seitdem haben drei Generationen versucht, die geschlagenen Wunden zu heilen und ihre Zivilisation wieder aufzubauen und den Geist der Homins wieder aufleben zu lassen. Nun ist die Zeit für die Weisen und Mutigen gekommen, die ehrgeizige Aufgabe anzunehmen und eine neue Ordnung herzustellen, um die Kluften zwischen den Kontinenten zu überwinden und ein neues Schicksal für ihre Zivilisationen zu schmieden.] +uiTryton3 [Seitdem haben drei Generationen versucht, die geschlagenen Wunden zu heilen und ihre Lebensart wieder aufzubauen und den Geist der Homins wieder aufleben zu lassen. Nun ist die Zeit für die Weisen und Mutigen gekommen, die ehrgeizige Aufgabe anzunehmen und eine neue Ordnung herzustellen, um die Kluften zwischen den Kontinenten zu überwinden und ein neues Schicksal für ihre Zivilisationen zu schmieden.] // HASH_VALUE D2B7A4B2A89F084D // INDEX 3237 -uiTryton4 [Aber das ist nur meine eigene Hoffnung, denn nur gemeinsam werden wir gegen das Böse gerüstet sein und sein Vorrücken zurückstoßen können. Gewiss, auch ich hörte die beunruhigenden Gerüchte über eine Millionenschar, leider, die eines Tages die Gedärme des ganzen grünen Planeten Atys erschüttern werden.\n - Aber ich habe einen festen Glauben an diesen Neuanfang und an die Stärke und den Willen der gesamten Hominheit.\n +uiTryton4 [Das ist meine Hoffnung, denn nur gemeinsam werden wir gegen das kommende Böse am besten gerüstet sein und sein Vorrücken zurückstoßen können. Gewiss, auch ich hörte den herannahenden drohenden Donner von Mega Corp, der leider eines Tages das Innere des ganzen grünen Planeten Atys erschüttern wird.\n + Aber ich habe Vertrauen zu diesem Neuanfang der Hominheit.\n \n - E. Tryton] + E. Tryton] // HASH_VALUE 741C5438741C5438 // INDEX 3238 @@ -13668,15 +13650,15 @@ uiSumScore [Ergebnis] // HASH_VALUE 1CF8207321457C87 // INDEX 3242 -uiSumMax [Max] +uiSumMax [Max. ] // HASH_VALUE 5A6710701F161883 // INDEX 3243 -uiSumReg [Norm] +uiSumReg [Reg. ] // HASH_VALUE D9A8E875D866AF80 // INDEX 3244 -uiSumHp [HP] +uiSumHp [Leben] // HASH_VALUE A868B095A4A85C8B // INDEX 3245 @@ -13709,11 +13691,11 @@ uiScoreTable [Charakterwerte] // HASH_VALUE CC21D83B8BC2F834 // INDEX 3252 -uiSkillTable [Fähigkeiten] +uiSkillTable [Aktionen] // HASH_VALUE 8F81DBE56B758057 // INDEX 3253 -uiSkillTable2 [(Klicke auf eine Fähigkeit, um Aktionen zu filtern)] +uiSkillTable2 [(Klicke auf die Fertigkeitsgruppen, um Aktionen zu filtern)] // HASH_VALUE 819E3F26766C6A23 // INDEX 3254 @@ -13721,7 +13703,7 @@ uiGuildTeam [GILDE & TEAM] // HASH_VALUE 89F2C402CD7FF42F // INDEX 3255 -uiPhraseBookTitle [AKTIONSFORTSCHRITT] +uiPhraseBookTitle [AKTIONEN / FERTIGKEITEN] // HASH_VALUE 95F6F07B1EE6C88F // INDEX 3256 @@ -13737,7 +13719,7 @@ uimPhraseNew [Neue Aktion] // HASH_VALUE EBD6449961176891 // INDEX 3259 -uimPhraseInfos [Info] +uimPhraseInfos [Information] // HASH_VALUE 5698807293B65B75 // INDEX 3260 @@ -13749,11 +13731,11 @@ uiPhraseDisplayTextList [Detaillierte Liste] // HASH_VALUE A5F81C808F522778 // INDEX 3262 -uiPhraseAutoFold [Automatisch falten] +uiPhraseAutoFold [Automatisch ausklappen] // HASH_VALUE 2CE6AB7E6BB47E97 // INDEX 3263 -uiPhraseSkillFilter [Fähigkeiten Filter] +uiPhraseSkillFilter [Fertigkeits-Filter] // HASH_VALUE ACB9C0819FC81891 // INDEX 3264 @@ -13785,7 +13767,7 @@ uiPhraseEditName [Name] // HASH_VALUE 22F9E08CAE670CB6 // INDEX 3271 -uiPhraseCOMPOSITION [Aufbau] +uiPhraseCOMPOSITION [Zusammensetzung] // HASH_VALUE 4490641438D4440C // INDEX 3272 @@ -13793,11 +13775,11 @@ uiPhraseMANDATORIES [EFFEKTE:] // HASH_VALUE 4450240C38D44424 // INDEX 3273 -uiPhraseCREDITS [KREDITE:] +uiPhraseCREDITS [AUSGLEICH:] // HASH_VALUE 6D5AB093DE93EB3D // INDEX 3274 -uiPhraseRESTRICTION [Waffenverträglichkeit: ] +uiPhraseRESTRICTION [Waffenkompatibilität: ] // HASH_VALUE 1697B07397958B63 // INDEX 3275 @@ -13805,7 +13787,7 @@ uittPhraseEditNewOptional [Option hinzufügen] // HASH_VALUE 5746BC52D6E4AB51 // INDEX 3276 -uittPhraseEditNewCredit [Kredit hinzufügen] +uittPhraseEditNewCredit [Ausgleich hinzufügen] // HASH_VALUE F9D59C404BD6CC4E // INDEX 3277 @@ -13813,7 +13795,7 @@ uiPhraseEditNewOptional [Option hinzufügen: ] // HASH_VALUE B8E4BC2EC9F4F430 // INDEX 3278 -uiPhraseEditNewCredit [Kredit hinzufügen: ] +uiPhraseEditNewCredit [Ausgleich hinzufügen: ] // HASH_VALUE E8542A626A7A4AC4 // INDEX 3279 @@ -13821,7 +13803,7 @@ uittPhraseEditValidate [Aktion lernen] // HASH_VALUE 241A5F576D349B5D // INDEX 3280 -uittPhraseFaberBuild [Objekt bauen] +uittPhraseFaberBuild [Gegenstand herstellen] // HASH_VALUE D927CC98DE53D30A // INDEX 3281 @@ -13829,16 +13811,16 @@ uiPhraseEditCost [Aktionskosten: ] // HASH_VALUE 681A4466B04A0CC6 // INDEX 3282 -uiPhraseEditCredit [Aktionskredit: ] +uiPhraseEditCredit [Aktionsausgleich: ] // HASH_VALUE EE49DC130DB704B3 // INDEX 3283 -uittMemoryPhrase [Aktion einprägen] +uittMemoryPhrase [Aktion einlernen] // HASH_VALUE 1860C614E07EC90E // INDEX 3284 uittExecutingPhrase [Aktion läuft.\n - @{6F6F}Hier klicken, @{FFFF}um sie zu stoppen.] + @{6F6F}Hier klicken, @{FFFF}um die Aktion zu stoppen.] // HASH_VALUE E22AEC25E2D95CF7 // INDEX 3285 @@ -13854,23 +13836,23 @@ uiBotChatPhrase [] // HASH_VALUE E8C9BF40D675D644 // INDEX 3288 -uiPhraseFaberExecute [Herstellung eines Gegenstandes: %item.] +uiPhraseFaberExecute [Gegenstand-Herstellung: %item.] // HASH_VALUE E693F42E181AA6B0 // INDEX 3289 -uiPhraseFaberExecuteNoPlan [Objekt bauen] +uiPhraseFaberExecuteNoPlan [Gegenstand herstellen] // HASH_VALUE 276B10FC1E047356 // INDEX 3290 -uiTextHelpSelectFaberPlan [Wähle zunächst ein Objekt, das Du bauen willst.] +uiTextHelpSelectFaberPlan [Wähle zuerst den Gegenstand, den du herstellen willst.] // HASH_VALUE B706DD1057ECA8AB // INDEX 3291 -uittSelectPlan [Wähle den Bauplan eines Objektes, das Du bauen willst.] +uittSelectPlan [Wähle den Bauplan des Gegenstandes, den du herstellen willst.] // HASH_VALUE 404B14A424E099BC // INDEX 3292 -uiTextHelpSelectMp [Wähle für jeden benötigten Bestandteil Rohstoffe aus.] +uiTextHelpSelectMp [Wähle die Rohstoffe für jeden benötigten Teil/Slot aus.] // HASH_VALUE 14A4182DE5D57B58 // INDEX 3293 @@ -13878,7 +13860,7 @@ uittSelectMp [Klicke, um Rohstoffe hinzuzufügen.] // HASH_VALUE 7BB65DCA8D1ED22C // INDEX 3294 -uiTextHelpSelectFaberPlanSlot [<- Wähle einen verfügbaren Bauplan.] +uiTextHelpSelectFaberPlanSlot [Klicke auf einen verfügbaren Bauplan-Slot zur Auswahl des Gegenstands.] // HASH_VALUE B32B683C21D844A2 // INDEX 3295 @@ -13894,7 +13876,7 @@ uiFaberMpRemove [Entfernen] // HASH_VALUE 0A26B48C62832E12 // INDEX 3298 -uiFaberItemResultLevel [Level: ] +uiFaberItemResultLevel [Stufe: ] // HASH_VALUE 0DA1DC3D8EF3FC35 // INDEX 3299 @@ -13914,13 +13896,13 @@ uiPhraseNoFilter [Alle Aktionen] // HASH_VALUE DDF9DFF2DBD7A039 // INDEX 3303 -uiFaberStatGrayed [Für den Schmuck sind nur die 3 besten magischen Schutzarten und die 3 besten Zauberwiderstandslevel relevant. \n +uiFaberStatGrayed [Für Schmuck werden nur die 3 besten Magie-Schutzarten und 3 besten Widerstände ausgewählt. \n Dieser gehört nicht dazu.] // HASH_VALUE FE4F223A1E32EE4D // INDEX 3304 -uiFaberStatActive [Für den Schmuck sind nur die 3 besten magischen Schutzarten und die 3 besten Widerstände relevant.\n - Dieser gehört dazu.] +uiFaberStatActive [Für Schmuck werden nur die 3 besten Magie-Schutzarten und 3 besten Widerstände ausgewählt.\n + Ja, dieser gehört dazu.] // HASH_VALUE 5314133E6B85C774 // INDEX 3305 @@ -13936,11 +13918,11 @@ uiLearnFrom [Lerne von ] // HASH_VALUE CBA3183290322845 // INDEX 3308 -uiBuy [Kaufe] +uiBuy [KAUFE] // HASH_VALUE 441054505494F440 // INDEX 3309 -uiTeleport [TELEPORT] +uiTeleport [TELEPORTIERE] // HASH_VALUE C85184314810C82D // INDEX 3310 @@ -13956,23 +13938,23 @@ uiBotChatFaction [FRAKTIONSGEGENSTÄNDE] // HASH_VALUE 4CD4F40C40504414 // INDEX 3313 -uiBotChatCosmetic [Kosmetika] +uiBotChatCosmetic [Styling] // HASH_VALUE 4C50540844909410 // INDEX 3314 -uiBotChatGuildOptions [GEBÄUDE] +uiBotChatGuildOptions [GILDENHALLE] // HASH_VALUE C03FB834CDA1E31E // INDEX 3315 -uiBotChatGuildRoleMaster [Gilden-Lehrmeister] +uiBotChatGuildRoleMaster [GILDEN-LEHRMEISTER] // HASH_VALUE 7038904D65E4A053 // INDEX 3316 -uittPlayerMoney [Dein Geld] +uittPlayerMoney [Deine Dapper] // HASH_VALUE 118810F6F01976D3 // INDEX 3317 -uittGuildMoney [Geld deiner Gilde] +uittGuildMoney [Dapper deiner Gilde] // HASH_VALUE B68EBC2A5690E428 // INDEX 3318 @@ -13980,27 +13962,27 @@ uiNotEnoughMoney [NICHT GENUG DAPPER] // HASH_VALUE 002F1B3942E01029 // INDEX 3319 -uiNotEnoughFP_Kami [NICHT GENUG KAMIPUNKTE] +uiNotEnoughFP_Kami [NICHT GENUG KAMI-FRAKTIONSPUNKTE] // HASH_VALUE 033DD029D2D0BCF5 // INDEX 3320 -uiNotEnoughFP_Karavan [NICHT GENUG KARAVANPUNKTE] +uiNotEnoughFP_Karavan [NICHT GENUG KARAVAN-FRAKTIONSPUNKTE] // HASH_VALUE 3C3DF0048D72103A // INDEX 3321 -uiNotEnoughFP_Fyros [NICHT GENUG FYROSPUNKTE] +uiNotEnoughFP_Fyros [NICHT GENUG FYROS-NATIONSPUNKTE] // HASH_VALUE FE3DF0048D121822 // INDEX 3322 -uiNotEnoughFP_Matis [NICHT GENUG MATISPUNKTE] +uiNotEnoughFP_Matis [NICHT GENUG MATIS-NATIONSPUNKTE] // HASH_VALUE F8911B35CFE11025 // INDEX 3323 -uiNotEnoughFP_Tryker [NICHT GENUG TRYKERPUNKTE] +uiNotEnoughFP_Tryker [NICHT GENUG TRYKER-NATIONSPUNKTE] // HASH_VALUE 413DF0040B921030 // INDEX 3324 -uiNotEnoughFP_Zorai [NICHT GENUG ZORAÏPUNKTE] +uiNotEnoughFP_Zorai [NICHT GENUG ZORAÏ-NATIONSPUNKTE] // HASH_VALUE 2305A9CA4F208DA5 // INDEX 3325 @@ -14012,23 +13994,23 @@ uittNotEnoughFP_Karavan [Du hast nicht genug Karavan-Fraktionspunkte, um das zu // HASH_VALUE 809AC123953E61F0 // INDEX 3327 -uittNotEnoughFP_Fyros [Du hast nicht genug Fyros-Fraktionspunkte, um das zu kaufen] +uittNotEnoughFP_Fyros [Du hast nicht genug Fyros-Nationspunkte, um das zu kaufen] // HASH_VALUE 809AA9258FAE61F0 // INDEX 3328 -uittNotEnoughFP_Matis [Du hast nicht genug Matis-Fraktionspunkte, um das zu kaufen.] +uittNotEnoughFP_Matis [Du hast nicht genug Matis-Nationspunkte, um das zu kaufen.] // HASH_VALUE 95B9022B88728E5E // INDEX 3329 -uittNotEnoughFP_Tryker [Du hast nicht genug Tryker-Fraktionspunkte, um das zu kaufen.] +uittNotEnoughFP_Tryker [Du hast nicht genug Tryker-Nationspunkte, um das zu kaufen.] // HASH_VALUE 80F98923127F61F0 // INDEX 3330 -uittNotEnoughFP_Zorai [Du hast nicht genug Zoraï-Fraktionspunkte, um das zu kaufen.] +uittNotEnoughFP_Zorai [Du hast nicht genug Zoraï-Nationspunkte, um das zu kaufen.] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3331 -uiBadPrice [???] +uiBadPrice [UNGÜLTIGER PREIS] // HASH_VALUE F9E1842984B1D438 // INDEX 3332 @@ -14036,11 +14018,11 @@ uiBadQuantity [UNGÜLTIGE MENGE] // HASH_VALUE BD031737C100B723 // INDEX 3333 -uiPriceNotReceived [PREIS NICHT EMPFANGEN] +uiPriceNotReceived [PREIS NICHT GEFUNDEN] // HASH_VALUE B614AA16B8B27A44 // INDEX 3334 -uiWontBuyThis [ICH WERDE DAS NICHT KAUFEN!] +uiWontBuyThis [ICH KAUFE DAS NICHT.] // HASH_VALUE BFD1AC31C12FB428 // INDEX 3335 @@ -14048,19 +14030,19 @@ uiWaitingChoiceFromServer [WARTE AUF AUSWAHL DURCH SERVER] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3336 -uiMissionOptionNotReceived [???] +uiMissionOptionNotReceived [MISSIONS-OPTION NICHT GEFUNDEN] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3337 -uiWebPageNameNotReceived [???] +uiWebPageNameNotReceived [WEBSEITE NICHT GEFUNDEN] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3338 -uiMissionRingNameNotReceived [???] +uiMissionRingNameNotReceived [RING-MISSIONSNAME NICHT GEFUNDEN] // HASH_VALUE 630944A663A8549B // INDEX 3339 -uiRegenerateDM [Regeneriere] +uiRegenerateDM [Regenerieren] // HASH_VALUE A78780552665C484 // INDEX 3340 @@ -14108,11 +14090,11 @@ uiRename [UMBENENNEN] // HASH_VALUE 04D370123E71CC24 // INDEX 3351 -uiCreateUserLM [Diese Stelle markieren] +uiCreateUserLM [Diese Stelle mit Fähnchen markieren] // HASH_VALUE 8B04AC48FE634E3B // INDEX 3352 -uiCreateUserLMAtUserPos [ERSTELLE EINE LANDMARKIERUNG AN DEINER AKTUELLEN POSITION] +uiCreateUserLMAtUserPos [Erstelle eine Kartenmarkierung an deiner aktuellen Position] // HASH_VALUE 086F0F3E7E60DC28 // INDEX 3353 @@ -14120,7 +14102,7 @@ uiTargetLM [ZIEL IM KOMPASS] // HASH_VALUE 97E36AD243CC8A55 // INDEX 3354 -uiNoMoreLandMarks [Keine weiteren Landmarken verfügbar! Bitte lösche wenigstens eine von ihnen.] +uiNoMoreLandMarks [Keine weiteren Kartenmarkierungen verfügbar! Bitte lösch mindestens eine der gesetzten.] // HASH_VALUE 5864AFA5A7778451 // INDEX 3355 @@ -14136,7 +14118,7 @@ uiStartPoint [Startpunkt] // HASH_VALUE 9CF4EF6E6B2463BE // INDEX 3358 -uiCreateNewLandMark [Neue Landmarke setzen] +uiCreateNewLandMark [Neue Kartenmarkierung setzen] // HASH_VALUE 50D22A22CEAC5C0C // INDEX 3359 @@ -14152,7 +14134,7 @@ uiMenuCenter [KARTE AUF SPIELER ZENTRIEREN] // HASH_VALUE E53254296572F077 // INDEX 3362 -uittCenter [Karte Zentrieren ] +uittCenter [Karte zentrieren ] // HASH_VALUE C6A0A426C54074EC // INDEX 3363 @@ -14204,7 +14186,7 @@ uiAcceptBuilding [Bauen?] // HASH_VALUE 0A8FFE0384D1EEF4 // INDEX 3375 -uiGuildXP [GILDEN-XP:] +uiGuildXP [GILDEN-XP: ] // HASH_VALUE FF8F13094B10182E // INDEX 3376 @@ -14236,7 +14218,7 @@ uittPriceWithFameEqual [Dieser Preis wurde nach deinem Ruhm berechnet.] // HASH_VALUE AAC268F338260ED5 // INDEX 3383 -uittPriceWithFameDiff [Dieser Preis wurde nach deinem Ruhm berechnet (der wirkliche Preis ist ein anderer).] +uittPriceWithFameDiff [Dieser Preis wurde nach deinem Ruhm berechnet (der Basis-Preis ist ein anderer).] // HASH_VALUE 1DA66482D971649C // INDEX 3384 @@ -14256,11 +14238,11 @@ uiBonusOnResale [Bonus des Weiterverkaufs] // HASH_VALUE 21A13B506058CDDD // INDEX 3388 -uiCantResaleCauseDamaged [Dieser Gegenstand wird nicht verkauft werden, er ist beschädigt.] +uiCantResaleCauseDamaged [Dieser Gegenstand kann nicht verkauft werden, er ist beschädigt.] // HASH_VALUE 40C8C7E3624E3D9E // INDEX 3389 -uiCantResaleCauseTooLate [Dieser Gegenstand wird nicht weiterverkauft werden; das Verkaufsdatum ist abgelaufen.] +uiCantResaleCauseTooLate [Dieser Gegenstand kann nicht weiterverkauft werden; das Verkaufsdatum ist abgelaufen.] // HASH_VALUE 56D6CC789DE5C884 // INDEX 3390 @@ -14284,7 +14266,7 @@ uiLetResell [Weiterverkauf ermöglichen] // HASH_VALUE BB4B5813A5CE33B5 // INDEX 3395 -uittResellButton [Ermögliche den Weiterverkauf des Objekts an andere Spieler (ENTER).] +uittResellButton [Ermögliche den Weiterverkauf des Gegenstands an andere Spieler (ENTER).] // HASH_VALUE 1D29B058C74AC86D // INDEX 3396 @@ -14348,79 +14330,79 @@ uiTipsTeleport [Lade den Kontinent: %s , Tag %d, Uhrzeit %d. Es ist %s und das // HASH_VALUE A8B4501E4B0EFB14 // INDEX 3411 -uiTips0 [Anstatt Deine Objekte per Drag&Drop in die Sets/Schmuckeinfassungen zu legen,\n - kannst Du auch direkt auf das Set oder die Fassung klicken und ein Objekt zum Einlegen wählen.] +uiTips0 [Anstatt deine Objekte per Drag&Drop in die Slot-Plätze für Rüstungen oder Schmuck zu legen,\n + kannst du auch direkt mit Links-Klick in die Slots klicken und dann eine Ausrüstung auswählen.] // HASH_VALUE F3ACC78FDE5A8928 // INDEX 3412 -uiTips1 [Wenn Du lernen willst, wie einzelne Elemente des Spiels funktionieren, klicke einfach den '?'Knopf und wähle Schnellhilfe] +uiTips1 [Wenn du lernen willst, wie einzelne Elemente des Spiels funktionieren, klick auf den '?'-Button und wähl "Schnellhilfe"] // HASH_VALUE 7DA5956B2703DF0F // INDEX 3413 -uiTips2 [Per Rechtsklick auf jedem Fenster kannst Du es Sperren/Entsperren und die Transparenz einstellen.] +uiTips2 [Du kannst jedes Fenster per Rechtsklick darauf sperren / entsperren und die Transparenz einstellen.] // HASH_VALUE C29310531817450A // INDEX 3414 -uiTips3 [Mit Rechtsklick auf das Hauptchatfenster kannst Du einen Nachrichtenfilter einstellen.] +uiTips3 [Mit Rechtsklick auf das Hauptchatfenster kannst du deinen Nachrichtenfilter einstellen.] // HASH_VALUE 91F397CE6119F537 // INDEX 3415 -uiTips4 [Drücke 'F1','F2','F3' oder 'F4', um zwischen den virtuellen Arbeitsflächen umzuschalten\n - Halte 'F1', 'F2', 'F3' oder 'F4' gedrückt, um ins Fensterauswahlmenü zu gelangen] +uiTips4 [Drücke 'F1','F2','F3' oder 'F4', um zwischen den Oberflächen (UIs) umzuschalten\n + Halte 'F1', 'F2', 'F3' oder 'F4' gedrückt, um ins Fenster-Auswahlmenü zu gelangen] // HASH_VALUE E5268485CCD1CC36 // INDEX 3416 -uiTips5 [Drücke '1', '2' ... '9', um die mit ihnen assoziierten Aktionen auszuführen.\n - Drücke SHIFT + '1', '2' ... '9', um die mit ihnen assoziierten Aktionen auszuführen.] +uiTips5 [Drücke '1', '2' ... '9', um die entsprechenden Aktionen in der oberen Aktionsleiste auszuführen.\n + Drücke SHIFT + '1', '2' ... '9', um die entsprechenden Aktionen in der unteren Aktionsleiste auszuführen.] // HASH_VALUE D6C92F4F40F51EDB // INDEX 3417 -uiTips6 [Rechtsklick auf eine Fähigkeit oder einen Zauber öffnet das Info-Fenster.] +uiTips6 [Rechtsklick auf eine Aktion oder ein Icon öffnet das dazugehörige Informations-Fenster.] // HASH_VALUE C1D870338976C95D // INDEX 3418 -uiTips7 [Drücke ALT + '1', '2' ... '0', um eine gespeicherte Chatnachricht zu versenden.\n - Drücke ALT + SHIFT + '1', '2' ... '0', um weitere gespeicherte Chatnachrichten zu versenden.] +uiTips7 [Drücke ALT + '1', '2' ... '0', um eine gespeicherte Chatnachricht kundzutun.\n + Drücke ALT + SHIFT + '1', '2' ... '0', um weitere gespeicherte Chatnachrichten zu vermelden.] // HASH_VALUE 3F29F08463053AD7 // INDEX 3419 -uiTips8 [Drücke 'ENTER', um ein Chatfenster zu aktivieren] +uiTips8 [Drücke 'ENTER', um ins aktuell ausgewählte Chatfenster zu springen.] // HASH_VALUE 93E22466151B6E36 // INDEX 3420 -uiTips9 [Drücke 'P', um das Charakterfenster zu öffnen/schließen. Drücke 'I', um das Inventarfenster zu öffnen/schließen] +uiTips9 [Drücke 'P', um das Charakter-Fenster mit Werten und Informationen zu deiner Spielfigur zu öffnen bzw. wieder zu schließen. Drücke 'I', um das Inventarfenster deiner Tasche und Tiere zu öffnen bzw. wieder zu schließen] // HASH_VALUE B88D154573D2DDB5 // INDEX 3421 -uiTips10 [Drücke 'STRG - R', um auf das letzte Tell zu antworten.\n - Drücke STRG + 'R', um mit dem letzten Spieler zu chatten der dich angesprochen hat.] +uiTips10 [Drücke 'STRG - R', um auf das letzte Flüstern (Tell) zu antworten.\n + Drücke STRG + 'R', um mit dem letzten Spieler zu sprechen, der dich angesprochen hat.] // HASH_VALUE 7850A32BC35E7EE6 // INDEX 3422 -uiTips11 [Drücke die Leertaste, um den Gegner vor dir zu markieren.\n - Drücke STRG + Leertaste um einen Freund in deiner Nähe zu markieren.] +uiTips11 [Drücke die Leertaste, um den Gegner vor dir zu markieren / anzuvisieren.\n + Drücke STRG + Leertaste, um einen Freund in deiner Nähe zu markieren.] // HASH_VALUE 8A801482C5765C81 // INDEX 3423 -uiTips12 [Drücke '0', um deinen Charakter von vorne zu sehen.] +uiTips12 [Halte '0' gedrückt, um die Blickrichtung umzukehren und deinen Charakter von vorne zu sehen, mit Sicht auf all das, was hinter deinem Charakter ist.] // HASH_VALUE 26BCB0CF92D19B6C // INDEX 3424 -uiTips13 [Drücke F12, um ein Ziel aus Deiner Zielmarkierung zu löschen.] +uiTips13 [Drücke F12, um nichts ins Ziel zu nehmen bzw. das aktuelle Ziel nicht mehr ins visier zu nehmen.] // HASH_VALUE 0CA778F4EC0B94DC // INDEX 3425 -uiTips14 [Drücke ESC, um das zuletzt geöffnete Info-Fenster zu schließen.\n +uiTips14 [Drücke ESC, um das zuletzt geöffnete Informations-Fenster zu schließen.\n Drücke SHIFT + ESC, um alle geöffneten Info-Fenster zu schließen.] // HASH_VALUE 6759A83D7C98A60A // INDEX 3426 -uiTips15 [Drücke X, um das Hauptchatfenster zu öffnen/schließen.] +uiTips15 [Drücke X, um das Haupt-Chatfenster zu öffnen bzw. wieder zu schließen.] // HASH_VALUE 9F538781E3CDB90A // INDEX 3427 -uiTips16 [Drücke M, um die Karte zu öffnen/schließen.\n - Du kannst Wegpunkte auf der Karte setzen und sie später mittels Kompass anpeilen.] +uiTips16 [Drücke M, um die Regions-Karte zu öffnen bzw. wieder schließen.\n + Du kannst Markierungsfähnchen auf der Karte setzen, färben, benennen, und sie mittels Kompass anpeilen.] // HASH_VALUE 28F6D4546B54E872 // INDEX 3428 @@ -14436,19 +14418,19 @@ Dodge [Ausweichen] // HASH_VALUE A7323C8FD5E8F394 // INDEX 3431 -MagicDefense [Magie-Verteidigung] +MagicDefense [Verteidigungs-Magie] // HASH_VALUE 6C77A78BD888CF81 // INDEX 3432 -ArmorWear [Rüstungstragen] +ArmorWear [Rüstung tragen] // HASH_VALUE D926A46F9A067859 // INDEX 3433 -AutoLaunch [Automatik] +AutoLaunch [Automatikgewehr] // HASH_VALUE 2869D0702A16CCA3 // INDEX 3434 -Bowgun [Bogenwaffe] +Bowgun [Bogengewehr] // HASH_VALUE 645734912E1B10BF // INDEX 3435 @@ -14464,7 +14446,7 @@ Cure [Heilung] // HASH_VALUE 2EE94090A508448D // INDEX 3438 -Curse [Fluch] +Curse [Verfluchung] // HASH_VALUE 6C5C14307058848C // INDEX 3439 @@ -14492,52 +14474,52 @@ uiShowing [Zeigen: ] // HASH_VALUE CD72133B8DE36634 // INDEX 3445 -uiSkillPoints [Fähigkeitspunkte] +uiSkillPoints [Fertigkeitspunkte für Aktionskauf] // HASH_VALUE 96976B67D6854695 // INDEX 3446 -uiSkillPoints0 [Kampf] +uiSkillPoints0 [Kampf-Fertigkeitspunkte ] // HASH_VALUE 14F62F6412542A7A // INDEX 3447 -uiSkillPoints1 [Magie] +uiSkillPoints1 [Magie-Fertigkeitspunkte ] // HASH_VALUE D6A7AB5BD9C5628C // INDEX 3448 -uiSkillPoints2 [Handwerk] +uiSkillPoints2 [Handwerks-Fertigkeitspunkte ] // HASH_VALUE 749C1420201C3494 // INDEX 3449 -uiSkillPoints3 [Rohstoffgewinnung] +uiSkillPoints3 [Rohstoffernte-Fähigkeitspunkte ] // HASH_VALUE 7A6F23377F011333 // INDEX 3450 -uiSkillPointsBold0 [KAMPFFÄHIGKEITSPUNKTE :] +uiSkillPointsBold0 [KAMPFFERTIGKEITSPUNKTE: ] // HASH_VALUE BA6F032DBF01F329 // INDEX 3451 -uiSkillPointsBold1 [MAGIEFÄHIGKEITSPUNKTE :] +uiSkillPointsBold1 [MAGIEFERTIGKEITSPUNKTE: ] // HASH_VALUE F90F4734FEA13730 // INDEX 3452 -uiSkillPointsBold2 [HANDWERKSFÄHIGKEITSPUNKTE :] +uiSkillPointsBold2 [HANDWERKSFERTIGKEITSPUNKTE: ] // HASH_VALUE 5052C436FD033505 // INDEX 3453 -uiSkillPointsBold3 [ROHSTOFFABBAUFÄHIGKEITSPUNKTE :] +uiSkillPointsBold3 [ROHSTOFFERNTEFERTIGKEITSPUNKTE: ] // HASH_VALUE 0B8188367CE31F2C // INDEX 3454 -uimGcmTradePhase [FÄHIGKEITEN ENTWICKELN] +uimGcmTradePhase [NEUE AKTIONEN LERNEN] // HASH_VALUE 7F3DF004CC42EC2C // INDEX 3455 -uiNotEnoughSkillPoints [NICHT GENÜGEND FÄHIGKEITSPUNKTE] +uiNotEnoughSkillPoints [ZU WENIG FERTIGKEITSPUNKTE, TRAINIERE NOCH ETWAS! ] // Heal // HASH_VALUE 5010042050100420 // INDEX 3456 -uiHP [HP] +uiHP [Leben] // HASH_VALUE 81CF12CA2FCAC592 // INDEX 3457 @@ -14553,7 +14535,7 @@ uiDebugCommand [Debug-Befehl] // HASH_VALUE 68E20B3AA5B3A783 // INDEX 3460 -uiDebugShowTimedFXs [Debug Zeige getimete FXs] +uiDebugShowTimedFXs [Debug zeige zeitl. FXs] // HASH_VALUE AAD72C8F5DB8407E // INDEX 3461 @@ -14577,11 +14559,11 @@ uiQuestionMarks [???] // HASH_VALUE 649C145038084494 // INDEX 3466 -uiTargetTwoPoint [Ziel :] +uiTargetTwoPoint [Ziel: ] // HASH_VALUE 1DB76F86E0E26861 // INDEX 3467 -uittActionIcon [Aktionsicon] +uittActionIcon [Aktions-Icon] // HASH_VALUE 9D776784A1C2585F // INDEX 3468 @@ -14593,11 +14575,11 @@ uiPhraseTotal [Gesamt] // HASH_VALUE 174BEC861F672037 // INDEX 3470 -uiBalanceCost [AKTION NICHT MÖGLICH] +uiBalanceCost [MEHR AUSGLEICH NÖTIG] // HASH_VALUE 52D01470EE5C8CB0 // INDEX 3471 -uiBalanceCred [Schwierigkeitsbonus] +uiBalanceCred [Ausgleichsbonus] // HASH_VALUE 67672C79A0B7E88C // INDEX 3472 @@ -14621,11 +14603,11 @@ uigcInSceneInterfaceUser [DEIN CHARAKTER] // HASH_VALUE C910BC26C852C02B // INDEX 3477 -uigcInSceneInterfaceFriend [FREUNDE] +uigcInSceneInterfaceFriend [INFO FREUNDE] // HASH_VALUE CA10A82588C1B026 // INDEX 3478 -uigcInSceneInterfaceEnemy [FEINDE] +uigcInSceneInterfaceEnemy [INFO FEINDE] // HASH_VALUE C990F32F48EEE007 // INDEX 3479 @@ -14641,7 +14623,7 @@ uittGuildSymbol [Gildensymbol über dem Spieler anzeigen] // HASH_VALUE 87D19512706F54B9 // INDEX 3482 -uittName [Charakternamen über dem Spieler anzeigen] +uittName [Namen über dem Charakter anzeigen] // HASH_VALUE 6B18F73DDF27A4A4 // INDEX 3483 @@ -14649,7 +14631,7 @@ uiTitle [Charakter-Titel] // HASH_VALUE A1FCE2C344AB41D9 // INDEX 3484 -uittTitle [Charaktertitel über dem Spieler anzeigen] +uittTitle [Titel über dem Charakter anzeigen] // HASH_VALUE 29C46F66D8349B81 // INDEX 3485 @@ -14657,7 +14639,7 @@ uigcGuildName [Gildenname] // HASH_VALUE 31003C9AABDB00C6 // INDEX 3486 -uittGuildName [Gildennamen über dem Spieler anzeigen] +uittGuildName [Gildennamen über dem Charakter anzeigen] // HASH_VALUE E5D3F77B6BE94CA8 // INDEX 3487 @@ -14665,7 +14647,7 @@ uiSTA [Ausdauer] // HASH_VALUE 5A6D8F2D9E50FAF9 // INDEX 3488 -uittSTA [Ausdauerbalken über dem Spieler anzeigen] +uittSTA [Ausdauerbalken über dem Charakter anzeigen] // HASH_VALUE 1C591877A0875485 // INDEX 3489 @@ -14673,7 +14655,7 @@ uiSAP [Sap] // HASH_VALUE DF3C16CBBFAB2ADA // INDEX 3490 -uittSAP [Sapbalken über dem Spieler anzeigen] +uittSAP [Sapbalken über dem Charakter anzeigen] // HASH_VALUE A797BF3DDF08009C // INDEX 3491 @@ -14681,7 +14663,7 @@ uiFOC [Fokus] // HASH_VALUE DFBD9AD6A191CEEC // INDEX 3492 -uittFocus [Fokusbalken über dem Spieler anzeigen] +uittFocus [Fokusbalken über dem Charakter anzeigen] // HASH_VALUE 698737366867538A // INDEX 3493 @@ -14689,7 +14671,7 @@ uiActionBar [Aktionsbalken] // HASH_VALUE 8910F18A4A05D53C // INDEX 3494 -uittActionBar [Aktionsbalken über dem Spieler anzeigen] +uittActionBar [Aktionsbalken über dem Charakter anzeigen] // HASH_VALUE 6CD8F430509C0480 // INDEX 3495 @@ -14705,7 +14687,7 @@ uiMissionIcon [Missionsinformation] // HASH_VALUE F970BA8066A28799 // INDEX 3498 -uittMissionIcon [Zeige die Missionssymbole über den NPCs an] +uittMissionIcon [Zeige Missionssymbole über den NPCs an] // HASH_VALUE 6BA9731C58FAA393 // INDEX 3499 @@ -14713,7 +14695,7 @@ uiMiniMissionIcon [Kleine Version der Icons] // HASH_VALUE 83767BD6624A20D3 // INDEX 3500 -uittMiniMissionIcon [Kleine Icons statt der großen auf dem Radar verwenden] +uittMiniMissionIcon [Kleine Icons statt großer auf dem Radar] // HASH_VALUE 8D23FC32CE322841 // INDEX 3501 @@ -14721,7 +14703,7 @@ uigcEntityColor [LEBEWESEN] // HASH_VALUE 9928088F26F55C9E // INDEX 3502 -uiEntityColors [Farben für Lebewesen] +uiEntityColors [Farben für Radaranzeigen] // HASH_VALUE 7058345470583454 // INDEX 3503 @@ -14729,7 +14711,7 @@ uiUserColor [Eigener Charakter] // HASH_VALUE C4E6A9F3695B05C2 // INDEX 3504 -uittUserColor [Farbe, mit welcher dein Charakter dargestellt wird] +uittUserColor [Farbe, in welcher dein Charakter angezeigt wird] // HASH_VALUE 2F2AB096E518889A // INDEX 3505 @@ -14737,7 +14719,7 @@ uiPlayerColor [Spieler] // HASH_VALUE 440B7957C5FC1EE4 // INDEX 3506 -uittPlayerColor [Farbe, mit der die Spielercharaktere dargestellt werden] +uittPlayerColor [Farbe, in der Spieler-Charaktere angezeigt werden] // HASH_VALUE 0A51C82F8B019431 // INDEX 3507 @@ -14745,7 +14727,7 @@ uiNPCColor [NPC] // HASH_VALUE C352E50ECA0FEA2D // INDEX 3508 -uittNPCColor [Farbe, mit der die NSCs dargestellt werden] +uittNPCColor [Farbe, in der NPCs angezeigt werden] // HASH_VALUE A9B7087AE127EC8E // INDEX 3509 @@ -14753,7 +14735,7 @@ uiFaunaColor [Fauna] // HASH_VALUE 46EB2403E9D949BB // INDEX 3510 -uittFaunaColor [Farbe, mit der die Kreaturen dargestellt werden] +uittFaunaColor [Farbe, in der Kreaturen angezeigt werden] // HASH_VALUE 27E9787FA607C490 // INDEX 3511 @@ -14761,15 +14743,15 @@ uiTargetColor [Ziel] // HASH_VALUE 005BE5058A70A23E // INDEX 3512 -uittTargetColor [Farbe, mit der ein markiertes Ziel dargestellt wird] +uittTargetColor [Farbe, in der ein markiertes Ziel angezeigt wird] // HASH_VALUE EDA9742AEDE994F6 // INDEX 3513 -uiGroupColor [Teammitglieder] +uiGroupColor [Team-Mitglieder] // HASH_VALUE 1FE862514031BA9A // INDEX 3514 -uittGroupColor [Farbe, mit der Team Mitglieder dargestellt werden] +uittGroupColor [Farbe, in der Team-Mitglieder angezeigt werden] // HASH_VALUE 6F62BC92149903A5 // INDEX 3515 @@ -14777,7 +14759,7 @@ uiGuildRadarColor [Gildenmitglieder] // HASH_VALUE B952164AC7FF839C // INDEX 3516 -uittGuildRadarColor [Farbe, die Charaktere von Gildenmitgliedern anzeigt.] +uittGuildRadarColor [Farbe, in der Gilden-Mitglieder angezeigt werden] // HASH_VALUE F007989E26687CA4 // INDEX 3517 @@ -14785,7 +14767,7 @@ uiMountColor [Reittier] // HASH_VALUE A390D8902E1A55C9 // INDEX 3518 -uittMountColor [Farbe, mit der dein Reittier dargestellt wird] +uittMountColor [Farbe, in der dein Reittier angezeigt wird] // HASH_VALUE AAC7F48E1DD73C8A // INDEX 3519 @@ -14793,15 +14775,15 @@ uiBeastColor [Tiere] // HASH_VALUE E090D8032E6B05BF // INDEX 3520 -uittBeastColor [Farbe, mit der deine Tiere dargestellt werden] +uittBeastColor [Farbe, in der deine Tiere angezeigt werden] // HASH_VALUE A90AE8A9A8B96C8E // INDEX 3521 -uiSourceColor [Quellen] +uiSourceColor [Rohstoffquellen] // HASH_VALUE 2490A5F5E95B55C9 // INDEX 3522 -uittSourceColor [Farbe, mit der Quellen dargestellt werden] +uittSourceColor [Farbe, in der Rohstoffquellen angezeigt werden] // HASH_VALUE A6F6F880DBE7047C // INDEX 3523 @@ -14809,7 +14791,7 @@ uiDeadColor [Tote] // HASH_VALUE 20C5A07C2BD731C9 // INDEX 3524 -uittDeadColor [Farbe, die eingesetzt wird, um Tote anzuzeigen.] +uittDeadColor [Farbe, in der Tote angezeigt werden] // HASH_VALUE 11688377AAF37CA5 // INDEX 3525 @@ -14817,7 +14799,7 @@ uiPvpEnemyColor [PvP-Feinde] // HASH_VALUE BE666DFE6A368E35 // INDEX 3526 -uittPvpEnemyColor [Farbe, die deine PvP-Feinde anzeigt.] +uittPvpEnemyColor [Farbe, in der deine PvP-Feinde angezeigt werden] // HASH_VALUE DB26FC821AE6D766 // INDEX 3527 @@ -14825,7 +14807,7 @@ uiPvpAllyColor [PvP-Alliierte] // HASH_VALUE BD2689FC6936C143 // INDEX 3528 -uittPvpAllyColor [Farbe, die deine PvP-Alliierten anzeigt] +uittPvpAllyColor [Farbe, in der deine PvP-Alliierten angezeigt werden] // HASH_VALUE DB620082D607563F // INDEX 3529 @@ -14833,7 +14815,7 @@ uiPvpAllyInTeamColor [PvP-Alliierte im Team] // HASH_VALUE B632A3EC778A411A // INDEX 3530 -uittPvpAllyInTeamColor [Farbe, die die PvP-Alliierten in deinem Team anzeigt] +uittPvpAllyInTeamColor [Farbe, in der deine PvP-Alliierten in deinem Team angezeigt werden] // HASH_VALUE CFE3088AAAD2F2B8 // INDEX 3531 @@ -14841,7 +14823,7 @@ uiPvpAllyInGuildColor [PvP-Alliierte in der Gilde] // HASH_VALUE B6789FF47BB9411A // INDEX 3532 -uittPvpAllyInGuildColor [Farbe, die die PvP-Alliierten aus deiner Gilde anzeigt] +uittPvpAllyInGuildColor [Farbe, in der deine PvP-Alliierten in deiner Gilde angezeigt werden] // HASH_VALUE 0927CC801E79889E // INDEX 3533 @@ -14849,7 +14831,7 @@ uiPvpNeutralColor [PvP-Neutrale] // HASH_VALUE 88B14E1185E56E8A // INDEX 3534 -uittPvpNeutralColor [Farbe, die neutrale Charaktere im PvP anzeigt] +uittPvpNeutralColor [Farbe, in der neutrale Charaktere im PvP angezeigt werden] // HASH_VALUE 9E95234B4E265B9B // INDEX 3535 @@ -14897,15 +14879,15 @@ uiNewTitleBold [DU HAST DIR EINEN NEUEN TITEL VERDIENT: ] // HASH_VALUE E8C62C801EB7048D // INDEX 3546 -uiHands [Hände] +uiHands [Hände Aktionsleiste] // HASH_VALUE 20196F9226A2C061 // INDEX 3547 -uiPhraseBook [Aktionsbuch] +uiPhraseBook [Aktionsliste] // HASH_VALUE 6C58143478D82480 // INDEX 3548 -uiMailBox [Mailbox] +uiMailBox [PN Briefe] // HASH_VALUE 659728865DA81C89 // INDEX 3549 @@ -14917,7 +14899,7 @@ uiGuildForum [Gildenforum] // HASH_VALUE CDBAC82A5AE85366 // INDEX 3551 -uiDragRewardToInventory [Drag'n Drop Objekte] +uiDragRewardToInventory [Inventar Drag & Drop] // HASH_VALUE E4B4E4982957003E // INDEX 3552 @@ -15033,7 +15015,7 @@ uiActionShortcuts [Aktionstastenkombinationen] // HASH_VALUE 95A8BC735636B37A // INDEX 3580 -uiSetNumber [Nummer setzen] +uiSetNumber [Zahl setzen] // HASH_VALUE F35954A5EA082E2B // INDEX 3581 @@ -15223,19 +15205,19 @@ Magician_Apprentice [Magierlehrling ] // HASH_VALUE 6A4B6C4A616072C4 // INDEX 3627 -Fyros_Artisan_Apprentice [Fyros Handwerkslehrling ] +Fyros_Artisan_Apprentice [Fyros-Handwerkslehrling ] // HASH_VALUE 6AEA2851616072BE // INDEX 3628 -Matis_Artisan_Apprentice [Matis Handwerkslehrling ] +Matis_Artisan_Apprentice [Matis-Handwerkslehrling ] // HASH_VALUE AB99DB9B14F000AD // INDEX 3629 -Tryker_Artisan_Apprentice [Tryker Handwerkslehrling ] +Tryker_Artisan_Apprentice [Tryker-Handwerkslehrling ] // HASH_VALUE E7AA945E61604AAC // INDEX 3630 -Zorai_Artisan_Apprentice [Zoraï Handwerkslehrling ] +Zorai_Artisan_Apprentice [Zoraï-Handwerkslehrling ] // HASH_VALUE EA085C4FA2C13AB0 // INDEX 3631 @@ -15247,99 +15229,99 @@ Sniper_Apprentice [Scharfschützenlehrling ] // HASH_VALUE AACB5069AD7225CC // INDEX 3633 -Fyros_Armorer_Apprentice [Fyros Rüstungsbaulehrling] +Fyros_Armorer_Apprentice [Fyros-Rüstungshandwerkslehrling] // HASH_VALUE AA6A2873279225CC // INDEX 3634 -Fyros_Jeweler_Apprentice [Fyros Juwelierslehrling] +Fyros_Jeweler_Apprentice [Fyros-Juwelierlehrling] // HASH_VALUE 9EB51889A809A768 // INDEX 3635 -Fyros_Weapon_Smith_Apprentice [Fyros Waffenschmiedlehrling] +Fyros_Weapon_Smith_Apprentice [Fyros-Waffenschmiedelehrling] // HASH_VALUE E2CB1C3DF20697CD // INDEX 3636 -Fyros_Munitioner_Apprentice [Fyros Munitionsbaulehrling] +Fyros_Munitioner_Apprentice [Fyros-Munitionshandwerkslehrling] // HASH_VALUE 30C7BB58C778C7B3 // INDEX 3637 -Fyros_Gun_Smith_Apprentice [Fyros Fernwaffenschmiedlehrling] +Fyros_Gun_Smith_Apprentice [Fyros-Fernwaffenschmiedelehrling] // HASH_VALUE 1C85EC9169C9A768 // INDEX 3638 -Fyros_Shield_Smith_Apprentice [Fyros Schildschmiedlehrling] +Fyros_Shield_Smith_Apprentice [Fyros-Schildschmiedelehrling] // HASH_VALUE A80B9077AD7225CC // INDEX 3639 -Matis_Armorer_Apprentice [Matis Rüstungsbaulehrling] +Matis_Armorer_Apprentice [Matis-Rüstungshandwerkslehrling] // HASH_VALUE A8AA6881279225CC // INDEX 3640 -Matis_Jeweler_Apprentice [Matis Juwelierslehrling] +Matis_Jeweler_Apprentice [Matis-Juwelierslehrling] // HASH_VALUE 1DD5B8902988C368 // INDEX 3641 -Matis_Weapon_Smith_Apprentice [Matis Waffenschmiedlehrling] +Matis_Weapon_Smith_Apprentice [Matis-Waffenschmiedelehrling] // HASH_VALUE 23EBBC44F2A69FB5 // INDEX 3642 -Matis_Munitioner_Apprentice [Matis Munitionsbaulehrling] +Matis_Munitioner_Apprentice [Matis-Munitionshandwerkslehrling] // HASH_VALUE A9575B5FC778AFB5 // INDEX 3643 -Matis_Gun_Smith_Apprentice [Matis Fernwaffenschmiedlehrling] +Matis_Gun_Smith_Apprentice [Matis-Fernwaffenschmiedelehrling] // HASH_VALUE 9BA58C98EA48C368 // INDEX 3644 -Matis_Shield_Smith_Apprentice [Matis Schildschmiedlehrling] +Matis_Shield_Smith_Apprentice [Matis-Schildschmiedelehrling] // HASH_VALUE 2DDB909B80C1F8A3 // INDEX 3645 -Tryker_Armorer_Apprentice [Tryker Rüstungsbaulehrling] +Tryker_Armorer_Apprentice [Tryker-Rüstungshandwerkslehrling] // HASH_VALUE AC3BB88EC2C1F8A3 // INDEX 3646 -Tryker_Jeweler_Apprentice [Tryker Juwelierslehrling] +Tryker_Jeweler_Apprentice [Tryker-Juwelierslehrling] // HASH_VALUE 176BD88768839F77 // INDEX 3647 -Tryker_Weapon_Smith_Apprentice [Tryker Waffenschmiedlehrling] +Tryker_Weapon_Smith_Apprentice [Tryker-Waffenschmiedelehrling] // HASH_VALUE 6C77A7AF21D51892 // INDEX 3648 -Tryker_Munitioner_Apprentice [Tryker Munitionsbaulehrling] +Tryker_Munitioner_Apprentice [Tryker-Munitionshandwerkslehrling] // HASH_VALUE DFF6145261E5E8B6 // INDEX 3649 -Tryker_Gun_Smith_Apprentice [Tryker Fernwaffenschmiedlehrling] +Tryker_Gun_Smith_Apprentice [Tryker-Fernwaffenschmiedelehrling] // HASH_VALUE 57BAF88A67839F6D // INDEX 3650 -Tryker_Shield_Smith_Apprentice [Tryker Schildschmiedlehrling] +Tryker_Shield_Smith_Apprentice [Tryker-Schildschmiedelehrling] // HASH_VALUE A4CB0091AD7225B8 // INDEX 3651 -Zorai_Armorer_Apprentice [Zoraï Rüstungsbaulehrling] +Zorai_Armorer_Apprentice [Zoraï-Rüstungshandwerkslehrling] // HASH_VALUE A46AD89B279225B8 // INDEX 3652 -Zorai_Jeweler_Apprentice [Zoraï Juwelierslehrling] +Zorai_Jeweler_Apprentice [Zoraï-Juwelierslehrling] // HASH_VALUE 1BB5F09DA868F75E // INDEX 3653 -Zorai_Weapon_Smith_Apprentice [Zoraï Waffenschmiedlehrling] +Zorai_Weapon_Smith_Apprentice [Zoraï-Waffenschmiedelehrling] // HASH_VALUE 64CBF451702697B9 // INDEX 3654 -Zorai_Munitioner_Apprentice [Zoraï Munitionsbaulehrling] +Zorai_Munitioner_Apprentice [Zoraï-Munitionshandwerkslehrling] // HASH_VALUE 2A08936CC7D78FA9 // INDEX 3655 -Zorai_Gun_Smith_Apprentice [Zoraï Fernwaffenschmiedlehrling] +Zorai_Gun_Smith_Apprentice [Zoraï-Fernwaffenschmiedelehrling] // HASH_VALUE 9985C4A56928F75E // INDEX 3656 -Zorai_Shield_Smith_Apprentice [Zoraï Schildschmiedlehrling] +Zorai_Shield_Smith_Apprentice [Zoraï-Schildschmiedelehrling] // HASH_VALUE 6232BC93D54813A4 // INDEX 3657 @@ -15876,7 +15858,7 @@ Jungle_Forager [Dschungel-Rohstoffabbauer] // HASH_VALUE F2583CD8EAFADCA8 // INDEX 3790 -Lacustre_Forager [Seenland-Rohstoffabbau] +Lacustre_Forager [Seenland-Rohstoffabbauer] // HASH_VALUE 52EA78461D24AF91 // INDEX 3791 @@ -15984,31 +15966,31 @@ uiWind [Wind] // HASH_VALUE 0000000000000000 // INDEX 3817 -uiContinentIndoors [] +uiContinentIndoors [Innenraum] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 -uiContinentRouteGouffre [Straße des Abgrunds] +uiContinentRouteGouffre [Länder von Umbra] // HASH_VALUE 55BA0868ACD7E77F // INDEX 3819 -uiContinentLeCarrefour [Die Kreuzung] +uiContinentLeCarrefour [Nexus] // HASH_VALUE 8C32E76FEE9B0C91 // INDEX 3820 -uiContinentFyros [Fyros Land] +uiContinentFyros [Brennende Wüste] // HASH_VALUE D9E70B5A0FD5C08E // INDEX 3821 -uiContinentLePaysMalade [Krankes Land] +uiContinentLePaysMalade [Verdorrende Lande] // HASH_VALUE 36B0D4B26CBA046A // INDEX 3822 -uiContinentTryker [Tryker Land] +uiContinentTryker [Aeden Aqueous] // HASH_VALUE 9799B886D6679F82 // INDEX 3823 -uiContinentLesFalaises [Die Klippen] +uiContinentLesFalaises [Grüne Anhöhen] // HASH_VALUE 4D85B0BC6A78FB44 // INDEX 3824 @@ -16016,11 +15998,11 @@ uiContinentLesIlesVivantes [Lebende Inseln] // HASH_VALUE D8E98BABE3D6E895 // INDEX 3825 -uiContinentSources [Quell-Lande] +uiContinentSources [Verbotene Quellen] // HASH_VALUE 594ACCC05D43A390 // INDEX 3826 -uiContinentTerre [Vergessenes Land] +uiContinentTerre [Niemandsland] // HASH_VALUE 600854B064987484 // INDEX 3827 @@ -16376,7 +16358,7 @@ mpfam82 [Lumper Wirbel] // HASH_VALUE A8CAFC925F72DFAE // INDEX 3915 -mpfam83 [Lumper Schnurrhaare] +mpfam83 [Lumper Schnurrbarthaare] // HASH_VALUE A0E8479225E24864 // INDEX 3916 @@ -19906,7 +19888,7 @@ uiCP_JOB2 [MAGIE] // HASH_VALUE C422942547616C26 // INDEX 4796 -uiCP_JOB3 [ROHSTOFFABBAU] +uiCP_JOB3 [ROHSTOFFERNTE] // HASH_VALUE 8AD1AC2F45B2C01E // INDEX 4797 @@ -19922,7 +19904,7 @@ uiCP_Res_M [- Spezialisierung Magie] // HASH_VALUE 8A698BD959F87421 // INDEX 4800 -uiCP_Res_G [- Spezialisierung Rohstoffabbau] +uiCP_Res_G [- Spezialisierung Rohstoffernte] // HASH_VALUE 9965FB1A6640C019 // INDEX 4801 @@ -20928,11 +20910,11 @@ uiDesktopNotIn32 [Um Ryzom im Festermodus laufen zu lassen, muss der Desktop auf // HASH_VALUE 6694E8FCD8E528A4 // INDEX 4969 -uiPhraseLevelFmt [Benötigter Level: %d] +uiPhraseLevelFmt [Benötigte Stufe: %d] // HASH_VALUE A1A9B419D995D468 // INDEX 4970 -uiPhraseSectionFmt [Benötigter Level %min-%max:] +uiPhraseSectionFmt [Benötigte Stufe %min-%max:] // HASH_VALUE EA668B7899D6738D // INDEX 4971 @@ -20940,7 +20922,7 @@ uiSkillTree [Fähigkeitenbaum] // HASH_VALUE DD459C779E500F5D // INDEX 4972 -uiMessageOfTheDay [Durchbreche die Realität und werde wiedergeboren!] +uiMessageOfTheDay [Durchbrich die Realität und werde wiedergeboren!] // HASH_VALUE E1595C8AE4B79496 // INDEX 4973 @@ -20965,7 +20947,7 @@ uiSendingStatReport [Statistikbericht wird gesendet...] // HASH_VALUE 1C094C26DDE12379 // INDEX 4978 -uiDeathXPMalus [XP-Todesstrafe] +uiDeathXPMalus [Sterbe-Erfahrungsstrafe] // HASH_VALUE EB5A047893A4ECAD // INDEX 4979 @@ -21336,7 +21318,7 @@ uiEulaDecline [ABLEHNEN] // INDEX 5070 uiEulaContent [RYZOM-LIZENZVEREINBARUNG\n \n - INFORMATION FÜR DIE BENUTZER: DIESES DOKUMENT IST EIN VERTRAG. BEVOR SIE UNTEN AUF DEN "ICH AKZEPTIERE" KNOPF KLICKEN UND DAMIT DIE INSTALLATION ODER REGISTRIERUNG BEENDEN, SOLLTEN SIE DIESES DOKUMENT SORGFÄLTIG DURCHLESEN. MIT KLICKEN AUF "ICH AKZEPTIERE", BESTÄTIGEN UND AKZEPTIEREN SIE DIE BEDINGUNGEN DIESES VERTRAGES UND DIE DAMIT VERBUNDENEN PFLICHTEN. WENN SIE DIESEN VERTRAG NICHT AKZEPTIEREN ODER MIT DEN BEDINGUNGEN NICHT EINVERSTANDEN SIND, KLICKEN SIE BITTE AUF "ABLEHNEN", INSTALLIEREN DIE SOFTWARE NICHT (ODER DEINSTALLIEREN SIE SIE, FALLS SCHON INSTALLIERT) UND BENUTZEN SIE DIE SOFTWARE NICHT. WENN SIE AUF "ABLEHNEN" KLICKEN UND SIE SELBST DAS SPIEL AUF CD-ROM GEKAUFT HABEN, RATEN WIR IHNEN, SICH MIT IHREM HÄNDLER IN VERBINDUNG ZU SETZEN, UM DAS GELD ENTSPRECHEND DER RÜCKGABEBEDINGUNGEN DES JEWEILIGEN HÄNDLERS ZURÜCKERSTATTET ZU BEKOMMEN. EINE RÜCKERSTATTUNG VON ABONNEMENTGEBÜHREN, WELCHE SIE BEREITS BEZAHLT HABEN ODER WELCHE IM PREIS DER CD-ROM INBEGRIFFEN SEIN KANN, IST UNTER KEINEN UMSTÄNDEN MÖGLICH, INSOFERN SIE DEN VERTRAG NICHT ANERKENNEN UND "ABLEHNEN" KLICKEN. Sollten Sie Schwierigkeiten in Bezug auf diese Lizenzvereinbarung haben, kontaktieren Sie bitte den Ryzom Kundenservice unter der folgenden Emailadresse: support@ryzom.com\n + INFORMATION FÜR DIE BENUTZER: DIESES DOKUMENT IST EIN VERTRAG. BEVOR SIE UNTEN AUF DEN "ICH AKZEPTIERE"-BUTTON KLICKEN UND DAMIT DIE INSTALLATION ODER REGISTRIERUNG BEENDEN, SOLLTEN SIE DIESES DOKUMENT SORGFÄLTIG DURCHLESEN. MIT KLICKEN AUF "ICH AKZEPTIERE", BESTÄTIGEN UND AKZEPTIEREN SIE DIE BEDINGUNGEN DIESES VERTRAGES UND DIE DAMIT VERBUNDENEN PFLICHTEN. WENN SIE DIESEN VERTRAG NICHT AKZEPTIEREN ODER MIT DEN BEDINGUNGEN NICHT EINVERSTANDEN SIND, KLICKEN SIE BITTE AUF "ABLEHNEN", INSTALLIEREN DIE SOFTWARE NICHT (ODER DEINSTALLIEREN SIE SIE, FALLS SCHON INSTALLIERT) UND BENUTZEN SIE DIE SOFTWARE NICHT. WENN SIE AUF "ABLEHNEN" KLICKEN UND SIE SELBST DAS SPIEL AUF CD-ROM GEKAUFT HABEN, RATEN WIR IHNEN, SICH MIT IHREM HÄNDLER IN VERBINDUNG ZU SETZEN, UM DAS GELD ENTSPRECHEND DER RÜCKGABEBEDINGUNGEN DES JEWEILIGEN HÄNDLERS ZURÜCKERSTATTET ZU BEKOMMEN. EINE RÜCKERSTATTUNG VON ABONNEMENTGEBÜHREN, WELCHE SIE BEREITS BEZAHLT HABEN ODER WELCHE IM PREIS DER CD-ROM INBEGRIFFEN SEIN KANN, IST UNTER KEINEN UMSTÄNDEN MÖGLICH, INSOFERN SIE DEN VERTRAG NICHT ANERKENNEN UND "ABLEHNEN" KLICKEN. Sollten Sie Schwierigkeiten in Bezug auf diese Lizenzvereinbarung haben, kontaktieren Sie bitte den Ryzom Kundenservice unter der folgenden Emailadresse: support@ryzom.com\n \n 1. GEGENSTAND DES VERTRAGES. Die Ryzom Lizenzvereinbarung (hier im Weiteren auf den "Vertrag" bezogen) ist ein Vertrag zwischen Ihnen und Winch Gate Property Limited ("Winch Gate" oder "Wir/Uns"). Sein Zweck ist es, die Bedingungen aufzuzeigen, unter welchen Winch Gate die folgenden Leistungen (wie weiter unten in Paragraph 2 definiert) für die autorisierten Benutzer in Bezug auf das Massively Multiplayer Onlinegame Ryzom ("Ryzom" oder "das Spiel" oder "Ryzom Ring") zur Verfügung stellen wird. Die Leistungen umfassen die Eröffnung und Erhaltung eines Accounts, der es dem Benutzer ermöglicht, das Spiel über das Internet zu spielen und Nutzung des Spieles sicherzustellen.\n \n @@ -22539,7 +22521,7 @@ uimwBGDownloader [PATCHER] // HASH_VALUE CA92A4228801E834 // INDEX 5359 -uimwCosmetics [KOSMETIKA] +uimwCosmetics [STYLING] // HASH_VALUE 9759D85E1014FC38 // INDEX 5360 @@ -22551,11 +22533,11 @@ uiCosmTatoo [Tattoo ändern] // HASH_VALUE 5ECD741E95F7341E // INDEX 5362 -uittNotEnoughMoney [Du hast nicht genug Geld, um das zu kaufen.] +uittNotEnoughMoney [Du hast nicht genug Dapper, um das zu kaufen.] // HASH_VALUE 923E66223C721EEB // INDEX 5363 -uittNotEnoughGuildMoney [Deine Gilde hat nicht genug Geld, um das zu kaufen] +uittNotEnoughGuildMoney [Deine Gilde hat nicht genug Dapper, um das zu kaufen] // HASH_VALUE 9EA0F87CB6A59313 // INDEX 5364 @@ -22579,11 +22561,11 @@ uittBadResalePrice [Du hast einen ungültigen Weiterverkaufspreis eingegeben. De // HASH_VALUE C61CAA56C8BA7AC4 // INDEX 5369 -uittWontBuyThis [Ich werde das nicht kaufen.] +uittWontBuyThis [Ich kaufe das nicht.] // HASH_VALUE 0E5310363AAED306 // INDEX 5370 -uiYuboChat [YUBO CHAT] +uiYuboChat [YUBO-CHAT] // HASH_VALUE 5D733E0FA02A84AD // INDEX 5371 @@ -22595,7 +22577,7 @@ uiMouseHardware [Hardware] // HASH_VALUE 45C5C008EB1984B7 // INDEX 5373 -uiCannotWriteDynChat [Du kannst nicht in diesem Chat schreiben.] +uiCannotWriteDynChat [Du kannst nicht in diesen Chatkanal schreiben.] // HASH_VALUE CC112431CA83BC39 // INDEX 5374 @@ -22697,23 +22679,23 @@ uittMagicResistTable [Den Zaubersprüchen der Kreaturen und Spieler kann vollst // HASH_VALUE CC25343C56C9D2F7 // INDEX 5395 -uiResist_Desert [Bereich der Wüste] +uiResist_Desert [Wüstenmagie-Widerstand] // HASH_VALUE 9D21928895966E9E // INDEX 5396 -uiResist_Forest [Bereich des Waldes] +uiResist_Forest [Waldmagie-Widerstand] // HASH_VALUE C01AA450C8187C6A // INDEX 5397 -uiResist_Lacustre [Bereich der Seen] +uiResist_Lacustre [Seenlandmagie-Widerstand] // HASH_VALUE D4F4A87FD8D28B72 // INDEX 5398 -uiResist_Jungle [Bereich des Dschungels] +uiResist_Jungle [Dschungelmagie-Widerstand] // HASH_VALUE 1328E38015B8CC7D // INDEX 5399 -uiResist_PrimRoot [Bereich der Urwurzeln] +uiResist_PrimRoot [Urwurzelmagie-Widerstand] // HASH_VALUE 0B3B8D626ED819EA // INDEX 5400 @@ -22722,7 +22704,7 @@ uittResist_Desert [Widerstand gegen Zaubersprüche aus dem Wüstenbereich: @{6F6 @{T4}- Chancen einem Spruch von @{6F6F}Schmerzzauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF} zu widerstehen\n @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n @{T4}- @{6F6F}Feuer@{FFFF}\n - @{T4}- @{6F6F}Blindheit@{FFFF}\n + @{T4}- @{6F6F}Blenden@{FFFF}\n @{T4}- @{6F6F}Wahnsinn@{FFFF}\n ] @@ -22739,13 +22721,13 @@ uittResist_Forest [Widerstand gegen Zaubersprüche aus dem Waldbereich: @{6F6F}% // HASH_VALUE C9600D6865D27D73 // INDEX 5402 -uittResist_Lacustre [Widerstand gegen Zaubersprüche aus dem Seenbereich: @{6F6F}%v@{FFFF} %max\n +uittResist_Lacustre [Widerstand gegen Zaubersprüche aus dem Seenlandbereich: @{6F6F}%v@{FFFF} %max\n @{T4}- Chancen, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n @{T4}- Chancen, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n @{T4}- @{6F6F}Kälte@{FFFF}\n @{T4}- @{6F6F}Schockwelle@{FFFF}\n - @{T4}- @{6F6F}Betäuben@{FFFF}\n + @{T4}- @{6F6F}Betäubung@{FFFF}\n ] // HASH_VALUE 6D27C3213D0933D9 @@ -22761,7 +22743,7 @@ uittResist_Jungle [Widerstand gegen Zaubersprüche aus dem Dschungelbereich: @{6 // HASH_VALUE C84D03E6ED023088 // INDEX 5404 -uittResist_PrimRoot [Widerstand gegen Zaubersprüche aus dem Dschungelbereich: @{6F6F}%v@{FFFF} %max\n +uittResist_PrimRoot [Widerstand gegen Zaubersprüche aus dem Urwurzelbereich: @{6F6F}%v@{FFFF} %max\n @{T4}- Chancen einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n @{T4}- Chancen einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n @@ -22900,15 +22882,15 @@ uiMFNext [Weiter] // HASH_VALUE 1BA94F762BB2AC62 // INDEX 5437 -uiMFDeleteMailTitle [Mail löschen] +uiMFDeleteMailTitle [Nachricht löschen] // HASH_VALUE 8F75FC2F68F786B0 // INDEX 5438 -uiMFEraseMail [Mail löschen?] +uiMFEraseMail [Nachricht löschen?] // HASH_VALUE 79152CAEF0165762 // INDEX 5439 -uiMFEraseMailQuestion [Willst du diese Mail wirklich löschen? ] +uiMFEraseMailQuestion [Willst du diese Nachricht wirklich löschen? ] // HASH_VALUE 6B89EC7BECC7FC8A // INDEX 5440 @@ -22972,11 +22954,11 @@ uiMFMessages [Nachrichten] // HASH_VALUE E6181C94EBE70B56 // INDEX 5455 -uiMFUndelivrableMail [Mail kann nicht zugestellt werden.] +uiMFUndelivrableMail [Mail kann nicht zugestellt werden] // HASH_VALUE 2D4662ECB080CC5C // INDEX 5456 -uiMFUndelivrableMailTo [Server konnte die Mail nicht versenden an ] +uiMFUndelivrableMailTo [Server konnte die Mail nicht zustellen an ] // HASH_VALUE 26B58F895A049457 // INDEX 5457 @@ -22984,7 +22966,7 @@ uiMFUndelivrableMailCheck [Bitte überprüfe den Namen des Empfängers.] // HASH_VALUE 6B8682A168644431 // INDEX 5458 -uiMFMailContent [Mail-Inhalt:] +uiMFMailContent [Briefinhalt: ] // HASH_VALUE DFE6607F5557844B // INDEX 5459 @@ -23091,14 +23073,14 @@ Eine Bestätigungs-Email wurde an folgende Adresse geschickt: uiSubmitSucces1 [Glückwunsch!\n \n Du hast erfolgreich einen Ryzom-Account erstellt.\n - Es wurde eine Email an die folgende Adresse gesandt:\n + Es wurde eine E-Mail an die folgende Adresse gesandt:\n ] /* OLD VALUE : [ Please click on the link that it contains to activate your new account. You must activate your account before you can log in.] */ /* OLD VALUE : [ -Bitte klicke auf den in der Email enthaltenen Link, um Deinen Account zu aktivieren. Bevor du Dich einloggen kannst, muss Dein Account aktiviert worden sein.] */ +Bitte klicke auf den in der E-Mail enthaltenen Link, um Deinen Account zu aktivieren. Bevor du Dich einloggen kannst, muss Dein Account aktiviert worden sein.] */ // HASH_VALUE 3B64D40332050146 // INDEX 5483 uiSubmitSucces2 [\n @@ -23288,220 +23270,220 @@ uiTextCommandFT3 [] uiTextCommandFT4 [] // HASH_VALUE 24B816A0C9599FAC -// INDEX 5529 -uiLoadingString0 [Die Mektoubfutterrechnung der letzten 4 Wochen wird automatisch beglichen, vielen Dank.] +// INDEX 5530 +uiLoadingString0 [Die Mektoubfutterrechnung der letzten 4 Wochen wird automatisch abgezogen; vielen Dank.] // HASH_VALUE E98900FFF775E4A4 -// INDEX 5530 +// INDEX 5531 uiLoadingString1 [Alle Mektoubs der Gilde werden gerade gefüttert, vielen Dank für Deine Spende.] // HASH_VALUE EC380C7826B0E2B8 -// INDEX 5531 +// INDEX 5532 uiLoadingString2 [Yubos sind Freunde, kein Futter!] // HASH_VALUE 982918929DE29270 -// INDEX 5532 +// INDEX 5533 uiLoadingString3 [Hier könnte dein Handelsangebot stehen!] // HASH_VALUE A9A928B20D40C067 -// INDEX 5533 -uiLoadingString4 [Bitte die Karavanwachen nicht mehr mit Dappern bewerfen, rumstehen ist ihr Job!] +// INDEX 5534 +uiLoadingString4 [Bitte die Karavanwachen nicht mehr mit Dappern bewerfen, Rumstehen ist ihr Job!] // HASH_VALUE 57987089DF3E8526 -// INDEX 5534 -uiLoadingString5 [Wettervorhersage in Fyros: staubig, windig, heiß... Fyros halt!] +// INDEX 5535 +uiLoadingString5 [Wettervorhersage in Pyr: staubig, windig, heiß... Wüste halt!] // HASH_VALUE DDCF5B28C4882657 -// INDEX 5535 -uiLoadingString6 [Wo bin ich? ] +// INDEX 5536 +uiLoadingString6 [Wo bin ich hier?] // HASH_VALUE C3845961575BCF17 -// INDEX 5536 -uiLoadingString7 [Wettervorhersage in Tryker: ziemlich bunt mit Schirmchen und Strohhalm!] +// INDEX 5537 +uiLoadingString7 [Wettervorhersage in Fairhaven: ziemlich bunt mit Schirmchen und Strohhalmen!] // HASH_VALUE 38F016093D5F5AF8 -// INDEX 5537 -uiLoadingString8 [Wettervorhersage in Matis: 10:00 Uhr Regen, 16:00 Uhr Regen, 20:00 Uhr...] +// INDEX 5538 +uiLoadingString8 [Wettervorhersage in Yrkanis: 10:00 Uhr Regen, 16:00 Uhr Regen, 20:00 Uhr Regen...] // HASH_VALUE 8934F3FADA08A86E -// INDEX 5538 -uiLoadingString9 [Horoskop heute: Meide den Kontakt zu 10 Meter großen Kitins!] +// INDEX 5539 +uiLoadingString9 [Horoskop heute: meide den Kontakt zu 10 Meter großen Kitins!] // HASH_VALUE A235B485FD91F379 -// INDEX 5539 +// INDEX 5540 uiLoadingString10 [Der Heiler: 1121341... verdammt!] // HASH_VALUE 7185186ACE241B26 -// INDEX 5540 -uiLoadingString11 [Der Krieger: Ha, elender Kitin! Nimm dies *pieks* und lach nicht!!!] +// INDEX 5541 +uiLoadingString11 [Der Krieger: "Ha, elender Kitin! Nimm dies!" *pieks* ... "und lach nicht!!!"] // HASH_VALUE D3A4AE55153998BE -// INDEX 5541 -uiLoadingString12 [Der Magier: 3 Spells pro Mob schaut her! *brutzel* oh... *schluck* da kommen 5...] +// INDEX 5542 +uiLoadingString12 [Der Magier: "3 Sprüche pro Mob, schaut her!" *brutzel* "Oh..." *Schluck* "Jetzt kommen 5..."] // HASH_VALUE A235B485FD91F379 -// INDEX 5542 -uiLoadingString13 [Der Beherrschungsmagier: Wartet, ich schick den Boss kurz weg... *resist* ups...] +// INDEX 5543 +uiLoadingString13 [Der Beherrschungsmagier: "Wartet, ich schick den Boss kurz weg..." *widersteht* "Ups..."] // HASH_VALUE 2C7660055814BCAD -// INDEX 5543 -uiLoadingString14 [Der Beherrschungsmagier: Lass uns mal in Ruhe drüber reden, Kirosta? *stun*] +// INDEX 5544 +uiLoadingString14 [Der Beherrschungsmagier: "Lass uns mal ganz in Ruhe drüber reden, Kirosta..." *stun*] // HASH_VALUE DA2580B0E74AB8DE -// INDEX 5544 -uiLoadingString15 [Der Harvester: Buddeln und Chatten? Kein Problem! ... *bumm* argh...] +// INDEX 5545 +uiLoadingString15 [Der Harvester: "Buddeln und Chatten? Kein Problem!" ... *bumm* "Argh..."] // HASH_VALUE 9F5A8863CDA463CB -// INDEX 5545 -uiLoadingString16 [Der Crafter: Wart, ich bau mir noch schnell ne Rüstung! *degrade*...*degrade*...*seufz*...] +// INDEX 5546 +uiLoadingString16 [Der Crafter: "Wart, ich bau mir noch schnell ne Rüstung!" *degrade*...*degrade*...*seufz*...] // HASH_VALUE 4A93117E839C41A5 -// INDEX 5546 +// INDEX 5547 uiLoadingString17 [Marktwirtschaft: Kaufe 3 Tickets zum Freundschaftspreis von... 3 Tickets!] // HASH_VALUE 0D16EA857967AA4C -// INDEX 5547 -uiLoadingString18 [Merke: 'Buddeln bis der Arzt kommt' kann man durchaus wörtlich nehmen!] +// INDEX 5548 +uiLoadingString18 [Merke: 'Buddeln bis der Arzt kommt' kann man auf Atys durchaus wörtlich nehmen!] // HASH_VALUE C8D5F76A5807BF6E -// INDEX 5548 -uiLoadingString19 [Vorsicht: Swingende, besoffene Yubos in Miniröcken gesichtet, Tryker dementieren Beteiligung.] +// INDEX 5549 +uiLoadingString19 [Vorsicht: Swingende, besoffene Yubos in Miniröcken gesichtet. Tryker dementieren Beteiligung!] // HASH_VALUE 47BCE034A35B081F -// INDEX 5549 -uiLoadingString20 [*gähn* Guten Morgen, gut geschlafen? *auf Uhr schau* ähm... äh... Hallo!] +// INDEX 5550 +uiLoadingString20 [*gähn* "Guten Morgen, gut geschlafen?" *auf die Uhr schau* "Ähm... äh... Hallo alle!"] // HASH_VALUE 86E4AC9E5A742C23 -// INDEX 5550 +// INDEX 5551 uiLoadingString21 [Schade, Trykerweitwurf aufgrund zu wehrhafter Tryker abgesagt!] // HASH_VALUE CD0616F57A127246 -// INDEX 5551 +// INDEX 5552 uiLoadingString22 [Nicht vergessen: Packer bürsten, Appartement aufräumen, Gildenhalle polieren...] // HASH_VALUE 8CC27B9A2CA9589B -// INDEX 5552 +// INDEX 5553 uiLoadingString23 [Keine Tastatur gefunden. Drücke beliebige Taste, um fortzufahren.] // HASH_VALUE E9B90C41F6A1E0AA -// INDEX 5553 -uiLoadingString24 [An alles gedacht? Kaffee? Chips? Pizza? Slim Fast? Na dann los!] +// INDEX 5554 +uiLoadingString24 [An alles gedacht? Kaffee? Chips? Pizza? Slim Fast? Na, dann los!] // HASH_VALUE 7218245C26B0E2B8 -// INDEX 5554 +// INDEX 5555 uiLoadingString25 [Ladedauer verzögert sich, empfehle Powerleveln des RAMs zur Beschleunigung.] // HASH_VALUE 4BB6F756D6E77479 -// INDEX 5555 -uiLoadingString26 [Rechtschreibkontrolle läuft...] +// INDEX 5556 +uiLoadingString26 [Rechtschreibkontrolleur nimmt sich heute frei...] // HASH_VALUE D955C83AACB50070 -// INDEX 5556 +// INDEX 5557 uiLoadingString27 [Kamis werden gewaschen, gefönt und flauschig gebürstet...] // HASH_VALUE 2D5ACC1B8911C2AB -// INDEX 5557 +// INDEX 5558 uiLoadingString28 [Der Yubo: läuft und läuft und läuft...] // HASH_VALUE E4794CC009B1A0AD -// INDEX 5558 -uiLoadingString29 [Installiere neue Chatfarben, pink, magenta und aprikot...] +// INDEX 5559 +uiLoadingString29 [Neue Chatfarben werden installiert: pink, magenta und aprikot...] // HASH_VALUE 9A769398D849FB83 -// INDEX 5559 -uiLoadingString30 [Füge unbekannte Portale hinzu, die nie ein Homin zuvor betreten hat!] +// INDEX 5560 +uiLoadingString30 [Unbekannte Portale werden hinzugefügt, die nie ein Homin zuvor betreten hat!] // HASH_VALUE 6CB8DCBA26B0E2B8 -// INDEX 5560 +// INDEX 5561 uiLoadingString31 [Atys: unendliche Weiten... unendliche Gefahren... unendlich viele Kitins!] // HASH_VALUE 2844727AEC68D05A -// INDEX 5561 -uiLoadingString32 [GM-Rechte hinzugefügt, viel Spaß auf Atys!] +// INDEX 5562 +uiLoadingString32 [GM-Rechte hinzugefügt, wieder aberkannt, trotzdem viel Spaß auf Atys!] // HASH_VALUE A6A94808F765ACA5 -// INDEX 5562 -uiLoadingString33 [Aktiviere Godmode für Yubos...] +// INDEX 5563 +uiLoadingString33 [Godmode für Yubos wird aktiviert...] // HASH_VALUE D83B54B9E988EF1F -// INDEX 5563 -uiLoadingString34 [Fülle Quellen auf - das ist mehr Arbeit als du denkst!] +// INDEX 5564 +uiLoadingString34 [Rohstoffquellen werden aufgefüllt... das ist mehr Arbeit, als du denkst!] // HASH_VALUE DBFAF08F5CC96722 -// INDEX 5564 -uiLoadingString35 [Ich sehe dich User, aber nicht gut, putz mal den Monitor! ] +// INDEX 5565 +uiLoadingString35 [Ich sehe dich User, aber nicht gut... putz mal den Monitor! ] // HASH_VALUE 23B5B3719B486459 -// INDEX 5565 -uiLoadingString36 [Bäume werden gepflanzt und Grotten gegraben...] +// INDEX 5566 +uiLoadingString36 [Grotten werden im Seenland gegraben...] // HASH_VALUE C5047097A6340F71 -// INDEX 5566 -uiLoadingString37 [Magie wird getestet...] +// INDEX 5567 +uiLoadingString37 [Wettereffekte werden getestet...] // HASH_VALUE 8895244968FA2376 -// INDEX 5567 +// INDEX 5568 uiLoadingString38 [Kitins werden gefüttert...] // HASH_VALUE 4C15D78519D67645 -// INDEX 5568 +// INDEX 5569 uiLoadingString39 [Yubos werden geklont...] // HASH_VALUE AE3A484B87D4AF5D -// INDEX 5569 +// INDEX 5570 uiLoadingString40 [Unsichtbare Arbeiter werden gejagt...] // HASH_VALUE 1CE4869B2D587BA1 -// INDEX 5570 +// INDEX 5571 uiLoadingString41 [Himmel wird gereinigt...] // HASH_VALUE 5E8DEB579667D7AF -// INDEX 5571 -uiLoadingString42 [Blase die Atys-Kugel auf...] +// INDEX 5572 +uiLoadingString42 [Die Atys-Kugel wird aufgeblasen...] // HASH_VALUE DCBA205296141008 -// INDEX 5572 +// INDEX 5573 uiLoadingString43 [GMs werden versteckt...] // HASH_VALUE 76760A7A4CF0DACE -// INDEX 5573 -uiLoadingString44 [Die Magie wird reingepumpt... ] +// INDEX 5574 +uiLoadingString44 [Magie wird in Atys hineingepumpt... ] // HASH_VALUE 0D04174F9C980447 -// INDEX 5574 -uiLoadingString45 [Installiere Ninja-Yubos...] +// INDEX 5575 +uiLoadingString45 [Ninja-Yubos werden installiert...] // HASH_VALUE 5986E37DE9942C70 -// INDEX 5575 +// INDEX 5576 uiLoadingString46 [Ragusse werden abgelenkt...] // HASH_VALUE 0C7AA3809C77E378 -// INDEX 5576 +// INDEX 5577 uiLoadingString47 [Gravitationskonstane von Atys wird berechnet...] // HASH_VALUE 28BB8F6D5A15ACBB -// INDEX 5577 -uiLoadingString48 [Geheime Untergrund Militär Einrichtung wird hochgefahren...] +// INDEX 5578 +uiLoadingString48 [Geheime Untergrund-Militär-Einrichtung wird hochgefahren...] // HASH_VALUE A6BAB0718A5CFB73 -// INDEX 5578 +// INDEX 5579 uiLoadingString49 [Zoraï-Ale wird gebraut...] // HASH_VALUE 6609F4514840E4A9 -// INDEX 5579 -uiLoadingString50 [Fülle Wasser in die entsprechenden Löcher...] +// INDEX 5580 +uiLoadingString50 [Wasser wird in die entsprechenden Vertiefungen gefüllt...] // HASH_VALUE 1BA9D89090FEA62B -// INDEX 5580 -uiLoadingString51 [Zeug wird im Boden versteckt...] +// INDEX 5581 +uiLoadingString51 [Geheimes Zeug wird im Boden versteckt...] // HASH_VALUE 6F798442B63488B7 -// INDEX 5581 -uiLoadingString52 [Gingos werden geärgert um die Aggressivität zu erhöhen... ] +// INDEX 5582 +uiLoadingString52 [Gingos werden geärgert, um die Aggressivität zu erhöhen... ] // HASH_VALUE E0617F4556CA98A4 -// INDEX 5582 -uiLoadingString53 [Lasse Gras wachsen...] +// INDEX 5583 +uiLoadingString53 [Gras wird wachsen gelassen...] // HASH_VALUE 5E07187358A2309C // INDEX 5583 @@ -23851,7 +23833,7 @@ uiMk_action1_1 [Stopp] // HASH_VALUE 8DECD25E643E5382 // INDEX 5666 uiMk_action1_1_tt [Klicken, um @{6F6F}stehen zu bleiben@{FFFF}.\n - Du kannst auch klicken und beide Mausbuttons loslassen.] + Du kannst auch klicken und beide Maustasten loslassen.] // HASH_VALUE EE186C9062B94490 // INDEX 5667 @@ -23888,7 +23870,7 @@ uiMk_action3_1 [Rennen] // HASH_VALUE D74EF23C399585C3 // INDEX 5674 uiMk_action3_1_tt [Du befindest dich im @{6F6F}Rennmodus@{FFFF}.\n - Klicken, um zu gehen] + Klicke, um zu gehen] // HASH_VALUE AD6B0C9EE6F85089 // INDEX 5675 @@ -23897,8 +23879,8 @@ uiMk_action4_0 [Ausweichen] // HASH_VALUE 39FA40D13D91D381 // INDEX 5676 uiMk_action4_0_tt [Du befindest dich im @{6F6F}Ausweichmodus@{FFFF}.\n - Deine Chancen auszuweichen hängen von deinem Ausweichenwert und insbesondere von deiner Ausrüstung ab (siehe @{6F6F}Identitätsfenster@{FFFF}).\n - Klicken, um in den Abwehrmodus zu wechseln.] + Deine Ausweich-Chancen hängen von deinem Ausweich-Wert und insbesondere von deiner Ausrüstung ab (siehe @{6F6F}Identitätsfenster@{FFFF}).\n + Klicke, um in den Abwehrmodus zu wechseln.] // HASH_VALUE 619924766177348A // INDEX 5677 @@ -23907,8 +23889,8 @@ uiMk_action4_1 [Abwehr] // HASH_VALUE 90DC71A86F7FFD98 // INDEX 5678 uiMk_action4_1_tt [Du befindest dich im @{6F6F}Abwehrmodus@{FFFF}.\n - Deine Chancen abzuwehren hängen von deinem Abwehrenwert und insbesondere von deiner Ausrüstung ab (siehe @{6F6F}Identitätsfenster@{FFFF}).\n - Klicken, um in den Ausweichmodus zu wechseln.] + Deine Abwehr-Chancen hängen von deinem Abwehr-Wert und insbesondere von deiner Ausrüstung ab (siehe @{6F6F}Identitätsfenster@{FFFF}).\n + Klicke, um in den Ausweichmodus zu wechseln.] // HASH_VALUE 601C4404705854C4 // INDEX 5679 @@ -23916,7 +23898,7 @@ uiMk_action5_0 [Angreifen] // HASH_VALUE 54FC5F595D478E32 // INDEX 5680 -uiMk_action5_0_tt [Klicken, um das ausgewählte Ziel @{6F6F}anzugreifen@{FFFF}.\n +uiMk_action5_0_tt [Klicke, um das ausgewählte Ziel @{6F6F}anzugreifen@{FFFF}.\n Du kannst auch eine Kampfaktion in der Aktionsleiste oben auf dem Bildschirm auswählen (Standard-Einstellung).] // HASH_VALUE 48E7AA788577A28A @@ -23925,7 +23907,7 @@ uiMk_action5_1 [Sich zurückziehen] // HASH_VALUE C2B68950DFDA59AB // INDEX 5682 -uiMk_action5_1_tt [Klicken, um sich @{6F6F}zurückzuziehen@{FFFF}.] +uiMk_action5_1_tt [Klicke, um dich @{6F6F}zurückzuziehen@{FFFF}.] // HASH_VALUE 701C8414649C9484 // INDEX 5683 @@ -23933,8 +23915,8 @@ uiMk_action6 [Abbauen] // HASH_VALUE 4194992211935C5F // INDEX 5684 -uiMk_action6_tt [Klicken, um die ausgewählte Quelle @{6F6F}abzubauen@{FFFF}.\n - Du kannst auch eine Abbauaktion der Aktionsleiste oben auf dem Bildschirm benutzen (Standard-Einstellung).] +uiMk_action6_tt [Klicke, um die ausgewählte Quelle @{6F6F}abzubauen@{FFFF}.\n + Du kannst auch eine Abbauaktion der Aktionsleiste oben auf dem Bildschirm wählen (Standard-Einstellung).] // HASH_VALUE 6C9A0896E4083C94 // INDEX 5685 @@ -23951,7 +23933,7 @@ uiMk_action8 [Team verlassen] // HASH_VALUE D30B28A72E50A43F // INDEX 5688 -uiMk_action8_tt [Klicken, um dein Team @{6F6F}zu verlassen@{FFFF}.\n +uiMk_action8_tt [Klicke, um dein Team @{6F6F}zu verlassen@{FFFF}.\n Du kannst dein Team auch über das Kontextmenü verlassen (Rechtsklick auf einen Spieler).] // HASH_VALUE 6C9C1440E0082494 @@ -23960,7 +23942,7 @@ uiMk_action9 [Sprechen mit] // HASH_VALUE 46BCF3453997A04A // INDEX 5690 -uiMk_action9_tt [Klicken, um mit dem ausgewählten Spieler zu @{6F6F}sprechen@{FFFF}.\n +uiMk_action9_tt [Klicke, um mit dem ausgewählten Spieler zu @{6F6F}sprechen@{FFFF}.\n Du kannst auch über das Kontextmenü mit ihm sprechen (Rechtsklick auf dem Bildschirm).] // HASH_VALUE 7498F40C701C3484 @@ -23981,11 +23963,11 @@ uiMk_interaction4 [Ruhm] // HASH_VALUE 2AF7907CAA77948A // INDEX 5695 -uiMk_interaction5 [Mailbox] +uiMk_interaction5 [PN Briefe] // HASH_VALUE 9B1710751F660483 // INDEX 5696 -uiMk_interaction5b [Web] +uiMk_interaction5b [Webfenster] // HASH_VALUE 6909C46F6B06949A // INDEX 5697 @@ -24021,7 +24003,7 @@ uiMk_system5 [Verbindung] // HASH_VALUE E0C17071CE06AE8C // INDEX 5705 -uiMk_system6 [MP3-Spieler] +uiMk_system6 [MP3-Player] // HASH_VALUE 0AB87894E997E286 // INDEX 5706 @@ -24037,7 +24019,7 @@ uiWelcomeTitle [Willkommen auf Atys!] // HASH_VALUE 56E429B73958EE09 // INDEX 5709 -uiWelcomeIntro [Atys ist ein blühender, pulsierender Pflanzenplanet, der sich wie ein gigantischer, das Licht seiner strahlenden Sonne tankender Organismus ständig weiterentwickelt.] +uiWelcomeIntro [Atys ist ein blühender, pulsierender Pflanzenplanet, der wie ein gigantischer Organismus das Licht seiner strahlenden Sonne tankt und sich ständig weiterentwickelt.] // HASH_VALUE 5D3AA67CC8B6D41D // INDEX 5710 @@ -24045,7 +24027,7 @@ uiWelcomeMoveTitle [Fortbewegung] // HASH_VALUE D4C71AF9D6A92989 // INDEX 5711 -uiWelcomeMove [Um sich fortzubewegen, drücke die Pfeiltasten der Tastatur oder beide Mausknöpfe gleichzeitig.] +uiWelcomeMove [Um dich fortzubewegen, drücke die Pfeiltasten der Tastatur oder beide Maustasten gleichzeitig.] // HASH_VALUE D0571F855967D681 // INDEX 5712 @@ -24053,7 +24035,7 @@ uiWelcomeWhatTitle [Was tun?] // HASH_VALUE D44A5D740D58483D // INDEX 5713 -uiWelcomeWhat [Befolge die Anweisungen deines Missionsjournals, das sich links auf dem Bildschirm befindet.] +uiWelcomeWhat [Beachte die Anweisungen deines Missionsjournals, das sich links auf dem Bildschirm befindet.] // HASH_VALUE 1C18B394DC469279 // INDEX 5714 @@ -24070,27 +24052,27 @@ uittIdentityTitle [Klicke auf den derzeitigen @{6F6F}Titel@{FFFF}, um die Liste // HASH_VALUE AFAB8CAFEE6868F2 // INDEX 5717 -uittIdentityInfo [Ermöglicht herauszufinden, was alles nötig war, um den derzeit angezeigten @{6F6F}Titel @{FFFF}zu erhalten.] +uittIdentityInfo [Ermöglicht, herauszufinden, was alles nötig war, um den derzeit angezeigten @{6F6F}Titel @{FFFF}zu erhalten.] // HASH_VALUE CC9875537F4EABA4 // INDEX 5718 uittIdentityHP [@{6F6F}Lebenspunkte@{FFFF}: %n\n - Wenn deine Lebenspunkte auf 0 sind, fällst du ins Koma und wenn deine Freunde dich nicht schnell heilen, wirst du sterben.] + Wenn die Lebenspunkte auf 0 sind, fällt deine Spielfigur ins Koma. Wenn deine Spielfigur in der Koma-Phase nicht von anderen Spielern geheilt wird, wird sie von den Mächten von Atys wiederbelebt und gewinnt danach eine Zeitlang keine Erfahrung.] // HASH_VALUE E62E03C44CC6CCDF // INDEX 5719 uittIdentitySap [@{6F6F}Sappunkte@{FFFF}: %n\n - Wenn du sehr wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. ] + Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] // HASH_VALUE 96475BB346DF4BF2 // INDEX 5720 uittIdentitySta [@{6F6F}Ausdauerpunkte@{FFFF}: %n\n - Wenn du sehr wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat, kannst du nur den Standardangriff durchführen. ] + Wenn du zu wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), durch andere Spieler, Verbrauchsgüter oder Fertigkeiten (teils) geheilt wurde, kannst du nur den Standardangriff durchführen. ] // HASH_VALUE 5429E1693D81762D // INDEX 5721 uittIdentityFoc [@{6F6F}Fokuspunkte@{FFFF}: %n\n - Wenn du sehr wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben.] + Wenn du zu wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben und Handwerkserzeugnissen keine Boni geben. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] // HASH_VALUE 98A8D5EC1A1065BF // INDEX 5722 @@ -24199,32 +24181,32 @@ uittGaugesActionBar [Zeigt den Fortschritt der @{6F6F}Aktion @{FFFF}an, die gera // HASH_VALUE 4D1DFC058F6A8F05 // INDEX 5746 uittGaugesHP [@{6F6F}Lebenspunkte@{FFFF}:\n - Wenn der Stand deiner Lebenspunkte auf 0 ist, fällst du ins Koma und wenn deine Freunde sich nicht schnell um dich kümmern, wirst du sterben.] + Wenn die Lebenspunkte auf 0 sind, fällt deine Spielfigur ins Koma. Wenn deine Spielfigur in der Koma-Phase nicht von anderen Spielern geheilt wird, wird sie von den Mächten von Atys wiederbelebt und gewinnt danach eine Zeitlang keine Erfahrung.] // HASH_VALUE 3218DC16D5185B23 // INDEX 5747 uittGaugesSap [@{6F6F}Sappunkte@{FFFF}:\n - Wenn du sehr wenig Sap hast, kannst du keinen Zaubersprüche mehr sprechen.] + Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] // HASH_VALUE BCFAB72720F87E38 // INDEX 5748 uittGaugesSta [@{6F6F}Ausdauerpunkte@{FFFF}:\n - Wenn du sehr wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat, kannst du nur den Standardangriff durchführen.] + Wenn du zu wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), durch andere Spieler, Verbrauchsgüter oder Fertigkeiten (teils) geheilt wurde, kannst du nur den Standardangriff durchführen. ] // HASH_VALUE 21A49D1370B3A93A // INDEX 5749 uittGaugesFoc [@{6F6F}Fokuspunkte@{FFFF}:\n - Wenn du sehr wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben.] + Wenn du zu wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben und Handwerkserzeugnissen keine Boni geben. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] // HASH_VALUE 1AC7CE1C76B16FB8 // INDEX 5750 uittHandR [@{6F6F}Rechte Hand\n - @{FFFF}Klicke, um alle verfügbaren Gegenstände für diese Hand anzuzeigen.] + @{FFFF}Klicke mit der linken Maustaste auf das Hand-Icon, um alle verfügbaren Gegenstände für diese Hand anzuzeigen.] // HASH_VALUE 1AC7CE10F4122BBB // INDEX 5751 uittHandL [@{6F6F}Linke Hand\n - @{FFFF}Klicke, um alle verfügbaren Gegenstände für diese Hand anzuzeigen.] + @{FFFF}Klicke mit der linken Maustaste auf das Hand-Icon, um alle verfügbaren Gegenstände für diese Hand anzuzeigen.] // HASH_VALUE D0DC28E41A1C9C9D // INDEX 5752 @@ -24245,40 +24227,40 @@ uittAnimalInv [Das @{6F6F}Inventar @{FFFF}bietet Zugang zu den Gegenständen, di // HASH_VALUE EC6515C0797E672F // INDEX 5756 uittChatAround [@{6F6F}UMGEBUNG\n - @{FFFF}Zeigt allen Spielern in Reichweite von 25 Metern die Nachrichten an.\n + @{FFFF}Zeigt allen Spielern in Reichweite von 25 Metern die von dir geschriebenen Nachrichten an.\n Rechtsklick um zu trennen.] // HASH_VALUE 71DAEEB31452DCEA // INDEX 5757 uittChatRegion [@{6F6F}REGION\n - @{FFFF}Zeigt allen Spielern in Deiner Region die Nachrichten an.\n + @{FFFF}Zeigt allen Spielern in deiner Region (Kontinent) die von dir geschriebenen Nachrichten an.\n Rechtsklick um zu trennen.] // HASH_VALUE 899B178F5AD9368A // INDEX 5758 uittChatUniverse [@{6F6F}Universum\n - @{FFFF}Zeigt allen Spielern im Spiel die Nachrichten (sparsam damit umgehen).\n + @{FFFF}Zeigt allen Spielern im Spiel die hier geschriebenen Nachrichten (Neulingsfragen sollten bevorzugt werden).\n Rechtsklick um zu trennen.] // HASH_VALUE 165BD172D9A11956 // INDEX 5759 uittChatUser [@{6F6F}USER\n - @{FFFF}Rechtsklick auf den Tab, um die Nachrichtenfilter zu verändern, die auf diesem Chat erscheinen.] + @{FFFF}Klicke mit rechter Maustaste auf diesen Tab, um die Nachrichtenfilter zu verändern, die hier angezeigt werden sollen.] // HASH_VALUE 0F80B12F2D86C0D5 // INDEX 5760 uittChatGuild [@{6F6F}GILDE\n - @{FFFF}Rechtsklick, um das Tab als eigenes Fenster abzukoppeln.] + @{FFFF}Klicke mit rechter Maustaste auf diesen Tab, um den Gilden-Chat als eigenes Fenster abzukoppeln.] // HASH_VALUE 1250E12BAD86C0D5 // INDEX 5761 uittChatTeam [@{6F6F}TEAM\n - @{FFFF}Rechtsklick, um das Tab als eigenes Fenster abzukoppeln.] + @{FFFF}Klicke mit rechter Maustaste auf diesen Tab, um den Team-Chat als eigenes Fenster abzukoppeln.] // HASH_VALUE 76AFA0DE40C6CEC0 // INDEX 5762 uittChatYubo [@{6F6F}YUBO CHAT\n - @{FFFF}Rechtsklick, um das Tab als eigenes Fenster abzukoppeln.] + @{FFFF}Klicke mit rechter Maustaste auf diesen Tab, um den Yubo-Chat als eigenes Fenster abzukoppeln.] // HASH_VALUE 3E6C1A6BDD69D5F5 // INDEX 5763 @@ -24298,17 +24280,19 @@ uittCompassDistance [@{6F6F}Entfernung @{FFFF}zu dem auf dem Kompass ausgewählt // HASH_VALUE E78C50DD64F5F5B7 // INDEX 5766 -uittPhraseActions [@{6F6F}Aktionen@{FFFF}, die Du auch per Dragn&Drop in Deine Aktionsleiste bewegen kannst, um sie zu nutzen.] +uittPhraseActions [@{6F6F}Aktionen@{FFFF}, die du auch per Drag & Drop in deine Aktionsleiste bewegen kannst, um sie anzuwenden.] // HASH_VALUE 5236A0B56A20D732 // INDEX 5767 -uittPhraseUpgrades [@{6F6F}Verbesserungen @{FFFF}von Aktionen oder Eigenschaften, die du nicht in deinen Leisten speichern kannst.] +uittPhraseUpgrades [@{6F6F}Verbesserungen @{FFFF}von Aktionen oder Eigenschaften, die du als alleinstehende Aktions-Teile nicht direkt von der Aktionsleiste nutzen kannst.] // HASH_VALUE 33E06D99C6DEE206 // INDEX 5768 -uittPhraseXPMalus [@{6F6F}XP Todesstrafe\n - @{FFFF}Wenn du stirbst, wird diese Strafe erhöht.\n - Die nächsten XP-Gewinne werden diese Schulden begleichen.] +uittPhraseXPMalus [@{6F6F}Sterbe-Erfahrungsstrafe.\n + @{FFFF}Wenn dein Charakter von den Mächten wiederbelebt werden muss, wird diese Strafe erhöht.\n + Die darauf folgenden Erfahrungs-Gewinne begleichen die Strafe, bis sie abgetragen ist.\n + Bis die Strafe auf 0 gesunken ist, bringen Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] + // HASH_VALUE 29532B61D5EBA4EA // INDEX 5769 @@ -24345,28 +24329,28 @@ uittTargetHp [@{6F6F}Lebenspunkte @{FFFF}des Ziels.\n // HASH_VALUE 9E118F8DA4E4C858 // INDEX 5777 -uittTargetUnknown [Level des Ziels unbekannt.] +uittTargetUnknown [Stufe des Ziels unbekannt.] // HASH_VALUE 0E97E8D2CD5836DA // INDEX 5778 -uittTargetLevel [Level des Ziels:@{6F6F} %min @{FFFF}bis @{6F6F}%max] +uittTargetLevel [Stufe des Ziels:@{6F6F} %min @{FFFF}bis @{6F6F}%max] // HASH_VALUE 9E39F76DBB00ECE7 // INDEX 5779 -uittTargetBoss [Boss mit Level: @{6F6F}%n] +uittTargetBoss [Boss mit Stufe: @{6F6F}%n] // HASH_VALUE 23163435076A9E73 // INDEX 5780 -uittTargetGuardBoss [Wächter oder Boss mit Level: @{6F6F}%n] +uittTargetGuardBoss [Wächter oder Boss mit Stufe: @{6F6F}%n] // HASH_VALUE 2C802BB94A366E80 // INDEX 5781 -uittTargetNamed [Named mit Level: @{6F6F}%n] +uittTargetNamed [Named mit Stufe: @{6F6F}%n] // HASH_VALUE 7F814BE1CB74F37A // INDEX 5782 -uittInfoBulk [@{6F6F}Größe @{FFFF}:\n - Platz, den der Gegenstand in Deinem Inventar einnimmt. Jedes Inventar hat nur begrenzt Platz, deshalb kann man nicht viele große Gegenstände miteinander transportieren.] +uittInfoBulk [@{6F6F}Volumen @{FFFF}:\n + Platz, den der Gegenstand in deinem Inventar einnimmt. Jedes Inventar hat nur begrenzten Platz, deshalb kann man nicht viele große Gegenstände miteinander transportieren.] // HASH_VALUE 8268E616D14643F5 // INDEX 5783 @@ -24376,7 +24360,7 @@ uittInfoHP [@{6F6F}Haltbarkeit @{FFFF}:\n // HASH_VALUE 2ABB2BD8C07878B9 // INDEX 5784 uittInfoWeight [@{6F6F}Gewicht @{FFFF}:\n - Wenn das Gewicht zu hoch ist, kann Deine Fortbewegungsgeschwindigkeit abnehmen.] + Wenn das Gesamt-Tragegewicht zu hoch wird, kann deine Fortbewegungsgeschwindigkeit abnehmen.] // HASH_VALUE 6819F591D97250CB // INDEX 5785 @@ -24386,12 +24370,12 @@ uittInfoMalus [@{6F6F}Malus auf den Aktionen @{FFFF}:\n // HASH_VALUE 9C3F914AF05FB96E // INDEX 5786 uittInfoDodgeMod [@{6F6F}Ausweichmodifikator @{FFFF}:\n - Bonus oder Malus auf Deinen @{6F6F}Ausweichenwert@{FFFF}, wenn Du Diesen Gegenstand benutzt.] + Bonus oder Malus auf deinen @{6F6F}Ausweich-Wert@{FFFF}, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 8E26E14159EBEFDD // INDEX 5787 uittInfoParryMod [@{6F6F}Abwehrmodifikator @{FFFF}:\n - Bonus oder Malus auf Deinen @{6F6F}Abwehrenwert@{FFFF}, wenn du Diesen Gegenstand benutzt.] + Bonus oder Malus auf deinen @{6F6F}Abwehr-Wert@{FFFF}, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 9C4DB1F11B930922 // INDEX 5788 @@ -24411,12 +24395,12 @@ uittInfoOrigin [@{6F6F}Herkunft @{FFFF}:\n // HASH_VALUE 6FF94D091FEA4384 // INDEX 5791 uittInfoRequirement [@{6F6F}Voraussetzung @{FFFF}:\n - Benötigte Werte und Fertigkeiten um diesen Gegenstand benutzen zu können.] + Benötigte Werte und Fertigkeiten, um diesen Gegenstand benutzen zu können.] // HASH_VALUE 62A6F932478349A1 // INDEX 5792 uittInfoItemSkill [@{6F6F}Fertigkeit @{FFFF}:\n - Benutzte Fertigkeit, wenn Du diesen Gegenstand benutzt.] + Fertigkeit, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 2CCD4E8B7503D42B // INDEX 5793 @@ -24458,19 +24442,19 @@ uittInfoShieldCat [@{6F6F}Kategorie @{FFFF}:\n // HASH_VALUE 660BAC182D2E1531 // INDEX 5800 uittInfoWeaponQuality [@{6F6F}Qualität @{FFFF}:\n - Dein zu diesem Gegenstand gehörender Level muss mindestens so hoch sein wie seine Qualität, um das Optimum aus dem Gegenstand herauszuholen.] + Deine zu diesem Gegenstand gehörende Stufe muss mindestens so hoch sein wie seine Qualität, um das Optimum aus dem Gegenstand herauszuholen.] // HASH_VALUE 8754B72B73295E97 // INDEX 5801 uittInfoWeaponSapLoad [@{6F6F}Sapladung @{FFFF}:\n @{AAAF}Aktuelle Ladung / Maximale Ladung@{FFFF}\n - Stellt die Kapazität eines Gegenstandes dar, mit @{6F6F}kristallisierten Zaubern@{FFFF} belegt zu werden. Sprüche eines hohen Levels benötigen mehr Ladung.] + Stellt die Kapazität eines Gegenstandes dar, mit @{6F6F}kristallisierten Zaubern@{FFFF} belegt zu werden. Sprüche einer hohen Stufe benötigen mehr Ladung.] // HASH_VALUE 7500C4BC89B3C38F // INDEX 5802 uittInfoWeaponDamage [@{6F6F}Schaden @{FFFF}:\n @{AAAF}Aktueller Schaden (Maximalschaden)@{FFFF}\n - Du richtest nur den Maximalschaden an, wenn Dein Nahkampflevel der Qualität der Waffe entspricht. Bist Du niedriger, gibt es Abzüge.] + Du richtest nur den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist sie niedriger, gibt es Abzüge.] // HASH_VALUE FB28E0E2E5C62D91 // INDEX 5803 @@ -24482,7 +24466,7 @@ uittInfoWeaponHitMin [@{6F6F}Schlag/Minute @{FFFF}:\n uittInfoWeaponRDamage [@{6F6F}Schaden @{FFFF}:\n @{AAAF}aktueller Schaden (Maximalschaden)@{FFFF}\n Bonus wird dem Munitionsschaden hinzugefügt.\n - Du richtest nur den Maximalschaden an, wenn Dein Nahkampflevel der Qualität der Waffe entspricht. Bist Du niedriger, gibt es Abzüge..] + Du richtest nur den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist sie niedriger, gibt es Abzüge.] // HASH_VALUE 17BD73E2E6753A6B // INDEX 5805 @@ -24492,7 +24476,7 @@ uittInfoWeaponRHitMin [@{6F6F}Schläge/Minute @{FFFF}:\n // HASH_VALUE E496FD3F3619A785 // INDEX 5806 uittInfoWeaponReach [@{6F6F}Reichweite @{FFFF}:\n - Reichweite dieser Waffe. Je größer die Reichweite Deiner Waffe im Vergleich zu der Deines Gegners ist, desto mehr steigen Deine Trefferchancen.] + Reichweite dieser Waffe. Je größer die Reichweite deiner Waffe im Vergleich zu der Deines Gegners ist, desto mehr steigen deine Trefferchancen.] // HASH_VALUE 4A6372DDB6610612 // INDEX 5807 @@ -24502,12 +24486,12 @@ uittInfoWeaponRange [@{6F6F}Reichweite @{FFFF}:\n // HASH_VALUE E4727E065EB26399 // INDEX 5808 uittInfoTargetDodgeMod [@{6F6F}Gegnerischer Ausweichmodifikator @{FFFF}:\n - Bonus oder Malus auf den @{6F6F}Ausweichenwert@{FFFF} Deines Gegners, wenn du Diesen Gegenstand benutzt.] + Bonus oder Malus auf den @{6F6F}Ausweich-Wert@{FFFF} deines Gegners, wenn du Diesen Gegenstand benutzt.] // HASH_VALUE 5A1646B333ED1B97 // INDEX 5809 uittInfoTargetParryMod [@{6F6F}Gegnerischer Abwehrmodifikator @{FFFF}:\n - Bonus oder Malus auf den @{6F6F}Abwehrenwert@{FFFF} Deines Gegners, wenn Du diesen Gegenstand benutzt.] + Bonus oder Malus auf den @{6F6F}Abwehr-Wert@{FFFF} Deines Gegners, wenn Du diesen Gegenstand benutzt.] // HASH_VALUE 300D28760EFEB41F // INDEX 5810 @@ -24525,7 +24509,7 @@ uittInfoAmmoMagazine [@{6F6F}Magazin @{FFFF}:\n // INDEX 5812 uittInfoAmmoDamage [@{6F6F}Schaden @{FFFF}:\n @{AAAF}Gängiger Schaden (Maximalschaden)@{FFFF}\n - Du fügst Maximalschaden zu, wenn Dein Fernkampflevel gleich hoch oder höher als die Qualität der Munition ist.] + Du fügst Maximalschaden zu, wenn dein Fernkampflevel gleich hoch oder höher als die Qualität der Munition ist.] // HASH_VALUE FA24F13E9941458E // INDEX 5813 @@ -24540,7 +24524,7 @@ uittInfoAmmoRange [@{6F6F}Reichweite @{FFFF}:\n // HASH_VALUE 215E342F64C18D7E // INDEX 5815 uittInfoMpQuality [@{6F6F}Qualität @{FFFF}:\n - Die Qualität des Rohmaterials übt einen Einfluss auf Preis und Qualität der Gegenstände aus, die Du damit herstellst (im Rahmen Deiner handwerklichen Fähigkeiten).] + Die Qualität des Rohmaterials übt einen Einfluss auf Preis und Qualität der Gegenstände aus, die du damit herstellst (im Rahmen Deiner handwerklichen Fähigkeiten).] // HASH_VALUE 4F90998FB193490C // INDEX 5816 @@ -24550,7 +24534,7 @@ uittInfoMpEco [@{6F6F}Ökosystem @{FFFF}:\n // HASH_VALUE 9681BD4E9A352FDF // INDEX 5817 uittInfoMpColor [@{6F6F}Farbe @{FFFF}:\n - Wenn Du Rüstungen und Kleider erschaffst, kann die Farbe dieses Rohmaterials die Endfarbe des erschaffenen Gegenstandes beeinflussen.] + Wenn du Rüstungen und Kleider erschaffst, kann die Farbe dieses Rohmaterials die Endfarbe des erschaffenen Gegenstandes beeinflussen.] // HASH_VALUE E22A99D0CC0BE7D3 // INDEX 5818 @@ -24585,7 +24569,7 @@ uittActionSuccessRateSH [@{6F6F}Erfolgsquote @{FFFF}:\n // HASH_VALUE 6272716CB11A7CC9 // INDEX 5824 -uittActionSkillPoint [@{6F6F}Fähigkeitspunkte @{FFFF}:\n +uittActionSkillPoint [@{6F6F}Fertigkeitspunkte @{FFFF}:\n @{AAAF}Fehlende Punkte / Gesamtkosten \n @{FFFF}Wenn du alle Stanzas einer Aktion beherrscht, lautet die erste Ziffer 0 und die Aktion wird im nicht mehr grau im Fortschrittfenster der Aktionen angezeigt.] @@ -24646,7 +24630,7 @@ uiR2EDScoresWindow [Szenariopunkte] // HASH_VALUE 64D0D4D8EE7A9CAE // INDEX 5837 -uiUniverseChanelWarningTitle [Der Universum Chat] +uiUniverseChanelWarningTitle [Der universale Atys-Chat] // HASH_VALUE 4450F4204450F420 // INDEX 5838 @@ -24654,7 +24638,7 @@ uiR2EDHomeButton [HOME] // HASH_VALUE D4CD14EFCFC47DD6 // INDEX 5839 -uiUniverseChanelWarningContent [Der Universum Chat dient den Spielern von Ryzom, um Atys-weit mit anderen Spielern über das Spiel zu sprechen. Neulinge mögen ihre Fragen hier stellen. Beleidigungen und Kränkungen von Spielern sind zu unterlassen. Missbräuchliche Verwendung des Chats wird vom Kundensupport (CSR) bestraft.] +uiUniverseChanelWarningContent [Der Universum-Chat dient den Spielern von Ryzom dazu, um Atys-weit mit anderen Spielern über das Spiel zu sprechen. Neulinge sollten ihre Fragen hier stellen. Beleidigungen und Kränkungen von Spielern sind untersagt. Missbräuchliche Verwendung des Chats wird vom Kundensupport (CSR) bestraft.] // HASH_VALUE 091458309CC6A08A // INDEX 5840 @@ -24662,7 +24646,7 @@ uiUniverseChanelWarningAvoid [Zeige diese Nachricht nicht mehr an.] // HASH_VALUE 6E75FF30933AF805 // INDEX 5841 -uittBonusMalusWindow [Buff / Debuff Fenster] +uittBonusMalusWindow [Bonus / Malus] // HASH_VALUE 4F1BFC426F18DFC5 // INDEX 5842 @@ -24674,7 +24658,7 @@ uiDockUndockChat [Dock / UnDock Chat] // HASH_VALUE 469C21A66AD69D1C // INDEX 5844 -uiCP_Choose_Keyset [Wähle die Konfiguration deiner Tastatur aus.] +uiCP_Choose_Keyset [Wähl die Konfiguration deiner Tastatur aus.] // HASH_VALUE 48D0B43C48D0B43C // INDEX 5845 @@ -24893,7 +24877,7 @@ uiRAP_Join [TEILNEHMEN] // HASH_VALUE 4C1054504C105450 // INDEX 5898 -uiRAP_Tell [TELL] +uiRAP_Tell [FLÜSTERN/TELL] // HASH_VALUE 7EC22B2B77811F2D // INDEX 5899 @@ -24993,11 +24977,11 @@ uiRAP_Level5 [Meister] // HASH_VALUE B1AC34FA292C2E15 // INDEX 5923 -uiRAP_HowToBeInvited [Du hast keine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und klicken des @{6F6F}'BITTE UM EINLADUNG'@{FFFF} Knopfes in der unteren rechten Ecke dieses Fensters kannst du dem Szenariobesitzer eine Einladungsanfrage schicken.] +uiRAP_HowToBeInvited [Du hast keine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und Klicken des @{6F6F}'BITTE UM EINLADUNG'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters kannst du dem Szenariobesitzer eine Einladungsanfrage schicken.] // HASH_VALUE 29037B25BC79BCE8 // INDEX 5924 -uiRAP_HowToJoin [Du hast eine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und klicken des @{6F6F}'TEILNEHMEN'@{FFFF} Knopfes in der unteren rechten Ecke dieses Fensters.] +uiRAP_HowToJoin [Du hast eine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und klicken des @{6F6F}'TEILNEHMEN'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters.] // HASH_VALUE 9D9520606CDA74AA // INDEX 5925 @@ -25050,7 +25034,7 @@ uiRAP_FlagsTooltip [Ein @{6F6F}Haken@{FFFF} wird angezeigt, wenn der Szenariobes // HASH_VALUE 7DACB1DE78A79DE0 // INDEX 5937 -uiRAP_OwnerTooltip [Name des Spielers, der das Szenario erzeugt hat. Du kannst mittels des rechten Mausklick-Menüs oder über den Knopf in der rechten unteren Ecke dieses Fensters ein @{6F6F}Tell@{FFFF} zum Spieler schicken. Ein Doppelklick auf ein Szenario, in das du nicht eingeladen wurdest, sendet ein Tell an den Szenario Besitzer mit einer Einladungsanfrage. Klicke um nach Besitzern zu sortieren.] +uiRAP_OwnerTooltip [Name des Spielers, der das Szenario erzeugt hat. Du kannst mittels des rechten Mausklick-Menüs oder über den Button in der rechten unteren Ecke dieses Fensters ein @{6F6F}Tell@{FFFF} zum Spieler schicken. Ein Doppelklick auf ein Szenario, in das du nicht eingeladen wurdest, sendet ein Tell an den Szenario Besitzer mit einer Einladungsanfrage. Klicke um nach Besitzern zu sortieren.] // HASH_VALUE 99D70A17296D53C2 // INDEX 5938 @@ -25193,7 +25177,7 @@ uiAddTellerToIgnoreListWarning [Willst du diesen Spieler auf deine Ignore-Liste // HASH_VALUE 6C58F488C23ADCA0 // INDEX 5971 -uiRAP_CharsTitle [Spieler-Tracking] +uiRAP_CharsTitle [Spieler-Aufspüren] // HASH_VALUE 6CDA7A4EEA3AE48C // INDEX 5972 @@ -25257,7 +25241,7 @@ uiRAP_CharFlagsTooltip [Ein Auge zeigt an, dass der Spieler an diesem Szenario t // HASH_VALUE C1F77B1087622C01 // INDEX 5987 -uiRAP_CharNameTooltip [Name des Spielers, der eingeladen wurde. Du kannst ein @{6F6F}Tell@{FFFF} an den Spieler senden, ihn @{6F6F}kicken@{FFFF} oder ihn @{6F6F}teleportieren@{FFFF} in dem du die rechte Maustaste oder die Knöpfe in der rechten unteren Ecke drückst. Klicke, um danach zu sortieren.] +uiRAP_CharNameTooltip [Name des Spielers, der eingeladen wurde. Du kannst ein @{6F6F}Tell@{FFFF} an den Spieler senden, ihn @{6F6F}kicken@{FFFF} oder ihn @{6F6F}teleportieren@{FFFF} in dem du die rechte Maustaste oder die Buttons in der rechten unteren Ecke drückst. Klicke, um danach zu sortieren.] // HASH_VALUE 87FE819401AF7A96 // INDEX 5988 @@ -25277,7 +25261,7 @@ uiRAP_CharShardTooltip [Shard des Spielers. Klicke, um danach zu sortieren.] // HASH_VALUE 4836C73AF7CA1B31 // INDEX 5992 -uiRAP_CharLevelTooltip [Höchster Fähigkeitslevel in Kampf/Magie. Klicke, um danach zu sortieren.] +uiRAP_CharLevelTooltip [Höchster Fertigkeitslevel in Kampf/Magie. Klicke, um danach zu sortieren.] // HASH_VALUE C7CC9091D253FCB1 // INDEX 5993 @@ -25406,11 +25390,11 @@ uiRAP_Invite [EINLADEN] // HASH_VALUE BA6859E05968167A // INDEX 6024 -uiRAP_InvitedAndConnected [Der Charakter, den du gerade eingeladen hast, ist jetzt verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF} Knopf in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF} Knopf kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF} Knopf kannst du dich an seine derzeitige Position teleportieren.] +uiRAP_InvitedAndConnected [Der Charakter, den du gerade eingeladen hast, ist jetzt verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF}-Button kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF}-Button kannst du dich an seine derzeitige Position teleportieren.] // HASH_VALUE 509F0C9B906C3F52 // INDEX 6025 -uiRAP_InvitedAndNotConnected [Der Charakter, den du gerade eingeladen hast, ist derzeit nicht verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF} Knopf in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF} Knopf kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF} Knopf kannst du dich an seine derzeitige Position teleportieren.] +uiRAP_InvitedAndNotConnected [Der Charakter, den du gerade eingeladen hast, ist derzeit nicht verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF}-Button kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF}-Button kannst du dich an seine derzeitige Position teleportieren.] // HASH_VALUE 48D0942C48D0942C // INDEX 6026 @@ -25768,7 +25752,7 @@ uiR2EDRingSkills [Erweiterte Werte] // HASH_VALUE 2CD4FB8A6DF7CB69 // INDEX 6106 -uiR2EDEcosystemPointsTitle [Wissen über Atys] +uiR2EDEcosystemPointsTitle [Atys-Kenntnis] // HASH_VALUE 6879AC7F1E76E886 // INDEX 6107 @@ -25776,52 +25760,52 @@ uiR2EDBasicsPoints [Allgemein] // HASH_VALUE 28D9906D28E6CC9B // INDEX 6108 -uiR2EDDesertPoints [Wüste] +uiR2EDDesertPoints [Wüstenkenntnis] // HASH_VALUE E6E8548FED6BE0BD // INDEX 6109 -uiR2EDSubtropicPoints [Seenland] +uiR2EDSubtropicPoints [Seenlandkenntnis] // HASH_VALUE AAE9E0712C26F49E // INDEX 6110 -uiR2EDForestPoints [Wald] +uiR2EDForestPoints [Waldlandkenntnis] // HASH_VALUE 6836DC6EECF49C90 // INDEX 6111 -uiR2EDJunglePoints [Dschungel] +uiR2EDJunglePoints [Dschungelkenntnis] // HASH_VALUE 52199848EDF6AF9D // INDEX 6112 -uiR2EDPrimeRootPoints [Urwurzeln] +uiR2EDPrimeRootPoints [Urwurzelkenntnis] // HASH_VALUE DA6F7B598594B31E // INDEX 6113 -uiR2EDBasicPointsTooltip [@{6F6F}Allgemein@{FFFF}: %n/%p\n +uiR2EDBasicPointsTooltip [@{6F6F}Allgemein@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 0E24671ACE438724 // INDEX 6114 -uiR2EDDesertPointsTooltip [@{6F6F}Wüste@{FFFF}: %n/%p\n +uiR2EDDesertPointsTooltip [@{6F6F}Wüste@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 89F4F7154AE4B410 // INDEX 6115 -uiR2EDSubtropicPointsTooltip [@{6F6F}Seenland@{FFFF}: %n/%p\n +uiR2EDSubtropicPointsTooltip [@{6F6F}Seenland@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 4E2463244E438724 // INDEX 6116 -uiR2EDForestPointsTooltip [@{6F6F}Wald@{FFFF}: %n/%p\n +uiR2EDForestPointsTooltip [@{6F6F}Wald@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 8D44532A4F438715 // INDEX 6117 -uiR2EDJunglePointsTooltip [@{6F6F}Dschungel@{FFFF}: %n/%p\n +uiR2EDJunglePointsTooltip [@{6F6F}Dschungel@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 113F47AD9C83370A // INDEX 6118 -uiR2EDPrimeRootPointsTooltip [@{6F6F}Urwurzel@{FFFF}: %n/%p\n +uiR2EDPrimeRootPointsTooltip [@{6F6F}Urwurzel@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE E4F4FB7720E1A7B3 @@ -26179,7 +26163,7 @@ uiBGD_ShowHide [Zeigen / Ausblenden] // HASH_VALUE AA49704C941FE205 // INDEX 6202 -uiBGD_CloseWarning [Diese Aktion wird den Downloader nicht beenden, sondern nur minimieren. Um den Downloader wirklich zu schließen, klicke auf das Icon in der Taskbar und wähle 'Beenden'.] +uiBGD_CloseWarning [Diese Aktion wird den Downloader nicht beenden, sondern nur minimieren. Um den Downloader wirklich zu schließen, klicke auf das x-Icon in der Taskleiste und wähle 'Beenden'.] // HASH_VALUE 9705DCECA260D0BA // INDEX 6203 @@ -26738,7 +26722,7 @@ uittTabBuyAction [Neue Aktionen] // HASH_VALUE 567AE84B92E694AA // INDEX 6336 -uittTabBuyUpgrade [Steigerungen Deiner Fähigkeiten] +uittTabBuyUpgrade [Steigerungen deiner Fähigkeiten] // HASH_VALUE E9C76744D94A6366 // INDEX 6337 @@ -26953,11 +26937,11 @@ uiPlayerInfos [Infos] // need be a short word // HASH_VALUE 125A567C47B698C6 // INDEX 6388 -youTellPlayer [Du tellst %name] +youTellPlayer [Du flüsterst/tellst %name] // HASH_VALUE 5FC44FA59BD42F78 // INDEX 6389 -uimwHands2 [HÄNDE #2] +uimwHands2 [Aktionsleiste 2] // HASH_VALUE B374A35AB0FA28BF // INDEX 6390 @@ -27177,7 +27161,7 @@ uiOrganization_5 [Marodeure] // HASH_VALUE D17100514DC2A035 // INDEX 6443 -uiOrganization_0 [Undefiniert] +uiOrganization_0 [undefiniert] // HASH_VALUE 22FAEC96E434B371 // INDEX 6444 @@ -27193,11 +27177,11 @@ uittOrganization [Organisations-Tooltip] // HASH_VALUE 65C71C3EEC5A0FC8 // INDEX 6447 -uiRpTags [Rollenspiel-Marken] +uiRpTags [Fraktions-Anzeige] // HASH_VALUE 011E7DD3846A697E // INDEX 6448 -uittRpTags [Zeige alle Rollenspiel-Marken über dem Charakter] +uittRpTags [Zeige alle Fraktions-Zeichen über dem Charakter] // HASH_VALUE 68DC145070582480 // INDEX 6449 @@ -27209,7 +27193,7 @@ uiWindowNpcName [NPC-Name] // HASH_VALUE F926A4436B4D184B // INDEX 6451 -uittNpcName [Zeige Namen befreundeter NPCs über dem Charakter] +uittNpcName [Zeige Namen befreundeter NPCs an] // HASH_VALUE 7F73C093A7248307 // INDEX 6452 @@ -27217,11 +27201,11 @@ uiNpcTitle [NPC-Titel] // HASH_VALUE CE3119F23A3FD1F4 // INDEX 6453 -uittNpcTitle [Zeige Titel befreundeter NPCs über dem Charakter] +uittNpcTitle [Zeige Titel befreundeter NPCs an] // HASH_VALUE C6C48E46D588B347 // INDEX 6454 -uiHands2 [Hände #2] +uiHands2 [Aktionsleiste 2] // HASH_VALUE 6C669F5DD9357859 // INDEX 6455 diff --git a/code/ryzom/tools/translation/translated/item_words_de.txt b/code/ryzom/tools/translation/translated/item_words_de.txt index 80ed6023f3b783496d852db47f37f03494892d5a..fd4512f4d1cbee6bb02f040ae48c8762d7bbf8bb 100644 GIT binary patch literal 2790406 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

wz6nHtEpkW7xMqSMjs<*(!E( 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

h`fTHsrieI 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 LHSV&1vkU(Z_6Rii literal 3089850 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 z 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�@ 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 Cr#(IZ diff --git a/code/ryzom/tools/translation/translated/sbrick_words_de.txt b/code/ryzom/tools/translation/translated/sbrick_words_de.txt index 1c9a56902c072a3293dc33aff92e7bda52d0f937..5db0d734a959bd63f51811aebdc17e55fb0b73f2 100644 GIT binary patch delta 646 zcmY+;Jxjw-6b4{Y>qq>EZHzUoNxT-S5=2{sP^v8m&LU1lL5hfz_y_ z)BR2{Ci?!~oa*=zo149p(?hPDacYyTUF;2KVp?(ahGQi>*|rjX=X*x>?Bop3j`NTl z^Yp1%cTN^6X|s~%kPo#XKWaxEs1tP|9(AK0)QkF%Kr89~m1W581VvM}`cVJ{Q8N!9 z2@RqU8bUG(qX-(NvZXZULAsH};{xe0g}Oq8x_ZvHp6Ju78u!6vl_#KS+7+$8srOy3 zy!ELb#ap>X8)5B~bL9<%Ws2W#x=xwdQ4NjI>?p~s+LA6pJWrya?UINs>QXDkf4fGW zjKLf0SXzYQhZ+FkjFjPhj~MJsiVaDS4@rn!$gp7!w)cq+H8#36WNCO+f;wOqjq2JS-)QYK5R%8tC>DABp!&{W## zi$bs5=_7lVcQ+}?zGV`;xQ^)6G9~zKlhS-ptChFBD9l578s&Fu6x81ELY}^RgC{Fw z@!NGuF`~E{bbhRv{AG)56@-8J1KeH_0X{etCeLh8nHN{lueNOz$n>JY0u6Y3RZZH>LKBs2F1j0g73 diff --git a/code/ryzom/tools/translation/translated/sphrase_words_de.txt b/code/ryzom/tools/translation/translated/sphrase_words_de.txt index e3f023b825d16beba872eee834e04436a7974ede..f50d259bf8ff12b1c7b4b17fd37ae78d40e28249 100644 GIT binary patch delta 666 zcmaF#JLlD(oQ4+07N!>F7M2#)7Pc1l7LF~PGN(E77!(*%7*ZLEreD0msXcjGun1={ zLkUAELmETsbjGuslG|%ebJ{WDRkt0eE*!rSh*3Mv5i$y*F6;s^>cqEyy2$B3*k1AN z6D|{{PVXvl>dssvq;7lg4bFJ{PTT(TCP5|hZxd3|?s}IKh`E568;E&;m=}oofS4bM z1%Ox(h=qVy7>Gr-yWSP`z5tA8q3Q3|i79PAv{p=p5yagNAO3r*gqz&8C}k)+!;U&#}yFp=#*ksXXM9!NfJJ6EY>6q?YDGBhE#_Pz?q?R^ze GAx8m~y5Euj delta 816 zcmaF$C+E@coQ4+07N!>F7M2#)7Pc1l7LF~PGN-36xX;NlT_uEBVEThIoD$Mc7%~_# z8PXZD8B&3C2}3bM4vX4ounH$E Cj}4{( diff --git a/code/ryzom/tools/translation/translated/title_words_de.txt b/code/ryzom/tools/translation/translated/title_words_de.txt index 3b620b434ef918b3b35d4a9e8742e2d1dbba6c87..3dc41b320021972381df0412140c20cbbb4d616f 100644 GIT binary patch delta 1545 zcmZ8hUuaWj6#ve>cWN(fdY7cNhLT3t#i zwc6Act7*ywPak9y@j*5zj*MOKp#~8VpN5P*NOe|Z3?IZoABL2&lkeV}+~pxR-}(K1 z=XcI`zK`$jn&a7;6p<9_ zg1bUZxb1lRxoF49gMyS1v`Ifv z{}`wCXDPh-_&|`Iqqz+5*@Sqn^)w?N3sUFb)7%D$@laHx($?K@@+0h&LBgI|@aU^O z)shph*21ArLTrdd$+n3dBZCpLIY;Ja$-0|NIfpgX(oT$C61Qp2I_LpzvGA)M$Go8M zK&|bs#5-Q-+HRyQ{8CYp&sTT%@51)I@Bx1mXm=lc^cie~Qha_>P;~642C(6T52AUA z*Fps9VOS6E*MrYOY}Q*cWLyc5X{v#m;)TdGivK>4oZGwUKG9ro{eiR#)9oN@?Vm!Q zgp;jc$L|`ccDM!Hxv)xm*aAs|S@sj-Ycm)eYlEbok|Q+Fe%KWC_+1Cp+-f&1`a0mM zVKJH8SoU+1aee_=2mWxB&S9d5au$z*SM&EmvkR93B=YYAKQ0c!mKyxIRBU3$F?0}W z@X-+1tw5){JZ5st%-h2k*M=c&A_|g|4(F<9mq*~O#L1f%XlE;@=-#K2u!BRqkJkyfYYGk( zwNN=$;QZ)4Pd%>0tvz;)8>P9sYeJtA^3uH%pg_KkHhU4CiahL}rs+>k89o$MV>U@w z^3fC|3xcm^tP?R+DO1pCE{x>gr{P-@^5DP~qZ6Ljxk%S?`AU(yJ|)vw)_$9TKk^MK zxI~A6iMc|T3ci}BbK9CL_;6LLS=JD2yIv$v@a?R1a#T{6-e{8~w5Q-q!9lOOLemJR zj8ih@E_|1=I;ZEspHG~j-smT2uja*LQ@fAzr(=k}Nx7H&2)$7edSddp*6ol&Fa86J C5$?zU delta 1589 zcmaJ>ZD>u0~xlV&6GkNZMu zUi5$SN>Oj654&=lLvD)IYcHjvvD8)=lAkm`U*Tf=sMb*FNpr48emd)u?@o1=uADAb z1qKN3C%;qlr06%qPRQ@}Z~IUDDL^f*-lNRP^KBe<9pi%-@8ErM#|01e9OIp8!KXbqg$m>i{8n@f$a$D5{-eJer~Jq_@uUS#4` z@=rFA;a`hf5FM{TH6Cn)F^i31v0xI81Y~q#qaEV7m;j$1YO?PWHkluL_fXN-u9J2n z1!0_d5qh_{*a4Q7zf6Rb@JsNXfU6lgS+NxwvG5_dm0PWl7cjO1nzR@TJ0Q=~BJsOM zh+^+m&Vjyms8`0?VUX6|Er4PO}g2{X>u_0}dr& zyRvW?TIf()X$3!}Xcn%8ruPiP-`JCb$md@Lan}gJdf-Q?0US6pLQ{@S3j!u{5LRJc_n`}5kOIFQw+3^eK^T(;`(#=#l;B6PbeGxWE&a*Q6T2AY@0XQ(zsvd=>*hGnw)?g=V8`_d>A`R;yZK3{90DWg1v36% Date: Mon, 15 Feb 2016 17:09:06 +0100 Subject: [PATCH 008/184] Changed: Don't compile client_patcher if using Steam --- code/ryzom/tools/client/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/CMakeLists.txt b/code/ryzom/tools/client/CMakeLists.txt index 3cdaf0136..3d7421966 100644 --- a/code/ryzom/tools/client/CMakeLists.txt +++ b/code/ryzom/tools/client/CMakeLists.txt @@ -1,5 +1,8 @@ IF(WITH_RYZOM_CLIENT) - ADD_SUBDIRECTORY(client_patcher) + # Don't need ryzom_client_patcher if using Steam + IF(NOT WITH_RYZOM_STEAM) + ADD_SUBDIRECTORY(client_patcher) + ENDIF() IF(WITH_QT OR WITH_QT5) ADD_SUBDIRECTORY(client_config_qt) From ab7512cfc090dfddc8a237e19d66b028626036f3 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Mon, 15 Feb 2016 22:09:43 +0100 Subject: [PATCH 009/184] Sorry --- code/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 9c48358fb..858af1d5c 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -254,7 +254,8 @@ IF(WITH_QT5) FIND_PACKAGE(Qt5Network) IF(WIN32) - FIND_PACKAGE(Qt5WinExtras) + # Please add option to switch off + # FIND_PACKAGE(Qt5WinExtras) ENDIF() IF(QT_STATIC) From 9815393c27d29abc950a0f574b22b656c2db179b Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 16 Feb 2016 00:28:24 +0100 Subject: [PATCH 010/184] Move pipeline utilities into new pipeline library --- .../nel/pipeline}/database_config.h | 4 ++++ .../nel/{misc => pipeline}/tool_logger.h | 22 +++++++++---------- code/nel/src/CMakeLists.txt | 4 ++++ code/nel/src/pipeline/CMakeLists.txt | 18 +++++++++++++++ .../pipeline}/database_config.cpp | 6 ++++- .../src/{misc => pipeline}/tool_logger.cpp | 7 +++--- code/nel/tools/3d/mesh_utils/CMakeLists.txt | 2 +- .../tools/3d/mesh_utils/assimp_material.cpp | 2 +- code/nel/tools/3d/mesh_utils/assimp_shape.cpp | 2 +- code/nel/tools/3d/mesh_utils/mesh_utils.cpp | 16 +++++++------- .../nel/tools/3d/mesh_utils/scene_context.cpp | 2 +- code/nel/tools/3d/mesh_utils/scene_context.h | 4 ++-- 12 files changed, 59 insertions(+), 30 deletions(-) rename code/nel/{tools/3d/mesh_utils => include/nel/pipeline}/database_config.h (97%) rename code/nel/include/nel/{misc => pipeline}/tool_logger.h (89%) create mode 100644 code/nel/src/pipeline/CMakeLists.txt rename code/nel/{tools/3d/mesh_utils => src/pipeline}/database_config.cpp (96%) rename code/nel/src/{misc => pipeline}/tool_logger.cpp (92%) diff --git a/code/nel/tools/3d/mesh_utils/database_config.h b/code/nel/include/nel/pipeline/database_config.h similarity index 97% rename from code/nel/tools/3d/mesh_utils/database_config.h rename to code/nel/include/nel/pipeline/database_config.h index 25bcc2a00..ec9bb6ec6 100644 --- a/code/nel/tools/3d/mesh_utils/database_config.h +++ b/code/nel/include/nel/pipeline/database_config.h @@ -28,6 +28,8 @@ typedef NLMISC::CSString TPathString; typedef std::string TPathString; #endif +namespace NLPIPELINE { + /// Asset database configuration class CDatabaseConfig { @@ -55,4 +57,6 @@ private: }; +} /* namespace NLPIPELINE */ + /* end of file */ diff --git a/code/nel/include/nel/misc/tool_logger.h b/code/nel/include/nel/pipeline/tool_logger.h similarity index 89% rename from code/nel/include/nel/misc/tool_logger.h rename to code/nel/include/nel/pipeline/tool_logger.h index ff78a6afa..55b3b2455 100644 --- a/code/nel/include/nel/misc/tool_logger.h +++ b/code/nel/include/nel/pipeline/tool_logger.h @@ -27,8 +27,8 @@ * . */ -#ifndef NLMISC_TOOL_LOGGER_H -#define NLMISC_TOOL_LOGGER_H +#ifndef NLPIPELINE_TOOL_LOGGER_H +#define NLPIPELINE_TOOL_LOGGER_H #include // STL includes @@ -47,16 +47,16 @@ #endif #ifdef NL_DEBUG_H -#define tlerror(toolLogger, path, error, ...) nlwarning(error, ## __VA_ARGS__), toolLogger.writeError(NLMISC::ERROR, path, error, ## __VA_ARGS__) -#define tlwarning(toolLogger, path, error, ...) nlwarning(error, ## __VA_ARGS__), toolLogger.writeError(NLMISC::WARNING, path, error, ## __VA_ARGS__) -#define tlmessage(toolLogger, path, error, ...) nlinfo(error, ## __VA_ARGS__), toolLogger.writeError(NLMISC::MESSAGE, path, error, ## __VA_ARGS__) +#define tlerror(toolLogger, path, error, ...) nlwarning(error, ## __VA_ARGS__), toolLogger.writeError(NLPIPELINE::ERROR, path, error, ## __VA_ARGS__) +#define tlwarning(toolLogger, path, error, ...) nlwarning(error, ## __VA_ARGS__), toolLogger.writeError(NLPIPELINE::WARNING, path, error, ## __VA_ARGS__) +#define tlmessage(toolLogger, path, error, ...) nlinfo(error, ## __VA_ARGS__), toolLogger.writeError(NLPIPELINE::MESSAGE, path, error, ## __VA_ARGS__) #else -#define tlerror(toolLogger, path, error, ...) toolLogger.writeError(NLMISC::ERROR, path, error, ## __VA_ARGS__) -#define tlwarning(toolLogger, path, error, ...) toolLogger.writeError(NLMISC::WARNING, path, error, ## __VA_ARGS__) -#define tlmessage(toolLogger, path, error, ...) toolLogger.writeError(NLMISC::MESSAGE, path, error, ## __VA_ARGS__) +#define tlerror(toolLogger, path, error, ...) toolLogger.writeError(NLPIPELINE::ERROR, path, error, ## __VA_ARGS__) +#define tlwarning(toolLogger, path, error, ...) toolLogger.writeError(NLPIPELINE::WARNING, path, error, ## __VA_ARGS__) +#define tlmessage(toolLogger, path, error, ...) toolLogger.writeError(NLPIPELINE::MESSAGE, path, error, ## __VA_ARGS__) #endif -namespace NLMISC { +namespace NLPIPELINE { enum TError { @@ -203,8 +203,8 @@ public: } }; /* class CToolLogger */ -} /* namespace NLMISC */ +} /* namespace NLPIPELINE */ -#endif /* #ifndef NLMISC_TOOL_LOGGER_H */ +#endif /* #ifndef NLPIPELINE_TOOL_LOGGER_H */ /* end of file */ diff --git a/code/nel/src/CMakeLists.txt b/code/nel/src/CMakeLists.txt index 06faa5251..60e5afccb 100644 --- a/code/nel/src/CMakeLists.txt +++ b/code/nel/src/CMakeLists.txt @@ -35,3 +35,7 @@ ENDIF(WITH_NEL_CEGUI) IF(WITH_PACS) ADD_SUBDIRECTORY(pacs) ENDIF(WITH_PACS) + +IF(WITH_NEL_TOOLS) + ADD_SUBDIRECTORY(pipeline) +ENDIF(WITH_NEL_TOOLS) diff --git a/code/nel/src/pipeline/CMakeLists.txt b/code/nel/src/pipeline/CMakeLists.txt new file mode 100644 index 000000000..47ab9a376 --- /dev/null +++ b/code/nel/src/pipeline/CMakeLists.txt @@ -0,0 +1,18 @@ +FILE(GLOB SRC *.cpp *.h) +FILE(GLOB HEADERS ../../include/nel/pipeline/*.h) + +SOURCE_GROUP("" FILES ${HEADERS} ${SRC}) + +NL_TARGET_LIB(nelpipeline ${HEADERS} ${SRC}) + +INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) + +TARGET_LINK_LIBRARIES(nelpipeline nelmisc) +NL_DEFAULT_PROPS(nelpipeline "NeL, Library: NeL Pipeline") +NL_ADD_RUNTIME_FLAGS(nelpipeline) + +NL_ADD_LIB_SUFFIX(nelpipeline) + +IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) + INSTALL(TARGETS nelpipeline LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) +ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) diff --git a/code/nel/tools/3d/mesh_utils/database_config.cpp b/code/nel/src/pipeline/database_config.cpp similarity index 96% rename from code/nel/tools/3d/mesh_utils/database_config.cpp rename to code/nel/src/pipeline/database_config.cpp index 7e6ea5b37..b326a2888 100644 --- a/code/nel/tools/3d/mesh_utils/database_config.cpp +++ b/code/nel/src/pipeline/database_config.cpp @@ -16,7 +16,7 @@ // along with this program. If not, see . #include -#include "database_config.h" +#include "nel/pipeline/database_config.h" #include #include @@ -25,6 +25,8 @@ using namespace std; using namespace NLMISC; +namespace NLPIPELINE { + TPathString CDatabaseConfig::s_RootPath; NLMISC::CConfigFile *CDatabaseConfig::s_ConfigFile = NULL; CDatabaseConfig CDatabaseConfig::s_Instance; @@ -104,4 +106,6 @@ void CDatabaseConfig::release() cleanup(); } +} /* namespace NLPIPELINE */ + /* end of file */ diff --git a/code/nel/src/misc/tool_logger.cpp b/code/nel/src/pipeline/tool_logger.cpp similarity index 92% rename from code/nel/src/misc/tool_logger.cpp rename to code/nel/src/pipeline/tool_logger.cpp index e6a9fbf36..064e25f77 100644 --- a/code/nel/src/misc/tool_logger.cpp +++ b/code/nel/src/pipeline/tool_logger.cpp @@ -25,8 +25,7 @@ * . */ -#include "stdmisc.h" -#include "nel/misc/tool_logger.h" +#include "nel/pipeline/tool_logger.h" // STL includes @@ -35,11 +34,11 @@ // Project includes -namespace NLMISC { +namespace NLPIPELINE { // Tool logger is fully implemented in header so small tools do not need to link to this library unnecessarily. void dummy_tool_logger_cpp() { } -} /* namespace NLMISC */ +} /* namespace NLPIPELINE */ /* end of file */ diff --git a/code/nel/tools/3d/mesh_utils/CMakeLists.txt b/code/nel/tools/3d/mesh_utils/CMakeLists.txt index a5a9fa952..c8390587c 100644 --- a/code/nel/tools/3d/mesh_utils/CMakeLists.txt +++ b/code/nel/tools/3d/mesh_utils/CMakeLists.txt @@ -7,7 +7,7 @@ INCLUDE_DIRECTORIES(${assimp_INCLUDE_DIRS}) NL_TARGET_LIB(mesh_utils ${SRCS} ${HDRS}) -TARGET_LINK_LIBRARIES(mesh_utils ${assimp_LIBRARIES} nelmisc nel3d) +TARGET_LINK_LIBRARIES(mesh_utils ${assimp_LIBRARIES} nelmisc nelpipeline nel3d) NL_DEFAULT_PROPS(mesh_utils "NeL, Tools, 3D: Mesh Utils") NL_ADD_RUNTIME_FLAGS(mesh_utils) diff --git a/code/nel/tools/3d/mesh_utils/assimp_material.cpp b/code/nel/tools/3d/mesh_utils/assimp_material.cpp index 5dbe8643c..4830d1b33 100644 --- a/code/nel/tools/3d/mesh_utils/assimp_material.cpp +++ b/code/nel/tools/3d/mesh_utils/assimp_material.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include #include diff --git a/code/nel/tools/3d/mesh_utils/assimp_shape.cpp b/code/nel/tools/3d/mesh_utils/assimp_shape.cpp index 7b404d1e2..7ab0729ae 100644 --- a/code/nel/tools/3d/mesh_utils/assimp_shape.cpp +++ b/code/nel/tools/3d/mesh_utils/assimp_shape.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include diff --git a/code/nel/tools/3d/mesh_utils/mesh_utils.cpp b/code/nel/tools/3d/mesh_utils/mesh_utils.cpp index b8d70660e..0b7025d0e 100644 --- a/code/nel/tools/3d/mesh_utils/mesh_utils.cpp +++ b/code/nel/tools/3d/mesh_utils/mesh_utils.cpp @@ -19,7 +19,8 @@ #include "mesh_utils.h" #include -#include +#include +#include #include #include #include @@ -28,7 +29,6 @@ #include #include -#include "database_config.h" #include "scene_meta.h" #include @@ -231,7 +231,7 @@ void exportShapes(CMeshUtilsContext &context) if (nodeContext.Shape) { std::string shapePath = NLMISC::CPath::standardizePath(context.Settings.DestinationDirectoryPath, true) + it->first + ".shape"; - context.ToolLogger.writeDepend(NLMISC::BUILD, shapePath.c_str(), "*"); + context.ToolLogger.writeDepend(NLPIPELINE::BUILD, shapePath.c_str(), "*"); NLMISC::COFile f; if (f.open(shapePath, false, false, true)) { @@ -262,7 +262,7 @@ void exportShapes(CMeshUtilsContext &context) std::string knownPath = NLMISC::CPath::lookup(fileName, false, false, false); if (!knownPath.empty()) { - context.ToolLogger.writeDepend(NLMISC::RUNTIME, shapePath.c_str(), knownPath.c_str()); + context.ToolLogger.writeDepend(NLPIPELINE::RUNTIME, shapePath.c_str(), knownPath.c_str()); } else { @@ -289,16 +289,16 @@ int exportScene(const CMeshUtilsSettings &settings) context.ToolLogger.initDepend(settings.ToolDependLog); if (!settings.ToolErrorLog.empty()) context.ToolLogger.initError(settings.ToolErrorLog); - context.ToolLogger.writeDepend(NLMISC::BUILD, "*", NLMISC::CPath::standardizePath(context.Settings.SourceFilePath, false).c_str()); // Base input file + context.ToolLogger.writeDepend(NLPIPELINE::BUILD, "*", NLMISC::CPath::standardizePath(context.Settings.SourceFilePath, false).c_str()); // Base input file // Apply database configuration - if (!CDatabaseConfig::init(settings.SourceFilePath)) + if (!NLPIPELINE::CDatabaseConfig::init(settings.SourceFilePath)) { tlerror(context.ToolLogger, context.Settings.SourceFilePath.c_str(), "Unable to find database.cfg in input path or any of its parents."); return EXIT_FAILURE; } - CDatabaseConfig::initTextureSearchDirectories(); + NLPIPELINE::CDatabaseConfig::initTextureSearchDirectories(); Assimp::Importer importer; const aiScene *scene = importer.ReadFile(settings.SourceFilePath, 0 @@ -321,7 +321,7 @@ int exportScene(const CMeshUtilsSettings &settings) context.InternalScene = scene; if (context.SceneMeta.load(context.Settings.SourceFilePath)) - context.ToolLogger.writeDepend(NLMISC::BUILD, "*", context.SceneMeta.metaFilePath().c_str()); // Meta input file + context.ToolLogger.writeDepend(NLPIPELINE::BUILD, "*", context.SceneMeta.metaFilePath().c_str()); // Meta input file validateInternalNodeNames(context, context.InternalScene->mRootNode); diff --git a/code/nel/tools/3d/mesh_utils/scene_context.cpp b/code/nel/tools/3d/mesh_utils/scene_context.cpp index 6812a312a..243f13482 100644 --- a/code/nel/tools/3d/mesh_utils/scene_context.cpp +++ b/code/nel/tools/3d/mesh_utils/scene_context.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include using namespace std; using namespace NLMISC; diff --git a/code/nel/tools/3d/mesh_utils/scene_context.h b/code/nel/tools/3d/mesh_utils/scene_context.h index 714e3ff54..10fa55e46 100644 --- a/code/nel/tools/3d/mesh_utils/scene_context.h +++ b/code/nel/tools/3d/mesh_utils/scene_context.h @@ -23,7 +23,7 @@ #include "scene_meta.h" #include -#include +#include #include #include @@ -67,7 +67,7 @@ struct CMeshUtilsContext const CMeshUtilsSettings &Settings; - NLMISC::CToolLogger ToolLogger; + NLPIPELINE::CToolLogger ToolLogger; const NL_SCENE_INTERNAL_TYPE *InternalScene; CSceneMeta SceneMeta; From db5c59d607f9e3abf8848c65bc14a99b51fd4398 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 16 Feb 2016 02:28:03 +0100 Subject: [PATCH 011/184] Centralized project directory configuration mechanism --- .../nel/include/nel/pipeline/project_config.h | 79 ++++++ code/nel/src/pipeline/project_config.cpp | 238 ++++++++++++++++++ code/nel/tools/3d/mesh_utils/mesh_utils.cpp | 10 +- 3 files changed, 322 insertions(+), 5 deletions(-) create mode 100644 code/nel/include/nel/pipeline/project_config.h create mode 100644 code/nel/src/pipeline/project_config.cpp diff --git a/code/nel/include/nel/pipeline/project_config.h b/code/nel/include/nel/pipeline/project_config.h new file mode 100644 index 000000000..11210d5e8 --- /dev/null +++ b/code/nel/include/nel/pipeline/project_config.h @@ -0,0 +1,79 @@ +// NeL - MMORPG Framework +// Copyright (C) 2015 Winch Gate Property Limited +// Author: Jan Boon +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +#ifndef NLPIPELINE_PROJECT_CONFIG_H +#define NLPIPELINE_PROJECT_CONFIG_H +#include + +namespace NLMISC { + class CConfigFile; +} + +#ifdef NL_OS_WINDOWS +#include +typedef NLMISC::CSString TPathString; +#else +typedef std::string TPathString; +#endif + +namespace NLPIPELINE { + +/// Asset project configuration. Used to configure lookup directories for tools and buildsite specific setup. Do not use for pipeline build settings +class CProjectConfig +{ +public: + enum Flags + { + DatabaseTextureSearchPaths = 0x0001, + DatabaseMaterialSearchPaths = 0x0002, + RuntimeTextureSearchPaths = 0x0100, + RuntimeShapeSearchPaths = 0x0200, + }; + +public: + ~CProjectConfig(); + + /// Searches for the configuration for the specified asset path by recursively going through all parent directories looking for 'nel.cfg', matches it to a project cfg if partial is not set, initializes and applies the configuration. + static bool init(const std::string &asset, Flags flags, bool partial = false); + /// Undo init + static void release(); + +private: + static void cleanup(); + static void searchDirectories(const char *var); + + static CProjectConfig s_Instance; + + static uint32 s_AssetConfigModification; + static uint32 s_ProjectConfigModification; + + static TPathString s_AssetConfigPath; + static TPathString s_ProjectConfigPath; + + static std::string s_ProjectName; + static CProjectConfig::Flags CProjectConfig::s_InitFlags; + + static std::vector s_ConfigPaths; + static std::vector s_ConfigFiles; + +}; + +} /* namespace NLPIPELINE */ + +#endif /* #ifndef NLPIPELINE_PROJECT_CONFIG_H */ + +/* end of file */ diff --git a/code/nel/src/pipeline/project_config.cpp b/code/nel/src/pipeline/project_config.cpp new file mode 100644 index 000000000..995f92fd4 --- /dev/null +++ b/code/nel/src/pipeline/project_config.cpp @@ -0,0 +1,238 @@ +// NeL - MMORPG Framework +// Copyright (C) 2015 Winch Gate Property Limited +// Author: Jan Boon +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +#include +#include "nel/pipeline/project_config.h" + +#ifdef NL_OS_WINDOWS +# include +#else +# include +#endif + +#include + +#include +#include +#include + +using namespace std; +using namespace NLMISC; + +namespace NLPIPELINE { + +TPathString CProjectConfig::s_AssetConfigPath; +TPathString CProjectConfig::s_ProjectConfigPath; +std::vector CProjectConfig::s_ConfigFiles; +std::vector CProjectConfig::s_ConfigPaths; +CProjectConfig CProjectConfig::s_Instance; +uint32 CProjectConfig::s_AssetConfigModification; +uint32 CProjectConfig::s_ProjectConfigModification; +CProjectConfig::Flags CProjectConfig::s_InitFlags = (CProjectConfig::Flags)0; +std::string CProjectConfig::s_ProjectName; + +static std::set s_SearchPaths; + +void CProjectConfig::cleanup() +{ + for (std::vector::iterator it(s_ConfigFiles.begin()), end(s_ConfigFiles.end()); it != end; ++it) + delete *it; + s_ConfigFiles.clear(); +} + +CProjectConfig::~CProjectConfig() +{ + cleanup(); +} + +bool CProjectConfig::init(const std::string &asset, Flags flags, bool partial) +{ + TPathString rootPath = NLMISC::CPath::standardizePath(asset, false); + TPathString configPath = rootPath + "/nel.cfg"; + while (!CFile::fileExists(configPath)) + { + int sep = CFile::getLastSeparator(rootPath); + if (sep == string::npos) + return false; + + rootPath = rootPath.substr(0, sep); + if (rootPath.empty()) + return false; + + configPath = rootPath + "/nel.cfg"; + } + + rootPath += "/"; + uint32 configFileModification = CFile::getFileModificationDate(configPath); + bool assetConfigSame = configPath == s_AssetConfigPath && s_AssetConfigModification == configFileModification && s_InitFlags == flags; + + std::vector configRootPaths; + TPathString projectConfigPath; + uint32 projectConfigModification; + std::string projectName; + if (partial) + { + if (assetConfigSame && s_ProjectConfigPath.empty()) + return true; // Do not reload + } + else + { + if (assetConfigSame && !s_ProjectConfigPath.empty() && CFile::fileExists(s_ProjectConfigPath)) + { + projectConfigModification = CFile::getFileModificationDate(s_ProjectConfigPath); + + if (s_ProjectConfigModification == projectConfigModification) + return true; // Do not reload + } + + // Search for project and load up all root paths + std::vector files; + CPath::getPathContent(CPath::getApplicationDirectory("NeL", true) + "/projects", false, false, true, files); + for (std::vector::iterator it(files.begin()), end(files.end()); it != end; ++it) + { + const std::string& file = *it; + if (file.length() >= 4 && (file.compare(file.length() - 4, 4, ".cfg") == 0)) + { + CConfigFile project; + project.load(file); + CConfigFile::CVar &directories = project.getVar("Directories"); + bool isProject = false; + for (uint i = 0; i < directories.size(); ++i) + { + if (rootPath == CPath::standardizePath(directories.asString(i), true)) + { + isProject = true; + break; + } + } + if (isProject) + { + projectConfigModification = CFile::getFileModificationDate(file); + projectConfigPath = file; + + for (uint i = 0; i < directories.size(); ++i) + { + std::string dir = CPath::standardizePath(directories.asString(i), true); + std::string cfgPath = dir + "nel.cfg"; + if (CFile::fileExists(cfgPath)) + configRootPaths.push_back(dir); + } + + projectName = project.getVar("ProjectName").asString(); + + break; + } + } + } + } + + if (projectConfigPath.empty()) + { + projectName = "NeL Project"; + configRootPaths.push_back(rootPath); + projectConfigModification = 0; + } + + nldebug("Initializing project config '%s'", projectConfigPath.empty() ? configPath.c_str() : projectConfigPath.c_str()); + release(); + + s_InitFlags = flags; + s_AssetConfigPath = configPath; + s_AssetConfigModification = configFileModification; + s_ProjectConfigPath = projectConfigPath; + s_ProjectConfigModification = projectConfigModification; + s_ProjectName = projectName; + s_ConfigPaths = configRootPaths; + + std::map configFiles; + for (std::vector::iterator it(configRootPaths.begin()), end(configRootPaths.end()); it != end; ++it) + { + const std::string &dir = *it; + const std::string &cfgPath = *it + "nel.cfg"; + CConfigFile *cfgFile = new CConfigFile(); + cfgFile->load(cfgPath); + std::string identifier = cfgFile->getVar("Identifier").asString(); + if (configFiles.find(identifier) != configFiles.end()) // Identifier already exists + { + if (dir == rootPath) + { + // Replace config that was already added, asset root gets priority + std::vector::iterator old = std::find(s_ConfigFiles.begin(), s_ConfigFiles.end(), configFiles[identifier]); + uint idx = old - s_ConfigFiles.begin(); + s_ConfigFiles.erase(old); + s_ConfigPaths.erase(s_ConfigPaths.begin() + idx); + } + else + { + // Skip, first listed config gets priority + s_ConfigPaths.erase(s_ConfigPaths.begin() + s_ConfigFiles.size()); + continue; + } + } +#ifdef NL_OS_WINDOWS + SetEnvironmentVariableA(identifier.c_str(), dir.c_str()); +#else + setenv(identifier.c_str(), dir.c_str(), 1); +#endif + configFiles[identifier] = cfgFile; + s_ConfigFiles.push_back(cfgFile); + } + + nlassert(s_ConfigFiles.size() == s_ConfigPaths.size()); + + if (flags & DatabaseTextureSearchPaths) + { + searchDirectories("DatabaseTextureSearchPaths"); + } + + return true; +} + +void CProjectConfig::searchDirectories(const char *var) +{ + for (uint i = 0; i < s_ConfigFiles.size(); ++i) + { + CConfigFile *cfg = s_ConfigFiles[i]; + const TPathString &dir = s_ConfigPaths[i]; + CConfigFile::CVar *paths = cfg->getVarPtr(var); + if (paths) + { + for (uint i = 0; i < paths->size(); i++) + { + TPathString path = paths->asString(i); + if (!CPath::isAbsolutePath(path)) path = dir + path; + path = CPath::standardizePath(path); + if (s_SearchPaths.find(path) == s_SearchPaths.end()) + { + CPath::addSearchPath(path); + s_SearchPaths.insert(path); + } + } + } + } +} + +void CProjectConfig::release() +{ + s_SearchPaths.clear(); + CPath::clearMap(); + cleanup(); +} + +} /* namespace NLPIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/mesh_utils/mesh_utils.cpp b/code/nel/tools/3d/mesh_utils/mesh_utils.cpp index 0b7025d0e..8765e3960 100644 --- a/code/nel/tools/3d/mesh_utils/mesh_utils.cpp +++ b/code/nel/tools/3d/mesh_utils/mesh_utils.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include @@ -292,14 +292,14 @@ int exportScene(const CMeshUtilsSettings &settings) context.ToolLogger.writeDepend(NLPIPELINE::BUILD, "*", NLMISC::CPath::standardizePath(context.Settings.SourceFilePath, false).c_str()); // Base input file // Apply database configuration - if (!NLPIPELINE::CDatabaseConfig::init(settings.SourceFilePath)) + if (!NLPIPELINE::CProjectConfig::init(settings.SourceFilePath, + NLPIPELINE::CProjectConfig::DatabaseTextureSearchPaths, + true)) { tlerror(context.ToolLogger, context.Settings.SourceFilePath.c_str(), "Unable to find database.cfg in input path or any of its parents."); - return EXIT_FAILURE; + // return EXIT_FAILURE; We can continue but the output will not be guaranteed... } - NLPIPELINE::CDatabaseConfig::initTextureSearchDirectories(); - Assimp::Importer importer; const aiScene *scene = importer.ReadFile(settings.SourceFilePath, 0 | aiProcess_Triangulate From caaf2cc2fa866e74168ceefc8ee282276d04ad6b Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 16 Feb 2016 15:07:24 +0100 Subject: [PATCH 012/184] Changed: Symbol for byte unit --- .../ryzom/tools/translation/translated/de.uxt | 20 +++++++++++++++++++ .../ryzom/tools/translation/translated/en.uxt | 4 ++++ .../ryzom/tools/translation/translated/fr.uxt | 5 +++++ .../ryzom/tools/translation/translated/wk.uxt | 5 +++++ code/ryzom/tools/translation/work/wk.uxt | 2 ++ 5 files changed, 36 insertions(+) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index 3ee0ddb6b..18a93edd4 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -27263,3 +27263,23 @@ uiTotalPatch [GESAMTER PATCH] // INDEX 6468 uiRequiredFiles [BENÖTIGTE DATEIEN] +// HASH_VALUE 8C42E02F0C01D422 +// INDEX 6469 +uiLodValue [STANDARD] + +// HASH_VALUE 6878DC2CC23A6CB6 +// INDEX 6470 +uiDebugProfileFillRate [Profil Füllrate] + +// HASH_VALUE 0F54678C93B4CBF6 +// INDEX 6471 +uiFixedMissionEntry_Mainland_Unknwown [Hauptland / unbekannt] + +// HASH_VALUE CAB123089C80B66B +// INDEX 6472 +uiNoFiles [Keine Dateien] + +// HASH_VALUE 4090240840902408 +// INDEX 6473 +uiByte [B] + diff --git a/code/ryzom/tools/translation/translated/en.uxt b/code/ryzom/tools/translation/translated/en.uxt index 6b0034f49..3fe1e4927 100644 --- a/code/ryzom/tools/translation/translated/en.uxt +++ b/code/ryzom/tools/translation/translated/en.uxt @@ -27261,3 +27261,7 @@ uiFixedMissionEntry_Mainland_Unknwown [Main land / Unknown] // INDEX 6472 uiNoFiles [No Files...] +// HASH_VALUE 4090240840902408 +// INDEX 6473 +uiByte [B] + diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index e21eba16a..dd53e06c1 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -27263,3 +27263,8 @@ uiFixedMissionEntry_Mainland_Unknwown [Continent / Inconnu] // INDEX 6472 uiNoFiles [Aucun fichier...] +// symbol of byte unit +// HASH_VALUE 4090240840902408 +// INDEX 6473 +uiByte [o] + diff --git a/code/ryzom/tools/translation/translated/wk.uxt b/code/ryzom/tools/translation/translated/wk.uxt index daaf748f3..5751545ba 100644 --- a/code/ryzom/tools/translation/translated/wk.uxt +++ b/code/ryzom/tools/translation/translated/wk.uxt @@ -27479,3 +27479,8 @@ uiFixedMissionEntry_Mainland_Unknwown [Main land / Unknown] // INDEX 6472 uiNoFiles [No Files...] +// symbol of byte unit +// HASH_VALUE 4090240840902408 +// INDEX 6473 +uiByte [B] + diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index cd8fac03b..639ef2904 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -13464,3 +13464,5 @@ uiDebugProfileFillRate [Profile Fillrate] uiFixedMissionEntry_Mainland_Unknwown [Main land / Unknown] // displayed when no files are playing in MP3 player uiNoFiles [No Files...] +// symbol of byte unit +uiByte [B] From 10d220f292df94d7c6b8813995dbe26ab9a8cf30 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 16 Feb 2016 15:10:07 +0100 Subject: [PATCH 013/184] Fixed: Wrong indices --- .../ryzom/tools/translation/translated/de.uxt | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index 18a93edd4..6d96aa3de 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -23270,219 +23270,219 @@ uiTextCommandFT3 [] uiTextCommandFT4 [] // HASH_VALUE 24B816A0C9599FAC -// INDEX 5530 +// INDEX 5529 uiLoadingString0 [Die Mektoubfutterrechnung der letzten 4 Wochen wird automatisch abgezogen; vielen Dank.] // HASH_VALUE E98900FFF775E4A4 -// INDEX 5531 +// INDEX 5530 uiLoadingString1 [Alle Mektoubs der Gilde werden gerade gefüttert, vielen Dank für Deine Spende.] // HASH_VALUE EC380C7826B0E2B8 -// INDEX 5532 +// INDEX 5531 uiLoadingString2 [Yubos sind Freunde, kein Futter!] // HASH_VALUE 982918929DE29270 -// INDEX 5533 +// INDEX 5532 uiLoadingString3 [Hier könnte dein Handelsangebot stehen!] // HASH_VALUE A9A928B20D40C067 -// INDEX 5534 +// INDEX 5533 uiLoadingString4 [Bitte die Karavanwachen nicht mehr mit Dappern bewerfen, Rumstehen ist ihr Job!] // HASH_VALUE 57987089DF3E8526 -// INDEX 5535 +// INDEX 5534 uiLoadingString5 [Wettervorhersage in Pyr: staubig, windig, heiß... Wüste halt!] // HASH_VALUE DDCF5B28C4882657 -// INDEX 5536 +// INDEX 5535 uiLoadingString6 [Wo bin ich hier?] // HASH_VALUE C3845961575BCF17 -// INDEX 5537 +// INDEX 5536 uiLoadingString7 [Wettervorhersage in Fairhaven: ziemlich bunt mit Schirmchen und Strohhalmen!] // HASH_VALUE 38F016093D5F5AF8 -// INDEX 5538 +// INDEX 5537 uiLoadingString8 [Wettervorhersage in Yrkanis: 10:00 Uhr Regen, 16:00 Uhr Regen, 20:00 Uhr Regen...] // HASH_VALUE 8934F3FADA08A86E -// INDEX 5539 +// INDEX 5538 uiLoadingString9 [Horoskop heute: meide den Kontakt zu 10 Meter großen Kitins!] // HASH_VALUE A235B485FD91F379 -// INDEX 5540 +// INDEX 5539 uiLoadingString10 [Der Heiler: 1121341... verdammt!] // HASH_VALUE 7185186ACE241B26 -// INDEX 5541 +// INDEX 5540 uiLoadingString11 [Der Krieger: "Ha, elender Kitin! Nimm dies!" *pieks* ... "und lach nicht!!!"] // HASH_VALUE D3A4AE55153998BE -// INDEX 5542 +// INDEX 5541 uiLoadingString12 [Der Magier: "3 Sprüche pro Mob, schaut her!" *brutzel* "Oh..." *Schluck* "Jetzt kommen 5..."] // HASH_VALUE A235B485FD91F379 -// INDEX 5543 +// INDEX 5542 uiLoadingString13 [Der Beherrschungsmagier: "Wartet, ich schick den Boss kurz weg..." *widersteht* "Ups..."] // HASH_VALUE 2C7660055814BCAD -// INDEX 5544 +// INDEX 5543 uiLoadingString14 [Der Beherrschungsmagier: "Lass uns mal ganz in Ruhe drüber reden, Kirosta..." *stun*] // HASH_VALUE DA2580B0E74AB8DE -// INDEX 5545 +// INDEX 5544 uiLoadingString15 [Der Harvester: "Buddeln und Chatten? Kein Problem!" ... *bumm* "Argh..."] // HASH_VALUE 9F5A8863CDA463CB -// INDEX 5546 +// INDEX 5545 uiLoadingString16 [Der Crafter: "Wart, ich bau mir noch schnell ne Rüstung!" *degrade*...*degrade*...*seufz*...] // HASH_VALUE 4A93117E839C41A5 -// INDEX 5547 +// INDEX 5546 uiLoadingString17 [Marktwirtschaft: Kaufe 3 Tickets zum Freundschaftspreis von... 3 Tickets!] // HASH_VALUE 0D16EA857967AA4C -// INDEX 5548 +// INDEX 5547 uiLoadingString18 [Merke: 'Buddeln bis der Arzt kommt' kann man auf Atys durchaus wörtlich nehmen!] // HASH_VALUE C8D5F76A5807BF6E -// INDEX 5549 +// INDEX 5548 uiLoadingString19 [Vorsicht: Swingende, besoffene Yubos in Miniröcken gesichtet. Tryker dementieren Beteiligung!] // HASH_VALUE 47BCE034A35B081F -// INDEX 5550 +// INDEX 5549 uiLoadingString20 [*gähn* "Guten Morgen, gut geschlafen?" *auf die Uhr schau* "Ähm... äh... Hallo alle!"] // HASH_VALUE 86E4AC9E5A742C23 -// INDEX 5551 +// INDEX 5550 uiLoadingString21 [Schade, Trykerweitwurf aufgrund zu wehrhafter Tryker abgesagt!] // HASH_VALUE CD0616F57A127246 -// INDEX 5552 +// INDEX 5551 uiLoadingString22 [Nicht vergessen: Packer bürsten, Appartement aufräumen, Gildenhalle polieren...] // HASH_VALUE 8CC27B9A2CA9589B -// INDEX 5553 +// INDEX 5552 uiLoadingString23 [Keine Tastatur gefunden. Drücke beliebige Taste, um fortzufahren.] // HASH_VALUE E9B90C41F6A1E0AA -// INDEX 5554 +// INDEX 5553 uiLoadingString24 [An alles gedacht? Kaffee? Chips? Pizza? Slim Fast? Na, dann los!] // HASH_VALUE 7218245C26B0E2B8 -// INDEX 5555 +// INDEX 5554 uiLoadingString25 [Ladedauer verzögert sich, empfehle Powerleveln des RAMs zur Beschleunigung.] // HASH_VALUE 4BB6F756D6E77479 -// INDEX 5556 +// INDEX 5555 uiLoadingString26 [Rechtschreibkontrolleur nimmt sich heute frei...] // HASH_VALUE D955C83AACB50070 -// INDEX 5557 +// INDEX 5556 uiLoadingString27 [Kamis werden gewaschen, gefönt und flauschig gebürstet...] // HASH_VALUE 2D5ACC1B8911C2AB -// INDEX 5558 +// INDEX 5557 uiLoadingString28 [Der Yubo: läuft und läuft und läuft...] // HASH_VALUE E4794CC009B1A0AD -// INDEX 5559 +// INDEX 5558 uiLoadingString29 [Neue Chatfarben werden installiert: pink, magenta und aprikot...] // HASH_VALUE 9A769398D849FB83 -// INDEX 5560 +// INDEX 5559 uiLoadingString30 [Unbekannte Portale werden hinzugefügt, die nie ein Homin zuvor betreten hat!] // HASH_VALUE 6CB8DCBA26B0E2B8 -// INDEX 5561 +// INDEX 5560 uiLoadingString31 [Atys: unendliche Weiten... unendliche Gefahren... unendlich viele Kitins!] // HASH_VALUE 2844727AEC68D05A -// INDEX 5562 +// INDEX 5561 uiLoadingString32 [GM-Rechte hinzugefügt, wieder aberkannt, trotzdem viel Spaß auf Atys!] // HASH_VALUE A6A94808F765ACA5 -// INDEX 5563 +// INDEX 5562 uiLoadingString33 [Godmode für Yubos wird aktiviert...] // HASH_VALUE D83B54B9E988EF1F -// INDEX 5564 +// INDEX 5563 uiLoadingString34 [Rohstoffquellen werden aufgefüllt... das ist mehr Arbeit, als du denkst!] // HASH_VALUE DBFAF08F5CC96722 -// INDEX 5565 +// INDEX 5564 uiLoadingString35 [Ich sehe dich User, aber nicht gut... putz mal den Monitor! ] // HASH_VALUE 23B5B3719B486459 -// INDEX 5566 +// INDEX 5565 uiLoadingString36 [Grotten werden im Seenland gegraben...] // HASH_VALUE C5047097A6340F71 -// INDEX 5567 +// INDEX 5566 uiLoadingString37 [Wettereffekte werden getestet...] // HASH_VALUE 8895244968FA2376 -// INDEX 5568 +// INDEX 5567 uiLoadingString38 [Kitins werden gefüttert...] // HASH_VALUE 4C15D78519D67645 -// INDEX 5569 +// INDEX 5568 uiLoadingString39 [Yubos werden geklont...] // HASH_VALUE AE3A484B87D4AF5D -// INDEX 5570 +// INDEX 5569 uiLoadingString40 [Unsichtbare Arbeiter werden gejagt...] // HASH_VALUE 1CE4869B2D587BA1 -// INDEX 5571 +// INDEX 5570 uiLoadingString41 [Himmel wird gereinigt...] // HASH_VALUE 5E8DEB579667D7AF -// INDEX 5572 +// INDEX 5571 uiLoadingString42 [Die Atys-Kugel wird aufgeblasen...] // HASH_VALUE DCBA205296141008 -// INDEX 5573 +// INDEX 5572 uiLoadingString43 [GMs werden versteckt...] // HASH_VALUE 76760A7A4CF0DACE -// INDEX 5574 +// INDEX 5573 uiLoadingString44 [Magie wird in Atys hineingepumpt... ] // HASH_VALUE 0D04174F9C980447 -// INDEX 5575 +// INDEX 5574 uiLoadingString45 [Ninja-Yubos werden installiert...] // HASH_VALUE 5986E37DE9942C70 -// INDEX 5576 +// INDEX 5575 uiLoadingString46 [Ragusse werden abgelenkt...] // HASH_VALUE 0C7AA3809C77E378 -// INDEX 5577 +// INDEX 5576 uiLoadingString47 [Gravitationskonstane von Atys wird berechnet...] // HASH_VALUE 28BB8F6D5A15ACBB -// INDEX 5578 +// INDEX 5577 uiLoadingString48 [Geheime Untergrund-Militär-Einrichtung wird hochgefahren...] // HASH_VALUE A6BAB0718A5CFB73 -// INDEX 5579 +// INDEX 5578 uiLoadingString49 [Zoraï-Ale wird gebraut...] // HASH_VALUE 6609F4514840E4A9 -// INDEX 5580 +// INDEX 5579 uiLoadingString50 [Wasser wird in die entsprechenden Vertiefungen gefüllt...] // HASH_VALUE 1BA9D89090FEA62B -// INDEX 5581 +// INDEX 5580 uiLoadingString51 [Geheimes Zeug wird im Boden versteckt...] // HASH_VALUE 6F798442B63488B7 -// INDEX 5582 +// INDEX 5581 uiLoadingString52 [Gingos werden geärgert, um die Aggressivität zu erhöhen... ] // HASH_VALUE E0617F4556CA98A4 -// INDEX 5583 +// INDEX 5582 uiLoadingString53 [Gras wird wachsen gelassen...] // HASH_VALUE 5E07187358A2309C From 653a6cf31f9a1167f9d6811d9d41bb8fdb23c4c5 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 16 Feb 2016 15:22:06 +0100 Subject: [PATCH 014/184] Changed: Updated hash --- code/ryzom/tools/translation/translated/de.uxt | 8 ++++---- code/ryzom/tools/translation/translated/en.uxt | 4 ++-- code/ryzom/tools/translation/translated/fr.uxt | 4 ++-- code/ryzom/tools/translation/translated/ru.uxt | 8 ++++---- code/ryzom/tools/translation/translated/wk.uxt | 4 ++-- code/ryzom/tools/translation/work/wk.uxt | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index 6d96aa3de..b725c6553 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -1417,11 +1417,11 @@ uiErrPatchApply [Fehler : Patchprozess beendet, aber der Patch konnte nicht erfo // INDEX 353 uiErrChecking [Fehler : Patchdateien versagen - Überprüfung.] -// HASH_VALUE 40D0242C40D0242C +// HASH_VALUE 8E9280411622E45F // INDEX 354 uiKb [KiB] -// HASH_VALUE 4050243440502434 +// HASH_VALUE 90B288459762EC61 // INDEX 355 uiMb [MiB] @@ -15964,9 +15964,9 @@ uiHumidity [Feuchtigkeit] // INDEX 3816 uiWind [Wind] -// HASH_VALUE 0000000000000000 +// HASH_VALUE 2E59C4AAE9F9F4BD // INDEX 3817 -uiContinentIndoors [Innenraum] +uiContinentIndoors [indoors] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 diff --git a/code/ryzom/tools/translation/translated/en.uxt b/code/ryzom/tools/translation/translated/en.uxt index 3fe1e4927..8b5fb9231 100644 --- a/code/ryzom/tools/translation/translated/en.uxt +++ b/code/ryzom/tools/translation/translated/en.uxt @@ -15960,9 +15960,9 @@ uiHumidity [Humidity] // INDEX 3816 uiWind [Wind] -// HASH_VALUE 0000000000000000 +// HASH_VALUE 2E59C4AAE9F9F4BD // INDEX 3817 -uiContinentIndoors [] +uiContinentIndoors [indoors] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index dd53e06c1..2794af616 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -15958,9 +15958,9 @@ uiHumidity [Humidité] // INDEX 3816 uiWind [Vent] -// HASH_VALUE 0000000000000000 +// HASH_VALUE 2E59C4AAE9F9F4BD // INDEX 3817 -uiContinentIndoors [] +uiContinentIndoors [intérieurs] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 diff --git a/code/ryzom/tools/translation/translated/ru.uxt b/code/ryzom/tools/translation/translated/ru.uxt index 3c8a6da66..ff619d6d6 100644 --- a/code/ryzom/tools/translation/translated/ru.uxt +++ b/code/ryzom/tools/translation/translated/ru.uxt @@ -1415,13 +1415,13 @@ uiErrPatchApply [Ошибка : Процесс скачивания патча // INDEX 353 uiErrChecking [Ошибка : Файлы патча не соответствуют необходимым - идет проверка...] -// HASH_VALUE 40D0242C40D0242C +// HASH_VALUE 8E9280411622E45F // INDEX 354 -uiKb [КБ] +uiKb [КиБ] -// HASH_VALUE 4050243440502434 +// HASH_VALUE 90B288459762EC61 // INDEX 355 -uiMb [МБ] +uiMb [МиБ] // HASH_VALUE 9FA5A06DD895B637 // INDEX 356 diff --git a/code/ryzom/tools/translation/translated/wk.uxt b/code/ryzom/tools/translation/translated/wk.uxt index 5751545ba..929bd1688 100644 --- a/code/ryzom/tools/translation/translated/wk.uxt +++ b/code/ryzom/tools/translation/translated/wk.uxt @@ -16301,9 +16301,9 @@ uiHumidity [Humidity] uiWind [Wind] // Continent names -// HASH_VALUE 0000000000000000 +// HASH_VALUE 2E59C4AAE9F9F4BD // INDEX 3817 -uiContinentIndoors [] +uiContinentIndoors [indoors] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index 639ef2904..57b238431 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -8674,7 +8674,7 @@ uiWind [Wind] // Continent names -uiContinentIndoors [] +uiContinentIndoors [indoors] uiContinentRouteGouffre [the Abyss Road] From ea4e7bf95b08a79ecc502241feb99ba8671db345 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 16 Feb 2016 15:26:14 +0100 Subject: [PATCH 015/184] Changed: Minor changes in translations --- .../ryzom/tools/translation/translated/de.uxt | 32 +++++++++++-------- .../ryzom/tools/translation/translated/fr.uxt | 1 - 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index b725c6553..b4e1f5098 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -4671,21 +4671,24 @@ uittOutpostAttackRound [@{6F6F}Angriffsperiode!@{FFFF}\n Die Angreifer müssen einen höchstmöglichen @{6F6F}Rundenstand@{FFFF} erreichen.\n Sie müssen mindestens die angegebene @{6F6F}Mindestschwelle@{FFFF} erreichen, die der Außenposten zur Zeit hat.\n Bei jeder gewonnenen Runde steigen das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n - Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n ] + Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu zerstörenden Truppen.\n + ] // HASH_VALUE C3CD3092CDC57722 // INDEX 1163 uittOutpostAttackAfterWin [@{6F6F}Nach dem Angriff@{FFFF}\n Der Krieg geht weiter! \n Die Angreifer haben es geschafft, die @{6F6F}Mindestschwelle@{FFFF} zu erreichen, die die Verteidiger während der @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n - Das Ende der Angriffsphase muss abgewartet werden, ehe die Angreifer den Außenposten gewinnen.\n ] + Das Ende der Angriffsphase muss abgewartet werden, ehe die Angreifer den Außenposten gewinnen.\n + ] // HASH_VALUE 3FD04DD028A7D053 // INDEX 1164 uittOutpostAttackAfterLoose [@{6F6F}Nach Angriff@{FFFF}\n Es ist den Angreifern nicht gelungen, die @{6F6F}Mindestschwelle@{FFFF} zu überschreiten, die die Verteidiger während der @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n Also haben die Angreifer verloren.\n - Der Außenposten wird am Ende der Angriffsphase ganz befreit.\n ] + Der Außenposten wird am Ende der Angriffsphase ganz befreit.\n + ] // HASH_VALUE FE5CECB92CB02670 // INDEX 1165 @@ -4702,7 +4705,8 @@ uittOutpostDefenseRound [@{6F6F}Verteidigungsperiode!@{FFFF}\n Die Verteidiger müssen das @{6F6F}Rundenlevel@{FFFF} überschreiten, das die Angreifer während ihrer @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n Die Verteidiger verlieren den Außenposten, wenn sie dieses Niveau nicht erreichen.\n Bei jeder gewonnenen Runde steigen das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n - Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n ] + Bei jeder verlorenen Runde sinken das @{6F6F}Rundenlevel@{FFFF} und die Anzahl der zu besiegenden Truppen.\n + ] // HASH_VALUE 327473E0EACEF1A3 // INDEX 1167 @@ -4887,12 +4891,13 @@ uittOutpostDeclareWar [Diesem Außenposten den Krieg erklären\n // HASH_VALUE F64ED3F482D06804 // INDEX 1206 -uiOutpostWarCost [KOSTEN DER KRIEGSERKLÄRUNG: ] +uiOutpostWarCost [KOSTEN DER KRIEGSERKLÄRUNG: ] // HASH_VALUE CAF544A84E2694D6 // INDEX 1207 uiOutpostWarCostDesc [Einem Außenposten den Krieg zu erklären, kostet die Gilde Dapper (Geld) - hauptsächlich, um die Truppen während der Verteidigungsperiode zu bezahlen..\n - Diese Summe wird entweder dem Gildenvermögen oder deiner Tasche entnommen\n ] + Diese Summe wird entweder dem Gildenvermögen oder deiner Tasche entnommen\n + ] // HASH_VALUE 8F52938208D44C1D // INDEX 1208 @@ -4968,7 +4973,8 @@ uiOutpostSSquad [AKTIVE TRUPPEN] // HASH_VALUE 0F3B4563845E6EFF // INDEX 1225 uittOutpostSSquad [Eingesetzte Truppen, die den Außenposten verteidigen.\n - Die Gesamtheit aller eingesetzten Truppen hängt vom @{6F6F}Rundenlevel@{FFFF} ab.\n ] + Die Gesamtheit aller eingesetzten Truppen hängt vom @{6F6F}Rundenlevel@{FFFF} ab.\n + ] // HASH_VALUE 08110B32CC11D70D // INDEX 1226 @@ -4977,7 +4983,8 @@ uiOutpostTSquad [BEREITSTEHENDE TRUPPEN] // HASH_VALUE F1D1A88C0BDB046E // INDEX 1227 uittOutpostTSquad [Kampfbereite Truppen, die auf die nächste Runde warten.\n - Laut des @{6F6F}Rundenlevels@{FFFF}, kommen nur die 'X' Ersten heraus.\n ] + Laut des @{6F6F}Rundenlevels@{FFFF}, kommen nur die 'X' Ersten heraus.\n + ] // HASH_VALUE DB499A35C8B08D6A // INDEX 1228 @@ -5036,7 +5043,8 @@ uiOutpostCapitalDoc [Die Truppen, die du hier bearbeiten willst, kosten die Gild Doch wenn die Gilde nicht mehr genug Dapper hat, um den @{6F6F) Einsatz einer Truppe@{FFFF} zu bezahlen, wird eine Standard-Truppe eingesetzt, die nicht stark ist.\n Außerdem hast du die Möglichkeit, @{6F6F}über Außenposten@{FFFF} die Ausgaben für die Truppen zu vermindern, indem du den Etat der unten stehenden @{6F6F}Kriegskasse@{FFFF} änderst.\n Jeder @{6F6F}Einsatz einer Truppe@{FFFF} vermindert gleichzeitig das Vermögen einer Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens (wenn möglich).\n - Jeder Einzug einer lebenden @{6F6F}Truppe@{FFFF} (auch nur teilweise) erhöht das Vermögen der Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens.\n ] + Jeder Einzug einer lebenden @{6F6F}Truppe@{FFFF} (auch nur teilweise) erhöht das Vermögen der Gilde und den Etat der @{6F6F}Kriegskasse@{FFFF} des Außenpostens.\n + ] // HASH_VALUE 9E53FA091EB9BCAE // INDEX 1240 @@ -10426,7 +10434,7 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF @{FFF9}@{HuittToolCraftType}Werkzeugart:@{H}@{T12}@{FFFF}%tool\n %cansell\n @{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n - %buffs\n + %buffs\n %special_effects\n \n @{FFFF}%desc%custom_text] @@ -10497,7 +10505,6 @@ uihelpItemChargeSpell [@{FFF9}Sapladung:@{T12}@{FFFF}%quality\n Die Sapladung und ihr Maximum können mit einem Rechtsklick auf den Gegenstand unter "Info" eingesehen werden.\n %cansell%custom_text] - // HASH_VALUE E83415184D022FA7 // INDEX 2496 uihelpItemAnimal [Dieser Gegenstand symbolisiert \n @@ -13630,7 +13637,7 @@ uiTryton3 [Seitdem haben drei Generationen versucht, die geschlagenen Wunden zu uiTryton4 [Das ist meine Hoffnung, denn nur gemeinsam werden wir gegen das kommende Böse am besten gerüstet sein und sein Vorrücken zurückstoßen können. Gewiss, auch ich hörte den herannahenden drohenden Donner von Mega Corp, der leider eines Tages das Innere des ganzen grünen Planeten Atys erschüttern wird.\n Aber ich habe Vertrauen zu diesem Neuanfang der Hominheit.\n \n - E. Tryton] + E. Tryton] // HASH_VALUE 741C5438741C5438 // INDEX 3238 @@ -24293,7 +24300,6 @@ uittPhraseXPMalus [@{6F6F}Sterbe-Erfahrungsstrafe.\n Die darauf folgenden Erfahrungs-Gewinne begleichen die Strafe, bis sie abgetragen ist.\n Bis die Strafe auf 0 gesunken ist, bringen Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] - // HASH_VALUE 29532B61D5EBA4EA // INDEX 5769 uittInventoryWeight [@{6F6F}Gesamtgewicht @{FFFF}dieses Inventars] diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 2794af616..5114b28c0 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -4656,7 +4656,6 @@ uittOutpostWarDeclarationMyGuildDefend [@{6F6F}Déclaration de guerre@{FFFF}\n // INDEX 1161 uittOutpostAttackBefore [@{6F6F}Attente d'attaque@{FFFF}\n La guerre a commencé ! Les personnages-joueurs peuvent déja se battre sur l'avant-poste mais les escouades de l'avant-poste n'apparaîtront que pendant la @{6F6F}période d'attaque@{FFFF} choisie par l'attaquant.\n - Pendant cette période, les attaquants essaieront alors de dépasser le @{6F6F}seuil minimum@{FFFF} fixé par les défenseurs.] // HASH_VALUE 8D5E59E3DBC77439 From 8460d1c3825b0a480bf7d6ca141bf08aa2940830 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 16 Feb 2016 15:26:41 +0100 Subject: [PATCH 016/184] Fixed: Reverted removed translation --- code/ryzom/tools/translation/translated/de.uxt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index b4e1f5098..ebc01579a 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -11620,6 +11620,8 @@ fct_newb_e [ (Miani - Wächter)] // HASH_VALUE 48E6C35118B6AE4C // INDEX 2737 +fct_newb_e_chief [ (Miani - Oberwächter)] + // HASH_VALUE 479857CFF54E1AF2 // INDEX 2738 fct_newb_za [ (Qai-Lo - Wächter)] From cb44c01ad4eb79dc9b76c7dd0f6e0beee7e177cc Mon Sep 17 00:00:00 2001 From: Gary Preston Date: Tue, 16 Feb 2016 19:01:14 +0000 Subject: [PATCH 017/184] Add vector include and remove extra qualification on s_InitFlags. --- code/nel/include/nel/pipeline/project_config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/nel/include/nel/pipeline/project_config.h b/code/nel/include/nel/pipeline/project_config.h index 11210d5e8..a63cbda20 100644 --- a/code/nel/include/nel/pipeline/project_config.h +++ b/code/nel/include/nel/pipeline/project_config.h @@ -18,6 +18,7 @@ #ifndef NLPIPELINE_PROJECT_CONFIG_H #define NLPIPELINE_PROJECT_CONFIG_H #include +#include namespace NLMISC { class CConfigFile; @@ -65,7 +66,7 @@ private: static TPathString s_ProjectConfigPath; static std::string s_ProjectName; - static CProjectConfig::Flags CProjectConfig::s_InitFlags; + static CProjectConfig::Flags s_InitFlags; static std::vector s_ConfigPaths; static std::vector s_ConfigFiles; From ba1391430304dd8296ac9a988ef5094f1fb65a9a Mon Sep 17 00:00:00 2001 From: Gary Preston Date: Wed, 17 Feb 2016 14:03:57 +0000 Subject: [PATCH 018/184] Fix qt4 build error. --- code/nel/tools/3d/tile_edit_qt/tiles_model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp b/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp index d05495eb7..5640ae077 100644 --- a/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp +++ b/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp @@ -63,7 +63,7 @@ QVariant tiles_model::data(const QModelIndex &index, int role) const #ifdef USE_QT5 QPixmap pixpix = wiwi.grab(wiwi.contentsRect()); #else - QPixmap::grabWidget(wiwi, wiwi.contentsRect()); + QPixmap pixpix = QPixmap::grabWidget(&wiwi, wiwi.contentsRect()); #endif return pixpix; } From 816058ae75729d6887e0309c4390bb73c192e8dd Mon Sep 17 00:00:00 2001 From: Gary Preston Date: Wed, 17 Feb 2016 14:07:19 +0000 Subject: [PATCH 019/184] Update indentation of tiles_model::data to match coding standard use of tabs. --- code/nel/tools/3d/tile_edit_qt/tiles_model.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp b/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp index 5640ae077..cabd810d7 100644 --- a/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp +++ b/code/nel/tools/3d/tile_edit_qt/tiles_model.cpp @@ -53,10 +53,10 @@ tiles_model::tiles_model(QObject *parent) QVariant tiles_model::data(const QModelIndex &index, int role) const { - if (!index.isValid()) - return QVariant(); + if (!index.isValid()) + return QVariant(); - if (role == Qt::DecorationRole || role == Qt::UserRole) + if (role == Qt::DecorationRole || role == Qt::UserRole) { CTile_Widget wiwi; wiwi.initWidget(tiles.value(index.row()).getPixmap(), tiles.value(index.row()).getPixmapSide(), tiles.value(index.row()).getTileLabel()); @@ -67,18 +67,17 @@ QVariant tiles_model::data(const QModelIndex &index, int role) const #endif return pixpix; } - else if (role == Qt::UserRole + 1) + else if (role == Qt::UserRole + 1) { - return tiles.value(index.row()).getIndex(); + return tiles.value(index.row()).getIndex(); } - return QVariant(); + return QVariant(); } void tiles_model::sort ( int column, Qt::SortOrder order) { qSort(tiles.begin(), tiles.end(), caseInsensitiveLessThan); - } From 20bc437d54c044650b863c297de23906d96bede2 Mon Sep 17 00:00:00 2001 From: Gary Preston Date: Wed, 17 Feb 2016 14:52:01 +0000 Subject: [PATCH 020/184] libxml include/lib related build errors for studio. --- code/studio/src/plugins/georges_editor/CMakeLists.txt | 7 ++++--- code/studio/src/plugins/gui_editor/widget_serializer.cpp | 3 +++ code/studio/src/plugins/world_editor/CMakeLists.txt | 2 ++ .../src/plugins/world_editor/world_editor_actions.cpp | 4 ++++ code/studio/src/plugins/world_editor/world_editor_misc.cpp | 3 +-- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/studio/src/plugins/georges_editor/CMakeLists.txt b/code/studio/src/plugins/georges_editor/CMakeLists.txt index 68b37421d..216034fea 100644 --- a/code/studio/src/plugins/georges_editor/CMakeLists.txt +++ b/code/studio/src/plugins/georges_editor/CMakeLists.txt @@ -1,13 +1,14 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES} - ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/qtpropertybrowser) + ${LIBXML2_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/qtpropertybrowser) FILE(GLOB SRC *.cpp *.h) SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin.h ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_manager.h ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h - ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h) + ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h) SET(OVQT_PLUG_GEORGES_EDITOR_HDR georges_editor_plugin.h georges_editor_form.h @@ -49,7 +50,7 @@ SOURCE_GROUP("OVQT Extension System" FILES ${OVQT_EXT_SYS_SRC}) ADD_LIBRARY(studio_plugin_georges_editor MODULE ${SRC} ${OVQT_PLUG_GEORGES_EDITOR_MOC_SRC} ${OVQT_EXT_SYS_SRC} ${OVQT_PLUG_GEORGES_EDITOR_UI_HDRS} ${OVQT_PLUGIN_GEORGES_EDITOR_RC_SRCS}) -TARGET_LINK_LIBRARIES(studio_plugin_georges_editor studio_plugin_core nelmisc nelgeorges qt_property_browser ${QT_LIBRARIES}) +TARGET_LINK_LIBRARIES(studio_plugin_georges_editor studio_plugin_core nelmisc nelgeorges qt_property_browser ${QT_LIBRARIES} ${LIBXML2_LIBRARIES}) NL_DEFAULT_PROPS(studio_plugin_georges_editor "Tools: Studio Plugin: Georges Editor") NL_ADD_RUNTIME_FLAGS(studio_plugin_georges_editor) diff --git a/code/studio/src/plugins/gui_editor/widget_serializer.cpp b/code/studio/src/plugins/gui_editor/widget_serializer.cpp index 8006a6b50..a8594afed 100644 --- a/code/studio/src/plugins/gui_editor/widget_serializer.cpp +++ b/code/studio/src/plugins/gui_editor/widget_serializer.cpp @@ -19,6 +19,9 @@ #include "nel/gui/interface_group.h" #include "nel/gui/widget_manager.h" +#include +#include + namespace GUIEditor { bool WidgetSerializer::serialize( const std::string &masterGroup ) diff --git a/code/studio/src/plugins/world_editor/CMakeLists.txt b/code/studio/src/plugins/world_editor/CMakeLists.txt index 1a7ff652d..b494f3f21 100644 --- a/code/studio/src/plugins/world_editor/CMakeLists.txt +++ b/code/studio/src/plugins/world_editor/CMakeLists.txt @@ -1,6 +1,7 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES} + ${LIBXML2_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/qtpropertybrowser ) @@ -59,6 +60,7 @@ TARGET_LINK_LIBRARIES( studio_plugin_world_editor qt_property_browser ${QT_LIBRARIES} ${QT_QTOPENGL_LIBRARY} + ${LIBXML2_LIBRARIES} ) NL_DEFAULT_PROPS(studio_plugin_world_editor "Tools: Studio Plugin: World Editor") diff --git a/code/studio/src/plugins/world_editor/world_editor_actions.cpp b/code/studio/src/plugins/world_editor/world_editor_actions.cpp index 5255e976f..a25cb5e18 100644 --- a/code/studio/src/plugins/world_editor/world_editor_actions.cpp +++ b/code/studio/src/plugins/world_editor/world_editor_actions.cpp @@ -41,6 +41,10 @@ #include #include +// libxml +#include +#include + namespace WorldEditor { diff --git a/code/studio/src/plugins/world_editor/world_editor_misc.cpp b/code/studio/src/plugins/world_editor/world_editor_misc.cpp index a2736b1c5..2dd86df15 100644 --- a/code/studio/src/plugins/world_editor/world_editor_misc.cpp +++ b/code/studio/src/plugins/world_editor/world_editor_misc.cpp @@ -26,8 +26,7 @@ #include #include - -// Qt includes +#include namespace WorldEditor { From 8bd8b3ea3e68ec013f0d87e55ecd5ff350141697 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 18 Feb 2016 11:55:58 +0100 Subject: [PATCH 021/184] Move some stuff for easier debug --- code/nel/include/nel/misc/bitmap.h | 12 ++---------- code/nel/src/misc/bitmap.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/nel/include/nel/misc/bitmap.h b/code/nel/include/nel/misc/bitmap.h index 8d2bf156f..0466cd673 100644 --- a/code/nel/include/nel/misc/bitmap.h +++ b/code/nel/include/nel/misc/bitmap.h @@ -320,16 +320,8 @@ public: // don't forget to update operator=() and swap() if adding a data member - CBitmap() - { - _MipMapCount = 1; - _Width = 0; - _Height = 0; - PixelFormat = RGBA; - _LoadGrayscaleAsAlpha = true; - } - - virtual ~CBitmap() { } + CBitmap(); + virtual ~CBitmap(); // swap 2 bitmaps contents void swap(CBitmap &other); diff --git a/code/nel/src/misc/bitmap.cpp b/code/nel/src/misc/bitmap.cpp index c1249319e..798a52019 100644 --- a/code/nel/src/misc/bitmap.cpp +++ b/code/nel/src/misc/bitmap.cpp @@ -84,6 +84,20 @@ void MakeWhite(CBitmap &bitmaps) } #endif // NEL_ALL_BITMAP_WHITE +CBitmap::CBitmap() +{ + _MipMapCount = 1; + _Width = 0; + _Height = 0; + PixelFormat = RGBA; + _LoadGrayscaleAsAlpha = true; +} + +CBitmap::~CBitmap() +{ + +} + /*-------------------------------------------------------------------*\ load \*-------------------------------------------------------------------*/ From f0051bb24d4753da3815cd4c50c727330bcf671d Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 18 Feb 2016 11:56:44 +0100 Subject: [PATCH 022/184] Fix gl context not being deleted with custom window --- code/nel/src/3d/driver/opengl/driver_opengl_window.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp index d2abbfd38..3595a31ba 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp @@ -1629,7 +1629,7 @@ bool CDriverGL::destroyWindow() if (_hDC) wglMakeCurrent(_hDC, NULL); - if (_DestroyWindow && _hRC) + if (_hRC) { wglDeleteContext(_hRC); _hRC = NULL; @@ -1644,7 +1644,7 @@ bool CDriverGL::destroyWindow() #elif defined(NL_OS_MAC) #elif defined(NL_OS_UNIX) - if (_DestroyWindow && _ctx) + if (_DestroyWindow && _ctx) // FIXME: _DestroyWindow may need to be removed here as well glXDestroyContext(_dpy, _ctx); _ctx = NULL; From 667ddd1989f8821b3c48038896025b666244053a Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 17:46:11 +0100 Subject: [PATCH 023/184] Create fopen wrapper that internally uses wide characters under Windows, issue #261 --- code/nel/include/nel/misc/common.h | 7 +++++++ code/nel/src/misc/common.cpp | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/code/nel/include/nel/misc/common.h b/code/nel/include/nel/misc/common.h index 3b5465eaa..23b827a0b 100644 --- a/code/nel/include/nel/misc/common.h +++ b/code/nel/include/nel/misc/common.h @@ -282,6 +282,13 @@ inline sint nlstricmp(const std::string &lhs, const std::string &rhs) { return s inline sint nlstricmp(const std::string &lhs, const char *rhs) { return stricmp(lhs.c_str(),rhs); } inline sint nlstricmp(const char *lhs, const std::string &rhs) { return stricmp(lhs,rhs.c_str()); } +// macros helper to convert UTF-8 std::string and wchar_t* +#define wideToUtf8(str) (ucstring((ucchar*)str).toUtf8()) +#define utf8ToWide(str) ((wchar_t*)ucstring::makeFromUtf8(str).c_str()) + +// wrapper for fopen to be able to open files with an UTF-8 filename +FILE* nlfopen(const std::string &filename, const std::string &mode); + /** Signed 64 bit fseek. Same interface as fseek */ int nlfseek64( FILE *stream, sint64 offset, int origin ); diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index decd52dbf..c1a824b23 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -1099,6 +1099,14 @@ void displayDwordBits( uint32 b, uint nbits, sint beginpos, bool displayBegin, N } } +FILE* nlfopen(const std::string &filename, const std::string &mode) +{ +#ifdef NL_OS_WINDOWS + return _wfopen(utf8ToWide(filename), utf8ToWide(mode)); +#else + return fopen(filename.c_str(), mode.c_str()); +#endif +} int nlfseek64( FILE *stream, sint64 offset, int origin ) { From 808f7b2c309a282f85960ea9ff3ff0468e9116e2 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 17:56:25 +0100 Subject: [PATCH 024/184] Use new wrapper insteaf of fopen, issue #261 --- code/nel/include/nel/misc/debug.h | 2 +- .../opengl/driver_opengl_vertex_program.cpp | 2 +- code/nel/src/gui/group_html.cpp | 4 ++-- code/nel/src/misc/async_file_manager.cpp | 4 ++-- code/nel/src/misc/big_file.cpp | 16 ++++++++-------- code/nel/src/misc/config_file/config_file.cpp | 2 +- code/nel/src/misc/cpu_time_stat.cpp | 4 ++-- code/nel/src/misc/diff_tool.cpp | 2 +- code/nel/src/misc/displayer.cpp | 2 +- code/nel/src/misc/eid_translator.cpp | 2 +- code/nel/src/misc/file.cpp | 4 ++-- code/nel/src/misc/path.cpp | 10 +++++----- code/nel/src/misc/sha1.cpp | 2 +- code/nel/src/misc/sstring.cpp | 4 ++-- code/nel/src/misc/xml_pack.cpp | 6 +++--- code/nel/src/net/email.cpp | 4 ++-- code/nel/src/net/service.cpp | 4 ++-- .../tools/nel_unit_test/ut_ligo_primitive.h | 2 +- code/nel/tools/nel_unit_test/ut_misc_file.h | 13 +++++++------ code/ryzom/client/src/cdb_synchronised.cpp | 19 +++++++++++++------ code/ryzom/client/src/client_cfg.cpp | 2 +- code/ryzom/client/src/commands.cpp | 2 +- .../src/interface_v3/interface_manager.cpp | 2 +- code/ryzom/client/src/login_patch.cpp | 12 ++++++------ code/ryzom/client/src/login_xdelta.cpp | 6 +++--- code/ryzom/client/src/permanent_ban.cpp | 2 +- .../src/r2/dmc/client_edition_module.cpp | 6 +++--- code/ryzom/client/src/seven_zip/seven_zip.cpp | 2 +- code/ryzom/client/src/sheet_manager.cpp | 2 +- code/ryzom/common/src/game_share/bmp4image.h | 2 +- .../common/src/game_share/persistent_data.cpp | 2 +- 31 files changed, 78 insertions(+), 70 deletions(-) diff --git a/code/nel/include/nel/misc/debug.h b/code/nel/include/nel/misc/debug.h index 8d2483e4e..54e22880d 100644 --- a/code/nel/include/nel/misc/debug.h +++ b/code/nel/include/nel/misc/debug.h @@ -229,7 +229,7 @@ void setCrashAlreadyReported(bool state); *\code void function(char *filename) { - FILE *fp = fopen (filename, "r"); + FILE *fp = nlfopen (filename, "r"); if (fp==NULL) { nlerror("file not found"); diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_vertex_program.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_vertex_program.cpp index 1c06ece9a..93d281fec 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_vertex_program.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_vertex_program.cpp @@ -1672,7 +1672,7 @@ bool CDriverGL::compileEXTVertexShader(CVertexProgram *program) } /* - FILE *f = fopen(getLogDirectory() + "test.txt", "wb"); + FILE *f = nlfopen(getLogDirectory() + "test.txt", "wb"); if (f) { std::string vpText; diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index a0f65827e..f72198ec7 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -304,7 +304,7 @@ namespace NLGUI return; } - FILE *fp = fopen (tmpdest.c_str(), "wb"); + FILE *fp = nlfopen (tmpdest, "wb"); if (fp == NULL) { curl_easy_cleanup(curl); @@ -411,7 +411,7 @@ namespace NLGUI return false; } - FILE *fp = fopen (tmpdest.c_str(), "wb"); + FILE *fp = nlfopen (tmpdest, "wb"); if (fp == NULL) { curl_easy_cleanup(curl); diff --git a/code/nel/src/misc/async_file_manager.cpp b/code/nel/src/misc/async_file_manager.cpp index 366237722..d1653e6ce 100644 --- a/code/nel/src/misc/async_file_manager.cpp +++ b/code/nel/src/misc/async_file_manager.cpp @@ -207,7 +207,7 @@ CAsyncFileManager::CFileLoad::CFileLoad (const std::string& sFileName, uint8 **p // *************************************************************************** void CAsyncFileManager::CFileLoad::run (void) { - FILE *f = fopen (_FileName.c_str(), "rb"); + FILE *f = nlfopen (_FileName, "rb"); if (f != NULL) { uint8 *ptr; @@ -253,7 +253,7 @@ void CAsyncFileManager::CMultipleFileLoad::run (void) { for (uint32 i = 0; i < _FileNames.size(); ++i) { - FILE *f = fopen (_FileNames[i].c_str(), "rb"); + FILE *f = nlfopen (_FileNames[i], "rb"); if (f != NULL) { uint8 *ptr; diff --git a/code/nel/src/misc/big_file.cpp b/code/nel/src/misc/big_file.cpp index 1de1c2b73..a458b602d 100644 --- a/code/nel/src/misc/big_file.cpp +++ b/code/nel/src/misc/big_file.cpp @@ -136,7 +136,7 @@ bool CBigFile::add (const std::string &sBigFileName, uint32 nOptions) CHandleFile &handle= _ThreadFileArray.get(bnp.ThreadFileId); // Open the big file. - handle.File = fopen (sBigFileName.c_str(), "rb"); + handle.File = nlfopen (sBigFileName, "rb"); if (handle.File == NULL) return false; @@ -197,7 +197,7 @@ bool CBigFile::BNP::readHeader() // Only external use if (InternalUse || BigFileName.empty()) return false; - FILE *f = fopen (BigFileName.c_str(), "rb"); + FILE *f = nlfopen (BigFileName, "rb"); if (f == NULL) return false; bool res = readHeader(f); @@ -348,7 +348,7 @@ bool CBigFile::BNP::appendHeader() // Only external use if (InternalUse || BigFileName.empty()) return false; - FILE *f = fopen (BigFileName.c_str(), "ab"); + FILE *f = nlfopen (BigFileName, "ab"); if (f == NULL) return false; uint32 nNbFile = (uint32)SFiles.size(); @@ -438,10 +438,10 @@ bool CBigFile::BNP::appendFile(const std::string &filename) SFiles.push_back(ftmp); OffsetFromBeginning += ftmp.Size; - FILE *f1 = fopen(BigFileName.c_str(), "ab"); + FILE *f1 = nlfopen(BigFileName, "ab"); if (f1 == NULL) return false; - FILE *f2 = fopen(filename.c_str(), "rb"); + FILE *f2 = nlfopen(filename, "rb"); if (f2 == NULL) { fclose(f1); @@ -473,7 +473,7 @@ bool CBigFile::BNP::unpack(const std::string &sDestDir, TUnpackProgressCallback // Only external use if (InternalUse || BigFileName.empty()) return false; - FILE *bnp = fopen (BigFileName.c_str(), "rb"); + FILE *bnp = nlfopen (BigFileName, "rb"); if (bnp == NULL) return false; @@ -506,7 +506,7 @@ bool CBigFile::BNP::unpack(const std::string &sDestDir, TUnpackProgressCallback return false; } - out = fopen (filename.c_str(), "wb"); + out = nlfopen (filename, "wb"); if (out != NULL) { nlfseek64 (bnp, rBNPFile.Pos, SEEK_SET); @@ -681,7 +681,7 @@ FILE* CBigFile::getFile (const std::string &sFileName, uint32 &rFileSize, */ if(handle.File== NULL) { - handle.File = fopen (bnp->BigFileName.c_str(), "rb"); + handle.File = nlfopen (bnp->BigFileName, "rb"); if (handle.File == NULL) { nlwarning ("bnp: can't fopen big file '%s' error %d '%s'", bnp->BigFileName.c_str(), errno, strerror(errno)); diff --git a/code/nel/src/misc/config_file/config_file.cpp b/code/nel/src/misc/config_file/config_file.cpp index c969f614d..093992487 100644 --- a/code/nel/src/misc/config_file/config_file.cpp +++ b/code/nel/src/misc/config_file/config_file.cpp @@ -600,7 +600,7 @@ void CConfigFile::save () const // Avoid any problem, Force Locale to default setlocale(LC_ALL, "C"); - FILE *fp = fopen (getFilename().c_str (), "w"); + FILE *fp = nlfopen (getFilename(), "w"); if (fp == NULL) { nlwarning ("CF: Couldn't create %s file", getFilename().c_str ()); diff --git a/code/nel/src/misc/cpu_time_stat.cpp b/code/nel/src/misc/cpu_time_stat.cpp index 6441a8b45..455104b25 100644 --- a/code/nel/src/misc/cpu_time_stat.cpp +++ b/code/nel/src/misc/cpu_time_stat.cpp @@ -42,7 +42,7 @@ bool CCPUTimeStat::getCPUTicks(uint64& user, uint64& nice, uint64& system, uint6 #ifdef NL_OS_UNIX const char* statfile = "/proc/stat"; - FILE* f = fopen(statfile, "r"); + FILE* f = nlfopen(statfile, "r"); if (f == NULL) return false; @@ -66,7 +66,7 @@ bool CCPUTimeStat::getPIDTicks(uint64& utime, uint64& stime, uint64& cutime, uin #ifdef NL_OS_UNIX std::string statfile = NLMISC::toString("/proc/%u/stat", pid); - FILE* f = fopen(statfile.c_str(), "r"); + FILE* f = nlfopen(statfile, "r"); if (f == NULL) return false; diff --git a/code/nel/src/misc/diff_tool.cpp b/code/nel/src/misc/diff_tool.cpp index 15a91cdb8..f57746b1a 100644 --- a/code/nel/src/misc/diff_tool.cpp +++ b/code/nel/src/misc/diff_tool.cpp @@ -93,7 +93,7 @@ bool loadStringFile(const std::string filename, vector &stringInfos return true; } */ -/* FILE *fp = fopen(filename.c_str(), "rb"); +/* FILE *fp = nlfopen(filename, "rb"); if (fp == NULL) { diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp index 60fa244b6..159a3d6b5 100644 --- a/code/nel/src/misc/displayer.cpp +++ b/code/nel/src/misc/displayer.cpp @@ -491,7 +491,7 @@ void CFileDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mes if (_FilePointer == (FILE*)1) { - _FilePointer = fopen (_FileName.c_str(), "at"); + _FilePointer = nlfopen (_FileName, "at"); if (_FilePointer == NULL) printf ("Can't open log file '%s': %s\n", _FileName.c_str(), strerror (errno)); } diff --git a/code/nel/src/misc/eid_translator.cpp b/code/nel/src/misc/eid_translator.cpp index acf4046e5..591b9db7a 100644 --- a/code/nel/src/misc/eid_translator.cpp +++ b/code/nel/src/misc/eid_translator.cpp @@ -445,7 +445,7 @@ void cbInvalidEntityNamesFilename(const std::string &invalidEntityNamesFilename) return; } - FILE *fp = fopen (fn.c_str(), "r"); + FILE *fp = nlfopen (fn, "r"); if (fp == NULL) { nlwarning ("EIT: Can't load filename '%s' for invalid entity names filename", fn.c_str()); diff --git a/code/nel/src/misc/file.cpp b/code/nel/src/misc/file.cpp index 00a1823ef..01c417635 100644 --- a/code/nel/src/misc/file.cpp +++ b/code/nel/src/misc/file.cpp @@ -243,7 +243,7 @@ bool CIFile::open(const std::string &path, bool text) _IsInXMLPackFile = false; _BigFileOffset = 0; _AlwaysOpened = false; - _F = fopen (path.c_str(), mode); + _F = nlfopen (path, mode); if (_F != NULL) { /* @@ -598,7 +598,7 @@ bool COFile::open(const std::string &path, bool append, bool text, bool useTempF return false; } - _F=fopen(fileToOpen.c_str(), mode); + _F = nlfopen(fileToOpen, mode); return _F!=NULL; } diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index ee47fd494..c473bf29c 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -1269,7 +1269,7 @@ void CFileContainer::addSearchBigFile (const string &sBigFilename, bool recurse, // Open and read the big file header nlassert(!_MemoryCompressed); - FILE *Handle = fopen (sBigFilename.c_str(), "rb"); + FILE *Handle = nlfopen (sBigFilename, "rb"); if (Handle == NULL) { nlwarning ("PATH: CPath::addSearchBigFile(%s, %d, %d): can't open file, skip it", sBigFilename.c_str(), recurse, alternative); @@ -1421,7 +1421,7 @@ void CFileContainer::addSearchXmlpackFile (const string &sXmlpackFilename, bool } // Open and read the xmlpack file header - FILE *Handle = fopen (sXmlpackFilename.c_str(), "rb"); + FILE *Handle = nlfopen (sXmlpackFilename, "rb"); if (Handle == NULL) { nlwarning ("PATH: CPath::addSearchXmlpackFile(%s, %d, %d): can't open file, skip it", sXmlpackFilename.c_str(), recurse, alternative); @@ -1950,7 +1950,7 @@ bool CFile::isExists (const string &filename) bool CFile::createEmptyFile (const std::string& filename) { - FILE *file = fopen (filename.c_str(), "wb"); + FILE *file = nlfopen (filename, "wb"); if (file) { @@ -2311,13 +2311,13 @@ static bool CopyMoveFile(const std::string &dest, const std::string &src, bool c { totalSize = CFile::getFileSize(ssrc); } - FILE *fp1 = fopen(ssrc.c_str(), "rb"); + FILE *fp1 = nlfopen(ssrc, "rb"); if (fp1 == NULL) { nlwarning ("PATH: CopyMoveFile error: can't fopen in read mode '%s'", ssrc.c_str()); return false; } - FILE *fp2 = fopen(sdest.c_str(), "wb"); + FILE *fp2 = nlfopen(sdest, "wb"); if (fp2 == NULL) { nlwarning ("PATH: CopyMoveFile error: can't fopen in read write mode '%s'", sdest.c_str()); diff --git a/code/nel/src/misc/sha1.cpp b/code/nel/src/misc/sha1.cpp index 19e8a440a..8afa0c039 100644 --- a/code/nel/src/misc/sha1.cpp +++ b/code/nel/src/misc/sha1.cpp @@ -147,7 +147,7 @@ CHashKey getSHA1(const string &filename, bool forcePath) return CHashKey(); } - //FILE *fp = fopen (filename.c_str(), "rb"); + //FILE *fp = nlfopen (filename, "rb"); //if (fp == NULL) return CHashKey(); err = SHA1Reset(&sha); diff --git a/code/nel/src/misc/sstring.cpp b/code/nel/src/misc/sstring.cpp index 5f5702d01..a42981421 100644 --- a/code/nel/src/misc/sstring.cpp +++ b/code/nel/src/misc/sstring.cpp @@ -1743,7 +1743,7 @@ namespace NLMISC bool CSString::readFromFile(const CSString& fileName) { FILE* file; - file=fopen(fileName.c_str(),"rb"); + file = nlfopen(fileName, "rb"); if (file==NULL) { clear(); @@ -1766,7 +1766,7 @@ namespace NLMISC bool CSString::writeToFile(const CSString& fileName) const { FILE* file; - file=fopen(fileName.c_str(),"wb"); + file = nlfopen(fileName, "wb"); if (file==NULL) { nlwarning("Failed to open file for writing: %s",fileName.c_str()); diff --git a/code/nel/src/misc/xml_pack.cpp b/code/nel/src/misc/xml_pack.cpp index 4494be062..ec12eb6bc 100644 --- a/code/nel/src/misc/xml_pack.cpp +++ b/code/nel/src/misc/xml_pack.cpp @@ -93,7 +93,7 @@ namespace NLMISC TXMLPackInfo &packInfo = _XMLPacks[packId]; // open the xml pack for later access -// packInfo.FileHandler = fopen(xmlPackFileName.c_str(), "rb"); +// packInfo.FileHandler = nlfopen(xmlPackFileName, "rb"); // open the xml pack for parsing CIFile packFile; @@ -182,7 +182,7 @@ namespace NLMISC fileInfo.FileName = CStringMapper::map(subFileName); fileInfo.FileOffset = (uint32)(beginOfFile - buffer.begin()); fileInfo.FileSize = (uint32)(endOfFile - beginOfFile); -// fileInfo.FileHandler = fopen(xmlPackFileName.c_str(), "rb"); +// fileInfo.FileHandler = nlfopen(xmlPackFileName, "rb"); packInfo._XMLFiles.insert(make_pair(fileInfo.FileName, fileInfo)); // advance to next line @@ -264,7 +264,7 @@ namespace NLMISC rFileOffset = fileInfo.FileOffset; rCacheFileOnOpen = false; rAlwaysOpened = false; - FILE *fp = fopen(parts[0].c_str(), "rb"); + FILE *fp = nlfopen(parts[0], "rb"); return fp; } diff --git a/code/nel/src/net/email.cpp b/code/nel/src/net/email.cpp index ae6f92477..9ac22c886 100644 --- a/code/nel/src/net/email.cpp +++ b/code/nel/src/net/email.cpp @@ -271,7 +271,7 @@ bool sendEmail (const string &smtpServer, const string &from, const string &to, char dst_buf[dst_buf_size + 1]; size_t size; - FILE *src_stream = fopen (attachedFile.c_str(), "rb"); + FILE *src_stream = nlfopen (attachedFile, "rb"); if (src_stream == NULL) { nlwarning ("EMAIL: Can't attach file '%s' to the email because the file can't be open", attachedFile.c_str()); @@ -299,7 +299,7 @@ bool sendEmail (const string &smtpServer, const string &from, const string &to, } // debug, display what we send into a file - // { FILE *fp = fopen (CFile::findNewFile(getLogDirectory() + "mail.txt").c_str(), "wb"); + // { FILE *fp = nlfopen (CFile::findNewFile(getLogDirectory() + "mail.txt"), "wb"); // fwrite (formatedBody.c_str(), 1, formatedBody.size(), fp); // fclose (fp); } diff --git a/code/nel/src/net/service.cpp b/code/nel/src/net/service.cpp index 8f5a142cc..610fd1a1d 100644 --- a/code/nel/src/net/service.cpp +++ b/code/nel/src/net/service.cpp @@ -575,7 +575,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName, if (haveLongArg("writepid")) { // use legacy C primitives - FILE *fp = fopen("pid.state", "wt"); + FILE *fp = nlfopen("pid.state", "wt"); if (fp) { fprintf(fp, "%u", getpid()); @@ -623,7 +623,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName, else { // create the basic .cfg that link the default one - FILE *fp = fopen (cfn.c_str(), "w"); + FILE *fp = nlfopen (cfn, "w"); if (fp == NULL) { nlerror ("SERVICE: Can't create config file '%s'", cfn.c_str()); diff --git a/code/nel/tools/nel_unit_test/ut_ligo_primitive.h b/code/nel/tools/nel_unit_test/ut_ligo_primitive.h index 8df4db877..d4ba5df5a 100644 --- a/code/nel/tools/nel_unit_test/ut_ligo_primitive.h +++ b/code/nel/tools/nel_unit_test/ut_ligo_primitive.h @@ -72,7 +72,7 @@ private: + " \n" + ""; - FILE *fp = fopen(CLASS_FILE_NAME, "wt"); + FILE *fp = NLMISC::nlfopen(CLASS_FILE_NAME, "wt"); nlassert(fp != NULL); size_t s = fwrite(classfile.data(), 1, classfile.size(), fp); nlassert(s == classfile.size()); diff --git a/code/nel/tools/nel_unit_test/ut_misc_file.h b/code/nel/tools/nel_unit_test/ut_misc_file.h index 34de2d569..486320269 100644 --- a/code/nel/tools/nel_unit_test/ut_misc_file.h +++ b/code/nel/tools/nel_unit_test/ut_misc_file.h @@ -19,6 +19,7 @@ #include #include +#include // Test suite for NLMISC::CFile behavior struct CUTMiscFile : public Test::Suite @@ -49,7 +50,7 @@ private: void copyFileSize(uint fileSize) { // create a source file (using standard c code) - FILE *fp = fopen(_SrcFile.c_str(), "wb"); + FILE *fp = NLMISC::nlfopen(_SrcFile, "wb"); nlverify(fp != NULL); for (uint i=0; iwrite(id,f); - fclose(f); + FILE * f = nlfopen(fileName, "w"); + if (f) + { + ICDBNode::CTextId id; + _Database->write(id,f); + fclose(f); + + res = true; + } } - else + + if (!res) { nlwarning(" can't write %s : the database has not been initialized",fileName.c_str()); } diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index 8696b3a35..84ccada65 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -1931,7 +1931,7 @@ void CClientConfig::init(const string &configFileName) if(!CFile::fileExists(configFileName)) { // create the basic .cfg - FILE *fp = fopen(configFileName.c_str(), "w"); + FILE *fp = nlfopen(configFileName, "w"); if (fp == NULL) nlerror("CFG::init: Can't create config file '%s'", configFileName.c_str()); diff --git a/code/ryzom/client/src/commands.cpp b/code/ryzom/client/src/commands.cpp index f958869f5..3308ee7ad 100644 --- a/code/ryzom/client/src/commands.cpp +++ b/code/ryzom/client/src/commands.cpp @@ -695,7 +695,7 @@ NLMISC_COMMAND(bugReport, "Call the bug report tool with dump", " if (ClientCfg.Local) sys += "ShardName OFFLINE "; - FILE *fp = fopen (std::string(getLogDirectory() + "bug_report.txt").c_str(), "wb"); + FILE *fp = nlfopen (getLogDirectory() + "bug_report.txt", "wb"); if (fp != NULL) { string res = addSlashR(getDebugInformation()); diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp index b8721ffdd..4d2248249 100644 --- a/code/ryzom/client/src/interface_v3/interface_manager.cpp +++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp @@ -2704,7 +2704,7 @@ void CInterfaceManager::log(const ucstring &str, const std::string &cat) { // Open file with the name of the player const string fileName= "save/log_" + PlayerSelectedFileName + ".txt"; - FILE *f = fopen(fileName.c_str(), "at"); + FILE *f = nlfopen(fileName, "at"); if (f != NULL) { const string finalString = string(NLMISC::IDisplayer::dateToHumanString()) + " (" + NLMISC::toUpper(cat) + ") * " + str.toUtf8(); diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 0c4abc207..d50ace059 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -869,7 +869,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool std::string batchFilename = ClientRootPath + UpdateBatchFilename; - FILE *fp = fopen (batchFilename.c_str(), "wt"); + FILE *fp = nlfopen (batchFilename, "wt"); if (fp == NULL) { @@ -1302,7 +1302,7 @@ void CPatchManager::downloadFileWithCurl (const string &source, const string &de setRWAccess(dest, false); NLMISC::CFile::deleteFile(dest.c_str()); } - FILE *fp = fopen (dest.c_str(), "wb"); + FILE *fp = nlfopen (dest, "wb"); if (fp == NULL) { curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); @@ -1441,8 +1441,8 @@ void CPatchManager::decompressFile (const string &filename) string dest = filename.substr(0, filename.size ()-4); setRWAccess(dest, false); - //if(isVerboseLog()) nlinfo("Calling fopen('%s','wb')", dest.c_str()); - FILE *fp = fopen (dest.c_str(), "wb"); + //if(isVerboseLog()) nlinfo("Calling nlfopen('%s','wb')", dest.c_str()); + FILE *fp = nlfopen (dest, "wb"); if (fp == NULL) { string err = toString("Can't open file '%s' : code=%d %s, (error code 32)", dest.c_str(), errno, strerror(errno)); @@ -2192,7 +2192,7 @@ void CCheckThread::run () if (bnpFile.readHeader()) { // read the file inside the bnp and calculate the sha1 - FILE *bnp = fopen (sBNPFilename.c_str(), "rb"); + FILE *bnp = nlfopen (sBNPFilename, "rb"); if (bnp != NULL) { for (uint32 k = 0; k < bnpFile.SFiles.size(); ++k) @@ -3068,7 +3068,7 @@ bool CPatchManager::extract(const std::string& patchPath, uint nblab = 0; pPM->deleteFile(updateBatchFilename, false, false); - FILE *fp = fopen (updateBatchFilename.c_str(), "wt"); + FILE *fp = nlfopen (updateBatchFilename, "wt"); if (fp == 0) { diff --git a/code/ryzom/client/src/login_xdelta.cpp b/code/ryzom/client/src/login_xdelta.cpp index f8e733b68..d2daf0827 100644 --- a/code/ryzom/client/src/login_xdelta.cpp +++ b/code/ryzom/client/src/login_xdelta.cpp @@ -143,7 +143,7 @@ bool CXDPFileReader::init(const std::string &sFilename, sint32 nLowerBound, sint } else { - _File = fopen(sFilename.c_str(), "rb"); + _File = nlfopen(sFilename, "rb"); if (_File == NULL) return false; fseek(_File, nLowerBound, SEEK_SET); @@ -560,7 +560,7 @@ CXDeltaPatch::TApplyResult CXDeltaPatch::apply(const std::string &sFileToPatch, errorMsg = toString("output file %s already exists", sFileOutput.c_str()); return ApplyResult_Error; } - FILE *outFILE = fopen(sFileOutput.c_str(), "wb"); + FILE *outFILE = nlfopen(sFileOutput, "wb"); if (outFILE == NULL) { errorMsg = toString("cant create %s", sFileOutput.c_str()); @@ -572,7 +572,7 @@ CXDeltaPatch::TApplyResult CXDeltaPatch::apply(const std::string &sFileToPatch, bool ftpPresent = false; if (pFromSource) { - ftpFILE = fopen(sFileToPatch.c_str(), "rb"); + ftpFILE = nlfopen(sFileToPatch, "rb"); if (ftpFILE == NULL) { errorMsg = toString("expecting file %s", sFileToPatch.c_str()); diff --git a/code/ryzom/client/src/permanent_ban.cpp b/code/ryzom/client/src/permanent_ban.cpp index fe56446d2..cf604db2b 100644 --- a/code/ryzom/client/src/permanent_ban.cpp +++ b/code/ryzom/client/src/permanent_ban.cpp @@ -141,7 +141,7 @@ static void markBNPFile(std::string &path) uint32 nFileSize=CFile::getFileSize(path); if (!nFileSize) return; - FILE *f = fopen(path.c_str(), "rb+"); + FILE *f = nlfopen(path, "rb+"); if (!f) return; // Result if (nlfseek64 (f, nFileSize-4, SEEK_SET) != 0) diff --git a/code/ryzom/client/src/r2/dmc/client_edition_module.cpp b/code/ryzom/client/src/r2/dmc/client_edition_module.cpp index 073be77cc..d47093c5d 100644 --- a/code/ryzom/client/src/r2/dmc/client_edition_module.cpp +++ b/code/ryzom/client/src/r2/dmc/client_edition_module.cpp @@ -1384,7 +1384,7 @@ bool CClientEditionModule::loadUserComponent(const std::string& filename, bool m uint32 timeStamp = 0; if (! compressed) { - FILE* file = fopen(filename.c_str(),"rb"); + FILE* file = nlfopen(filename, "rb"); if (!file) { nlwarning("Try to open an invalid file %s (access error)", filename.c_str()); @@ -1491,7 +1491,7 @@ bool CClientEditionModule::loadUserComponent(const std::string& filename, bool m else { // Get Uncompressed File length (4 last byte of a gz) - FILE* file = fopen(filename.c_str(),"rb"); + FILE* file = nlfopen(filename, "rb"); if (!file) { nlwarning("Try to open an invalid file %s (access error)", filename.c_str()); @@ -1653,7 +1653,7 @@ void CClientEditionModule::saveUserComponentFile(const std::string& filename, bo if (!mustCompress) { { - FILE* output = fopen(uncompressedName.c_str(), "wb"); + FILE* output = nlfopen(uncompressedName, "wb"); if (output) { fwrite(component->UncompressedData, sizeof(char) , component->UncompressedDataLength, output); diff --git a/code/ryzom/client/src/seven_zip/seven_zip.cpp b/code/ryzom/client/src/seven_zip/seven_zip.cpp index 28ae2d0f7..765500deb 100644 --- a/code/ryzom/client/src/seven_zip/seven_zip.cpp +++ b/code/ryzom/client/src/seven_zip/seven_zip.cpp @@ -154,7 +154,7 @@ bool unpack7Zip(const std::string &sevenZipFile, const std::string &destFileName SzArEx_GetFileNameUtf16(&db, 0, &filename[0]); // write the extracted file - FILE *outputHandle = fopen(destFileName.c_str(), "wb+"); + FILE *outputHandle = nlfopen(destFileName, "wb+"); if (outputHandle == 0) { diff --git a/code/ryzom/client/src/sheet_manager.cpp b/code/ryzom/client/src/sheet_manager.cpp index cdb9b4ff1..3c902ed74 100644 --- a/code/ryzom/client/src/sheet_manager.cpp +++ b/code/ryzom/client/src/sheet_manager.cpp @@ -1020,7 +1020,7 @@ void CSheetManager::dumpVisualSlots() // *************************************************************************** void CSheetManager::dumpVisualSlotsIndex() { - FILE * vsIndexFile = fopen(std::string(getLogDirectory() + "vs_index.txt").c_str(),"w"); + FILE * vsIndexFile = nlfopen(getLogDirectory() + "vs_index.txt", "w"); if( vsIndexFile ) { for (uint i=0; i < SLOTTYPE::NB_SLOT; ++i) diff --git a/code/ryzom/common/src/game_share/bmp4image.h b/code/ryzom/common/src/game_share/bmp4image.h index 542fc4200..4ecbd79f5 100644 --- a/code/ryzom/common/src/game_share/bmp4image.h +++ b/code/ryzom/common/src/game_share/bmp4image.h @@ -65,7 +65,7 @@ public: /*bool write(char *filename) { - FILE *outf=fopen(filename,"wb"); + FILE *outf=nlfopen(filename, "wb"); if (outf==NULL) return false; diff --git a/code/ryzom/common/src/game_share/persistent_data.cpp b/code/ryzom/common/src/game_share/persistent_data.cpp index 85c873ba4..a9fe8b344 100644 --- a/code/ryzom/common/src/game_share/persistent_data.cpp +++ b/code/ryzom/common/src/game_share/persistent_data.cpp @@ -1120,7 +1120,7 @@ bool CPersistentDataRecord::readFromFile(const std::string &fileName) #ifdef NL_OS_WINDOWS // open the file - FILE* inf= fopen(fileName.c_str(), "rb"); + FILE* inf= nlfopen(fileName, "rb"); DROP_IF( inf==NULL, "Failed to open input file " << fileName, return false); // get the file size From fa8f3b1c0f0ee8f219e78cf7d9d65c5ddb3376a9 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:01:57 +0100 Subject: [PATCH 025/184] Use CIFile to load font instead of internal Freetype functions, issue #261 --- code/nel/src/3d/font_generator.cpp | 104 ++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/code/nel/src/3d/font_generator.cpp b/code/nel/src/3d/font_generator.cpp index 21453ba82..cdbaf8834 100644 --- a/code/nel/src/3d/font_generator.cpp +++ b/code/nel/src/3d/font_generator.cpp @@ -22,6 +22,7 @@ #include "nel/misc/debug.h" #include "nel/misc/common.h" #include "nel/misc/path.h" +#include "nel/misc/file.h" #include "nel/3d/font_generator.h" @@ -81,6 +82,93 @@ CFontGenerator *newCFontGenerator(const std::string &fontFileName) return new CFontGenerator(fontFileName); } +// Freetype will call this function to get a buffer in data +static unsigned long nlFreetypeStreamIo(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count) +{ + // if count is 0, we don't need to do anything + if (count > 0) + { + // get a pointer on our CIFile + CIFile *file = (CIFile*)stream->descriptor.pointer; + + // try to seek to offset + if (file->seek(offset, IStream::begin)) + { + try + { + // try to fill buffer with data from file + file->serialBuffer(buffer, count); + } + catch(const EFile &e) + { + nlwarning("Unable to read %u bytes from position %u of %s", (uint)count, (uint)offset, file->getStreamName().c_str()); + count = 0; + } + } + else + { + nlwarning("Unable to seek to position %u of %s", (uint)offset, file->getStreamName().c_str()); + count = 0; + } + } + + return count; +} + +// Freetype will call this function when it won't need to access to file anymore +static void nlFreetypeStreamClose(FT_Stream stream) +{ + if (!stream) return; + + // get a pointer on our CIFile + CIFile *file = (CIFile*)stream->descriptor.pointer; + + if (file) + { + // close and delete file + file->close(); + delete file; + + stream->descriptor.pointer = NULL; + } + + // free Freetype stream structure + free(stream); +} + +// helper to open a font and use our functions to handle BNP files and UTF-8 filenames +static bool createFreetypeStream(const std::string &filename, FT_Open_Args &args) +{ + CIFile *file = new CIFile(); + + if (!file->open(filename)) + { + nlwarning("Unable to open %s", filename.c_str()); + return false; + } + + args.flags = FT_OPEN_STREAM; + args.stream = (FT_Stream)malloc(sizeof(*args.stream)); + + if (args.stream == NULL) + { + nlwarning("Unable to allocate FT_Stream for %s", filename.c_str()); + + delete file; + return false; + } + + args.stream->base = NULL; // only used for memory streams + args.stream->size = file->getFileSize(); + args.stream->pos = 0; + args.stream->descriptor.pointer = file; + args.stream->pathname.pointer = NULL; // filename is already managed by CIFile + args.stream->read = nlFreetypeStreamIo; + args.stream->close = nlFreetypeStreamClose; + + return true; +} + /* * Constructor */ @@ -102,7 +190,14 @@ CFontGenerator::CFontGenerator (const std::string &fontFileName, const std::stri } ++_LibraryInit; - error = FT_New_Face (_Library, fontFileName.c_str (), 0, &_Face); + FT_Open_Args args; + + if (!createFreetypeStream(fontFileName, args)) + { + nlerror ("createFreetypeStream failed with file '%s'", fontFileName.c_str()); + } + + error = FT_Open_Face(_Library, &args, 0, &_Face); if (error) { nlerror ("FT_New_Face() failed with file '%s': %s", fontFileName.c_str(), getFT2Error(error)); @@ -117,7 +212,12 @@ CFontGenerator::CFontGenerator (const std::string &fontFileName, const std::stri if (!fontEx.empty()) { - error = FT_Attach_File (_Face, fontEx.c_str ()); + if (!createFreetypeStream(fontEx, args)) + { + nlerror ("createFreetypeStream failed with file '%s'", fontFileName.c_str()); + } + + error = FT_Attach_Stream(_Face, &args); if (error) { nlwarning ("FT_Attach_File() failed with file '%s': %s", fontEx.c_str(), getFT2Error(error)); From bfb32b811d3f9125c8f7eb9ff3e3cd0f39c3df24 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:09:24 +0100 Subject: [PATCH 026/184] Removed useless comments/commented code --- code/nel/include/nel/misc/path.h | 1 - code/nel/src/3d/landscapeig_manager.cpp | 5 -- code/nel/src/ligo/stdligo.h | 1 - code/nel/src/misc/async_file_manager.cpp | 18 ++---- code/nel/src/misc/bitmap.cpp | 7 --- code/nel/src/misc/displayer.cpp | 60 ------------------- code/nel/src/misc/path.cpp | 3 - code/nel/src/net/service.cpp | 1 - code/ryzom/client/src/login.cpp | 12 +--- .../game_share/file_description_container.cpp | 20 ------- code/ryzom/common/src/game_share/utils.h | 15 +---- 11 files changed, 6 insertions(+), 137 deletions(-) diff --git a/code/nel/include/nel/misc/path.h b/code/nel/include/nel/misc/path.h index 1fa049fa5..a16b03f15 100644 --- a/code/nel/include/nel/misc/path.h +++ b/code/nel/include/nel/misc/path.h @@ -722,7 +722,6 @@ struct CFile /** Try to set the file access to read/write if not already set. * return true if the file doesn't exist or if the file already have RW access. - * Work actually only on Windows and returns always true on other platforms. * \return true if RW access is granted */ static bool setRWAccess(const std::string &filename); diff --git a/code/nel/src/3d/landscapeig_manager.cpp b/code/nel/src/3d/landscapeig_manager.cpp index d69ba3166..f4388f9fa 100644 --- a/code/nel/src/3d/landscapeig_manager.cpp +++ b/code/nel/src/3d/landscapeig_manager.cpp @@ -26,9 +26,6 @@ #include "nel/misc/file.h" #include "nel/misc/hierarchical_timer.h" -// std. -#include - using namespace NLMISC; using namespace std; @@ -85,8 +82,6 @@ void CLandscapeIGManager::initIG(UScene *scene, const std::string &igDesc, UDriv string igFile = CPath::lookup(igDesc); - //ifstream file(igFile.c_str(), ios::in); - CIFile file; // Shape to add should be empty ! diff --git a/code/nel/src/ligo/stdligo.h b/code/nel/src/ligo/stdligo.h index c8f4e2a9a..85e7a2120 100644 --- a/code/nel/src/ligo/stdligo.h +++ b/code/nel/src/ligo/stdligo.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include diff --git a/code/nel/src/misc/async_file_manager.cpp b/code/nel/src/misc/async_file_manager.cpp index d1653e6ce..e8f6414e4 100644 --- a/code/nel/src/misc/async_file_manager.cpp +++ b/code/nel/src/misc/async_file_manager.cpp @@ -210,13 +210,8 @@ void CAsyncFileManager::CFileLoad::run (void) FILE *f = nlfopen (_FileName, "rb"); if (f != NULL) { - uint8 *ptr; - long filesize=CFile::getFileSize (f); - //fseek (f, 0, SEEK_END); - //long filesize = ftell (f); - //nlSleep(5); - //fseek (f, 0, SEEK_SET); - ptr = new uint8[filesize]; + uint32 filesize=CFile::getFileSize (f); + uint8 *ptr = new uint8[filesize]; if (fread (ptr, filesize, 1, f) != 1) nlwarning("AFM: Couldn't read '%s'", _FileName.c_str()); fclose (f); @@ -256,13 +251,8 @@ void CAsyncFileManager::CMultipleFileLoad::run (void) FILE *f = nlfopen (_FileNames[i], "rb"); if (f != NULL) { - uint8 *ptr; - long filesize=CFile::getFileSize (f); - //fseek (f, 0, SEEK_END); - //long filesize = ftell (f); - //nlSleep(5); - //fseek (f, 0, SEEK_SET); - ptr = new uint8[filesize]; + uint32 filesize=CFile::getFileSize (f); + uint8 *ptr = new uint8[filesize]; if (fread (ptr, filesize, 1, f) != 1) nlwarning("AFM: Couldn't read '%s'", _FileNames[i].c_str()); fclose (f); diff --git a/code/nel/src/misc/bitmap.cpp b/code/nel/src/misc/bitmap.cpp index 798a52019..11a27e67e 100644 --- a/code/nel/src/misc/bitmap.cpp +++ b/code/nel/src/misc/bitmap.cpp @@ -555,17 +555,10 @@ uint8 CBitmap::readDDS(NLMISC::IStream &f, uint mipMapSkip) (very) bad rendered with this fix so we have to deactivate it the for moment */ -//#ifdef NL_OS_WINDOWS -// if(PixelFormat==DXTC1) //AlphaBitDepth -// { -// PixelFormat = DXTC1Alpha; -// } -//#else if(PixelFormat==DXTC1 && _DDSSurfaceDesc[21]>0) //AlphaBitDepth { PixelFormat = DXTC1Alpha; } -//#endif if(PixelFormat!= DXTC1 && PixelFormat!= DXTC1Alpha && PixelFormat!= DXTC3 && PixelFormat!= DXTC5) { diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp index 159a3d6b5..208bac26d 100644 --- a/code/nel/src/misc/displayer.cpp +++ b/code/nel/src/misc/displayer.cpp @@ -290,12 +290,6 @@ void CStdDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess } else { - /*OutputDebugString(ss2.str().c_str()); - OutputDebugString("\n\t\t\t"); - OutputDebugString("message end: "); - OutputDebugString(&message[strlen(message) - 1024]); - OutputDebugString("\n");*/ - sint count = 0; uint n = (uint)strlen(message); std::string s(&str2.c_str()[0], (str2.size() - n)); @@ -702,58 +696,4 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m } } - - -/***************************************************************/ -/******************* THE FOLLOWING CODE IS COMMENTED OUT *******/ -/*************************************************************** -void CStdDisplayer::display (const std::string& str) -{ -// printf("%s", str.c_str ()); - cout << str; - -#ifdef NL_OS_WINDOWS - // display the string in the debugger is the application is started with the debugger - if (IsDebuggerPresent ()) - OutputDebugString(str.c_str ()); -#endif -} - - -void CFileDisplayer::display (const std::string& str) -{ - if (_FileName.size () == 0) return; - - ofstream ofs (_FileName.c_str (), ios::out | ios::app); - if (ofs.is_open ()) - { - ofs << str; - ofs.close(); - } - - -// FILE *fp = fopen (_FileName.c_str (), "a"); -// if (fp == NULL) return; - -// fprintf (fp, "%s", str.c_str ()); - -// fclose (fp); -} - - - -void CMsgBoxDisplayer::display (const std::string& str) -{ -#ifdef NL_OS_WINDOWS - - CSystemUtils::copyTextToClipboard(str); - - string strf = str; - strf += "\n\n(this message was copied in the clipboard)"; - MessageBox (NULL, strf.c_str (), "", MB_OK | MB_ICONEXCLAMATION); -#endif -} -**************************************************************************/ - - } // NLMISC diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index c473bf29c..376f238c8 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -2299,9 +2299,6 @@ static bool CopyMoveFile(const std::string &dest, const std::string &src, bool c std::string sdest = CPath::standardizePath(dest,false); std::string ssrc = CPath::standardizePath(src,false); -// return copyFile ? CopyFile(dossrc.c_str(), dosdest.c_str(), failIfExists) != FALSE -// : MoveFile(dossrc.c_str(), dosdest.c_str()) != FALSE; - if (progress) progress->progress(0.f); if(copyFile) { diff --git a/code/nel/src/net/service.cpp b/code/nel/src/net/service.cpp index 610fd1a1d..e2db26bd5 100644 --- a/code/nel/src/net/service.cpp +++ b/code/nel/src/net/service.cpp @@ -600,7 +600,6 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName, ListeningPort = servicePort; - // setReportEmailFunction ((void*)sendEmail); // setDefaultEmailParams ("gw.nevrax.com", "", "cado@nevrax.com"); diff --git a/code/ryzom/client/src/login.cpp b/code/ryzom/client/src/login.cpp index 152b2bbde..171af2d38 100644 --- a/code/ryzom/client/src/login.cpp +++ b/code/ryzom/client/src/login.cpp @@ -1857,17 +1857,7 @@ class CAHOpenURL : public IActionHandler // TODO: for Linux and Mac OS #endif - /* - if (sParams == "cfg_CreateAccountURL") - { - url = ClientCfg.CreateAccountURL; - - if (!installTag.empty()) - { - url += string("/?from=")+installTag; - } - } - else */if (sParams == "cfg_EditAccountURL") + if (sParams == "cfg_EditAccountURL") { url = ClientCfg.EditAccountURL; } diff --git a/code/ryzom/common/src/game_share/file_description_container.cpp b/code/ryzom/common/src/game_share/file_description_container.cpp index ae4a2e07f..e974bd7d2 100644 --- a/code/ryzom/common/src/game_share/file_description_container.cpp +++ b/code/ryzom/common/src/game_share/file_description_container.cpp @@ -26,13 +26,6 @@ #include "utils.h" #include "file_description_container.h" -#ifdef NL_OS_WINDOWS -#include -#include -//#include -#include -#endif - //------------------------------------------------------------------------------------------------- // namespaces @@ -110,23 +103,10 @@ void CFileDescriptionContainer::addFile(const string& fileName, uint32 timeStamp void CFileDescriptionContainer::addFile(const string& fileName) { -//#ifdef NL_OS_WINDOWS -// -// struct _stat buffer; -// uint32 result= _stat(fileName.c_str(),&buffer); -// if (result==0) -// { -// addFile(fileName, uint32(buffer.st_mtime), buffer.st_size); -// } -// -//#else - if (CFile::fileExists(fileName)) { addFile(fileName,CFile::getFileModificationDate(fileName),CFile::getFileSize(fileName)); } - -//#endif } void CFileDescriptionContainer::addFileSpec(const string& fileSpec,bool recurse) diff --git a/code/ryzom/common/src/game_share/utils.h b/code/ryzom/common/src/game_share/utils.h index a93c68a4d..96099a466 100644 --- a/code/ryzom/common/src/game_share/utils.h +++ b/code/ryzom/common/src/game_share/utils.h @@ -671,14 +671,6 @@ struct TTypeLimits }; static uint32 floor(uint32 value) { return value; } }; -/* -#ifdef NL_OS_WINDOWS -template <> -struct TTypeLimits : public TTypeLimits -{ -}; -#endif -*/ template <> struct TTypeLimits { @@ -728,12 +720,7 @@ struct TTypeLimits }; static sint32 floor(sint32 value) { return value; } }; -/*#ifdef NL_OS_WINDOWS -template <> -struct TTypeLimits : public TTypeLimits -{ -}; -#endif*/ + template <> struct TTypeLimits { From 3c7480318752f3c0bb12bebc76e1e71fe964bfc0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:10:17 +0100 Subject: [PATCH 027/184] New function to format a timestamp to human readable --- code/nel/include/nel/misc/common.h | 2 ++ code/nel/src/misc/common.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/code/nel/include/nel/misc/common.h b/code/nel/include/nel/misc/common.h index 23b827a0b..dd1c80fb3 100644 --- a/code/nel/include/nel/misc/common.h +++ b/code/nel/include/nel/misc/common.h @@ -353,6 +353,8 @@ uint32 humanReadableToBytes (const std::string &str); /// Convert a time into a string that is easily readable by an human, for example 3600 -> "1h" std::string secondsToHumanReadable (uint32 time); +/// Convert a UNIX timestamp to a formatted date in ISO format +std::string timestampToHumanReadable(uint32 timestamp); /// Get a bytes or time in string format and convert it in seconds or bytes uint32 fromHumanReadable (const std::string &str); diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index c1a824b23..c986234d7 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -506,6 +506,21 @@ string secondsToHumanReadable (uint32 time) return toString ("%u%s", res, divTable[div]); } +std::string timestampToHumanReadable(uint32 timestamp) +{ + char buffer[30]; + time_t dtime = timestamp; + tm *tms = localtime(&dtime); + + if (tms) + { + strftime(buffer, 30, "%Y-%m-%d %H:%M:%S", tms); + return std::string(buffer); + } + + return ""; +} + uint32 fromHumanReadable (const std::string &str) { if (str.size() == 0) From e4dc8ae94b904fe2003a71218d20611c70eaabf7 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:15:04 +0100 Subject: [PATCH 028/184] Replace ifstream and ofstream to manage UTF-8 filenames, issue #261 --- code/nel/src/misc/report.cpp | 17 ++++++++++++----- code/ryzom/client/src/cdb_synchronised.cpp | 22 ++++++++++++---------- code/ryzom/client/src/sound_manager.cpp | 5 +++-- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/code/nel/src/misc/report.cpp b/code/nel/src/misc/report.cpp index 261ef4d5d..f997be6e0 100644 --- a/code/nel/src/misc/report.cpp +++ b/code/nel/src/misc/report.cpp @@ -82,9 +82,10 @@ TReportResult report(const std::string &title, const std::string &subject, const { std::string reportFile = getLogDirectory() + NLMISC::toString("nel_report_%u.log", (uint)time(NULL)); reportPath = CFile::findNewFile(reportFile); - std::ofstream f; - f.open(reportPath.c_str()); - if (!f.good()) + + FILE *f = nlfopen(reportPath, "wb"); // write as binary so \n are preserved + + if (!f) { #if NL_DEBUG_REPORT if (INelContext::isContextInitialised()) @@ -94,8 +95,14 @@ TReportResult report(const std::string &title, const std::string &subject, const } else { - f << body; - f.close(); + size_t written = fwrite(body.c_str(), 1, body.length(), f); + + if (written != body.length()) + { + nlwarning("Unable to write %u bytes to %s, only %u written", (uint)body.length(), reportPath.c_str(), (uint)written); + } + + fclose(f); } } diff --git a/code/ryzom/client/src/cdb_synchronised.cpp b/code/ryzom/client/src/cdb_synchronised.cpp index fff0a4bae..d5239ce0d 100644 --- a/code/ryzom/client/src/cdb_synchronised.cpp +++ b/code/ryzom/client/src/cdb_synchronised.cpp @@ -104,29 +104,31 @@ void CCDBSynchronised::read( const string &fileName ) int linecount=1; #endif - if( _Database == 0 ) + if (_Database == NULL) { throw CCDBSynchronised::EDBNotInit(); } - ifstream f(fileName.c_str(), ios::in); - if( !f.is_open() ) + CIFile f; + + if (!f.open(fileName, true)) { nlerror("can't open file : %s\n", fileName.c_str()); } - while( !f.eof() ) + while(!f.eof()) { - string line; - getline(f,line,'\n'); + char line[1024]; + f.getline(line, 1024); + #ifdef _DEBUG - nlinfo("%s:%i",fileName.c_str(),linecount); - linecount++; + nlinfo("%s:%i", fileName.c_str(), linecount); + linecount++; #endif char * token; - char * buffer = new char[line.size()+1]; - strcpy(buffer,line.c_str()); + char * buffer = new char[strlen(line)+1]; + strcpy(buffer, line); // value token = strtok(buffer," \t"); diff --git a/code/ryzom/client/src/sound_manager.cpp b/code/ryzom/client/src/sound_manager.cpp index 4a981366d..0374a0e1a 100644 --- a/code/ryzom/client/src/sound_manager.cpp +++ b/code/ryzom/client/src/sound_manager.cpp @@ -1028,10 +1028,11 @@ void CSoundManager::loadProperties(const string &soundName, USource *source) // Search for the file. string filePath = CPath::lookup(soundName+".sdf"); - ifstream file(filePath.c_str(), ios::in); + + CIFile file; // Try to open the file. - if(file.is_open()) + if (file.open(filePath)) { char tmpBuff[260]; char delimiterBox[] = "\t "; From e7bebba3d30846a23248c9cba5d4917e2c76b52a Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:30:51 +0100 Subject: [PATCH 029/184] Use Unicode versions of Win32 functions, issue #261 --- .../3d/driver/direct3d/driver_direct3d.cpp | 2 +- .../3d/driver/opengl/driver_opengl_window.cpp | 2 +- code/nel/src/misc/cmd_args.cpp | 6 +- code/nel/src/misc/debug.cpp | 10 ++-- code/nel/src/misc/displayer.cpp | 16 +++--- code/nel/src/misc/dynloadlib.cpp | 2 +- code/nel/src/misc/log.cpp | 6 +- code/nel/src/misc/mem_displayer.cpp | 16 +++--- code/nel/src/misc/path.cpp | 55 ++++++++++--------- code/nel/src/misc/system_utils.cpp | 16 +++--- code/nel/src/misc/win32_util.cpp | 8 +-- code/nel/src/misc/win_displayer.cpp | 2 +- code/nel/src/misc/win_thread.cpp | 24 ++++---- .../src/interface_v3/action_handler_help.cpp | 8 ++- code/ryzom/client/src/login_xdelta.cpp | 2 +- code/ryzom/client/src/permanent_ban.cpp | 2 +- 16 files changed, 91 insertions(+), 86 deletions(-) diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp index 23ed1bedc..1adaeb73f 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp @@ -1806,7 +1806,7 @@ emptyProc CDriverD3D::getWindowProc() IDriver::TMessageBoxId CDriverD3D::systemMessageBox (const char* message, const char* title, TMessageBoxType type, TMessageBoxIcon icon) { - switch (::MessageBox (_HWnd, message, title, ((type==retryCancelType)?MB_RETRYCANCEL: + switch (::MessageBoxW (_HWnd, utf8ToWide(message), utf8ToWide(title), ((type==retryCancelType)?MB_RETRYCANCEL: (type==yesNoCancelType)?MB_YESNOCANCEL: (type==okCancelType)?MB_OKCANCEL: (type==abortRetryIgnoreType)?MB_ABORTRETRYIGNORE: diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp index 3595a31ba..5c6d63045 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp @@ -2622,7 +2622,7 @@ IDriver::TMessageBoxId CDriverGL::systemMessageBox (const char* message, const c { H_AUTO_OGL(CDriverGL_systemMessageBox) #ifdef NL_OS_WINDOWS - switch (::MessageBox (NULL, message, title, ((type==retryCancelType)?MB_RETRYCANCEL: + switch (::MessageBoxW (NULL, utf8ToWide(message), utf8ToWide(title), ((type==retryCancelType)?MB_RETRYCANCEL: (type==yesNoCancelType)?MB_YESNOCANCEL: (type==okCancelType)?MB_OKCANCEL: (type==abortRetryIgnoreType)?MB_ABORTRETRYIGNORE: diff --git a/code/nel/src/misc/cmd_args.cpp b/code/nel/src/misc/cmd_args.cpp index 85239e8ff..647bac008 100644 --- a/code/nel/src/misc/cmd_args.cpp +++ b/code/nel/src/misc/cmd_args.cpp @@ -199,11 +199,11 @@ bool CCmdArgs::parse(const std::string &args) std::vector argv; #ifdef NL_OS_WINDOWS - char str[4096]; - uint len = GetModuleFileNameA(NULL, str, 4096); + wchar_t str[4096]; + uint len = GetModuleFileNameW(NULL, str, 4096); if (len && len < 4096) - argv.push_back(str); + argv.push_back(wideToUtf8(str)); #endif std::string::size_type pos1 = 0, pos2 = 0; diff --git a/code/nel/src/misc/debug.cpp b/code/nel/src/misc/debug.cpp index 44cd6f706..f6794761b 100644 --- a/code/nel/src/misc/debug.cpp +++ b/code/nel/src/misc/debug.cpp @@ -310,9 +310,9 @@ static DWORD __stdcall GetModuleBase(HANDLE hProcess, DWORD dwReturnAddress) &memoryBasicInfo, sizeof(memoryBasicInfo))) { DWORD cch = 0; - char szFile[MAX_PATH] = { 0 }; + wchar_t szFile[MAX_PATH] = { 0 }; - cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase, + cch = GetModuleFileNameW((HINSTANCE)memoryBasicInfo.AllocationBase, szFile, MAX_PATH); if (cch && (lstrcmpA(szFile, "DBFN")== 0)) @@ -527,9 +527,9 @@ public: string progname; if(!shortExc.empty() || !longExc.empty()) { - char name[1024]; - GetModuleFileNameA (NULL, name, 1023); - progname = CFile::getFilename(name); + wchar_t name[1024]; + GetModuleFileNameW (NULL, name, 1023); + progname = CFile::getFilename(wideToUtf8(name)); progname += " "; } diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp index 208bac26d..0749ecfc3 100644 --- a/code/nel/src/misc/displayer.cpp +++ b/code/nel/src/misc/displayer.cpp @@ -286,14 +286,14 @@ void CStdDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess // WARNING: READ THIS !!!!!!!!!!!!!!!! /////////////////////////// // If at the release time, it freezes here, it's a microsoft bug: // http://support.microsoft.com/support/kb/articles/q173/2/60.asp - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(str2).c_str()); + OutputDebugStringW(utf8ToWide(str2)); } else { sint count = 0; uint n = (uint)strlen(message); std::string s(&str2.c_str()[0], (str2.size() - n)); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(s).c_str()); + OutputDebugStringW(utf8ToWide(s)); for(;;) { @@ -301,15 +301,15 @@ void CStdDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess if((n - count) < maxOutString ) { s = std::string(&message[count], (n - count)); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(s).c_str()); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8("\n").c_str()); + OutputDebugStringW(utf8ToWide(s)); + OutputDebugStringW(L"\n"); break; } else { s = std::string(&message[count] , count + maxOutString); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(s).c_str()); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8("\n\t\t\t").c_str()); + OutputDebugStringW(utf8ToWide(s)); + OutputDebugStringW(L"\n\t\t\t"); count += maxOutString; } } @@ -323,13 +323,13 @@ void CStdDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess if (pos+1000 < args.CallstackAndLog.size ()) { splited = args.CallstackAndLog.substr (pos, 1000); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(splited).c_str()); + OutputDebugStringW(utf8ToWide(splited)); pos += 1000; } else { splited = args.CallstackAndLog.substr (pos); - OutputDebugStringW((LPCWSTR)ucstring::makeFromUtf8(splited).c_str()); + OutputDebugStringW(utf8ToWide(splited)); break; } } diff --git a/code/nel/src/misc/dynloadlib.cpp b/code/nel/src/misc/dynloadlib.cpp index 0b456f166..fadf2e249 100644 --- a/code/nel/src/misc/dynloadlib.cpp +++ b/code/nel/src/misc/dynloadlib.cpp @@ -32,7 +32,7 @@ NL_LIB_HANDLE nlLoadLibrary(const std::string &libName) { NL_LIB_HANDLE res = 0; #ifdef NL_OS_WINDOWS - res = LoadLibrary(libName.c_str()); + res = LoadLibraryW(utf8ToWide(libName)); #elif defined(NL_OS_UNIX) res = dlopen(libName.c_str(), RTLD_NOW); #else diff --git a/code/nel/src/misc/log.cpp b/code/nel/src/misc/log.cpp index 9e5f0a1bc..08f6b3107 100644 --- a/code/nel/src/misc/log.cpp +++ b/code/nel/src/misc/log.cpp @@ -59,9 +59,9 @@ void CLog::setDefaultProcessName () #ifdef NL_OS_WINDOWS if ((*_ProcessName).empty()) { - char name[1024]; - GetModuleFileName (NULL, name, 1023); - (*_ProcessName) = CFile::getFilename(name); + wchar_t name[1024]; + GetModuleFileNameW(NULL, name, 1023); + (*_ProcessName) = CFile::getFilename(wideToUtf8(name)); } #else if ((*_ProcessName).empty()) diff --git a/code/nel/src/misc/mem_displayer.cpp b/code/nel/src/misc/mem_displayer.cpp index 40cc1bb6e..47b262ec8 100644 --- a/code/nel/src/misc/mem_displayer.cpp +++ b/code/nel/src/misc/mem_displayer.cpp @@ -227,28 +227,28 @@ static void displayCallStack (CLog *log) if (symbolPath.empty()) { - CHAR tmpPath[stringSize]; + wchar_t tmpPath[stringSize]; symbolPath = "."; - if (GetEnvironmentVariable ("_NT_SYMBOL_PATH", tmpPath, stringSize)) + if (GetEnvironmentVariableW (L"_NT_SYMBOL_PATH", tmpPath, stringSize)) { symbolPath += ";"; - symbolPath += tmpPath; + symbolPath += wideToUtf8(tmpPath); } - if (GetEnvironmentVariable ("_NT_ALTERNATE_SYMBOL_PATH", tmpPath, stringSize)) + if (GetEnvironmentVariableW (L"_NT_ALTERNATE_SYMBOL_PATH", tmpPath, stringSize)) { symbolPath += ";"; - symbolPath += tmpPath; + symbolPath += wideToUtf8(tmpPath); } - if (GetEnvironmentVariable ("SYSTEMROOT", tmpPath, stringSize)) + if (GetEnvironmentVariableW (L"SYSTEMROOT", tmpPath, stringSize)) { symbolPath += ";"; - symbolPath += tmpPath; + symbolPath += wideToUtf8(tmpPath); symbolPath += ";"; - symbolPath += tmpPath; + symbolPath += wideToUtf8(tmpPath); symbolPath += "\\system32"; } } diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index 376f238c8..c2fbcade1 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -681,11 +681,11 @@ std::string CPath::getCurrentPath () std::string CFileContainer::getCurrentPath () { - char buffer [1024]; - #ifdef NL_OS_WINDOWS - return standardizePath(_getcwd(buffer, 1024), false); + wchar_t buffer[1024]; + return standardizePath(wideToUtf8(_wgetcwd(buffer, 1024)), false); #else + char buffer [1024]; return standardizePath(getcwd(buffer, 1024), false); #endif } @@ -700,7 +700,7 @@ bool CFileContainer::setCurrentPath (const std::string &path) int res; //nldebug("Change current path to '%s' (current path is '%s')", path.c_str(), getCurrentPath().c_str()); #ifdef NL_OS_WINDOWS - res = _chdir(path.c_str()); + res = _wchdir(utf8ToWide(path)); #else res = chdir(path.c_str()); #endif @@ -756,11 +756,11 @@ std::string CFileContainer::getFullPath (const std::string &path, bool addFinalS #ifdef NL_OS_WINDOWS -# define dirent WIN32_FIND_DATA +# define dirent WIN32_FIND_DATAW # define DIR void static string sDir; -static WIN32_FIND_DATA findData; +static WIN32_FIND_DATAW findData; static HANDLE hFind; DIR *opendir (const char *path) @@ -792,13 +792,12 @@ dirent *readdir (DIR *dir) // first visit in this directory : FindFirstFile() if (hFind == NULL) { - string fullPath = CPath::standardizePath(sDir) + "*"; - hFind = FindFirstFileA (fullPath.c_str(), &findData); + hFind = FindFirstFileW (utf8ToWide(CPath::standardizePath(sDir) + "*"), &findData); } // directory already visited : FindNextFile() else { - if (!FindNextFileA (hFind, &findData)) + if (!FindNextFileW (hFind, &findData)) return NULL; } @@ -845,7 +844,7 @@ string getname (dirent *de) { nlassert (de != NULL); #ifdef NL_OS_WINDOWS - return de->cFileName; + return wideToUtf8(de->cFileName); #else return de->d_name; #endif // NL_OS_WINDOWS @@ -1766,14 +1765,14 @@ std::string CFileContainer::getWindowsDirectory() nlwarning("not a ms windows platform"); return ""; #else - char winDir[MAX_PATH]; - UINT numChar = ::GetWindowsDirectory(winDir, MAX_PATH); + wchar_t winDir[MAX_PATH]; + UINT numChar = GetWindowsDirectoryW(winDir, MAX_PATH); if (numChar > MAX_PATH || numChar == 0) { nlwarning("Couldn't retrieve windows directory"); return ""; } - return CPath::standardizePath(winDir); + return CPath::standardizePath(wideToUtf8(winDir)); #endif } @@ -1789,18 +1788,18 @@ std::string CFileContainer::getApplicationDirectory(const std::string &appName, if (appPath.empty()) { #ifdef NL_OS_WINDOWS - char buffer[MAX_PATH]; + wchar_t buffer[MAX_PATH]; #ifdef CSIDL_LOCAL_APPDATA if (local) { - SHGetSpecialFolderPathA(NULL, buffer, CSIDL_LOCAL_APPDATA, TRUE); + SHGetSpecialFolderPathW(NULL, buffer, CSIDL_LOCAL_APPDATA, TRUE); } else #endif { - SHGetSpecialFolderPathA(NULL, buffer, CSIDL_APPDATA, TRUE); + SHGetSpecialFolderPathW(NULL, buffer, CSIDL_APPDATA, TRUE); } - appPath = CPath::standardizePath(buffer); + appPath = CPath::standardizePath(wideToUtf8(buffer)); #elif defined(NL_OS_MAC) appPath = CPath::standardizePath(getenv("HOME")); appPath += "/Library/Application Support/"; @@ -1918,7 +1917,7 @@ string CFile::getPath (const string &filename) bool CFile::isDirectory (const string &filename) { #ifdef NL_OS_WINDOWS - DWORD res = GetFileAttributes(filename.c_str()); + DWORD res = GetFileAttributesW(utf8ToWide(filename)); if (res == INVALID_FILE_ATTRIBUTES) { // nlwarning ("PATH: '%s' is not a valid file or directory name", filename.c_str ()); @@ -1941,7 +1940,7 @@ bool CFile::isDirectory (const string &filename) bool CFile::isExists (const string &filename) { #ifdef NL_OS_WINDOWS - return (GetFileAttributes(filename.c_str()) != INVALID_FILE_ATTRIBUTES); + return GetFileAttributesW(utf8ToWide(filename)) != INVALID_FILE_ATTRIBUTES; #else // NL_OS_WINDOWS struct stat buf; return stat (filename.c_str (), &buf) == 0; @@ -2013,7 +2012,7 @@ uint32 CFile::getFileSize (const std::string &filename) { #if defined (NL_OS_WINDOWS) struct _stat buf; - int result = _stat (filename.c_str (), &buf); + int result = _wstat (utf8ToWide(filename), &buf); #elif defined (NL_OS_UNIX) struct stat buf; int result = stat (filename.c_str (), &buf); @@ -2064,7 +2063,7 @@ uint32 CFile::getFileModificationDate(const std::string &filename) // Use the WIN32 API to read the file times in UTC // create a file handle (this does not open the file) - HANDLE h = CreateFile(fn.c_str(), 0, 0, NULL, OPEN_EXISTING, 0, 0); + HANDLE h = CreateFileW(utf8ToWide(fn), 0, 0, NULL, OPEN_EXISTING, 0, 0); if (h == INVALID_HANDLE_VALUE) { nlwarning("Can't get modification date on file '%s' : %s", fn.c_str(), NLMISC::formatErrorMessage(NLMISC::getLastError()).c_str()); @@ -2134,7 +2133,7 @@ bool CFile::setFileModificationDate(const std::string &filename, uint32 modTime) // Use the WIN32 API to set the file times in UTC // create a file handle (this does not open the file) - HANDLE h = CreateFile(fn.c_str(), GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); + HANDLE h = CreateFileW(utf8ToWide(fn), GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); if (h == INVALID_HANDLE_VALUE) { nlwarning("Can't set modification date on file '%s' (error accessing file) : %s", fn.c_str(), NLMISC::formatErrorMessage(NLMISC::getLastError()).c_str()); @@ -2219,7 +2218,7 @@ uint32 CFile::getFileCreationDate(const std::string &filename) #if defined (NL_OS_WINDOWS) struct _stat buf; - int result = _stat (fn.c_str (), &buf); + int result = _wstat(utf8ToWide(fn), &buf); #elif defined (NL_OS_UNIX) struct stat buf; int result = stat (fn.c_str (), &buf); @@ -2353,7 +2352,7 @@ static bool CopyMoveFile(const std::string &dest, const std::string &src, bool c else { #ifdef NL_OS_WINDOWS - if (MoveFile(ssrc.c_str(), sdest.c_str()) == 0) + if (MoveFileW(utf8ToWide(ssrc), utf8ToWide(sdest)) == 0) { sint lastError = NLMISC::getLastError(); nlwarning ("PATH: CopyMoveFile error: can't link/move '%s' into '%s', error %u (%s)", @@ -2456,7 +2455,7 @@ bool CFile::moveFile(const std::string &dest, const std::string &src) bool CFile::createDirectory(const std::string &filename) { #ifdef NL_OS_WINDOWS - return _mkdir(filename.c_str())==0; + return _wmkdir(utf8ToWide(filename))==0; #else // Set full permissions.... return mkdir(filename.c_str(), 0xFFFF)==0; @@ -2677,11 +2676,13 @@ bool CPath::isAbsolutePath(const std::string &path) bool CFile::setRWAccess(const std::string &filename) { #ifdef NL_OS_WINDOWS + wchar_t *wideFile = utf8ToWide(filename); + // if the file exists and there's no write access - if (_access (filename.c_str(), 00) == 0 && _access (filename.c_str(), 06) == -1) + if (_waccess (wideFile, 00) == 0 && _waccess (wideFile, 06) == -1) { // try to set the read/write access - if (_chmod (filename.c_str(), _S_IREAD | _S_IWRITE) == -1) + if (_wchmod (wideFile, _S_IREAD | _S_IWRITE) == -1) { if (INelContext::getInstance().getAlreadyCreateSharedAmongThreads()) { diff --git a/code/nel/src/misc/system_utils.cpp b/code/nel/src/misc/system_utils.cpp index 3997f75ab..8f5c678f8 100644 --- a/code/nel/src/misc/system_utils.cpp +++ b/code/nel/src/misc/system_utils.cpp @@ -315,19 +315,19 @@ string CSystemUtils::getRegKey(const string &Entry) #ifdef NL_OS_WINDOWS HKEY hkey; - if(RegOpenKeyEx(HKEY_CURRENT_USER, RootKey.c_str(), 0, KEY_READ, &hkey) == ERROR_SUCCESS) + if (RegOpenKeyExW(HKEY_CURRENT_USER, utf8ToWide(RootKey), 0, KEY_READ, &hkey) == ERROR_SUCCESS) { DWORD dwType = 0L; DWORD dwSize = KeyMaxLength; unsigned char Buffer[KeyMaxLength]; - if(RegQueryValueEx(hkey, Entry.c_str(), NULL, &dwType, Buffer, &dwSize) != ERROR_SUCCESS) + if (RegQueryValueExW(hkey, utf8ToWide(Entry), NULL, &dwType, Buffer, &dwSize) != ERROR_SUCCESS) { nlwarning("Can't get the reg key '%s'", Entry.c_str()); } else { - ret = (char*)Buffer; + ret = wideToUtf8(Buffer); } RegCloseKey(hkey); } @@ -346,10 +346,12 @@ bool CSystemUtils::setRegKey(const string &ValueName, const string &Value) HKEY hkey; DWORD dwDisp; - char nstr[] = { 0x00 }; - if (RegCreateKeyExA(HKEY_CURRENT_USER, RootKey.c_str(), 0, nstr, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisp) == ERROR_SUCCESS) + wchar_t nstr[] = { 0x00 }; + if (RegCreateKeyExW(HKEY_CURRENT_USER, utf8ToWide(RootKey), 0, nstr, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisp) == ERROR_SUCCESS) { - if (RegSetValueExA(hkey, ValueName.c_str(), 0L, REG_SZ, (const BYTE *)Value.c_str(), (DWORD)(Value.size())+1) == ERROR_SUCCESS) + ucstring utf16Value = ucstring::makeFromUtf8(Value); + DWORD size = (utf16Value.length() + 1) * 2; + if (RegSetValueExW(hkey, utf8ToWide(ValueName), 0L, REG_SZ, (const BYTE *)utf16Value.c_str(), size) == ERROR_SUCCESS) res = true; RegCloseKey(hkey); } @@ -453,7 +455,7 @@ static void EnumerateUsingDXGI(IDXGIFactory *pDXGIFactory) { SAdapter adapter; adapter.id = index; - adapter.name = ucstring((ucchar*)desc.Description).toUtf8(); + adapter.name = wideToUtf8(desc.Description); adapter.memory = desc.DedicatedVideoMemory / 1024; adapter.found = true; diff --git a/code/nel/src/misc/win32_util.cpp b/code/nel/src/misc/win32_util.cpp index 6085e98e5..7631ac7b2 100644 --- a/code/nel/src/misc/win32_util.cpp +++ b/code/nel/src/misc/win32_util.cpp @@ -32,12 +32,12 @@ namespace NLMISC void CWin32Util::localizeWindow(HWND wnd) { if (!wnd) return; - int textLength = GetWindowTextLength(wnd); + sint textLength = GetWindowTextLengthW(wnd); if (textLength > 0) { - std::vector str(textLength + 1); - GetWindowText(wnd, &str[0], textLength + 1); - std::string winText(str.begin(), str.end() - 1); + wchar_t str[1024]; + GetWindowTextW(wnd, str, 1024); + std::string winText = wideToUtf8(str); if (CI18N::hasTranslation(winText)) { SetWindowTextW(wnd, (const WCHAR *) CI18N::get(winText).c_str()); diff --git a/code/nel/src/misc/win_displayer.cpp b/code/nel/src/misc/win_displayer.cpp index 5da7db65b..48a8f20c7 100644 --- a/code/nel/src/misc/win_displayer.cpp +++ b/code/nel/src/misc/win_displayer.cpp @@ -198,7 +198,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) string str = ucs.toUtf8(); nlassert (cwd->Log != NULL); ICommand::expand (str, *cwd->Log); - SendMessage (cwd->_HInputEdit, WM_SETTEXT, (WPARAM)0, (LPARAM)str.c_str()); + SendMessageW (cwd->_HInputEdit, WM_SETTEXT, (WPARAM)0, (LPARAM)wText); SendMessage (cwd->_HInputEdit, EM_SETSEL, str.size(), str.size()); diff --git a/code/nel/src/misc/win_thread.cpp b/code/nel/src/misc/win_thread.cpp index 4178b7a58..2bdb5ea3b 100644 --- a/code/nel/src/misc/win_thread.cpp +++ b/code/nel/src/misc/win_thread.cpp @@ -277,10 +277,10 @@ uint64 CWinThread::getCPUMask() std::string CWinThread::getUserName() { - char userName[512]; + wchar_t userName[512]; DWORD size = 512; - GetUserName (userName, &size); - return (const char*)userName; + GetUserNameW (userName, &size); + return wideToUtf8(userName); } // **** Process @@ -333,10 +333,10 @@ class CPSAPILib { public: typedef BOOL (WINAPI *EnumProcessesFunPtr)(DWORD *lpidProcess, DWORD cb, DWORD *cbNeeded); - typedef DWORD (WINAPI *GetModuleFileNameExAFunPtr)(HANDLE hProcess, HMODULE hModule, LPTSTR lpFilename, DWORD nSize); + typedef DWORD (WINAPI *GetModuleFileNameExWFunPtr)(HANDLE hProcess, HMODULE hModule, LPWSTR lpFilename, DWORD nSize); typedef BOOL (WINAPI *EnumProcessModulesFunPtr)(HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded); EnumProcessesFunPtr EnumProcesses; - GetModuleFileNameExAFunPtr GetModuleFileNameExA; + GetModuleFileNameExWFunPtr GetModuleFileNameExW; EnumProcessModulesFunPtr EnumProcessModules; public: CPSAPILib(); @@ -353,7 +353,7 @@ CPSAPILib::CPSAPILib() _LoadFailed = false; _PSAPILibHandle = NULL; EnumProcesses = NULL; - GetModuleFileNameExA = NULL; + GetModuleFileNameExW = NULL; EnumProcessModules = NULL; } @@ -381,10 +381,10 @@ bool CPSAPILib::init() return false; } EnumProcesses = (EnumProcessesFunPtr) GetProcAddress(_PSAPILibHandle, "EnumProcesses"); - GetModuleFileNameExA = (GetModuleFileNameExAFunPtr) GetProcAddress(_PSAPILibHandle, "GetModuleFileNameExA"); + GetModuleFileNameExW = (GetModuleFileNameExWFunPtr) GetProcAddress(_PSAPILibHandle, "GetModuleFileNameExW"); EnumProcessModules = (EnumProcessModulesFunPtr) GetProcAddress(_PSAPILibHandle, "EnumProcessModules"); if (!EnumProcesses || - !GetModuleFileNameExA || + !GetModuleFileNameExW || !EnumProcessModules ) { @@ -453,12 +453,12 @@ bool CWinProcess::enumProcessModules(uint32 processId, std::vector } moduleNames.clear(); std::vector resultModuleNames; - char moduleName[MAX_PATH + 1]; + wchar_t moduleName[MAX_PATH + 1]; for (uint m = 0; m < prcModules.size(); ++m) { - if (PSAPILib.GetModuleFileNameExA(hProcess, prcModules[m], moduleName, MAX_PATH)) + if (PSAPILib.GetModuleFileNameExW(hProcess, prcModules[m], moduleName, MAX_PATH)) { - moduleNames.push_back(moduleName); + moduleNames.push_back(wideToUtf8(moduleName)); } } CloseHandle(hProcess); @@ -563,7 +563,7 @@ public: PROCESS_INFORMATION processInfo; STARTUPINFO startupInfo = {0}; startupInfo.cb = sizeof(STARTUPINFO); - if (CreateProcess(programName.c_str(), const_cast(arguments.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &processInfo)) + if (CreateProcessW(programName.c_str(), const_cast(arguments.c_str()), NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &processInfo)) { WatchTask = new CProcessWatchTask(processInfo.hProcess); WatchThread = IThread::create(WatchTask); diff --git a/code/ryzom/client/src/interface_v3/action_handler_help.cpp b/code/ryzom/client/src/interface_v3/action_handler_help.cpp index ed2b34ce3..072d53591 100644 --- a/code/ryzom/client/src/interface_v3/action_handler_help.cpp +++ b/code/ryzom/client/src/interface_v3/action_handler_help.cpp @@ -3937,13 +3937,15 @@ public: s += getSystemInformation(); string progname; - char name[1024] = ""; + std::string moduleName; #ifdef NL_OS_WINDOWS - GetModuleFileName (NULL, name, 1023); + wchar_t name[1024]; + GetModuleFileNameW(NULL, name, 1023); + moduleName = wideToUtf8(name); #else // TODO for Linux #endif - progname = CFile::getFilename(name); + progname = CFile::getFilename(moduleName); progname += " "; progname += "Statistic Report"; diff --git a/code/ryzom/client/src/login_xdelta.cpp b/code/ryzom/client/src/login_xdelta.cpp index d2daf0827..5cb1ddc7d 100644 --- a/code/ryzom/client/src/login_xdelta.cpp +++ b/code/ryzom/client/src/login_xdelta.cpp @@ -95,7 +95,7 @@ bool CXDPFileReader::init(const std::string &sFilename, sint32 nLowerBound, sint { // First open the file with a normal function #ifdef NL_OS_WINDOWS - int fd = _open(sFilename.c_str(), _O_BINARY | _O_RDONLY); + int fd = _wopen(utf8ToWide(sFilename), _O_BINARY | _O_RDONLY); #else int fd = open(sFilename.c_str(), O_RDONLY); #endif diff --git a/code/ryzom/client/src/permanent_ban.cpp b/code/ryzom/client/src/permanent_ban.cpp index cf604db2b..cbd39d93f 100644 --- a/code/ryzom/client/src/permanent_ban.cpp +++ b/code/ryzom/client/src/permanent_ban.cpp @@ -84,7 +84,7 @@ static void setPermanentBanFileMarker(const std::string &path, bool on) // simply touch a file COFile f(path); #ifdef NL_OS_WINDOWS - SetFileAttributes(path.c_str(), FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM); + SetFileAttributesW(utf8ToWide(path), FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM); #endif } catch(const EStream &e) From 50afa42d93ee403698670ae9d55f6f46ab081419 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:38:17 +0100 Subject: [PATCH 030/184] Use ANSI versions of Win32 functions when not using Unicode text, issue #261 --- .../3d/driver/direct3d/driver_direct3d.cpp | 20 ++++----- .../src/3d/driver/opengl/driver_opengl.cpp | 10 ++--- .../3d/driver/opengl/driver_opengl_window.cpp | 14 +++---- code/nel/src/misc/debug.cpp | 14 +++---- code/nel/src/misc/displayer.cpp | 2 +- code/nel/src/misc/inter_window_msg_queue.cpp | 4 +- code/nel/src/misc/mem_displayer.cpp | 13 +++--- code/nel/src/misc/mutex.cpp | 2 +- code/nel/src/misc/shared_memory.cpp | 4 +- code/nel/src/misc/system_info.cpp | 26 ++++++------ code/nel/src/misc/system_utils.cpp | 4 +- code/nel/src/misc/win_displayer.cpp | 42 +++++++++---------- code/nel/src/misc/win_thread.cpp | 2 +- code/ryzom/client/src/init.cpp | 2 +- 14 files changed, 79 insertions(+), 80 deletions(-) diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp index 1adaeb73f..2b90ea1ed 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp @@ -1243,23 +1243,23 @@ bool CDriverD3D::init (uintptr_t windowIcon, emptyProc exitFunc) createCursors(); + _WindowClass = "NLD3D" + toString(windowIcon); + // Register a window class - WNDCLASSW wc; + WNDCLASSA wc; memset(&wc,0,sizeof(wc)); wc.style = 0; // CS_HREDRAW | CS_VREDRAW ;//| CS_DBLCLKS; wc.lpfnWndProc = (WNDPROC)WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; - wc.hInstance = GetModuleHandleW(NULL); + wc.hInstance = GetModuleHandleA(NULL); wc.hIcon = (HICON)windowIcon; wc.hCursor = _DefaultCursor; wc.hbrBackground = WHITE_BRUSH; - _WindowClass = "NLD3D" + toString(windowIcon); - ucstring us = _WindowClass; - wc.lpszClassName = (LPCWSTR)us.c_str(); + wc.lpszClassName = _WindowClass.c_str(); wc.lpszMenuName = NULL; - if (!RegisterClassW(&wc)) + if (!RegisterClassA(&wc)) { DWORD error = GetLastError(); if (error != ERROR_CLASS_ALREADY_EXISTS) @@ -2327,13 +2327,13 @@ void CDriverD3D::setWindowIcon(const std::vector &bitmaps) if (winIconBig) { - SendMessage(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); - SendMessage(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig); + SendMessageA(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); + SendMessageA(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig); } else { - SendMessage(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); - SendMessage(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall); + SendMessageA(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); + SendMessageA(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall); } } diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index 2b7f76515..e247275ab 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -2527,7 +2527,7 @@ void CDriverGL::retrieveATIDriverVersion() // get from the registry HKEY parentKey; // open key about current video card - LONG result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E968-E325-11CE-BFC1-08002BE10318}", 0, KEY_READ, &parentKey); + LONG result = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E968-E325-11CE-BFC1-08002BE10318}", 0, KEY_READ, &parentKey); if (result == ERROR_SUCCESS) { // find last config @@ -2541,7 +2541,7 @@ void CDriverGL::retrieveATIDriverVersion() for(;;) { nameBufferSize = sizeof(subKeyName) / sizeof(subKeyName[0]); - result = RegEnumKeyEx(parentKey, keyIndex, subKeyName, &nameBufferSize, NULL, NULL, NULL, &lastWriteTime); + result = RegEnumKeyExA(parentKey, keyIndex, subKeyName, &nameBufferSize, NULL, NULL, NULL, &lastWriteTime); if (result == ERROR_NO_MORE_ITEMS) break; if (result == ERROR_SUCCESS) { @@ -2577,14 +2577,14 @@ void CDriverGL::retrieveATIDriverVersion() if (configFound) { HKEY subKey; - result = RegOpenKeyEx(parentKey, latestSubKeyName, 0, KEY_READ, &subKey); + result = RegOpenKeyExA(parentKey, latestSubKeyName, 0, KEY_READ, &subKey); if (result == ERROR_SUCCESS) { // see if it is a radeon card DWORD valueType; char driverDesc[256]; DWORD driverDescBufSize = sizeof(driverDesc) / sizeof(driverDesc[0]); - result = RegQueryValueEx(subKey, "DriverDesc", NULL, &valueType, (unsigned char *) driverDesc, &driverDescBufSize); + result = RegQueryValueExA(subKey, "DriverDesc", NULL, &valueType, (unsigned char *) driverDesc, &driverDescBufSize); if (result == ERROR_SUCCESS && valueType == REG_SZ) { toLower(driverDesc); @@ -2592,7 +2592,7 @@ void CDriverGL::retrieveATIDriverVersion() { char driverVersion[256]; DWORD driverVersionBufSize = sizeof(driverVersion) / sizeof(driverVersion[0]); - result = RegQueryValueEx(subKey, "DriverVersion", NULL, &valueType, (unsigned char *) driverVersion, &driverVersionBufSize); + result = RegQueryValueExA(subKey, "DriverVersion", NULL, &valueType, (unsigned char *) driverVersion, &driverVersionBufSize); if (result == ERROR_SUCCESS && valueType == REG_SZ) { int subVersionNumber[4]; diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp index 5c6d63045..db6400042 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp @@ -326,7 +326,7 @@ bool CDriverGL::init (uintptr_t windowIcon, emptyProc exitFunc) } // Backup monitor color parameters - HDC dc = CreateDC ("DISPLAY", NULL, NULL, NULL); + HDC dc = CreateDCA ("DISPLAY", NULL, NULL, NULL); if (dc) { _NeedToRestoreGammaRamp = GetDeviceGammaRamp (dc, _GammaRampBackuped) != FALSE; @@ -468,7 +468,7 @@ bool CDriverGL::unInit() // Restore monitor color parameters if (_NeedToRestoreGammaRamp) { - HDC dc = CreateDC ("DISPLAY", NULL, NULL, NULL); + HDC dc = CreateDCA ("DISPLAY", NULL, NULL, NULL); if (dc) { if (!SetDeviceGammaRamp (dc, _GammaRampBackuped)) @@ -558,13 +558,13 @@ void CDriverGL::setWindowIcon(const std::vector &bitmaps) if (winIconBig) { - SendMessage(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); - SendMessage(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig); + SendMessageA(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); + SendMessageA(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig); } else { - SendMessage(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); - SendMessage(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall); + SendMessageA(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall); + SendMessageA(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall); } #elif defined(NL_OS_MAC) @@ -2847,7 +2847,7 @@ bool CDriverGL::setMonitorColorProperties (const CMonitorColorProperties &proper #ifdef NL_OS_WINDOWS // Get a DC - HDC dc = CreateDC ("DISPLAY", NULL, NULL, NULL); + HDC dc = CreateDCA ("DISPLAY", NULL, NULL, NULL); if (dc) { // The ramp diff --git a/code/nel/src/misc/debug.cpp b/code/nel/src/misc/debug.cpp index f6794761b..1f0bb4fd1 100644 --- a/code/nel/src/misc/debug.cpp +++ b/code/nel/src/misc/debug.cpp @@ -315,9 +315,9 @@ static DWORD __stdcall GetModuleBase(HANDLE hProcess, DWORD dwReturnAddress) cch = GetModuleFileNameW((HINSTANCE)memoryBasicInfo.AllocationBase, szFile, MAX_PATH); - if (cch && (lstrcmpA(szFile, "DBFN")== 0)) - { - if (!SymLoadModule(hProcess, + if (cch && (lstrcmpA(szFile, "DBFN")== 0)) + { + if (!SymLoadModule(hProcess, NULL, "MN", NULL, (DWORD) memoryBasicInfo.AllocationBase, 0)) { @@ -1171,12 +1171,12 @@ void createDebug (const char *logPath, bool logInFile, bool eraseLastLog) // Use an environment variable to share the value among the EXE and its child DLLs // (otherwise there would be one distinct bool by module, and the last // _set_se_translator would overwrite the previous ones) - const TCHAR *SE_TRANSLATOR_IN_MAIN_MODULE = _T("NEL_SE_TRANS"); - TCHAR envBuf [2]; - if ( GetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, envBuf, 2 ) == 0) + const char *SE_TRANSLATOR_IN_MAIN_MODULE = "NEL_SE_TRANS"; + char envBuf [2]; + if ( GetEnvironmentVariableA( SE_TRANSLATOR_IN_MAIN_MODULE, envBuf, 2 ) == 0) { _set_se_translator(exceptionTranslator); - SetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, _T("1") ); + SetEnvironmentVariableA( SE_TRANSLATOR_IN_MAIN_MODULE, "1" ); } } # endif // NL_OS_WINDOWS diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp index 0749ecfc3..798a4f80a 100644 --- a/code/nel/src/misc/displayer.cpp +++ b/code/nel/src/misc/displayer.cpp @@ -216,7 +216,7 @@ void CStdDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess static bool consoleModeTest = false; if (!consoleModeTest) { - HANDLE handle = CreateFile ("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); + HANDLE handle = CreateFileA ("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); consoleMode = handle != INVALID_HANDLE_VALUE; if (consoleMode) CloseHandle (handle); diff --git a/code/nel/src/misc/inter_window_msg_queue.cpp b/code/nel/src/misc/inter_window_msg_queue.cpp index 77e72e654..cca8f1a37 100644 --- a/code/nel/src/misc/inter_window_msg_queue.cpp +++ b/code/nel/src/misc/inter_window_msg_queue.cpp @@ -96,7 +96,7 @@ namespace NLMISC nlassert(_Id == 0); // init done twice release(); // create a system wide mutex - _SharedMemMutex = CreateMutex(NULL, FALSE, toString("NL_MUTEX_%d", (int) id).c_str()); + _SharedMemMutex = CreateMutexA(NULL, FALSE, toString("NL_MUTEX_%d", (int) id).c_str()); if (!_SharedMemMutex) return false; _Id = id; return true; @@ -197,7 +197,7 @@ namespace NLMISC cds.lpData = (PVOID) msgOut.buffer(); for(;;) { - LRESULT result = ::SendMessage(targetWindow, WM_COPYDATA, (WPARAM) _Parent->_LocalWindow.getWnd(), (LPARAM) &cds); + LRESULT result = ::SendMessageA(targetWindow, WM_COPYDATA, (WPARAM) _Parent->_LocalWindow.getWnd(), (LPARAM) &cds); if (result) break; // retry ... Sleep(30); diff --git a/code/nel/src/misc/mem_displayer.cpp b/code/nel/src/misc/mem_displayer.cpp index 47b262ec8..b8f4f2ea3 100644 --- a/code/nel/src/misc/mem_displayer.cpp +++ b/code/nel/src/misc/mem_displayer.cpp @@ -165,16 +165,15 @@ static DWORD __stdcall GetModuleBase(HANDLE hProcess, DWORD dwReturnAddress) DWORD cch = 0; char szFile[MAX_PATH] = { 0 }; - cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase, - szFile, MAX_PATH); + cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase, szFile, MAX_PATH); - if (cch && (lstrcmp(szFile, "DBFN")== 0)) - { - char mn[] = { 'M', 'N', 0x00 }; + if (cch && (lstrcmpA(szFile, "DBFN")== 0)) + { + char mn[] = { 'M', 'N', 0x00 }; #ifdef NL_OS_WIN64 - if (!SymLoadModule64( + if (!SymLoadModule64( #else - if (!SymLoadModule( + if (!SymLoadModule( #endif hProcess, NULL, mn, diff --git a/code/nel/src/misc/mutex.cpp b/code/nel/src/misc/mutex.cpp index 098bce795..ef0cb4216 100644 --- a/code/nel/src/misc/mutex.cpp +++ b/code/nel/src/misc/mutex.cpp @@ -159,7 +159,7 @@ bool CSharedMutex::createByName( const char *objectName ) #ifdef NL_DEBUG nlassert( _Mutex == NULL ); #endif - _Mutex = (void *) CreateMutex( NULL, FALSE, objectName ); + _Mutex = (void *) CreateMutexA( NULL, FALSE, objectName ); //nldebug( "Creating mutex %s: handle %p", objectName, _Mutex ); return ( _Mutex != NULL ); } diff --git a/code/nel/src/misc/shared_memory.cpp b/code/nel/src/misc/shared_memory.cpp index 3afe795f1..99333a9c8 100644 --- a/code/nel/src/misc/shared_memory.cpp +++ b/code/nel/src/misc/shared_memory.cpp @@ -51,7 +51,7 @@ void *CSharedMemory::createSharedMemory( TSharedMemId sharedMemId, uint32 size #ifdef NL_OS_WINDOWS // Create a file mapping backed by the virtual memory swap file (not a data file) - HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, sharedMemId ); + HANDLE hMapFile = CreateFileMappingA( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, sharedMemId ); if ( (hMapFile == NULL) || (GetLastError() == ERROR_ALREADY_EXISTS) ) { nlwarning( "SHDMEM: Cannot create file mapping for smid %s: error %u%s, mapFile %p", sharedMemId, GetLastError(), (GetLastError()==ERROR_ALREADY_EXISTS) ? " (already exists) ": "", hMapFile ); @@ -97,7 +97,7 @@ void *CSharedMemory::accessSharedMemory( TSharedMemId sharedMemId ) #ifdef NL_OS_WINDOWS // Open the existing file mapping by name - HANDLE hMapFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, false, sharedMemId ); + HANDLE hMapFile = OpenFileMappingA( FILE_MAP_ALL_ACCESS, false, sharedMemId ); if ( hMapFile == NULL ) return NULL; //nldebug( "SHDMEM: Opening smid %s --> mapFile %p", sharedMemId, hMapFile ); diff --git a/code/nel/src/misc/system_info.cpp b/code/nel/src/misc/system_info.cpp index aa826bccd..7f8a47ee1 100644 --- a/code/nel/src/misc/system_info.cpp +++ b/code/nel/src/misc/system_info.cpp @@ -638,7 +638,7 @@ string CSystemInfo::getOS() else // Test for specific product on Windows NT 4.0 SP5 and earlier { HKEY hKey; - TCHAR szProductType[BUFSIZE]; + char szProductType[BUFSIZE]; DWORD dwBufLen=BUFSIZE; LONG lRet; @@ -652,18 +652,18 @@ string CSystemInfo::getOS() RegCloseKey( hKey ); - if ( lstrcmpi( _T("WINNT"), szProductType) == 0 ) + if ( lstrcmpiA( "WINNT", szProductType) == 0 ) OSString += " Workstation"; - if ( lstrcmpi( _T("LANMANNT"), szProductType) == 0 ) + if ( lstrcmpiA( "LANMANNT", szProductType) == 0 ) OSString += " Server"; - if ( lstrcmpi( _T("SERVERNT"), szProductType) == 0 ) + if ( lstrcmpiA( "SERVERNT", szProductType) == 0 ) OSString += " Advanced Server"; } } std::string servicePack; - if( osvi.dwMajorVersion == 4 && lstrcmpi( osvi.szCSDVersion, _T("Service Pack 6") ) == 0 ) + if (osvi.dwMajorVersion == 4 && lstrcmpiA(osvi.szCSDVersion, "Service Pack 6") == 0 ) { HKEY hKey; LONG lRet; @@ -768,7 +768,7 @@ string CSystemInfo::getProc () { // get processor name valueSize = 1024; - result = ::RegQueryValueEx (hKey, _T("ProcessorNameString"), NULL, NULL, (LPBYTE)value, &valueSize); + result = ::RegQueryValueExA (hKey, "ProcessorNameString", NULL, NULL, (LPBYTE)value, &valueSize); if (result == ERROR_SUCCESS) ProcString = value; else @@ -778,7 +778,7 @@ string CSystemInfo::getProc () // get processor identifier valueSize = 1024; - result = ::RegQueryValueEx (hKey, _T("Identifier"), NULL, NULL, (LPBYTE)value, &valueSize); + result = ::RegQueryValueExA (hKey, "Identifier", NULL, NULL, (LPBYTE)value, &valueSize); if (result == ERROR_SUCCESS) ProcString += value; else @@ -788,7 +788,7 @@ string CSystemInfo::getProc () // get processor vendor valueSize = 1024; - result = ::RegQueryValueEx (hKey, _T("VendorIdentifier"), NULL, NULL, (LPBYTE)value, &valueSize); + result = ::RegQueryValueExA (hKey, "VendorIdentifier", NULL, NULL, (LPBYTE)value, &valueSize); if (result == ERROR_SUCCESS) ProcString += value; else @@ -797,7 +797,7 @@ string CSystemInfo::getProc () ProcString += " / "; // get processor frequency - result = ::RegQueryValueEx (hKey, _T("~MHz"), NULL, NULL, (LPBYTE)value, &valueSize); + result = ::RegQueryValueExA (hKey, "~MHz", NULL, NULL, (LPBYTE)value, &valueSize); if (result == ERROR_SUCCESS) { uint32 freq = *(int *)value; @@ -1387,12 +1387,12 @@ bool CSystemInfo::getVideoInfo (std::string &deviceName, uint64 &driverVersion) } // Version dll link - HMODULE hmVersion = LoadLibrary (_T("version")); + HMODULE hmVersion = LoadLibraryA ("version.dll"); if (hmVersion) { - BOOL (WINAPI* _GetFileVersionInfo)(LPTSTR, DWORD, DWORD, LPVOID) = NULL; - DWORD (WINAPI* _GetFileVersionInfoSize)(LPTSTR, LPDWORD) = NULL; - BOOL (WINAPI* _VerQueryValue)(const LPVOID, LPTSTR, LPVOID*, PUINT) = NULL; + BOOL (WINAPI* _GetFileVersionInfo)(LPSTR, DWORD, DWORD, LPVOID) = NULL; + DWORD (WINAPI* _GetFileVersionInfoSize)(LPSTR, LPDWORD) = NULL; + BOOL (WINAPI* _VerQueryValue)(const LPVOID, LPSTR, LPVOID*, PUINT) = NULL; *(FARPROC*)&_GetFileVersionInfo = GetProcAddress(hmVersion, "GetFileVersionInfoA"); *(FARPROC*)&_GetFileVersionInfoSize = GetProcAddress(hmVersion, "GetFileVersionInfoSizeA"); *(FARPROC*)&_VerQueryValue = GetProcAddress(hmVersion, "VerQueryValueA"); diff --git a/code/nel/src/misc/system_utils.cpp b/code/nel/src/misc/system_utils.cpp index 8f5c678f8..7ea9ad544 100644 --- a/code/nel/src/misc/system_utils.cpp +++ b/code/nel/src/misc/system_utils.cpp @@ -273,14 +273,14 @@ bool CSystemUtils::isScreensaverEnabled() // SystemParametersInfoA(SPI_GETSCREENSAVEACTIVE, 0, &bRetValue, 0); // res = (bRetValue == TRUE); HKEY hKeyScreenSaver = NULL; - LSTATUS lReturn = RegOpenKeyExA(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_QUERY_VALUE, &hKeyScreenSaver); + LSTATUS lReturn = RegOpenKeyExA(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, KEY_QUERY_VALUE, &hKeyScreenSaver); if (lReturn == ERROR_SUCCESS) { DWORD dwType = 0L; DWORD dwSize = KeyMaxLength; unsigned char Buffer[KeyMaxLength] = {0}; - lReturn = RegQueryValueExA(hKeyScreenSaver, TEXT("SCRNSAVE.EXE"), NULL, &dwType, NULL, &dwSize); + lReturn = RegQueryValueExA(hKeyScreenSaver, "SCRNSAVE.EXE", NULL, &dwType, NULL, &dwSize); // if SCRNSAVE.EXE is present, check also if it's empty if (lReturn == ERROR_SUCCESS) res = (Buffer[0] != '\0'); diff --git a/code/nel/src/misc/win_displayer.cpp b/code/nel/src/misc/win_displayer.cpp index 48a8f20c7..e81b7623e 100644 --- a/code/nel/src/misc/win_displayer.cpp +++ b/code/nel/src/misc/win_displayer.cpp @@ -40,7 +40,7 @@ using namespace std; namespace NLMISC { -static CHARFORMAT2 CharFormat; +static CHARFORMAT2A CharFormat; CWinDisplayer::CWinDisplayer(const char *displayerName) : CWindowDisplayer(displayerName), Exit(false) { @@ -221,7 +221,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) ucs.fromUtf8(cwd->_History[cwd->_PosInHistory]); // set the text as unicode string SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str()); - SendMessage (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); + SendMessageA (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); } } else if (pmf->wParam == VK_DOWN) @@ -238,7 +238,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) ucs.fromUtf8(cwd->_History[cwd->_PosInHistory]); // set the text as unicode string SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str()); - SendMessage (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); + SendMessageA (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); } } } @@ -268,7 +268,7 @@ void CWinDisplayer::updateLabels () { access.value()[i].Hwnd = CreateWindowW (L"STATIC", L"", WS_CHILD | WS_VISIBLE | SS_SIMPLE, 0, 0, 0, 0, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtr(_HWnd, GWLP_HINSTANCE), NULL); } - SendMessage ((HWND)access.value()[i].Hwnd, WM_SETFONT, (WPARAM)_HFont, TRUE); + SendMessageA ((HWND)access.value()[i].Hwnd, WM_SETFONT, (WPARAM)_HFont, TRUE); needResize = true; } @@ -427,14 +427,14 @@ void CWinDisplayer::open (string titleBar, bool iconified, sint x, sint y, sint dwStyle |= WS_HSCROLL; _HEdit = CreateWindowExW(WS_EX_OVERLAPPEDWINDOW, RICHEDIT_CLASSW, L"", dwStyle, 0, _ToolBarHeight, w, h-_ToolBarHeight-_InputEditHeight, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtr(_HWnd, GWLP_HINSTANCE), NULL); - SendMessage (_HEdit, WM_SETFONT, (WPARAM)_HFont, TRUE); + SendMessageA (_HEdit, WM_SETFONT, (WPARAM)_HFont, TRUE); // set the edit text limit to lot of :) - SendMessage (_HEdit, EM_LIMITTEXT, -1, 0); + SendMessageA (_HEdit, EM_LIMITTEXT, -1, 0); CharFormat.cbSize = sizeof(CharFormat); CharFormat.dwMask = CFM_COLOR; - SendMessage(_HEdit,EM_GETCHARFORMAT,(WPARAM)0,(LPARAM)&CharFormat); + SendMessageA(_HEdit,EM_GETCHARFORMAT,(WPARAM)0,(LPARAM)&CharFormat); CharFormat.dwEffects &= ~CFE_AUTOCOLOR; // create the input edit control @@ -445,7 +445,7 @@ void CWinDisplayer::open (string titleBar, bool iconified, sint x, sint y, sint LRESULT dwEvent = SendMessageW(_HInputEdit, EM_GETEVENTMASK, (WPARAM)0, (LPARAM)0); dwEvent |= ENM_MOUSEEVENTS | ENM_KEYEVENTS | ENM_CHANGE; - SendMessage(_HInputEdit, EM_SETEVENTMASK, (WPARAM)0, (LPARAM)dwEvent); + SendMessageA(_HInputEdit, EM_SETEVENTMASK, (WPARAM)0, (LPARAM)dwEvent); // resize the window RECT rc; @@ -477,8 +477,8 @@ void CWinDisplayer::clear () bool focus = (GetFocus() == _HEdit); if (focus) { - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOVSCROLL); - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOHSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOVSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOHSCROLL); } // get number of line @@ -534,13 +534,13 @@ void CWinDisplayer::display_main () bool focus = (GetFocus() == _HEdit); if (focus) { - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOVSCROLL); - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOHSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOVSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_AND,(LPARAM)~ECO_AUTOHSCROLL); } // store old selection DWORD startSel, endSel; - SendMessage (_HEdit, EM_GETSEL, (WPARAM)&startSel, (LPARAM)&endSel); + SendMessageA (_HEdit, EM_GETSEL, (WPARAM)&startSel, (LPARAM)&endSel); // find how many lines we have to remove in the current output to add new lines @@ -554,7 +554,7 @@ void CWinDisplayer::display_main () if (nblineremove == _HistorySize) { - SendMessage (_HEdit, WM_SETTEXT, 0, (LPARAM) ""); + SendMessageA (_HEdit, WM_SETTEXT, 0, (LPARAM) ""); startSel = endSel = -1; } else @@ -594,13 +594,13 @@ void CWinDisplayer::display_main () str += ucstring::makeFromUtf8((*it).second); } - SendMessage (_HEdit, EM_SETSEL, -1, -1); + SendMessageA(_HEdit, EM_SETSEL, -1, -1); if ((col>>24) == 0) { // there s a specific color CharFormat.crTextColor = RGB ((col>>16)&0xFF, (col>>8)&0xFF, col&0xFF); - SendMessage((HWND) _HEdit, EM_SETCHARFORMAT, (WPARAM) SCF_SELECTION, (LPARAM) &CharFormat); + SendMessageA(_HEdit, EM_SETCHARFORMAT, (WPARAM) SCF_SELECTION, (LPARAM) &CharFormat); } // add the string to the edit control @@ -608,17 +608,17 @@ void CWinDisplayer::display_main () } // restore old selection - SendMessage (_HEdit, EM_SETSEL, startSel, endSel); + SendMessageA(_HEdit, EM_SETSEL, startSel, endSel); - SendMessage(_HEdit,EM_SETMODIFY,(WPARAM)TRUE,(LPARAM)0); + SendMessageA(_HEdit,EM_SETMODIFY,(WPARAM)TRUE,(LPARAM)0); if (bottom) - SendMessage(_HEdit,WM_VSCROLL,(WPARAM)SB_BOTTOM,(LPARAM)0L); + SendMessageA(_HEdit,WM_VSCROLL,(WPARAM)SB_BOTTOM,(LPARAM)0L); if (focus) { - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_OR,(LPARAM)ECO_AUTOVSCROLL); - SendMessage(_HEdit,EM_SETOPTIONS,ECOOP_OR,(LPARAM)ECO_AUTOHSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_OR,(LPARAM)ECO_AUTOVSCROLL); + SendMessageA(_HEdit,EM_SETOPTIONS,ECOOP_OR,(LPARAM)ECO_AUTOHSCROLL); } } diff --git a/code/nel/src/misc/win_thread.cpp b/code/nel/src/misc/win_thread.cpp index 2bdb5ea3b..f8063b6b7 100644 --- a/code/nel/src/misc/win_thread.cpp +++ b/code/nel/src/misc/win_thread.cpp @@ -373,7 +373,7 @@ bool CPSAPILib::init() if (_LoadFailed) return false; if (!_PSAPILibHandle) { - _PSAPILibHandle = LoadLibrary("psapi.dll"); + _PSAPILibHandle = LoadLibraryA("psapi.dll"); if (!_PSAPILibHandle) { nlwarning("couldn't load psapi.dll, possibly not supported by os"); diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index a203614e4..864451718 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -271,7 +271,7 @@ static INT_PTR CALLBACK ExitClientErrorDialogProc(HWND hwndDlg, UINT uMsg, WPARA GetWindowRect (GetDesktopWindow (), &rectDesktop); SetWindowPos (hwndDlg, HWND_TOPMOST, (rectDesktop.right-rectDesktop.left-rect.right+rect.left)/2, (rectDesktop.bottom-rectDesktop.top-rect.bottom+rect.top)/2, 0, 0, SWP_NOSIZE); HICON exitClientDlgIcon = LoadIcon(HInstance, MAKEINTRESOURCE(IDI_MAIN_ICON)); - ::SendMessage(hwndDlg, WM_SETICON, (WPARAM) ICON_BIG, (LPARAM) exitClientDlgIcon); + ::SendMessageA(hwndDlg, WM_SETICON, (WPARAM) ICON_BIG, (LPARAM) exitClientDlgIcon); } break; case WM_COMMAND: From f07654884425fe4565ac1e8ce32a34b36ed066df Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:52:57 +0100 Subject: [PATCH 031/184] Use right versions of Win32 functions, issue #261 --- code/nel/src/misc/dummy_window.cpp | 24 +++++++++---------- code/nel/src/misc/system_info.cpp | 2 +- code/nel/src/misc/win_displayer.cpp | 20 +++++++--------- .../driver/xaudio2/sound_driver_xaudio2.cpp | 6 ++--- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/code/nel/src/misc/dummy_window.cpp b/code/nel/src/misc/dummy_window.cpp index a0d807ac5..60fe51795 100644 --- a/code/nel/src/misc/dummy_window.cpp +++ b/code/nel/src/misc/dummy_window.cpp @@ -45,32 +45,32 @@ bool CDummyWindow::init(HINSTANCE hInstance, WNDPROC winProc) { release(); static const char *INVISIBLE_WINDOW_CLASS = "nl_invisible_wnd_class"; - WNDCLASSEX wc; - wc.cbSize = sizeof(WNDCLASSEX); - if (!GetClassInfoEx(hInstance, INVISIBLE_WINDOW_CLASS, &wc)) + WNDCLASSEXA wc; + wc.cbSize = sizeof(WNDCLASSEXA); + if (!GetClassInfoExA(hInstance, INVISIBLE_WINDOW_CLASS, &wc)) { - wc.cbSize = sizeof(WNDCLASSEX); + wc.cbSize = sizeof(WNDCLASSEXA); wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wc.lpfnWndProc = nlDefaultWinProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; - wc.hIcon = 0; - wc.hCursor = 0; - wc.hbrBackground = 0; - wc.lpszMenuName = 0; + wc.hIcon = NULL; + wc.hCursor = NULL; + wc.hbrBackground = NULL; + wc.lpszMenuName = NULL; wc.lpszClassName = INVISIBLE_WINDOW_CLASS; - wc.hIconSm = 0; - RegisterClassEx(&wc); + wc.hIconSm = NULL; + RegisterClassExA(&wc); } - _HWnd = CreateWindow(INVISIBLE_WINDOW_CLASS, "", WS_POPUP, + _HWnd = CreateWindowA(INVISIBLE_WINDOW_CLASS, "", WS_POPUP, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL, 0, hInstance, 0); if (_HWnd) { - if (winProc) SetWindowLongPtr(_HWnd, GWLP_WNDPROC, (LONG_PTR) winProc); + if (winProc) SetWindowLongPtrA(_HWnd, GWLP_WNDPROC, (LONG_PTR) winProc); return true; } return false; diff --git a/code/nel/src/misc/system_info.cpp b/code/nel/src/misc/system_info.cpp index 7f8a47ee1..f5a80238a 100644 --- a/code/nel/src/misc/system_info.cpp +++ b/code/nel/src/misc/system_info.cpp @@ -1062,7 +1062,7 @@ uint64 CSystemInfo::availableHDSpace (const string &filename) return (uint64)(stfs.f_bavail * stst.st_blksize); #else ULARGE_INTEGER freeSpace = {0}; - BOOL bRes = ::GetDiskFreeSpaceExA(path.c_str(), &freeSpace, NULL, NULL); + BOOL bRes = ::GetDiskFreeSpaceExW(utf8ToWide(path), &freeSpace, NULL, NULL); if (!bRes) return 0; return (uint64)freeSpace.QuadPart; diff --git a/code/nel/src/misc/win_displayer.cpp b/code/nel/src/misc/win_displayer.cpp index e81b7623e..c9e81bbb3 100644 --- a/code/nel/src/misc/win_displayer.cpp +++ b/code/nel/src/misc/win_displayer.cpp @@ -149,10 +149,9 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) CWinDisplayer *cwd=(CWinDisplayer *)GetWindowLongPtr (hWnd, GWLP_USERDATA); // get the text as unicode string GetWindowTextW(cwd->_HInputEdit, wText, 20000); - ucstring ucs((ucchar*)wText); // and convert it to UTF-8 encoding. - TextSend = ucs.toUtf8(); - SendMessage (cwd->_HInputEdit, WM_SETTEXT, (WPARAM)0, (LPARAM)""); + TextSend = wideToUtf8(wText); + SendMessageA (cwd->_HInputEdit, WM_SETTEXT, (WPARAM)0, (LPARAM)""); const char *pos2 = TextSend.c_str(); string str; while (*pos2 != '\0') @@ -193,14 +192,13 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // get the text as unicode string GetWindowTextW(cwd->_HInputEdit, wText, 20000); - ucstring ucs((ucchar*)wText); // and convert it to UTF-8 encoding - string str = ucs.toUtf8(); + string str = wideToUtf8(wText); nlassert (cwd->Log != NULL); ICommand::expand (str, *cwd->Log); SendMessageW (cwd->_HInputEdit, WM_SETTEXT, (WPARAM)0, (LPARAM)wText); - SendMessage (cwd->_HInputEdit, EM_SETSEL, str.size(), str.size()); + SendMessageA (cwd->_HInputEdit, EM_SETSEL, wcslen(wText), wcslen(wText)); return 1; } @@ -209,7 +207,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (pmf->wParam == VK_UP) { - CWinDisplayer *cwd=(CWinDisplayer *)GetWindowLongPtrW (hWnd, GWLP_USERDATA); + CWinDisplayer *cwd=(CWinDisplayer *)GetWindowLongPtrA (hWnd, GWLP_USERDATA); if (cwd->_PosInHistory > 0) cwd->_PosInHistory--; @@ -262,11 +260,11 @@ void CWinDisplayer::updateLabels () // create a button for command and label for variables if (access.value()[i].Value[0] == '@') { - access.value()[i].Hwnd = CreateWindowW (L"BUTTON", L"", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 0, 0, 0, 0, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtr(_HWnd, GWLP_HINSTANCE), NULL); + access.value()[i].Hwnd = CreateWindowA ("BUTTON", "", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 0, 0, 0, 0, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtrA(_HWnd, GWLP_HINSTANCE), NULL); } else { - access.value()[i].Hwnd = CreateWindowW (L"STATIC", L"", WS_CHILD | WS_VISIBLE | SS_SIMPLE, 0, 0, 0, 0, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtr(_HWnd, GWLP_HINSTANCE), NULL); + access.value()[i].Hwnd = CreateWindowA ("STATIC", "", WS_CHILD | WS_VISIBLE | SS_SIMPLE, 0, 0, 0, 0, _HWnd, (HMENU) NULL, (HINSTANCE) GetWindowLongPtrA(_HWnd, GWLP_HINSTANCE), NULL); } SendMessageA ((HWND)access.value()[i].Hwnd, WM_SETFONT, (WPARAM)_HFont, TRUE); needResize = true; @@ -290,7 +288,7 @@ void CWinDisplayer::updateLabels () } } - SendMessage ((HWND)access.value()[i].Hwnd, WM_SETTEXT, 0, (LPARAM) n.c_str()); + SendMessageW ((HWND)access.value()[i].Hwnd, WM_SETTEXT, 0, (LPARAM) utf8ToWide(n)); access.value()[i].NeedUpdate = false; } } @@ -604,7 +602,7 @@ void CWinDisplayer::display_main () } // add the string to the edit control - SendMessageW (_HEdit, EM_REPLACESEL, FALSE, (LPARAM) str.c_str()); + SendMessageW(_HEdit, EM_REPLACESEL, FALSE, (LPARAM) str.c_str()); } // restore old selection diff --git a/code/nel/src/sound/driver/xaudio2/sound_driver_xaudio2.cpp b/code/nel/src/sound/driver/xaudio2/sound_driver_xaudio2.cpp index 3cc7a7dd2..d15f2f6aa 100644 --- a/code/nel/src/sound/driver/xaudio2/sound_driver_xaudio2.cpp +++ b/code/nel/src/sound/driver/xaudio2/sound_driver_xaudio2.cpp @@ -266,8 +266,7 @@ void CSoundDriverXAudio2::getDevices(std::vector &devices) for (uint i = 0; i < deviceCount; ++i) { _XAudio2->GetDeviceDetails(i, &deviceDetails); - std::basic_string deviceNameW = deviceDetails.DisplayName; - std::string deviceName = std::string(deviceNameW.begin(), deviceNameW.end()); + std::string deviceName = wideToUtf8(deviceDetails.DisplayName); nldebug("XA2: - %s", deviceName.c_str()); devices.push_back(deviceName); } @@ -289,8 +288,7 @@ uint CSoundDriverXAudio2::getDeviceIndex(const std::string &device, XAUDIO2_DEVI for (uint i = 0; i < deviceCount; ++i) { _XAudio2->GetDeviceDetails(i, deviceDetails); - std::basic_string deviceNameW = deviceDetails->DisplayName; - std::string deviceName = std::string(deviceNameW.begin(), deviceNameW.end()); + std::string deviceName = wideToUtf8(deviceDetails->DisplayName); if (deviceName == device) return i; } From e9f82027017f7d6f17e8f37497147f350ea07abc Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:53:39 +0100 Subject: [PATCH 032/184] Changed: Minor changes --- code/nel/src/misc/i18n.cpp | 2 +- code/ryzom/client/src/sound_manager.cpp | 2 +- code/ryzom/common/src/game_share/persistent_data.cpp | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 99e9c68a0..427c102da 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -567,7 +567,7 @@ void CI18N::readTextFile(const string &filename, if (!readContext.IfStack.empty()) { - nlwarning("Preprocess: Missing %u closing #endif after parsing %s", readContext.IfStack.size(), filename.c_str() ); + nlwarning("Preprocess: Missing %u closing #endif after parsing %s", (uint)readContext.IfStack.size(), filename.c_str() ); } } diff --git a/code/ryzom/client/src/sound_manager.cpp b/code/ryzom/client/src/sound_manager.cpp index 0374a0e1a..5c1f49b1c 100644 --- a/code/ryzom/client/src/sound_manager.cpp +++ b/code/ryzom/client/src/sound_manager.cpp @@ -1039,7 +1039,7 @@ void CSoundManager::loadProperties(const string &soundName, USource *source) // While the end of the file is not reached. while(!file.eof()) { - // Get a line (teh line should not be more than _MAX_LINE_SIZE). + // Get a line (the line should not be more than _MAX_LINE_SIZE). file.getline(tmpBuff, 260); char *token = strtok(tmpBuff, delimiterBox); while(token != NULL) diff --git a/code/ryzom/common/src/game_share/persistent_data.cpp b/code/ryzom/common/src/game_share/persistent_data.cpp index a9fe8b344..ad52a7b4d 100644 --- a/code/ryzom/common/src/game_share/persistent_data.cpp +++ b/code/ryzom/common/src/game_share/persistent_data.cpp @@ -520,7 +520,7 @@ uint32 CPersistentDataRecord::getNumValues() const } } - // restore the original values of teh state variables + // restore the original values of the state variables _ArgOffset=oldArgOffset; _TokenOffset=oldTokenOffset; _ReadingStructStack=oldRSS; @@ -1117,6 +1117,7 @@ bool CPersistentDataRecord::readFromFile(const std::string &fileName) { H_AUTO(pdrReadFromFile) + // TODO: see why code is different under Linux and Windows #ifdef NL_OS_WINDOWS // open the file From 64af254ece22f0894e6ee79bd102a386b9c32dcb Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:54:32 +0100 Subject: [PATCH 033/184] Use Unicode of CreateProcess, issue #261 --- code/nel/src/misc/common.cpp | 136 ++++++++++++++--------------------- 1 file changed, 55 insertions(+), 81 deletions(-) diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index c986234d7..c71688174 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -725,50 +725,54 @@ bool abortProgram(uint32 pid) #endif } -bool launchProgram(const std::string &programName, const std::string &arguments, bool log) -{ #ifdef NL_OS_WINDOWS - STARTUPINFOA si; - PROCESS_INFORMATION pi; +static bool createProcess(const std::string &programName, const std::string &arguments, bool log, PROCESS_INFORMATION &pi) +{ + STARTUPINFOW si; memset(&si, 0, sizeof(si)); memset(&pi, 0, sizeof(pi)); si.cb = sizeof(si); // Enable nlassert/nlstop to display the error reason & callstack - const TCHAR *SE_TRANSLATOR_IN_MAIN_MODULE = _T("NEL_SE_TRANS"); - TCHAR envBuf [2]; - if ( GetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, envBuf, 2 ) != 0) + const char *SE_TRANSLATOR_IN_MAIN_MODULE = "NEL_SE_TRANS"; + + char envBuf[2]; + if (GetEnvironmentVariableA(SE_TRANSLATOR_IN_MAIN_MODULE, envBuf, 2) != 0) { - SetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, NULL ); + SetEnvironmentVariableA(SE_TRANSLATOR_IN_MAIN_MODULE, NULL); } - const char *sProgramName = programName.c_str(); - + wchar_t *sProgramName = NULL; + std::string args; // a .bat file must have first parameter to NULL and use 2nd parameter to pass filename if (CFile::getExtension(programName) == "bat") { - sProgramName = NULL; args = "\"" + programName + "\" " + arguments; } else { + ucstring ucProgramName; + ucProgramName.fromUtf8(programName); + + sProgramName = new wchar_t[MAX_PATH]; + wcscpy(sProgramName, (wchar_t*)ucProgramName.c_str()); + args = arguments; } - BOOL res = CreateProcessA(sProgramName, (char*)args.c_str(), NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi); + BOOL res = CreateProcessW(sProgramName, utf8ToWide(args), NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi); - if (res) + if (sProgramName) { - //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); - CloseHandle( pi.hProcess ); - CloseHandle( pi.hThread ); - return true; + delete [] sProgramName; + sProgramName = NULL; } - else + + if (!res) { if (log) { @@ -778,8 +782,26 @@ bool launchProgram(const std::string &programName, const std::string &arguments, CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); + + return false; } + return true; +} + +#endif + +bool launchProgram(const std::string &programName, const std::string &arguments, bool log) +{ +#ifdef NL_OS_WINDOWS + PROCESS_INFORMATION pi; + + if (!createProcess(programName, arguments, log, pi)) return false; + + //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + return true; #else #ifdef NL_OS_MAC @@ -884,76 +906,28 @@ bool launchProgram(const std::string &programName, const std::string &arguments, sint launchProgramAndWaitForResult(const std::string &programName, const std::string &arguments, bool log) { - sint res = 0; - #ifdef NL_OS_WINDOWS - STARTUPINFOA si; PROCESS_INFORMATION pi; - memset(&si, 0, sizeof(si)); - memset(&pi, 0, sizeof(pi)); + if (!createProcess(programName, arguments, log, pi)) return -1; - si.cb = sizeof(si); + // Successfully created the process. Wait for it to finish. + WaitForSingleObject(pi.hProcess, INFINITE); - // Enable nlassert/nlstop to display the error reason & callstack - const TCHAR *SE_TRANSLATOR_IN_MAIN_MODULE = _T("NEL_SE_TRANS"); - TCHAR envBuf [2]; - if ( GetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, envBuf, 2 ) != 0) - { - SetEnvironmentVariable( SE_TRANSLATOR_IN_MAIN_MODULE, NULL ); - } + // Get the exit code. + DWORD exitCode = 0; + BOOL ok = GetExitCodeProcess(pi.hProcess, &exitCode); - const char *sProgramName = programName.c_str(); + //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); - std::string args; + if (ok) return (sint)exitCode; - // a .bat file must have first parameter to NULL and use 2nd parameter to pass filename - if (CFile::getExtension(programName) == "bat") - { - sProgramName = NULL; - args = "\"" + programName + "\" " + arguments; - } - else - { - args = arguments; - } + if (log) + nlwarning("LAUNCH: Failed launched '%s' with arg '%s'", programName.c_str(), arguments.c_str()); - BOOL ok = CreateProcessA(sProgramName, (char*)args.c_str(), NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi); - - if (ok) - { - // Successfully created the process. Wait for it to finish. - WaitForSingleObject(pi.hProcess, INFINITE); - - // Get the exit code. - DWORD exitCode = 0; - ok = GetExitCodeProcess(pi.hProcess, &exitCode); - - //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - - if (ok) - { - res = (sint)exitCode; - } - else - { - if (log) - nlwarning("LAUNCH: Failed launched '%s' with arg '%s'", programName.c_str(), arguments.c_str()); - } - } - else - { - if (log) - { - sint lastError = getLastError(); - nlwarning("LAUNCH: Failed launched '%s' with arg '%s' err %d: '%s'", programName.c_str(), arguments.c_str(), lastError, formatErrorMessage(lastError).c_str()); - } - - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } + return -1; #else // program name is the only required string std::string command = programName; @@ -962,13 +936,13 @@ sint launchProgramAndWaitForResult(const std::string &programName, const std::st if (!arguments.empty()) command += " " + arguments; // execute the command - res = system(command.c_str()); + sint res = system(command.c_str()); if (res && log) nlwarning ("LAUNCH: Failed launched '%s' with arg '%s' return code %d", programName.c_str(), arguments.c_str(), res); -#endif return res; +#endif } std::string getCommandOutput(const std::string &command) From 35570eb0a3a687d02b15ff8d66e1fb98a18d48e4 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:56:21 +0100 Subject: [PATCH 034/184] Adapt CSTLoader to use nlfopen and some simplifications, issue #261 --- .../common/src/game_share/cst_loader.cpp | 137 +++++++++--------- code/ryzom/common/src/game_share/cst_loader.h | 80 ++++------ 2 files changed, 93 insertions(+), 124 deletions(-) diff --git a/code/ryzom/common/src/game_share/cst_loader.cpp b/code/ryzom/common/src/game_share/cst_loader.cpp index b957d7f34..87e587ba1 100644 --- a/code/ryzom/common/src/game_share/cst_loader.cpp +++ b/code/ryzom/common/src/game_share/cst_loader.cpp @@ -26,11 +26,11 @@ using namespace NLMISC; /****************************************************************\ buildTableFormat() \****************************************************************/ -void CSTLoader::buildTableFormat( string fileName, list >& tableFormat ) +void CSTLoader::buildTableFormat(const string &fileName, list >& tableFormat ) { - _File = new ifstream(fileName.c_str(), ios::in); + _File = nlfopen(fileName, "rb"); - if( !_File->is_open() ) + if (!_File) { nlerror("can't open file : %s\n", fileName.c_str()); } @@ -40,7 +40,7 @@ void CSTLoader::buildTableFormat( string fileName, list > //================ char readBuffer[4096]; char * token; - _File->getline(readBuffer, 4096); + if (fgets(readBuffer, 4096, _File) == NULL) return; // extract first token //==================== @@ -102,13 +102,17 @@ void CSTLoader::readData( list >& data ) char * token; bool firstToken = true; - while( !_File->eof() ) + while( !feof(_File) ) { // list of current object values list lineData; // read a line - _File->getline(readBuffer, 4096); + if (fgets(readBuffer, 4096, _File) == NULL) + { + // EOF + break; + } // check all tokens of the current line do @@ -146,74 +150,44 @@ void CSTLoader::readData( list >& data ) /****************************************************************\ generateDerivedClasses() \****************************************************************/ -void CSTLoader::generateDerivedClasses(ofstream &file, std::list< std::pair > &format, std::list< std::list< std::string> > &data ) +void CSTLoader::generateDerivedClasses(const std::list< std::pair > &format, const std::list< std::list< std::string> > &data ) { + std::string content; - - std::list< std::list< std::string> >::iterator it_dl = data.begin(); + std::list< std::list< std::string> >::const_iterator it_dl = data.begin(); while ( it_dl != data.end() ) { - std::list< std::pair >::iterator it_def = format.begin(); - std::list::iterator it_val = (*it_dl).begin(); + std::list< std::pair >::const_iterator it_def = format.begin(); + std::list::const_iterator it_val = (*it_dl).begin(); // sint32 size = data.size(); // sint32 size2 = (*it_dl).size(); -// std::string name = convertName( *it_val ); +// std::string name = convertName( *it_val ); -// std::string test = *it_val; +// std::string test = *it_val; if ( (*it_dl).size() ) { - file << "From Item : Define " << convertName( *it_val ) << endl; + content += "From Item : Define " + convertName( *it_val ) + "\n"; it_val++; it_def++; - file << "{" << endl; - file << "\tComponent:" << endl; + content += "{\n"; + content += "\tComponent:\n"; } - std::list< std::pair >::iterator it_obj = format.begin(); + std::list< std::pair >::const_iterator it_obj = format.begin(); it_obj++; while ( it_obj != format.end() ) { - file << "\t\t"; - switch ( (*it_obj).second ) - { - case UINT8: - file << "uint8"; - break; - case SINT8: - file << "sint8"; - break; - case UINT16: - file << "uint16"; - break; - case SINT16: - file << "sint16"; - break; - case UINT32: - file << "uint32"; - break; - case SINT32: - file << "sint32"; - break; - case FLOAT: - file << "Float"; - break; - case STRING: - file << "String"; - break; - case BOOL: - file << "Bool"; - break; - } - file << "<'" << (*it_obj).first << "', Static>;" << endl; + content += "\t\t" + convertFromType((*it_obj).second); + content += "<'" + (*it_obj).first + "', Static>;\n"; it_obj++; } - file << "\tEnd" << endl << endl; + content += "\tEnd\n"; - file << "\t StaticInit()" << endl; + content += "\t StaticInit()\n"; while ( it_def != format.end() && it_val != (*it_dl).end() ) { @@ -222,50 +196,52 @@ void CSTLoader::generateDerivedClasses(ofstream &file, std::list< std::pair& fileFormat) +void CSTLoader::init(const string &fileName, const map& fileFormat) { _FileFormat = fileFormat; _FileName = fileName; - _File = new ifstream(fileName.c_str(), ios::in); + _File = nlfopen(fileName, "rb"); - if( !_File->is_open() ) + if (!_File) { nlerror("can't open file : %s\n", fileName.c_str()); } @@ -291,7 +267,8 @@ void CSTLoader::init(string fileName, const map& fileFormat) // read first line char readBuffer[4096]; char * token; - _File->getline(readBuffer, 4096); + + if (fgets(readBuffer, 4096, _File) == NULL) return; // extract first token token = strtok(readBuffer, _Seps.c_str()); @@ -316,7 +293,7 @@ void CSTLoader::init(string fileName, const map& fileFormat) \****************************************************************/ bool CSTLoader::readLine() { - if( _File->eof() ) + if (feof(_File)) { return false; } @@ -333,7 +310,7 @@ bool CSTLoader::readLine() _Tokens.clear(); // read a line - _File->getline(readBuffer, 4096); + if (fgets(readBuffer, 4096, _File) == NULL) return false; // if the line is empty we consider we are at end of file if( strlen(readBuffer) == 0) @@ -429,3 +406,21 @@ bool CSTLoader::readLine() return true; } +std::string CSTLoader::convertFromType(TDataType type) +{ + switch (type) + { + case UINT8: return "uint8"; + case SINT8: return "sint8"; + case UINT16: return "uint16"; + case SINT16: return "sint16"; + case UINT32: return "uint32"; + case SINT32: return "sint32"; + case FLOAT: return "Float"; + case STRING: return "String"; + case BOOL: return "Bool"; + default: break; + } + + return ""; +} diff --git a/code/ryzom/common/src/game_share/cst_loader.h b/code/ryzom/common/src/game_share/cst_loader.h index b80cad107..51fa6e9aa 100644 --- a/code/ryzom/common/src/game_share/cst_loader.h +++ b/code/ryzom/common/src/game_share/cst_loader.h @@ -25,7 +25,6 @@ #include #include #include -#include /** @@ -55,10 +54,10 @@ public: private: /// cst file - std::ifstream * _File; + FILE *_File; /// name of the cst file (used for debug information) - std::string _FileName; + std::string _FileName; /// separators std::string _Seps; @@ -101,7 +100,7 @@ public: * \param fileName the name of the file * \param fileFormat the name of the columns and their data type */ - void buildTableFormat( std::string fileName, std::list >& tableFormat ); + void buildTableFormat( const std::string &fileName, std::list >& tableFormat ); /** @@ -117,7 +116,7 @@ public: * \param fileName the name of the file * \param fileFormat the name of the columns and their data type */ - void init( std::string fileName, const std::map& fileFormat); + void init( const std::string &fileName, const std::map& fileFormat); /** @@ -213,77 +212,50 @@ public: /// close file void close() { - _File->close(); - delete _File; + fclose(_File); + _File = NULL; } - void Load(std::string fileName,std::ofstream &script_file) + void Load(const std::string &fileName) { // Generates the base class std::list< std::pair > format; buildTableFormat( fileName, format ); - generateBaseClass( script_file, format); + generateBaseClass( format); // Generates a derived class for each type of object std::list< std::list > data; readData( data ); - generateDerivedClasses( script_file, format, data ); + generateDerivedClasses( format, data ); } - void generateBaseClass(std::ofstream &file, std::list< std::pair > &/* format */) + void generateBaseClass(const std::list< std::pair > &/* format */) { - file << "From Agent : Define Item" << std::endl; - file << "{" << std::endl; -/* file << "\tComponent:" << std::endl; + std::string content; + content += "From Agent : Define Item\n"; + content += "{\n"; +/* content += "\tComponent:\n"; std::list< std::pair >::iterator it_obj = format.begin(); it_obj++; while ( it_obj != format.end() ) { - file << "\t\t"; - switch ( (*it_obj).second ) - { - case UINT8: - file << "uint8"; - break; - case SINT8: - file << "sint8"; - break; - case UINT16: - file << "uint16"; - break; - case SINT16: - file << "sint16"; - break; - case UINT32: - file << "uint32"; - break; - case SINT32: - file << "sint32"; - break; - case FLOAT: - file << "Float"; - break; - case STRING: - file << "String"; - break; - case BOOL: - file << "Bool"; - break; - } - file << "<'" << (*it_obj).first << "', Static>;" << std::endl; + content += "\t\t" + convertFromType((*it_obj).second); + content += "<'" + (*it_obj).first + "', Static>;\n"; it_obj++; } - file << "\tEnd" << std::endl;*/ - file << "}" << std::endl; - file << std::endl; + content += "\tEnd\n"; */ + content += "}\n"; + content += "\n"; + + fwrite(content.c_str(), 1, content.length(), _File); } - void generateDerivedClasses(std::ofstream &, std::list< std::pair > &, std::list< std::list< std::string> > &); + void generateDerivedClasses(const std::list< std::pair > &, const std::list< std::list< std::string> > &); - TDataType convertType(std::string type_str) + TDataType convertType(const std::string &type_str) { if ( type_str == "UINT8") return UINT8; @@ -306,11 +278,13 @@ public: return (TDataType)0; } - std::string convertName(std::string &name) + std::string convertFromType(TDataType type); + + std::string convertName(const std::string &name) const { int i = 0; char buffer[1024]; - std::string::iterator it_c = name.begin(); + std::string::const_iterator it_c = name.begin(); while ( it_c != name.end() ) { char c = *it_c; From 2f9f1b249d5272ef139cb6562bc28fbfcc1eb8be Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 18:59:03 +0100 Subject: [PATCH 035/184] Display patch errors/warnings in UTF-8, issue #261 --- code/ryzom/client/src/login.cpp | 2 +- code/ryzom/client/src/login_patch.cpp | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/ryzom/client/src/login.cpp b/code/ryzom/client/src/login.cpp index 171af2d38..73f5e3fec 100644 --- a/code/ryzom/client/src/login.cpp +++ b/code/ryzom/client/src/login.cpp @@ -1787,7 +1787,7 @@ class CAHReboot : public IActionHandler } catch (const std::exception &e) { - im->messageBoxWithHelp(ucstring(e.what()), "ui:login", "login_quit"); + im->messageBoxWithHelp(ucstring::makeFromUtf8(e.what()), "ui:login", "login_quit"); } } }; diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index d50ace059..a7a75d983 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -698,7 +698,7 @@ bool CPatchManager::getThreadState (ucstring &stateOut, vector &stateL // verbose log if (isVerboseLog() && !stateLogOut.empty()) for (uint32 i = 0; i < stateLogOut.size(); ++i) - nlinfo("%s", stateLogOut[i].toString().c_str()); + nlinfo("%s", stateLogOut[i].toUtf8().c_str()); return changed; } @@ -1025,7 +1025,7 @@ void CPatchManager::setRWAccess (const string &filename, bool bThrowException) { s = CI18N::get("uiAttribErr") + " " + CFile::getFilename(filename) + " (" + toString(errno) + "," + strerror(errno) + ")"; setState(true, s); - throw Exception (s.toString()); + throw Exception (s.toUtf8()); } } @@ -1039,7 +1039,7 @@ string CPatchManager::deleteFile (const string &filename, bool bThrowException, { s = CI18N::get("uiDelNoFile"); setState(true, s); - return s.toString(); + return s.toUtf8(); } if (!NLMISC::CFile::deleteFile(filename)) @@ -1048,8 +1048,8 @@ string CPatchManager::deleteFile (const string &filename, bool bThrowException, if(bWarning) setState(true, s); if(bThrowException) - throw Exception (s.toString()); - return s.toString(); + throw Exception (s.toUtf8()); + return s.toUtf8(); } return ""; } @@ -1064,7 +1064,7 @@ void CPatchManager::renameFile (const string &src, const string &dst) { s = CI18N::get("uiRenameErr") + " " + src + " -> " + dst + " (" + toString(errno) + "," + strerror(errno) + ")"; setState(true, s); - throw Exception (s.toString()); + throw Exception (s.toUtf8()); } } @@ -1744,7 +1744,7 @@ bool CPatchManager::bnpUnpack(const string &srcBigfile, const string &dstPath, v if (!bnpFile.readHeader()) { - ucstring s = CI18N::get("uiUnpackErrHead") + " " + SourceName; + ucstring s = CI18N::get("uiUnpackErrHead") + " " + CFile::getFilename(SourceName); setState(true,s); return false; } @@ -1805,7 +1805,7 @@ void CPatchManager::MyPatchingCB::progress(float f) { CPatchManager *pPM = CPatchManager::getInstance(); double p = 100.0*f; - ucstring sTranslate = CI18N::get("uiApplyingDelta") + toString(" %s (%5.02f %%)", CFile::getFilename(patchFilename).c_str(), p); + ucstring sTranslate = CI18N::get("uiApplyingDelta") + ucstring::makeFromUtf8(toString(" %s (%.02f %%)", CFile::getFilename(patchFilename).c_str(), p)); pPM->setState(false, sTranslate); } @@ -1981,7 +1981,7 @@ void CPatchManager::clearDataScanLog() // *************************************************************************** void CPatchManager::getCorruptedFileInfo(const SFileToPatch &ftp, ucstring &sTranslate) { - sTranslate = CI18N::get("uiCorruptedFile") + " " + ftp.FileName + " (" + + sTranslate = CI18N::get("uiCorruptedFile") + " " + ucstring::makeFromUtf8(ftp.FileName) + " (" + toString("%.1f ", (float)ftp.FinalFileSize/1000000.f) + CI18N::get("uiMb") + ")"; } @@ -2068,7 +2068,7 @@ void CCheckThread::run () for (i = 0; i < rDescFiles.fileCount(); ++i) { CPatchManager::SFileToPatch ftp; - sTranslate = CI18N::get("uiCheckingFile") + " " + rDescFiles.getFile(i).getFileName(); + sTranslate = CI18N::get("uiCheckingFile") + " " + ucstring::makeFromUtf8(rDescFiles.getFile(i).getFileName()); pPM->setState(true, sTranslate); // get list of patch to apply to this file. don't to a full checksum test if possible nlwarning(rDescFiles.getFile(i).getFileName().c_str()); From c93112f3c5997a4d41cc265b20912ebb9910c23d Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:00:25 +0100 Subject: [PATCH 036/184] Changed: Added NamingPolicyURL variable in cfg --- code/ryzom/client/src/client_cfg.cpp | 1 + code/ryzom/client/src/client_cfg.h | 1 + code/ryzom/client/src/login.cpp | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index 84ccada65..32b345294 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -884,6 +884,7 @@ void CClientConfig::setValues() READ_STRING_FV(CreateAccountURL) READ_STRING_FV(EditAccountURL) READ_STRING_FV(ConditionsTermsURL) + READ_STRING_FV(NamingPolicyURL) READ_STRING_FV(BetaAccountURL) READ_STRING_FV(ForgetPwdURL) READ_STRING_FV(FreeTrialURL) diff --git a/code/ryzom/client/src/client_cfg.h b/code/ryzom/client/src/client_cfg.h index 75c7698da..5fe0cfa1c 100644 --- a/code/ryzom/client/src/client_cfg.h +++ b/code/ryzom/client/src/client_cfg.h @@ -160,6 +160,7 @@ struct CClientConfig string CreateAccountURL; string EditAccountURL; string ConditionsTermsURL; + string NamingPolicyURL; string BetaAccountURL; string ForgetPwdURL; string FreeTrialURL; diff --git a/code/ryzom/client/src/login.cpp b/code/ryzom/client/src/login.cpp index 73f5e3fec..7d2e3173f 100644 --- a/code/ryzom/client/src/login.cpp +++ b/code/ryzom/client/src/login.cpp @@ -1886,6 +1886,10 @@ class CAHOpenURL : public IActionHandler { url = ClientCfg.ConditionsTermsURL; } + else if (sParams == "cfg_NamingPolicyURL") + { + url = ClientCfg.NamingPolicyURL; + } else { nlwarning("no URL found"); From 008071caa3d297fcdb8b3e1cff55dd3cc161ad33 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:01:31 +0100 Subject: [PATCH 037/184] Fixed: Display an error if unable to open a ogg file --- code/nel/src/sound/audio_decoder.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/nel/src/sound/audio_decoder.cpp b/code/nel/src/sound/audio_decoder.cpp index d8283c227..f4884a427 100644 --- a/code/nel/src/sound/audio_decoder.cpp +++ b/code/nel/src/sound/audio_decoder.cpp @@ -110,15 +110,18 @@ bool IAudioDecoder::getInfo(const std::string &filepath, std::string &artist, st CIFile ifile; ifile.setCacheFileOnOpen(false); ifile.allowBNPCacheFileOnOpen(false); - ifile.open(lookup); - return CAudioDecoderVorbis::getInfo(&ifile, artist, title); + if (ifile.open(lookup)) + return CAudioDecoderVorbis::getInfo(&ifile, artist, title); + + nlwarning("Unable to open: '%s'", filepath.c_str()); } else { nlwarning("Music file type unknown: '%s'", type_lower.c_str()); - artist.clear(); title.clear(); - return false; } + + artist.clear(); title.clear(); + return false; } /// Get audio/container extensions that are currently supported by the nel sound library. From 0a70560372d583efa300ac6fb634671d3392735f Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:02:35 +0100 Subject: [PATCH 038/184] Changed: Use --profile instead of --config for client profile expression --- code/ryzom/client/src/client.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 1cb3fb3c9..63392dd15 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -171,7 +171,7 @@ int main(int argc, char **argv) Args.setVersion(getDisplayVersion()); Args.setDescription("Ryzom client"); - Args.addArg("c", "config", "id", "Use this configuration to determine what directory to use by default"); + Args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); Args.addAdditionalArg("login", "Login to use", true, false); Args.addAdditionalArg("password", "Password to use", true, false); Args.addAdditionalArg("shard_id", "Shard ID to use", true, false); @@ -206,13 +206,13 @@ int main(int argc, char **argv) LoginShardId = std::numeric_limits::max(); // if client_default.cfg is not in current directory, use application default directory - if (Args.haveArg("c") || !CFile::isExists("client_default.cfg")) + if (Args.haveArg("p") || !CFile::isExists("client_default.cfg")) { std::string currentPath = CPath::getApplicationDirectory("Ryzom"); - // append config ID to directory - if (Args.haveArg("c")) - currentPath = NLMISC::CPath::standardizePath(currentPath) + Args.getArg("c").front(); + // append profile ID to directory + if (Args.haveArg("p")) + currentPath = NLMISC::CPath::standardizePath(currentPath) + Args.getArg("p").front(); if (!CFile::isExists(currentPath)) CFile::createDirectory(currentPath); From 703bae5882c12dd4835c2e0138738e82d04f89f4 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:03:31 +0100 Subject: [PATCH 039/184] Changed: Use upgrade script if present --- code/ryzom/client/src/login_patch.cpp | 2 ++ code/ryzom/client/src/login_patch.h | 1 + 2 files changed, 3 insertions(+) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index a7a75d983..e9950a6d6 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -119,8 +119,10 @@ CPatchManager::CPatchManager() : State("t_state"), DataScanState("t_data_scan_st #ifdef NL_OS_WINDOWS UpdateBatchFilename = "updt_nl.bat"; + UpgradeBatchFilename = "upgd_nl.bat"; #else UpdateBatchFilename = "updt_nl.sh"; + UpgradeBatchFilename = "upgd_nl.sh"; #endif // use application directory by default diff --git a/code/ryzom/client/src/login_patch.h b/code/ryzom/client/src/login_patch.h index c7f0f4509..9407290e9 100644 --- a/code/ryzom/client/src/login_patch.h +++ b/code/ryzom/client/src/login_patch.h @@ -433,6 +433,7 @@ private: /// Now deprecated : the launcher is the client ryzom std::string RyzomFilename; std::string UpdateBatchFilename; + std::string UpgradeBatchFilename; // Where the client get all delta and desc file std::string ClientPatchPath; // Temporary path From 220930fd022b4d4e9bbf10af89703e1166d8ded7 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:04:18 +0100 Subject: [PATCH 040/184] Changed: Don't put spaces in front of percent value --- code/ryzom/client/src/login_patch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index e9950a6d6..51fe2720a 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1792,7 +1792,7 @@ int CPatchManager::validateProgress(void *foo, double t, double d, double /* ult CPatchManager *pPM = CPatchManager::getInstance(); double pour1 = t!=0.0?d*100.0/t:0.0; - ucstring sTranslate = CI18N::get("uiLoginGetFile") + ucstring::makeFromUtf8(toString(" %s : %s / %s (%5.02f %%)", NLMISC::CFile::getFilename(pPM->CurrentFile).c_str(), + ucstring sTranslate = CI18N::get("uiLoginGetFile") + ucstring::makeFromUtf8(toString(" %s : %s / %s (%.02f %%)", NLMISC::CFile::getFilename(pPM->CurrentFile).c_str(), NLMISC::bytesToHumanReadableUnits((uint64)d, units).c_str(), NLMISC::bytesToHumanReadableUnits((uint64)t, units).c_str(), pour1)); pPM->setState(false, sTranslate); if (foo) From 2024023541c8cee159df9a9640f09f757fc2b125 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:04:34 +0100 Subject: [PATCH 041/184] Changed: Use uiByte translation --- code/ryzom/client/src/login_patch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 51fe2720a..15e36c9c4 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1785,7 +1785,7 @@ int CPatchManager::validateProgress(void *foo, double t, double d, double /* ult if (units.empty()) { - units.push_back("B"); // there is no translation for byte unit... + units.push_back(CI18N::get("uiByte").toUtf8()); units.push_back(CI18N::get("uiKb").toUtf8()); units.push_back(CI18N::get("uiMb").toUtf8()); } From b2409763f9e6d5de6f9bddbc22fb34fbf6cf51b0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:05:39 +0100 Subject: [PATCH 042/184] Changed: Display only filename in patch screen --- code/ryzom/client/src/login_patch.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 15e36c9c4..6eb278ece 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1525,10 +1525,10 @@ void CPatchManager::applyDate (const string &sFilename, uint32 nDate) // if (_utime (sFilename.c_str (), &utb) == -1) { int err = NLMISC::getLastError(); - s = CI18N::get("uiChgDateErr") + " " + sFilename + " (" + toString(err) + ", " + formatErrorMessage(err) + ")"; + s = CI18N::get("uiChgDateErr") + " " + CFile::getFilename(sFilename) + " (" + toString(err) + ", " + formatErrorMessage(err) + ")"; setState(true,s); } - s = CI18N::get("uiNowDate") + " " + sFilename + " " + toString(NLMISC::CFile::getFileModificationDate (sFilename)); + s = CI18N::get("uiNowDate") + " " + CFile::getFilename(sFilename) + " " + timestampToHumanReadable(NLMISC::CFile::getFileModificationDate (sFilename)); setState(true,s); } } From ba5a164ec8d982152f21d0ff075e1084c14e79f5 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:06:15 +0100 Subject: [PATCH 043/184] Fixed: Display human readable version of file timestamps --- code/ryzom/client/src/login_patch.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 6eb278ece..192487905 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1517,8 +1517,8 @@ void CPatchManager::applyDate (const string &sFilename, uint32 nDate) // _utimbuf utb; // utb.actime = utb.modtime = nDate; setRWAccess(sFilename, false); - ucstring s = CI18N::get("uiChangeDate") + " " + NLMISC::CFile::getFilename(sFilename) + " " + toString(NLMISC::CFile::getFileModificationDate (sFilename)) + - " -> " + toString(nDate); + ucstring s = CI18N::get("uiChangeDate") + " " + NLMISC::CFile::getFilename(sFilename) + " " + timestampToHumanReadable(NLMISC::CFile::getFileModificationDate (sFilename)) + + " -> " + timestampToHumanReadable(nDate); setState(true,s); if (!NLMISC::CFile::setFileModificationDate(sFilename, nDate)) From 7e6114985eba10b6efe0379c86fb3e085992bf05 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:07:34 +0100 Subject: [PATCH 044/184] Changed: Use ClientCfg.getDefaultConfigLocation to get location of client root --- code/ryzom/client/src/login_patch.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 192487905..0ba2f472c 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -125,10 +125,14 @@ CPatchManager::CPatchManager() : State("t_state"), DataScanState("t_data_scan_st UpgradeBatchFilename = "upgd_nl.sh"; #endif - // use application directory by default - std::string rootPath = Args.getProgramPath(); + std::string rootPath; - if (!CFile::fileExists(rootPath + "client_default.cfg")) + if (ClientCfg.getDefaultConfigLocation(rootPath)) + { + // use same directory as client_default.cfg + rootPath = CFile::getPath(rootPath); + } + else { // use current directory rootPath = CPath::getCurrentPath(); From 90962e292f811aa4916de48d347f7613b2963928 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:11:05 +0100 Subject: [PATCH 045/184] Huge refactoring of batch creation process, because .bat files don't support unicode at all, we can pass Unicode paths on command-line though, issue #261 --- code/ryzom/client/src/login_patch.cpp | 144 +++++++++++++++++++------- 1 file changed, 109 insertions(+), 35 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 0ba2f472c..7377a5832 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -739,6 +739,18 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool const CBNPCategorySet &rDescCats = descFile.getCategories(); OptionalCat.clear(); + string SrcPath = ClientPatchPath; + string DstPath = ClientRootPath; + +#ifdef NL_OS_WINDOWS + // only fix backslashes for .bat + string batchSrcPath = CPath::standardizeDosPath(SrcPath); + string batchDstPath = CPath::standardizeDosPath(DstPath); +#else + string batchSrcPath = SrcPath; + string batchDstPath = DstPath; +#endif + for (uint32 i = 0; i < rDescCats.categoryCount(); ++i) { // For all optional categories check if there is a 'file to patch' in it @@ -747,14 +759,14 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool if (!rCat.getUnpackTo().empty()) for (uint32 j = 0; j < rCat.fileCount(); ++j) { - string rFilename = ClientPatchPath + rCat.getFile(j); + string rFilename = SrcPath + rCat.getFile(j); nlwarning("\tFileName = %s", rFilename.c_str()); // Extract to patch vector vFilenames; bool result = false; try { - result = bnpUnpack(rFilename, ClientPatchPath, vFilenames); + result = bnpUnpack(rFilename, SrcPath, vFilenames); } catch(...) { @@ -772,45 +784,59 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool { for (uint32 fff = 0; fff < vFilenames.size (); fff++) { - string SrcPath = ClientPatchPath; - string DstPath = CPath::standardizePath(rCat.getUnpackTo()); // to be sure there is a / at the end - NLMISC::CFile::createDirectoryTree(DstPath); - // this file must be moved -#ifdef NL_OS_WINDOWS - SrcPath = CPath::standardizeDosPath(SrcPath); - DstPath = CPath::standardizeDosPath(DstPath); -#endif + string fullDstPath = CPath::standardizePath(rCat.getUnpackTo()); // to be sure there is a / at the end + NLMISC::CFile::createDirectoryTree(fullDstPath); - std::string SrcName = SrcPath + vFilenames[fff]; - std::string DstName = DstPath + vFilenames[fff]; + std::string FileName = vFilenames[fff]; bool succeeded = false; if (!useBatchFile) { // don't check result, because it's possible the olk file doesn't exist - CFile::deleteFile(DstName); + CFile::deleteFile(fullDstPath + FileName); // try to move it, if fails move it later in a script - if (CFile::moveFile(DstName, SrcName)) + if (CFile::moveFile(fullDstPath + FileName, SrcPath + FileName)) succeeded = true; } // if we didn't succeed to delete or move the file, create a batch file anyway if (!succeeded) { + string batchRelativeDstPath; + + if (fullDstPath.compare(0, DstPath.length(), DstPath) == 0) + { + batchRelativeDstPath = fullDstPath.substr(DstPath.length()) + FileName; + } + else + { + batchRelativeDstPath = fullDstPath + FileName; + } +#ifdef NL_OS_WINDOWS + // only fix backslashes for .bat + batchRelativeDstPath = CPath::standardizeDosPath(batchRelativeDstPath); +#endif + // write windows .bat format else write sh format #ifdef NL_OS_WINDOWS + string realDstPath = toString("\"%%DSTPATH%%\\%s\"", batchRelativeDstPath.c_str()); + string realSrcPath = toString("\"%%SRCPATH%%\\%s\"", FileName.c_str()); + content += toString(":loop%u\n", nblab); - content += toString("attrib -r -a -s -h \"%s\"\n", DstName.c_str()); - content += toString("del \"%s\"\n", DstName.c_str()); - content += toString("if exist \"%s\" goto loop%u\n", DstName.c_str(), nblab); - content += toString("move \"%s\" \"%s\"\n", SrcName.c_str(), DstPath.c_str()); + content += toString("attrib -r -a -s -h %s\n", realDstPath.c_str()); + content += toString("del %s\n", realDstPath.c_str()); + content += toString("if exist %s goto loop%u\n", realDstPath.c_str(), nblab); + content += toString("move %s %s\n", realSrcPath.c_str(), realDstPath.c_str()); #else - content += toString("rm -rf \"%s\"\n", DstName.c_str()); - content += toString("mv %s \"%s\"\n", SrcName.c_str(), DstPath.c_str()); + content += toString("rm -rf %s\n", realDstPath.c_str()); + // TODO: add test of returned $? + content += toString("mv %s %s\n", realSrcPath.c_str(), realDstPath.c_str()); #endif + + content += "\n"; } nblab++; @@ -857,10 +883,10 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool content += patchContent; - content += toString("rd /Q /S \"" + patchDirectory + "\"\n"); - content += toString("if exist \"" + patchDirectory + "\" goto looppatch\n"); + content += toString("rd /Q /S \"%s\"\n", patchDirectory.c_str()); + content += toString("if exist \"%s\" goto looppatch\n", patchDirectory.c_str()); #else - content += toString("rm -rf \"" + patchDirectory + "\"\n"); + content += toString("rm -rf \"%s\"\n", patchDirectory.c_str()); #endif } else @@ -883,30 +909,70 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool throw Exception (err); } + string contentPrefix; + //use bat if windows if not use sh #ifdef NL_OS_WINDOWS - fprintf(fp, "@echo off\n"); + contentPrefix += "@echo off\n"; + contentPrefix += "set RYZOM_CLIENT=%1\n"; + contentPrefix += "set SRCPATH=%2\n"; + contentPrefix += "set DSTPATH=%3\n"; + contentPrefix += "set LOGIN=%4\n"; + contentPrefix += "set PASSWORD=%5\n"; + contentPrefix += "set SHARDID=%6\n"; + contentPrefix += toString("set UPGRADE_FILE=%%DSTPATH%%\\%s\n", UpgradeBatchFilename.c_str()); #else - fprintf(fp, "#!/bin/sh\n"); + contentPrefix += "#!/bin/sh\n"; + contentPrefix += "RYZOM_CLIENT=$1\n"; + contentPrefix += "SRCPATH=$2\n"; + contentPrefix += "DSTPATH=$3\n"; + contentPrefix += "LOGIN=$4\n"; + contentPrefix += "PASSWORD=$5\n"; + contentPrefix += "SHARDID=$6\n"; + contentPrefix += toString("UPGRADE_FILE=$DSTPATH\\%s\n", UpgradeBatchFilename.c_str()); #endif + contentPrefix += "\n"; + // append content of script - fprintf(fp, content.c_str()); + fputs(contentPrefix.c_str(), fp); + fputs(content.c_str(), fp); + + std::string additionalParams; + + if (Args.haveLongArg("profile")) + { + additionalParams = "--profile " + Args.getLongArg("profile").front(); + } if (wantRyzomRestart) { + string contentSuffix; + #ifdef NL_OS_WINDOWS - fprintf(fp, "start \"\" \"%s\" %%1 %%2 %%3\n", CPath::standardizeDosPath(RyzomFilename).c_str()); + // launch upgrade script if present (it'll execute additional steps like moving or deleting files) + contentSuffix += "if exist \"%UPGRADE_FILE%\" call \"%UPGRADE_FILE%\"\n"; + + // client shouldn't be in memory anymore else it couldn't be overwritten + contentSuffix += toString("start \"\" /D \"%%DSTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str()); #else - // wait until client is not in memory - fprintf(fp, "until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str()); + // wait until client not in memory anymore + contentSuffix += toString("until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str()); + + // launch upgrade script if present (it'll execute additional steps like moving or deleting files) + contentSuffix += "if [ -e \"$UPGRADE_FILE\" ]; then chmod +x \"$UPGRADE_FILE\" && \"$UPGRADE_FILE\"; fi\n"; // be sure file is executable - fprintf(fp, "chmod +x \"%s\"\n", RyzomFilename.c_str()); + contentSuffix += "chmod +x \"$RYZOM_CLIENT\"\n"); + + // change to previous client directory + contentSuffix += "cd \"$DSTPATH\"\n"); // launch new client - fprintf(fp, "\"%s\" $1 $2 $3\n", RyzomFilename.c_str()); + contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str()); #endif + + fputs(contentSuffix.c_str(), fp); } bool writeError = ferror(fp) != 0; @@ -946,12 +1012,20 @@ void CPatchManager::executeBatchFile() batchFilename += UpdateBatchFilename; -#ifdef NL_OS_UNIX - // make script executable under UNIX - chmod(batchFilename.c_str(), S_IRWXU); + // make script executable + CFile::setRWAccess(batchFilename); + + std::string arguments; + + // 3 first parameters are Ryzom client full path, patch directory full path and client root directory full path +#ifdef NL_OS_WINDOWS + arguments += "\"" + CPath::standardizeDosPath(RyzomFilename) + "\" \"" + CPath::standardizeDosPath(ClientPatchPath) + "\" \"" + CPath::standardizeDosPath(ClientRootPath) + "\""; +#else + arguments += "\"" + RyzomFilename + "\" \"" + ClientPatchPath + "\" " + ClientRootPath + "\""; #endif - std::string arguments = LoginLogin + " " + LoginPassword; + // append login and password + arguments += " " + LoginLogin + " " + LoginPassword; if (!r2Mode) { From 399bf7e9ca9612e458775abdee832baf5c5cbab0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:11:43 +0100 Subject: [PATCH 046/184] Changed: Removed useless commented code --- code/ryzom/client/src/login_patch.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 7377a5832..3d73635f9 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1592,15 +1592,12 @@ void CPatchManager::applyDate (const string &sFilename, uint32 nDate) // change the file time if(nDate != 0) { -// _utimbuf utb; -// utb.actime = utb.modtime = nDate; setRWAccess(sFilename, false); ucstring s = CI18N::get("uiChangeDate") + " " + NLMISC::CFile::getFilename(sFilename) + " " + timestampToHumanReadable(NLMISC::CFile::getFileModificationDate (sFilename)) + " -> " + timestampToHumanReadable(nDate); setState(true,s); if (!NLMISC::CFile::setFileModificationDate(sFilename, nDate)) -// if (_utime (sFilename.c_str (), &utb) == -1) { int err = NLMISC::getLastError(); s = CI18N::get("uiChgDateErr") + " " + CFile::getFilename(sFilename) + " (" + toString(err) + ", " + formatErrorMessage(err) + ")"; From f4136bcdcabcc6bcc5a8be345291a854e4fe5e8f Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:12:55 +0100 Subject: [PATCH 047/184] Music player can now handle unicode filenames and m3u8 playlists, issue #261 --- .../client/src/interface_v3/music_player.cpp | 284 +++++++++--------- 1 file changed, 149 insertions(+), 135 deletions(-) diff --git a/code/ryzom/client/src/interface_v3/music_player.cpp b/code/ryzom/client/src/interface_v3/music_player.cpp index 39aeea825..ece6f0d43 100644 --- a/code/ryzom/client/src/interface_v3/music_player.cpp +++ b/code/ryzom/client/src/interface_v3/music_player.cpp @@ -196,162 +196,176 @@ public: InitMouseWithCursor (true); Driver->showCursor (true); - if (false) //supportUnicode()) + bool oggSupported = false; + bool mp3Supported = false; + + for(uint i = 0; i < extensions.size(); ++i) { + if (extensions[i] == "ogg") + { + oggSupported = true; + } + else if (extensions[i] == "mp3") + { + mp3Supported = true; + } } - else + + std::vector filters; + + // supported formats + filters.push_back("All Supported Files"); // TODO: translate + + std::string filter; + if (mp3Supported) filter += "*.mp3;*.mp2;*.mp1;"; + if (oggSupported) filter += "*.ogg;"; + filter += "*.m3u;*.m3u8"; + + filters.push_back(filter); + + // mp3 format + if (mp3Supported) { - bool oggSupported = false; - bool mp3Supported = false; + filters.push_back("MPEG Audio Files (*.mp3;*.mp2;*.mp1)"); + filters.push_back("*.mp3;*.mp2;*.mp1"); + } - for(uint i = 0; i < extensions.size(); ++i) + // ogg format + if (oggSupported) + { + filters.push_back("Vorbis Files (*.ogg)"); + filters.push_back("*.ogg"); + } + + // playlist + filters.push_back("Playlist Files (*.m3u;*.m3u8)"); + filters.push_back("*.m3u;*.m3u8"); + + // all files + filters.push_back("All Files (*.*)"); + filters.push_back("*.*"); + + filters.push_back(""); + + static wchar_t szFilter[1024] = { '\0' }; + + uint offset = 0; + + for(uint i = 0; i < filters.size(); ++i) + { + wcscpy(szFilter + offset, utf8ToWide(filters[i])); + + // move offset to string length + 1 for \0 + offset += filters[i].length() + 1; + } + + // Filename buffer + wchar_t buffer[1024]; + buffer[0]=0; + + OPENFILENAMEW ofn; + memset (&ofn, 0, sizeof(OPENFILENAME)); + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = Driver ? Driver->getDisplay():NULL; + ofn.hInstance = HInstance; + ofn.lpstrFilter = szFilter; + ofn.nFilterIndex = 0; + ofn.lpstrFile = buffer; + ofn.nMaxFile = sizeof(buffer); + ofn.lpstrTitle = (wchar_t*)NLMISC::CI18N::get("uiPlaySongs").c_str(); + ofn.Flags = OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT|OFN_ENABLESIZING|OFN_EXPLORER; + + if (Driver) + Driver->beginDialogMode(); + + if (GetOpenFileNameW (&ofn)) + { + bool useUtf8 = false; + + // Skip the directory name + const wchar_t *bufferPtr = buffer; + + // Multi filename ? + string path; + if (ofn.nFileOffset>wcslen(buffer)) { - if (extensions[i] == "ogg") - { - oggSupported = true; - } - else if (extensions[i] == "mp3") - { - mp3Supported = true; - } + // Backup the path and point to the next filename + path = wideToUtf8(buffer); + path += "\\"; + bufferPtr += wcslen(bufferPtr)+1; } - std::vector filters; - - // supported formats - filters.push_back("All Supported Files"); - - std::string filter; - if (mp3Supported) filter += "*.mp3;*.mp2;*.mp1;"; - if (oggSupported) filter += "*.ogg;"; - filter += "*.m3u"; - - filters.push_back(filter); - - // mp3 format - if (mp3Supported) + // Get selected files and playlists + std::vector filenames; + std::vector playlists; + while (*bufferPtr) { - filters.push_back("MPEG Audio Files (*.mp3;*.mp2;*.mp1)"); - filters.push_back("*.mp3;*.mp2;*.mp1"); - } - - // ogg format - if (oggSupported) - { - filters.push_back("Vorbis Files (*.ogg)"); - filters.push_back("*.ogg"); - } - - // playlist - filters.push_back("Playlist Files (*.m3u)"); - filters.push_back("*.m3u"); - - // all files - filters.push_back("All Files (*.*)"); - filters.push_back("*.*"); - - filters.push_back(""); - - static char szFilter[1024] = { '\0' }; - - uint offset = 0; - - for(uint i = 0; i < filters.size(); ++i) - { - strcpy(szFilter + offset, filters[i].c_str()); - - // move offset to string length + 1 for \0 - offset += filters[i].length() + 1; - } - - // Filename buffer - char buffer[65535]; - buffer[0]=0; - - OPENFILENAME ofn; - memset (&ofn, 0, sizeof(OPENFILENAME)); - ofn.lStructSize = sizeof(OPENFILENAME); - ofn.hwndOwner = Driver ? Driver->getDisplay():NULL; - ofn.hInstance = HInstance; - ofn.lpstrFilter = szFilter; - ofn.nFilterIndex = 0; - ofn.lpstrFile = buffer; - ofn.nMaxFile = sizeof(buffer); - ofn.lpstrTitle = "Play songs"; - ofn.Flags = OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT|OFN_ENABLESIZING|OFN_EXPLORER; - - if (Driver) - Driver->beginDialogMode(); - - if (GetOpenFileName (&ofn)) - { - // Skip the directory name - const char *bufferPtr = buffer; - - // Multi filename ? - string path; - if (ofn.nFileOffset>strlen(buffer)) + // Concat the directory name with the filename + std::string ext = toLower(CFile::getExtension(wideToUtf8(bufferPtr))); + if (ext == "m3u" || ext == "m3u8") { - // Backup the path and point to the next filename - path = buffer; - path += "\\"; - bufferPtr+=strlen(bufferPtr)+1; + playlists.push_back (path + wideToUtf8(bufferPtr)); + } + else + { + filenames.push_back (path + wideToUtf8(bufferPtr)); } - // Get selected files and playlists - std::vector filenames; - std::vector playlists; - while (*bufferPtr) - { - // Concat the directory name with the filename - if (toLower(CFile::getExtension(bufferPtr)) == "m3u") - playlists.push_back (path+bufferPtr); - else - filenames.push_back (path+bufferPtr); - bufferPtr+=strlen(bufferPtr)+1; - } + bufferPtr += wcslen(bufferPtr) + 1; + } - // Sort songs by filename - sort (filenames.begin(), filenames.end()); + // Sort songs by filename + sort (filenames.begin(), filenames.end()); - // Add playlist - uint i; - for (i=0; i= 3 && memcmp(line, utf8Header, 3) == 0) + useUtf8 = true; + + if (!useUtf8) lineStr = ucstring(line).toUtf8(); + + if (lineStr[0] != '#') + filenames.push_back (CPath::makePathAbsolute(lineStr, basePlaylist)); } + fclose (file); } - - // Build the songs array - std::vector songs; - for (i=0; igetMixer()->getSongTitle(filenames[i], song.Title); - songs.push_back (song); - } - - MusicPlayer.playSongs(songs); } - if (Driver) - Driver->endDialogMode(); + // Build the songs array + std::vector songs; + for (i=0; igetMixer()->getSongTitle(filenames[i], song.Title); + songs.push_back (song); + } + + MusicPlayer.playSongs(songs); } + if (Driver) + Driver->endDialogMode(); + // Restore mouse InitMouseWithCursor (wasHardware); Driver->showCursor (wasHardware); From b2f2c2446e9a3b8e39592f911b74a5371e936554 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:20:49 +0100 Subject: [PATCH 048/184] Changed: Minor changes --- code/nel/src/misc/path.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index c2fbcade1..8490f7655 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -2221,7 +2221,7 @@ uint32 CFile::getFileCreationDate(const std::string &filename) int result = _wstat(utf8ToWide(fn), &buf); #elif defined (NL_OS_UNIX) struct stat buf; - int result = stat (fn.c_str (), &buf); + int result = stat(fn.c_str (), &buf); #endif if (result != 0) return 0; @@ -2386,15 +2386,15 @@ bool CFile::copyFile(const std::string &dest, const std::string &src, bool failI bool CFile::quickFileCompare(const std::string &fileName0, const std::string &fileName1) { // make sure the files both exist - if (!fileExists(fileName0.c_str()) || !fileExists(fileName1.c_str())) + if (!fileExists(fileName0) || !fileExists(fileName1)) return false; // compare time stamps - if (getFileModificationDate(fileName0.c_str()) != getFileModificationDate(fileName1.c_str())) + if (getFileModificationDate(fileName0) != getFileModificationDate(fileName1)) return false; // compare file sizes - if (getFileSize(fileName0.c_str()) != getFileSize(fileName1.c_str())) + if (getFileSize(fileName0) != getFileSize(fileName1)) return false; // everything matched so return true @@ -2404,14 +2404,14 @@ bool CFile::quickFileCompare(const std::string &fileName0, const std::string &fi bool CFile::thoroughFileCompare(const std::string &fileName0, const std::string &fileName1,uint32 maxBufSize) { // make sure the files both exist - if (!fileExists(fileName0.c_str()) || !fileExists(fileName1.c_str())) + if (!fileExists(fileName0) || !fileExists(fileName1)) return false; // setup the size variable from file length of first file - uint32 fileSize=getFileSize(fileName0.c_str()); + uint32 fileSize=getFileSize(fileName0); // compare file sizes - if (fileSize != getFileSize(fileName1.c_str())) + if (fileSize != getFileSize(fileName1)) return false; // allocate a couple of data buffers for our 2 files From 379c8eeb6416f4ea4c901ba2e32d57674db0c0ed Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:21:39 +0100 Subject: [PATCH 049/184] Last changes for Unicode support under Windows, fixes #261 --- code/nel/src/misc/path.cpp | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index 8490f7655..b5375e005 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -1963,7 +1963,14 @@ bool CFile::createEmptyFile (const std::string& filename) bool CFile::fileExists (const string& filename) { //H_AUTO(FileExists); - return ! ! fstream( filename.c_str(), ios::in ); +#ifdef NL_OS_WINDOWS + DWORD attr = GetFileAttributesW(utf8ToWide(filename)); + // attributes are valid and file is not a directory + if (attr == INVALID_FILE_ATTRIBUTES || (attr & FILE_ATTRIBUTE_DIRECTORY)) return false; + return true; +#else + return access(filename.c_str(), R_OK) != -1; +#endif } @@ -2676,7 +2683,10 @@ bool CPath::isAbsolutePath(const std::string &path) bool CFile::setRWAccess(const std::string &filename) { #ifdef NL_OS_WINDOWS - wchar_t *wideFile = utf8ToWide(filename); + ucstring ucFile; + ucFile.fromUtf8(filename); + + wchar_t *wideFile = (wchar_t*)ucFile.c_str(); // if the file exists and there's no write access if (_waccess (wideFile, 00) == 0 && _waccess (wideFile, 06) == -1) @@ -2717,15 +2727,14 @@ bool CFile::setRWAccess(const std::string &filename) return true; } - -#ifdef NL_OS_WINDOWS -#define unlink _unlink -#endif - bool CFile::deleteFile(const std::string &filename) { setRWAccess(filename); - int res = unlink (filename.c_str()); +#ifdef NL_OS_WINDOWS + sint res = _wunlink(utf8ToWide(filename)); +#else + sint res = unlink(filename.c_str()); +#endif if (res == -1) { if (INelContext::getInstance().getAlreadyCreateSharedAmongThreads()) @@ -2737,14 +2746,14 @@ bool CFile::deleteFile(const std::string &filename) return true; } -#ifdef NL_OS_WINDOWS -#define rmdir _rmdir -#endif - bool CFile::deleteDirectory(const std::string &filename) { setRWAccess(filename); - int res = rmdir (filename.c_str()); +#ifdef NL_OS_WINDOWS + sint res = _wrmdir(utf8ToWide(filename)); +#else + sint res = rmdir(filename.c_str()); +#endif if (res == -1) { nlwarning ("PATH: Can't delete directory '%s': (errno %d) %s", filename.c_str(), errno, strerror(errno)); From 0c25d3ecabb1594a7dffba8a34bb8827119d6192 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:25:31 +0100 Subject: [PATCH 050/184] Try to open certificate using cURL callback (allow to load it from BNP and support UTF-8 pathes), issue #261 --- code/ryzom/client/src/http_client_curl.cpp | 70 ++++++++++++++++++++-- 1 file changed, 65 insertions(+), 5 deletions(-) diff --git a/code/ryzom/client/src/http_client_curl.cpp b/code/ryzom/client/src/http_client_curl.cpp index 008bef19a..c8452c02e 100644 --- a/code/ryzom/client/src/http_client_curl.cpp +++ b/code/ryzom/client/src/http_client_curl.cpp @@ -15,9 +15,12 @@ // along with this program. If not, see . #include "stdpch.h" -#include #include "http_client_curl.h" +#include + +#include + using namespace NLMISC; using namespace NLNET; using namespace std; @@ -58,16 +61,73 @@ bool CCurlHttpClient::authenticate(const std::string &user, const std::string &p const char *CAFilename = "ssl_ca_cert.pem"; // this is the certificate "Thawte Server CA" +static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm) +{ + string path = CPath::lookup(CAFilename); + nldebug("Cert path '%s'", path.c_str()); + + CIFile file; + + if (!file.open(CAFilename)) + { + nlwarning("Unable to open %s", CAFilename.c_str()); + return CURLE_SSL_CACERT; + } + + CURLcode res = CURLE_OK; + + std::vector buffer(file.getFileSize()); + file.serialBuffer(&buffer[0], file.getFileSize()); + + // get a BIO + BIO *bio = BIO_new_mem_buf(&buffer[0], file.getFileSize()); + + if (bio) + { + // use it to read the PEM formatted certificate from memory into an X509 + // structure that SSL can use + X509 *cert = NULL; + PEM_read_bio_X509(bio, &cert, 0, NULL); + + if (cert) + { + // get a pointer to the X509 certificate store (which may be empty!) + X509_STORE *store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx); + + // add our certificate to this store + if (X509_STORE_add_cert(store, cert) == 0) + { + nlwarning("Error adding certificate"); + res = CURLE_SSL_CACERT; + } + + // decrease reference counts + X509_free(cert); + } + else + { + nlwarning("PEM_read_bio_X509 failed..."); + res = CURLE_SSL_CACERT; + } + + // decrease reference counts + BIO_free(bio); + } + + // all set to go + return CURLE_OK ; +} + // *************************************************************************** bool CCurlHttpClient::verifyServer(bool verify) { curl_easy_setopt(_Curl, CURLOPT_SSL_VERIFYHOST, verify ? 2 : 0); curl_easy_setopt(_Curl, CURLOPT_SSL_VERIFYPEER, verify ? 1 : 0); curl_easy_setopt(_Curl, CURLOPT_SSLCERTTYPE, "PEM"); - //curl_easy_setopt(_Curl, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function); // would allow to provide the CA in memory instead of using CURLOPT_CAINFO, but needs to include and link OpenSSL - string path = CPath::lookup(CAFilename); - nldebug("cert path '%s'", path.c_str()); - curl_easy_setopt(_Curl, CURLOPT_CAINFO, path.c_str()); + // would allow to provide the CA in memory instead of using CURLOPT_CAINFO, but needs to include and link OpenSSL + curl_easy_setopt(_Curl, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function); + // don't use that anymore, because CA can't be loaded from BNP and doesn't support UTF-8 under Windows + // curl_easy_setopt(_Curl, CURLOPT_CAINFO, path.c_str()); curl_easy_setopt(_Curl, CURLOPT_CAPATH, NULL); return true; } From 7ecc271b5873ab7540571c568de023e3d8e09657 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:26:34 +0100 Subject: [PATCH 051/184] Fixed: Compilation under Linux (thanks Kishan for the patch!), fixes #260 --- .../mission_manager/missions_commands.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp index a23ccab88..c61607e31 100644 --- a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp +++ b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp @@ -40,6 +40,8 @@ #include "creature_manager/creature_manager.h" #include "world_instances.h" +#include "server_share/used_continent.h" +#include "game_share/shard_names.h" using namespace NLMISC; using namespace NLNET; @@ -1013,6 +1015,8 @@ NLMISC_COMMAND(getMoney, "get money of player", "") string value = toString("%"NL_I64"u", c->getMoney()); log.displayNL(value.c_str()); + + return true; } @@ -1025,6 +1029,8 @@ NLMISC_COMMAND(getPvpPoints, "get pvp points of player", "") string value = toString("%u", c->getPvpPoint()); log.displayNL(value.c_str()); + + return true; } //---------------------------------------------------------------------------- @@ -1037,6 +1043,8 @@ NLMISC_COMMAND(getCivCultOrg, "get civ cult and organization of player", "" log.displayNL("%s|%s|%u", PVP_CLAN::toString(allegiance.first).c_str(), PVP_CLAN::toString(allegiance.second).c_str(), c->getOrganization()); + + return true; } From 319fad1555057c5c1e8944091ec28625cf403cad Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:26:43 +0100 Subject: [PATCH 052/184] Changed: Minor changes --- .../mission_manager/missions_commands.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp index c61607e31..f7cd1b6af 100644 --- a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp +++ b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp @@ -1009,7 +1009,6 @@ NLMISC_COMMAND(getTarget, "get target of player", "") //---------------------------------------------------------------------------- NLMISC_COMMAND(getMoney, "get money of player", "") { - GET_ACTIVE_CHARACTER string value = toString("%"NL_I64"u", c->getMoney()); @@ -1023,7 +1022,6 @@ NLMISC_COMMAND(getMoney, "get money of player", "") //---------------------------------------------------------------------------- NLMISC_COMMAND(getPvpPoints, "get pvp points of player", "") { - GET_ACTIVE_CHARACTER string value = toString("%u", c->getPvpPoint()); @@ -1036,7 +1034,6 @@ NLMISC_COMMAND(getPvpPoints, "get pvp points of player", "") //---------------------------------------------------------------------------- NLMISC_COMMAND(getCivCultOrg, "get civ cult and organization of player", "") { - GET_ACTIVE_CHARACTER std::pair allegiance = c->getAllegiance(); From 9dff74badf96ce805e2ee337ce78361b89369d71 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 20 Feb 2016 19:48:13 +0100 Subject: [PATCH 053/184] Changed: Added IG Name Generator by Osquallo (thanks a lot for your amazing work!) --- .../gamedev/interfaces_v3/names_fyros.lua | 295 ++++++++++++++++++ .../gamedev/interfaces_v3/names_matis.lua | 3 + .../gamedev/interfaces_v3/names_tryker.lua | 3 + .../gamedev/interfaces_v3/names_zorai.lua | 5 + .../gamedev/interfaces_v3/out_v2_appear.lua | 240 ++++++++++++++ .../gamedev/interfaces_v3/out_v2_appear.xml | 226 +++++++++++++- 6 files changed, 762 insertions(+), 10 deletions(-) create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua new file mode 100644 index 000000000..fdcca3944 --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua @@ -0,0 +1,295 @@ +fyrosGivenNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" +, "Abycakos", "Abycala", "Abycalaus", "Abycalion", "Abycallo", "Abycalus", "Abycamus", "Abycan", "Abycanix", "Abycaon", "Abycaps" +, "Abycarius", "Abycaron", "Abycaros", "Abycarus", "Abycaseus", "Abycasse", "Abycatheus", "Abycathus", "Abycatis", "Abycaton", "Abycaxius" +, "Abycus", "Abydix", "Abydon", "Abydos", "Abygrian", "Abygribus", "Abygricaon", "Abygricus", "Abygridix", "Abygridon", "Abygridos" +, "Abygriion", "Abygrikos", "Abygrila", "Abygrilaus", "Abygrilion", "Abygrillo", "Abygrilus", "Abygrimus", "Abygrin", "Abygrinix" +, "Abygrips", "Abygririus", "Abygriron", "Abygriros", "Abygrirus", "Abygriseus", "Abygrisse", "Abygritheus", "Abygrithus", "Abygritis" +, "Abygriton", "Abygrixius", "Abyion", "Abykian", "Abykibus", "Abykicaon", "Abykicus", "Abykidix", "Abykidon", "Abykidos", "Abykiion" +, "Abykikos", "Abykila", "Abykilaus", "Abykilion", "Abykillo", "Abykilus", "Abykimus", "Abykin", "Abykinix", "Abykips", "Abykirius" +, "Abykiron", "Abykiros", "Abykirus", "Abykiseus", "Abykisse", "Abykitheus", "Abykithus", "Abykitis", "Abykiton", "Abykixius", "Abykoan" +, "Abykobus", "Abykocaon", "Abykocus", "Abykodix", "Abykodon", "Abykodos", "Abykoion", "Abykokos", "Abykola", "Abykolaus", "Abykolion" +, "Abykollo", "Abykolus", "Abykomus", "Abykon", "Abykonix", "Abykops", "Abykorius", "Abykoron", "Abykoros", "Abykorus", "Abykos" +, "Abykoseus", "Abykosse", "Abykotheus", "Abykothus", "Abykotis", "Abykoton", "Abykoxius", "Abyla", "Abylaus", "Abylion", "Abyllo" +, "Abyloan", "Abylobus", "Abylocaon", "Abylocus", "Abylodix", "Abylodon", "Abylodos", "Abyloion", "Abylokos", "Abylola", "Abylolaus" +, "Abylolion", "Abylollo", "Abylolus", "Abylomus", "Abylon", "Abylonix", "Abylops", "Abylorius", "Abyloron", "Abyloros", "Abylorus" +, "Abyloseus", "Abylosse", "Abylotheus", "Abylothus", "Abylotis", "Abyloton", "Abyloxius", "Abylus", "Abymoan", "Abymobus", "Abymocaon" +, "Abymocus", "Abymodix", "Abymodon", "Abymodos", "Abymoion", "Abymokos", "Abymola", "Abymolaus", "Abymolion", "Abymollo", "Abymolus" +, "Abymomus", "Abymon", "Abymonix", "Abymops", "Abymorius", "Abymoron", "Abymoros", "Abymorus", "Abymoseus", "Abymosse", "Abymotheus" +, "Abymothus", "Abymotis", "Abymoton", "Abymoxius", "Abymus", "Abyn", "Abynaan", "Abynabus", "Abynacaon", "Abynacus", "Abynadix" +, "Abynadon", "Abynados", "Abynaion", "Abynakos", "Abynala", "Abynalaus", "Abynalion", "Abynallo", "Abynalus", "Abynamus", "Abynan" +, "Abynanix", "Abynaps", "Abynarius", "Abynaron", "Abynaros", "Abynarus", "Abynaseus", "Abynasse", "Abynatheus", "Abynathus", "Abynatis" +, "Abynaton", "Abynaxius", "Abynbus", "Abyncaon", "Abyncus", "Abyndix", "Abyndon", "Abyndos", "Abynion", "Abynix", "Abynkos", "Abynla" +, "Abynlaus", "Abynlion", "Abynllo", "Abynlus", "Abynmus", "Abynn", "Abynnix", "Abynps", "Abynrius", "Abynron", "Abynros", "Abynrus" +, "Abynseus", "Abynsse", "Abyntheus", "Abynthus", "Abyntis", "Abynton", "Abynxius", "Abyperian", "Abyperibus", "Abypericaon", "Abypericus" +, "Abyperidix", "Abyperidon", "Abyperidos", "Abyperiion", "Abyperikos", "Abyperila", "Abyperilaus", "Abyperilion", "Abyperillo" +, "Abyperilus", "Abyperimus", "Abyperin", "Abyperinix", "Abyperips", "Abyperirius", "Abyperiron", "Abyperiros", "Abyperirus", "Abyperiseus" +, "Abyperisse", "Abyperitheus", "Abyperithus", "Abyperitis", "Abyperiton", "Abyperixius", "Abyphaan", "Abyphabus", "Abyphacaon", "Abyphacus" +, "Abyphadix", "Abyphadon", "Abyphados", "Abyphaion", "Abyphakos", "Abyphala", "Abyphalaus", "Abyphalion", "Abyphallo", "Abyphalus" +, "Abyphamus", "Abyphan", "Abyphanix", "Abyphaps", "Abypharius", "Abypharon", "Abypharos", "Abypharus", "Abyphaseus", "Abyphasse" +, "Abyphatheus", "Abyphathus", "Abyphatis", "Abyphaton", "Abyphaxius", "Abyphoan", "Abyphobus", "Abyphocaon", "Abyphocus", "Abyphodix" +, "Abyphodon", "Abyphodos", "Abyphoion", "Abyphokos", "Abyphola", "Abypholaus", "Abypholion", "Abyphollo", "Abypholus", "Abyphomus" +, "Abyphon", "Abyphonix", "Abyphops", "Abyphorius", "Abyphoron", "Abyphoros", "Abyphorus", "Abyphoseus", "Abyphosse", "Abyphotheus" +, "Abyphothus", "Abyphotis", "Abyphoton", "Abyphoxius", "Abyphyan", "Abyphybus", "Abyphycaon", "Abyphycus", "Abyphydix", "Abyphydon" +, "Abyphydos", "Abyphyion", "Abyphykos", "Abyphyla", "Abyphylaus", "Abyphylion", "Abyphyllo", "Abyphylus", "Abyphymus", "Abyphyn" +, "Abyphynix", "Abyphyps", "Abyphyrius", "Abyphyron", "Abyphyros", "Abyphyrus", "Abyphyseus", "Abyphysse", "Abyphytheus", "Abyphythus" +, "Abyphytis", "Abyphyton", "Abyphyxius", "Abyps", "Abyraan", "Abyrabus", "Abyracaon", "Abyracus", "Abyradix", "Abyradon", "Abyrados" +, "Abyraion", "Abyrakos", "Abyrala", "Abyralaus", "Abyralion", "Abyrallo", "Abyralus", "Abyramus", "Abyran", "Abyranix", "Abyraps" +, "Abyrarius", "Abyraron", "Abyraros", "Abyrarus", "Abyraseus", "Abyrasse", "Abyratheus", "Abyrathus", "Abyratis", "Abyraton", "Abyraxius" +, "Abyrian", "Abyribus", "Abyricaon", "Abyricus", "Abyridix", "Abyridon", "Abyridos", "Abyriion", "Abyrikos", "Abyrila", "Abyrilaus" +, "Abyrilion", "Abyrillo", "Abyrilus", "Abyrimus", "Abyrin", "Abyrinix", "Abyrips", "Abyririus", "Abyriron", "Abyriros", "Abyrirus" +, "Abyriseus", "Abyrisse", "Abyritheus", "Abyrithus", "Abyritis", "Abyriton", "Abyrius", "Abyrixius", "Abyron", "Abyros", "Abyrus" +, "Abyryaan", "Abyryabus", "Abyryacaon", "Abyryacus", "Abyryadix", "Abyryadon", "Abyryados", "Abyryaion", "Abyryakos", "Abyryala" +, "Abyryalaus", "Abyryalion", "Abyryallo", "Abyryalus", "Abyryamus", "Abyryan", "Abyryanix", "Abyryaps", "Abyryarius", "Abyryaron" +, "Abyryaros", "Abyryarus", "Abyryaseus", "Abyryasse", "Abyryatheus", "Abyryathus", "Abyryatis", "Abyryaton", "Abyryaxius", "Abyseus" +, "Abysse", "Abyssean", "Abyssebus", "Abyssecaon", "Abyssecus", "Abyssedix", "Abyssedon", "Abyssedos", "Abysseion", "Abyssekos" +, "Abyssela", "Abysselaus", "Abysselion", "Abyssello", "Abysselus", "Abyssemus", "Abyssen", "Abyssenix", "Abysseps", "Abysserius" +, "Abysseron", "Abysseros", "Abysserus", "Abysseseus", "Abyssesse", "Abyssetheus", "Abyssethus", "Abyssetis", "Abysseton" +, "Abyssexius", "Abytheus", "Abythus", "Abytis", "Abyton", "Abyxius", "Aean", "Aebus", "Aecaan", "Aecabus", "Aecacaon", "Aecacus" +, "Aecadix", "Aecadon", "Aecados", "Aecaion", "Aecakos", "Aecala", "Aecalaus", "Aecalion", "Aecallo", "Aecalus", "Aecamus", "Aecan" +, "Aecanix", "Aecaon", "Aecaps", "Aecarius", "Aecaron", "Aecaros", "Aecarus", "Aecaseus", "Aecasse", "Aecatheus", "Aecathus", "Aecatis" +, "Aecaton", "Aecaxius", "Aecus", "Aedix", "Aedon", "Aedos", "Aegrian", "Aegribus", "Aegricaon", "Aegricus", "Aegridix", "Aegridon" +, "Aegridos", "Aegriion", "Aegrikos", "Aegrila", "Aegrilaus", "Aegrilion", "Aegrillo", "Aegrilus", "Aegrimus", "Aegrin", "Aegrinix" +, "Aegrips", "Aegririus", "Aegriron", "Aegriros", "Aegrirus", "Aegriseus", "Aegrisse", "Aegritheus", "Aegrithus", "Aegritis", "Aegriton" +, "Aegrixius", "Aeion", "Aekian", "Aekibus", "Aekicaon", "Aekicus", "Aekidix", "Aekidon", "Aekidos", "Aekiion", "Aekikos", "Aekila" +, "Aekilaus", "Aekilion", "Aekillo", "Aekilus", "Aekimus", "Aekin", "Aekinix", "Aekips", "Aekirius", "Aekiron", "Aekiros", "Aekirus" +, "Aekiseus", "Aekisse", "Aekitheus", "Aekithus", "Aekitis", "Aekiton", "Aekixius", "Aekoan", "Aekobus", "Aekocaon", "Aekocus", "Aekodix" +, "Aekodon", "Aekodos", "Aekoion", "Aekokos", "Aekola", "Aekolaus", "Aekolion", "Aekollo", "Aekolus", "Aekomus", "Aekon", "Aekonix", "Aekops" +, "Aekorius", "Aekoron", "Aekoros", "Aekorus", "Aekos", "Aekoseus", "Aekosse", "Aekotheus", "Aekothus", "Aekotis", "Aekoton", "Aekoxius", "Aela" +, "Aelaus", "Aelion", "Aello", "Aeloan", "Aelobus", "Aelocaon", "Aelocus", "Aelodix", "Aelodon", "Aelodos", "Aeloion", "Aelokos", "Aelola" +, "Aelolaus", "Aelolion", "Aelollo", "Aelolus", "Aelomus", "Aelon", "Aelonix", "Aelops", "Aelorius", "Aeloron", "Aeloros", "Aelorus" +, "Aeloseus", "Aelosse", "Aelotheus", "Aelothus", "Aelotis", "Aeloton", "Aeloxius", "Aelus", "Aemoan", "Aemobus", "Aemocaon", "Aemocus" +, "Aemodix", "Aemodon", "Aemodos", "Aemoion", "Aemokos", "Aemola", "Aemolaus", "Aemolion", "Aemollo", "Aemolus", "Aemomus", "Aemon" +, "Aemonix", "Aemops", "Aemorius", "Aemoron", "Aemoros", "Aemorus", "Aemoseus", "Aemosse", "Aemotheus", "Aemothus", "Aemotis", "Aemoton" +, "Aemoxius", "Aemus", "Aen", "Aenaan", "Aenabus", "Aenacaon", "Aenacus", "Aenadix", "Aenadon", "Aenados", "Aenaion", "Aenakos", "Aenala" +, "Aenalaus", "Aenalion", "Aenallo", "Aenalus", "Aenamus", "Aenan", "Aenanix", "Aenaps", "Aenarius", "Aenaron", "Aenaros", "Aenarus" +, "Aenaseus", "Aenasse", "Aenatheus", "Aenathus", "Aenatis", "Aenaton", "Aenaxius", "Aenbus", "Aencaon", "Aencus", "Aendix", "Aendon" +, "Aendos", "Aenion", "Aenix", "Aenkos", "Aenla", "Aenlaus", "Aenlion", "Aenllo", "Aenlus", "Aenmus", "Aenn", "Aennix", "Aenps", "Aenrius" +, "Aenron", "Aenros", "Aenrus", "Aenseus", "Aensse", "Aentheus", "Aenthus", "Aentis", "Aenton", "Aenxius", "Aeperian", "Aeperibus" +, "Aepericaon", "Aepericus", "Aeperidix", "Aeperidon", "Aeperidos", "Aeperiion", "Aeperikos", "Aeperila", "Aeperilaus", "Aeperilion" +, "Aeperillo", "Aeperilus", "Aeperimus", "Aeperin", "Aeperinix", "Aeperips", "Aeperirius", "Aeperiron", "Aeperiros", "Aeperirus" +, "Aeperiseus", "Aeperisse", "Aeperitheus", "Aeperithus", "Aeperitis", "Aeperiton", "Aeperixius", "Aephaan", "Aephabus", "Aephacaon" +, "Aephacus", "Aephadix", "Aephadon", "Aephados", "Aephaion", "Aephakos", "Aephala", "Aephalaus", "Aephalion", "Aephallo", "Aephalus" +, "Aephamus", "Aephan", "Aephanix", "Aephaps", "Aepharius", "Aepharon", "Aepharos", "Aepharus", "Aephaseus", "Aephasse", "Aephatheus" +, "Aephathus", "Aephatis", "Aephaton", "Aephaxius", "Aephoan", "Aephobus", "Aephocaon", "Aephocus", "Aephodix", "Aephodon", "Aephodos" +, "Aephoion", "Aephokos", "Aephola", "Aepholaus", "Aepholion", "Aephollo", "Aepholus", "Aephomus", "Aephon", "Aephonix", "Aephops" +, "Aephorius", "Aephoron", "Aephoros", "Aephorus", "Aephoseus", "Aephosse", "Aephotheus", "Aephothus", "Aephotis", "Aephoton", "Aephoxius" +, "Aephyan", "Aephybus", "Aephycaon", "Aephycus", "Aephydix", "Aephydon", "Aephydos", "Aephyion", "Aephykos", "Aephyla", "Aephylaus" +, "Aephylion", "Aephyllo", "Aephylus", "Aephymus", "Aephyn", "Aephynix", "Aephyps", "Aephyrius", "Aephyron", "Aephyros", "Aephyrus" +, "Aephyseus", "Aephysse", "Aephytheus", "Aephythus", "Aephytis", "Aephyton", "Aephyxius", "Aeps", "Aeraan", "Aerabus", "Aeracaon" +, "Aeracus", "Aeradix", "Aeradon", "Aerados", "Aeraion", "Aerakos", "Aerala", "Aeralaus", "Aeralion", "Aerallo", "Aeralus", "Aeramus" +, "Aeran", "Aeranix", "Aeraps", "Aerarius", "Aeraron", "Aeraros", "Aerarus", "Aeraseus", "Aerasse", "Aeratheus", "Aerathus", "Aeratis" +, "Aeraton", "Aeraxius", "Aerian", "Aeribus", "Aericaon", "Aericus", "Aeridix", "Aeridon", "Aeridos", "Aeriion", "Aerikos", "Aerila" +, "Aerilaus", "Aerilion", "Aerillo", "Aerilus", "Aerimus", "Aerin", "Aerinix", "Aerips", "Aeririus", "Aeriron", "Aeriros", "Aerirus" +, "Aeriseus", "Aerisse", "Aeritheus", "Aerithus", "Aeritis", "Aeriton", "Aerius", "Aerixius", "Aeron", "Aeros", "Aerus", "Aeryaan" +, "Aeryabus", "Aeryacaon", "Aeryacus", "Aeryadix", "Aeryadon", "Aeryados", "Aeryaion", "Aeryakos", "Aeryala", "Aeryalaus", "Aeryalion" +, "Aeryallo", "Aeryalus", "Aeryamus", "Aeryan", "Aeryanix", "Aeryaps", "Aeryarius", "Aeryaron", "Aeryaros", "Aeryarus", "Aeryaseus" +, "Aeryasse", "Aeryatheus", "Aeryathus", "Aeryatis", "Aeryaton", "Aeryaxius", "Aeseus", "Aesse", "Aessean", "Aessebus", "Aessecaon" +, "Aessecus", "Aessedix", "Aessedon", "Aessedos", "Aesseion", "Aessekos", "Aessela", "Aesselaus", "Aesselion", "Aessello", "Aesselus" +, "Aessemus", "Aessen", "Aessenix", "Aesseps", "Aesserius", "Aesseron", "Aesseros", "Aesserus", "Aesseseus", "Aessesse", "Aessetheus" +, "Aessethus", "Aessetis", "Aesseton", "Aessexius", "Aetheus", "Aethus", "Aetis", "Aeton", "Aexius", "Apoan", "Apobus", "Apocaan" +, "Apocabus", "Apocacaon", "Apocacus", "Apocadix", "Apocadon", "Apocados", "Apocaion", "Apocakos", "Apocala", "Apocalaus", "Apocalion" +, "Apocallo", "Apocalus", "Apocamus", "Apocan", "Apocanix", "Apocaon", "Apocaps", "Apocarius", "Apocaron", "Apocaros", "Apocarus" +, "Apocaseus", "Apocasse", "Apocatheus", "Apocathus", "Apocatis", "Apocaton", "Apocaxius", "Apocus", "Apodix", "Apodon", "Apodos" +, "Apogrian", "Apogribus", "Apogricaon", "Apogricus", "Apogridix", "Apogridon", "Apogridos", "Apogriion", "Apogrikos", "Apogrila" +, "Apogrilaus", "Apogrilion", "Apogrillo", "Apogrilus", "Apogrimus", "Apogrin", "Apogrinix", "Apogrips", "Apogririus", "Apogriron" +, "Apogriros", "Apogrirus", "Apogriseus", "Apogrisse", "Apogritheus", "Apogrithus", "Apogritis", "Apogriton", "Apogrixius", "Apoion" +, "Apokian", "Apokibus", "Apokicaon", "Apokicus", "Apokidix", "Apokidon", "Apokidos", "Apokiion", "Apokikos", "Apokila", "Apokilaus" +, "Apokilion", "Apokillo", "Apokilus", "Apokimus", "Apokin", "Apokinix", "Apokips", "Apokirius", "Apokiron", "Apokiros", "Apokirus" +, "Apokiseus", "Apokisse", "Apokitheus", "Apokithus", "Apokitis", "Apokiton", "Apokixius", "Apokoan", "Apokobus", "Apokocaon", "Apokocus" +, "Apokodix", "Apokodon", "Apokodos", "Apokoion", "Apokokos", "Apokola", "Apokolaus", "Apokolion", "Apokollo", "Apokolus", "Apokomus" +, "Apokon", "Apokonix", "Apokops", "Apokorius", "Apokoron", "Apokoros", "Apokorus", "Apokos", "Apokoseus", "Apokosse", "Apokotheus" +, "Apokothus", "Apokotis", "Apokoton", "Apokoxius", "Apola", "Apolaus", "Apolion", "Apollo", "Apoloan", "Apolobus", "Apolocaon", "Apolocus" +, "Apolodix", "Apolodon", "Apolodos", "Apoloion", "Apolokos", "Apolola", "Apololaus", "Apololion", "Apolollo", "Apololus", "Apolomus" +, "Apolon", "Apolonix", "Apolops", "Apolorius", "Apoloron", "Apoloros", "Apolorus", "Apoloseus", "Apolosse", "Apolotheus", "Apolothus" +, "Apolotis", "Apoloton", "Apoloxius", "Apolus", "Apomoan", "Apomobus", "Apomocaon", "Apomocus", "Apomodix", "Apomodon", "Apomodos" +, "Apomoion", "Apomokos", "Apomola", "Apomolaus", "Apomolion", "Apomollo", "Apomolus", "Apomomus", "Apomon", "Apomonix", "Apomops" +, "Apomorius", "Apomoron", "Apomoros", "Apomorus", "Apomoseus", "Apomosse", "Apomotheus", "Apomothus", "Apomotis", "Apomoton", "Apomoxius" +, "Apomus", "Apon", "Aponaan", "Aponabus", "Aponacaon", "Aponacus", "Aponadix", "Aponadon", "Aponados", "Aponaion", "Aponakos", "Aponala" +, "Aponalaus", "Aponalion", "Aponallo", "Aponalus", "Aponamus", "Aponan", "Aponanix", "Aponaps", "Aponarius", "Aponaron", "Aponaros", "Aponarus" +, "Aponaseus", "Aponasse", "Aponatheus", "Aponathus", "Aponatis", "Aponaton", "Aponaxius", "Aponbus", "Aponcaon", "Aponcus", "Apondix" +, "Apondon", "Apondos", "Aponion", "Aponix", "Aponkos", "Aponla", "Aponlaus", "Aponlion", "Aponllo", "Aponlus", "Aponmus", "Aponn", "Aponnix" +, "Aponps", "Aponrius", "Aponron", "Aponros", "Aponrus", "Aponseus", "Aponsse", "Apontheus", "Aponthus", "Apontis", "Aponton", "Aponxius" +, "Apoperian", "Apoperibus", "Apopericaon", "Apopericus", "Apoperidix", "Apoperidon", "Apoperidos", "Apoperiion", "Apoperikos", "Apoperila" +, "Apoperilaus", "Apoperilion", "Apoperillo", "Apoperilus", "Apoperimus", "Apoperin", "Apoperinix", "Apoperips", "Apoperirius", "Apoperiron" +, "Apoperiros", "Apoperirus", "Apoperiseus", "Apoperisse", "Apoperitheus", "Apoperithus", "Apoperitis", "Apoperiton", "Apoperixius", "Apophaan" +, "Apophabus", "Apophacaon", "Apophacus", "Apophadix", "Apophadon", "Apophados", "Apophaion", "Apophakos", "Apophala", "Apophalaus", "Apophalion" +, "Apophallo", "Apophalus", "Apophamus", "Apophan", "Apophanix", "Apophaps", "Apopharius", "Apopharon", "Apopharos", "Apopharus", "Apophaseus" +, "Apophasse", "Apophatheus", "Apophathus", "Apophatis", "Apophaton", "Apophaxius", "Apophoan", "Apophobus", "Apophocaon", "Apophocus" +, "Apophodix", "Apophodon", "Apophodos", "Apophoion", "Apophokos", "Apophola", "Apopholaus", "Apopholion", "Apophollo", "Apopholus" +, "Apophomus", "Apophon", "Apophonix", "Apophops", "Apophorius", "Apophoron", "Apophoros", "Apophorus", "Apophoseus", "Apophosse" +, "Apophotheus", "Apophothus", "Apophotis", "Apophoton", "Apophoxius", "Apophyan", "Apophybus", "Apophycaon", "Apophycus", "Apophydix" +, "Apophydon", "Apophydos", "Apophyion", "Apophykos", "Apophyla", "Apophylaus", "Apophylion", "Apophyllo", "Apophylus", "Apophymus" +, "Apophyn", "Apophynix", "Apophyps", "Apophyrius", "Apophyron", "Apophyros", "Apophyrus", "Apophyseus", "Apophysse", "Apophytheus" +, "Apophythus", "Apophytis", "Apophyton", "Apophyxius", "Apops", "Aporaan", "Aporabus", "Aporacaon", "Aporacus", "Aporadix", "Aporadon" +, "Aporados", "Aporaion", "Aporakos", "Aporala", "Aporalaus", "Aporalion", "Aporallo", "Aporalus", "Aporamus", "Aporan", "Aporanix" +, "Aporaps", "Aporarius", "Aporaron", "Aporaros", "Aporarus", "Aporaseus", "Aporasse", "Aporatheus", "Aporathus", "Aporatis" +, "Aporaton", "Aporaxius", "Aporian", "Aporibus", "Aporicaon", "Aporicus", "Aporidix", "Aporidon", "Aporidos", "Aporiion", "Aporikos" +, "Aporila", "Aporilaus", "Aporilion", "Aporillo", "Aporilus", "Aporimus", "Aporin", "Aporinix", "Aporips", "Aporirius", "Aporiron" +, "Aporiros", "Aporirus", "Aporiseus", "Aporisse", "Aporitheus", "Aporithus", "Aporitis", "Aporiton", "Aporius", "Aporixius", "Aporon" +, "Aporos", "Aporus", "Aporyaan", "Aporyabus", "Aporyacaon", "Aporyacus", "Aporyadix", "Aporyadon", "Aporyados", "Aporyaion", "Aporyakos" +, "Aporyala", "Aporyalaus", "Aporyalion", "Aporyallo", "Aporyalus", "Aporyamus", "Aporyan", "Aporyanix", "Aporyaps", "Aporyarius", "Aporyaron" +, "Aporyaros", "Aporyarus", "Aporyaseus", "Aporyasse", "Aporyatheus", "Aporyathus", "Aporyatis", "Aporyaton", "Aporyaxius", "Aposeus", "Aposse" +, "Apossean", "Apossebus", "Apossecaon", "Apossecus", "Apossedix", "Apossedon", "Apossedos", "Aposseion", "Apossekos", "Apossela", "Aposselaus" +, "Aposselion", "Apossello", "Aposselus", "Apossemus", "Apossen", "Apossenix", "Aposseps", "Aposserius", "Aposseron", "Aposseros", "Aposserus" +, "Aposseseus", "Apossesse", "Apossetheus", "Apossethus", "Apossetis", "Aposseton", "Apossexius", "Apotheus", "Apothus", "Apotis", "Apoton" +, "Apoxius", "Boean", "Boebus", "Boecaan", "Boecabus", "Boecacaon", "Boecacus", "Boecadix", "Boecadon", "Boecados", "Boecaion", "Boecakos" +, "Boecala", "Boecalaus", "Boecalion", "Boecallo", "Boecalus", "Boecamus", "Boecan", "Boecanix", "Boecaon", "Boecaps", "Boecarius", "Boecaron" +, "Boecaros", "Boecarus", "Boecaseus", "Boecasse", "Boecatheus", "Boecathus", "Boecatis", "Boecaton", "Boecaxius", "Boecus", "Boedix", "Boedon" +, "Boedos", "Boegrian", "Boegribus", "Boegricaon", "Boegricus", "Boegridix", "Boegridon", "Boegridos", "Boegriion", "Boegrikos", "Boegrila" +, "Boegrilaus", "Boegrilion", "Boegrillo", "Boegrilus", "Boegrimus", "Boegrin", "Boegrinix", "Boegrips", "Boegririus", "Boegriron", "Boegriros" +, "Boegrirus", "Boegriseus", "Boegrisse", "Boegritheus", "Boegrithus", "Boegritis", "Boegriton", "Boegrixius", "Boeion", "Boekian", "Boekibus" +, "Boekicaon", "Boekicus", "Boekidix", "Boekidon", "Boekidos", "Boekiion", "Boekikos", "Boekila", "Boekilaus", "Boekilion", "Boekillo" +, "Boekilus", "Boekimus", "Boekin", "Boekinix", "Boekips", "Boekirius", "Boekiron", "Boekiros", "Boekirus", "Boekiseus", "Boekisse" +, "Boekitheus", "Boekithus", "Boekitis", "Boekiton", "Boekixius", "Boekoan", "Boekobus", "Boekocaon", "Boekocus", "Boekodix", "Boekodon" +, "Boekodos", "Boekoion", "Boekokos", "Boekola", "Boekolaus", "Boekolion", "Boekollo", "Boekolus", "Boekomus", "Boekon", "Boekonix" +, "Boekops", "Boekorius", "Boekoron", "Boekoros", "Boekorus", "Boekos", "Boekoseus", "Boekosse", "Boekotheus", "Boekothus", "Boekotis" +, "Boekoton", "Boekoxius", "Boela", "Boelaus", "Boelion", "Boello", "Boeloan", "Boelobus", "Boelocaon", "Boelocus", "Boelodix" +, "Boelodon", "Boelodos", "Boeloion", "Boelokos", "Boelola", "Boelolaus", "Boelolion", "Boelollo", "Boelolus", "Boelomus", "Boelon" +, "Boelonix", "Boelops", "Boelorius", "Boeloron", "Boeloros", "Boelorus", "Boeloseus", "Boelosse", "Boelotheus", "Boelothus", "Boelotis" +, "Boeloton", "Boeloxius", "Boelus", "Boemoan", "Boemobus", "Boemocaon", "Boemocus", "Boemodix", "Boemodon", "Boemodos", "Boemoion" +, "Boemokos", "Boemola", "Boemolaus", "Boemolion", "Boemollo", "Boemolus", "Boemomus", "Boemon", "Boemonix", "Boemops", "Boemorius" +, "Boemoron", "Boemoros", "Boemorus", "Boemoseus", "Boemosse", "Boemotheus", "Boemothus", "Boemotis", "Boemoton", "Boemoxius", "Boemus" +, "Boen", "Boenaan", "Boenabus", "Boenacaon", "Boenacus", "Boenadix", "Boenadon", "Boenados", "Boenaion", "Boenakos", "Boenala" +, "Boenalaus", "Boenalion", "Boenallo", "Boenalus", "Boenamus", "Boenan", "Boenanix", "Boenaps", "Boenarius", "Boenaron", "Boenaros" +, "Boenarus", "Boenaseus", "Boenasse", "Boenatheus", "Boenathus", "Boenatis", "Boenaton", "Boenaxius", "Boenbus", "Boencaon", "Boencus" +, "Boendix", "Boendon", "Boendos", "Boenion", "Boenix", "Boenkos", "Boenla", "Boenlaus", "Boenlion", "Boenllo", "Boenlus", "Boenmus" +, "Boenn", "Boennix", "Boenps", "Boenrius", "Boenron", "Boenros", "Boenrus", "Boenseus", "Boensse", "Boentheus", "Boenthus", "Boentis" +, "Boenton", "Boenxius", "Boeperian", "Boeperibus", "Boepericaon", "Boepericus", "Boeperidix", "Boeperidon", "Boeperidos", "Boeperiion" +, "Boeperikos", "Boeperila", "Boeperilaus", "Boeperilion", "Boeperillo", "Boeperilus", "Boeperimus", "Boeperin", "Boeperinix", "Boeperips" +, "Boeperirius", "Boeperiron", "Boeperiros", "Boeperirus", "Boeperiseus", "Boeperisse", "Boeperitheus", "Boeperithus", "Boeperitis" +, "Boeperiton", "Boeperixius", "Boephaan", "Boephabus", "Boephacaon", "Boephacus", "Boephadix", "Boephadon", "Boephados", "Boephaion" +, "Boephakos", "Boephala", "Boephalaus", "Boephalion", "Boephallo", "Boephalus", "Boephamus", "Boephan", "Boephanix", "Boephaps" +, "Boepharius", "Boepharon", "Boepharos", "Boepharus", "Boephaseus", "Boephasse", "Boephatheus", "Boephathus", "Boephatis", "Boephaton" +, "Boephaxius", "Boephoan", "Boephobus", "Boephocaon", "Boephocus", "Boephodix", "Boephodon", "Boephodos", "Boephoion", "Boephokos", "Boephola" +, "Boepholaus", "Boepholion", "Boephollo", "Boepholus", "Boephomus", "Boephon", "Boephonix", "Boephops", "Boephorius", "Boephoron" +, "Boephoros", "Boephorus", "Boephoseus", "Boephosse", "Boephotheus", "Boephothus", "Boephotis", "Boephoton", "Boephoxius", "Boephyan" +, "Boephybus", "Boephycaon", "Boephycus", "Boephydix", "Boephydon", "Boephydos", "Boephyion", "Boephykos", "Boephyla", "Boephylaus" +, "Boephylion", "Boephyllo", "Boephylus", "Boephymus", "Boephyn", "Boephynix", "Boephyps", "Boephyrius", "Boephyron", "Boephyros" +, "Boephyrus", "Boephyseus", "Boephysse", "Boephytheus", "Boephythus", "Boephytis", "Boephyton", "Boephyxius", "Boeps", "Boeraan" +, "Boerabus", "Boeracaon", "Boeracus", "Boeradix", "Boeradon", "Boerados", "Boeraion", "Boerakos", "Boerala", "Boeralaus", "Boeralion" +, "Boerallo", "Boeralus", "Boeramus", "Boeran", "Boeranix", "Boeraps", "Boerarius", "Boeraron", "Boeraros", "Boerarus", "Boeraseus" +, "Boerasse", "Boeratheus", "Boerathus", "Boeratis", "Boeraton", "Boeraxius", "Boerian", "Boeribus", "Boericaon", "Boericus", "Boeridix" +, "Boeridon", "Boeridos", "Boeriion", "Boerikos", "Boerila", "Boerilaus", "Boerilion", "Boerillo", "Boerilus", "Boerimus", "Boerin", "Boerinix" +, "Boerips", "Boeririus", "Boeriron", "Boeriros", "Boerirus", "Boeriseus", "Boerisse", "Boeritheus", "Boerithus", "Boeritis", "Boeriton" +, "Boerius", "Boerixius", "Boeron", "Boeros", "Boerus", "Boeryaan", "Boeryabus", "Boeryacaon", "Boeryacus", "Boeryadix", "Boeryadon", "Boeryados" +, "Boeryaion", "Boeryakos", "Boeryala", "Boeryalaus", "Boeryalion", "Boeryallo", "Boeryalus", "Boeryamus", "Boeryan", "Boeryanix", "Boeryaps" +, "Boeryarius", "Boeryaron", "Boeryaros", "Boeryarus", "Boeryaseus", "Boeryasse", "Boeryatheus", "Boeryathus", "Boeryatis", "Boeryaton" +, "Boeryaxius", "Boeseus", "Boesse", "Boessean", "Boessebus", "Boessecaon", "Boessecus", "Boessedix", "Boessedon", "Boessedos", "Boesseion" +, "Boessekos", "Boessela", "Boesselaus", "Boesselion", "Boessello", "Boesselus", "Boessemus", "Boessen", "Boessenix", "Boesseps", "Boesserius" +, "Boesseron", "Boesseros", "Boesserus", "Boesseseus", "Boessesse", "Boessetheus", "Boessethus", "Boessetis", "Boesseton", "Boessexius" +, "Boetheus", "Boethus", "Boetis", "Boeton", "Boexius", "Cean", "Cebus", "Cecaan", "Cecabus", "Cecacaon", "Cecacus", "Cecadix", "Cecadon" +, "Cecados", "Cecaion", "Cecakos", "Cecala", "Cecalaus", "Cecalion", "Cecallo", "Cecalus", "Cecamus", "Cecan", "Cecanix", "Cecaon", "Cecaps" +, "Cecarius", "Cecaron", "Cecaros", "Cecarus", "Cecaseus", "Cecasse", "Cecatheus", "Cecathus", "Cecatis", "Cecaton", "Cecaxius", "Cecus" +, "Cedix", "Cedon", "Cedos", "Cegrian", "Cegribus", "Cegricaon", "Cegricus", "Cegridix", "Cegridon", "Cegridos", "Cegriion", "Cegrikos" +, "Cegrila", "Cegrilaus", "Cegrilion", "Cegrillo", "Cegrilus", "Cegrimus", "Cegrin", "Cegrinix", "Cegrips", "Cegririus", "Cegriron", "Cegriros" +, "Cegrirus", "Cegriseus", "Cegrisse", "Cegritheus", "Cegrithus", "Cegritis", "Cegriton", "Cegrixius", "Ceion", "Cekian", "Cekibus", "Cekicaon" +, "Cekicus", "Cekidix", "Cekidon", "Cekidos", "Cekiion", "Cekikos", "Cekila", "Cekilaus", "Cekilion", "Cekillo", "Cekilus", "Cekimus", "Cekin" +, "Cekinix", "Cekips", "Cekirius", "Cekiron", "Cekiros", "Cekirus", "Cekiseus", "Cekisse", "Cekitheus", "Cekithus", "Cekitis", "Cekiton" +, "Cekixius", "Cekoan", "Cekobus", "Cekocaon", "Cekocus", "Cekodix", "Cekodon", "Cekodos", "Cekoion", "Cekokos", "Cekola", "Cekolaus" +, "Cekolion", "Cekollo", "Cekolus", "Cekomus", "Cekon", "Cekonix", "Cekops", "Cekorius", "Cekoron", "Cekoros", "Cekorus", "Cekos" +, "Cekoseus", "Cekosse", "Cekotheus", "Cekothus", "Cekotis", "Cekoton", "Cekoxius", "Cela", "Celaus", "Celion", "Cello", "Celoan" +, "Celobus", "Celocaon", "Celocus", "Celodix", "Celodon", "Celodos", "Celoion", "Celokos", "Celola", "Celolaus", "Celolion" +, "Celollo", "Celolus", "Celomus", "Celon", "Celonix", "Celops", "Celorius", "Celoron", "Celoros", "Celorus", "Celoseus", "Celosse" +, "Celotheus", "Celothus", "Celotis", "Celoton", "Celoxius", "Celus", "Cemoan", "Cemobus", "Cemocaon", "Cemocus", "Cemodix", "Cemodon" +, "Cemodos", "Cemoion", "Cemokos", "Cemola", "Cemolaus", "Cemolion", "Cemollo", "Cemolus", "Cemomus", "Cemon", "Cemonix", "Cemops" +, "Cemorius", "Cemoron", "Cemoros", "Cemorus", "Cemoseus", "Cemosse", "Cemotheus", "Cemothus", "Cemotis", "Cemoton", "Cemoxius", "Cemus" +, "Cen", "Cenaan", "Cenabus", "Cenacaon", "Cenacus", "Cenadix", "Cenadon", "Cenados", "Cenaion", "Cenakos", "Cenala", "Cenalaus", "Cenalion" +, "Cenallo", "Cenalus", "Cenamus", "Cenan", "Cenanix", "Cenaps", "Cenarius", "Cenaron", "Cenaros", "Cenarus", "Cenaseus", "Cenasse" +, "Cenatheus", "Cenathus", "Cenatis", "Cenaton", "Cenaxius", "Cenbus", "Cencaon", "Cencus", "Cendix", "Cendon", "Cendos", "Cenion", "Cenix" +, "Cenkos", "Cenla", "Cenlaus", "Cenlion", "Cenllo", "Cenlus", "Cenmus", "Cenn", "Cennix", "Cenps", "Cenrius", "Cenron", "Cenros", "Cenrus" +, "Censeus", "Censse", "Centheus", "Centhus", "Centis", "Centon", "Cenxius", "Ceperian", "Ceperibus", "Cepericaon", "Cepericus", "Ceperidix" +, "Ceperidon", "Ceperidos", "Ceperiion", "Ceperikos", "Ceperila", "Ceperilaus", "Ceperilion", "Ceperillo", "Ceperilus", "Ceperimus", "Ceperin" +, "Ceperinix", "Ceperips", "Ceperirius", "Ceperiron", "Ceperiros", "Ceperirus", "Ceperiseus", "Ceperisse", "Ceperitheus", "Ceperithus" +, "Ceperitis", "Ceperiton", "Ceperixius", "Cephaan", "Cephabus", "Cephacaon", "Cephacus", "Cephadix", "Cephadon", "Cephados", "Cephaion" +, "Cephakos", "Cephala", "Cephalaus", "Cephalion", "Cephallo", "Cephalus", "Cephamus", "Cephan", "Cephanix", "Cephaps", "Cepharius" +, "Cepharon", "Cepharos", "Cepharus", "Cephaseus", "Cephasse", "Cephatheus", "Cephathus", "Cephatis", "Cephaton", "Cephaxius", "Cephoan" +, "Cephobus", "Cephocaon", "Cephocus", "Cephodix", "Cephodon", "Cephodos", "Cephoion", "Cephokos", "Cephola", "Cepholaus", "Cepholion" +, "Cephollo", "Cepholus", "Cephomus", "Cephon", "Cephonix", "Cephops", "Cephorius", "Cephoron", "Cephoros", "Cephorus", "Cephoseus", "Cephosse" +, "Cephotheus", "Cephothus", "Cephotis", "Cephoton", "Cephoxius", "Cephyan", "Cephybus", "Cephycaon", "Cephycus", "Cephydix", "Cephydon" +, "Cephydos", "Cephyion", "Cephykos", "Cephyla", "Cephylaus", "Cephylion", "Cephyllo", "Cephylus", "Cephymus", "Cephyn", "Cephynix", "Cephyps" +, "Cephyrius", "Cephyron", "Cephyros", "Cephyrus", "Cephyseus", "Cephysse", "Cephytheus", "Cephythus", "Cephytis", "Cephyton", "Cephyxius" +, "Ceps", "Ceraan", "Cerabus", "Ceracaon", "Ceracus", "Ceradix", "Ceradon", "Cerados", "Ceraion", "Cerakos", "Cerala", "Ceralaus", "Ceralion" +, "Cerallo", "Ceralus", "Ceramus", "Ceran", "Ceranix", "Ceraps", "Cerarius", "Ceraron", "Ceraros", "Cerarus", "Ceraseus", "Cerasse", "Ceratheus" +, "Cerathus", "Ceratis", "Ceraton", "Ceraxius", "Cerian", "Ceribus", "Cericaon", "Cericus", "Ceridix", "Ceridon", "Ceridos", "Ceriion", "Cerikos" +, "Cerila", "Cerilaus", "Cerilion", "Cerillo", "Cerilus", "Cerimus", "Cerin", "Cerinix", "Cerips", "Ceririus", "Ceriron", "Ceriros", "Cerirus" +, "Ceriseus", "Cerisse", "Ceritheus", "Cerithus", "Ceritis", "Ceriton", "Cerius", "Cerixius", "Ceron", "Ceros", "Cerus", "Ceryaan", "Ceryabus" +, "Ceryacaon", "Ceryacus", "Ceryadix", "Ceryadon", "Ceryados", "Ceryaion", "Ceryakos", "Ceryala", "Ceryalaus", "Ceryalion", "Ceryallo" +, "Ceryalus", "Ceryamus", "Ceryan", "Ceryanix", "Ceryaps", "Ceryarius", "Ceryaron", "Ceryaros", "Ceryarus", "Ceryaseus", "Ceryasse", "Ceryatheus" +, "Ceryathus", "Ceryatis", "Ceryaton", "Ceryaxius", "Ceseus", "Cesse", "Cessean", "Cessebus", "Cessecaon", "Cessecus", "Cessedix", "Cessedon" +, "Cessedos", "Cesseion", "Cessekos", "Cessela", "Cesselaus", "Cesselion", "Cessello", "Cesselus", "Cessemus", "Cessen", "Cessenix", "Cesseps" +, "Cesserius", "Cesseron", "Cesseros", "Cesserus", "Cesseseus", "Cessesse", "Cessetheus", "Cessethus", "Cessetis", "Cesseton", "Cessexius" +, "Cetheus", "Cethus", "Cetis", "Ceton", "Cexius", "Dean", "Debus", "Decaan", "Decabus", "Decacaon", "Decacus", "Decadix", "Decadon", "Decados" +, "Decaion", "Decakos", "Decala", "Decalaus", "Decalion", "Decallo", "Decalus", "Decamus", "Decan", "Decanix", "Decaon", "Decaps", "Decarius" +, "Decaron", "Decaros", "Decarus", "Decaseus", "Decasse", "Decatheus", "Decathus", "Decatis", "Decaton", "Decaxius", "Decus", "Dedix", "Dedon" +, "Dedos", "Degrian", "Degribus", "Degricaon", "Degricus", "Degridix", "Degridon", "Degridos", "Degriion", "Degrikos", "Degrila", "Degrilaus" +, "Degrilion", "Degrillo", "Degrilus", "Degrimus", "Degrin", "Degrinix", "Degrips", "Degririus", "Degriron", "Degriros", "Degrirus", "Degriseus" +, "Degrisse", "Degritheus", "Degrithus", "Degritis", "Degriton", "Degrixius", "Deion", "Dekian", "Dekibus", "Dekicaon", "Dekicus", "Dekidix" +, "Dekidon", "Dekidos", "Dekiion", "Dekikos", "Dekila", "Dekilaus", "Dekilion", "Dekillo", "Dekilus", "Dekimus", "Dekin", "Dekinix", "Dekips" +, "Dekirius", "Dekiron", "Dekiros", "Dekirus", "Dekiseus", "Dekisse", "Dekitheus", "Dekithus", "Dekitis", "Dekiton", "Dekixius", "Dekoan" +, "Dekobus", "Dekocaon", "Dekocus", "Dekodix", "Dekodon", "Dekodos", "Dekoion", "Dekokos", "Dekola", "Dekolaus", "Dekolion", "Dekollo", "Dekolus" +, "Dekomus", "Dekon", "Dekonix", "Dekops", "Dekorius", "Dekoron", "Dekoros", "Dekorus", "Dekos", "Dekoseus", "Dekosse", "Dekotheus", "Dekothus" +, "Dekotis", "Dekoton", "Dekoxius", "Dela", "Delaus", "Delion", "Dello", "Deloan", "Delobus", "Delocaon", "Delocus", "Delodix", "Delodon" +, "Delodos", "Deloion", "Delokos", "Delola", "Delolaus", "Delolion", "Delollo", "Delolus", "Delomus", "Delon", "Delonix", "Delops", "Delorius" +, "Deloron", "Deloros", "Delorus", "Deloseus", "Delosse", "Delotheus", "Delothus", "Delotis", "Deloton", "Deloxius", "Delus", "Demoan" +, "Demobus", "Democaon", "Democus", "Demodix", "Demodon", "Demodos", "Demoion", "Demokos", "Demola", "Demolaus", "Demolion", "Demollo" +, "Demolus", "Demomus", "Demon", "Demonix", "Demops", "Demorius", "Demoron", "Demoros", "Demorus", "Demoseus", "Demosse", "Demotheus" +, "Demothus", "Demotis", "Demoton", "Demoxius", "Demus", "Den", "Denaan", "Denabus", "Denacaon", "Denacus", "Denadix", "Denadon", "Denados" +, "Denaion", "Denakos", "Denala", "Denalaus", "Denalion", "Denallo", "Denalus", "Denamus", "Denan", "Denanix", "Denaps", "Denarius", "Denaron" +, "Denaros", "Denarus", "Denaseus", "Denasse", "Denatheus", "Denathus", "Denatis", "Denaton", "Denaxius", "Denbus", "Dencaon", "Dencus", "Dendix" +, "Dendon", "Dendos", "Denion", "Denix", "Denkos", "Denla", "Denlaus", "Denlion", "Denllo", "Denlus", "Denmus", "Denn", "Dennix", "Denps" +, "Denrius", "Denron", "Denros", "Denrus", "Denseus", "Densse", "Dentheus", "Denthus", "Dentis", "Denton", "Denxius", "Deperian", "Deperibus" +, "Depericaon", "Depericus", "Deperidix", "Deperidon", "Deperidos", "Deperiion", "Deperikos", "Deperila", "Deperilaus", "Deperilion", "Deperillo" +, "Deperilus", "Deperimus", "Deperin", "Deperinix", "Deperips", "Deperirius", "Deperiron", "Deperiros", "Deperirus", "Deperiseus", "Deperisse" +, "Deperitheus", "Deperithus", "Deperitis", "Deperiton", "Deperixius", "Dephaan", "Dephabus", "Dephacaon", "Dephacus", "Dephadix", "Dephadon" +, "Dephados", "Dephaion", "Dephakos", "Dephala", "Dephalaus", "Dephalion", "Dephallo", "Dephalus", "Dephamus", "Dephan", "Dephanix", "Dephaps" +, "Depharius", "Depharon", "Depharos", "Depharus", "Dephaseus", "Dephasse", "Dephatheus", "Dephathus", "Dephatis", "Dephaton", "Dephaxius" +, "Dephoan", "Dephobus", "Dephocaon", "Dephocus", "Dephodix", "Dephodon", "Dephodos", "Dephoion", "Dephokos", "Dephola", "Depholaus", "Depholion" +, "Dephollo", "Depholus", "Dephomus", "Dephon", "Dephonix", "Dephops", "Dephorius", "Dephoron", "Dephoros", "Dephorus", "Dephoseus", "Dephosse" +, "Dephotheus", "Dephothus", "Dephotis", "Dephoton", "Dephoxius", "Dephyan", "Dephybus", "Dephycaon", "Dephycus", "Dephydix", "Dephydon" +, "Dephydos", "Dephyion", "Dephykos", "Dephyla", "Dephylaus", "Dephylion", "Dephyllo", "Dephylus", "Dephymus", "Dephyn", "Dephynix", "Dephyps" +, "Dephyrius", "Dephyron", "Dephyros", "Dephyrus", "Dephyseus", "Dephysse", "Dephytheus", "Dephythus", "Dephytis", "Dephyton", "Dephyxius" +, "Deps", "Deraan", "Derabus", "Deracaon", "Deracus", "Deradix", "Deradon", "Derados", "Deraion", "Derakos", "Derala", "Deralaus", "Deralion" +, "Derallo", "Deralus", "Deramus", "Deran", "Deranix", "Deraps", "Derarius", "Deraron", "Deraros", "Derarus", "Deraseus", "Derasse" +, "Deratheus", "Derathus", "Deratis", "Deraton", "Deraxius", "Derian", "Deribus", "Dericaon", "Dericus", "Deridix", "Deridon", "Deridos" +, "Deriion", "Derikos", "Derila", "Derilaus", "Derilion", "Derillo", "Derilus", "Derimus", "Derin", "Derinix", "Derips", "Deririus", "Deriron" +, "Deriros", "Derirus", "Deriseus", "Derisse", "Deritheus", "Derithus", "Deritis", "Deriton", "Derius", "Derixius", "Deron", "Deros", "Derus" +, "Deryaan", "Deryabus", "Deryacaon", "Deryacus", "Deryadix", "Deryadon", "Deryados", "Deryaion", "Deryakos", "Deryala", "Deryalaus" +, "Deryalion", "Deryallo", "Deryalus", "Deryamus", "Deryan", "Deryanix", "Deryaps", "Deryarius", "Deryaron", "Deryaros", "Deryarus" +, "Deryaseus", "Deryasse", "Deryatheus", "Deryathus", "Deryatis", "Deryaton", "Deryaxius", "Deseus", "Desse", "Dessean", "Dessebus" +, "Dessecaon", "Dessecus", "Dessedix", "Dessedon", "Dessedos", "Desseion", "Dessekos", "Dessela", "Desselaus", "Desselion", "Dessello" +, "Desselus", "Dessemus", "Dessen", "Dessenix", "Desseps", "Desserius", "Desseron", "Desseros", "Desserus", "Desseseus", "Dessesse", "Dessetheus" +, "Dessethus", "Dessetis", "Desseton", "Dessexius", "Detheus", "Dethus", "Detis", "Deton", "Deuan", "Deubus", "Deucaan", "Deucabus", "Deucacaon" +, "Deucacus", "Deucadix", "Deucadon", "Deucados", "Deucaion", "Deucakos", "Deucala", "Deucalaus", "Deucalion", "Deucallo", "Deucalus", "Deucamus" +, "Deucan", "Deucanix", "Deucaon", "Deucaps", "Deucarius", "Deucaron", "Deucaros", "Deucarus", "Deucaseus", "Deucasse", "Deucatheus", "Deucathus" +, "Deucatis", "Deucaton", "Deucaxius", "Deucus", "Deudix", "Deudon", "Deudos", "Deugrian", "Deugribus", "Deugricaon", "Deugricus", "Deugridix" +, "Deugridon", "Deugridos", "Deugriion", "Deugrikos", "Deugrila", "Deugrilaus", "Deugrilion", "Deugrillo", "Deugrilus", "Deugrimus", "Deugrin" +, "Deugrinix", "Deugrips", "Deugririus", "Deugriron", "Deugriros", "Deugrirus", "Deugriseus", "Deugrisse", "Deugritheus", "Deugrithus" +, "Deugritis", "Deugriton", "Deugrixius", "Deuion", "Deukian", "Deukibus", "Deukicaon", "Deukicus", "Deukidix", "Deukidon", "Deukidos" +, "Deukiion", "Deukikos", "Deukila", "Deukilaus", "Deukilion", "Deukillo", "Deukilus", "Deukimus", "Deukin", "Deukinix", "Deukips", "Deukirius" +, "Deukiron", "Deukiros", "Deukirus", "Deukiseus", "Deukisse", "Deukitheus", "Deukithus", "Deukitis", "Deukiton", "Deukixius", "Deukoan" +, "Deukobus", "Deukocaon", "Deukocus", "Deukodix", "Deukodon", "Deukodos", "Deukoion", "Deukokos", "Deukola", "Deukolaus", "Deukolion" +, "Deukollo", "Deukolus", "Deukomus", "Deukon", "Deukonix", "Deukops", "Deukorius", "Deukoron", "Deukoros", "Deukorus", "Deukos", "Deukoseus" +, "Deukosse", "Deukotheus", "Deukothus", "Deukotis", "Deukoton", "Deukoxius", "Deula", "Deulaus", "Deulion", "Deullo", "Deuloan", "Deulobus" +, "Deulocaon", "Deulocus", "Deulodix", "Deulodon", "Deulodos", "Deuloion", "Deulokos", "Deulola", "Deulolaus", "Deulolion", "Deulollo" +, "Deulolus", "Deulomus", "Deulon", "Deulonix", "Deulops", "Deulorius", "Deuloron", "Deuloros", "Deulorus", "Deuloseus", "Deulosse" +, "Deulotheus", "Deulothus", "Deulotis", "Deuloton", "Deuloxius", "Deulus", "Deumoan", "Deumobus", "Deumocaon", "Deumocus", "Deumodix" +, "Deumodon", "Deumodos", "Deumoion", "Deumokos", "Deumola", "Deumolaus", "Deumolion", "Deumollo", "Deumolus", "Deumomus", "Deumon", "Deumonix" +, "Deumops", "Deumorius", "Deumoron", "Deumoros", "Deumorus", "Deumoseus", "Deumosse", "Deumotheus", "Deumothus", "Deumotis", "Deumoton" +, "Deumoxius", "Deumus", "Deun", "Deunaan", "Deunabus", "Deunacaon", "Deunacus", "Deunadix", "Deunadon", "Deunados", "Deunaion", "Deunakos" +, "Deunala", "Deunalaus", "Deunalion", "Deunallo", "Deunalus", "Deunamus", "Deunan", "Deunanix", "Deunaps", "Deunarius", "Deunaron", "Deunaros" +, "Deunarus", "Deunaseus", "Deunasse", "Deunatheus", "Deunathus", "Deunatis", "Deunaton", "Deunaxius", "Deunbus", "Deuncaon", "Deuncus" +, "Deundix", "Deundon", "Deundos", "Deunion", "Deunix", "Deunkos", "Deunla", "Deunlaus", "Deunlion", "Deunllo", "Deunlus", "Deunmus", "Deunn" +, "Deunnix", "Deunps", "Deunrius", "Deunron", "Deunros", "Deunrus", "Deunseus", "Deunsse", "Deuntheus", "Deunthus", "Deuntis", "Deunton" +, "Deunxius", "Deuperian", "Deuperibus", "Deupericaon", "Deupericus", "Deuperidix", "Deuperidon", "Deuperidos", "Deuperiion", "Deuperikos", "Deuperila", "Deuperilaus", "Deuperilion", "Deuperillo", "Deuperilus", "Deuperimus", "Deuperin", "Deuperinix", "Deuperips", "Deuperirius", "Deuperiron", "Deuperiros", "Deuperirus", "Deuperiseus", "Deuperisse", "Deuperitheus", "Deuperithus", "Deuperitis", "Deuperiton", "Deuperixius", "Deuphaan", "Deuphabus", "Deuphacaon", "Deuphacus", "Deuphadix", "Deuphadon", "Deuphados", "Deuphaion", "Deuphakos", "Deuphala", "Deuphalaus", "Deuphalion", "Deuphallo", "Deuphalus", "Deuphamus", "Deuphan", "Deuphanix", "Deuphaps", "Deupharius", "Deupharon", "Deupharos", "Deupharus", "Deuphaseus", "Deuphasse", "Deuphatheus", "Deuphathus", "Deuphatis", "Deuphaton", "Deuphaxius", "Deuphoan", "Deuphobus", "Deuphocaon", "Deuphocus", "Deuphodix", "Deuphodon", "Deuphodos", "Deuphoion", "Deuphokos", "Deuphola", "Deupholaus", "Deupholion", "Deuphollo", "Deupholus", "Deuphomus", "Deuphon", "Deuphonix", "Deuphops", "Deuphorius", "Deuphoron", "Deuphoros", "Deuphorus", "Deuphoseus", "Deuphosse", "Deuphotheus", "Deuphothus", "Deuphotis", "Deuphoton", "Deuphoxius", "Deuphyan", "Deuphybus", "Deuphycaon", "Deuphycus", "Deuphydix", "Deuphydon", "Deuphydos", "Deuphyion", "Deuphykos", "Deuphyla", "Deuphylaus", "Deuphylion", "Deuphyllo", "Deuphylus", "Deuphymus", "Deuphyn", "Deuphynix", "Deuphyps", "Deuphyrius", "Deuphyron", "Deuphyros", "Deuphyrus", "Deuphyseus", "Deuphysse", "Deuphytheus", "Deuphythus", "Deuphytis", "Deuphyton", "Deuphyxius", "Deups", "Deuraan", "Deurabus", "Deuracaon", "Deuracus", "Deuradix", "Deuradon", "Deurados", "Deuraion", "Deurakos", "Deurala", "Deuralaus", "Deuralion", "Deurallo", "Deuralus", "Deuramus", "Deuran", "Deuranix", "Deuraps", "Deurarius", "Deuraron", "Deuraros", "Deurarus", "Deuraseus", "Deurasse", "Deuratheus", "Deurathus", "Deuratis", "Deuraton", "Deuraxius", "Deurian", "Deuribus", "Deuricaon", "Deuricus", "Deuridix", "Deuridon", "Deuridos", "Deuriion", "Deurikos", "Deurila", "Deurilaus", "Deurilion", "Deurillo", "Deurilus", "Deurimus", "Deurin", "Deurinix", "Deurips", "Deuririus", "Deuriron", "Deuriros", "Deurirus", "Deuriseus", "Deurisse", "Deuritheus", "Deurithus", "Deuritis", "Deuriton", "Deurius", "Deurixius", "Deuron", "Deuros", "Deurus", "Deuryaan", "Deuryabus", "Deuryacaon", "Deuryacus", "Deuryadix", "Deuryadon", "Deuryados", "Deuryaion", "Deuryakos", "Deuryala", "Deuryalaus", "Deuryalion", "Deuryallo", "Deuryalus", "Deuryamus", "Deuryan", "Deuryanix", "Deuryaps", "Deuryarius", "Deuryaron", "Deuryaros", "Deuryarus", "Deuryaseus", "Deuryasse", "Deuryatheus", "Deuryathus", "Deuryatis", "Deuryaton", "Deuryaxius", "Deuseus", "Deusse", "Deussean", "Deussebus", "Deussecaon", "Deussecus", "Deussedix", "Deussedon", "Deussedos", "Deusseion", "Deussekos", "Deussela", "Deusselaus", "Deusselion", "Deussello", "Deusselus", "Deussemus", "Deussen", "Deussenix", "Deusseps", "Deusserius", "Deusseron", "Deusseros", "Deusserus", "Deusseseus", "Deussesse", "Deussetheus", "Deussethus", "Deussetis", "Deusseton", "Deussexius", "Deutheus", "Deuthus", "Deutis", "Deuton", "Deuxius", "Dexius", "Dioan", "Diobus", "Diocaan", "Diocabus", "Diocacaon", "Diocacus", "Diocadix", "Diocadon", "Diocados", "Diocaion", "Diocakos", "Diocala", "Diocalaus", "Diocalion", "Diocallo", "Diocalus", "Diocamus", "Diocan", "Diocanix", "Diocaon", "Diocaps", "Diocarius", "Diocaron", "Diocaros", "Diocarus", "Diocaseus", "Diocasse", "Diocatheus", "Diocathus", "Diocatis", "Diocaton", "Diocaxius", "Diocus", "Diodix", "Diodon", "Diodos", "Diogrian", "Diogribus", "Diogricaon", "Diogricus", "Diogridix", "Diogridon", "Diogridos", "Diogriion", "Diogrikos", "Diogrila", "Diogrilaus", "Diogrilion", "Diogrillo", "Diogrilus", "Diogrimus", "Diogrin", "Diogrinix", "Diogrips", "Diogririus", "Diogriron", "Diogriros", "Diogrirus", "Diogriseus", "Diogrisse", "Diogritheus", "Diogrithus", "Diogritis", "Diogriton", "Diogrixius", "Dioion", "Diokian", "Diokibus", "Diokicaon", "Diokicus", "Diokidix", "Diokidon", "Diokidos", "Diokiion", "Diokikos", "Diokila", "Diokilaus", "Diokilion", "Diokillo", "Diokilus", "Diokimus", "Diokin", "Diokinix", "Diokips", "Diokirius", "Diokiron", "Diokiros", "Diokirus", "Diokiseus", "Diokisse", "Diokitheus", "Diokithus", "Diokitis", "Diokiton", "Diokixius", "Diokoan", "Diokobus", "Diokocaon", "Diokocus", "Diokodix", "Diokodon", "Diokodos", "Diokoion", "Diokokos", "Diokola", "Diokolaus", "Diokolion", "Diokollo", "Diokolus", "Diokomus", "Diokon", "Diokonix", "Diokops", "Diokorius", "Diokoron", "Diokoros", "Diokorus", "Diokos", "Diokoseus", "Diokosse", "Diokotheus", "Diokothus", "Diokotis", "Diokoton", "Diokoxius", "Diola", "Diolaus", "Diolion", "Diollo", "Dioloan", "Diolobus", "Diolocaon", "Diolocus", "Diolodix", "Diolodon", "Diolodos", "Dioloion", "Diolokos", "Diolola", "Diololaus", "Diololion", "Diolollo", "Diololus", "Diolomus", "Diolon", "Diolonix", "Diolops", "Diolorius", "Dioloron", "Dioloros", "Diolorus", "Dioloseus", "Diolosse", "Diolotheus", "Diolothus", "Diolotis", "Dioloton", "Dioloxius", "Diolus", "Diomoan", "Diomobus", "Diomocaon", "Diomocus", "Diomodix", "Diomodon", "Diomodos", "Diomoion", "Diomokos", "Diomola", "Diomolaus", "Diomolion", "Diomollo", "Diomolus", "Diomomus", "Diomon", "Diomonix", "Diomops", "Diomorius", "Diomoron", "Diomoros", "Diomorus", "Diomoseus", "Diomosse", "Diomotheus", "Diomothus", "Diomotis", "Diomoton", "Diomoxius", "Diomus", "Dion", "Dionaan", "Dionabus", "Dionacaon", "Dionacus", "Dionadix", "Dionadon", "Dionados", "Dionaion", "Dionakos", "Dionala", "Dionalaus", "Dionalion", "Dionallo", "Dionalus", "Dionamus", "Dionan", "Dionanix", "Dionaps", "Dionarius", "Dionaron", "Dionaros", "Dionarus", "Dionaseus", "Dionasse", "Dionatheus", "Dionathus", "Dionatis", "Dionaton", "Dionaxius", "Dionbus", "Dioncaon", "Dioncus", "Diondix", "Diondon", "Diondos", "Dionion", "Dionix", "Dionkos", "Dionla", "Dionlaus", "Dionlion", "Dionllo", "Dionlus", "Dionmus", "Dionn", "Dionnix", "Dionps", "Dionrius", "Dionron", "Dionros", "Dionrus", "Dionseus", "Dionsse", "Diontheus", "Dionthus", "Diontis", "Dionton", "Dionxius", "Dioperian", "Dioperibus", "Diopericaon", "Diopericus", "Dioperidix", "Dioperidon", "Dioperidos", "Dioperiion", "Dioperikos", "Dioperila", "Dioperilaus", "Dioperilion", "Dioperillo", "Dioperilus", "Dioperimus", "Dioperin", "Dioperinix", "Dioperips", "Dioperirius", "Dioperiron", "Dioperiros", "Dioperirus", "Dioperiseus", "Dioperisse", "Dioperitheus", "Dioperithus", "Dioperitis", "Dioperiton", "Dioperixius", "Diophaan", "Diophabus", "Diophacaon", "Diophacus", "Diophadix", "Diophadon", "Diophados", "Diophaion", "Diophakos", "Diophala", "Diophalaus", "Diophalion", "Diophallo", "Diophalus", "Diophamus", "Diophan", "Diophanix", "Diophaps", "Diopharius", "Diopharon", "Diopharos", "Diopharus", "Diophaseus", "Diophasse", "Diophatheus", "Diophathus", "Diophatis", "Diophaton", "Diophaxius", "Diophoan", "Diophobus", "Diophocaon", "Diophocus", "Diophodix", "Diophodon", "Diophodos", "Diophoion", "Diophokos", "Diophola", "Diopholaus", "Diopholion", "Diophollo", "Diopholus", "Diophomus", "Diophon", "Diophonix", "Diophops", "Diophorius", "Diophoron", "Diophoros", "Diophorus", "Diophoseus", "Diophosse", "Diophotheus", "Diophothus", "Diophotis", "Diophoton", "Diophoxius", "Diophyan", "Diophybus", "Diophycaon", "Diophycus", "Diophydix", "Diophydon", "Diophydos", "Diophyion", "Diophykos", "Diophyla", "Diophylaus", "Diophylion", "Diophyllo", "Diophylus", "Diophymus", "Diophyn", "Diophynix", "Diophyps", "Diophyrius", "Diophyron", "Diophyros", "Diophyrus", "Diophyseus", "Diophysse", "Diophytheus", "Diophythus", "Diophytis", "Diophyton", "Diophyxius", "Diops", "Dioraan", "Diorabus", "Dioracaon", "Dioracus", "Dioradix", "Dioradon", "Diorados", "Dioraion", "Diorakos", "Diorala", "Dioralaus", "Dioralion", "Diorallo", "Dioralus", "Dioramus", "Dioran", "Dioranix", "Dioraps", "Diorarius", "Dioraron", "Dioraros", "Diorarus", "Dioraseus", "Diorasse", "Dioratheus", "Diorathus", "Dioratis", "Dioraton", "Dioraxius", "Diorian", "Dioribus", "Dioricaon", "Dioricus", "Dioridix", "Dioridon", "Dioridos", "Dioriion", "Diorikos", "Diorila", "Diorilaus", "Diorilion", "Diorillo", "Diorilus", "Diorimus", "Diorin", "Diorinix", "Diorips", "Dioririus", "Dioriron", "Dioriros", "Diorirus", "Dioriseus", "Diorisse", "Dioritheus", "Diorithus", "Dioritis", "Dioriton", "Diorius", "Diorixius", "Dioron", "Dioros", "Diorus", "Dioryaan", "Dioryabus", "Dioryacaon", "Dioryacus", "Dioryadix", "Dioryadon", "Dioryados", "Dioryaion", "Dioryakos", "Dioryala", "Dioryalaus", "Dioryalion", "Dioryallo", "Dioryalus", "Dioryamus", "Dioryan", "Dioryanix", "Dioryaps", "Dioryarius", "Dioryaron", "Dioryaros", "Dioryarus", "Dioryaseus", "Dioryasse", "Dioryatheus", "Dioryathus", "Dioryatis", "Dioryaton", "Dioryaxius", "Dioseus", "Diosse", "Diossean", "Diossebus", "Diossecaon", "Diossecus", "Diossedix", "Diossedon", "Diossedos", "Diosseion", "Diossekos", "Diossela", "Diosselaus", "Diosselion", "Diossello", "Diosselus", "Diossemus", "Diossen", "Diossenix", "Diosseps", "Diosserius", "Diosseron", "Diosseros", "Diosserus", "Diosseseus", "Diossesse", "Diossetheus", "Diossethus", "Diossetis", "Diosseton", "Diossexius", "Diotheus", "Diothus", "Diotis", "Dioton", "Dioxius", "Dyan", "Dybus", "Dycaan", "Dycabus", "Dycacaon", "Dycacus", "Dycadix", "Dycadon", "Dycados", "Dycaion", "Dycakos", "Dycala", "Dycalaus", "Dycalion", "Dycallo", "Dycalus", "Dycamus", "Dycan", "Dycanix", "Dycaon", "Dycaps", "Dycarius", "Dycaron", "Dycaros", "Dycarus", "Dycaseus", "Dycasse", "Dycatheus", "Dycathus", "Dycatis", "Dycaton", "Dycaxius", "Dycus", "Dydix", "Dydon", "Dydos", "Dygrian", "Dygribus", "Dygricaon", "Dygricus", "Dygridix", "Dygridon", "Dygridos", "Dygriion", "Dygrikos", "Dygrila", "Dygrilaus", "Dygrilion", "Dygrillo", "Dygrilus", "Dygrimus", "Dygrin", "Dygrinix", "Dygrips", "Dygririus", "Dygriron", "Dygriros", "Dygrirus", "Dygriseus", "Dygrisse", "Dygritheus", "Dygrithus", "Dygritis", "Dygriton", "Dygrixius", "Dyion", "Dykian", "Dykibus", "Dykicaon", "Dykicus", "Dykidix", "Dykidon", "Dykidos", "Dykiion", "Dykikos", "Dykila", "Dykilaus", "Dykilion", "Dykillo", "Dykilus", "Dykimus", "Dykin", "Dykinix", "Dykips", "Dykirius", "Dykiron", "Dykiros", "Dykirus", "Dykiseus", "Dykisse", "Dykitheus", "Dykithus", "Dykitis", "Dykiton", "Dykixius", "Dykoan", "Dykobus", "Dykocaon", "Dykocus", "Dykodix", "Dykodon", "Dykodos", "Dykoion", "Dykokos", "Dykola", "Dykolaus", "Dykolion", "Dykollo", "Dykolus", "Dykomus", "Dykon", "Dykonix", "Dykops", "Dykorius", "Dykoron", "Dykoros", "Dykorus", "Dykos", "Dykoseus", "Dykosse", "Dykotheus", "Dykothus", "Dykotis", "Dykoton", "Dykoxius", "Dyla", "Dylaus", "Dylion", "Dyllo", "Dyloan", "Dylobus", "Dylocaon", "Dylocus", "Dylodix", "Dylodon", "Dylodos", "Dyloion", "Dylokos", "Dylola", "Dylolaus", "Dylolion", "Dylollo", "Dylolus", "Dylomus", "Dylon", "Dylonix", "Dylops", "Dylorius", "Dyloron", "Dyloros", "Dylorus", "Dyloseus", "Dylosse", "Dylotheus", "Dylothus", "Dylotis", "Dyloton", "Dyloxius", "Dylus", "Dymoan", "Dymobus", "Dymocaon", "Dymocus", "Dymodix", "Dymodon", "Dymodos", "Dymoion", "Dymokos", "Dymola", "Dymolaus", "Dymolion", "Dymollo", "Dymolus", "Dymomus", "Dymon", "Dymonix", "Dymops", "Dymorius", "Dymoron", "Dymoros", "Dymorus", "Dymoseus", "Dymosse", "Dymotheus", "Dymothus", "Dymotis", "Dymoton", "Dymoxius", "Dymus", "Dyn", "Dynaan", "Dynabus", "Dynacaon", "Dynacus", "Dynadix", "Dynadon", "Dynados", "Dynaion", "Dynakos", "Dynala", "Dynalaus", "Dynalion", "Dynallo", "Dynalus", "Dynamus", "Dynan", "Dynanix", "Dynaps", "Dynarius", "Dynaron", "Dynaros", "Dynarus", "Dynaseus", "Dynasse", "Dynatheus", "Dynathus", "Dynatis", "Dynaton", "Dynaxius", "Dynbus", "Dyncaon", "Dyncus", "Dyndix", "Dyndon", "Dyndos", "Dynion", "Dynix", "Dynkos", "Dynla", "Dynlaus", "Dynlion", "Dynllo", "Dynlus", "Dynmus", "Dynn", "Dynnix", "Dynps", "Dynrius", "Dynron", "Dynros", "Dynrus", "Dynseus", "Dynsse", "Dyntheus", "Dynthus", "Dyntis", "Dynton", "Dynxius", "Dyperian", "Dyperibus", "Dypericaon", "Dypericus", "Dyperidix", "Dyperidon", "Dyperidos", "Dyperiion", "Dyperikos", "Dyperila", "Dyperilaus", "Dyperilion", "Dyperillo", "Dyperilus", "Dyperimus", "Dyperin", "Dyperinix", "Dyperips", "Dyperirius", "Dyperiron", "Dyperiros", "Dyperirus", "Dyperiseus", "Dyperisse", "Dyperitheus", "Dyperithus", "Dyperitis", "Dyperiton", "Dyperixius", "Dyphaan", "Dyphabus", "Dyphacaon", "Dyphacus", "Dyphadix", "Dyphadon", "Dyphados", "Dyphaion", "Dyphakos", "Dyphala", "Dyphalaus", "Dyphalion", "Dyphallo", "Dyphalus", "Dyphamus", "Dyphan", "Dyphanix", "Dyphaps", "Dypharius", "Dypharon", "Dypharos", "Dypharus", "Dyphaseus", "Dyphasse", "Dyphatheus", "Dyphathus", "Dyphatis", "Dyphaton", "Dyphaxius", "Dyphoan", "Dyphobus", "Dyphocaon", "Dyphocus", "Dyphodix", "Dyphodon", "Dyphodos", "Dyphoion", "Dyphokos", "Dyphola", "Dypholaus", "Dypholion", "Dyphollo", "Dypholus", "Dyphomus", "Dyphon", "Dyphonix", "Dyphops", "Dyphorius", "Dyphoron", "Dyphoros", "Dyphorus", "Dyphoseus", "Dyphosse", "Dyphotheus", "Dyphothus", "Dyphotis", "Dyphoton", "Dyphoxius", "Dyphyan", "Dyphybus", "Dyphycaon", "Dyphycus", "Dyphydix", "Dyphydon", "Dyphydos", "Dyphyion", "Dyphykos", "Dyphyla", "Dyphylaus", "Dyphylion", "Dyphyllo", "Dyphylus", "Dyphymus", "Dyphyn", "Dyphynix", "Dyphyps", "Dyphyrius", "Dyphyron", "Dyphyros", "Dyphyrus", "Dyphyseus", "Dyphysse", "Dyphytheus", "Dyphythus", "Dyphytis", "Dyphyton", "Dyphyxius", "Dyps", "Dyraan", "Dyrabus", "Dyracaon", "Dyracus", "Dyradix", "Dyradon", "Dyrados", "Dyraion", "Dyrakos", "Dyrala", "Dyralaus", "Dyralion", "Dyrallo", "Dyralus", "Dyramus", "Dyran", "Dyranix", "Dyraps", "Dyrarius", "Dyraron", "Dyraros", "Dyrarus", "Dyraseus", "Dyrasse", "Dyratheus", "Dyrathus", "Dyratis", "Dyraton", "Dyraxius", "Dyrian", "Dyribus", "Dyricaon", "Dyricus", "Dyridix", "Dyridon", "Dyridos", "Dyriion", "Dyrikos", "Dyrila", "Dyrilaus", "Dyrilion", "Dyrillo", "Dyrilus", "Dyrimus", "Dyrin", "Dyrinix", "Dyrips", "Dyririus", "Dyriron", "Dyriros", "Dyrirus", "Dyriseus", "Dyrisse", "Dyritheus", "Dyrithus", "Dyritis", "Dyriton", "Dyrius", "Dyrixius", "Dyron", "Dyros", "Dyrus", "Dyryaan", "Dyryabus", "Dyryacaon", "Dyryacus", "Dyryadix", "Dyryadon", "Dyryados", "Dyryaion", "Dyryakos", "Dyryala", "Dyryalaus", "Dyryalion", "Dyryallo", "Dyryalus", "Dyryamus", "Dyryan", "Dyryanix", "Dyryaps", "Dyryarius", "Dyryaron", "Dyryaros", "Dyryarus", "Dyryaseus", "Dyryasse", "Dyryatheus", "Dyryathus", "Dyryatis", "Dyryaton", "Dyryaxius", "Dyseus", "Dysse", "Dyssean", "Dyssebus", "Dyssecaon", "Dyssecus", "Dyssedix", "Dyssedon", "Dyssedos", "Dysseion", "Dyssekos", "Dyssela", "Dysselaus", "Dysselion", "Dyssello", "Dysselus", "Dyssemus", "Dyssen", "Dyssenix", "Dysseps", "Dysserius", "Dysseron", "Dysseros", "Dysserus", "Dysseseus", "Dyssesse", "Dyssetheus", "Dyssethus", "Dyssetis", "Dysseton", "Dyssexius", "Dytheus", "Dythus", "Dytis", "Dyton", "Dyxius", "Euan", "Eubus", "Eucaan", "Eucabus", "Eucacaon", "Eucacus", "Eucadix", "Eucadon", "Eucados", "Eucaion", "Eucakos", "Eucala", "Eucalaus", "Eucalion", "Eucallo", "Eucalus", "Eucamus", "Eucan", "Eucanix", "Eucaon", "Eucaps", "Eucarius", "Eucaron", "Eucaros", "Eucarus", "Eucaseus", "Eucasse", "Eucatheus", "Eucathus", "Eucatis", "Eucaton", "Eucaxius", "Eucus", "Eudix", "Eudon", "Eudos", "Eugrian", "Eugribus", "Eugricaon", "Eugricus", "Eugridix", "Eugridon", "Eugridos", "Eugriion", "Eugrikos", "Eugrila", "Eugrilaus", "Eugrilion", "Eugrillo", "Eugrilus", "Eugrimus", "Eugrin", "Eugrinix", "Eugrips", "Eugririus", "Eugriron", "Eugriros", "Eugrirus", "Eugriseus", "Eugrisse", "Eugritheus", "Eugrithus", "Eugritis", "Eugriton", "Eugrixius", "Euion", "Eukian", "Eukibus", "Eukicaon", "Eukicus", "Eukidix", "Eukidon", "Eukidos", "Eukiion", "Eukikos", "Eukila", "Eukilaus", "Eukilion", "Eukillo", "Eukilus", "Eukimus", "Eukin", "Eukinix", "Eukips", "Eukirius", "Eukiron", "Eukiros", "Eukirus", "Eukiseus", "Eukisse", "Eukitheus", "Eukithus", "Eukitis", "Eukiton", "Eukixius", "Eukoan", "Eukobus", "Eukocaon", "Eukocus", "Eukodix", "Eukodon", "Eukodos", "Eukoion", "Eukokos", "Eukola", "Eukolaus", "Eukolion", "Eukollo", "Eukolus", "Eukomus", "Eukon", "Eukonix", "Eukops", "Eukorius", "Eukoron", "Eukoros", "Eukorus", "Eukos", "Eukoseus", "Eukosse", "Eukotheus", "Eukothus", "Eukotis", "Eukoton", "Eukoxius", "Eula", "Eulaus", "Eulion", "Eullo", "Euloan", "Eulobus", "Eulocaon", "Eulocus", "Eulodix", "Eulodon", "Eulodos", "Euloion", "Eulokos", "Eulola", "Eulolaus", "Eulolion", "Eulollo", "Eulolus", "Eulomus", "Eulon", "Eulonix", "Eulops", "Eulorius", "Euloron", "Euloros", "Eulorus", "Euloseus", "Eulosse", "Eulotheus", "Eulothus", "Eulotis", "Euloton", "Euloxius", "Eulus", "Eumoan", "Eumobus", "Eumocaon", "Eumocus", "Eumodix", "Eumodon", "Eumodos", "Eumoion", "Eumokos", "Eumola", "Eumolaus", "Eumolion", "Eumollo", "Eumolus", "Eumomus", "Eumon", "Eumonix", "Eumops", "Eumorius", "Eumoron", "Eumoros", "Eumorus", "Eumoseus", "Eumosse", "Eumotheus", "Eumothus", "Eumotis", "Eumoton", "Eumoxius", "Eumus", "Eun", "Eunaan", "Eunabus", "Eunacaon", "Eunacus", "Eunadix", "Eunadon", "Eunados", "Eunaion", "Eunakos", "Eunala", "Eunalaus", "Eunalion", "Eunallo", "Eunalus", "Eunamus", "Eunan", "Eunanix", "Eunaps", "Eunarius", "Eunaron", "Eunaros", "Eunarus", "Eunaseus", "Eunasse", "Eunatheus", "Eunathus", "Eunatis", "Eunaton", "Eunaxius", "Eunbus", "Euncaon", "Euncus", "Eundix", "Eundon", "Eundos", "Eunion", "Eunix", "Eunkos", "Eunla", "Eunlaus", "Eunlion", "Eunllo", "Eunlus", "Eunmus", "Eunn", "Eunnix", "Eunps", "Eunrius", "Eunron", "Eunros", "Eunrus", "Eunseus", "Eunsse", "Euntheus", "Eunthus", "Euntis", "Eunton", "Eunxius", "Euperian", "Euperibus", "Eupericaon", "Eupericus", "Euperidix", "Euperidon", "Euperidos", "Euperiion", "Euperikos", "Euperila", "Euperilaus", "Euperilion", "Euperillo", "Euperilus", "Euperimus", "Euperin", "Euperinix", "Euperips", "Euperirius", "Euperiron", "Euperiros", "Euperirus", "Euperiseus", "Euperisse", "Euperitheus", "Euperithus", "Euperitis", "Euperiton", "Euperixius", "Euphaan", "Euphabus", "Euphacaon", "Euphacus", "Euphadix", "Euphadon", "Euphados", "Euphaion", "Euphakos", "Euphala", "Euphalaus", "Euphalion", "Euphallo", "Euphalus", "Euphamus", "Euphan", "Euphanix", "Euphaps", "Eupharius", "Eupharon", "Eupharos", "Eupharus", "Euphaseus", "Euphasse", "Euphatheus", "Euphathus", "Euphatis", "Euphaton", "Euphaxius", "Euphoan", "Euphobus", "Euphocaon", "Euphocus", "Euphodix", "Euphodon", "Euphodos", "Euphoion", "Euphokos", "Euphola", "Eupholaus", "Eupholion", "Euphollo", "Eupholus", "Euphomus", "Euphon", "Euphonix", "Euphops", "Euphorius", "Euphoron", "Euphoros", "Euphorus", "Euphoseus", "Euphosse", "Euphotheus", "Euphothus", "Euphotis", "Euphoton", "Euphoxius", "Euphyan", "Euphybus", "Euphycaon", "Euphycus", "Euphydix", "Euphydon", "Euphydos", "Euphyion", "Euphykos", "Euphyla", "Euphylaus", "Euphylion", "Euphyllo", "Euphylus", "Euphymus", "Euphyn", "Euphynix", "Euphyps", "Euphyrius", "Euphyron", "Euphyros", "Euphyrus", "Euphyseus", "Euphysse", "Euphytheus", "Euphythus", "Euphytis", "Euphyton", "Euphyxius", "Eups", "Euraan", "Eurabus", "Euracaon", "Euracus", "Euradix", "Euradon", "Eurados", "Euraion", "Eurakos", "Eurala", "Euralaus", "Euralion", "Eurallo", "Euralus", "Euramus", "Euran", "Euranix", "Euraps", "Eurarius", "Euraron", "Euraros", "Eurarus", "Euraseus", "Eurasse", "Euratheus", "Eurathus", "Euratis", "Euraton", "Euraxius", "Eurian", "Euribus", "Euricaon", "Euricus", "Euridix", "Euridon", "Euridos", "Euriion", "Eurikos", "Eurila", "Eurilaus", "Eurilion", "Eurillo", "Eurilus", "Eurimus", "Eurin", "Eurinix", "Eurips", "Euririus", "Euriron", "Euriros", "Eurirus", "Euriseus", "Eurisse", "Euritheus", "Eurithus", "Euritis", "Euriton", "Eurius", "Eurixius", "Euron", "Euros", "Eurus", "Euryaan", "Euryabus", "Euryacaon", "Euryacus", "Euryadix", "Euryadon", "Euryados", "Euryaion", "Euryakos", "Euryala", "Euryalaus", "Euryalion", "Euryallo", "Euryalus", "Euryamus", "Euryan", "Euryanix", "Euryaps", "Euryarius", "Euryaron", "Euryaros", "Euryarus", "Euryaseus", "Euryasse", "Euryatheus", "Euryathus", "Euryatis", "Euryaton", "Euryaxius", "Euseus", "Eusse", "Eussean", "Eussebus", "Eussecaon", "Eussecus", "Eussedix", "Eussedon", "Eussedos", "Eusseion", "Eussekos", "Eussela", "Eusselaus", "Eusselion", "Eussello", "Eusselus", "Eussemus", "Eussen", "Eussenix", "Eusseps", "Eusserius", "Eusseron", "Eusseros", "Eusserus", "Eusseseus", "Eussesse", "Eussetheus", "Eussethus", "Eussetis", "Eusseton", "Eussexius", "Eutheus", "Euthus", "Eutis", "Euton", "Euxius", "Gaan", "Gabus", "Gacaan", "Gacabus", "Gacacaon", "Gacacus", "Gacadix", "Gacadon", "Gacados", "Gacaion", "Gacakos", "Gacala", "Gacalaus", "Gacalion", "Gacallo", "Gacalus", "Gacamus", "Gacan", "Gacanix", "Gacaon", "Gacaps", "Gacarius", "Gacaron", "Gacaros", "Gacarus", "Gacaseus", "Gacasse", "Gacatheus", "Gacathus", "Gacatis", "Gacaton", "Gacaxius", "Gacus", "Gadix", "Gadon", "Gados", "Gagrian", "Gagribus", "Gagricaon", "Gagricus", "Gagridix", "Gagridon", "Gagridos", "Gagriion", "Gagrikos", "Gagrila", "Gagrilaus", "Gagrilion", "Gagrillo", "Gagrilus", "Gagrimus", "Gagrin", "Gagrinix", "Gagrips", "Gagririus", "Gagriron", "Gagriros", "Gagrirus", "Gagriseus", "Gagrisse", "Gagritheus", "Gagrithus", "Gagritis", "Gagriton", "Gagrixius", "Gaion", "Gakian", "Gakibus", "Gakicaon", "Gakicus", "Gakidix", "Gakidon", "Gakidos", "Gakiion", "Gakikos", "Gakila", "Gakilaus", "Gakilion", "Gakillo", "Gakilus", "Gakimus", "Gakin", "Gakinix", "Gakips", "Gakirius", "Gakiron", "Gakiros", "Gakirus", "Gakiseus", "Gakisse", "Gakitheus", "Gakithus", "Gakitis", "Gakiton", "Gakixius", "Gakoan", "Gakobus", "Gakocaon", "Gakocus", "Gakodix", "Gakodon", "Gakodos", "Gakoion", "Gakokos", "Gakola", "Gakolaus", "Gakolion", "Gakollo", "Gakolus", "Gakomus", "Gakon", "Gakonix", "Gakops", "Gakorius", "Gakoron", "Gakoros", "Gakorus", "Gakos", "Gakoseus", "Gakosse", "Gakotheus", "Gakothus", "Gakotis", "Gakoton", "Gakoxius", "Gala", "Galaus", "Galion", "Gallo", "Galoan", "Galobus", "Galocaon", "Galocus", "Galodix", "Galodon", "Galodos", "Galoion", "Galokos", "Galola", "Galolaus", "Galolion", "Galollo", "Galolus", "Galomus", "Galon", "Galonix", "Galops", "Galorius", "Galoron", "Galoros", "Galorus", "Galoseus", "Galosse", "Galotheus", "Galothus", "Galotis", "Galoton", "Galoxius", "Galus", "Gamoan", "Gamobus", "Gamocaon", "Gamocus", "Gamodix", "Gamodon", "Gamodos", "Gamoion", "Gamokos", "Gamola", "Gamolaus", "Gamolion", "Gamollo", "Gamolus", "Gamomus", "Gamon", "Gamonix", "Gamops", "Gamorius", "Gamoron", "Gamoros", "Gamorus", "Gamoseus", "Gamosse", "Gamotheus", "Gamothus", "Gamotis", "Gamoton", "Gamoxius", "Gamus", "Gan", "Ganaan", "Ganabus", "Ganacaon", "Ganacus", "Ganadix", "Ganadon", "Ganados", "Ganaion", "Ganakos", "Ganala", "Ganalaus", "Ganalion", "Ganallo", "Ganalus", "Ganamus", "Ganan", "Gananix", "Ganaps", "Ganarius", "Ganaron", "Ganaros", "Ganarus", "Ganaseus", "Ganasse", "Ganatheus", "Ganathus", "Ganatis", "Ganaton", "Ganaxius", "Ganbus", "Gancaon", "Gancus", "Gandix", "Gandon", "Gandos", "Ganion", "Ganix", "Gankos", "Ganla", "Ganlaus", "Ganlion", "Ganllo", "Ganlus", "Ganmus", "Gann", "Gannix", "Ganps", "Ganrius", "Ganron", "Ganros", "Ganrus", "Ganseus", "Gansse", "Gantheus", "Ganthus", "Gantis", "Ganton", "Ganxius", "Gaperian", "Gaperibus", "Gapericaon", "Gapericus", "Gaperidix", "Gaperidon", "Gaperidos", "Gaperiion", "Gaperikos", "Gaperila", "Gaperilaus", "Gaperilion", "Gaperillo", "Gaperilus", "Gaperimus", "Gaperin", "Gaperinix", "Gaperips", "Gaperirius", "Gaperiron", "Gaperiros", "Gaperirus", "Gaperiseus", "Gaperisse", "Gaperitheus", "Gaperithus", "Gaperitis", "Gaperiton", "Gaperixius", "Gaphaan", "Gaphabus", "Gaphacaon", "Gaphacus", "Gaphadix", "Gaphadon", "Gaphados", "Gaphaion", "Gaphakos", "Gaphala", "Gaphalaus", "Gaphalion", "Gaphallo", "Gaphalus", "Gaphamus", "Gaphan", "Gaphanix", "Gaphaps", "Gapharius", "Gapharon", "Gapharos", "Gapharus", "Gaphaseus", "Gaphasse", "Gaphatheus", "Gaphathus", "Gaphatis", "Gaphaton", "Gaphaxius", "Gaphoan", "Gaphobus", "Gaphocaon", "Gaphocus", "Gaphodix", "Gaphodon", "Gaphodos", "Gaphoion", "Gaphokos", "Gaphola", "Gapholaus", "Gapholion", "Gaphollo", "Gapholus", "Gaphomus", "Gaphon", "Gaphonix", "Gaphops", "Gaphorius", "Gaphoron", "Gaphoros", "Gaphorus", "Gaphoseus", "Gaphosse", "Gaphotheus", "Gaphothus", "Gaphotis", "Gaphoton", "Gaphoxius", "Gaphyan", "Gaphybus", "Gaphycaon", "Gaphycus", "Gaphydix", "Gaphydon", "Gaphydos", "Gaphyion", "Gaphykos", "Gaphyla", "Gaphylaus", "Gaphylion", "Gaphyllo", "Gaphylus", "Gaphymus", "Gaphyn", "Gaphynix", "Gaphyps", "Gaphyrius", "Gaphyron", "Gaphyros", "Gaphyrus", "Gaphyseus", "Gaphysse", "Gaphytheus", "Gaphythus", "Gaphytis", "Gaphyton", "Gaphyxius", "Gaps", "Garaan", "Garabus", "Garacaon", "Garacus", "Garadix", "Garadon", "Garados", "Garaion", "Garakos", "Garala", "Garalaus", "Garalion", "Garallo", "Garalus", "Garamus", "Garan", "Garanix", "Garaps", "Gararius", "Gararon", "Gararos", "Gararus", "Garaseus", "Garasse", "Garatheus", "Garathus", "Garatis", "Garaton", "Garaxius", "Garian", "Garibus", "Garicaon", "Garicus", "Garidix", "Garidon", "Garidos", "Gariion", "Garikos", "Garila", "Garilaus", "Garilion", "Garillo", "Garilus", "Garimus", "Garin", "Garinix", "Garips", "Garirius", "Gariron", "Gariros", "Garirus", "Gariseus", "Garisse", "Garitheus", "Garithus", "Garitis", "Gariton", "Garius", "Garixius", "Garon", "Garos", "Garus", "Garyaan", "Garyabus", "Garyacaon", "Garyacus", "Garyadix", "Garyadon", "Garyados", "Garyaion", "Garyakos", "Garyala", "Garyalaus", "Garyalion", "Garyallo", "Garyalus", "Garyamus", "Garyan", "Garyanix", "Garyaps", "Garyarius", "Garyaron", "Garyaros", "Garyarus", "Garyaseus", "Garyasse", "Garyatheus", "Garyathus", "Garyatis", "Garyaton", "Garyaxius", "Gaseus", "Gasse", "Gassean", "Gassebus", "Gassecaon", "Gassecus", "Gassedix", "Gassedon", "Gassedos", "Gasseion", "Gassekos", "Gassela", "Gasselaus", "Gasselion", "Gassello", "Gasselus", "Gassemus", "Gassen", "Gassenix", "Gasseps", "Gasserius", "Gasseron", "Gasseros", "Gasserus", "Gasseseus", "Gassesse", "Gassetheus", "Gassethus", "Gassetis", "Gasseton", "Gassexius", "Gatheus", "Gathus", "Gatis", "Gaton", "Gaxius", "Ibian", "Ibibus", "Ibicaan", "Ibicabus", "Ibicacaon", "Ibicacus", "Ibicadix", "Ibicadon", "Ibicados", "Ibicaion", "Ibicakos", "Ibicala", "Ibicalaus", "Ibicalion", "Ibicallo", "Ibicalus", "Ibicamus", "Ibican", "Ibicanix", "Ibicaon", "Ibicaps", "Ibicarius", "Ibicaron", "Ibicaros", "Ibicarus", "Ibicaseus", "Ibicasse", "Ibicatheus", "Ibicathus", "Ibicatis", "Ibicaton", "Ibicaxius", "Ibicus", "Ibidix", "Ibidon", "Ibidos", "Ibigrian", "Ibigribus", "Ibigricaon", "Ibigricus", "Ibigridix", "Ibigridon", "Ibigridos", "Ibigriion", "Ibigrikos", "Ibigrila", "Ibigrilaus", "Ibigrilion", "Ibigrillo", "Ibigrilus", "Ibigrimus", "Ibigrin", "Ibigrinix", "Ibigrips", "Ibigririus", "Ibigriron", "Ibigriros", "Ibigrirus", "Ibigriseus", "Ibigrisse", "Ibigritheus", "Ibigrithus", "Ibigritis", "Ibigriton", "Ibigrixius", "Ibiion", "Ibikian", "Ibikibus", "Ibikicaon", "Ibikicus", "Ibikidix", "Ibikidon", "Ibikidos", "Ibikiion", "Ibikikos", "Ibikila", "Ibikilaus", "Ibikilion", "Ibikillo", "Ibikilus", "Ibikimus", "Ibikin", "Ibikinix", "Ibikips", "Ibikirius", "Ibikiron", "Ibikiros", "Ibikirus", "Ibikiseus", "Ibikisse", "Ibikitheus", "Ibikithus", "Ibikitis", "Ibikiton", "Ibikixius", "Ibikoan", "Ibikobus", "Ibikocaon", "Ibikocus", "Ibikodix", "Ibikodon", "Ibikodos", "Ibikoion", "Ibikokos", "Ibikola", "Ibikolaus", "Ibikolion", "Ibikollo", "Ibikolus", "Ibikomus", "Ibikon", "Ibikonix", "Ibikops", "Ibikorius", "Ibikoron", "Ibikoros", "Ibikorus", "Ibikos", "Ibikoseus", "Ibikosse", "Ibikotheus", "Ibikothus", "Ibikotis", "Ibikoton", "Ibikoxius", "Ibila", "Ibilaus", "Ibilion", "Ibillo", "Ibiloan", "Ibilobus", "Ibilocaon", "Ibilocus", "Ibilodix", "Ibilodon", "Ibilodos", "Ibiloion", "Ibilokos", "Ibilola", "Ibilolaus", "Ibilolion", "Ibilollo", "Ibilolus", "Ibilomus", "Ibilon", "Ibilonix", "Ibilops", "Ibilorius", "Ibiloron", "Ibiloros", "Ibilorus", "Ibiloseus", "Ibilosse", "Ibilotheus", "Ibilothus", "Ibilotis", "Ibiloton", "Ibiloxius", "Ibilus", "Ibimoan", "Ibimobus", "Ibimocaon", "Ibimocus", "Ibimodix", "Ibimodon", "Ibimodos", "Ibimoion", "Ibimokos", "Ibimola", "Ibimolaus", "Ibimolion", "Ibimollo", "Ibimolus", "Ibimomus", "Ibimon", "Ibimonix", "Ibimops", "Ibimorius", "Ibimoron", "Ibimoros", "Ibimorus", "Ibimoseus", "Ibimosse", "Ibimotheus", "Ibimothus", "Ibimotis", "Ibimoton", "Ibimoxius", "Ibimus", "Ibin", "Ibinaan", "Ibinabus", "Ibinacaon", "Ibinacus", "Ibinadix", "Ibinadon", "Ibinados", "Ibinaion", "Ibinakos", "Ibinala", "Ibinalaus", "Ibinalion", "Ibinallo", "Ibinalus", "Ibinamus", "Ibinan", "Ibinanix", "Ibinaps", "Ibinarius", "Ibinaron", "Ibinaros", "Ibinarus", "Ibinaseus", "Ibinasse", "Ibinatheus", "Ibinathus", "Ibinatis", "Ibinaton", "Ibinaxius", "Ibinbus", "Ibincaon", "Ibincus", "Ibindix", "Ibindon", "Ibindos", "Ibinion", "Ibinix", "Ibinkos", "Ibinla", "Ibinlaus", "Ibinlion", "Ibinllo", "Ibinlus", "Ibinmus", "Ibinn", "Ibinnix", "Ibinps", "Ibinrius", "Ibinron", "Ibinros", "Ibinrus", "Ibinseus", "Ibinsse", "Ibintheus", "Ibinthus", "Ibintis", "Ibinton", "Ibinxius", "Ibiperian", "Ibiperibus", "Ibipericaon", "Ibipericus", "Ibiperidix", "Ibiperidon", "Ibiperidos", "Ibiperiion", "Ibiperikos", "Ibiperila", "Ibiperilaus", "Ibiperilion", "Ibiperillo", "Ibiperilus", "Ibiperimus", "Ibiperin", "Ibiperinix", "Ibiperips", "Ibiperirius", "Ibiperiron", "Ibiperiros", "Ibiperirus", "Ibiperiseus", "Ibiperisse", "Ibiperitheus", "Ibiperithus", "Ibiperitis", "Ibiperiton", "Ibiperixius", "Ibiphaan", "Ibiphabus", "Ibiphacaon", "Ibiphacus", "Ibiphadix", "Ibiphadon", "Ibiphados", "Ibiphaion", "Ibiphakos", "Ibiphala", "Ibiphalaus", "Ibiphalion", "Ibiphallo", "Ibiphalus", "Ibiphamus", "Ibiphan", "Ibiphanix", "Ibiphaps", "Ibipharius", "Ibipharon", "Ibipharos", "Ibipharus", "Ibiphaseus", "Ibiphasse", "Ibiphatheus", "Ibiphathus", "Ibiphatis", "Ibiphaton", "Ibiphaxius", "Ibiphoan", "Ibiphobus", "Ibiphocaon", "Ibiphocus", "Ibiphodix", "Ibiphodon", "Ibiphodos", "Ibiphoion", "Ibiphokos", "Ibiphola", "Ibipholaus", "Ibipholion", "Ibiphollo", "Ibipholus", "Ibiphomus", "Ibiphon", "Ibiphonix", "Ibiphops", "Ibiphorius", "Ibiphoron", "Ibiphoros", "Ibiphorus", "Ibiphoseus", "Ibiphosse", "Ibiphotheus", "Ibiphothus", "Ibiphotis", "Ibiphoton", "Ibiphoxius", "Ibiphyan", "Ibiphybus", "Ibiphycaon", "Ibiphycus", "Ibiphydix", "Ibiphydon", "Ibiphydos", "Ibiphyion", "Ibiphykos", "Ibiphyla", "Ibiphylaus", "Ibiphylion", "Ibiphyllo", "Ibiphylus", "Ibiphymus", "Ibiphyn", "Ibiphynix", "Ibiphyps", "Ibiphyrius", "Ibiphyron", "Ibiphyros", "Ibiphyrus", "Ibiphyseus", "Ibiphysse", "Ibiphytheus", "Ibiphythus", "Ibiphytis", "Ibiphyton", "Ibiphyxius", "Ibips", "Ibiraan", "Ibirabus", "Ibiracaon", "Ibiracus", "Ibiradix", "Ibiradon", "Ibirados", "Ibiraion", "Ibirakos", "Ibirala", "Ibiralaus", "Ibiralion", "Ibirallo", "Ibiralus", "Ibiramus", "Ibiran", "Ibiranix", "Ibiraps", "Ibirarius", "Ibiraron", "Ibiraros", "Ibirarus", "Ibiraseus", "Ibirasse", "Ibiratheus", "Ibirathus", "Ibiratis", "Ibiraton", "Ibiraxius", "Ibirian", "Ibiribus", "Ibiricaon", "Ibiricus", "Ibiridix", "Ibiridon", "Ibiridos", "Ibiriion", "Ibirikos", "Ibirila", "Ibirilaus", "Ibirilion", "Ibirillo", "Ibirilus", "Ibirimus", "Ibirin", "Ibirinix", "Ibirips", "Ibiririus", "Ibiriron", "Ibiriros", "Ibirirus", "Ibiriseus", "Ibirisse", "Ibiritheus", "Ibirithus", "Ibiritis", "Ibiriton", "Ibirius", "Ibirixius", "Ibiron", "Ibiros", "Ibirus", "Ibiryaan", "Ibiryabus", "Ibiryacaon", "Ibiryacus", "Ibiryadix", "Ibiryadon", "Ibiryados", "Ibiryaion", "Ibiryakos", "Ibiryala", "Ibiryalaus", "Ibiryalion", "Ibiryallo", "Ibiryalus", "Ibiryamus", "Ibiryan", "Ibiryanix", "Ibiryaps", "Ibiryarius", "Ibiryaron", "Ibiryaros", "Ibiryarus", "Ibiryaseus", "Ibiryasse", "Ibiryatheus", "Ibiryathus", "Ibiryatis", "Ibiryaton", "Ibiryaxius", "Ibiseus", "Ibisse", "Ibissean", "Ibissebus", "Ibissecaon", "Ibissecus", "Ibissedix", "Ibissedon", "Ibissedos", "Ibisseion", "Ibissekos", "Ibissela", "Ibisselaus", "Ibisselion", "Ibissello", "Ibisselus", "Ibissemus", "Ibissen", "Ibissenix", "Ibisseps", "Ibisserius", "Ibisseron", "Ibisseros", "Ibisserus", "Ibisseseus", "Ibissesse", "Ibissetheus", "Ibissethus", "Ibissetis", "Ibisseton", "Ibissexius", "Ibitheus", "Ibithus", "Ibitis", "Ibiton", "Ibixius", "Icaan", "Icabus", "Icacaan", "Icacabus", "Icacacaon", "Icacacus", "Icacadix", "Icacadon", "Icacados", "Icacaion", "Icacakos", "Icacala", "Icacalaus", "Icacalion", "Icacallo", "Icacalus", "Icacamus", "Icacan", "Icacanix", "Icacaon", "Icacaps", "Icacarius", "Icacaron", "Icacaros", "Icacarus", "Icacaseus", "Icacasse", "Icacatheus", "Icacathus", "Icacatis", "Icacaton", "Icacaxius", "Icacus", "Icadix", "Icadon", "Icados", "Icagrian", "Icagribus", "Icagricaon", "Icagricus", "Icagridix", "Icagridon", "Icagridos", "Icagriion", "Icagrikos", "Icagrila", "Icagrilaus", "Icagrilion", "Icagrillo", "Icagrilus", "Icagrimus", "Icagrin", "Icagrinix", "Icagrips", "Icagririus", "Icagriron", "Icagriros", "Icagrirus", "Icagriseus", "Icagrisse", "Icagritheus", "Icagrithus", "Icagritis", "Icagriton", "Icagrixius", "Icaion", "Icakian", "Icakibus", "Icakicaon", "Icakicus", "Icakidix", "Icakidon", "Icakidos", "Icakiion", "Icakikos", "Icakila", "Icakilaus", "Icakilion", "Icakillo", "Icakilus", "Icakimus", "Icakin", "Icakinix", "Icakips", "Icakirius", "Icakiron", "Icakiros", "Icakirus", "Icakiseus", "Icakisse", "Icakitheus", "Icakithus", "Icakitis", "Icakiton", "Icakixius", "Icakoan", "Icakobus", "Icakocaon", "Icakocus", "Icakodix", "Icakodon", "Icakodos", "Icakoion", "Icakokos", "Icakola", "Icakolaus", "Icakolion", "Icakollo", "Icakolus", "Icakomus", "Icakon", "Icakonix", "Icakops", "Icakorius", "Icakoron", "Icakoros", "Icakorus", "Icakos", "Icakoseus", "Icakosse", "Icakotheus", "Icakothus", "Icakotis", "Icakoton", "Icakoxius", "Icala", "Icalaus", "Icalion", "Icallo", "Icaloan", "Icalobus", "Icalocaon", "Icalocus", "Icalodix", "Icalodon", "Icalodos", "Icaloion", "Icalokos", "Icalola", "Icalolaus", "Icalolion", "Icalollo", "Icalolus", "Icalomus", "Icalon", "Icalonix", "Icalops", "Icalorius", "Icaloron", "Icaloros", "Icalorus", "Icaloseus", "Icalosse", "Icalotheus", "Icalothus", "Icalotis", "Icaloton", "Icaloxius", "Icalus", "Icamoan", "Icamobus", "Icamocaon", "Icamocus", "Icamodix", "Icamodon", "Icamodos", "Icamoion", "Icamokos", "Icamola", "Icamolaus", "Icamolion", "Icamollo", "Icamolus", "Icamomus", "Icamon", "Icamonix", "Icamops", "Icamorius", "Icamoron", "Icamoros", "Icamorus", "Icamoseus", "Icamosse", "Icamotheus", "Icamothus", "Icamotis", "Icamoton", "Icamoxius", "Icamus", "Ican", "Icanaan", "Icanabus", "Icanacaon", "Icanacus", "Icanadix", "Icanadon", "Icanados", "Icanaion", "Icanakos", "Icanala", "Icanalaus", "Icanalion", "Icanallo", "Icanalus", "Icanamus", "Icanan", "Icananix", "Icanaps", "Icanarius", "Icanaron", "Icanaros", "Icanarus", "Icanaseus", "Icanasse", "Icanatheus", "Icanathus", "Icanatis", "Icanaton", "Icanaxius", "Icanbus", "Icancaon", "Icancus", "Icandix", "Icandon", "Icandos", "Icanion", "Icanix", "Icankos", "Icanla", "Icanlaus", "Icanlion", "Icanllo", "Icanlus", "Icanmus", "Icann", "Icannix", "Icanps", "Icanrius", "Icanron", "Icanros", "Icanrus", "Icanseus", "Icansse", "Icantheus", "Icanthus", "Icantis", "Icanton", "Icanxius", "Icaperian", "Icaperibus", "Icapericaon", "Icapericus", "Icaperidix", "Icaperidon", "Icaperidos", "Icaperiion", "Icaperikos", "Icaperila", "Icaperilaus", "Icaperilion", "Icaperillo", "Icaperilus", "Icaperimus", "Icaperin", "Icaperinix", "Icaperips", "Icaperirius", "Icaperiron", "Icaperiros", "Icaperirus", "Icaperiseus", "Icaperisse", "Icaperitheus", "Icaperithus", "Icaperitis", "Icaperiton", "Icaperixius", "Icaphaan", "Icaphabus", "Icaphacaon", "Icaphacus", "Icaphadix", "Icaphadon", "Icaphados", "Icaphaion", "Icaphakos", "Icaphala", "Icaphalaus", "Icaphalion", "Icaphallo", "Icaphalus", "Icaphamus", "Icaphan", "Icaphanix", "Icaphaps", "Icapharius", "Icapharon", "Icapharos", "Icapharus", "Icaphaseus", "Icaphasse", "Icaphatheus", "Icaphathus", "Icaphatis", "Icaphaton", "Icaphaxius", "Icaphoan", "Icaphobus", "Icaphocaon", "Icaphocus", "Icaphodix", "Icaphodon", "Icaphodos", "Icaphoion", "Icaphokos", "Icaphola", "Icapholaus", "Icapholion", "Icaphollo", "Icapholus", "Icaphomus", "Icaphon", "Icaphonix", "Icaphops", "Icaphorius", "Icaphoron", "Icaphoros", "Icaphorus", "Icaphoseus", "Icaphosse", "Icaphotheus", "Icaphothus", "Icaphotis", "Icaphoton", "Icaphoxius", "Icaphyan", "Icaphybus", "Icaphycaon", "Icaphycus", "Icaphydix", "Icaphydon", "Icaphydos", "Icaphyion", "Icaphykos", "Icaphyla", "Icaphylaus", "Icaphylion", "Icaphyllo", "Icaphylus", "Icaphymus", "Icaphyn", "Icaphynix", "Icaphyps", "Icaphyrius", "Icaphyron", "Icaphyros", "Icaphyrus", "Icaphyseus", "Icaphysse", "Icaphytheus", "Icaphythus", "Icaphytis", "Icaphyton", "Icaphyxius", "Icaps", "Icaraan", "Icarabus", "Icaracaon", "Icaracus", "Icaradix", "Icaradon", "Icarados", "Icaraion", "Icarakos", "Icarala", "Icaralaus", "Icaralion", "Icarallo", "Icaralus", "Icaramus", "Icaran", "Icaranix", "Icaraps", "Icararius", "Icararon", "Icararos", "Icararus", "Icaraseus", "Icarasse", "Icaratheus", "Icarathus", "Icaratis", "Icaraton", "Icaraxius", "Icarian", "Icaribus", "Icaricaon", "Icaricus", "Icaridix", "Icaridon", "Icaridos", "Icariion", "Icarikos", "Icarila", "Icarilaus", "Icarilion", "Icarillo", "Icarilus", "Icarimus", "Icarin", "Icarinix", "Icarips", "Icaririus", "Icariron", "Icariros", "Icarirus", "Icariseus", "Icarisse", "Icaritheus", "Icarithus", "Icaritis", "Icariton", "Icarius", "Icarixius", "Icaron", "Icaros", "Icarus", "Icaryaan", "Icaryabus", "Icaryacaon", "Icaryacus", "Icaryadix", "Icaryadon", "Icaryados", "Icaryaion", "Icaryakos", "Icaryala", "Icaryalaus", "Icaryalion", "Icaryallo", "Icaryalus", "Icaryamus", "Icaryan", "Icaryanix", "Icaryaps", "Icaryarius", "Icaryaron", "Icaryaros", "Icaryarus", "Icaryaseus", "Icaryasse", "Icaryatheus", "Icaryathus", "Icaryatis", "Icaryaton", "Icaryaxius", "Icaseus", "Icasse", "Icassean", "Icassebus", "Icassecaon", "Icassecus", "Icassedix", "Icassedon", "Icassedos", "Icasseion", "Icassekos", "Icassela", "Icasselaus", "Icasselion", "Icassello", "Icasselus", "Icassemus", "Icassen", "Icassenix", "Icasseps", "Icasserius", "Icasseron", "Icasseros", "Icasserus", "Icasseseus", "Icassesse", "Icassetheus", "Icassethus", "Icassetis", "Icasseton", "Icassexius", "Icatheus", "Icathus", "Icatis", "Icaton", "Icaxius", "Ioan", "Iobus", "Iocaan", "Iocabus", "Iocacaon", "Iocacus", "Iocadix", "Iocadon", "Iocados", "Iocaion", "Iocakos", "Iocala", "Iocalaus", "Iocalion", "Iocallo", "Iocalus", "Iocamus", "Iocan", "Iocanix", "Iocaon", "Iocaps", "Iocarius", "Iocaron", "Iocaros", "Iocarus", "Iocaseus", "Iocasse", "Iocatheus", "Iocathus", "Iocatis", "Iocaton", "Iocaxius", "Iocus", "Iodix", "Iodon", "Iodos", "Iogrian", "Iogribus", "Iogricaon", "Iogricus", "Iogridix", "Iogridon", "Iogridos", "Iogriion", "Iogrikos", "Iogrila", "Iogrilaus", "Iogrilion", "Iogrillo", "Iogrilus", "Iogrimus", "Iogrin", "Iogrinix", "Iogrips", "Iogririus", "Iogriron", "Iogriros", "Iogrirus", "Iogriseus", "Iogrisse", "Iogritheus", "Iogrithus", "Iogritis", "Iogriton", "Iogrixius", "Ioion", "Iokian", "Iokibus", "Iokicaon", "Iokicus", "Iokidix", "Iokidon", "Iokidos", "Iokiion", "Iokikos", "Iokila", "Iokilaus", "Iokilion", "Iokillo", "Iokilus", "Iokimus", "Iokin", "Iokinix", "Iokips", "Iokirius", "Iokiron", "Iokiros", "Iokirus", "Iokiseus", "Iokisse", "Iokitheus", "Iokithus", "Iokitis", "Iokiton", "Iokixius", "Iokoan", "Iokobus", "Iokocaon", "Iokocus", "Iokodix", "Iokodon", "Iokodos", "Iokoion", "Iokokos", "Iokola", "Iokolaus", "Iokolion", "Iokollo", "Iokolus", "Iokomus", "Iokon", "Iokonix", "Iokops", "Iokorius", "Iokoron", "Iokoros", "Iokorus", "Iokos", "Iokoseus", "Iokosse", "Iokotheus", "Iokothus", "Iokotis", "Iokoton", "Iokoxius", "Iola", "Iolaus", "Iolion", "Iollo", "Ioloan", "Iolobus", "Iolocaon", "Iolocus", "Iolodix", "Iolodon", "Iolodos", "Ioloion", "Iolokos", "Iolola", "Iololaus", "Iololion", "Iolollo", "Iololus", "Iolomus", "Iolon", "Iolonix", "Iolops", "Iolorius", "Ioloron", "Ioloros", "Iolorus", "Ioloseus", "Iolosse", "Iolotheus", "Iolothus", "Iolotis", "Ioloton", "Ioloxius", "Iolus", "Iomoan", "Iomobus", "Iomocaon", "Iomocus", "Iomodix", "Iomodon", "Iomodos", "Iomoion", "Iomokos", "Iomola", "Iomolaus", "Iomolion", "Iomollo", "Iomolus", "Iomomus", "Iomon", "Iomonix", "Iomops", "Iomorius", "Iomoron", "Iomoros", "Iomorus", "Iomoseus", "Iomosse", "Iomotheus", "Iomothus", "Iomotis", "Iomoton", "Iomoxius", "Iomus", "Ion", "Ionaan", "Ionabus", "Ionacaon", "Ionacus", "Ionadix", "Ionadon", "Ionados", "Ionaion", "Ionakos", "Ionala", "Ionalaus", "Ionalion", "Ionallo", "Ionalus", "Ionamus", "Ionan", "Ionanix", "Ionaps", "Ionarius", "Ionaron", "Ionaros", "Ionarus", "Ionaseus", "Ionasse", "Ionatheus", "Ionathus", "Ionatis", "Ionaton", "Ionaxius", "Ionbus", "Ioncaon", "Ioncus", "Iondix", "Iondon", "Iondos", "Ionion", "Ionix", "Ionkos", "Ionla", "Ionlaus", "Ionlion", "Ionllo", "Ionlus", "Ionmus", "Ionn", "Ionnix", "Ionps", "Ionrius", "Ionron", "Ionros", "Ionrus", "Ionseus", "Ionsse", "Iontheus", "Ionthus", "Iontis", "Ionton", "Ionxius", "Ioperian", "Ioperibus", "Iopericaon", "Iopericus", "Ioperidix", "Ioperidon", "Ioperidos", "Ioperiion", "Ioperikos", "Ioperila", "Ioperilaus", "Ioperilion", "Ioperillo", "Ioperilus", "Ioperimus", "Ioperin", "Ioperinix", "Ioperips", "Ioperirius", "Ioperiron", "Ioperiros", "Ioperirus", "Ioperiseus", "Ioperisse", "Ioperitheus", "Ioperithus", "Ioperitis", "Ioperiton", "Ioperixius", "Iophaan", "Iophabus", "Iophacaon", "Iophacus", "Iophadix", "Iophadon", "Iophados", "Iophaion", "Iophakos", "Iophala", "Iophalaus", "Iophalion", "Iophallo", "Iophalus", "Iophamus", "Iophan", "Iophanix", "Iophaps", "Iopharius", "Iopharon", "Iopharos", "Iopharus", "Iophaseus", "Iophasse", "Iophatheus", "Iophathus", "Iophatis", "Iophaton", "Iophaxius", "Iophoan", "Iophobus", "Iophocaon", "Iophocus", "Iophodix", "Iophodon", "Iophodos", "Iophoion", "Iophokos", "Iophola", "Iopholaus", "Iopholion", "Iophollo", "Iopholus", "Iophomus", "Iophon", "Iophonix", "Iophops", "Iophorius", "Iophoron", "Iophoros", "Iophorus", "Iophoseus", "Iophosse", "Iophotheus", "Iophothus", "Iophotis", "Iophoton", "Iophoxius", "Iophyan", "Iophybus", "Iophycaon", "Iophycus", "Iophydix", "Iophydon", "Iophydos", "Iophyion", "Iophykos", "Iophyla", "Iophylaus", "Iophylion", "Iophyllo", "Iophylus", "Iophymus", "Iophyn", "Iophynix", "Iophyps", "Iophyrius", "Iophyron", "Iophyros", "Iophyrus", "Iophyseus", "Iophysse", "Iophytheus", "Iophythus", "Iophytis", "Iophyton", "Iophyxius", "Iops", "Ioraan", "Iorabus", "Ioracaon", "Ioracus", "Ioradix", "Ioradon", "Iorados", "Ioraion", "Iorakos", "Iorala", "Ioralaus", "Ioralion", "Iorallo", "Ioralus", "Ioramus", "Ioran", "Ioranix", "Ioraps", "Iorarius", "Ioraron", "Ioraros", "Iorarus", "Ioraseus", "Iorasse", "Ioratheus", "Iorathus", "Ioratis", "Ioraton", "Ioraxius", "Iorian", "Ioribus", "Ioricaon", "Ioricus", "Ioridix", "Ioridon", "Ioridos", "Ioriion", "Iorikos", "Iorila", "Iorilaus", "Iorilion", "Iorillo", "Iorilus", "Iorimus", "Iorin", "Iorinix", "Iorips", "Ioririus", "Ioriron", "Ioriros", "Iorirus", "Ioriseus", "Iorisse", "Ioritheus", "Iorithus", "Ioritis", "Ioriton", "Iorius", "Iorixius", "Ioron", "Ioros", "Iorus", "Ioryaan", "Ioryabus", "Ioryacaon", "Ioryacus", "Ioryadix", "Ioryadon", "Ioryados", "Ioryaion", "Ioryakos", "Ioryala", "Ioryalaus", "Ioryalion", "Ioryallo", "Ioryalus", "Ioryamus", "Ioryan", "Ioryanix", "Ioryaps", "Ioryarius", "Ioryaron", "Ioryaros", "Ioryarus", "Ioryaseus", "Ioryasse", "Ioryatheus", "Ioryathus", "Ioryatis", "Ioryaton", "Ioryaxius", "Ioseus", "Iosse", "Iossean", "Iossebus", "Iossecaon", "Iossecus", "Iossedix", "Iossedon", "Iossedos", "Iosseion", "Iossekos", "Iossela", "Iosselaus", "Iosselion", "Iossello", "Iosselus", "Iossemus", "Iossen", "Iossenix", "Iosseps", "Iosserius", "Iosseron", "Iosseros", "Iosserus", "Iosseseus", "Iossesse", "Iossetheus", "Iossethus", "Iossetis", "Iosseton", "Iossexius", "Iotheus", "Iothus", "Iotis", "Ioton", "Ioxius", "Krian", "Kribus", "Kricaan", "Kricabus", "Kricacaon", "Kricacus", "Kricadix", "Kricadon", "Kricados", "Kricaion", "Kricakos", "Kricala", "Kricalaus", "Kricalion", "Kricallo", "Kricalus", "Kricamus", "Krican", "Kricanix", "Kricaon", "Kricaps", "Kricarius", "Kricaron", "Kricaros", "Kricarus", "Kricaseus", "Kricasse", "Kricatheus", "Kricathus", "Kricatis", "Kricaton", "Kricaxius", "Kricus", "Kridix", "Kridon", "Kridos", "Krigrian", "Krigribus", "Krigricaon", "Krigricus", "Krigridix", "Krigridon", "Krigridos", "Krigriion", "Krigrikos", "Krigrila", "Krigrilaus", "Krigrilion", "Krigrillo", "Krigrilus", "Krigrimus", "Krigrin", "Krigrinix", "Krigrips", "Krigririus", "Krigriron", "Krigriros", "Krigrirus", "Krigriseus", "Krigrisse", "Krigritheus", "Krigrithus", "Krigritis", "Krigriton", "Krigrixius", "Kriion", "Krikian", "Krikibus", "Krikicaon", "Krikicus", "Krikidix", "Krikidon", "Krikidos", "Krikiion", "Krikikos", "Krikila", "Krikilaus", "Krikilion", "Krikillo", "Krikilus", "Krikimus", "Krikin", "Krikinix", "Krikips", "Krikirius", "Krikiron", "Krikiros", "Krikirus", "Krikiseus", "Krikisse", "Krikitheus", "Krikithus", "Krikitis", "Krikiton", "Krikixius", "Krikoan", "Krikobus", "Krikocaon", "Krikocus", "Krikodix", "Krikodon", "Krikodos", "Krikoion", "Krikokos", "Krikola", "Krikolaus", "Krikolion", "Krikollo", "Krikolus", "Krikomus", "Krikon", "Krikonix", "Krikops", "Krikorius", "Krikoron", "Krikoros", "Krikorus", "Krikos", "Krikoseus", "Krikosse", "Krikotheus", "Krikothus", "Krikotis", "Krikoton", "Krikoxius", "Krila", "Krilaus", "Krilion", "Krillo", "Kriloan", "Krilobus", "Krilocaon", "Krilocus", "Krilodix", "Krilodon", "Krilodos", "Kriloion", "Krilokos", "Krilola", "Krilolaus", "Krilolion", "Krilollo", "Krilolus", "Krilomus", "Krilon", "Krilonix", "Krilops", "Krilorius", "Kriloron", "Kriloros", "Krilorus", "Kriloseus", "Krilosse", "Krilotheus", "Krilothus", "Krilotis", "Kriloton", "Kriloxius", "Krilus", "Krimoan", "Krimobus", "Krimocaon", "Krimocus", "Krimodix", "Krimodon", "Krimodos", "Krimoion", "Krimokos", "Krimola", "Krimolaus", "Krimolion", "Krimollo", "Krimolus", "Krimomus", "Krimon", "Krimonix", "Krimops", "Krimorius", "Krimoron", "Krimoros", "Krimorus", "Krimoseus", "Krimosse", "Krimotheus", "Krimothus", "Krimotis", "Krimoton", "Krimoxius", "Krimus", "Krin", "Krinaan", "Krinabus", "Krinacaon", "Krinacus", "Krinadix", "Krinadon", "Krinados", "Krinaion", "Krinakos", "Krinala", "Krinalaus", "Krinalion", "Krinallo", "Krinalus", "Krinamus", "Krinan", "Krinanix", "Krinaps", "Krinarius", "Krinaron", "Krinaros", "Krinarus", "Krinaseus", "Krinasse", "Krinatheus", "Krinathus", "Krinatis", "Krinaton", "Krinaxius", "Krinbus", "Krincaon", "Krincus", "Krindix", "Krindon", "Krindos", "Krinion", "Krinix", "Krinkos", "Krinla", "Krinlaus", "Krinlion", "Krinllo", "Krinlus", "Krinmus", "Krinn", "Krinnix", "Krinps", "Krinrius", "Krinron", "Krinros", "Krinrus", "Krinseus", "Krinsse", "Krintheus", "Krinthus", "Krintis", "Krinton", "Krinxius", "Kriperian", "Kriperibus", "Kripericaon", "Kripericus", "Kriperidix", "Kriperidon", "Kriperidos", "Kriperiion", "Kriperikos", "Kriperila", "Kriperilaus", "Kriperilion", "Kriperillo", "Kriperilus", "Kriperimus", "Kriperin", "Kriperinix", "Kriperips", "Kriperirius", "Kriperiron", "Kriperiros", "Kriperirus", "Kriperiseus", "Kriperisse", "Kriperitheus", "Kriperithus", "Kriperitis", "Kriperiton", "Kriperixius", "Kriphaan", "Kriphabus", "Kriphacaon", "Kriphacus", "Kriphadix", "Kriphadon", "Kriphados", "Kriphaion", "Kriphakos", "Kriphala", "Kriphalaus", "Kriphalion", "Kriphallo", "Kriphalus", "Kriphamus", "Kriphan", "Kriphanix", "Kriphaps", "Kripharius", "Kripharon", "Kripharos", "Kripharus", "Kriphaseus", "Kriphasse", "Kriphatheus", "Kriphathus", "Kriphatis", "Kriphaton", "Kriphaxius", "Kriphoan", "Kriphobus", "Kriphocaon", "Kriphocus", "Kriphodix", "Kriphodon", "Kriphodos", "Kriphoion", "Kriphokos", "Kriphola", "Kripholaus", "Kripholion", "Kriphollo", "Kripholus", "Kriphomus", "Kriphon", "Kriphonix", "Kriphops", "Kriphorius", "Kriphoron", "Kriphoros", "Kriphorus", "Kriphoseus", "Kriphosse", "Kriphotheus", "Kriphothus", "Kriphotis", "Kriphoton", "Kriphoxius", "Kriphyan", "Kriphybus", "Kriphycaon", "Kriphycus", "Kriphydix", "Kriphydon", "Kriphydos", "Kriphyion", "Kriphykos", "Kriphyla", "Kriphylaus", "Kriphylion", "Kriphyllo", "Kriphylus", "Kriphymus", "Kriphyn", "Kriphynix", "Kriphyps", "Kriphyrius", "Kriphyron", "Kriphyros", "Kriphyrus", "Kriphyseus", "Kriphysse", "Kriphytheus", "Kriphythus", "Kriphytis", "Kriphyton", "Kriphyxius", "Krips", "Kriraan", "Krirabus", "Kriracaon", "Kriracus", "Kriradix", "Kriradon", "Krirados", "Kriraion", "Krirakos", "Krirala", "Kriralaus", "Kriralion", "Krirallo", "Kriralus", "Kriramus", "Kriran", "Kriranix", "Kriraps", "Krirarius", "Kriraron", "Kriraros", "Krirarus", "Kriraseus", "Krirasse", "Kriratheus", "Krirathus", "Kriratis", "Kriraton", "Kriraxius", "Kririan", "Kriribus", "Kriricaon", "Kriricus", "Kriridix", "Kriridon", "Kriridos", "Kririion", "Kririkos", "Kririla", "Kririlaus", "Kririlion", "Kririllo", "Kririlus", "Kririmus", "Kririn", "Kririnix", "Kririps", "Kriririus", "Kririron", "Kririros", "Kririrus", "Kririseus", "Kririsse", "Kriritheus", "Kririthus", "Kriritis", "Kririton", "Kririus", "Kririxius", "Kriron", "Kriros", "Krirus", "Kriryaan", "Kriryabus", "Kriryacaon", "Kriryacus", "Kriryadix", "Kriryadon", "Kriryados", "Kriryaion", "Kriryakos", "Kriryala", "Kriryalaus", "Kriryalion", "Kriryallo", "Kriryalus", "Kriryamus", "Kriryan", "Kriryanix", "Kriryaps", "Kriryarius", "Kriryaron", "Kriryaros", "Kriryarus", "Kriryaseus", "Kriryasse", "Kriryatheus", "Kriryathus", "Kriryatis", "Kriryaton", "Kriryaxius", "Kriseus", "Krisse", "Krissean", "Krissebus", "Krissecaon", "Krissecus", "Krissedix", "Krissedon", "Krissedos", "Krisseion", "Krissekos", "Krissela", "Krisselaus", "Krisselion", "Krissello", "Krisselus", "Krissemus", "Krissen", "Krissenix", "Krisseps", "Krisserius", "Krisseron", "Krisseros", "Krisserus", "Krisseseus", "Krissesse", "Krissetheus", "Krissethus", "Krissetis", "Krisseton", "Krissexius", "Kritheus", "Krithus", "Kritis", "Kriton", "Krixius", "Kyan", "Kybus", "Kycaan", "Kycabus", "Kycacaon", "Kycacus", "Kycadix", "Kycadon", "Kycados", "Kycaion", "Kycakos", "Kycala", "Kycalaus", "Kycalion", "Kycallo", "Kycalus", "Kycamus", "Kycan", "Kycanix", "Kycaon", "Kycaps", "Kycarius", "Kycaron", "Kycaros", "Kycarus", "Kycaseus", "Kycasse", "Kycatheus", "Kycathus", "Kycatis", "Kycaton", "Kycaxius", "Kycus", "Kydix", "Kydon", "Kydos", "Kygrian", "Kygribus", "Kygricaon", "Kygricus", "Kygridix", "Kygridon", "Kygridos", "Kygriion", "Kygrikos", "Kygrila", "Kygrilaus", "Kygrilion", "Kygrillo", "Kygrilus", "Kygrimus", "Kygrin", "Kygrinix", "Kygrips", "Kygririus", "Kygriron", "Kygriros", "Kygrirus", "Kygriseus", "Kygrisse", "Kygritheus", "Kygrithus", "Kygritis", "Kygriton", "Kygrixius", "Kyion", "Kykian", "Kykibus", "Kykicaon", "Kykicus", "Kykidix", "Kykidon", "Kykidos", "Kykiion", "Kykikos", "Kykila", "Kykilaus", "Kykilion", "Kykillo", "Kykilus", "Kykimus", "Kykin", "Kykinix", "Kykips", "Kykirius", "Kykiron", "Kykiros", "Kykirus", "Kykiseus", "Kykisse", "Kykitheus", "Kykithus", "Kykitis", "Kykiton", "Kykixius", "Kykoan", "Kykobus", "Kykocaon", "Kykocus", "Kykodix", "Kykodon", "Kykodos", "Kykoion", "Kykokos", "Kykola", "Kykolaus", "Kykolion", "Kykollo", "Kykolus", "Kykomus", "Kykon", "Kykonix", "Kykops", "Kykorius", "Kykoron", "Kykoros", "Kykorus", "Kykos", "Kykoseus", "Kykosse", "Kykotheus", "Kykothus", "Kykotis", "Kykoton", "Kykoxius", "Kyla", "Kylaus", "Kylion", "Kyllo", "Kyloan", "Kylobus", "Kylocaon", "Kylocus", "Kylodix", "Kylodon", "Kylodos", "Kyloion", "Kylokos", "Kylola", "Kylolaus", "Kylolion", "Kylollo", "Kylolus", "Kylomus", "Kylon", "Kylonix", "Kylops", "Kylorius", "Kyloron", "Kyloros", "Kylorus", "Kyloseus", "Kylosse", "Kylotheus", "Kylothus", "Kylotis", "Kyloton", "Kyloxius", "Kylus", "Kymoan", "Kymobus", "Kymocaon", "Kymocus", "Kymodix", "Kymodon", "Kymodos", "Kymoion", "Kymokos", "Kymola", "Kymolaus", "Kymolion", "Kymollo", "Kymolus", "Kymomus", "Kymon", "Kymonix", "Kymops", "Kymorius", "Kymoron", "Kymoros", "Kymorus", "Kymoseus", "Kymosse", "Kymotheus", "Kymothus", "Kymotis", "Kymoton", "Kymoxius", "Kymus", "Kyn", "Kynaan", "Kynabus", "Kynacaon", "Kynacus", "Kynadix", "Kynadon", "Kynados", "Kynaion", "Kynakos", "Kynala", "Kynalaus", "Kynalion", "Kynallo", "Kynalus", "Kynamus", "Kynan", "Kynanix", "Kynaps", "Kynarius", "Kynaron", "Kynaros", "Kynarus", "Kynaseus", "Kynasse", "Kynatheus", "Kynathus", "Kynatis", "Kynaton", "Kynaxius", "Kynbus", "Kyncaon", "Kyncus", "Kyndix", "Kyndon", "Kyndos", "Kynion", "Kynix", "Kynkos", "Kynla", "Kynlaus", "Kynlion", "Kynllo", "Kynlus", "Kynmus", "Kynn", "Kynnix", "Kynps", "Kynrius", "Kynron", "Kynros", "Kynrus", "Kynseus", "Kynsse", "Kyntheus", "Kynthus", "Kyntis", "Kynton", "Kynxius", "Kyperian", "Kyperibus", "Kypericaon", "Kypericus", "Kyperidix", "Kyperidon", "Kyperidos", "Kyperiion", "Kyperikos", "Kyperila", "Kyperilaus", "Kyperilion", "Kyperillo", "Kyperilus", "Kyperimus", "Kyperin", "Kyperinix", "Kyperips", "Kyperirius", "Kyperiron", "Kyperiros", "Kyperirus", "Kyperiseus", "Kyperisse", "Kyperitheus", "Kyperithus", "Kyperitis", "Kyperiton", "Kyperixius", "Kyphaan", "Kyphabus", "Kyphacaon", "Kyphacus", "Kyphadix", "Kyphadon", "Kyphados", "Kyphaion", "Kyphakos", "Kyphala", "Kyphalaus", "Kyphalion", "Kyphallo", "Kyphalus", "Kyphamus", "Kyphan", "Kyphanix", "Kyphaps", "Kypharius", "Kypharon", "Kypharos", "Kypharus", "Kyphaseus", "Kyphasse", "Kyphatheus", "Kyphathus", "Kyphatis", "Kyphaton", "Kyphaxius", "Kyphoan", "Kyphobus", "Kyphocaon", "Kyphocus", "Kyphodix", "Kyphodon", "Kyphodos", "Kyphoion", "Kyphokos", "Kyphola", "Kypholaus", "Kypholion", "Kyphollo", "Kypholus", "Kyphomus", "Kyphon", "Kyphonix", "Kyphops", "Kyphorius", "Kyphoron", "Kyphoros", "Kyphorus", "Kyphoseus", "Kyphosse", "Kyphotheus", "Kyphothus", "Kyphotis", "Kyphoton", "Kyphoxius", "Kyphyan", "Kyphybus", "Kyphycaon", "Kyphycus", "Kyphydix", "Kyphydon", "Kyphydos", "Kyphyion", "Kyphykos", "Kyphyla", "Kyphylaus", "Kyphylion", "Kyphyllo", "Kyphylus", "Kyphymus", "Kyphyn", "Kyphynix", "Kyphyps", "Kyphyrius", "Kyphyron", "Kyphyros", "Kyphyrus", "Kyphyseus", "Kyphysse", "Kyphytheus", "Kyphythus", "Kyphytis", "Kyphyton", "Kyphyxius", "Kyps", "Kyraan", "Kyrabus", "Kyracaon", "Kyracus", "Kyradix", "Kyradon", "Kyrados", "Kyraion", "Kyrakos", "Kyrala", "Kyralaus", "Kyralion", "Kyrallo", "Kyralus", "Kyramus", "Kyran", "Kyranix", "Kyraps", "Kyrarius", "Kyraron", "Kyraros", "Kyrarus", "Kyraseus", "Kyrasse", "Kyratheus", "Kyrathus", "Kyratis", "Kyraton", "Kyraxius", "Kyrian", "Kyribus", "Kyricaon", "Kyricus", "Kyridix", "Kyridon", "Kyridos", "Kyriion", "Kyrikos", "Kyrila", "Kyrilaus", "Kyrilion", "Kyrillo", "Kyrilus", "Kyrimus", "Kyrin", "Kyrinix", "Kyrips", "Kyririus", "Kyriron", "Kyriros", "Kyrirus", "Kyriseus", "Kyrisse", "Kyritheus", "Kyrithus", "Kyritis", "Kyriton", "Kyrius", "Kyrixius", "Kyron", "Kyros", "Kyrus", "Kyryaan", "Kyryabus", "Kyryacaon", "Kyryacus", "Kyryadix", "Kyryadon", "Kyryados", "Kyryaion", "Kyryakos", "Kyryala", "Kyryalaus", "Kyryalion", "Kyryallo", "Kyryalus", "Kyryamus", "Kyryan", "Kyryanix", "Kyryaps", "Kyryarius", "Kyryaron", "Kyryaros", "Kyryarus", "Kyryaseus", "Kyryasse", "Kyryatheus", "Kyryathus", "Kyryatis", "Kyryaton", "Kyryaxius", "Kyseus", "Kysse", "Kyssean", "Kyssebus", "Kyssecaon", "Kyssecus", "Kyssedix", "Kyssedon", "Kyssedos", "Kysseion", "Kyssekos", "Kyssela", "Kysselaus", "Kysselion", "Kyssello", "Kysselus", "Kyssemus", "Kyssen", "Kyssenix", "Kysseps", "Kysserius", "Kysseron", "Kysseros", "Kysserus", "Kysseseus", "Kyssesse", "Kyssetheus", "Kyssethus", "Kyssetis", "Kysseton", "Kyssexius", "Kytheus", "Kythus", "Kytis", "Kyton", "Kyxius", "Lyan", "Lybus", "Lycaan", "Lycabus", "Lycacaon", "Lycacus", "Lycadix", "Lycadon", "Lycados", "Lycaion", "Lycakos", "Lycala", "Lycalaus", "Lycalion", "Lycallo", "Lycalus", "Lycamus", "Lycan", "Lycanix", "Lycaon", "Lycaps", "Lycarius", "Lycaron", "Lycaros", "Lycarus", "Lycaseus", "Lycasse", "Lycatheus", "Lycathus", "Lycatis", "Lycaton", "Lycaxius", "Lycus", "Lydix", "Lydon", "Lydos", "Lygrian", "Lygribus", "Lygricaon", "Lygricus", "Lygridix", "Lygridon", "Lygridos", "Lygriion", "Lygrikos", "Lygrila", "Lygrilaus", "Lygrilion", "Lygrillo", "Lygrilus", "Lygrimus", "Lygrin", "Lygrinix", "Lygrips", "Lygririus", "Lygriron", "Lygriros", "Lygrirus", "Lygriseus", "Lygrisse", "Lygritheus", "Lygrithus", "Lygritis", "Lygriton", "Lygrixius", "Lyion", "Lykian", "Lykibus", "Lykicaon", "Lykicus", "Lykidix", "Lykidon", "Lykidos", "Lykiion", "Lykikos", "Lykila", "Lykilaus", "Lykilion", "Lykillo", "Lykilus", "Lykimus", "Lykin", "Lykinix", "Lykips", "Lykirius", "Lykiron", "Lykiros", "Lykirus", "Lykiseus", "Lykisse", "Lykitheus", "Lykithus", "Lykitis", "Lykiton", "Lykixius", "Lykoan", "Lykobus", "Lykocaon", "Lykocus", "Lykodix", "Lykodon", "Lykodos", "Lykoion", "Lykokos", "Lykola", "Lykolaus", "Lykolion", "Lykollo", "Lykolus", "Lykomus", "Lykon", "Lykonix", "Lykops", "Lykorius", "Lykoron", "Lykoros", "Lykorus", "Lykos", "Lykoseus", "Lykosse", "Lykotheus", "Lykothus", "Lykotis", "Lykoton", "Lykoxius", "Lyla", "Lylaus", "Lylion", "Lyllo", "Lyloan", "Lylobus", "Lylocaon", "Lylocus", "Lylodix", "Lylodon", "Lylodos", "Lyloion", "Lylokos", "Lylola", "Lylolaus", "Lylolion", "Lylollo", "Lylolus", "Lylomus", "Lylon", "Lylonix", "Lylops", "Lylorius", "Lyloron", "Lyloros", "Lylorus", "Lyloseus", "Lylosse", "Lylotheus", "Lylothus", "Lylotis", "Lyloton", "Lyloxius", "Lylus", "Lymoan", "Lymobus", "Lymocaon", "Lymocus", "Lymodix", "Lymodon", "Lymodos", "Lymoion", "Lymokos", "Lymola", "Lymolaus", "Lymolion", "Lymollo", "Lymolus", "Lymomus", "Lymon", "Lymonix", "Lymops", "Lymorius", "Lymoron", "Lymoros", "Lymorus", "Lymoseus", "Lymosse", "Lymotheus", "Lymothus", "Lymotis", "Lymoton", "Lymoxius", "Lymus", "Lyn", "Lynaan", "Lynabus" +, "Lynacaon", "Lynacus", "Lynadix", "Lynadon", "Lynados", "Lynaion", "Lynakos", "Lynala", "Lynalaus", "Lynalion", "Lynallo", "Lynalus", "Lynamus", "Lynan", "Lynanix", "Lynaps", "Lynarius", "Lynaron", "Lynaros", "Lynarus", "Lynaseus", "Lynasse", "Lynatheus", "Lynathus", "Lynatis", "Lynaton", "Lynaxius", "Lynbus", "Lyncaon", "Lyncus", "Lyndix", "Lyndon", "Lyndos", "Lynion", "Lynix", "Lynkos", "Lynla", "Lynlaus", "Lynlion", "Lynllo", "Lynlus", "Lynmus", "Lynn", "Lynnix", "Lynps", "Lynrius", "Lynron", "Lynros", "Lynrus", "Lynseus", "Lynsse", "Lyntheus", "Lynthus", "Lyntis", "Lynton", "Lynxius", "Lyperian", "Lyperibus", "Lypericaon", "Lypericus", "Lyperidix", "Lyperidon", "Lyperidos", "Lyperiion", "Lyperikos", "Lyperila", "Lyperilaus", "Lyperilion", "Lyperillo", "Lyperilus", "Lyperimus", "Lyperin", "Lyperinix", "Lyperips", "Lyperirius", "Lyperiron", "Lyperiros", "Lyperirus", "Lyperiseus", "Lyperisse", "Lyperitheus", "Lyperithus", "Lyperitis", "Lyperiton", "Lyperixius", "Lyphaan", "Lyphabus", "Lyphacaon", "Lyphacus", "Lyphadix", "Lyphadon", "Lyphados", "Lyphaion", "Lyphakos", "Lyphala", "Lyphalaus", "Lyphalion", "Lyphallo", "Lyphalus", "Lyphamus", "Lyphan", "Lyphanix", "Lyphaps", "Lypharius", "Lypharon", "Lypharos", "Lypharus", "Lyphaseus", "Lyphasse", "Lyphatheus", "Lyphathus", "Lyphatis", "Lyphaton", "Lyphaxius", "Lyphoan", "Lyphobus", "Lyphocaon", "Lyphocus", "Lyphodix", "Lyphodon", "Lyphodos", "Lyphoion", "Lyphokos", "Lyphola", "Lypholaus", "Lypholion", "Lyphollo", "Lypholus", "Lyphomus", "Lyphon", "Lyphonix", "Lyphops", "Lyphorius", "Lyphoron", "Lyphoros", "Lyphorus", "Lyphoseus", "Lyphosse", "Lyphotheus", "Lyphothus", "Lyphotis", "Lyphoton", "Lyphoxius", "Lyphyan", "Lyphybus", "Lyphycaon", "Lyphycus", "Lyphydix", "Lyphydon", "Lyphydos", "Lyphyion", "Lyphykos", "Lyphyla", "Lyphylaus", "Lyphylion", "Lyphyllo", "Lyphylus", "Lyphymus", "Lyphyn", "Lyphynix", "Lyphyps", "Lyphyrius", "Lyphyron", "Lyphyros", "Lyphyrus", "Lyphyseus", "Lyphysse", "Lyphytheus", "Lyphythus", "Lyphytis", "Lyphyton", "Lyphyxius", "Lyps", "Lyraan", "Lyrabus", "Lyracaon", "Lyracus", "Lyradix", "Lyradon", "Lyrados", "Lyraion", "Lyrakos", "Lyrala", "Lyralaus", "Lyralion", "Lyrallo", "Lyralus", "Lyramus", "Lyran", "Lyranix", "Lyraps", "Lyrarius", "Lyraron", "Lyraros", "Lyrarus", "Lyraseus", "Lyrasse", "Lyratheus", "Lyrathus", "Lyratis", "Lyraton", "Lyraxius", "Lyrian", "Lyribus", "Lyricaon", "Lyricus", "Lyridix", "Lyridon", "Lyridos", "Lyriion", "Lyrikos", "Lyrila", "Lyrilaus", "Lyrilion", "Lyrillo", "Lyrilus", "Lyrimus", "Lyrin", "Lyrinix", "Lyrips", "Lyririus", "Lyriron", "Lyriros", "Lyrirus", "Lyriseus", "Lyrisse", "Lyritheus", "Lyrithus", "Lyritis", "Lyriton", "Lyrius", "Lyrixius", "Lyron", "Lyros", "Lyrus", "Lyryaan", "Lyryabus", "Lyryacaon", "Lyryacus", "Lyryadix", "Lyryadon", "Lyryados", "Lyryaion", "Lyryakos", "Lyryala", "Lyryalaus", "Lyryalion", "Lyryallo", "Lyryalus", "Lyryamus", "Lyryan", "Lyryanix", "Lyryaps", "Lyryarius", "Lyryaron", "Lyryaros", "Lyryarus", "Lyryaseus", "Lyryasse", "Lyryatheus", "Lyryathus", "Lyryatis", "Lyryaton", "Lyryaxius", "Lyseus", "Lysse", "Lyssean", "Lyssebus", "Lyssecaon", "Lyssecus", "Lyssedix", "Lyssedon", "Lyssedos", "Lysseion", "Lyssekos", "Lyssela", "Lysselaus", "Lysselion", "Lyssello", "Lysselus", "Lyssemus", "Lyssen", "Lyssenix", "Lysseps", "Lysserius", "Lysseron", "Lysseros", "Lysserus", "Lysseseus", "Lyssesse", "Lyssetheus", "Lyssethus", "Lyssetis", "Lysseton", "Lyssexius", "Lytheus", "Lythus", "Lytis", "Lyton", "Lyxius", "Mean", "Mebus", "Mecaan", "Mecabus", "Mecacaon", "Mecacus", "Mecadix", "Mecadon", "Mecados", "Mecaion", "Mecakos", "Mecala", "Mecalaus", "Mecalion", "Mecallo", "Mecalus", "Mecamus", "Mecan", "Mecanix", "Mecaon", "Mecaps", "Mecarius", "Mecaron", "Mecaros", "Mecarus", "Mecaseus", "Mecasse", "Mecatheus", "Mecathus", "Mecatis", "Mecaton", "Mecaxius", "Mecus", "Medix", "Medon", "Medos", "Megrian", "Megribus", "Megricaon", "Megricus", "Megridix", "Megridon", "Megridos", "Megriion", "Megrikos", "Megrila", "Megrilaus", "Megrilion", "Megrillo", "Megrilus", "Megrimus", "Megrin", "Megrinix", "Megrips", "Megririus", "Megriron", "Megriros", "Megrirus", "Megriseus", "Megrisse", "Megritheus", "Megrithus", "Megritis", "Megriton", "Megrixius", "Meion", "Mekian", "Mekibus", "Mekicaon", "Mekicus", "Mekidix", "Mekidon", "Mekidos", "Mekiion", "Mekikos", "Mekila", "Mekilaus", "Mekilion", "Mekillo", "Mekilus", "Mekimus", "Mekin", "Mekinix", "Mekips", "Mekirius", "Mekiron", "Mekiros", "Mekirus", "Mekiseus", "Mekisse", "Mekitheus", "Mekithus", "Mekitis", "Mekiton", "Mekixius", "Mekoan", "Mekobus", "Mekocaon", "Mekocus", "Mekodix", "Mekodon", "Mekodos", "Mekoion", "Mekokos", "Mekola", "Mekolaus", "Mekolion", "Mekollo", "Mekolus", "Mekomus", "Mekon", "Mekonix", "Mekops", "Mekorius", "Mekoron", "Mekoros", "Mekorus", "Mekos", "Mekoseus", "Mekosse", "Mekotheus", "Mekothus", "Mekotis", "Mekoton", "Mekoxius", "Mela", "Melaus", "Melion", "Mello", "Meloan", "Melobus", "Melocaon", "Melocus", "Melodix", "Melodon", "Melodos", "Meloion", "Melokos", "Melola", "Melolaus", "Melolion", "Melollo", "Melolus", "Melomus", "Melon", "Melonix", "Melops", "Melorius", "Meloron", "Meloros", "Melorus", "Meloseus", "Melosse", "Melotheus", "Melothus", "Melotis", "Meloton", "Meloxius", "Melus", "Memoan", "Memobus", "Memocaon", "Memocus", "Memodix", "Memodon", "Memodos", "Memoion", "Memokos", "Memola", "Memolaus", "Memolion", "Memollo", "Memolus", "Memomus", "Memon", "Memonix", "Memops", "Memorius", "Memoron", "Memoros", "Memorus", "Memoseus", "Memosse", "Memotheus", "Memothus", "Memotis", "Memoton", "Memoxius", "Memus", "Men", "Menaan", "Menabus", "Menacaon", "Menacus", "Menadix", "Menadon", "Menados", "Menaion", "Menakos", "Menala", "Menalaus", "Menalion", "Menallo", "Menalus", "Menamus", "Menan", "Menanix", "Menaps", "Menarius", "Menaron", "Menaros", "Menarus", "Menaseus", "Menasse", "Menatheus", "Menathus", "Menatis", "Menaton", "Menaxius", "Menbus", "Mencaon", "Mencus", "Mendix", "Mendon", "Mendos", "Menion", "Menix", "Menkos", "Menla", "Menlaus", "Menlion", "Menllo", "Menlus", "Menmus", "Menn", "Mennix", "Menps", "Menrius", "Menron", "Menros", "Menrus", "Menseus", "Mensse", "Mentheus", "Menthus", "Mentis", "Menton", "Menxius", "Meperian", "Meperibus", "Mepericaon", "Mepericus", "Meperidix", "Meperidon", "Meperidos", "Meperiion", "Meperikos", "Meperila", "Meperilaus", "Meperilion", "Meperillo", "Meperilus", "Meperimus", "Meperin", "Meperinix", "Meperips", "Meperirius", "Meperiron", "Meperiros", "Meperirus", "Meperiseus", "Meperisse", "Meperitheus", "Meperithus", "Meperitis", "Meperiton", "Meperixius", "Mephaan", "Mephabus", "Mephacaon", "Mephacus", "Mephadix", "Mephadon", "Mephados", "Mephaion", "Mephakos", "Mephala", "Mephalaus", "Mephalion", "Mephallo", "Mephalus", "Mephamus", "Mephan", "Mephanix", "Mephaps", "Mepharius", "Mepharon", "Mepharos", "Mepharus", "Mephaseus", "Mephasse", "Mephatheus", "Mephathus", "Mephatis", "Mephaton", "Mephaxius", "Mephoan", "Mephobus", "Mephocaon", "Mephocus", "Mephodix", "Mephodon", "Mephodos", "Mephoion", "Mephokos", "Mephola", "Mepholaus", "Mepholion", "Mephollo", "Mepholus", "Mephomus", "Mephon", "Mephonix", "Mephops", "Mephorius", "Mephoron", "Mephoros", "Mephorus", "Mephoseus", "Mephosse", "Mephotheus", "Mephothus", "Mephotis", "Mephoton", "Mephoxius", "Mephyan", "Mephybus", "Mephycaon", "Mephycus", "Mephydix", "Mephydon", "Mephydos", "Mephyion", "Mephykos", "Mephyla", "Mephylaus", "Mephylion", "Mephyllo", "Mephylus", "Mephymus", "Mephyn", "Mephynix", "Mephyps", "Mephyrius", "Mephyron", "Mephyros", "Mephyrus", "Mephyseus", "Mephysse", "Mephytheus", "Mephythus", "Mephytis", "Mephyton", "Mephyxius", "Meps", "Meraan", "Merabus", "Meracaon", "Meracus", "Meradix", "Meradon", "Merados", "Meraion", "Merakos", "Merala", "Meralaus", "Meralion", "Merallo", "Meralus", "Meramus", "Meran", "Meranix", "Meraps", "Merarius", "Meraron", "Meraros", "Merarus", "Meraseus", "Merasse", "Meratheus", "Merathus", "Meratis", "Meraton", "Meraxius", "Merian", "Meribus", "Mericaon", "Mericus", "Meridix", "Meridon", "Meridos", "Meriion", "Merikos", "Merila", "Merilaus", "Merilion", "Merillo", "Merilus", "Merimus", "Merin", "Merinix", "Merips", "Meririus", "Meriron", "Meriros", "Merirus", "Meriseus", "Merisse", "Meritheus", "Merithus", "Meritis", "Meriton", "Merius", "Merixius", "Meron", "Meros", "Merus", "Meryaan", "Meryabus", "Meryacaon", "Meryacus", "Meryadix", "Meryadon", "Meryados", "Meryaion", "Meryakos", "Meryala", "Meryalaus", "Meryalion", "Meryallo", "Meryalus", "Meryamus", "Meryan", "Meryanix", "Meryaps", "Meryarius", "Meryaron", "Meryaros", "Meryarus", "Meryaseus", "Meryasse", "Meryatheus", "Meryathus", "Meryatis", "Meryaton", "Meryaxius", "Meseus", "Messe", "Messean", "Messebus", "Messecaon", "Messecus", "Messedix", "Messedon", "Messedos", "Messeion", "Messekos", "Messela", "Messelaus", "Messelion", "Messello", "Messelus", "Messemus", "Messen", "Messenix", "Messeps", "Messerius", "Messeron", "Messeros", "Messerus", "Messeseus", "Messesse", "Messetheus", "Messethus", "Messetis", "Messeton", "Messexius", "Metheus", "Methus", "Metis", "Meton", "Mexius", "Mian", "Mibus", "Micaan", "Micabus", "Micacaon", "Micacus", "Micadix", "Micadon", "Micados", "Micaion", "Micakos", "Micala", "Micalaus", "Micalion", "Micallo", "Micalus", "Micamus", "Mican", "Micanix", "Micaon", "Micaps", "Micarius", "Micaron", "Micaros", "Micarus", "Micaseus", "Micasse", "Micatheus", "Micathus", "Micatis", "Micaton", "Micaxius", "Micus", "Midix", "Midon", "Midos", "Migrian", "Migribus", "Migricaon", "Migricus", "Migridix", "Migridon", "Migridos", "Migriion", "Migrikos", "Migrila", "Migrilaus", "Migrilion", "Migrillo", "Migrilus", "Migrimus", "Migrin", "Migrinix", "Migrips", "Migririus", "Migriron", "Migriros", "Migrirus", "Migriseus", "Migrisse", "Migritheus", "Migrithus", "Migritis", "Migriton", "Migrixius", "Miion", "Mikian", "Mikibus", "Mikicaon", "Mikicus", "Mikidix", "Mikidon", "Mikidos", "Mikiion", "Mikikos", "Mikila", "Mikilaus", "Mikilion", "Mikillo", "Mikilus", "Mikimus", "Mikin", "Mikinix", "Mikips", "Mikirius", "Mikiron", "Mikiros", "Mikirus", "Mikiseus", "Mikisse", "Mikitheus", "Mikithus", "Mikitis", "Mikiton", "Mikixius", "Mikoan", "Mikobus", "Mikocaon", "Mikocus", "Mikodix", "Mikodon", "Mikodos", "Mikoion", "Mikokos", "Mikola", "Mikolaus", "Mikolion", "Mikollo", "Mikolus", "Mikomus", "Mikon", "Mikonix", "Mikops", "Mikorius", "Mikoron", "Mikoros", "Mikorus", "Mikos", "Mikoseus", "Mikosse", "Mikotheus", "Mikothus", "Mikotis", "Mikoton", "Mikoxius", "Mila", "Milaus", "Milion", "Millo", "Miloan", "Milobus", "Milocaon", "Milocus", "Milodix", "Milodon", "Milodos", "Miloion", "Milokos", "Milola", "Milolaus", "Milolion", "Milollo", "Milolus", "Milomus", "Milon", "Milonix", "Milops", "Milorius", "Miloron", "Miloros", "Milorus", "Miloseus", "Milosse", "Milotheus", "Milothus", "Milotis", "Miloton", "Miloxius", "Milus", "Mimoan", "Mimobus", "Mimocaon", "Mimocus", "Mimodix", "Mimodon", "Mimodos", "Mimoion", "Mimokos", "Mimola", "Mimolaus", "Mimolion", "Mimollo", "Mimolus", "Mimomus", "Mimon", "Mimonix", "Mimops", "Mimorius", "Mimoron", "Mimoros", "Mimorus", "Mimoseus", "Mimosse", "Mimotheus", "Mimothus", "Mimotis", "Mimoton", "Mimoxius", "Mimus", "Min", "Minaan", "Minabus", "Minacaon", "Minacus", "Minadix", "Minadon", "Minados", "Minaion", "Minakos", "Minala", "Minalaus", "Minalion", "Minallo", "Minalus", "Minamus", "Minan", "Minanix", "Minaps", "Minarius", "Minaron", "Minaros", "Minarus", "Minaseus", "Minasse", "Minatheus", "Minathus", "Minatis", "Minaton", "Minaxius", "Minbus", "Mincaon", "Mincus", "Mindix", "Mindon", "Mindos", "Minion", "Minix", "Minkos", "Minla", "Minlaus", "Minlion", "Minllo", "Minlus", "Minmus", "Minn", "Minnix", "Minps", "Minrius", "Minron", "Minros", "Minrus", "Minseus", "Minsse", "Mintheus", "Minthus", "Mintis", "Minton", "Minxius", "Miperian", "Miperibus", "Mipericaon", "Mipericus", "Miperidix", "Miperidon", "Miperidos", "Miperiion", "Miperikos", "Miperila", "Miperilaus", "Miperilion", "Miperillo", "Miperilus", "Miperimus", "Miperin", "Miperinix", "Miperips", "Miperirius", "Miperiron", "Miperiros", "Miperirus", "Miperiseus", "Miperisse", "Miperitheus", "Miperithus", "Miperitis", "Miperiton", "Miperixius", "Miphaan", "Miphabus", "Miphacaon", "Miphacus", "Miphadix", "Miphadon", "Miphados", "Miphaion", "Miphakos", "Miphala", "Miphalaus", "Miphalion", "Miphallo", "Miphalus", "Miphamus", "Miphan", "Miphanix", "Miphaps", "Mipharius", "Mipharon", "Mipharos", "Mipharus", "Miphaseus", "Miphasse", "Miphatheus", "Miphathus", "Miphatis", "Miphaton", "Miphaxius", "Miphoan", "Miphobus", "Miphocaon", "Miphocus", "Miphodix", "Miphodon", "Miphodos", "Miphoion", "Miphokos", "Miphola", "Mipholaus", "Mipholion", "Miphollo", "Mipholus", "Miphomus", "Miphon", "Miphonix", "Miphops", "Miphorius", "Miphoron", "Miphoros", "Miphorus", "Miphoseus", "Miphosse", "Miphotheus", "Miphothus", "Miphotis", "Miphoton", "Miphoxius", "Miphyan", "Miphybus", "Miphycaon", "Miphycus", "Miphydix", "Miphydon", "Miphydos", "Miphyion", "Miphykos", "Miphyla", "Miphylaus", "Miphylion", "Miphyllo", "Miphylus", "Miphymus", "Miphyn", "Miphynix", "Miphyps", "Miphyrius", "Miphyron", "Miphyros", "Miphyrus", "Miphyseus", "Miphysse", "Miphytheus", "Miphythus", "Miphytis", "Miphyton", "Miphyxius", "Mips", "Miraan", "Mirabus", "Miracaon", "Miracus", "Miradix", "Miradon", "Mirados", "Miraion", "Mirakos", "Mirala", "Miralaus", "Miralion", "Mirallo", "Miralus", "Miramus", "Miran", "Miranix", "Miraps", "Mirarius", "Miraron", "Miraros", "Mirarus", "Miraseus", "Mirasse", "Miratheus", "Mirathus", "Miratis", "Miraton", "Miraxius", "Mirian", "Miribus", "Miricaon", "Miricus", "Miridix", "Miridon", "Miridos", "Miriion", "Mirikos", "Mirila", "Mirilaus", "Mirilion", "Mirillo", "Mirilus", "Mirimus", "Mirin", "Mirinix", "Mirips", "Miririus", "Miriron", "Miriros", "Mirirus", "Miriseus", "Mirisse", "Miritheus", "Mirithus", "Miritis", "Miriton", "Mirius", "Mirixius", "Miron", "Miros", "Mirus", "Miryaan", "Miryabus", "Miryacaon", "Miryacus", "Miryadix", "Miryadon", "Miryados", "Miryaion", "Miryakos", "Miryala", "Miryalaus", "Miryalion", "Miryallo", "Miryalus", "Miryamus", "Miryan", "Miryanix", "Miryaps", "Miryarius", "Miryaron", "Miryaros", "Miryarus", "Miryaseus", "Miryasse", "Miryatheus", "Miryathus", "Miryatis", "Miryaton", "Miryaxius", "Miseus", "Misse", "Missean", "Missebus", "Missecaon", "Missecus", "Missedix", "Missedon", "Missedos", "Misseion", "Missekos", "Missela", "Misselaus", "Misselion", "Missello", "Misselus", "Missemus", "Missen", "Missenix", "Misseps", "Misserius", "Misseron", "Misseros", "Misserus", "Misseseus", "Missesse", "Missetheus", "Missethus", "Missetis", "Misseton", "Missexius", "Mitheus", "Mithus", "Mitis", "Miton", "Mixius", "Pean", "Pebus", "Pecaan", "Pecabus", "Pecacaon", "Pecacus", "Pecadix", "Pecadon", "Pecados", "Pecaion", "Pecakos", "Pecala", "Pecalaus", "Pecalion", "Pecallo", "Pecalus", "Pecamus", "Pecan", "Pecanix", "Pecaon", "Pecaps", "Pecarius", "Pecaron", "Pecaros", "Pecarus", "Pecaseus", "Pecasse", "Pecatheus", "Pecathus", "Pecatis", "Pecaton", "Pecaxius", "Pecus", "Pedix", "Pedon", "Pedos", "Pegrian", "Pegribus", "Pegricaon", "Pegricus", "Pegridix", "Pegridon", "Pegridos", "Pegriion", "Pegrikos", "Pegrila", "Pegrilaus", "Pegrilion", "Pegrillo", "Pegrilus", "Pegrimus", "Pegrin", "Pegrinix", "Pegrips", "Pegririus", "Pegriron", "Pegriros", "Pegrirus", "Pegriseus", "Pegrisse", "Pegritheus", "Pegrithus", "Pegritis", "Pegriton", "Pegrixius", "Peion", "Pekian", "Pekibus", "Pekicaon", "Pekicus", "Pekidix", "Pekidon", "Pekidos", "Pekiion", "Pekikos", "Pekila", "Pekilaus", "Pekilion", "Pekillo", "Pekilus", "Pekimus", "Pekin", "Pekinix", "Pekips", "Pekirius", "Pekiron", "Pekiros", "Pekirus", "Pekiseus", "Pekisse", "Pekitheus", "Pekithus", "Pekitis", "Pekiton", "Pekixius", "Pekoan", "Pekobus", "Pekocaon", "Pekocus", "Pekodix", "Pekodon", "Pekodos", "Pekoion", "Pekokos", "Pekola", "Pekolaus", "Pekolion", "Pekollo", "Pekolus", "Pekomus", "Pekon", "Pekonix", "Pekops", "Pekorius", "Pekoron", "Pekoros", "Pekorus", "Pekos", "Pekoseus", "Pekosse", "Pekotheus", "Pekothus", "Pekotis", "Pekoton", "Pekoxius", "Pela", "Pelaus", "Pelion", "Pello", "Peloan", "Pelobus", "Pelocaon", "Pelocus", "Pelodix", "Pelodon", "Pelodos", "Peloion", "Pelokos", "Pelola", "Pelolaus", "Pelolion", "Pelollo", "Pelolus", "Pelomus", "Pelon", "Pelonix", "Pelops", "Pelorius", "Peloron", "Peloros", "Pelorus", "Peloseus", "Pelosse", "Pelotheus", "Pelothus", "Pelotis", "Peloton", "Peloxius", "Pelus", "Pemoan", "Pemobus", "Pemocaon", "Pemocus", "Pemodix", "Pemodon", "Pemodos", "Pemoion", "Pemokos", "Pemola", "Pemolaus", "Pemolion", "Pemollo", "Pemolus", "Pemomus", "Pemon", "Pemonix", "Pemops", "Pemorius", "Pemoron", "Pemoros", "Pemorus", "Pemoseus", "Pemosse", "Pemotheus", "Pemothus", "Pemotis", "Pemoton", "Pemoxius", "Pemus", "Pen", "Penaan", "Penabus", "Penacaon", "Penacus", "Penadix", "Penadon", "Penados", "Penaion", "Penakos", "Penala", "Penalaus", "Penalion", "Penallo", "Penalus", "Penamus", "Penan", "Penanix", "Penaps", "Penarius", "Penaron", "Penaros", "Penarus", "Penaseus", "Penasse", "Penatheus", "Penathus", "Penatis", "Penaton", "Penaxius", "Penbus", "Pencaon", "Pencus", "Pendix", "Pendon", "Pendos", "Penion", "Penix", "Penkos", "Penla", "Penlaus", "Penlion", "Penllo", "Penlus", "Penmus", "Penn", "Pennix", "Penps", "Penrius", "Penron", "Penros", "Penrus", "Penseus", "Pensse", "Pentheus", "Penthus", "Pentis", "Penton", "Penxius", "Peperian", "Peperibus", "Pepericaon", "Pepericus", "Peperidix", "Peperidon", "Peperidos", "Peperiion", "Peperikos", "Peperila", "Peperilaus", "Peperilion", "Peperillo", "Peperilus", "Peperimus", "Peperin", "Peperinix", "Peperips", "Peperirius", "Peperiron", "Peperiros", "Peperirus", "Peperiseus", "Peperisse", "Peperitheus", "Peperithus", "Peperitis", "Peperiton", "Peperixius", "Pephaan", "Pephabus", "Pephacaon", "Pephacus", "Pephadix", "Pephadon", "Pephados", "Pephaion", "Pephakos", "Pephala", "Pephalaus", "Pephalion", "Pephallo", "Pephalus", "Pephamus", "Pephan", "Pephanix", "Pephaps", "Pepharius", "Pepharon", "Pepharos", "Pepharus", "Pephaseus", "Pephasse", "Pephatheus", "Pephathus", "Pephatis", "Pephaton", "Pephaxius", "Pephoan", "Pephobus", "Pephocaon", "Pephocus", "Pephodix", "Pephodon", "Pephodos", "Pephoion", "Pephokos", "Pephola", "Pepholaus", "Pepholion", "Pephollo", "Pepholus", "Pephomus", "Pephon", "Pephonix", "Pephops", "Pephorius", "Pephoron", "Pephoros", "Pephorus", "Pephoseus", "Pephosse", "Pephotheus", "Pephothus", "Pephotis", "Pephoton", "Pephoxius", "Pephyan", "Pephybus", "Pephycaon", "Pephycus", "Pephydix", "Pephydon", "Pephydos", "Pephyion", "Pephykos", "Pephyla", "Pephylaus", "Pephylion", "Pephyllo", "Pephylus", "Pephymus", "Pephyn", "Pephynix", "Pephyps", "Pephyrius", "Pephyron", "Pephyros", "Pephyrus", "Pephyseus", "Pephysse", "Pephytheus", "Pephythus", "Pephytis", "Pephyton", "Pephyxius", "Peps", "Peraan", "Perabus", "Peracaon", "Peracus", "Peradix", "Peradon", "Perados", "Peraion", "Perakos", "Perala", "Peralaus", "Peralion", "Perallo", "Peralus", "Peramus", "Peran", "Peranix", "Peraps", "Perarius", "Peraron", "Peraros", "Perarus", "Peraseus", "Perasse", "Peratheus", "Perathus", "Peratis", "Peraton", "Peraxius", "Perian", "Peribus", "Pericaon", "Pericus", "Peridix", "Peridon", "Peridos", "Periion", "Perikos", "Perila", "Perilaus", "Perilion", "Perillo", "Perilus", "Perimus", "Perin", "Perinix", "Perips", "Peririus", "Periron", "Periros", "Perirus", "Periseus", "Perisse", "Peritheus", "Perithus", "Peritis", "Periton", "Perius", "Perixius", "Peron", "Peros", "Perus", "Peryaan", "Peryabus", "Peryacaon", "Peryacus", "Peryadix", "Peryadon", "Peryados", "Peryaion", "Peryakos", "Peryala", "Peryalaus", "Peryalion", "Peryallo", "Peryalus", "Peryamus", "Peryan", "Peryanix", "Peryaps", "Peryarius", "Peryaron", "Peryaros", "Peryarus", "Peryaseus", "Peryasse", "Peryatheus", "Peryathus", "Peryatis", "Peryaton", "Peryaxius", "Peseus", "Pesse", "Pessean", "Pessebus", "Pessecaon", "Pessecus", "Pessedix", "Pessedon", "Pessedos", "Pesseion", "Pessekos", "Pessela", "Pesselaus", "Pesselion", "Pessello", "Pesselus", "Pessemus", "Pessen", "Pessenix", "Pesseps", "Pesserius", "Pesseron", "Pesseros", "Pesserus", "Pesseseus", "Pessesse", "Pessetheus", "Pessethus", "Pessetis", "Pesseton", "Pessexius", "Petheus", "Pethus", "Petis", "Peton", "Pexius", "Pian", "Pibus", "Picaan", "Picabus", "Picacaon", "Picacus", "Picadix", "Picadon", "Picados", "Picaion", "Picakos", "Picala", "Picalaus", "Picalion", "Picallo", "Picalus", "Picamus", "Pican", "Picanix", "Picaon", "Picaps", "Picarius", "Picaron", "Picaros", "Picarus", "Picaseus", "Picasse", "Picatheus", "Picathus", "Picatis", "Picaton", "Picaxius", "Picus", "Pidix", "Pidon", "Pidos", "Pigrian", "Pigribus", "Pigricaon", "Pigricus", "Pigridix", "Pigridon", "Pigridos", "Pigriion", "Pigrikos", "Pigrila", "Pigrilaus", "Pigrilion", "Pigrillo", "Pigrilus", "Pigrimus", "Pigrin", "Pigrinix", "Pigrips", "Pigririus", "Pigriron", "Pigriros", "Pigrirus", "Pigriseus", "Pigrisse", "Pigritheus", "Pigrithus", "Pigritis", "Pigriton", "Pigrixius", "Piion", "Pikian", "Pikibus", "Pikicaon", "Pikicus", "Pikidix", "Pikidon", "Pikidos", "Pikiion", "Pikikos", "Pikila", "Pikilaus", "Pikilion", "Pikillo", "Pikilus", "Pikimus", "Pikin", "Pikinix", "Pikips", "Pikirius", "Pikiron", "Pikiros", "Pikirus", "Pikiseus", "Pikisse", "Pikitheus", "Pikithus", "Pikitis", "Pikiton", "Pikixius", "Pikoan", "Pikobus", "Pikocaon", "Pikocus", "Pikodix", "Pikodon", "Pikodos", "Pikoion", "Pikokos", "Pikola", "Pikolaus", "Pikolion", "Pikollo", "Pikolus", "Pikomus", "Pikon", "Pikonix", "Pikops", "Pikorius", "Pikoron", "Pikoros", "Pikorus", "Pikos", "Pikoseus", "Pikosse", "Pikotheus", "Pikothus", "Pikotis", "Pikoton", "Pikoxius", "Pila", "Pilaus", "Pilion", "Pillo", "Piloan", "Pilobus", "Pilocaon", "Pilocus", "Pilodix", "Pilodon", "Pilodos", "Piloion", "Pilokos", "Pilola", "Pilolaus", "Pilolion", "Pilollo", "Pilolus", "Pilomus", "Pilon", "Pilonix", "Pilops", "Pilorius", "Piloron", "Piloros", "Pilorus", "Piloseus", "Pilosse", "Pilotheus", "Pilothus", "Pilotis", "Piloton", "Piloxius", "Pilus", "Pimoan", "Pimobus", "Pimocaon", "Pimocus", "Pimodix", "Pimodon", "Pimodos", "Pimoion", "Pimokos", "Pimola", "Pimolaus", "Pimolion", "Pimollo", "Pimolus", "Pimomus", "Pimon", "Pimonix", "Pimops", "Pimorius", "Pimoron", "Pimoros", "Pimorus", "Pimoseus", "Pimosse", "Pimotheus", "Pimothus", "Pimotis", "Pimoton", "Pimoxius", "Pimus", "Pin", "Pinaan", "Pinabus", "Pinacaon", "Pinacus", "Pinadix", "Pinadon", "Pinados", "Pinaion", "Pinakos", "Pinala", "Pinalaus", "Pinalion", "Pinallo", "Pinalus", "Pinamus", "Pinan", "Pinanix", "Pinaps", "Pinarius", "Pinaron", "Pinaros", "Pinarus", "Pinaseus", "Pinasse", "Pinatheus", "Pinathus", "Pinatis", "Pinaton", "Pinaxius", "Pinbus", "Pincaon", "Pincus", "Pindix", "Pindon", "Pindos", "Pinion", "Pinix", "Pinkos", "Pinla", "Pinlaus", "Pinlion", "Pinllo", "Pinlus", "Pinmus", "Pinn", "Pinnix", "Pinps", "Pinrius", "Pinron", "Pinros", "Pinrus", "Pinseus", "Pinsse", "Pintheus", "Pinthus", "Pintis", "Pinton", "Pinxius", "Piperian", "Piperibus", "Pipericaon", "Pipericus", "Piperidix", "Piperidon", "Piperidos", "Piperiion", "Piperikos", "Piperila", "Piperilaus", "Piperilion", "Piperillo", "Piperilus", "Piperimus", "Piperin", "Piperinix", "Piperips", "Piperirius", "Piperiron", "Piperiros", "Piperirus", "Piperiseus", "Piperisse", "Piperitheus", "Piperithus", "Piperitis", "Piperiton", "Piperixius", "Piphaan", "Piphabus", "Piphacaon", "Piphacus", "Piphadix", "Piphadon", "Piphados", "Piphaion", "Piphakos", "Piphala", "Piphalaus", "Piphalion", "Piphallo", "Piphalus", "Piphamus", "Piphan", "Piphanix", "Piphaps", "Pipharius", "Pipharon", "Pipharos", "Pipharus", "Piphaseus", "Piphasse", "Piphatheus", "Piphathus", "Piphatis", "Piphaton", "Piphaxius", "Piphoan", "Piphobus", "Piphocaon", "Piphocus", "Piphodix", "Piphodon", "Piphodos", "Piphoion", "Piphokos", "Piphola", "Pipholaus", "Pipholion", "Piphollo", "Pipholus", "Piphomus", "Piphon", "Piphonix", "Piphops", "Piphorius", "Piphoron", "Piphoros", "Piphorus", "Piphoseus", "Piphosse", "Piphotheus", "Piphothus", "Piphotis", "Piphoton", "Piphoxius", "Piphyan", "Piphybus", "Piphycaon", "Piphycus", "Piphydix", "Piphydon", "Piphydos", "Piphyion", "Piphykos", "Piphyla", "Piphylaus", "Piphylion", "Piphyllo", "Piphylus", "Piphymus", "Piphyn", "Piphynix", "Piphyps", "Piphyrius", "Piphyron", "Piphyros", "Piphyrus", "Piphyseus", "Piphysse", "Piphytheus", "Piphythus", "Piphytis", "Piphyton", "Piphyxius", "Pips", "Piraan", "Pirabus", "Piracaon", "Piracus", "Piradix", "Piradon", "Pirados", "Piraion", "Pirakos", "Pirala", "Piralaus", "Piralion", "Pirallo", "Piralus", "Piramus", "Piran", "Piranix", "Piraps", "Pirarius", "Piraron", "Piraros", "Pirarus", "Piraseus", "Pirasse", "Piratheus", "Pirathus", "Piratis", "Piraton", "Piraxius", "Pirian", "Piribus", "Piricaon", "Piricus", "Piridix", "Piridon", "Piridos", "Piriion", "Pirikos", "Pirila", "Pirilaus", "Pirilion", "Pirillo", "Pirilus", "Pirimus", "Pirin", "Pirinix", "Pirips", "Piririus", "Piriron", "Piriros", "Pirirus", "Piriseus", "Pirisse", "Piritheus", "Pirithus", "Piritis", "Piriton", "Pirius", "Pirixius", "Piron", "Piros", "Pirus", "Piryaan", "Piryabus", "Piryacaon", "Piryacus", "Piryadix", "Piryadon", "Piryados", "Piryaion", "Piryakos", "Piryala", "Piryalaus", "Piryalion", "Piryallo", "Piryalus", "Piryamus", "Piryan", "Piryanix", "Piryaps", "Piryarius", "Piryaron", "Piryaros", "Piryarus", "Piryaseus", "Piryasse", "Piryatheus", "Piryathus", "Piryatis", "Piryaton", "Piryaxius", "Piseus", "Pisse", "Pissean", "Pissebus", "Pissecaon", "Pissecus", "Pissedix", "Pissedon", "Pissedos", "Pisseion", "Pissekos", "Pissela", "Pisselaus", "Pisselion", "Pissello", "Pisselus", "Pissemus", "Pissen", "Pissenix", "Pisseps", "Pisserius", "Pisseron", "Pisseros", "Pisserus", "Pisseseus", "Pissesse", "Pissetheus", "Pissethus", "Pissetis", "Pisseton", "Pissexius", "Pitheus", "Pithus", "Pitis", "Piton", "Pixius", "Plean", "Plebus", "Plecaan", "Plecabus", "Plecacaon", "Plecacus", "Plecadix", "Plecadon", "Plecados", "Plecaion", "Plecakos", "Plecala", "Plecalaus", "Plecalion", "Plecallo", "Plecalus", "Plecamus", "Plecan", "Plecanix", "Plecaon", "Plecaps", "Plecarius", "Plecaron", "Plecaros", "Plecarus", "Plecaseus", "Plecasse", "Plecatheus", "Plecathus", "Plecatis", "Plecaton", "Plecaxius", "Plecus", "Pledix", "Pledon", "Pledos", "Plegrian", "Plegribus", "Plegricaon", "Plegricus", "Plegridix", "Plegridon", "Plegridos", "Plegriion", "Plegrikos", "Plegrila", "Plegrilaus", "Plegrilion", "Plegrillo", "Plegrilus", "Plegrimus", "Plegrin", "Plegrinix", "Plegrips", "Plegririus", "Plegriron", "Plegriros", "Plegrirus", "Plegriseus", "Plegrisse", "Plegritheus", "Plegrithus", "Plegritis", "Plegriton", "Plegrixius", "Pleion", "Plekian", "Plekibus", "Plekicaon", "Plekicus", "Plekidix", "Plekidon", "Plekidos", "Plekiion", "Plekikos", "Plekila", "Plekilaus", "Plekilion", "Plekillo", "Plekilus", "Plekimus", "Plekin", "Plekinix", "Plekips", "Plekirius", "Plekiron", "Plekiros", "Plekirus", "Plekiseus", "Plekisse", "Plekitheus", "Plekithus", "Plekitis", "Plekiton", "Plekixius", "Plekoan", "Plekobus", "Plekocaon", "Plekocus", "Plekodix", "Plekodon", "Plekodos", "Plekoion", "Plekokos", "Plekola", "Plekolaus", "Plekolion", "Plekollo", "Plekolus", "Plekomus", "Plekon", "Plekonix", "Plekops", "Plekorius", "Plekoron", "Plekoros", "Plekorus", "Plekos", "Plekoseus", "Plekosse", "Plekotheus", "Plekothus", "Plekotis", "Plekoton", "Plekoxius", "Plela", "Plelaus", "Plelion", "Plello", "Pleloan", "Plelobus", "Plelocaon", "Plelocus", "Plelodix", "Plelodon", "Plelodos", "Pleloion", "Plelokos", "Plelola", "Plelolaus", "Plelolion", "Plelollo", "Plelolus", "Plelomus", "Plelon", "Plelonix", "Plelops", "Plelorius", "Pleloron", "Pleloros", "Plelorus", "Pleloseus", "Plelosse", "Plelotheus", "Plelothus", "Plelotis", "Pleloton", "Pleloxius", "Plelus", "Plemoan", "Plemobus", "Plemocaon", "Plemocus", "Plemodix", "Plemodon", "Plemodos", "Plemoion", "Plemokos", "Plemola", "Plemolaus", "Plemolion", "Plemollo", "Plemolus", "Plemomus", "Plemon", "Plemonix", "Plemops", "Plemorius", "Plemoron", "Plemoros", "Plemorus", "Plemoseus", "Plemosse", "Plemotheus", "Plemothus", "Plemotis", "Plemoton", "Plemoxius", "Plemus", "Plen", "Plenaan", "Plenabus", "Plenacaon", "Plenacus", "Plenadix", "Plenadon", "Plenados", "Plenaion", "Plenakos", "Plenala", "Plenalaus", "Plenalion", "Plenallo", "Plenalus", "Plenamus", "Plenan", "Plenanix", "Plenaps", "Plenarius", "Plenaron", "Plenaros", "Plenarus", "Plenaseus", "Plenasse", "Plenatheus", "Plenathus", "Plenatis", "Plenaton", "Plenaxius", "Plenbus", "Plencaon", "Plencus", "Plendix", "Plendon", "Plendos", "Plenion", "Plenix", "Plenkos", "Plenla", "Plenlaus", "Plenlion", "Plenllo", "Plenlus", "Plenmus", "Plenn", "Plennix", "Plenps", "Plenrius", "Plenron", "Plenros", "Plenrus", "Plenseus", "Plensse", "Plentheus", "Plenthus", "Plentis", "Plenton", "Plenxius", "Pleperian", "Pleperibus", "Plepericaon", "Plepericus", "Pleperidix", "Pleperidon", "Pleperidos", "Pleperiion", "Pleperikos", "Pleperila", "Pleperilaus", "Pleperilion", "Pleperillo", "Pleperilus", "Pleperimus", "Pleperin", "Pleperinix", "Pleperips", "Pleperirius", "Pleperiron", "Pleperiros", "Pleperirus", "Pleperiseus", "Pleperisse", "Pleperitheus", "Pleperithus", "Pleperitis", "Pleperiton", "Pleperixius", "Plephaan", "Plephabus", "Plephacaon", "Plephacus", "Plephadix", "Plephadon", "Plephados", "Plephaion", "Plephakos", "Plephala", "Plephalaus", "Plephalion", "Plephallo", "Plephalus", "Plephamus", "Plephan", "Plephanix", "Plephaps", "Plepharius", "Plepharon", "Plepharos", "Plepharus", "Plephaseus", "Plephasse", "Plephatheus", "Plephathus", "Plephatis", "Plephaton", "Plephaxius", "Plephoan", "Plephobus", "Plephocaon", "Plephocus", "Plephodix", "Plephodon", "Plephodos", "Plephoion", "Plephokos", "Plephola", "Plepholaus", "Plepholion", "Plephollo", "Plepholus", "Plephomus", "Plephon", "Plephonix", "Plephops", "Plephorius", "Plephoron", "Plephoros", "Plephorus", "Plephoseus", "Plephosse", "Plephotheus", "Plephothus", "Plephotis", "Plephoton", "Plephoxius", "Plephyan", "Plephybus", "Plephycaon", "Plephycus", "Plephydix", "Plephydon", "Plephydos", "Plephyion", "Plephykos", "Plephyla", "Plephylaus", "Plephylion", "Plephyllo", "Plephylus", "Plephymus", "Plephyn", "Plephynix", "Plephyps", "Plephyrius", "Plephyron", "Plephyros", "Plephyrus", "Plephyseus", "Plephysse", "Plephytheus", "Plephythus", "Plephytis", "Plephyton", "Plephyxius", "Pleps", "Pleraan", "Plerabus", "Pleracaon", "Pleracus", "Pleradix", "Pleradon", "Plerados", "Pleraion", "Plerakos", "Plerala", "Pleralaus", "Pleralion", "Plerallo", "Pleralus", "Pleramus", "Pleran", "Pleranix", "Pleraps", "Plerarius", "Pleraron", "Pleraros", "Plerarus", "Pleraseus", "Plerasse", "Pleratheus", "Plerathus", "Pleratis", "Pleraton", "Pleraxius", "Plerian", "Pleribus", "Plericaon", "Plericus", "Pleridix", "Pleridon", "Pleridos", "Pleriion", "Plerikos", "Plerila", "Plerilaus", "Plerilion", "Plerillo", "Plerilus", "Plerimus", "Plerin", "Plerinix", "Plerips", "Pleririus", "Pleriron", "Pleriros", "Plerirus", "Pleriseus", "Plerisse", "Pleritheus", "Plerithus", "Pleritis", "Pleriton", "Plerius", "Plerixius", "Pleron", "Pleros", "Plerus", "Pleryaan", "Pleryabus", "Pleryacaon", "Pleryacus", "Pleryadix", "Pleryadon", "Pleryados", "Pleryaion", "Pleryakos", "Pleryala", "Pleryalaus", "Pleryalion", "Pleryallo", "Pleryalus", "Pleryamus", "Pleryan", "Pleryanix", "Pleryaps", "Pleryarius", "Pleryaron", "Pleryaros", "Pleryarus", "Pleryaseus", "Pleryasse", "Pleryatheus", "Pleryathus", "Pleryatis", "Pleryaton", "Pleryaxius", "Pleseus", "Plesse", "Plessean", "Plessebus", "Plessecaon", "Plessecus", "Plessedix", "Plessedon", "Plessedos", "Plesseion", "Plessekos", "Plessela", "Plesselaus", "Plesselion", "Plessello", "Plesselus", "Plessemus", "Plessen", "Plessenix", "Plesseps", "Plesserius", "Plesseron", "Plesseros", "Plesserus", "Plesseseus", "Plessesse", "Plessetheus", "Plessethus", "Plessetis", "Plesseton", "Plessexius", "Pletheus", "Plethus", "Pletis", "Pleton", "Plexius", "Pyan", "Pybus", "Pycaan", "Pycabus", "Pycacaon", "Pycacus", "Pycadix", "Pycadon", "Pycados", "Pycaion", "Pycakos", "Pycala", "Pycalaus", "Pycalion", "Pycallo", "Pycalus", "Pycamus", "Pycan", "Pycanix", "Pycaon", "Pycaps", "Pycarius", "Pycaron", "Pycaros", "Pycarus", "Pycaseus", "Pycasse", "Pycatheus", "Pycathus", "Pycatis", "Pycaton", "Pycaxius", "Pycus", "Pydix", "Pydon", "Pydos", "Pygrian", "Pygribus", "Pygricaon", "Pygricus", "Pygridix", "Pygridon", "Pygridos", "Pygriion", "Pygrikos", "Pygrila", "Pygrilaus", "Pygrilion", "Pygrillo", "Pygrilus", "Pygrimus", "Pygrin", "Pygrinix", "Pygrips", "Pygririus", "Pygriron", "Pygriros", "Pygrirus", "Pygriseus", "Pygrisse", "Pygritheus", "Pygrithus", "Pygritis", "Pygriton", "Pygrixius", "Pyion", "Pykian", "Pykibus", "Pykicaon", "Pykicus", "Pykidix", "Pykidon", "Pykidos", "Pykiion", "Pykikos", "Pykila", "Pykilaus", "Pykilion", "Pykillo", "Pykilus", "Pykimus", "Pykin", "Pykinix", "Pykips", "Pykirius", "Pykiron", "Pykiros", "Pykirus", "Pykiseus", "Pykisse", "Pykitheus", "Pykithus", "Pykitis", "Pykiton", "Pykixius", "Pykoan", "Pykobus", "Pykocaon", "Pykocus", "Pykodix", "Pykodon", "Pykodos", "Pykoion", "Pykokos", "Pykola", "Pykolaus", "Pykolion", "Pykollo", "Pykolus", "Pykomus", "Pykon", "Pykonix", "Pykops", "Pykorius", "Pykoron", "Pykoros", "Pykorus", "Pykos", "Pykoseus", "Pykosse", "Pykotheus", "Pykothus", "Pykotis", "Pykoton", "Pykoxius", "Pyla", "Pylaus", "Pylion", "Pyllo", "Pyloan", "Pylobus", "Pylocaon", "Pylocus", "Pylodix", "Pylodon", "Pylodos", "Pyloion", "Pylokos", "Pylola", "Pylolaus", "Pylolion", "Pylollo", "Pylolus", "Pylomus", "Pylon", "Pylonix", "Pylops", "Pylorius", "Pyloron", "Pyloros", "Pylorus", "Pyloseus", "Pylosse", "Pylotheus", "Pylothus", "Pylotis", "Pyloton", "Pyloxius", "Pylus", "Pymoan", "Pymobus", "Pymocaon", "Pymocus", "Pymodix", "Pymodon", "Pymodos", "Pymoion", "Pymokos", "Pymola", "Pymolaus", "Pymolion", "Pymollo", "Pymolus", "Pymomus", "Pymon", "Pymonix", "Pymops", "Pymorius", "Pymoron", "Pymoros", "Pymorus", "Pymoseus", "Pymosse", "Pymotheus", "Pymothus", "Pymotis", "Pymoton", "Pymoxius", "Pymus", "Pyn", "Pynaan", "Pynabus", "Pynacaon", "Pynacus", "Pynadix", "Pynadon", "Pynados", "Pynaion", "Pynakos", "Pynala", "Pynalaus", "Pynalion", "Pynallo", "Pynalus", "Pynamus", "Pynan", "Pynanix", "Pynaps", "Pynarius", "Pynaron", "Pynaros", "Pynarus", "Pynaseus", "Pynasse", "Pynatheus", "Pynathus", "Pynatis", "Pynaton", "Pynaxius", "Pynbus", "Pyncaon", "Pyncus", "Pyndix", "Pyndon", "Pyndos", "Pynion", "Pynix", "Pynkos", "Pynla", "Pynlaus", "Pynlion", "Pynllo", "Pynlus", "Pynmus", "Pynn", "Pynnix", "Pynps", "Pynrius", "Pynron", "Pynros", "Pynrus", "Pynseus", "Pynsse", "Pyntheus", "Pynthus", "Pyntis", "Pynton", "Pynxius", "Pyperian", "Pyperibus", "Pypericaon", "Pypericus", "Pyperidix", "Pyperidon", "Pyperidos", "Pyperiion", "Pyperikos", "Pyperila", "Pyperilaus", "Pyperilion", "Pyperillo", "Pyperilus", "Pyperimus", "Pyperin", "Pyperinix", "Pyperips", "Pyperirius", "Pyperiron", "Pyperiros", "Pyperirus", "Pyperiseus", "Pyperisse", "Pyperitheus", "Pyperithus", "Pyperitis", "Pyperiton", "Pyperixius", "Pyphaan", "Pyphabus", "Pyphacaon", "Pyphacus", "Pyphadix", "Pyphadon", "Pyphados", "Pyphaion", "Pyphakos", "Pyphala", "Pyphalaus", "Pyphalion", "Pyphallo", "Pyphalus", "Pyphamus", "Pyphan", "Pyphanix", "Pyphaps", "Pypharius", "Pypharon", "Pypharos", "Pypharus", "Pyphaseus", "Pyphasse", "Pyphatheus", "Pyphathus", "Pyphatis", "Pyphaton", "Pyphaxius", "Pyphoan", "Pyphobus", "Pyphocaon", "Pyphocus", "Pyphodix", "Pyphodon", "Pyphodos", "Pyphoion", "Pyphokos", "Pyphola", "Pypholaus", "Pypholion", "Pyphollo", "Pypholus", "Pyphomus", "Pyphon", "Pyphonix", "Pyphops", "Pyphorius", "Pyphoron", "Pyphoros", "Pyphorus", "Pyphoseus", "Pyphosse", "Pyphotheus", "Pyphothus", "Pyphotis", "Pyphoton", "Pyphoxius", "Pyphyan", "Pyphybus", "Pyphycaon", "Pyphycus", "Pyphydix", "Pyphydon", "Pyphydos", "Pyphyion", "Pyphykos", "Pyphyla", "Pyphylaus", "Pyphylion", "Pyphyllo", "Pyphylus", "Pyphymus", "Pyphyn", "Pyphynix", "Pyphyps", "Pyphyrius", "Pyphyron", "Pyphyros", "Pyphyrus", "Pyphyseus", "Pyphysse", "Pyphytheus", "Pyphythus", "Pyphytis", "Pyphyton", "Pyphyxius", "Pyps", "Pyraan", "Pyrabus", "Pyracaon", "Pyracus", "Pyradix", "Pyradon", "Pyrados", "Pyraion", "Pyrakos", "Pyrala", "Pyralaus", "Pyralion", "Pyrallo", "Pyralus", "Pyramus", "Pyran", "Pyranix", "Pyraps", "Pyrarius", "Pyraron", "Pyraros", "Pyrarus", "Pyraseus", "Pyrasse", "Pyratheus", "Pyrathus", "Pyratis", "Pyraton", "Pyraxius", "Pyrian", "Pyribus", "Pyricaon", "Pyricus", "Pyridix", "Pyridon", "Pyridos", "Pyriion", "Pyrikos", "Pyrila", "Pyrilaus", "Pyrilion", "Pyrillo", "Pyrilus", "Pyrimus", "Pyrin", "Pyrinix", "Pyrips", "Pyririus", "Pyriron", "Pyriros", "Pyrirus", "Pyriseus", "Pyrisse", "Pyritheus", "Pyrithus", "Pyritis", "Pyriton", "Pyrius", "Pyrixius", "Pyron", "Pyros", "Pyrus", "Pyryaan", "Pyryabus", "Pyryacaon", "Pyryacus", "Pyryadix", "Pyryadon", "Pyryados", "Pyryaion", "Pyryakos", "Pyryala", "Pyryalaus", "Pyryalion", "Pyryallo", "Pyryalus", "Pyryamus", "Pyryan", "Pyryanix", "Pyryaps", "Pyryarius", "Pyryaron", "Pyryaros", "Pyryarus", "Pyryaseus", "Pyryasse", "Pyryatheus", "Pyryathus", "Pyryatis", "Pyryaton", "Pyryaxius", "Pyseus", "Pysse", "Pyssean", "Pyssebus", "Pyssecaon", "Pyssecus", "Pyssedix", "Pyssedon", "Pyssedos", "Pysseion", "Pyssekos", "Pyssela", "Pysselaus", "Pysselion", "Pyssello", "Pysselus", "Pyssemus", "Pyssen", "Pyssenix", "Pysseps", "Pysserius", "Pysseron", "Pysseros", "Pysserus", "Pysseseus", "Pyssesse", "Pyssetheus", "Pyssethus", "Pyssetis", "Pysseton", "Pyssexius", "Pytheus", "Pythus", "Pytis", "Pyton", "Pyxius", "Q=", "Thean", "Thebus", "Thecaan", "Thecabus", "Thecacaon", "Thecacus", "Thecadix", "Thecadon", "Thecados", "Thecaion", "Thecakos", "Thecala", "Thecalaus", "Thecalion", "Thecallo", "Thecalus", "Thecamus", "Thecan", "Thecanix", "Thecaon", "Thecaps", "Thecarius", "Thecaron", "Thecaros", "Thecarus", "Thecaseus", "Thecasse", "Thecatheus", "Thecathus", "Thecatis", "Thecaton", "Thecaxius", "Thecus", "Thedix", "Thedon", "Thedos", "Thegrian", "Thegribus", "Thegricaon", "Thegricus", "Thegridix", "Thegridon", "Thegridos", "Thegriion", "Thegrikos", "Thegrila", "Thegrilaus", "Thegrilion", "Thegrillo", "Thegrilus", "Thegrimus", "Thegrin", "Thegrinix", "Thegrips", "Thegririus", "Thegriron", "Thegriros", "Thegrirus", "Thegriseus", "Thegrisse", "Thegritheus", "Thegrithus", "Thegritis", "Thegriton", "Thegrixius", "Theion", "Thekian", "Thekibus", "Thekicaon", "Thekicus", "Thekidix", "Thekidon", "Thekidos", "Thekiion", "Thekikos", "Thekila", "Thekilaus", "Thekilion", "Thekillo", "Thekilus", "Thekimus", "Thekin", "Thekinix", "Thekips", "Thekirius", "Thekiron", "Thekiros", "Thekirus", "Thekiseus", "Thekisse", "Thekitheus", "Thekithus", "Thekitis", "Thekiton", "Thekixius", "Thekoan", "Thekobus", "Thekocaon", "Thekocus", "Thekodix", "Thekodon", "Thekodos", "Thekoion", "Thekokos", "Thekola", "Thekolaus", "Thekolion", "Thekollo", "Thekolus", "Thekomus", "Thekon", "Thekonix", "Thekops", "Thekorius", "Thekoron", "Thekoros", "Thekorus", "Thekos", "Thekoseus", "Thekosse", "Thekotheus", "Thekothus", "Thekotis", "Thekoton", "Thekoxius", "Thela", "Thelaus", "Thelion", "Thello", "Theloan", "Thelobus", "Thelocaon", "Thelocus", "Thelodix", "Thelodon", "Thelodos", "Theloion", "Thelokos", "Thelola", "Thelolaus", "Thelolion", "Thelollo", "Thelolus", "Thelomus", "Thelon", "Thelonix", "Thelops", "Thelorius", "Theloron", "Theloros", "Thelorus", "Theloseus", "Thelosse", "Thelotheus", "Thelothus", "Thelotis", "Theloton", "Theloxius", "Thelus", "Themoan", "Themobus", "Themocaon", "Themocus", "Themodix", "Themodon", "Themodos", "Themoion", "Themokos", "Themola", "Themolaus", "Themolion", "Themollo", "Themolus", "Themomus", "Themon", "Themonix", "Themops", "Themorius", "Themoron", "Themoros", "Themorus", "Themoseus", "Themosse", "Themotheus", "Themothus", "Themotis", "Themoton", "Themoxius", "Themus", "Then", "Thenaan", "Thenabus", "Thenacaon", "Thenacus", "Thenadix", "Thenadon", "Thenados", "Thenaion", "Thenakos", "Thenala", "Thenalaus", "Thenalion", "Thenallo", "Thenalus", "Thenamus", "Thenan", "Thenanix", "Thenaps", "Thenarius", "Thenaron", "Thenaros", "Thenarus", "Thenaseus", "Thenasse", "Thenatheus", "Thenathus", "Thenatis", "Thenaton", "Thenaxius", "Thenbus", "Thencaon", "Thencus", "Thendix", "Thendon", "Thendos", "Thenion", "Thenix", "Thenkos", "Thenla", "Thenlaus", "Thenlion", "Thenllo", "Thenlus", "Thenmus", "Thenn", "Thennix", "Thenps", "Thenrius", "Thenron", "Thenros", "Thenrus", "Thenseus", "Thensse", "Thentheus", "Thenthus", "Thentis", "Thenton", "Thenxius", "Theperian", "Theperibus", "Thepericaon", "Thepericus", "Theperidix", "Theperidon", "Theperidos", "Theperiion", "Theperikos", "Theperila", "Theperilaus", "Theperilion", "Theperillo", "Theperilus", "Theperimus", "Theperin", "Theperinix", "Theperips", "Theperirius", "Theperiron", "Theperiros", "Theperirus", "Theperiseus", "Theperisse", "Theperitheus", "Theperithus", "Theperitis", "Theperiton", "Theperixius", "Thephaan", "Thephabus", "Thephacaon", "Thephacus", "Thephadix", "Thephadon", "Thephados", "Thephaion", "Thephakos", "Thephala", "Thephalaus", "Thephalion", "Thephallo", "Thephalus", "Thephamus", "Thephan", "Thephanix", "Thephaps", "Thepharius", "Thepharon", "Thepharos", "Thepharus", "Thephaseus", "Thephasse", "Thephatheus", "Thephathus", "Thephatis", "Thephaton", "Thephaxius", "Thephoan", "Thephobus", "Thephocaon", "Thephocus", "Thephodix", "Thephodon", "Thephodos", "Thephoion", "Thephokos", "Thephola", "Thepholaus", "Thepholion", "Thephollo", "Thepholus", "Thephomus", "Thephon", "Thephonix", "Thephops", "Thephorius", "Thephoron", "Thephoros", "Thephorus", "Thephoseus", "Thephosse", "Thephotheus", "Thephothus", "Thephotis", "Thephoton", "Thephoxius", "Thephyan", "Thephybus", "Thephycaon", "Thephycus", "Thephydix", "Thephydon", "Thephydos", "Thephyion", "Thephykos", "Thephyla", "Thephylaus", "Thephylion", "Thephyllo", "Thephylus", "Thephymus", "Thephyn", "Thephynix", "Thephyps", "Thephyrius", "Thephyron", "Thephyros", "Thephyrus", "Thephyseus", "Thephysse", "Thephytheus", "Thephythus", "Thephytis", "Thephyton", "Thephyxius", "Theps", "Theraan", "Therabus", "Theracaon", "Theracus", "Theradix", "Theradon", "Therados", "Theraion", "Therakos", "Therala", "Theralaus", "Theralion", "Therallo", "Theralus", "Theramus", "Theran", "Theranix", "Theraps", "Therarius", "Theraron", "Theraros", "Therarus", "Theraseus", "Therasse", "Theratheus", "Therathus", "Theratis", "Theraton", "Theraxius", "Therian", "Theribus", "Thericaon", "Thericus", "Theridix", "Theridon", "Theridos", "Theriion", "Therikos", "Therila", "Therilaus", "Therilion", "Therillo", "Therilus", "Therimus", "Therin", "Therinix", "Therips", "Theririus", "Theriron", "Theriros", "Therirus", "Theriseus", "Therisse", "Theritheus", "Therithus", "Theritis", "Theriton", "Therius", "Therixius", "Theron", "Theros", "Therus", "Theryaan", "Theryabus", "Theryacaon", "Theryacus", "Theryadix", "Theryadon", "Theryados", "Theryaion", "Theryakos", "Theryala", "Theryalaus", "Theryalion", "Theryallo", "Theryalus", "Theryamus", "Theryan", "Theryanix", "Theryaps", "Theryarius", "Theryaron", "Theryaros", "Theryarus", "Theryaseus", "Theryasse", "Theryatheus", "Theryathus", "Theryatis", "Theryaton", "Theryaxius", "Theseus", "Thesse", "Thessean", "Thessebus", "Thessecaon", "Thessecus", "Thessedix", "Thessedon", "Thessedos", "Thesseion", "Thessekos", "Thessela", "Thesselaus", "Thesselion", "Thessello", "Thesselus", "Thessemus", "Thessen", "Thessenix", "Thesseps", "Thesserius", "Thesseron", "Thesseros", "Thesserus", "Thesseseus", "Thessesse", "Thessetheus", "Thessethus", "Thessetis", "Thesseton", "Thessexius", "Thetheus", "Thethus", "Thetis", "Theton", "Thexius", "Tian", "Tibus", "Ticaan", "Ticabus", "Ticacaon", "Ticacus", "Ticadix", "Ticadon", "Ticados", "Ticaion", "Ticakos", "Ticala", "Ticalaus", "Ticalion", "Ticallo", "Ticalus", "Ticamus", "Tican", "Ticanix", "Ticaon", "Ticaps", "Ticarius", "Ticaron", "Ticaros", "Ticarus", "Ticaseus", "Ticasse", "Ticatheus", "Ticathus", "Ticatis", "Ticaton", "Ticaxius", "Ticus", "Tidix", "Tidon", "Tidos", "Tigrian", "Tigribus", "Tigricaon", "Tigricus", "Tigridix", "Tigridon", "Tigridos", "Tigriion", "Tigrikos", "Tigrila", "Tigrilaus", "Tigrilion", "Tigrillo", "Tigrilus", "Tigrimus", "Tigrin", "Tigrinix", "Tigrips", "Tigririus", "Tigriron", "Tigriros", "Tigrirus", "Tigriseus", "Tigrisse", "Tigritheus", "Tigrithus", "Tigritis", "Tigriton", "Tigrixius", "Tiion", "Tikian", "Tikibus", "Tikicaon", "Tikicus", "Tikidix", "Tikidon", "Tikidos", "Tikiion", "Tikikos", "Tikila", "Tikilaus", "Tikilion", "Tikillo", "Tikilus", "Tikimus", "Tikin", "Tikinix", "Tikips", "Tikirius", "Tikiron", "Tikiros", "Tikirus", "Tikiseus", "Tikisse", "Tikitheus", "Tikithus", "Tikitis", "Tikiton", "Tikixius", "Tikoan", "Tikobus", "Tikocaon", "Tikocus", "Tikodix", "Tikodon", "Tikodos", "Tikoion", "Tikokos", "Tikola", "Tikolaus", "Tikolion", "Tikollo", "Tikolus", "Tikomus", "Tikon", "Tikonix", "Tikops", "Tikorius", "Tikoron", "Tikoros", "Tikorus", "Tikos", "Tikoseus", "Tikosse", "Tikotheus", "Tikothus", "Tikotis", "Tikoton", "Tikoxius", "Tila", "Tilaus", "Tilion", "Tillo", "Tiloan", "Tilobus", "Tilocaon", "Tilocus", "Tilodix", "Tilodon", "Tilodos", "Tiloion", "Tilokos", "Tilola", "Tilolaus", "Tilolion", "Tilollo", "Tilolus", "Tilomus", "Tilon", "Tilonix", "Tilops", "Tilorius", "Tiloron", "Tiloros", "Tilorus", "Tiloseus", "Tilosse", "Tilotheus", "Tilothus", "Tilotis", "Tiloton", "Tiloxius", "Tilus", "Timoan", "Timobus", "Timocaon", "Timocus", "Timodix", "Timodon", "Timodos", "Timoion", "Timokos", "Timola", "Timolaus", "Timolion", "Timollo", "Timolus", "Timomus", "Timon", "Timonix", "Timops", "Timorius", "Timoron", "Timoros", "Timorus", "Timoseus", "Timosse", "Timotheus", "Timothus", "Timotis", "Timoton", "Timoxius", "Timus", "Tin", "Tinaan", "Tinabus", "Tinacaon", "Tinacus", "Tinadix", "Tinadon", "Tinados", "Tinaion", "Tinakos", "Tinala", "Tinalaus", "Tinalion", "Tinallo", "Tinalus", "Tinamus", "Tinan", "Tinanix", "Tinaps", "Tinarius", "Tinaron", "Tinaros", "Tinarus", "Tinaseus", "Tinasse", "Tinatheus", "Tinathus", "Tinatis", "Tinaton", "Tinaxius", "Tinbus", "Tincaon", "Tincus", "Tindix", "Tindon", "Tindos", "Tinion", "Tinix", "Tinkos", "Tinla", "Tinlaus", "Tinlion", "Tinllo", "Tinlus", "Tinmus", "Tinn", "Tinnix", "Tinps", "Tinrius", "Tinron", "Tinros", "Tinrus", "Tinseus", "Tinsse", "Tintheus", "Tinthus", "Tintis", "Tinton", "Tinxius", "Tiperian", "Tiperibus", "Tipericaon", "Tipericus", "Tiperidix", "Tiperidon", "Tiperidos", "Tiperiion", "Tiperikos", "Tiperila", "Tiperilaus", "Tiperilion", "Tiperillo", "Tiperilus", "Tiperimus", "Tiperin", "Tiperinix", "Tiperips", "Tiperirius", "Tiperiron", "Tiperiros", "Tiperirus", "Tiperiseus", "Tiperisse", "Tiperitheus", "Tiperithus", "Tiperitis", "Tiperiton", "Tiperixius", "Tiphaan", "Tiphabus", "Tiphacaon", "Tiphacus", "Tiphadix", "Tiphadon", "Tiphados", "Tiphaion", "Tiphakos", "Tiphala", "Tiphalaus", "Tiphalion", "Tiphallo", "Tiphalus", "Tiphamus", "Tiphan", "Tiphanix", "Tiphaps", "Tipharius", "Tipharon", "Tipharos", "Tipharus", "Tiphaseus", "Tiphasse", "Tiphatheus", "Tiphathus", "Tiphatis", "Tiphaton", "Tiphaxius", "Tiphoan", "Tiphobus", "Tiphocaon", "Tiphocus", "Tiphodix", "Tiphodon", "Tiphodos", "Tiphoion", "Tiphokos", "Tiphola", "Tipholaus", "Tipholion", "Tiphollo", "Tipholus", "Tiphomus", "Tiphon", "Tiphonix", "Tiphops", "Tiphorius", "Tiphoron", "Tiphoros", "Tiphorus", "Tiphoseus", "Tiphosse", "Tiphotheus", "Tiphothus", "Tiphotis", "Tiphoton", "Tiphoxius", "Tiphyan", "Tiphybus", "Tiphycaon", "Tiphycus", "Tiphydix", "Tiphydon", "Tiphydos", "Tiphyion", "Tiphykos", "Tiphyla", "Tiphylaus", "Tiphylion", "Tiphyllo", "Tiphylus", "Tiphymus", "Tiphyn", "Tiphynix", "Tiphyps", "Tiphyrius", "Tiphyron", "Tiphyros", "Tiphyrus", "Tiphyseus", "Tiphysse", "Tiphytheus", "Tiphythus", "Tiphytis", "Tiphyton", "Tiphyxius", "Tips", "Tiraan", "Tirabus", "Tiracaon", "Tiracus", "Tiradix", "Tiradon", "Tirados", "Tiraion", "Tirakos", "Tirala", "Tiralaus", "Tiralion", "Tirallo", "Tiralus", "Tiramus", "Tiran", "Tiranix", "Tiraps", "Tirarius", "Tiraron", "Tiraros", "Tirarus", "Tiraseus", "Tirasse", "Tiratheus", "Tirathus", "Tiratis", "Tiraton", "Tiraxius", "Tirian", "Tiribus", "Tiricaon", "Tiricus", "Tiridix", "Tiridon", "Tiridos", "Tiriion", "Tirikos", "Tirila", "Tirilaus", "Tirilion", "Tirillo", "Tirilus", "Tirimus", "Tirin", "Tirinix", "Tirips", "Tiririus", "Tiriron", "Tiriros", "Tirirus", "Tiriseus", "Tirisse", "Tiritheus", "Tirithus", "Tiritis", "Tiriton", "Tirius", "Tirixius", "Tiron", "Tiros", "Tirus", "Tiryaan", "Tiryabus", "Tiryacaon", "Tiryacus", "Tiryadix", "Tiryadon", "Tiryados", "Tiryaion", "Tiryakos", "Tiryala", "Tiryalaus", "Tiryalion", "Tiryallo", "Tiryalus", "Tiryamus", "Tiryan", "Tiryanix", "Tiryaps", "Tiryarius", "Tiryaron", "Tiryaros", "Tiryarus", "Tiryaseus", "Tiryasse", "Tiryatheus", "Tiryathus", "Tiryatis", "Tiryaton", "Tiryaxius", "Tiseus", "Tisse", "Tissean", "Tissebus", "Tissecaon", "Tissecus", "Tissedix", "Tissedon", "Tissedos", "Tisseion", "Tissekos", "Tissela", "Tisselaus", "Tisselion", "Tissello", "Tisselus", "Tissemus", "Tissen", "Tissenix", "Tisseps", "Tisserius", "Tisseron", "Tisseros", "Tisserus", "Tisseseus", "Tissesse", "Tissetheus", "Tissethus", "Tissetis", "Tisseton", "Tissexius", "Titheus", "Tithus", "Titis", "Titon", "Tixius", "Ulyan", "Ulybus", "Ulycaan", "Ulycabus", "Ulycacaon", "Ulycacus", "Ulycadix", "Ulycadon", "Ulycados", "Ulycaion", "Ulycakos", "Ulycala", "Ulycalaus", "Ulycalion", "Ulycallo", "Ulycalus", "Ulycamus", "Ulycan", "Ulycanix", "Ulycaon", "Ulycaps", "Ulycarius", "Ulycaron", "Ulycaros", "Ulycarus", "Ulycaseus", "Ulycasse", "Ulycatheus", "Ulycathus", "Ulycatis", "Ulycaton", "Ulycaxius", "Ulycus", "Ulydix", "Ulydon", "Ulydos", "Ulygrian", "Ulygribus", "Ulygricaon", "Ulygricus", "Ulygridix", "Ulygridon", "Ulygridos", "Ulygriion", "Ulygrikos", "Ulygrila", "Ulygrilaus", "Ulygrilion", "Ulygrillo", "Ulygrilus", "Ulygrimus", "Ulygrin", "Ulygrinix", "Ulygrips", "Ulygririus", "Ulygriron", "Ulygriros", "Ulygrirus", "Ulygriseus", "Ulygrisse", "Ulygritheus", "Ulygrithus", "Ulygritis", "Ulygriton", "Ulygrixius", "Ulyion", "Ulykian", "Ulykibus", "Ulykicaon", "Ulykicus", "Ulykidix", "Ulykidon", "Ulykidos", "Ulykiion", "Ulykikos", "Ulykila", "Ulykilaus", "Ulykilion", "Ulykillo", "Ulykilus", "Ulykimus", "Ulykin", "Ulykinix", "Ulykips", "Ulykirius", "Ulykiron", "Ulykiros", "Ulykirus", "Ulykiseus", "Ulykisse", "Ulykitheus", "Ulykithus", "Ulykitis", "Ulykiton", "Ulykixius", "Ulykoan", "Ulykobus", "Ulykocaon", "Ulykocus", "Ulykodix", "Ulykodon", "Ulykodos", "Ulykoion", "Ulykokos", "Ulykola", "Ulykolaus", "Ulykolion", "Ulykollo", "Ulykolus", "Ulykomus", "Ulykon", "Ulykonix", "Ulykops", "Ulykorius", "Ulykoron", "Ulykoros", "Ulykorus", "Ulykos", "Ulykoseus", "Ulykosse", "Ulykotheus", "Ulykothus", "Ulykotis", "Ulykoton", "Ulykoxius", "Ulyla", "Ulylaus", "Ulylion", "Ulyllo", "Ulyloan", "Ulylobus", "Ulylocaon", "Ulylocus", "Ulylodix", "Ulylodon", "Ulylodos", "Ulyloion", "Ulylokos", "Ulylola", "Ulylolaus", "Ulylolion", "Ulylollo", "Ulylolus", "Ulylomus", "Ulylon", "Ulylonix", "Ulylops", "Ulylorius", "Ulyloron", "Ulyloros", "Ulylorus", "Ulyloseus", "Ulylosse", "Ulylotheus", "Ulylothus", "Ulylotis", "Ulyloton", "Ulyloxius", "Ulylus", "Ulymoan", "Ulymobus", "Ulymocaon", "Ulymocus", "Ulymodix", "Ulymodon", "Ulymodos", "Ulymoion", "Ulymokos", "Ulymola", "Ulymolaus", "Ulymolion", "Ulymollo", "Ulymolus", "Ulymomus", "Ulymon", "Ulymonix", "Ulymops", "Ulymorius", "Ulymoron", "Ulymoros", "Ulymorus", "Ulymoseus", "Ulymosse", "Ulymotheus", "Ulymothus", "Ulymotis", "Ulymoton", "Ulymoxius", "Ulymus", "Ulyn", "Ulynaan", "Ulynabus", "Ulynacaon", "Ulynacus", "Ulynadix", "Ulynadon", "Ulynados", "Ulynaion", "Ulynakos", "Ulynala", "Ulynalaus", "Ulynalion", "Ulynallo", "Ulynalus", "Ulynamus", "Ulynan", "Ulynanix", "Ulynaps", "Ulynarius", "Ulynaron", "Ulynaros", "Ulynarus", "Ulynaseus", "Ulynasse", "Ulynatheus", "Ulynathus", "Ulynatis", "Ulynaton", "Ulynaxius", "Ulynbus", "Ulyncaon", "Ulyncus", "Ulyndix", "Ulyndon", "Ulyndos", "Ulynion", "Ulynix", "Ulynkos", "Ulynla", "Ulynlaus", "Ulynlion", "Ulynllo", "Ulynlus", "Ulynmus", "Ulynn", "Ulynnix", "Ulynps", "Ulynrius", "Ulynron", "Ulynros", "Ulynrus", "Ulynseus", "Ulynsse", "Ulyntheus", "Ulynthus", "Ulyntis", "Ulynton", "Ulynxius", "Ulyperian", "Ulyperibus", "Ulypericaon", "Ulypericus", "Ulyperidix", "Ulyperidon", "Ulyperidos", "Ulyperiion", "Ulyperikos", "Ulyperila", "Ulyperilaus", "Ulyperilion", "Ulyperillo", "Ulyperilus", "Ulyperimus", "Ulyperin", "Ulyperinix", "Ulyperips", "Ulyperirius", "Ulyperiron", "Ulyperiros", "Ulyperirus", "Ulyperiseus", "Ulyperisse", "Ulyperitheus", "Ulyperithus", "Ulyperitis", "Ulyperiton", "Ulyperixius", "Ulyphaan", "Ulyphabus", "Ulyphacaon", "Ulyphacus", "Ulyphadix", "Ulyphadon", "Ulyphados", "Ulyphaion", "Ulyphakos", "Ulyphala", "Ulyphalaus", "Ulyphalion", "Ulyphallo", "Ulyphalus", "Ulyphamus", "Ulyphan", "Ulyphanix", "Ulyphaps", "Ulypharius", "Ulypharon", "Ulypharos", "Ulypharus", "Ulyphaseus", "Ulyphasse", "Ulyphatheus", "Ulyphathus", "Ulyphatis", "Ulyphaton", "Ulyphaxius", "Ulyphoan", "Ulyphobus", "Ulyphocaon", "Ulyphocus", "Ulyphodix", "Ulyphodon", "Ulyphodos", "Ulyphoion", "Ulyphokos", "Ulyphola", "Ulypholaus", "Ulypholion", "Ulyphollo", "Ulypholus", "Ulyphomus", "Ulyphon", "Ulyphonix", "Ulyphops", "Ulyphorius", "Ulyphoron", "Ulyphoros", "Ulyphorus", "Ulyphoseus", "Ulyphosse", "Ulyphotheus", "Ulyphothus", "Ulyphotis", "Ulyphoton", "Ulyphoxius", "Ulyphyan", "Ulyphybus", "Ulyphycaon", "Ulyphycus", "Ulyphydix", "Ulyphydon", "Ulyphydos", "Ulyphyion", "Ulyphykos", "Ulyphyla", "Ulyphylaus", "Ulyphylion", "Ulyphyllo", "Ulyphylus", "Ulyphymus", "Ulyphyn", "Ulyphynix", "Ulyphyps", "Ulyphyrius", "Ulyphyron", "Ulyphyros", "Ulyphyrus", "Ulyphyseus", "Ulyphysse", "Ulyphytheus", "Ulyphythus", "Ulyphytis", "Ulyphyton", "Ulyphyxius", "Ulyps", "Ulyraan", "Ulyrabus", "Ulyracaon", "Ulyracus", "Ulyradix", "Ulyradon", "Ulyrados", "Ulyraion", "Ulyrakos", "Ulyrala", "Ulyralaus", "Ulyralion", "Ulyrallo", "Ulyralus", "Ulyramus", "Ulyran", "Ulyranix", "Ulyraps", "Ulyrarius", "Ulyraron", "Ulyraros", "Ulyrarus", "Ulyraseus", "Ulyrasse", "Ulyratheus", "Ulyrathus", "Ulyratis", "Ulyraton", "Ulyraxius", "Ulyrian", "Ulyribus", "Ulyricaon", "Ulyricus", "Ulyridix", "Ulyridon", "Ulyridos", "Ulyriion", "Ulyrikos", "Ulyrila", "Ulyrilaus", "Ulyrilion", "Ulyrillo", "Ulyrilus", "Ulyrimus", "Ulyrin", "Ulyrinix", "Ulyrips", "Ulyririus", "Ulyriron", "Ulyriros", "Ulyrirus", "Ulyriseus", "Ulyrisse", "Ulyritheus", "Ulyrithus", "Ulyritis", "Ulyriton", "Ulyrius", "Ulyrixius", "Ulyron", "Ulyros", "Ulyrus", "Ulyryaan", "Ulyryabus", "Ulyryacaon", "Ulyryacus", "Ulyryadix", "Ulyryadon", "Ulyryados", "Ulyryaion", "Ulyryakos", "Ulyryala", "Ulyryalaus", "Ulyryalion", "Ulyryallo", "Ulyryalus", "Ulyryamus", "Ulyryan", "Ulyryanix", "Ulyryaps", "Ulyryarius", "Ulyryaron", "Ulyryaros", "Ulyryarus", "Ulyryaseus", "Ulyryasse", "Ulyryatheus", "Ulyryathus", "Ulyryatis", "Ulyryaton", "Ulyryaxius", "Ulyseus", "Ulysse", "Ulyssean", "Ulyssebus", "Ulyssecaon", "Ulyssecus", "Ulyssedix", "Ulyssedon", "Ulyssedos", "Ulysseion", "Ulyssekos", "Ulyssela", "Ulysselaus", "Ulysselion", "Ulyssello", "Ulysselus", "Ulyssemus", "Ulyssen", "Ulyssenix", "Ulysseps", "Ulysserius", "Ulysseron", "Ulysseros", "Ulysserus", "Ulysseseus", "Ulyssesse", "Ulyssetheus", "Ulyssethus", "Ulyssetis", "Ulysseton", "Ulyssexius", "Ulytheus", "Ulythus", "Ulytis", "Ulyton", "Ulyxius", "Xaan", "Xabus", "Xacaan", "Xacabus", "Xacacaon", "Xacacus", "Xacadix", "Xacadon", "Xacados", "Xacaion", "Xacakos", "Xacala", "Xacalaus", "Xacalion", "Xacallo", "Xacalus", "Xacamus", "Xacan", "Xacanix", "Xacaon", "Xacaps", "Xacarius", "Xacaron", "Xacaros", "Xacarus", "Xacaseus", "Xacasse", "Xacatheus", "Xacathus", "Xacatis", "Xacaton", "Xacaxius", "Xacus", "Xadix", "Xadon", "Xados", "Xagrian", "Xagribus", "Xagricaon", "Xagricus", "Xagridix", "Xagridon", "Xagridos", "Xagriion", "Xagrikos", "Xagrila", "Xagrilaus", "Xagrilion", "Xagrillo", "Xagrilus", "Xagrimus", "Xagrin", "Xagrinix", "Xagrips", "Xagririus", "Xagriron", "Xagriros", "Xagrirus", "Xagriseus", "Xagrisse", "Xagritheus", "Xagrithus", "Xagritis", "Xagriton", "Xagrixius", "Xaion", "Xakian", "Xakibus", "Xakicaon", "Xakicus", "Xakidix", "Xakidon", "Xakidos", "Xakiion", "Xakikos", "Xakila", "Xakilaus", "Xakilion", "Xakillo", "Xakilus", "Xakimus", "Xakin", "Xakinix", "Xakips", "Xakirius", "Xakiron", "Xakiros", "Xakirus", "Xakiseus", "Xakisse", "Xakitheus", "Xakithus", "Xakitis", "Xakiton", "Xakixius", "Xakoan", "Xakobus", "Xakocaon", "Xakocus", "Xakodix", "Xakodon", "Xakodos", "Xakoion", "Xakokos", "Xakola", "Xakolaus", "Xakolion", "Xakollo", "Xakolus", "Xakomus", "Xakon", "Xakonix", "Xakops", "Xakorius", "Xakoron", "Xakoros", "Xakorus", "Xakos", "Xakoseus", "Xakosse", "Xakotheus", "Xakothus", "Xakotis", "Xakoton", "Xakoxius", "Xala", "Xalaus", "Xalion", "Xallo", "Xaloan", "Xalobus", "Xalocaon", "Xalocus", "Xalodix", "Xalodon", "Xalodos", "Xaloion", "Xalokos", "Xalola", "Xalolaus", "Xalolion", "Xalollo", "Xalolus", "Xalomus", "Xalon", "Xalonix", "Xalops", "Xalorius", "Xaloron", "Xaloros", "Xalorus", "Xaloseus", "Xalosse", "Xalotheus", "Xalothus", "Xalotis", "Xaloton", "Xaloxius", "Xalus", "Xamoan", "Xamobus", "Xamocaon", "Xamocus", "Xamodix", "Xamodon", "Xamodos", "Xamoion", "Xamokos", "Xamola", "Xamolaus", "Xamolion", "Xamollo", "Xamolus", "Xamomus", "Xamon", "Xamonix", "Xamops", "Xamorius", "Xamoron", "Xamoros", "Xamorus", "Xamoseus", "Xamosse", "Xamotheus", "Xamothus", "Xamotis", "Xamoton", "Xamoxius", "Xamus", "Xan", "Xanaan", "Xanabus", "Xanacaon", "Xanacus", "Xanadix", "Xanadon", "Xanados", "Xanaion", "Xanakos", "Xanala", "Xanalaus", "Xanalion", "Xanallo", "Xanalus", "Xanamus", "Xanan", "Xananix", "Xanaps", "Xanarius", "Xanaron", "Xanaros", "Xanarus", "Xanaseus", "Xanasse", "Xanatheus", "Xanathus", "Xanatis", "Xanaton", "Xanaxius", "Xanbus", "Xancaon", "Xancus", "Xandix", "Xandon", "Xandos", "Xanion", "Xanix", "Xankos", "Xanla", "Xanlaus", "Xanlion", "Xanllo", "Xanlus", "Xanmus", "Xann", "Xannix", "Xanps", "Xanrius", "Xanron", "Xanros", "Xanrus", "Xanseus", "Xansse", "Xantheus", "Xanthus", "Xantis", "Xanton", "Xanxius", "Xaperian", "Xaperibus", "Xapericaon", "Xapericus", "Xaperidix", "Xaperidon", "Xaperidos", "Xaperiion", "Xaperikos", "Xaperila", "Xaperilaus", "Xaperilion", "Xaperillo", "Xaperilus", "Xaperimus", "Xaperin", "Xaperinix", "Xaperips", "Xaperirius", "Xaperiron", "Xaperiros", "Xaperirus", "Xaperiseus", "Xaperisse", "Xaperitheus", "Xaperithus", "Xaperitis", "Xaperiton", "Xaperixius", "Xaphaan", "Xaphabus", "Xaphacaon", "Xaphacus", "Xaphadix", "Xaphadon", "Xaphados", "Xaphaion", "Xaphakos", "Xaphala", "Xaphalaus", "Xaphalion", "Xaphallo", "Xaphalus", "Xaphamus", "Xaphan", "Xaphanix", "Xaphaps" +, "Xapharius", "Xapharon", "Xapharos", "Xapharus", "Xaphaseus", "Xaphasse", "Xaphatheus", "Xaphathus", "Xaphatis", "Xaphaton", "Xaphaxius", "Xaphoan", "Xaphobus", "Xaphocaon", "Xaphocus", "Xaphodix", "Xaphodon", "Xaphodos", "Xaphoion", "Xaphokos", "Xaphola", "Xapholaus", "Xapholion", "Xaphollo", "Xapholus", "Xaphomus", "Xaphon", "Xaphonix", "Xaphops", "Xaphorius", "Xaphoron", "Xaphoros", "Xaphorus", "Xaphoseus", "Xaphosse", "Xaphotheus", "Xaphothus", "Xaphotis", "Xaphoton", "Xaphoxius", "Xaphyan", "Xaphybus", "Xaphycaon", "Xaphycus", "Xaphydix", "Xaphydon", "Xaphydos", "Xaphyion", "Xaphykos", "Xaphyla", "Xaphylaus", "Xaphylion", "Xaphyllo", "Xaphylus", "Xaphymus", "Xaphyn", "Xaphynix", "Xaphyps", "Xaphyrius", "Xaphyron", "Xaphyros", "Xaphyrus", "Xaphyseus", "Xaphysse", "Xaphytheus", "Xaphythus", "Xaphytis", "Xaphyton", "Xaphyxius", "Xaps", "Xaraan", "Xarabus", "Xaracaon", "Xaracus", "Xaradix", "Xaradon", "Xarados", "Xaraion", "Xarakos", "Xarala", "Xaralaus", "Xaralion", "Xarallo", "Xaralus", "Xaramus", "Xaran", "Xaranix", "Xaraps", "Xararius", "Xararon", "Xararos", "Xararus", "Xaraseus", "Xarasse", "Xaratheus", "Xarathus", "Xaratis", "Xaraton", "Xaraxius", "Xarian", "Xaribus", "Xaricaon", "Xaricus", "Xaridix", "Xaridon", "Xaridos", "Xariion", "Xarikos", "Xarila", "Xarilaus", "Xarilion", "Xarillo", "Xarilus", "Xarimus", "Xarin", "Xarinix", "Xarips", "Xaririus", "Xariron", "Xariros", "Xarirus", "Xariseus", "Xarisse", "Xaritheus", "Xarithus", "Xaritis", "Xariton", "Xarius", "Xarixius", "Xaron", "Xaros", "Xarus", "Xaryaan", "Xaryabus", "Xaryacaon", "Xaryacus", "Xaryadix", "Xaryadon", "Xaryados", "Xaryaion", "Xaryakos", "Xaryala", "Xaryalaus", "Xaryalion", "Xaryallo", "Xaryalus", "Xaryamus", "Xaryan", "Xaryanix", "Xaryaps", "Xaryarius", "Xaryaron", "Xaryaros", "Xaryarus", "Xaryaseus", "Xaryasse", "Xaryatheus", "Xaryathus", "Xaryatis", "Xaryaton", "Xaryaxius", "Xaseus", "Xasse", "Xassean", "Xassebus", "Xassecaon", "Xassecus", "Xassedix", "Xassedon", "Xassedos", "Xasseion", "Xassekos", "Xassela", "Xasselaus", "Xasselion", "Xassello", "Xasselus", "Xassemus", "Xassen", "Xassenix", "Xasseps", "Xasserius", "Xasseron", "Xasseros", "Xasserus", "Xasseseus", "Xassesse", "Xassetheus", "Xassethus", "Xassetis", "Xasseton", "Xassexius", "Xatheus", "Xathus", "Xatis", "Xaton", "Xaxius", "Xyan", "Xybus", "Xycaan", "Xycabus", "Xycacaon", "Xycacus", "Xycadix", "Xycadon", "Xycados", "Xycaion", "Xycakos", "Xycala", "Xycalaus", "Xycalion", "Xycallo", "Xycalus", "Xycamus", "Xycan", "Xycanix", "Xycaon", "Xycaps", "Xycarius", "Xycaron", "Xycaros", "Xycarus", "Xycaseus", "Xycasse", "Xycatheus", "Xycathus", "Xycatis", "Xycaton", "Xycaxius", "Xycus", "Xydix", "Xydon", "Xydos", "Xygrian", "Xygribus", "Xygricaon", "Xygricus", "Xygridix", "Xygridon", "Xygridos", "Xygriion", "Xygrikos", "Xygrila", "Xygrilaus", "Xygrilion", "Xygrillo", "Xygrilus", "Xygrimus", "Xygrin", "Xygrinix", "Xygrips", "Xygririus", "Xygriron", "Xygriros", "Xygrirus", "Xygriseus", "Xygrisse", "Xygritheus", "Xygrithus", "Xygritis", "Xygriton", "Xygrixius", "Xyion", "Xykian", "Xykibus", "Xykicaon", "Xykicus", "Xykidix", "Xykidon", "Xykidos", "Xykiion", "Xykikos", "Xykila", "Xykilaus", "Xykilion", "Xykillo", "Xykilus", "Xykimus", "Xykin", "Xykinix", "Xykips", "Xykirius", "Xykiron", "Xykiros", "Xykirus", "Xykiseus", "Xykisse", "Xykitheus", "Xykithus", "Xykitis", "Xykiton", "Xykixius", "Xykoan", "Xykobus", "Xykocaon", "Xykocus", "Xykodix", "Xykodon", "Xykodos", "Xykoion", "Xykokos", "Xykola", "Xykolaus", "Xykolion", "Xykollo", "Xykolus", "Xykomus", "Xykon", "Xykonix", "Xykops", "Xykorius", "Xykoron", "Xykoros", "Xykorus", "Xykos", "Xykoseus", "Xykosse", "Xykotheus", "Xykothus", "Xykotis", "Xykoton", "Xykoxius", "Xyla", "Xylaus", "Xylion", "Xyllo", "Xyloan", "Xylobus", "Xylocaon", "Xylocus", "Xylodix", "Xylodon", "Xylodos", "Xyloion", "Xylokos", "Xylola", "Xylolaus", "Xylolion", "Xylollo", "Xylolus", "Xylomus", "Xylon", "Xylonix", "Xylops", "Xylorius", "Xyloron", "Xyloros", "Xylorus", "Xyloseus", "Xylosse", "Xylotheus", "Xylothus", "Xylotis", "Xyloton", "Xyloxius", "Xylus", "Xymoan", "Xymobus", "Xymocaon", "Xymocus", "Xymodix", "Xymodon", "Xymodos", "Xymoion", "Xymokos", "Xymola", "Xymolaus", "Xymolion", "Xymollo", "Xymolus", "Xymomus", "Xymon", "Xymonix", "Xymops", "Xymorius", "Xymoron", "Xymoros", "Xymorus", "Xymoseus", "Xymosse", "Xymotheus", "Xymothus", "Xymotis", "Xymoton", "Xymoxius", "Xymus", "Xyn", "Xynaan", "Xynabus", "Xynacaon", "Xynacus", "Xynadix", "Xynadon", "Xynados", "Xynaion", "Xynakos", "Xynala", "Xynalaus", "Xynalion", "Xynallo", "Xynalus", "Xynamus", "Xynan", "Xynanix", "Xynaps", "Xynarius", "Xynaron", "Xynaros", "Xynarus", "Xynaseus", "Xynasse", "Xynatheus", "Xynathus", "Xynatis", "Xynaton", "Xynaxius", "Xynbus", "Xyncaon", "Xyncus", "Xyndix", "Xyndon", "Xyndos", "Xynion", "Xynix", "Xynkos", "Xynla", "Xynlaus", "Xynlion", "Xynllo", "Xynlus", "Xynmus", "Xynn", "Xynnix", "Xynps", "Xynrius", "Xynron", "Xynros", "Xynrus", "Xynseus", "Xynsse", "Xyntheus", "Xynthus", "Xyntis", "Xynton", "Xynxius", "Xyperian", "Xyperibus", "Xypericaon", "Xypericus", "Xyperidix", "Xyperidon", "Xyperidos", "Xyperiion", "Xyperikos", "Xyperila", "Xyperilaus", "Xyperilion", "Xyperillo", "Xyperilus", "Xyperimus", "Xyperin", "Xyperinix", "Xyperips", "Xyperirius", "Xyperiron", "Xyperiros", "Xyperirus", "Xyperiseus", "Xyperisse", "Xyperitheus", "Xyperithus", "Xyperitis", "Xyperiton", "Xyperixius", "Xyphaan", "Xyphabus", "Xyphacaon", "Xyphacus", "Xyphadix", "Xyphadon", "Xyphados", "Xyphaion", "Xyphakos", "Xyphala", "Xyphalaus", "Xyphalion", "Xyphallo", "Xyphalus", "Xyphamus", "Xyphan", "Xyphanix", "Xyphaps", "Xypharius", "Xypharon", "Xypharos", "Xypharus", "Xyphaseus", "Xyphasse", "Xyphatheus", "Xyphathus", "Xyphatis", "Xyphaton", "Xyphaxius", "Xyphoan", "Xyphobus", "Xyphocaon", "Xyphocus", "Xyphodix", "Xyphodon", "Xyphodos", "Xyphoion", "Xyphokos", "Xyphola", "Xypholaus", "Xypholion", "Xyphollo", "Xypholus", "Xyphomus", "Xyphon", "Xyphonix", "Xyphops", "Xyphorius", "Xyphoron", "Xyphoros", "Xyphorus", "Xyphoseus", "Xyphosse", "Xyphotheus", "Xyphothus", "Xyphotis", "Xyphoton", "Xyphoxius", "Xyphyan", "Xyphybus", "Xyphycaon", "Xyphycus", "Xyphydix", "Xyphydon", "Xyphydos", "Xyphyion", "Xyphykos", "Xyphyla", "Xyphylaus", "Xyphylion", "Xyphyllo", "Xyphylus", "Xyphymus", "Xyphyn", "Xyphynix", "Xyphyps", "Xyphyrius", "Xyphyron", "Xyphyros", "Xyphyrus", "Xyphyseus", "Xyphysse", "Xyphytheus", "Xyphythus", "Xyphytis", "Xyphyton", "Xyphyxius", "Xyps", "Xyraan", "Xyrabus", "Xyracaon", "Xyracus", "Xyradix", "Xyradon", "Xyrados", "Xyraion", "Xyrakos", "Xyrala", "Xyralaus", "Xyralion", "Xyrallo", "Xyralus", "Xyramus", "Xyran", "Xyranix", "Xyraps", "Xyrarius", "Xyraron", "Xyraros", "Xyrarus", "Xyraseus", "Xyrasse", "Xyratheus", "Xyrathus", "Xyratis", "Xyraton", "Xyraxius", "Xyrian", "Xyribus", "Xyricaon", "Xyricus", "Xyridix", "Xyridon", "Xyridos", "Xyriion", "Xyrikos", "Xyrila", "Xyrilaus", "Xyrilion", "Xyrillo", "Xyrilus", "Xyrimus", "Xyrin", "Xyrinix", "Xyrips", "Xyririus", "Xyriron", "Xyriros", "Xyrirus", "Xyriseus", "Xyrisse", "Xyritheus", "Xyrithus", "Xyritis", "Xyriton", "Xyrius", "Xyrixius", "Xyron", "Xyros", "Xyrus", "Xyryaan", "Xyryabus", "Xyryacaon", "Xyryacus", "Xyryadix", "Xyryadon", "Xyryados", "Xyryaion", "Xyryakos", "Xyryala", "Xyryalaus", "Xyryalion", "Xyryallo", "Xyryalus", "Xyryamus", "Xyryan", "Xyryanix", "Xyryaps", "Xyryarius", "Xyryaron", "Xyryaros", "Xyryarus", "Xyryaseus", "Xyryasse", "Xyryatheus", "Xyryathus", "Xyryatis", "Xyryaton", "Xyryaxius", "Xyseus", "Xysse", "Xyssean", "Xyssebus", "Xyssecaon", "Xyssecus", "Xyssedix", "Xyssedon", "Xyssedos", "Xysseion", "Xyssekos", "Xyssela", "Xysselaus", "Xysselion", "Xyssello", "Xysselus", "Xyssemus", "Xyssen", "Xyssenix", "Xysseps", "Xysserius", "Xysseron", "Xysseros", "Xysserus", "Xysseseus", "Xyssesse", "Xyssetheus", "Xyssethus", "Xyssetis", "Xysseton", "Xyssexius", "Xytheus", "Xythus", "Xytis", "Xyton", "Xyxius", "Zean", "Zebus", "Zecaan", "Zecabus", "Zecacaon", "Zecacus", "Zecadix", "Zecadon", "Zecados", "Zecaion", "Zecakos", "Zecala", "Zecalaus", "Zecalion", "Zecallo", "Zecalus", "Zecamus", "Zecan", "Zecanix", "Zecaon", "Zecaps", "Zecarius", "Zecaron", "Zecaros", "Zecarus", "Zecaseus", "Zecasse", "Zecatheus", "Zecathus", "Zecatis", "Zecaton", "Zecaxius", "Zecus", "Zedix", "Zedon", "Zedos", "Zegrian", "Zegribus", "Zegricaon", "Zegricus", "Zegridix", "Zegridon", "Zegridos", "Zegriion", "Zegrikos", "Zegrila", "Zegrilaus", "Zegrilion", "Zegrillo", "Zegrilus", "Zegrimus", "Zegrin", "Zegrinix", "Zegrips", "Zegririus", "Zegriron", "Zegriros", "Zegrirus", "Zegriseus", "Zegrisse", "Zegritheus", "Zegrithus", "Zegritis", "Zegriton", "Zegrixius", "Zeion", "Zekian", "Zekibus", "Zekicaon", "Zekicus", "Zekidix", "Zekidon", "Zekidos", "Zekiion", "Zekikos", "Zekila", "Zekilaus", "Zekilion", "Zekillo", "Zekilus", "Zekimus", "Zekin", "Zekinix", "Zekips", "Zekirius", "Zekiron", "Zekiros", "Zekirus", "Zekiseus", "Zekisse", "Zekitheus", "Zekithus", "Zekitis", "Zekiton", "Zekixius", "Zekoan", "Zekobus", "Zekocaon", "Zekocus", "Zekodix", "Zekodon", "Zekodos", "Zekoion", "Zekokos", "Zekola", "Zekolaus", "Zekolion", "Zekollo", "Zekolus", "Zekomus", "Zekon", "Zekonix", "Zekops", "Zekorius", "Zekoron", "Zekoros", "Zekorus", "Zekos", "Zekoseus", "Zekosse", "Zekotheus", "Zekothus", "Zekotis", "Zekoton", "Zekoxius", "Zela", "Zelaus", "Zelion", "Zello", "Zeloan", "Zelobus", "Zelocaon", "Zelocus", "Zelodix", "Zelodon", "Zelodos", "Zeloion", "Zelokos", "Zelola", "Zelolaus", "Zelolion", "Zelollo", "Zelolus", "Zelomus", "Zelon", "Zelonix", "Zelops", "Zelorius", "Zeloron", "Zeloros", "Zelorus", "Zeloseus", "Zelosse", "Zelotheus", "Zelothus", "Zelotis", "Zeloton", "Zeloxius", "Zelus", "Zemoan", "Zemobus", "Zemocaon", "Zemocus", "Zemodix", "Zemodon", "Zemodos", "Zemoion", "Zemokos", "Zemola", "Zemolaus", "Zemolion", "Zemollo", "Zemolus", "Zemomus", "Zemon", "Zemonix", "Zemops", "Zemorius", "Zemoron", "Zemoros", "Zemorus", "Zemoseus", "Zemosse", "Zemotheus", "Zemothus", "Zemotis", "Zemoton", "Zemoxius", "Zemus", "Zen", "Zenaan", "Zenabus", "Zenacaon", "Zenacus", "Zenadix", "Zenadon", "Zenados", "Zenaion", "Zenakos", "Zenala", "Zenalaus", "Zenalion", "Zenallo", "Zenalus", "Zenamus", "Zenan", "Zenanix", "Zenaps", "Zenarius", "Zenaron", "Zenaros", "Zenarus", "Zenaseus", "Zenasse", "Zenatheus" +, "Zenathus", "Zenatis", "Zenaton", "Zenaxius", "Zenbus", "Zencaon", "Zencus", "Zendix", "Zendon", "Zendos", "Zenion", "Zenix", "Zenkos", "Zenla", "Zenlaus", "Zenlion", "Zenllo", "Zenlus", "Zenmus", "Zenn", "Zennix", "Zenps", "Zenrius", "Zenron", "Zenros", "Zenrus", "Zenseus", "Zensse", "Zentheus" +, "Zenthus", "Zentis", "Zenton", "Zenxius", "Zeperian", "Zeperibus", "Zepericaon", "Zepericus", "Zeperidix", "Zeperidon", "Zeperidos", "Zeperiion", "Zeperikos", "Zeperila", "Zeperilaus", "Zeperilion", "Zeperillo", "Zeperilus", "Zeperimus", "Zeperin", "Zeperinix", "Zeperips", "Zeperirius", "Zeperiron", "Zeperiros", "Zeperirus", "Zeperiseus", "Zeperisse", "Zeperitheus", "Zeperithus", "Zeperitis", "Zeperiton", "Zeperixius", "Zephaan", "Zephabus", "Zephacaon", "Zephacus", "Zephadix", "Zephadon", "Zephados", "Zephaion", "Zephakos", "Zephala", "Zephalaus", "Zephalion", "Zephallo", "Zephalus", "Zephamus", "Zephan", "Zephanix", "Zephaps", "Zepharius", "Zepharon", "Zepharos", "Zepharus", "Zephaseus", "Zephasse", "Zephatheus", "Zephathus", "Zephatis", "Zephaton", "Zephaxius", "Zephoan", "Zephobus", "Zephocaon", "Zephocus", "Zephodix", "Zephodon", "Zephodos", "Zephoion", "Zephokos", "Zephola", "Zepholaus", "Zepholion", "Zephollo", "Zepholus", "Zephomus", "Zephon", "Zephonix", "Zephops", "Zephorius", "Zephoron", "Zephoros", "Zephorus", "Zephoseus", "Zephosse", "Zephotheus", "Zephothus", "Zephotis", "Zephoton", "Zephoxius", "Zephyan", "Zephybus", "Zephycaon", "Zephycus", "Zephydix", "Zephydon", "Zephydos", "Zephyion", "Zephykos", "Zephyla", "Zephylaus", "Zephylion", "Zephyllo", "Zephylus", "Zephymus", "Zephyn", "Zephynix", "Zephyps", "Zephyrius", "Zephyron", "Zephyros", "Zephyrus", "Zephyseus", "Zephysse", "Zephytheus", "Zephythus", "Zephytis", "Zephyton", "Zephyxius", "Zeps", "Zeraan", "Zerabus", "Zeracaon", "Zeracus", "Zeradix", "Zeradon", "Zerados", "Zeraion", "Zerakos", "Zerala", "Zeralaus", "Zeralion", "Zerallo", "Zeralus", "Zeramus", "Zeran", "Zeranix", "Zeraps", "Zerarius", "Zeraron", "Zeraros", "Zerarus", "Zeraseus", "Zerasse", "Zeratheus", "Zerathus", "Zeratis", "Zeraton", "Zeraxius", "Zerian", "Zeribus", "Zericaon", "Zericus", "Zeridix", "Zeridon", "Zeridos", "Zeriion", "Zerikos", "Zerila", "Zerilaus", "Zerilion", "Zerillo", "Zerilus", "Zerimus", "Zerin", "Zerinix", "Zerips", "Zeririus", "Zeriron", "Zeriros", "Zerirus", "Zeriseus", "Zerisse", "Zeritheus", "Zerithus", "Zeritis", "Zeriton", "Zerius", "Zerixius", "Zeron", "Zeros", "Zerus", "Zeryaan", "Zeryabus", "Zeryacaon", "Zeryacus", "Zeryadix", "Zeryadon", "Zeryados", "Zeryaion", "Zeryakos", "Zeryala", "Zeryalaus", "Zeryalion", "Zeryallo", "Zeryalus", "Zeryamus", "Zeryan", "Zeryanix", "Zeryaps", "Zeryarius", "Zeryaron", "Zeryaros", "Zeryarus", "Zeryaseus", "Zeryasse", "Zeryatheus", "Zeryathus", "Zeryatis", "Zeryaton", "Zeryaxius", "Zeseus", "Zesse", "Zessean", "Zessebus", "Zessecaon", "Zessecus", "Zessedix", "Zessedon", "Zessedos", "Zesseion", "Zessekos", "Zessela", "Zesselaus", "Zesselion", "Zessello", "Zesselus", "Zessemus", "Zessen", "Zessenix", "Zesseps", "Zesserius", "Zesseron", "Zesseros", "Zesserus", "Zesseseus", "Zessesse", "Zessetheus", "Zessethus", "Zessetis", "Zesseton", "Zessexius", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"} + +fyrosSurnames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" +, "Abyllo", "Abylus", "Abymus", "Abyn", "Abynix", "Abyps", "Abyrius", "Abyron", "Abyros", "Abyrus", "Abyseus", "Abysse", "Abytheus", "Abythus" +, "Abytis", "Abyton", "Abyxius", "Aean", "Aebus", "Aecaon", "Aecus", "Aedix", "Aedon", "Aedos", "Aeion", "Aekos", "Aela", "Aelaus", "Aelion" +, "Aello", "Aelus", "Aemus", "Aen", "Aenix", "Aeps", "Aerius", "Aeron", "Aeros", "Aerus", "Aeseus", "Aesse", "Aetheus", "Aethus", "Aetis" +, "Aeton", "Aexius", "Apoan", "Apobus", "Apocaon", "Apocus", "Apodix", "Apodon", "Apodos", "Apoion", "Apokos", "Apola", "Apolaus", "Apolion" +, "Apollo", "Apolus", "Apomus", "Apon", "Aponix", "Apops", "Aporius", "Aporon", "Aporos", "Aporus", "Aposeus", "Aposse", "Apotheus", "Apothus", "Apotis", "Apoton", "Apoxius", "Boean", "Boebus", "Boecaon", "Boecus", "Boedix", "Boedon", "Boedos", "Boeion", "Boekos", "Boela", "Boelaus", "Boelion", "Boello", "Boelus", "Boemus", "Boen", "Boenix", "Boeps", "Boerius", "Boeron", "Boeros", "Boerus", "Boeseus", "Boesse", "Boetheus", "Boethus", "Boetis", "Boeton", "Boexius", "Cean", "Cebus", "Cecaon", "Cecus", "Cedix", "Cedon", "Cedos", "Ceion", "Cekos", "Cela", "Celaus", "Celion", "Cello", "Celus", "Cemus", "Cen", "Cenix", "Ceps", "Cerius", "Ceron", "Ceros", "Cerus", "Ceseus", "Cesse", "Cetheus", "Cethus", "Cetis", "Ceton", "Cexius", "Dean", "Debus", "Decaon", "Decus", "Dedix", "Dedon", "Dedos", "Deion", "Dekos", "Dela", "Delaus", "Delion", "Dello", "Delus", "Demus", "Den", "Denix", "Deps", "Derius", "Deron", "Deros", "Derus", "Deseus", "Desse", "Detheus" +, "Dethus", "Detis", "Deton", "Deuan", "Deubus", "Deucaon", "Deucus", "Deudix", "Deudon", "Deudos", "Deuion", "Deukos", "Deula", "Deulaus", "Deulion", "Deullo", "Deulus", "Deumus", "Deun", "Deunix", "Deups", "Deurius", "Deuron", "Deuros", "Deurus", "Deuseus", "Deusse", "Deutheus", "Deuthus", "Deutis", "Deuton", "Deuxius", "Dexius", "Dioan", "Diobus", "Diocaon", "Diocus", "Diodix", "Diodon", "Diodos", "Dioion", "Diokos", "Diola", "Diolaus", "Diolion", "Diollo", "Diolus", "Diomus", "Dion", "Dionix", "Diops", "Diorius", "Dioron", "Dioros", "Diorus", "Dioseus", "Diosse", "Diotheus", "Diothus", "Diotis", "Dioton", "Dioxius", "Dyan", "Dybus", "Dycaon", "Dycus", "Dydix", "Dydon", "Dydos", "Dyion", "Dykos", "Dyla", "Dylaus", "Dylion", "Dyllo", "Dylus", "Dymus", "Dyn", "Dynix", "Dyps", "Dyrius", "Dyron", "Dyros", "Dyrus", "Dyseus", "Dysse", "Dytheus", "Dythus", "Dytis", "Dyton", "Dyxius", "Euan", "Eubus", "Eucaon", "Eucus", "Eudix", "Eudon", "Eudos", "Euion", "Eukos", "Eula", "Eulaus", "Eulion", "Eullo", "Eulus", "Eumus", "Eun", "Eunix", "Eups", "Eurius", "Euron", "Euros", "Eurus", "Euseus", "Eusse", "Eutheus", "Euthus", "Eutis", "Euton", "Euxius", "Gaan", "Gabus", "Gacaon", "Gacus", "Gadix", "Gadon", "Gados", "Gaion", "Gakos", "Gala", "Galaus", "Galion", "Gallo", "Galus", "Gamus", "Gan", "Ganix", "Gaps", "Garius", "Garon", "Garos", "Garus", "Gaseus", "Gasse", "Gatheus", "Gathus", "Gatis", "Gaton", "Gaxius", "Ibian", "Ibibus", "Ibicaon", "Ibicus", "Ibidix", "Ibidon", "Ibidos", "Ibiion", "Ibikos", "Ibila", "Ibilaus", "Ibilion", "Ibillo", "Ibilus", "Ibimus", "Ibin", "Ibinix", "Ibips", "Ibirius", "Ibiron", "Ibiros", "Ibirus", "Ibiseus", "Ibisse", "Ibitheus", "Ibithus", "Ibitis", "Ibiton", "Ibixius", "Icaan", "Icabus", "Icacaon", "Icacus", "Icadix", "Icadon", "Icados", "Icaion", "Icakos", "Icala", "Icalaus", "Icalion", "Icallo", "Icalus", "Icamus", "Ican", "Icanix", "Icaps", "Icarius", "Icaron", "Icaros", "Icarus", "Icaseus", "Icasse", "Icatheus", "Icathus", "Icatis", "Icaton", "Icaxius", "Ioan", "Iobus", "Iocaon", "Iocus", "Iodix", "Iodon", "Iodos", "Ioion", "Iokos", "Iola", "Iolaus", "Iolion", "Iollo", "Iolus", "Iomus", "Ion", "Ionix", "Iops", "Iorius", "Ioron", "Ioros", "Iorus", "Ioseus", "Iosse", "Iotheus", "Iothus", "Iotis", "Ioton", "Ioxius", "Krian", "Kribus", "Kricaon", "Kricus", "Kridix", "Kridon", "Kridos", "Kriion", "Krikos", "Krila", "Krilaus", "Krilion", "Krillo", "Krilus", "Krimus", "Krin", "Krinix", "Krips", "Kririus", "Kriron", "Kriros", "Krirus", "Kriseus", "Krisse", "Kritheus", "Krithus", "Kritis", "Kriton", "Krixius", "Kyan", "Kybus", "Kycaon", "Kycus", "Kydix", "Kydon", "Kydos", "Kyion", "Kykos", "Kyla", "Kylaus", "Kylion", "Kyllo", "Kylus", "Kymus", "Kyn", "Kynix", "Kyps", "Kyrius", "Kyron", "Kyros", "Kyrus", "Kyseus", "Kysse", "Kytheus", "Kythus", "Kytis", "Kyton", "Kyxius", "Lyan", "Lybus", "Lycaon", "Lycus", "Lydix", "Lydon", "Lydos", "Lyion", "Lykos", "Lyla", "Lylaus", "Lylion", "Lyllo", "Lylus", "Lymus", "Lyn", "Lynix", "Lyps", "Lyrius", "Lyron", "Lyros", "Lyrus", "Lyseus", "Lysse", "Lytheus", "Lythus", "Lytis", "Lyton", "Lyxius", "Mean", "Mebus", "Mecaon", "Mecus", "Medix", "Medon", "Medos", "Meion", "Mekos", "Mela", "Melaus", "Melion", "Mello", "Melus", "Memus", "Men", "Menix", "Meps", "Merius", "Meron", "Meros", "Merus", "Meseus", "Messe", "Metheus", "Methus", "Metis", "Meton", "Mexius", "Mian", "Mibus", "Micaon", "Micus", "Midix", "Midon", "Midos", "Miion", "Mikos", "Mila", "Milaus", "Milion", "Millo", "Milus", "Mimus", "Min", "Minix", "Mips", "Mirius", "Miron", "Miros", "Mirus", "Miseus", "Misse", "Mitheus", "Mithus", "Mitis", "Miton", "Mixius", "Pean", "Pebus", "Pecaon", "Pecus", "Pedix", "Pedon", "Pedos", "Peion", "Pekos", "Pela", "Pelaus", "Pelion", "Pello", "Pelus", "Pemus", "Pen", "Penix", "Peps", "Perius", "Peron", "Peros", "Perus", "Peseus", "Pesse", "Petheus", "Pethus", "Petis", "Peton", "Pexius", "Pian", "Pibus", "Picaon", "Picus", "Pidix", "Pidon", "Pidos", "Piion", "Pikos", "Pila", "Pilaus", "Pilion", "Pillo", "Pilus", "Pimus", "Pin", "Pinix", "Pips", "Pirius", "Piron", "Piros", "Pirus", "Piseus", "Pisse", "Pitheus", "Pithus", "Pitis", "Piton", "Pixius", "Plean", "Plebus", "Plecaon", "Plecus", "Pledix", "Pledon", "Pledos", "Pleion", "Plekos", "Plela", "Plelaus", "Plelion", "Plello", "Plelus", "Plemus", "Plen", "Plenix", "Pleps", "Plerius", "Pleron", "Pleros", "Plerus", "Pleseus", "Plesse", "Pletheus", "Plethus", "Pletis", "Pleton", "Plexius", "Pyan", "Pybus", "Pycaon", "Pycus", "Pydix", "Pydon", "Pydos", "Pyion", "Pykos", "Pyla", "Pylaus", "Pylion", "Pyllo", "Pylus", "Pymus", "Pyn", "Pynix", "Pyps", "Pyrius", "Pyron", "Pyros", "Pyrus", "Pyseus", "Pysse", "Pytheus", "Pythus", "Pytis", "Pyton", "Pyxius", "Thean", "Thebus", "Thecaon", "Thecus", "Thedix", "Thedon", "Thedos", "Theion", "Thekos", "Thela", "Thelaus", "Thelion", "Thello", "Thelus", "Themus", "Then", "Thenix", "Theps", "Therius", "Theron", "Theros", "Therus", "Theseus", "Thesse", "Thetheus", "Thethus", "Thetis", "Theton", "Thexius", "Tian", "Tibus", "Ticaon", "Ticus", "Tidix", "Tidon", "Tidos", "Tiion", "Tikos", "Tila", "Tilaus", "Tilion", "Tillo", "Tilus", "Timus", "Tin", "Tinix", "Tips", "Tirius", "Tiron", "Tiros", "Tirus", "Tiseus", "Tisse", "Titheus", "Tithus", "Titis", "Titon", "Tixius", "Ulyan", "Ulybus", "Ulycaon", "Ulycus", "Ulydix", "Ulydon", "Ulydos", "Ulyion", "Ulykos", "Ulyla", "Ulylaus", "Ulylion", "Ulyllo", "Ulylus", "Ulymus", "Ulyn", "Ulynix", "Ulyps", "Ulyrius", "Ulyron", "Ulyros", "Ulyrus", "Ulyseus", "Ulysse", "Ulytheus", "Ulythus", "Ulytis", "Ulyton", "Ulyxius", "Xaan", "Xabus", "Xacaon", "Xacus", "Xadix", "Xadon", "Xados", "Xaion", "Xakos", "Xala", "Xalaus", "Xalion", "Xallo", "Xalus", "Xamus", "Xan", "Xanix", "Xaps", "Xarius", "Xaron", "Xaros", "Xarus", "Xaseus", "Xasse", "Xatheus", "Xathus", "Xatis", "Xaton", "Xaxius", "Xyan", "Xybus", "Xycaon", "Xycus", "Xydix", "Xydon", "Xydos", "Xyion", "Xykos", "Xyla", "Xylaus", "Xylion", "Xyllo", "Xylus", "Xymus", "Xyn", "Xynix", "Xyps", "Xyrius", "Xyron", "Xyros", "Xyrus", "Xyseus", "Xysse", "Xytheus", "Xythus", "Xytis", "Xyton", "Xyxius", "Zean", "Zebus", "Zecaon", "Zecus", "Zedix", "Zedon", "Zedos", "Zeion", "Zekos", "Zela", "Zelaus", "Zelion", "Zello", "Zelus", "Zemus", "Zen", "Zenix", "Zeps", "Zerius", "Zeron", "Zeros", "Zerus", "Zeseus", "Zesse", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua new file mode 100644 index 000000000..ad6cf5007 --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua @@ -0,0 +1,3 @@ +matisSurnames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} +matisFemaleNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisMaleNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua new file mode 100644 index 000000000..ac278cbdb --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua @@ -0,0 +1,3 @@ +trykerGivenNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} + +trykerSurnames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua new file mode 100644 index 000000000..0c6b0fa1e --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua @@ -0,0 +1,5 @@ +zoraiGivenNameOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} + +zoraiGivenNameTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} + +zoraiSurnames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 3754b6b76..b5d367173 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -8,6 +8,246 @@ if (outgame==nil) then end +------------------------------------------------------------------------------------------------------------ +-- Name generator. + +--nb noms: +-- matis: male 621 - female 621 - surname 621 +-- fyros: given name 14269, surname 841 +-- zorai: given name one 318, given name two 644, surname 1287 +-- tryker: given name 4500, surname 4335 + +function outgame:getFyrosName() + local nameResult = ""; + local fullnameResult = ""; + + local nbFyrosGivenNames = 0; + for _ in pairs(fyrosGivenNames) do nbFyrosGivenNames = nbFyrosGivenNames + 1 end + local givenName = fyrosGivenNames[math.random(nbFyrosGivenNames)]; + + local nbFyrosSurnames = 0; + for _ in pairs(fyrosSurnames) do nbFyrosSurnames = nbFyrosSurnames + 1 end + local surname = fyrosSurnames[math.random(nbFyrosSurnames)]; + fullnameResult = givenName .. " " .. surname; + nameResult = surname; + return fullnameResult, nameResult +end + +function outgame:getMatisName(sex) + local nameResult = ""; + local fullnameResult = ""; + local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); + + if sex ~= nil then + dbNameSex = sex + end + + if tonumber( dbNameSex )== 1 then + local nbMatisMaleNames = 0; + for _ in pairs(matisMaleNames) do nbMatisMaleNames = nbMatisMaleNames + 1 end + givenName = matisMaleNames[math.random(nbMatisMaleNames)]; + else + local nbMatisFemaleNames = 0; + for _ in pairs(matisFemaleNames) do nbMatisFemaleNames = nbMatisFemaleNames + 1 end + givenName = matisFemaleNames[math.random(nbMatisFemaleNames)]; + end + + local nbMatisSurnames = 0; + for _ in pairs(matisSurnames) do nbMatisSurnames = nbMatisSurnames + 1 end + local surname = matisSurnames[math.random(nbMatisSurnames)]; + fullnameResult = givenName .. " " .. surname; + nameResult = givenName; + + return fullnameResult, nameResult +end + +function outgame:getTrykerName() + local nameResult = ""; + local fullnameResult = ""; + + local nbTrykerGivenNames = 0; + for _ in pairs(trykerGivenNames) do nbTrykerGivenNames = nbTrykerGivenNames + 1 end + local givenName = trykerGivenNames[math.random(nbTrykerGivenNames)]; + + local nbTrykerSurnames = 0; + for _ in pairs(trykerSurnames) do nbTrykerSurnames = nbTrykerSurnames + 1 end + local surname = trykerSurnames[math.random(nbTrykerSurnames)]; + + fullnameResult = surname .. " " .. givenName; + nameResult = givenName; + + return fullnameResult, nameResult +end + + +function outgame:getZoraiName() + local nameResult = ""; + local fullnameResult = ""; + + local nbGivenNameOne = 0; + for _ in pairs(zoraiGivenNameOne) do nbGivenNameOne = nbGivenNameOne + 1 end + local givenNameOne = zoraiGivenNameOne[math.random(nbGivenNameOne)]; + + local nbGivenNameTwo = 0; + for _ in pairs(zoraiGivenNameTwo) do nbGivenNameTwo = nbGivenNameTwo + 1 end + local givenNameTwo = zoraiGivenNameTwo[math.random(nbGivenNameTwo)]; + + local nbSurnames = 0; + for _ in pairs(zoraiSurnames) do nbSurnames = nbSurnames + 1 end + local surname = zoraiSurnames[math.random(nbSurnames)]; + + fullnameResult = surname .. " " .. givenNameOne .. "-" .. givenNameTwo; + nameResult = givenNameOne .. givenNameTwo; + + return fullnameResult, nameResult +end + +function outgame:procGenerateName() + local uiNameFull = getUI("ui:outgame:appear_name:name_full"); + local uiGenText = getUI("ui:outgame:appear_name:eb"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); + local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); + + local nameResult = ""; + local fullnameResult = ""; + + -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. + -- fy ma try zo --> + local givenName = ""; + if tonumber( dbNameRace ) == 1 then + -- Fyros + fullnameResult, nameResult = self:getFyrosName() + elseif tonumber( dbNameRace ) == 2 then + -- Matis + fullnameResult, nameResult = self:getMatisName() + elseif tonumber( dbNameRace ) == 3 then + -- Tryker + fullnameResult, nameResult = self:getTrykerName() + elseif tonumber( dbNameRace ) == 4 then + -- Zorai + fullnameResult, nameResult = self:getZoraiName() + elseif tonumber( dbNameRace ) == 5 then + -- Maraudeurs + tempResult_1 = ""; + tempResult_2 = ""; + if tonumber(dbNameSubRace) == 1 then + -- Fyros + fullnameResult, tempResult_1 = self:getFyrosName() + elseif tonumber( dbNameSubRace ) == 2 then + -- Matis F + fullnameResult, tempResult_1 = self:getMatisName(2) + elseif tonumber( dbNameSubRace ) == 3 then + -- Matis M + fullnameResult, tempResult_1 = self:getMatisName(1) + elseif tonumber( dbNameSubRace ) == 4 then + -- Tryker + fullnameResult, tempResult_1 = self:getTrykerName() + elseif tonumber( dbNameSubRace ) == 5 then + -- Zorai + fullnameResult, tempResult_1 = self:getZoraiName() + end + + if tonumber(dbNameSubRace2) == 1 then + -- Fyros + fullnameResult, tempResult_2 = self:getFyrosName() + elseif tonumber( dbNameSubRace2 ) == 2 then + -- Matis F + fullnameResult, tempResult_2 = self:getMatisName(2) + elseif tonumber( dbNameSubRace2 ) == 3 then + -- Matis M + fullnameResult, tempResult_2 = self:getMatisName(1) + elseif tonumber( dbNameSubRace2 ) == 4 then + -- Tryker + fullnameResult, tempResult_2 = self:getTrykerName() + elseif tonumber( dbNameSubRace2 ) == 5 then + -- Zorai + fullnameResult, tempResult_2 = self:getZoraiName() + end + + fullnameResult = tempResult_1 .. " " .. tempResult_2 + nameResult = tempResult_2 + end + + uiNameFull.hardtext = fullnameResult; + + nameResult = string.gsub(nameResult, "'", ""); + nameResult = string.gsub(nameResult, " ", ""); + nameResult = string.gsub(nameResult, "-", ""); + nameResult = string.lower( nameResult ); + nameResult = nameResult:gsub("^%l", string.upper); + uiGenText.input_string = nameResult; +end +-- Name sex slider update. +function outgame:procUpdateNameSexLabel() + local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } + local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex"); + local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); + + tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); + tempstr = string.lower( tempstr ); + tempstr = (tempstr:gsub("^%l", string.upper)); + + uiNameSexText.hardtext= tempstr; +end +-- Name race slider update. +function outgame:procUpdateNameRaceLabel() + local nameRaceType = { "Fyros", "Matis", "Tryker", "Zora", "uiCP_Maraudeur" } + + local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + + local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); + + local uiNameSubRaceSlider = getUI("ui:outgame:appear_name:name_sub_race_slider"); + local uiNameSubRace2Slider = getUI("ui:outgame:appear_name:name_sub_race2_slider"); + + local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); + -- Show/Hide sex slider + + uiNameGenerate.y = "-50" + if tonumber(dbNameRace) == 2 then + uiNameSexSlider.active = true; + uiNameGenerate.y = "-65" + else + uiNameSexSlider.active = false; + end + + -- Show/Hide sub race slider + if tonumber(dbNameRace) == 5 then + uiNameSubRaceSlider.active = true; + uiNameSubRace2Slider.active = true; + uiNameGenerate.y = "-105" + else + uiNameSubRaceSlider.active = false; + uiNameSubRace2Slider.active = false; + end + + + uiNameRaceText.hardtext= tostring(nameRaceType[tonumber(dbNameRace)]); +end + + +local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper); +local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper); + +function outgame:procUpdateNameSubRaceLabel() + local nameSubRaceType = { "Fyros", matisF, matisM, "Tryker", "Zora" } + local uiNameSubRaceText = getUI("ui:outgame:appear_name:name_sub_race_slider:name_race"); + local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); + + + uiNameSubRaceText.hardtext= tostring(nameSubRaceType[tonumber(dbNameSubRace)]); +end +function outgame:procUpdateNameSubRace2Label() + local nameSubRace2Type = { "Fyros", matisF, matisM, "Tryker", "Zora" } + local uiNameSubRace2Text = getUI("ui:outgame:appear_name:name_sub_race2_slider:name_race"); + local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); + + + uiNameSubRace2Text.hardtext= tostring(nameSubRace2Type[tonumber(dbNameSubRace2)]); +end + ------------------------------------------------------------------------------------------------------------ -- called to construct icons function outgame:activePackElement(id, icon) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index baac0bca6..042e62ed0 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -2,6 +2,10 @@ + + + + @@ -43,6 +47,18 @@ + + + + + + + + + + + + + + diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml index d1d6d945d..10431b84c 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml @@ -6950,4 +6950,24 @@ global_color="false" /> + + + From 0f0f9ebc66fdeae40a768af9a738ca370612df2c Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 12:36:47 +0100 Subject: [PATCH 083/184] Changed: Updated german translations --- .../ryzom/tools/translation/translated/de.uxt | 4651 ++++++++--------- .../translated/sbrick_words_de.txt | Bin 2155990 -> 2159514 bytes .../translated/sphrase_words_de.txt | Bin 1785450 -> 1787756 bytes 3 files changed, 2322 insertions(+), 2329 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index ebc01579a..dc5ebb354 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -501,7 +501,7 @@ ioZorai [Zoraï] // HASH_VALUE E728548DA3583884 // INDEX 125 -ioTribe [Stamm] +ioTribe [Stämme] // HASH_VALUE E889A092E3370883 // INDEX 126 @@ -577,11 +577,11 @@ stLARGE_SHIELD [großer Schild] // HASH_VALUE 7058C44C649894A0 // INDEX 144 -dtSLASHING [Schneiden] +dtSLASHING [Zerschneiden] // HASH_VALUE 705894406498948C // INDEX 145 -dtPIERCING [Zustechen] +dtPIERCING [Durchbohren] // HASH_VALUE 30276090A3884499 // INDEX 146 @@ -1363,7 +1363,7 @@ uiForgetPwd [ICH HABE MEIN PASSWORT VERGESSEN] // HASH_VALUE 4AF1F0F94CDFE0EC // INDEX 340 -uiFreeTrial [FREE TRIAL] +uiFreeTrial [KOSTENLOSER TESTACCOUNT] // HASH_VALUE 9023144851D43C48 // INDEX 341 @@ -3765,7 +3765,7 @@ uiLMMiscColor [Verschiedenes] // HASH_VALUE E728548DA3583884 // INDEX 938 -uiLMTribeColor [Stamm] +uiLMTribeColor [Stämme] // HASH_VALUE A7866C5BE6C4B882 // INDEX 939 @@ -4005,7 +4005,7 @@ uittChooseLMMiscColor [Wähle eine Farbe für Markierung 'Verschied.'] // HASH_VALUE AE479F5DD9646C60 // INDEX 998 -uittChooseLMTribeColor [Wähle eine Farbe für Markierung 'Stamm'] +uittChooseLMTribeColor [Wähle eine Farbe für Markierung 'Stämme'] // HASH_VALUE 27D61B6BE964506F // INDEX 999 @@ -4677,7 +4677,7 @@ uittOutpostAttackRound [@{6F6F}Angriffsperiode!@{FFFF}\n // HASH_VALUE C3CD3092CDC57722 // INDEX 1163 uittOutpostAttackAfterWin [@{6F6F}Nach dem Angriff@{FFFF}\n - Der Krieg geht weiter! \n + Der Krieg geht weiter!\n Die Angreifer haben es geschafft, die @{6F6F}Mindestschwelle@{FFFF} zu erreichen, die die Verteidiger während der @{6F6F}Angriffsperiode@{FFFF} festgelegt haben.\n Das Ende der Angriffsphase muss abgewartet werden, ehe die Angreifer den Außenposten gewinnen.\n ] @@ -4693,7 +4693,7 @@ uittOutpostAttackAfterLoose [@{6F6F}Nach Angriff@{FFFF}\n // HASH_VALUE FE5CECB92CB02670 // INDEX 1165 uittOutpostDefenseBefore [@{6F6F}Warten auf Verteidigung@{FFFF}\n - Der Krieg geht weiter! \n + Der Krieg geht weiter!\n Die Angreifer haben es geschafft, die nötige @{6F6F}Mindestschwelle@{FFFF} zu erreichen.\n Sie haben vorübergehend die Kontrolle über die Truppen des Außenpostens übernommen.\n Diese Truppen erscheinen erst während der @{6F6F}Verteidigungsperiode@{FFFF}.\n @@ -4723,12 +4723,12 @@ uittOutpostDescription [Beschreibung des Außenpostens] // HASH_VALUE E3E346C84BC5C8A5 // INDEX 1170 -uiOutpostLevel [Level: ] +uiOutpostLevel [Stufe: ] // HASH_VALUE 6EFBF746AB75B469 // INDEX 1171 -uittOutpostLevel [Level des Außenpostens\n - Je höher das Level, desto widerstandsfähiger sind die Truppen, und umso höher fallen die Boni aus. ] +uittOutpostLevel [Stufe des Außenpostens\n + Je höher die Stufe, desto widerstandsfähiger sind die Truppen, und umso höher fallen die Boni aus.] // HASH_VALUE 197AF48C25ECB435 // INDEX 1172 @@ -4736,7 +4736,7 @@ uiOutpostOwner [Besitzer: ] // HASH_VALUE 2F68C76D413DA758 // INDEX 1173 -uittOutpostOwner [Besitzer des Außenpostens. ] +uittOutpostOwner [Besitzer des Außenpostens.] // HASH_VALUE 4B48AC7CBB368441 // INDEX 1174 @@ -4841,7 +4841,7 @@ uittOutpostDefHourError [@{6F6F}Verteidigungszeit@{FFFF}\n // INDEX 1195 uittOutpostDefHourCannotEdit [Du kannst die Verteidigungsperiode nur ändern, wenn:\n - du ein Offizier der Gilde bist, die den Außenposten verteidigt\n - - der Außenposten gerade im Zustand des @{6F6F}Friedens@{FFFF} ist, oder wenn der @{6F6F}Krieg erklärt@{FFFF} wurde \n + - der Außenposten gerade im Zustand des @{6F6F}Friedens@{FFFF} ist, oder wenn der @{6F6F}Krieg erklärt@{FFFF} wurde\n ] // HASH_VALUE 52718E9047A0FC98 @@ -4897,7 +4897,7 @@ uiOutpostWarCost [KOSTEN DER KRIEGSERKLÄRUNG: ] // INDEX 1207 uiOutpostWarCostDesc [Einem Außenposten den Krieg zu erklären, kostet die Gilde Dapper (Geld) - hauptsächlich, um die Truppen während der Verteidigungsperiode zu bezahlen..\n Diese Summe wird entweder dem Gildenvermögen oder deiner Tasche entnommen\n - ] + ] // HASH_VALUE 8F52938208D44C1D // INDEX 1208 @@ -5384,11 +5384,11 @@ uihHowToResurectADeadFriend [Freund wiederbeleben] // HASH_VALUE ED7A937BADEB6694 // INDEX 1321 -uihWhatIsSkillPoints [Fertigkeitenpunkte] +uihWhatIsSkillPoints [Fertigkeitspunkte] // HASH_VALUE A6C7DC9EA734FC54 // INDEX 1322 -uihWhatIsYourStatsAndCharac [Deine Werte und Eigenschaften] +uihWhatIsYourStatsAndCharac [Charakter-Werte] // HASH_VALUE C550782A7ECEEFF3 // INDEX 1323 @@ -5448,7 +5448,7 @@ uihPA [Tiere] // HASH_VALUE 20176F921EA24061 // INDEX 1337 -uihActionBook [Aktionsbuch] +uihActionBook [Aktionen/Fertigkeiten] // HASH_VALUE 847334492917FB60 // INDEX 1338 @@ -5512,7 +5512,7 @@ uiFocus [Fokus] // HASH_VALUE 2A7AB885D852D3B5 // INDEX 1353 -uiActionProgression [Aktionsfortschritt] +uiActionProgression [Aktionen/Fertigkeiten] // HASH_VALUE 2BB9C075D895C791 // INDEX 1354 @@ -5545,16 +5545,16 @@ uiXpBonusInfo [XP-Bonus: Stufe @{6F6F}%lvl@{FFFF} x @{6F6F}%count@{FFFF}] // HASH_VALUE 2D79EC806D00D1D6 // INDEX 1361 uittXpBonus [Erfahrungskatalysatoren (Kristalle) sind aktiv.\n - Sie geben Erfahrungsboni für die Anwendung von Aktionen mit geringeren Fertigkeitsstufen als die gewählten Katalysatoren. \n + Sie geben Erfahrungsboni für die Anwendung von Aktionen mit geringeren Fertigkeitsstufen als die gewählten Katalysatoren.\n Einige Katalysatoren werden dazu verbraucht. Klicke hier, um die Katalysatoren zu deaktivieren.\n - Die automatischen Erfahrungsboni für Bezahlaccounts können nicht deaktiviert werden. ] + Die automatischen Erfahrungsboni für Bezahlaccounts können nicht deaktiviert werden.] // HASH_VALUE E02A77CCC8F159E8 // INDEX 1362 uittDeathPenalty [@{6F6F}Du hast eine Sterbe-Erfahrungsstrafe.\n @{FFFF}Wenn dein Charakter von den Mächten wiederbelebt werden muss, wird diese Strafe erhöht.\n Die darauf folgenden Erfahrungs-Gewinne begleichen die Strafe, bis sie abgetragen ist.\n - Bis die Strafe auf 0 gesunken ist, bringen Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] + Bis die Strafe auf 0 gesunken ist, bringen ausgeführte Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] // HASH_VALUE 54642750D9A8FC62 // INDEX 1363 @@ -5922,7 +5922,7 @@ uiFame_tribe_cute [Cuzane] // HASH_VALUE E4865B77A60414B5 // INDEX 1436 -uiFame_tribe_darkening_sap [Matiagoo] +uiFame_tribe_darkening_sap [Matiagoo (Verdunkelnd. Sap)] // HASH_VALUE 5765D8691A866070 // INDEX 1437 @@ -5954,7 +5954,7 @@ uiFame_tribe_gibbay [Gibads] // HASH_VALUE 8F97387FDCF2F346 // INDEX 1444 -uiFame_tribe_goo_heads [Erleuchtete des Goo] +uiFame_tribe_goo_heads [Erleuchtete des Goo (Goo-Köpfe)] // HASH_VALUE 67556F6D56E56F7F // INDEX 1445 @@ -5962,7 +5962,7 @@ uiFame_tribe_green_seed [Grüne Samen] // HASH_VALUE D468F810D8A85C6F // INDEX 1446 -uiFame_tribe_hamazans_of_the_dead_seed [Matis-Amazonen] +uiFame_tribe_hamazans_of_the_dead_seed [Matis-Amazonen (Hamazans)] // HASH_VALUE EAF8B468F03AE420 // INDEX 1447 @@ -6122,9 +6122,9 @@ uiPvpFameAllegiancePoints [ Punkte der Fraktion @{FE7F}%faction@{2F2F}: %points] // HASH_VALUE EF3939FA4ACF5B6F // INDEX 1486 -uittPvpFameInfo [Du kannst deinen @{2F2F}PvP-Tag @{FFFF} (Flag) aktivieren, indem du auf das Schwert-Symbol im Werte-Fenster (links oben) klickst. \n +uittPvpFameInfo [Du kannst deinen @{2F2F}PvP-Tag @{FFFF} (Flag) aktivieren, indem du auf das Schwert-Symbol im Werte-Fenster (links oben) klickst.\n Du erhältst einen @{2F2F}Bonus@{FFFF}, wenn du dich in einer Zone befindest, die von deiner Fraktion kontrolliert wird.\n - Du erhältst einen @{2F2F}Malus@{FFFF}, wenn du dich in einer Zone befindest, die von der gegnerischen Fraktion kontrolliert wird. ] + Du erhältst einen @{2F2F}Malus@{FFFF}, wenn du dich in einer Zone befindest, die von der gegnerischen Fraktion kontrolliert wird.] // HASH_VALUE 5EB9CE136A1CA81F // INDEX 1487 @@ -6537,62 +6537,62 @@ uiPvPEffect_region_nexus_Malus [@{FE7F}Der Fokus des Nexus @{FFFF}:\n // HASH_VALUE AA1DC3C4FD396774 // INDEX 1569 -uiHPDesc [@{6F6F}HP@{FFFF}, \n +uiHPDesc [@{6F6F}HP@{FFFF},\n Lebenspunkte definieren den Schaden, den ein Charakter einstecken kann, ehe er stirbt.] // HASH_VALUE 08CF5A4F3BBC8D17 // INDEX 1570 -uiStaDesc [@{6F6F}Ausdauer@{FFFF}, \n +uiStaDesc [@{6F6F}Ausdauer@{FFFF},\n Während körperlicher Kampfaktionen sinkt die Ausdauer bei Ermüdung eines Charakters.] // HASH_VALUE 57516E1B1624B27C // INDEX 1571 -uiSapDesc [@{6F6F}Sap@{FFFF}, \n +uiSapDesc [@{6F6F}Sap@{FFFF},\n Sap ist die Atys-typische Energie, die einem Charakter ermöglicht, Magie zu wirken.] // HASH_VALUE 0818382AFDB10CD9 // INDEX 1572 -uiFocDesc [@{6F6F}Fokus@{FFFF}, \n +uiFocDesc [@{6F6F}Fokus@{FFFF},\n Fokus ist die Fähigkeit eines Charakters, sich auf Rohstoffabbau oder Handwerk zu konzentrieren.] // HASH_VALUE C5C5AADDE9B1CB06 // INDEX 1573 -uiConsDesc [@{6F6F}Konstitution@{FFFF}, \n +uiConsDesc [@{6F6F}Konstitution@{FFFF},\n Die Fähigkeit eines Charakters, anstrengende körperliche Aktivitäten auf sich zu nehmen.] // HASH_VALUE B4C1EFCDAFE00362 // INDEX 1574 -uiIntDesc [@{6F6F}Intelligenz@{FFFF}, \n +uiIntDesc [@{6F6F}Intelligenz@{FFFF},\n Zeigt an, wie gut sich ein Charakter auf seine mentalen Fähigkeiten konzentrieren kann.] // HASH_VALUE 2D2E06E01D8CC946 // INDEX 1575 -uiStrDesc [@{6F6F}Stärke@{FFFF}, \n - Stärke ist der Wert, der die körperliche Kraft eines Charakters symbolisiert. ] +uiStrDesc [@{6F6F}Stärke@{FFFF},\n + Stärke ist der Wert, der die körperliche Kraft eines Charakters symbolisiert.] // HASH_VALUE 2CBDF588F00F8902 // INDEX 1576 -uiDexDesc [@{6F6F}Geschicklichkeit@{FFFF}, \n - Zeigt an, wie fähig ein Charakter dazu ist, feine Handarbeit durchzuführen. ] +uiDexDesc [@{6F6F}Geschicklichkeit@{FFFF},\n + Zeigt an, wie fähig ein Charakter dazu ist, feine Handarbeit durchzuführen.] // HASH_VALUE EE7A5B01A1BEDC58 // INDEX 1577 -uiMetaDesc [@{6F6F}Metabolismus@{FFFF}, \n +uiMetaDesc [@{6F6F}Metabolismus@{FFFF},\n Misst die Schnelligkeit, mit der der Körper eines Homin-Charakters sich von Schäden erholen kann.] // HASH_VALUE 9DF5C8519F10DD99 // INDEX 1578 -uiWisDesc [@{6F6F}Weisheit@{FFFF}, \n +uiWisDesc [@{6F6F}Weisheit@{FFFF},\n Symbolisiert die mentale Kontrolle. Weisheit ist unabkömmlich für den Einsatz von Magie.] // HASH_VALUE DFFD9B8BE269FBC5 // INDEX 1579 -uiWBDesc [@{6F6F}Gleichgewicht@{FFFF}, \n - Ist gleichbedeutend mit der Kontrolle über den körperlichen Zustand eines Homin-Charakters. ] +uiWBDesc [@{6F6F}Gleichgewicht@{FFFF},\n + Ist gleichbedeutend mit der Kontrolle über den körperlichen Zustand eines Homin-Charakters.] // HASH_VALUE C9E791CC1DBE5661 // INDEX 1580 -uiWillDesc [@{6F6F}Wille@{FFFF}, \n +uiWillDesc [@{6F6F}Wille@{FFFF},\n Wille ist die Fähigkeit, über lange Zeit hinweg den Fokus auf Handwerk oder Rohstoffernte zu bewahren.] // HASH_VALUE CE41AC3DC9E2F42C @@ -6773,7 +6773,7 @@ uiMissionDetails [MISSIONSDETAILS] // HASH_VALUE 450170220A31CC20 // INDEX 1625 -uiAbilitiesTitle [FÄHIGKEITEN] +uiAbilitiesTitle [FERTIGKEITEN] // HASH_VALUE C5F0701EC2C17C1F // INDEX 1626 @@ -6850,7 +6850,7 @@ uiPvpClanNeutral [Neutral] // HASH_VALUE 190C2BCF467374EF // INDEX 1644 -uiJoinClanProposalDesc [Du betrittst ein Gebiet einer PvP-Fraktion. Du kannst eine Fraktion auswählen oder neutral bleiben. Achtung: Die Wahl einer Fraktion kann Einfluss auf deinen Ruf haben... ] +uiJoinClanProposalDesc [Du betrittst ein Gebiet eines PvP-Klans. Du kannst einen Klan auswählen oder neutral bleiben. Achtung: Die Wahl eines Klans kann Einfluss auf deinen Ruf haben...] // HASH_VALUE 4B6F401306FF332F // INDEX 1645 @@ -6878,7 +6878,7 @@ uimRemoveUserChat [BENUTZERCHAT ENTFERNEN] // HASH_VALUE 4DD2CC2D8A42D033 // INDEX 1651 -uimDismiss [ABLEHNEN] +uimDismiss [VERABSCHIEDEN] /* OLD VALUE : [NACHFOLGER BESTIMMEN] */ // HASH_VALUE FC04F8070EF2373C @@ -7340,11 +7340,11 @@ uimMacroDel [LÖSCHEN] // HASH_VALUE C2102B370C320812 // INDEX 1765 -uimMCMoveUp [AUFRÜCKEN] +uimMCMoveUp [NACH OBEN VERSCHIEBEN] // HASH_VALUE 0C110841C18EFF0A // INDEX 1766 -uimMCMoveDown [ABSTUFEN] +uimMCMoveDown [NACH UNTEN VERSCHIEBEN] // HASH_VALUE 5450441454504414 // INDEX 1767 @@ -7372,7 +7372,7 @@ uiKeysChatTitle [CHAT-TASTEN] // HASH_VALUE 0D823047817F1F05 // INDEX 1773 -uiKeysViewTitle [KAMERA-PERSPEKTIVE] +uiKeysViewTitle [KAMERASTEUERUNG] // HASH_VALUE FE92BC48F5E3F440 // INDEX 1774 @@ -7756,11 +7756,11 @@ uiKeyNUMPAD9 [NUMPAD9] // HASH_VALUE 5410543458100424 // INDEX 1869 -uiKeyMULTIPLY [MULTIPLIZIEREN] +uiKeyMULTIPLY [MALZEICHEN] // HASH_VALUE C2E0380A83B0380D // INDEX 1870 -uiKeyADD [ADDITION] +uiKeyADD [PLUS] // HASH_VALUE 89B3E848CC929428 // INDEX 1871 @@ -7776,7 +7776,7 @@ uiKeyDECIMAL [DEZIMAL] // HASH_VALUE 4752842247317422 // INDEX 1874 -uiKeyDIVIDE [DIVIDIEREN] +uiKeyDIVIDE [GETEILT] // HASH_VALUE 3090101830901018 // INDEX 1875 @@ -7880,15 +7880,15 @@ uiKeyNUMLOCK [NUMLOCK] // HASH_VALUE 894388448653AC3D // INDEX 1900 -uiKeySCROLL [SCROLLEN] +uiKeySCROLL [ROLLEN] // HASH_VALUE 8D3010260F701420 // INDEX 1901 -uiKeyLSHIFT [LSHIFT] +uiKeyLSHIFT [L-UMSCHALT] // HASH_VALUE 8D9110320F321426 // INDEX 1902 -uiKeyRSHIFT [RSHIFT] +uiKeyRSHIFT [R-UMSCHALT] // HASH_VALUE 4CD034304CD02450 // INDEX 1903 @@ -8094,11 +8094,11 @@ uiDebugToggleFly [Flug umschalten] // HASH_VALUE ABE76848A5B2283E // INDEX 1953 -uiDebugFreeMouse [Freie Maus] +uiDebugFreeMouse [Freier Mauszeiger] // HASH_VALUE 6889B89AE6E9AC99 // INDEX 1954 -uiDebugScreenShot [Screenshot] +uiDebugScreenShot [Bildschirmfoto] // HASH_VALUE 74DC545074DC5450 // INDEX 1955 @@ -8517,7 +8517,7 @@ uiBagTitle [TASCHE] // HASH_VALUE 50D0140850D01408 // INDEX 2058 -uiBagsTitle [TASCHE] +uiBagsTitle [TASCHEN] // HASH_VALUE 75AEEFD4B9BF52DA // INDEX 2059 @@ -8581,31 +8581,31 @@ uiMemSpecialFul [SPEZIELLES EINSTUDIEREN] // HASH_VALUE D001183E0E62FC44 // INDEX 2074 -uimMount [REITEN] +uimMount [Reiten] // HASH_VALUE D001003F0E52184C // INDEX 2075 -uimUnmount [ABSITZEN] +uimUnmount [Absitzen] // HASH_VALUE CEE008278E802830 // INDEX 2076 -uimFollow [FOLGEN] +uimFollow [Folgen] // HASH_VALUE 8DB310280F92143A // INDEX 2077 -uimAssist [ASSISTIEREN] +uimAssist [Assistieren] // HASH_VALUE 50D0444C50D0444C // INDEX 2078 -uimStop [STOP] +uimStop [Stop] // HASH_VALUE 4450241844502418 // INDEX 2079 -uimFree [FREILASSEN] +uimFree [Freilassen] // HASH_VALUE 4C10140C4C10140C // INDEX 2080 -uimCall [RUFEN] +uimCall [Rufen] // HASH_VALUE 7F62DC1F4B8F9426 // INDEX 2081 @@ -8617,7 +8617,7 @@ uimForgetMacro [VERGISS MAKRO] // HASH_VALUE 46F2302652C1B04C // INDEX 2083 -uimCristalize [KRISTALLISIEREN] +uimCristalize [Kristallisieren] // HASH_VALUE 2C66B0612A24EC7E // INDEX 2084 @@ -8689,7 +8689,7 @@ uittAmmo [Munition] // HASH_VALUE 722089E1970C8D7B // INDEX 2101 -uittMemoryCombat [Dies ist der Speicher deiner Kampffähigkeiten] +uittMemoryCombat [Dies ist der Speicher deiner Kampffertigkeiten] // HASH_VALUE B6C05DEE87E99709 // INDEX 2102 @@ -8708,7 +8708,7 @@ uittPvPModeTagOff [@{6F6F}Fraktions-PvP@{FFFF}\n // HASH_VALUE D50C6FC5DAA03215 // INDEX 2105 uittPvPModeTagOffChange [@{6F6F}Fraktions-PvP@{FFFF}\n - Du möchtest deinen @{6F6F}PvP-Tag einschalten@{FFFF}! Dieser wird nach dem Ablauf des Timers aktiviert.\n + Dein @{6F6F}PvP-Tag@{FFFF} wird nach dem Ablauf des Timer aktiviert.\n Klicke zum Abbrechen.] // HASH_VALUE 93315FA35EF3F2F9 @@ -8721,20 +8721,20 @@ uittPvPModeTagOn [@{6F6F}Fraktions-PvP@{FFFF}\n // HASH_VALUE E0612BAA4EC3D6FC // INDEX 2107 uittPvPModeTagOnChange [@{6F6F}Fraktions-PvP@{FFFF}\n - Du möchtest deinen @{6F6F}PvP-Tag ausschalten@{FFFF}! Dieser wird nach dem Ablauf des Timers deaktiviert.\n + Dein @{6F6F}PvP-Tag@{FFFF} wird nach dem Ablauf des Timers deaktiviert.\n Klicke zum Abbrechen.] // HASH_VALUE FBCF5EAB65E4CE37 // INDEX 2108 uittPvPTagTimer [\n - Du hast noch %temps, bevor sich dein PvP-Tag ändert.] + Du hast noch %temps, bevor sich dein PvP-Modus ändert.] // HASH_VALUE FF59B9602588C677 // INDEX 2109 uittPvPModeFlag [@{6F6F}Fraktions-PvP@{FFFF}\n Dein @{6F6F}PvP-Tag@{FFFF} ist @{6F6F}an@{FFFF} und du hast kürzlich eine offensive PvP-Aktion ausgeführt.\n - PvP wurde aktiviert. (Du bist nun nicht mehr in der Lage, alle PvE- und Interaktionen mit anderen Spielern auszuführen. Z.B: du kannst keine Gruppe mit Spielern der anderen Fraktion bilden, solange PvP aktiviert ist.)\n - Dein Tag wird in %temps entfernt.] + Du bist im PvP-Modus. Du bist nun nicht mehr in der Lage, alle PvE-Aktionen und Interaktionen mit anderen Spielern auszuführen. Z.B: du kannst keine Gruppe mit Spielern der anderen Fraktion bilden, solange der PvP-Modus aktiviert ist.\n + Dein PvP-Tag wird in %temps entfernt.] // HASH_VALUE 00841A0EC6F3BC0E // INDEX 2110 @@ -8742,7 +8742,7 @@ uittPvPTime [@{6F6F}%h Std %m Min %s Sec@{FFFF}] // HASH_VALUE 4B7FC42C020EF005 // INDEX 2111 -uiSelMoney2Give [ZU GEBENDE DAPPER WÄHLEN] +uiSelMoney2Give [DAPPER ANBIETEN] // HASH_VALUE 48D0841444D0E404 // INDEX 2112 @@ -8782,7 +8782,7 @@ uiTradeWith [HANDEL MIT?] // HASH_VALUE 52695C9F2AB4C366 // INDEX 2121 -uittSetMoney [DAPPER BESTIMMEN] +uittSetMoney [DAPPER EINGEBEN] // HASH_VALUE CB0A8036EB06B7B0 // INDEX 2122 @@ -8798,11 +8798,11 @@ uiMacrosTitle [MAKROS] // HASH_VALUE C464BFDDA7589F68 // INDEX 2125 -uiShortCutTT [Leg einen Kampf- oder Zauberspruch hier ab] +uiShortCutTT [Leg eine Kampfaktion oder Magieaktion (Zauberspruch) hier ab] // HASH_VALUE 2D19632A97548F17 // INDEX 2126 -uiQestionQuit [Wohin willst du gehen?] +uiQestionQuit [Wohin möchtest du gehen?] // HASH_VALUE 1365D0771A40629D // INDEX 2127 @@ -8899,7 +8899,7 @@ uimwSet [SETS] // HASH_VALUE C8C0AC2006B1842D // INDEX 2150 -uimwHands [HÄNDE Aktionsleiste] +uimwHands [HÄNDE und Aktionsleiste] // HASH_VALUE CB720C430F71F837 // INDEX 2151 @@ -9023,7 +9023,7 @@ uimwBars [MEINE WERTE-ANZEIGE] // HASH_VALUE C3621C0B4C114744 // INDEX 2181 -uimwBonusMalus [BONUS / MALUS] +uimwBonusMalus [BUFF / DEBUFF] // HASH_VALUE 8B11903507628423 // INDEX 2182 @@ -9055,15 +9055,15 @@ uimwStatus [STATUS] // HASH_VALUE 450170220A31CC20 // INDEX 2189 -uimwAbilities [FÄHIGKEITEN] +uimwAbilities [FERTIGKEITEN] // HASH_VALUE C4DEB8D7F5E03221 // INDEX 2190 -uimwChatMode0 ["ESC", UM DEN CHAT ZU VERLASSEN] +uimwChatMode0 ['ESC', UM DEN CHAT ZU VERLASSEN] // HASH_VALUE 831CBCFE764DC013 // INDEX 2191 -uimwChatMode1 ["ENTER", UM DEN CHAT ZU VERLASSEN] +uimwChatMode1 ['ENTER', UM DEN CHAT ZU VERLASSEN] // HASH_VALUE 7C61E42C094F1436 // INDEX 2192 @@ -9839,7 +9839,7 @@ uiCultTr [TRYKER: FREUNDE DES WINDES UND DER STRÖMUNGEN, PRINZEN DES LANDES DER \n Die Tryker sind schlaue und weltoffene Homins, die einfache Vergnügen lieben und eher eine Föderation als ein einheitliches Volk darstellen.\n Sie leben heute als freie Homins, während sie in der Vergangenheit oft versklavt waren.\n - Andere Rassen sehen die klein gewachsenen Tryker häufig vorschnell als unreif oder kindlich an. ] + Andere Rassen sehen die klein gewachsenen Tryker häufig vorschnell als unreif oder kindlich an.] // HASH_VALUE AB92CE5AC6C599F2 // INDEX 2382 @@ -9997,11 +9997,13 @@ uiSHOUT [RUFEN] // HASH_VALUE 7058542C7058542C // INDEX 2418 -uiKeepInfoButton [Behalten] +uiKeepInfoButton [Anheften] // HASH_VALUE ECB89CF96AE9664D // INDEX 2419 -uittKeepInfo [Fenster offenhalten.] +uittKeepInfo [Dieses Fenster anheften\n + Wenn angeheftet, werden Informationen zu anderen Gegenständen in einem neuen Fenster angezeigt.\n + Wenn nicht angeheftet, wird dieses Fenster überschrieben.] // HASH_VALUE 45FB9FEFF875C517 // INDEX 2420 @@ -10041,7 +10043,7 @@ uihelpItemMagicBonusDefAffliction [@{FFF9}Bonus für def. Beherrschungsmagie :\n // HASH_VALUE 4A4CE5C3DA44A737 // INDEX 2425 uihelpItemMagicBonusHeader [\n - @{FFFF}Magiebonus @{FFF9}(nur für Magie-Aktionen/Zauber mit Stufe @{FFFF}%mglvl@{FFF9}) oder darunter) \n + @{FFFF}Magiebonus @{FFF9}(nur für Magie-Aktionen/Zauber mit Stufe @{FFFF}%mglvl@{FFF9}) oder darunter)\n ] // HASH_VALUE 49F09B8ED6794263 @@ -10124,19 +10126,19 @@ uiItemRMClass0 [Basis] // HASH_VALUE 6498941864989418 // INDEX 2442 -uiItemRMClass1 [feine(r/s)] +uiItemRMClass1 [feine.] // HASH_VALUE 27567C58E7947078 // INDEX 2443 -uiItemRMClass2 [vorzügliche(r/s)] +uiItemRMClass2 [vorzügliche.] // HASH_VALUE A058808C2A3884AC // INDEX 2444 -uiItemRMClass3 [exzellente(r/s)] +uiItemRMClass3 [exzellente.] // HASH_VALUE A95AF4AAE9E96C8A // INDEX 2445 -uiItemRMClass4 [erhabene(r/s)] +uiItemRMClass4 [erhabene.] // HASH_VALUE 5D26625CB2217642 // INDEX 2446 @@ -10156,7 +10158,7 @@ uiItemFX_ISE_MAGIC_SHOOT_AGAIN [@{2F2F}%p% @{FFFF} Chance, dass der nächste Zau // HASH_VALUE 14C6AB5BBD7F0131 // INDEX 2450 -uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}Chance, einen Bonus von @{2F2F}%r @{FFFF} Punkten plus qualitätsabhängigen Punkten auf den Boost (z.B. Sap-Bonus) eines hergestellen Gegenstandes zu erhalten.] +uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}Chance, einen Bonus von @{2F2F}%r @{FFFF} Punkten plus qualitätsabhängige Punkte auf den Boost (z.B. Sap-Bonus) eines hergestellen Gegenstandes zu erhalten.] // HASH_VALUE 64B7C8128FA0596D // INDEX 2451 @@ -10211,12 +10213,12 @@ uihelpItemAnySkillReqNotMetFmt [\n // HASH_VALUE FD55A3FB7ACC09B0 // INDEX 2462 -uihelpSkillModVsType [@{FFF9}Fähigkeitenbonus : @{FFFF}+%mod @{FFF9}gegen @{FFFF}%type] +uihelpSkillModVsType [@{FFF9}Fertigkeitsbonus: @{FFFF}+%mod @{FFF9}gegen @{FFFF}%type] // HASH_VALUE F20CAAD34A44EC7F // INDEX 2463 -uihelpItemDefaultFormat [@{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n +uihelpItemDefaultFormat [@{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n \n \n %cansell@{FFFF}%desc%no_rent@{FFFF}%descnr%custom_text] @@ -10228,7 +10230,7 @@ uihelpItemCantSell [@{F80B}Dieser Gegenstand kann an keinen Händler verkauft we // HASH_VALUE A203D9DB12EA02AC // INDEX 2465 -uihelpItemCosmeticDontFit [Diese kosmetische Veränderung kann nur bei einer bestimmten @{F80B}Rasse{FFFF} und einem bestimmten @{F80B}Geschlecht@{FFFF} angewandt werden. \n +uihelpItemCosmeticDontFit [Diese kosmetische Veränderung kann nur bei einer bestimmten @{F80B}Rasse{FFFF} und einem bestimmten @{F80B}Geschlecht@{FFFF} angewandt werden.\n ] // HASH_VALUE 03E5545F85F4B4DE @@ -10250,93 +10252,93 @@ uihelpItemCosmetic [\n // HASH_VALUE EA125F4DF699651A // INDEX 2469 -uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoArmorQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - %cansell@{FFF9}@{HuittInfoRequirement}Anforderungen:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n +uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoArmorQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + %cansell@{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoArmorType}Rüstungstyp:@{H}@{T12}@{FFFF}%armor %armor_bonus\n - @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator:@{H}@{T18}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator:@{H}@{T18}@{FFFF}%parry\n - @{FFF9}@{HuittInfoMalus}Aktionsstrafe:@{H}@{T18}@{FFFF}+%actmalus\n - @{FFF9}@{HuittInfoArmorProtection}Schutzfaktor:@{H}@{T18}@{FFFF}%protect%\n - @{FFF9} @{HuittInfoArmorSlash}Max vs Zerschneiden:@{H}@{T18}@{FFFF}%p_slash\n - @{FFF9} @{HuittInfoArmorBlunt}Max vs Zertrümmern:@{H}@{T18}@{FFFF}%p_blunt\n - @{FFF9} @{HuittInfoArmorPierc}Max vs Durchbohren:@{H}@{T18}@{FFFF}%p_pierce\n + @{FFF9}@{HuittInfoArmorType}Rüstungstyp: @{H}@{T12}@{FFFF}%armor %armor_bonus\n + @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator: @{H}@{T18}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator: @{H}@{T18}@{FFFF}%parry\n + @{FFF9}@{HuittInfoMalus}Aktionsmalus: @{H}@{T18}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoArmorProtection}Schutzfaktor: @{H}@{T18}@{FFFF}%protect%\n + @{FFF9}@{HuittInfoArmorSlash}Max. Zerschneideschutz: @{H}@{T18}@{FFFF}%p_slash\n + @{FFF9}@{HuittInfoArmorBlunt}Max. Zertrümmerungsschutz: @{H}@{T18}@{FFFF}%p_blunt\n + @{FFF9}@{HuittInfoArmorPierc}Max. Durchbohrungsschutz: @{H}@{T18}@{FFFF}%p_pierce\n %buffs%special_effects%desc%custom_text] // HASH_VALUE 13E0EBA3282D2876 // INDEX 2470 -uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung:@{H}@{T12}@{FFFF}%sap / %sapmax\n - @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n - %cansell@{FFF9}@{HuittInfoRequirement}Anforderungen:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n +uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoWeaponQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung: @{H}@{T12}@{FFFF}%sap / %sapmax\n + @{FFF9}@{HuittInfoItemSkill}Fertigkeit: @{H}@{T12}@{FFFF}%skill\n + %cansell@{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoDamageType}Schadenstyp:@{H}@{T14}@{FFFF}%dmtype\n - @{FFF9}@{HuittInfoWeaponDamage}Schaden:@{H}@{T14}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoWeaponHitMin}Schläge/Minute:@{H}@{T14}@{FFFF}%speed\n - @{FFF9}@{HuittInfoWeaponReach}Reichweite:@{H}@{T14}@{FFFF}%reach\n - @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator:@{H}@{T24}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator:@{H}@{T24}@{FFFF}%parry\n - @{FFF9}@{HuittInfoTargetDodgeMod}Ausweichmodifikator des Ziels:@{H}@{T24}@{FFFF}%adv_dodge\n - @{FFF9}@{HuittInfoTargetParryMod}Abwehrmodifikator des Ziels:@{H}@{T24}@{FFFF}%adv_parry\n - @{FFF9}@{HuittInfoMalus}Aktionsstrafe:@{H}@{T24}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoDamageType}Schadenstyp: @{H}@{T14}@{FFFF}%dmtype\n + @{FFF9}@{HuittInfoWeaponDamage}Schaden: @{H}@{T14}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n + @{FFF9}@{HuittInfoWeaponHitMin}Treffer/Minute: @{H}@{T14}@{FFFF}%speed\n + @{FFF9}@{HuittInfoWeaponReach}Reichweite: @{H}@{T14}@{FFFF}%reach\n + @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator: @{H}@{T24}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator: @{H}@{T24}@{FFFF}%parry\n + @{FFF9}@{HuittInfoTargetDodgeMod}Ausweichmodifikator des Ziels: @{H}@{T24}@{FFFF}%adv_dodge\n + @{FFF9}@{HuittInfoTargetParryMod}Abwehrmodifikator des Ziels: @{H}@{T24}@{FFFF}%adv_parry\n + @{FFF9}@{HuittInfoMalus}Aktionsmalus: @{H}@{T24}@{FFFF}+%actmalus\n %magic_bonus%buffs%special_effects%skill_mod_vs_type%desc%custom_text%enchantment] // HASH_VALUE 3C0F81B91BD521BD // INDEX 2471 -uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung:@{H}@{T12}@{FFFF}%sap / %sapmax\n - @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n - %cansell@{FFF9}@{HuittInfoRequirement}Anforderungen:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n +uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoWeaponQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + @{FFF9}@{HuittInfoWeaponSapLoad}Sapladung: @{H}@{T12}@{FFFF}%sap / %sapmax\n + @{FFF9}@{HuittInfoItemSkill}Fertigkeit: @{H}@{T12}@{FFFF}%skill\n + %cansell@{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoWeaponRDamage}Schaden:@{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoWeaponRHitMin}Schläge/Minute:@{H}@{T12}@{FFFF}%speed\n - @{FFF9}@{HuittInfoWeaponRange}Reichweite:@{H}@{T12}@{FFFF}%range\n - @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator:@{H}@{T12}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator:@{H}@{T12}@{FFFF}%parry\n - @{FFF9}@{HuittInfoTargetDodgeMod}Ausweichmodifikator des Ziels:@{H}@{T12}@{FFFF}%adv_dodge\n - @{FFF9}@{HuittInfoTargetParryMod}Abwehrmodifikator des Ziels:@{H}@{T12}@{FFFF}%adv_parry\n - @{FFF9}@{HuittInfoMalus}Aktionsstrafe:@{H}@{T12}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoWeaponRDamage}Schaden: @{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n + @{FFF9}@{HuittInfoWeaponRHitMin}Treffer/Minute: @{H}@{T12}@{FFFF}%speed\n + @{FFF9}@{HuittInfoWeaponRange}Reichweite: @{H}@{T12}@{FFFF}%range\n + @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator: @{H}@{T12}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator: @{H}@{T12}@{FFFF}%parry\n + @{FFF9}@{HuittInfoTargetDodgeMod}Ausweichmodifikator des Ziels: @{H}@{T12}@{FFFF}%adv_dodge\n + @{FFF9}@{HuittInfoTargetParryMod}Abwehrmodifikator des Ziels: @{H}@{T12}@{FFFF}%adv_parry\n + @{FFF9}@{HuittInfoMalus}Aktionsmalus: @{H}@{T12}@{FFFF}+%actmalus\n %magic_bonus%buffs%special_effects%skill_mod_vs_type%desc@{FFFF}%custom_text\n %enchantment] // HASH_VALUE 1589D2AD17955FDD // INDEX 2472 -uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoWeaponQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n +uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoWeaponQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + @{FFF9}@{HuittInfoItemSkill}Fertigkeit: @{H}@{T12}@{FFFF}%skill\n %cansell\n - @{FFF9}@{HuittInfoAmmoMagazine}Magazin:@{H}@{T12}@{FFFF}%magazine\n - @{FFF9}@{HuittInfoDamageType}Schadenstyp:@{H}@{T12}@{FFFF}%dmtype\n - @{FFF9}@{HuittInfoAmmoDamage}Schaden:@{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoAmmoHitMin}Schläge/Minute:@{H}@{T12}@{FFFF}%speed\n - @{FFF9}@{HuittInfoAmmoRange}Reichweite:@{H}@{T12}@{FFFF}%range\n + @{FFF9}@{HuittInfoAmmoMagazine}Magazin: @{H}@{T12}@{FFFF}%magazine\n + @{FFF9}@{HuittInfoDamageType}Schadenstyp: @{H}@{T12}@{FFFF}%dmtype\n + @{FFF9}@{HuittInfoAmmoDamage}Schaden: @{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n + @{FFF9}@{HuittInfoAmmoHitMin}Treffer/Minute: @{H}@{T12}@{FFFF}%speed\n + @{FFF9}@{HuittInfoAmmoRange}Reichweite: @{H}@{T12}@{FFFF}%range\n \n @{FFFF}%desc] // HASH_VALUE 83398662F7CD3D0A // INDEX 2473 -uihelpItemMPFormat [@{FFF9}@{HuittInfoMpQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n +uihelpItemMPFormat [@{FFF9}@{HuittInfoMpQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n %cansell\n - @{FFF9}@{HuittInfoMpEco}Ökosystem:@{H}@{T12}@{FFFF}%ecosystem\n - @{FFF9}@{HuittInfoMpFam}Art:@{H}@{T12}@{FFFF}%family\n - @{FFF9}@{HuittInfoMpColor}Farbe:@{H}@{T12}@{FFFF}%mpcolor\n + @{FFF9}@{HuittInfoMpEco}Ökosystem: @{H}@{T12}@{FFFF}%ecosystem\n + @{FFF9}@{HuittInfoMpFam}Art: @{H}@{T12}@{FFFF}%family\n + @{FFF9}@{HuittInfoMpColor}Farbe: @{H}@{T12}@{FFFF}%mpcolor\n @{FFFF}%desc\n %craft] @@ -10407,33 +10409,33 @@ iompfKaravan [Nur Karavan] // HASH_VALUE E1334509A8C05133 // INDEX 2489 -uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoArmorQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - %cansell@{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n +uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoArmorQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + %cansell@{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoShieldCat}Kategorie:@{H}@{T12}@{FFFF}%cat\n - @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator:@{H}@{T22}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator:@{H}@{T22}@{FFFF}%parry\n - @{FFF9}@{HuittInfoMalus}Aktionsstrafe:@{H}@{T22}@{FFFF}+%actmalus\n - @{FFF9}@{HuittInfoArmorProtection}Schutzfaktor:@{H}@{T22}@{FFFF}%protect%\n - @{FFF9} @{HuittInfoArmorSlash}Zerschneidungsschutz max.:@{H}@{T22}@{FFFF}%p_slash\n - @{FFF9} @{HuittInfoArmorBlunt}Zertrümmerungsschutz max.:@{H}@{T22}@{FFFF}%p_blunt\n - @{FFF9} @{HuittInfoArmorPierc}Durchbohrungsschutz max.:@{H}@{T22}@{FFFF}%p_pierce\n + @{FFF9}@{HuittInfoShieldCat}Kategorie: @{H}@{T12}@{FFFF}%cat\n + @{FFF9}@{HuittInfoDodgeMod}Ausweichmodifikator: @{H}@{T22}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Abwehrmodifikator: @{H}@{T22}@{FFFF}%parry\n + @{FFF9}@{HuittInfoMalus}Aktionsmalus: @{H}@{T22}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoArmorProtection}Schutzfaktor: @{H}@{T22}@{FFFF}%protect%\n + @{FFF9}@{HuittInfoArmorSlash}max. Zerschneidesschutz: @{H}@{T22}@{FFFF}%p_slash\n + @{FFF9}@{HuittInfoArmorBlunt}max. Zertrümmerungsschutz: @{H}@{T22}@{FFFF}%p_blunt\n + @{FFF9}@{HuittInfoArmorPierc}max. Durchbohrungsschutz: @{H}@{T22}@{FFFF}%p_pierce\n %buffs%special_effects%desc%custom_text] // HASH_VALUE FFE62CC8B7369AC0 // INDEX 2490 -uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittToolCraftType}Werkzeugart:@{H}@{T12}@{FFFF}%tool\n +uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoToolQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + @{FFF9}@{HuittToolCraftType}Werkzeugart: @{H}@{T12}@{FFFF}%tool\n %cansell\n - @{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n + @{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n %buffs\n %special_effects\n \n @@ -10441,13 +10443,13 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF // HASH_VALUE 12DD79BE889C767A // INDEX 2491 -uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n +uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoToolQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell\n - @{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n + @{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n %buffs\n %special_effects\n \n @@ -10455,26 +10457,26 @@ uihelpItemHarvestToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF} // HASH_VALUE AB833BD0D048F9BB // INDEX 2492 -uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoToolQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittInfoItemSkill}Fertigkeit:@{H}@{T12}@{FFFF}%skill\n +uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoToolQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + @{FFF9}@{HuittInfoItemSkill}Fertigkeit: @{H}@{T12}@{FFFF}%skill\n %cansell\n - @{FFF9}Reichweite Befehl:@{T12}@{FFFF}%cmdrange\n - @{FFF9}Packtiere Max:@{T12}@{FFFF}%maxpacker\n + @{FFF9}Reichweite Befehl: @{T12}@{FFFF}%cmdrange\n + @{FFF9}Packtiere Max:@ {T12}@{FFFF}%maxpacker\n \n @{FFFF}%desc%custom_text] // HASH_VALUE C6ED74E2DF2FE4E5 // INDEX 2493 -uihelpItemJewelFormat [@{FFF9}@{HuittInfoOrigin}Herkunft:@{H}@{T12}@{FFFF}%origin\n - @{FFF9}@{HuittInfoJewelryQuality}Qualität:@{H}@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoWeight}Gewicht:@{H}@{T12}@{FFFF}%weight Kg\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n - @{FFF9}@{HuittInfoHP}Haltbarkeit:@{H}@{T12}@{FFFF}%hp / %hpmax\n - %cansell@{FFF9}@{HuittInfoRequirement}Anforderung:@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n +uihelpItemJewelFormat [@{FFF9}@{HuittInfoOrigin}Design: @{H}@{T12}@{FFFF}%origin\n + @{FFF9}@{HuittInfoJewelryQuality}Qualität: @{H}@{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoWeight}Gewicht: @{H}@{T12}@{FFFF}%weight kg\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n + @{FFF9}@{HuittInfoHP}Haltbarkeit: @{H}@{T12}@{FFFF}%hp / %hpmax\n + %cansell@{FFF9}@{HuittInfoRequirement}Voraussetzung: @{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n %magic_protection%magic_resistance%buffs%desc%custom_text] // HASH_VALUE 6E6E2DA956AF0E3A @@ -10484,7 +10486,7 @@ uihelpItemCrystalSpell [Mit diesem Gegenstand kann man\n \n Nimm die zu verzaubernde Waffe in die rechte Hand.\n \n - Rechtsklicke dann auf den Kristall und wähle "RECHTE HAND VERZAUBERN".\n + Rechtsklicke dann auf den Kristall und wähle 'RECHTE HAND VERZAUBERN'.\n \n Der Einsatz dieses Kristalls hebt alle vorigen Verzauberungen des Gegenstands in der rechten Hand auf.\n \n @@ -10492,22 +10494,22 @@ uihelpItemCrystalSpell [Mit diesem Gegenstand kann man\n // HASH_VALUE 6CF513AA416395BB // INDEX 2495 -uihelpItemChargeSpell [@{FFF9}Sapladung:@{T12}@{FFFF}%quality\n - @{FFF9}@{HuittInfoBulk}Volumen:@{H}@{T12}@{FFFF}%bulk\n +uihelpItemChargeSpell [@{FFF9}Sapladung: @{T12}@{FFFF}%quality\n + @{FFF9}@{HuittInfoBulk}Volumen: @{H}@{T12}@{FFFF}%bulk\n \n Mit diesem Gegenstand kann man\n das Sap einer verzauberten Waffe wieder aufladen.\n \n Nimm die aufzuladende Waffe in die rechte Hand.\n \n - Rechtsklicke dann auf die Ladung und wähle "RECHTE HAND WIEDER AUFLADEN".\n + Rechtsklicke dann auf die Ladung und wähle 'RECHTE HAND WIEDER AUFLADEN'.\n \n - Die Sapladung und ihr Maximum können mit einem Rechtsklick auf den Gegenstand unter "Info" eingesehen werden.\n + Die Sapladung und ihr Maximum können mit einem Rechtsklick auf den Gegenstand unter 'Info' eingesehen werden.\n %cansell%custom_text] // HASH_VALUE E83415184D022FA7 // INDEX 2496 -uihelpItemAnimal [Dieser Gegenstand symbolisiert \n +uihelpItemAnimal [Dieser Gegenstand symbolisiert\n ein Tier #%petnumber.\n \n Du kannst ein Tier mit Hilfe dieses Gegenstands verschenken oder verkaufen, aber nur, wenn sein Inventar leer ist.\n @@ -10515,28 +10517,28 @@ uihelpItemAnimal [Dieser Gegenstand symbolisiert \n // HASH_VALUE CB10EC5C14C1477D // INDEX 2497 -uihelpItemTeleport [Zum Verwenden rechtsklicken und \n - "Teleportieren" auswählen \n - Ein Teleportpakt wird dafür bei Ankunft verbraucht. \n +uihelpItemTeleport [Zum Verwenden rechtsklicken und\n + ''Teleportieren' auswählen\n + Ein Teleportpakt wird dafür bei Ankunft verbraucht.\n %cansell%desc%custom_text] // HASH_VALUE 9B6A37002639A74D // INDEX 2498 -uihelpBrickFormat [@{FFF9}Stufe:@{T8}@{FFFF}%lvl\n - %ks@{FFF9}Aktion:@{T8}@{FFFF}%skill\n - %ks@{FFF9}%hcost:@{T8}@{FFFF}%cost\n +uihelpBrickFormat [@{FFF9}Stufe: @{T8}@{FFFF}%lvl\n + %ks@{FFF9}Aktion: @{T8}@{FFFF}%skill\n + %ks@{FFF9}%hcost: @{T8}@{FFFF}%cost\n %magicresist\n @{FFFF}%desc] // HASH_VALUE E9693C64187AA7CC // INDEX 2499 -uihelpBrickMagicResist [@{FFF9}Magie-Art:\n +uihelpBrickMagicResist [@{FFF9}Magie-Widerstand:\n @{T4}@{FFFF}%t\n ] // HASH_VALUE C3CCBC6A52334340 // INDEX 2500 -uihelpBrickCombatSkillSeparator [@{FFF9} oder \n +uihelpBrickCombatSkillSeparator [@{FFF9} oder\n @{T8}@{FFFF}] // HASH_VALUE 74DCF40C74DCF40C @@ -10549,13 +10551,13 @@ uihelpSabrinaCredit [Ausgleich] // HASH_VALUE E6DE7A794789E895 // INDEX 2503 -uihelpBrickFaberFormat [@{FFF9}Stufe:@{T8}@{FFFF}%lvl\n - %ks@{FFF9}Fertigkeit:@{T8}@{FFFF} %skill\n +uihelpBrickFaberFormat [@{FFF9}Stufe: @{T8}@{FFFF}%lvl\n + %ks@{FFF9}Fertigkeit: @{T8}@{FFFF} %skill\n %ks@{FFF9}%hcost:@{T8}@{FFFF}%cost\n \n - @{FFF9}Werkzeugtyp:@{T8}@{FFFF}%tool\n - @{FFF9}Benötigte Bestandteile:@{FFFF}\n - %mpinfo@{FFF9}Spezifische benötigte Gegenstände:@{FFFF}\n + @{FFF9}Werkzeugtyp: @{T8}@{FFFF}%tool\n + @{FFF9}Benötigte Bestandteile: @{FFFF}\n + %mpinfo@{FFF9}Spezifische benötigte Gegenstände: @{FFFF}\n %mpformula\n @{FFFF}%desc] @@ -10585,29 +10587,29 @@ uihelpPhraseHeaderBricks [@{FFFF}--- Stanzas ---] // HASH_VALUE 820FADA1D202D652 // INDEX 2508 -uihelpPhraseCombatFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n - @{FFF9}Verwendb. mit:@{T12}@{FFFF}%wcomp\n +uihelpPhraseCombatFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n + @{FFF9}Verwendb. mit: @{T12}@{FFFF}%wcomp\n \n %compostart Diese Eigenschaften sind von der ausgerüsteten Waffe abhängig.\n - @{FFF9}@{HuittActionSuccessRateSF}Erfolgsrate:@{H}@{T16}@{FFFF}%success%\n - @{FFF9}Ausd.-Verbrauch:@{T16}@{FFFF}%energy_cost\n - @{FFF9}HP-Verbrauch:@{T16}@{FFFF}%hp_cost\n + @{FFF9}@{HuittActionSuccessRateSF}Erfolgsrate: @{H}@{T16}@{FFFF}%success%\n + @{FFF9}Ausd.-Verbrauch: @{T16}@{FFFF}%energy_cost\n + @{FFF9}Lebensverbrauch: @{T16}@{FFFF}%hp_cost\n @{FFFF}%desc%req] // HASH_VALUE 6D6328B568C27DD6 // INDEX 2509 -uihelpPhraseMagicFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n - @{FFF9}@{HuittActionSpellLevel}Magiestufe:@{T12}@{FFFF}%mglvl@{H}\n +uihelpPhraseMagicFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n + @{FFF9}@{HuittActionSpellLevel}Magiestufe: @{T12}@{FFFF}%mglvl@{H}\n %magicresist\n - %compostart@{FFF9}@{HuittActionSuccessRateSM}Erfolg:@{H}@{T12}@{FFFF}%success%\n - @{FFF9}Zauberzeit:@{T12}@{FFFF}%duration Sekunden\n - @{FFF9}Sap-Verbrauch:@{T12}@{FFFF}%energy_cost\n - @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n - @{FFF9}Reichweite:@{T12}@{FFFF}%range\n + %compostart@{FFF9}@{HuittActionSuccessRateSM}Erfolgsrate: @{H}@{T12}@{FFFF}%success%\n + @{FFF9}Zauberzeit: @{T12}@{FFFF}%duration Sekunden\n + @{FFF9}Sap-Verbrauch: @{T12}@{FFFF}%energy_cost\n + @{FFF9}Lebensverbrauch: @{T12}@{FFFF}%hp_cost\n + @{FFF9}Reichweite: @{T12}@{FFFF}%range\n @{FFFF}%desc%req] // HASH_VALUE E9693C64187AA7CC @@ -10626,23 +10628,23 @@ uihelpPhraseRangeSelf [Selbst] // HASH_VALUE FEB497ABF65D73CE // INDEX 2513 -uihelpPhraseCraftFormat [@{FFF9}Aktion:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n +uihelpPhraseCraftFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}@{HuittActionSuccessRateSC}Erfolg:@{H}@{T12}@{FFFF} abhängig vom zu erschaffenden Gegenstand (siehe Handwerk).\n - @{FFF9}Aktionsdauer:@{T12}@{FFFF}%duration Sekunden\n - @{FFF9}Fokusverbr.:@{T12}@{FFFF}%energy_cost\n + %compostart@{FFF9}@{HuittActionSuccessRateSC}Erfolgsrate: @{H}@{T12}@{FFFF} abhängig vom zu erschaffenden Gegenstand (siehe Handwerk).\n + @{FFF9}Aktionsdauer: @{T12}@{FFFF}%duration Sekunden\n + @{FFF9}Fokusverbr.: @{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE B5EEF9CDEFE4BF3A // INDEX 2514 -uihelpPhraseForageExtractionFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n +uihelpPhraseForageExtractionFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}Aktionszeit:@{T12}@{FFFF}%duration Sekunden\n - @{FFF9}Fokusverbr.:@{T12}@{FFFF}%energy_cost\n + %compostart@{FFF9}Aktionszeit: @{T12}@{FFFF}%duration Sekunden\n + @{FFF9}Fokusverbr.: @{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE E1F8D905BBCF29E1 @@ -10653,46 +10655,47 @@ uihelpPhraseForageSuccessAll [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} (Wüs // HASH_VALUE C6EA09E66625CC51 // INDEX 2516 -uihelpPhraseForageSuccessDesert [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} in der Wüste:@{T12}@{FFFF}%suc_desert\n +uihelpPhraseForageSuccessDesert [@{FFF9}@{HuittActionSuccessRateSH}Erfolgsrate@{H} in der Wüste:@{T12}@{FFFF}%suc_desert\n ] // HASH_VALUE 06FA05EF6845CC51 // INDEX 2517 -uihelpPhraseForageSuccessForest [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} im Wald :@{T12}@{FFFF}%suc_forest\n +uihelpPhraseForageSuccessForest [@{FFF9}@{HuittActionSuccessRateSH}Erfolgsrate@{H} im Waldland :@{T12}@{FFFF}%suc_forest\n ] // HASH_VALUE 81A9FDF1EB85CC42 // INDEX 2518 -uihelpPhraseForageSuccessJungle [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} im Dschungel:@{T12}@{FFFF}%suc_jungle\n +uihelpPhraseForageSuccessJungle [@{FFF9}@{HuittActionSuccessRateSH}Erfolgsrate@{H} im Dschungel:@{T12}@{FFFF}%suc_jungle\n ] // HASH_VALUE 9AF575096B2218D3 // INDEX 2519 -uihelpPhraseForageSuccessLacustre [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} im Seenland:@{T12}@{FFFF}%suc_lake\n +uihelpPhraseForageSuccessLacustre [@{FFF9}@{HuittActionSuccessRateSH}Erfolgsrate@{H} im Seenland:@{T12}@{FFFF}%suc_lake\n ] // HASH_VALUE 6F38718B0A5C600F // INDEX 2520 -uihelpPhraseForageSuccessPrimaryRoot [@{FFF9}@{HuittActionSuccessRateSH}Erfolg@{H} in den Urwurzeln:@{T12}@{FFFF}%suc_prime\n +uihelpPhraseForageSuccessPrimaryRoot [@{FFF9}@{HuittActionSuccessRateSH}Erfolgsrate@{H} in den Urwurzeln:@{T12}@{FFFF}%suc_prime\n ] // HASH_VALUE C42870FAC7288A2B // INDEX 2521 -uihelpPhraseOtherFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n +uihelpPhraseOtherFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n - %compostart%suc_forage@{FFF9}Aktionszeit:@{T12}@{FFFF}%duration seconds\n - @{FFF9}Fokusverbrauch:@{T12}@{FFFF}%energy_cost\n + %compostart@{FFF9}Erfolgsrate: @{T16}@{FFFF}%success%\n + @{FFF9}Vorbereitungsdauer: @{T16}@{FFFF}%duration sec.\n + @{FFF9}Fokusverbrauch: @{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE 7BF23D9209DAD4A2 // INDEX 2522 -uihelpPhraseSpecialPowerFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n +uihelpPhraseSpecialPowerFormat [@{FFF9}Aktion: @{T12}@{FFFF}%name\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}Reichweite:@{T12}@{FFFF}%range\n + %compostart@{FFF9}Reichweite: @{T12}@{FFFF}%range\n @{FFFF}%desc%req] // HASH_VALUE 54284AA3C257DE53 @@ -10700,56 +10703,56 @@ uihelpPhraseSpecialPowerFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n uihelpPhraseEnchantmentFormat [\n @{FFFF}--- Verzauberung ---\n @{FFF9}Dieser Gegenstand ist mit dieser Aktion verzaubert:\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n @{FFF9}Aktionen und Zauber auf verzauberten Gegenständen gelingen immer.\n - @{FFF9}Zauberdauer:@{T12}@{FFFF}%duration seconds\n - @{FFF9}Sapverbrauch:@{T12}@{FFFF}%energy_cost\n - @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n - @{FFF9}Reichweite:@{T12}@{FFFF}%range\n + @{FFF9}Zauberdauer: @{T12}@{FFFF}%duration seconds\n + @{FFF9}Sapverbrauch: @{T12}@{FFFF}%energy_cost\n + @{FFF9}Lebensverbrauch: @{T12}@{FFFF}%hp_cost\n + @{FFF9}Reichweite: @{T12}@{FFFF}%range\n ] // HASH_VALUE DFEC9DA28E2CA03B // INDEX 2524 uihelpPhraseCrystalSpellFormat [@{FFFF}--- Verzauberung ---\n @{FFF9}Dieser Kristall kann eine Waffe mit der kristallisierten Magie-Aktion verzaubern:\n - @{FFF9}Kosten:@{T12}@{FFFF}%cost\n - @{FFF9}Ausgleich:@{T12}@{FFFF}%credit\n + @{FFF9}Kosten: @{T12}@{FFFF}%cost\n + @{FFF9}Ausgleich: @{T12}@{FFFF}%credit\n \n @{FFF9}Aktionen und Zauber auf verzauberten Gegenständen gelingen immer.\n - @{FFF9}Zauberdauer:@{T12}@{FFFF}%duration Sekunden\n - @{FFF9}Sapverbrauch:@{T12}@{FFFF}%energy_cost\n - @{FFF9}HP-Verbrauch:@{T12}@{FFFF}%hp_cost\n - @{FFF9}Reichweite:@{T12}@{FFFF}%range\n + @{FFF9}Zauberdauer: @{T12}@{FFFF}%duration Sekunden\n + @{FFF9}Sapverbrauch: @{T12}@{FFFF}%energy_cost\n + @{FFF9}Lebensverbrauch: @{T12}@{FFFF}%hp_cost\n + @{FFF9}Reichweite: @{T12}@{FFFF}%range\n ] // HASH_VALUE 9719881D178D7D81 // INDEX 2525 uihelpPhraseRequirementHeader [\n - @{FFFF}--- Anforderungen --- \n - @{FFF9}@{HuittActionSkillPoint}Benötigte Fertigkeitspunkte: @{H}@{T12}@{FFFF}%sp / %basesp\n - @{FFF9}@{HuittActionSkillReq}Benötigte Fertigkeiten:@{H}\n + @{FFFF}--- Voraussetzung ---\n + @{FFF9}@{HuittActionSkillPoint}Kostet Fertigkeitspunkte: @{H}@{T12}@{FFFF}%sp / %basesp\n + @{FFF9}@{HuittActionSkillReq}Benötigte Fertigkeiten: @{H}\n ] // HASH_VALUE 03B2BD64B83F75A9 // INDEX 2526 -uihelpPhraseRequirementLine [@{T4}@{FFF9}Fertigkeit @{FFFF}%s@{FFF9} Stufe @{FFFF}%d\n +uihelpPhraseRequirementLine [@{T4} %s@{FFF9} ab Stufe @{FFFF}%d\n ] // HASH_VALUE 03436449B0FD3CA9 // INDEX 2527 -uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Fertigkeit @{F80F}%s@{F80B} auf Stufe @{F80F}%d\n +uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Fertigkeit @{F80F}%s@{F80B} ab Stufe @{F80F}%d@{F80B} benötigt! @{F80F}\n ] // HASH_VALUE C4646B55D3A3471E // INDEX 2528 -uihelpPhraseRequirementOR [@{FFFF}oder \n +uihelpPhraseRequirementOR [@{FFFF}oder\n ] // HASH_VALUE E38ADC3C9A64A5D1 // INDEX 2529 -uihelpPhraseBrickRequirement [@{FFF9}@{HuittActionStanzaReq}Benötigte Stanzas:@{FFFF}@{H}\n +uihelpPhraseBrickRequirement [@{FFF9}@{HuittActionStanzaReq}Benötigte Stanzas: @{FFFF}@{H}\n ] // HASH_VALUE 428D8631CC10708E @@ -10761,7 +10764,7 @@ uihelpPhraseNotCastableFormat [@{FFFF}Das ist eine Aktionsverbesserung, die dir // HASH_VALUE 0F0F8DFF048A8EF8 // INDEX 2531 uihelpPhraseCharacteristic [@{FFFF}Dies ist eine Verbesserung, welche einen Charakterwert erhöht.\n - Es handelt sich um eine passive Verbesserung, Du kannst sie nicht aktiv zaubern.\n + Es handelt sich um eine passive Verbesserung, du kannst sie weder direkt zaubern noch in die Aktionsleiste ziehen.\n @{FFFF}%desc%req] // HASH_VALUE AFC850B7201BDDEA @@ -10773,11 +10776,11 @@ uihelpPhraseProcEnchantment [@{FFFF}Mit dieser Aktion kannst du die Verzauberung // HASH_VALUE 0B663B02619E27B2 // INDEX 2533 -uihelpPactFormat [@{FFF9}Stufe:@{T12}@{FFFF}%lvl\n - @{FFF9}Verlorene Lebenskraft:@{T12}@{FFFF}%hp\n - @{FFF9}Verlorene Ausdauer:@{T12}@{FFFF}%sta\n - @{FFF9}Verlorener Sap:@{T12}@{FFFF}%sap\n - @{FFF9}Verlorene Fertigkeiten:@{T12}@{FFFF}%skill\n +uihelpPactFormat [@{FFF9}Stufe: @{T12}@{FFFF}%lvl\n + @{FFF9}Verlorene Lebenskraft: @{T12}@{FFFF}%hp\n + @{FFF9}Verlorene Ausdauer: @{T12}@{FFFF}%sta\n + @{FFF9}Verlorener Sap: @{T12}@{FFFF}%sap\n + @{FFF9}Verlorene Fertigkeiten: @{T12}@{FFFF}%skill\n ] // HASH_VALUE A3640C075B010074 @@ -10821,7 +10824,7 @@ uiTitleCantObtain [Du kannst diesen Titel nicht erhalten.] // HASH_VALUE 75276CBE949A8C0C // INDEX 2539 -uiTitleSkillNoNeed [Es werden keine Fähigkeiten benötigt, um diesen Titel zu bekommen.\n +uiTitleSkillNoNeed [Es werden keine Fertigkeiten benötigt, um diesen Titel zu bekommen.\n ] // HASH_VALUE 77C78094F0880DD9 @@ -10831,13 +10834,13 @@ uiTitleBrickNoNeed [Es werden keine Stanzas benötigt, um diesen Titel zu bekomm // HASH_VALUE DEF51475829BA943 // INDEX 2541 -uihelpTitleFormat [@{FFF9}Name:@{T12}@{FFFF}%name\n - @{FFF9}Titel:@{T12}@{FFFF}%title\n +uihelpTitleFormat [@{FFF9}Name: @{T12}@{FFFF}%name\n + @{FFF9}Titel: @{T12}@{FFFF}%title\n %skills%bricks] // HASH_VALUE A28115BA4B573F5A // INDEX 2542 -uiTitleSkillHeader [@{FFF9} Benötigte Fähigkeiten:\n +uiTitleSkillHeader [@{FFF9} Benötigte Fertigkeiten:\n ] // HASH_VALUE E581150DC7384752 @@ -10920,7 +10923,7 @@ uiSet [Einstellen] // HASH_VALUE F0223D05D05A5A86 // INDEX 2562 -uiForce [Stärke] +uiForce [Stufe des ausgewählten Ziels] // HASH_VALUE 4814440444105450 // INDEX 2563 @@ -12041,7 +12044,7 @@ msgPermanentlyBanned [&BC&Dein Ryzom-Account wurde permanent gesperrt.] // HASH_VALUE 3911721FF5C10731 // INDEX 2840 -uiCantUseItem [Du hast nicht die Fähigkeit, das anzuwenden.] +uiCantUseItem [Du hast nicht die Fähigkeiten, das anzuwenden.] // HASH_VALUE 45B15625FAA23625 // INDEX 2841 @@ -12117,7 +12120,7 @@ uiBotChatPact [Pakt: ] // HASH_VALUE CCC5B49323836219 // INDEX 2859 -uiBotChatSkill [Fähigkeit: ] +uiBotChatSkill [Fertigkeit: ] // HASH_VALUE ADAA68F59C1A6E57 // INDEX 2860 @@ -12361,7 +12364,7 @@ uiFrozenSkill [EINGEFROREN] // HASH_VALUE A7F65A607EA47B98 // INDEX 2920 -uiInitHelp1 [Mit diesen Buttons kannst du zwischen 4 alternativen Spiel-Oberflächen-Darstellungen (UIs) wechseln.] +uiInitHelp1 [Mit diesen Buttons kannst du zwischen 4 alternativen Oberflächen-Darstellungen (UIs) wechseln.] // HASH_VALUE C494ACDDCE7EE794 // INDEX 2921 @@ -12649,7 +12652,7 @@ uiTell [ANFLÜSTERN] // HASH_VALUE D6D28F5A4D442F0C // INDEX 2992 -uiShowHide [Anzeigen / Verstecken] +uiShowHide [Zeig/Verstecke] // HASH_VALUE 74D8844C74D8844C // INDEX 2993 @@ -12669,7 +12672,7 @@ uiPlayer [Werte-Anzeige] // HASH_VALUE D36A9C4B6C15C7A4 // INDEX 2997 -uiBonusMalus [Bonus / Malus] +uiBonusMalus [Buff / Debuff] // HASH_VALUE EB27288CA3A73480 // INDEX 2998 @@ -12781,7 +12784,7 @@ uiJournal [Missionen] // HASH_VALUE 5D07F0822A39CCA0 // INDEX 3025 -uiAbilities [Fähigkeiten] +uiAbilities [Fertigkeiten] // HASH_VALUE A03AF08DEF48D8C6 // INDEX 3026 @@ -12957,7 +12960,7 @@ uiMoveLookUp [nach oben schauen] // HASH_VALUE A39684A0D1F2FB69 // INDEX 3069 -uiMoveLookDown [nach onten schauen] +uiMoveLookDown [nach unten schauen] // HASH_VALUE 3CC62B48DD82B359 // INDEX 3070 @@ -12977,11 +12980,11 @@ uiMountUnmount [Aufsteigen / Absteigen] // HASH_VALUE 5867A88E5B940877 // INDEX 3074 -uiToggleCamera [Kamerasicht umschalten] +uiToggleCamera [Egoperspektive / Verfolgerperspektive] // HASH_VALUE 8B235C8E26F81F44 // INDEX 3075 -uiNoTarget [kein Ziel] +uiNoTarget [Visiere gar kein Ziel an] // HASH_VALUE E8FA0A846C92ECB2 // INDEX 3076 @@ -12993,7 +12996,7 @@ uiTargetCmdEntity [Name des anzuvisierenden Wesens] // HASH_VALUE 2B29F0307EE6BC9A // INDEX 3078 -uiTargetTeammateCmd [Schau zu Teamkollege #] +uiTargetTeammateCmd [Visiere Teammitglied # an] // HASH_VALUE 29E6FC6EEEF4F085 // INDEX 3079 @@ -13001,7 +13004,7 @@ uiTargetTeammateCmdI [Nummer] // HASH_VALUE 42A740FFAFE6FCAA // INDEX 3080 -uiAssistCmd [Visiere das Ziel des aktuellen Ziels an] +uiAssistCmd [Assistiere Ziel bei seinem Ziel] // HASH_VALUE AE2AC8F31037CEBB // INDEX 3081 @@ -13009,7 +13012,7 @@ uiAssistCmdEntity [Name des Wesens, dem assistiert wird] // HASH_VALUE D6625803A8C6E8AF // INDEX 3082 -uiAssistTargetCmd [Visiere das Ziel des ausgewählten Ziels an] +uiAssistTargetCmd [Visiere Ziel des gewählten Ziels an] // HASH_VALUE E692146868D074C6 // INDEX 3083 @@ -13017,7 +13020,7 @@ uiTargetErrorCmd [Wesen nicht gefunden] // HASH_VALUE 5B36487A56279C4B // INDEX 3084 -uiSelfTarget [sich selbst anvisieren] +uiSelfTarget [Visiere deinen Charakter an] // HASH_VALUE 1437F48B9A94408A // INDEX 3085 @@ -13041,15 +13044,15 @@ uiRunShortcut [Führe Schnelltaste aus] // HASH_VALUE AC4A6C2913FAC09E // INDEX 3090 -uiShortcutNumber [Nummer der Schnelltaste] +uiShortcutNumber [Schnelltasten-Zahl] // HASH_VALUE 644957718CE6209A // INDEX 3091 -uiSelectShortcutBar [Wähle Schnelltastenbalken] +uiSelectShortcutBar [Wähle Aktionsleistenbalken] // HASH_VALUE 147A14389DFC083E // INDEX 3092 -uiShortcutBarNumber [Nummer des Schnelltastenbalkens] +uiShortcutBarNumber [Nummer des Aktionsleistenbalkens] // HASH_VALUE 6889B89AE6E9AC99 // INDEX 3093 @@ -13097,7 +13100,7 @@ uiReplyTellerOnce [antworte dem Flüstern] // HASH_VALUE 0E1FA83BBFE124FD // INDEX 3104 -uiTellWindow [Flüster-/Tell-Fenster] +uiTellWindow [Flüstern-/Tell-Fenster] // HASH_VALUE 07AE900FC85F7C34 // INDEX 3105 @@ -13257,7 +13260,7 @@ uiJoinTeamProposal [Team-Einladung annehmen] // HASH_VALUE C2B2DC544C104A32 // INDEX 3144 -uiTradeInvitation [EINLADUNG ZUM TAUSCH] +uiTradeInvitation [Einladung zum Tausch] // HASH_VALUE BC2E04E942E18037 // INDEX 3145 @@ -13273,7 +13276,7 @@ youTell [Du flüsterst] // HASH_VALUE ACBAF8D11D96AFB0 // INDEX 3148 -tellsYou [flüstert Dir] +tellsYou [sagt dir] // HASH_VALUE 2629789252E56B6A // INDEX 3149 @@ -13285,7 +13288,7 @@ uiWindowDontAcceptPeopleAsTarget [Fenster akzeptiert keine Spielernamen als Ziel // HASH_VALUE 2F588D37A0728ABB // INDEX 3151 -uiWindowWantSayOrShout [Du kannst in diesem Fenster nur etwas "sagen" oder "rufen"] +uiWindowWantSayOrShout [Du kannst in diesem Fenster nur etwas 'sagen' oder 'rufen'] // HASH_VALUE 2CB9580BC545175C // INDEX 3152 @@ -13322,7 +13325,7 @@ uiCongifExplanation [Wähle die Konfiguration in der Baumstruktur auf der linken -Die Auflösung wird erst verändert, wenn du auf 'Anwenden' klickst.\n -Texturdetails werden erst geändert, wenn du das Spiel das nächste Mal startest.\n \n - -"ABBRUCH" und "SCHLIEßEN"-Buttons werden nur Veränderungen abbrechen, die nicht mit 'Anwenden' gespeichert wurden.] + -'ABBRUCH' und 'SCHLIEßEN'-Buttons werden nur Veränderungen abbrechen, die nicht mit 'Anwenden' gespeichert wurden.] // HASH_VALUE 6458C4186458C418 // INDEX 3160 @@ -13394,7 +13397,7 @@ uimGcmTrade [Tauschhandel] // HASH_VALUE CE21DB2F0C424631 // INDEX 3177 -uimGcmLearnSkills [AKTIONEN LERNEN] +uimGcmLearnSkills [Aktionen lernen] // HASH_VALUE 50D494345090F424 // INDEX 3178 @@ -13406,19 +13409,19 @@ uimGcmCreateGuild [GILDE GRÜNDEN] // HASH_VALUE FE111FEDCAC2CCFF // INDEX 3180 -uimGcmTeleport [PAKT ABSCHLIEßEN] +uimGcmTeleport [Pakt abschließen] // HASH_VALUE 3DF1C72C7C118CFE // INDEX 3181 -uimGcmFaction [GEGENSTÄNDE DER FRAKTION KAUFEN] +uimGcmFaction [Gegenstände der Fraktion kaufen] // HASH_VALUE 33F3380C7E93200D // INDEX 3182 -uimGcmCosmetic [STYLING KAUFEN] +uimGcmCosmetic [Styling kaufen] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3183 -uimGcmGuildOptions [GEBÄUDEHANDEL] +uimGcmGuildOptions [Gebäudehandel] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3184 @@ -13466,7 +13469,7 @@ uiQH_1 [Wie man sich bewegt.] // HASH_VALUE 11347452A6235354 // INDEX 3195 -uiQH_2 [Wie man die Fenster benutzt.] +uiQH_2 [Wie man Fenster nutzt.] // HASH_VALUE BE76D44D4701D459 // INDEX 3196 @@ -13482,11 +13485,11 @@ uiQH_5 [Wie man sich orientiert.] // HASH_VALUE C52A9867D7FF9F80 // INDEX 3199 -uiQH_6 [Wie man seinen Beruf ändert.] +uiQH_6 [Wie man Berufe ändert.] // HASH_VALUE FECA58451AB22090 // INDEX 3200 -uiQH_7 [Wie man seinen Trainer/Lehrer findet.] +uiQH_7 [Wie man Trainer/Lehrer findet.] // HASH_VALUE 6818540868185408 // INDEX 3201 @@ -13636,7 +13639,7 @@ uiTryton3 [Seitdem haben drei Generationen versucht, die geschlagenen Wunden zu // HASH_VALUE D2B7A4B2A89F084D // INDEX 3237 -uiTryton4 [Das ist meine Hoffnung, denn nur gemeinsam werden wir gegen das kommende Böse am besten gerüstet sein und sein Vorrücken zurückstoßen können. Gewiss, auch ich hörte den herannahenden drohenden Donner von Mega Corp, der leider eines Tages das Innere des ganzen grünen Planeten Atys erschüttern wird.\n +uiTryton4 [Das ist meine Hoffnung, denn nur gemeinsam werden wir gegen das kommende Böse am besten gerüstet sein und sein Vorrücken zurückstoßen können. Gewiss, auch ich hörte den herannahenden drohenden Donner von Mega Corp, der leider eines Tages das Innere des ganzen grünen Planeten Atys erschüttern wird.\n Aber ich habe Vertrauen zu diesem Neuanfang der Hominheit.\n \n E. Tryton] @@ -13905,7 +13908,7 @@ uiPhraseNoFilter [Alle Aktionen] // HASH_VALUE DDF9DFF2DBD7A039 // INDEX 3303 -uiFaberStatGrayed [Für Schmuck werden nur die 3 besten Magie-Schutzarten und 3 besten Widerstände ausgewählt. \n +uiFaberStatGrayed [Für Schmuck werden nur die 3 besten Magie-Schutzarten und 3 besten Widerstände ausgewählt.\n Dieser gehört nicht dazu.] // HASH_VALUE FE4F223A1E32EE4D @@ -14147,15 +14150,15 @@ uittCenter [Karte zentrieren ] // HASH_VALUE C6A0A426C54074EC // INDEX 3363 -uiBotChatZCCharges [Außenpostenbevollmächtigung] +uiBotChatZCCharges [Zonen-Gebühr] // HASH_VALUE 65D79781DAF70B76 // INDEX 3364 -uiSelectZCCharge [Annahme einer Außenpostenbevollmächtigung] +uiSelectZCCharge [Festlegen einer Zonengebühr] // HASH_VALUE A5C893945DB84B65 // INDEX 3365 -uiAcceptZCCharge [Annehmen?] +uiAcceptZCCharge [Gebühr annehmen?] // HASH_VALUE 4AC1C418CD11BCE6 // INDEX 3366 @@ -14199,7 +14202,7 @@ uiGuildXP [GILDEN-XP: ] // HASH_VALUE FF8F13094B10182E // INDEX 3376 -uiNotEnoughGuildMoney [NICHT GENÜGEND GILDENDAPPER] +uiNotEnoughGuildMoney [NICHT GENÜGEND GILDEN-DAPPER] // HASH_VALUE 3DA1FC030C2E2F31 // INDEX 3377 @@ -14339,12 +14342,12 @@ uiTipsTeleport [Lade den Kontinent: %s , Tag %d, Uhrzeit %d. Es ist %s und das // HASH_VALUE A8B4501E4B0EFB14 // INDEX 3411 -uiTips0 [Anstatt deine Objekte per Drag&Drop in die Slot-Plätze für Rüstungen oder Schmuck zu legen,\n +uiTips0 [Anstatt deine Objekte per Drag&Drop in die Slot-Plätze für Rüstungen oder Schmuck zu ziehen,\n kannst du auch direkt mit Links-Klick in die Slots klicken und dann eine Ausrüstung auswählen.] // HASH_VALUE F3ACC78FDE5A8928 // INDEX 3412 -uiTips1 [Wenn du lernen willst, wie einzelne Elemente des Spiels funktionieren, klick auf den '?'-Button und wähl "Schnellhilfe"] +uiTips1 [Wenn du lernen willst, wie einzelne Elemente des Spiels funktionieren, klick auf den '?'-Button und wähl 'Schnellhilfe'] // HASH_VALUE 7DA5956B2703DF0F // INDEX 3413 @@ -14388,7 +14391,7 @@ uiTips10 [Drücke 'STRG - R', um auf das letzte Flüstern (Tell) zu antworten.\n // HASH_VALUE 7850A32BC35E7EE6 // INDEX 3422 -uiTips11 [Drücke die Leertaste, um den Gegner vor dir zu markieren / anzuvisieren.\n +uiTips11 [Drücke die Leertaste, um den nähesten Gegner vor dir zu markieren / anzuvisieren.\n Drücke STRG + Leertaste, um einen Freund in deiner Nähe zu markieren.] // HASH_VALUE 8A801482C5765C81 @@ -14411,7 +14414,7 @@ uiTips15 [Drücke X, um das Haupt-Chatfenster zu öffnen bzw. wieder zu schließ // HASH_VALUE 9F538781E3CDB90A // INDEX 3427 uiTips16 [Drücke M, um die Regions-Karte zu öffnen bzw. wieder schließen.\n - Du kannst Markierungsfähnchen auf der Karte setzen, färben, benennen, und sie mittels Kompass anpeilen.] + Du kannst farbige Markierungsfähnchen auf der Karte setzen, beschriften und sie mittels Kompass anpeilen.] // HASH_VALUE 28F6D4546B54E872 // INDEX 3428 @@ -14499,7 +14502,7 @@ uiSkillPoints2 [Handwerks-Fertigkeitspunkte ] // HASH_VALUE 749C1420201C3494 // INDEX 3449 -uiSkillPoints3 [Rohstoffernte-Fähigkeitspunkte ] +uiSkillPoints3 [Rohstoffernte-Fertigkeitspunkte ] // HASH_VALUE 7A6F23377F011333 // INDEX 3450 @@ -14596,7 +14599,7 @@ uiBalanceEqual [Ausgeglichen] // HASH_VALUE F1F8A77003958E6B // INDEX 3473 -uiEnterDontQuitCB ["ENTER" schließt das Chatfenster nicht] +uiEnterDontQuitCB ['ENTER' schließt das Chatfenster nicht] // HASH_VALUE 2496548ED4145771 // INDEX 3474 @@ -14708,11 +14711,11 @@ uittMiniMissionIcon [Kleine Icons statt großer auf dem Radar] // HASH_VALUE 8D23FC32CE322841 // INDEX 3501 -uigcEntityColor [LEBEWESEN] +uigcEntityColor [RADARFARBEN] // HASH_VALUE 9928088F26F55C9E // INDEX 3502 -uiEntityColors [Farben für Radaranzeigen] +uiEntityColors [Lebewesen-Farben im Spiel und am Radar] // HASH_VALUE 7058345470583454 // INDEX 3503 @@ -14844,15 +14847,15 @@ uittPvpNeutralColor [Farbe, in der neutrale Charaktere im PvP angezeigt werden] // HASH_VALUE 9E95234B4E265B9B // INDEX 3535 -uiUserIS [Anzeigen bei eigenem Charakter] +uiUserIS [Info-Anzeigen zum Charakter] // HASH_VALUE 8F56B017D498748D // INDEX 3536 -uiFriendIS [Anzeigen bei Freunden] +uiFriendIS [Info-Anzeigen zu Freunden] // HASH_VALUE 9D4058205D049499 // INDEX 3537 -uiEnemyIS [Anzeigen bei Feinden] +uiEnemyIS [Info-Anzeigen zu Feinden] // HASH_VALUE 5ED4E0FC1D5077AA // INDEX 3538 @@ -14860,7 +14863,7 @@ uiChatIS [Anzeigen von Sprechblasen] // HASH_VALUE D9C89F96E5D5B865 // INDEX 3539 -uiUserMessages [Deine eigenen Texte] +uiUserMessages [Eigene Sprechblasen] // HASH_VALUE 06B68C64AECD84AE // INDEX 3540 @@ -14868,7 +14871,7 @@ uittUserMessages [Deine eigenen Texte werden als Sprechblasen angezeigt.] // HASH_VALUE 15357C7D15167489 // INDEX 3541 -uiFriendMessages [Texte von Freunden] +uiFriendMessages [Sprechblasen von Freunden] // HASH_VALUE BA45BD20741F393A // INDEX 3542 @@ -14876,7 +14879,7 @@ uittFriendMessages [Texte von Freunden werden als Sprechblasen angezeigt.] // HASH_VALUE 5F15AC2D291962C0 // INDEX 3543 -uiEnemyMessages [Texte von Feinden] +uiEnemyMessages [Sprechblasen von Feinden] // HASH_VALUE E0AD0618B2ACD1C7 // INDEX 3544 @@ -14888,11 +14891,11 @@ uiNewTitleBold [DU HAST DIR EINEN NEUEN TITEL VERDIENT: ] // HASH_VALUE E8C62C801EB7048D // INDEX 3546 -uiHands [Hände Aktionsleiste] +uiHands [Hände] // HASH_VALUE 20196F9226A2C061 // INDEX 3547 -uiPhraseBook [Aktionsliste] +uiPhraseBook [Aktionen/Fertigkeiten] // HASH_VALUE 6C58143478D82480 // INDEX 3548 @@ -14908,59 +14911,59 @@ uiGuildForum [Gildenforum] // HASH_VALUE CDBAC82A5AE85366 // INDEX 3551 -uiDragRewardToInventory [Inventar Drag & Drop] +uiDragRewardToInventory [Drag&Drop Objekte] // HASH_VALUE E4B4E4982957003E // INDEX 3552 -uiTalkMem [Nachricht speichern] +uiTalkMem [Sagen: ] // HASH_VALUE 66FAB49864B7FC7A // INDEX 3553 -uiTalkMemMsg [Nachrichten] +uiTalkMemMsg [Chat-Kürzel] // HASH_VALUE D7065F6B15C44E92 // INDEX 3554 -uiTalkMemMsg00 [Hallo!] +uiTalkMemMsg00 [Hallo, alle zusammen!] // HASH_VALUE 2058940820589408 // INDEX 3555 -uiTalkMemMsg01 [Bis bald!] +uiTalkMemMsg01 [Ich muss jetzt dringend los. Bis zum nächsten Mal!] // HASH_VALUE 2CDC54642CDC5464 // INDEX 3556 -uiTalkMemMsg02 [Ja] +uiTalkMemMsg02 [Ja, gern.] // HASH_VALUE 8C9E6B39D4A0665A // INDEX 3557 -uiTalkMemMsg03 [Nein] +uiTalkMemMsg03 [Nein, tut mir leid.] // HASH_VALUE DC82073A2E220386 // INDEX 3558 -uiTalkMemMsg04 [Folge mir] +uiTalkMemMsg04 [Folge mir bitte] // HASH_VALUE 701854202C58D480 // INDEX 3559 -uiTalkMemMsg05 [Hilf mir] +uiTalkMemMsg05 [Ich bräuchte hier wirklich Hilfe!] // HASH_VALUE 5514175957B45C52 // INDEX 3560 -uiTalkMemMsg06 [Ich brauche ein wenig Heilung.] +uiTalkMemMsg06 [Könnte mich bitte jemand heilen?] // HASH_VALUE 6B948F45CE207BA4 // INDEX 3561 -uiTalkMemMsg07 [Ich suche nach Team Mitgliedern.] +uiTalkMemMsg07 [Hat ein Team noch einen Platz für mich frei?] // HASH_VALUE 2CD854202CD85420 // INDEX 3562 -uiTalkMemMsg08 [Umarmung] +uiTalkMemMsg08 [Knuddelrunde!] // HASH_VALUE 1387034721131F43 // INDEX 3563 -uiTalkMemMsg09 [Yeah!] +uiTalkMemMsg09 [Hurra!] // HASH_VALUE ECF88C8C50D0148E // INDEX 3564 -uiTalkMemMsg10 [Was geschieht hier?] +uiTalkMemMsg10 [Was ist denn hier los?] // HASH_VALUE 9E37735DE0D4774C // INDEX 3565 @@ -14968,35 +14971,35 @@ uiTalkMemMsg11 [Bitte?] // HASH_VALUE 9B75BF5855D98CA8 // INDEX 3566 -uiTalkMemMsg12 [Warum nicht?] +uiTalkMemMsg12 [Warum denn nicht?] // HASH_VALUE F30E1038EE7E0438 // INDEX 3567 -uiTalkMemMsg13 [Auf dem Weg.] +uiTalkMemMsg13 [Bin schon auf dem Weg!] // HASH_VALUE 6818002470583480 // INDEX 3568 -uiTalkMemMsg14 [Stopp!] +uiTalkMemMsg14 [Halt !] // HASH_VALUE 6CC7BC8C5D10001D // INDEX 3569 -uiTalkMemMsg15 [Sprich nicht weiter mit mir.] +uiTalkMemMsg15 [Bitte rede mich nicht länger an.] // HASH_VALUE D918B039A7B23F8C // INDEX 3570 -uiTalkMemMsg16 [Lass mich alleine!] +uiTalkMemMsg16 [Bitte lass mich allein und folge mir nicht.] // HASH_VALUE 509AFB6A48F702A8 // INDEX 3571 -uiTalkMemMsg17 [Bist du verrückt?] +uiTalkMemMsg17 [Geht's dir nicht gut?] // HASH_VALUE 60A6147960A61479 // INDEX 3572 -uiTalkMemMsg18 [Ahahahaha] +uiTalkMemMsg18 [Hahaha!] // HASH_VALUE F3B08357711CE844 // INDEX 3573 -uiTalkMemMsg19 [So ist es.] +uiTalkMemMsg19 [Ja, stimmt genau.] // HASH_VALUE 6C58D4B46C58D4B4 // INDEX 3574 @@ -15016,15 +15019,15 @@ uiNetStatus [Netzwerkstatus] // HASH_VALUE 5DC8F89699C8BB8D // INDEX 3578 -uiBugReport [Bugreport] +uiBugReport [Bug-Report] // HASH_VALUE EEDC945260921CA4 // INDEX 3579 -uiActionShortcuts [Aktionstastenkombinationen] +uiActionShortcuts [Aktions-Schnelltasten] // HASH_VALUE 95A8BC735636B37A // INDEX 3580 -uiSetNumber [Zahl setzen] +uiSetNumber [Anzahl bestimmen] // HASH_VALUE F35954A5EA082E2B // INDEX 3581 @@ -15068,11 +15071,11 @@ uihelpBuilding [Gebäudedetails] // HASH_VALUE 28493049B158CC0E // INDEX 3591 -uihelpZCRequirement [Außenposten-Anforderungsdetails] +uihelpZCRequirement [Außenposten-Voraussetzungsdetails] // HASH_VALUE 709858306AF9303B // INDEX 3592 -uihelpBuildingRequirement [Gebäude-Anforderungsdetails] +uihelpBuildingRequirement [Gebäude-Voraussetzungsdetails] // HASH_VALUE 70D8CCC46A58948A // INDEX 3593 @@ -15080,11 +15083,11 @@ uihelpOutpostBuilding [Gebäudedetails] // HASH_VALUE CC325C42C310CCFC // INDEX 3594 -uimGcmZoneCharge [BEVOLLMÄCHTIGUNGEN ÜBERPRÜFEN] +uimGcmZoneCharge [GEBÜHREN ÜBERPRÜFEN] // HASH_VALUE 4BE0AC063D40DB1A // INDEX 3595 -uimGcmCancelZoneCharge [BEVOLLMÄCHTIGUNG KÜNDIGEN] +uimGcmCancelZoneCharge [GEBÜHR BEENDEN] // HASH_VALUE 3E00DC18D0704716 // INDEX 3596 @@ -15108,28 +15111,28 @@ uimGcmUpgradeRM [LEHRMEISTER BEFÖRDERN] // HASH_VALUE 8B464C1CFF4C1E26 // INDEX 3601 -uiQCancelZoneCharge [Willst Du wirklich die Bevollmächtigung kündigen?] +uiQCancelZoneCharge [Willst du wirklich die Gebühr beenden?] // HASH_VALUE CE08015DC14A0639 // INDEX 3602 -uiQDestroyBuilding [Willst Du das Gebäude wirklich zerstören?] +uiQDestroyBuilding [Willst du das Gebäude wirklich zerstören?] // HASH_VALUE 32E0C0ECA53255BC // INDEX 3603 -uiQDeclareWar [Willst Du wirklich Krieg erklären?] +uiQDeclareWar [Willst du wirklich den Krieg erklären?] // HASH_VALUE 7310DCE362146121 // INDEX 3604 -uiQReplaceAppartment [Wenn Du diese Wohnung kaufst, wird die alte Wohnung und alle Gegenstände, die sich darin befinden, vernichtet.\n - Bist Du sicher, das machen zu wollen?] +uiQReplaceAppartment [Wenn du diese Wohnung kaufst, wird die alte Wohnung und alle Gegenstände, die sich darin befinden, vernichtet.\n + Bist du sicher, dass du das willst?] // HASH_VALUE 997945DC8DF6E070 // INDEX 3605 -uiDayBeforeNextZCDistrib [Tage bis zur nächsten Vollmachtsvergabe: ] +uiDayBeforeNextZCDistrib [Tage bis zur nächsten Gebühren-Zuweisung: ] // HASH_VALUE E108509750242758 // INDEX 3606 -uiRearView [Rückblick] +uiRearView [Nach hinten blicken] // HASH_VALUE 69787898652874A0 // INDEX 3607 @@ -15157,11 +15160,11 @@ uiPleaseWait [Bitte warten...] // HASH_VALUE 2F59A889A1D5436C // INDEX 3613 -uiFrontSelection [Front-Auswahl] +uiFrontSelection [Anvisieren/Markieren] // HASH_VALUE 641C9450641C9450 // INDEX 3614 -uiFrontSelectionType [Typ] +uiFrontSelectionType [Art] // HASH_VALUE E918BC86E058408B // INDEX 3615 @@ -15173,7 +15176,7 @@ uiFrontSelectionEnnemy [Feinde] // HASH_VALUE 9370C2C7FDD63E88 // INDEX 3617 -uiTeamSelectNotInVision [Dieses Teammitglied ist zu weit entfernt, um es zu markieren.] +uiTeamSelectNotInVision [Dieses Teammitglied ist zu weit entfernt, um es auszuwählen] // HASH_VALUE E889A092E3370883 // INDEX 3618 @@ -15190,55 +15193,55 @@ Novice_Artisan [Handwerker-Neuling] // HASH_VALUE A9BAD097A6637840 // INDEX 3621 -Novice_Warrior [Krieger-Neuling ] +Novice_Warrior [Kämpfer-Neuling] // HASH_VALUE 669C0C5E5CB0CCAC // INDEX 3622 -Novice_Harvester [Rohstoffabbau-Neuling ] +Novice_Harvester [Ernte-Neuling] // HASH_VALUE 64C9D88519A05392 // INDEX 3623 -Novice_Magician [Magier-Neuling] +Novice_Magician [Magie-Neuling] // HASH_VALUE 9652D84697EAD0BA // INDEX 3624 -Artisan_Apprentice [Handwerkslehrling ] +Artisan_Apprentice [Handwerker-Lehrling] // HASH_VALUE 5D32A46A15BC009F // INDEX 3625 -Warrior_Apprentice [Kriegerlehrling ] +Warrior_Apprentice [Kämpfer-Lehrling] // HASH_VALUE 19E9BC392E79C442 // INDEX 3626 -Magician_Apprentice [Magierlehrling ] +Magician_Apprentice [Magie-Lehrling] // HASH_VALUE 6A4B6C4A616072C4 // INDEX 3627 -Fyros_Artisan_Apprentice [Fyros-Handwerkslehrling ] +Fyros_Artisan_Apprentice [Fyros-Handwerkslehrling] // HASH_VALUE 6AEA2851616072BE // INDEX 3628 -Matis_Artisan_Apprentice [Matis-Handwerkslehrling ] +Matis_Artisan_Apprentice [Matis-Handwerkslehrling] // HASH_VALUE AB99DB9B14F000AD // INDEX 3629 -Tryker_Artisan_Apprentice [Tryker-Handwerkslehrling ] +Tryker_Artisan_Apprentice [Tryker-Handwerkslehrling] // HASH_VALUE E7AA945E61604AAC // INDEX 3630 -Zorai_Artisan_Apprentice [Zoraï-Handwerkslehrling ] +Zorai_Artisan_Apprentice [Zoraï-Handwerkslehrling] // HASH_VALUE EA085C4FA2C13AB0 // INDEX 3631 -Melee_Warrior_Apprentice [Nahkampflehrling ] +Melee_Warrior_Apprentice [Krieger-Lehrling] // HASH_VALUE 2CF9FF48E1D4F0AE // INDEX 3632 -Sniper_Apprentice [Scharfschützenlehrling ] +Sniper_Apprentice [Scharfschützen-Lehrling] // HASH_VALUE AACB5069AD7225CC // INDEX 3633 -Fyros_Armorer_Apprentice [Fyros-Rüstungshandwerkslehrling] +Fyros_Armorer_Apprentice [Fyros-Rüstungsmacherlehrling] // HASH_VALUE AA6A2873279225CC // INDEX 3634 @@ -15250,7 +15253,7 @@ Fyros_Weapon_Smith_Apprentice [Fyros-Waffenschmiedelehrling] // HASH_VALUE E2CB1C3DF20697CD // INDEX 3636 -Fyros_Munitioner_Apprentice [Fyros-Munitionshandwerkslehrling] +Fyros_Munitioner_Apprentice [Fyros-Munitionsmacherlehrling] // HASH_VALUE 30C7BB58C778C7B3 // INDEX 3637 @@ -15262,11 +15265,11 @@ Fyros_Shield_Smith_Apprentice [Fyros-Schildschmiedelehrling] // HASH_VALUE A80B9077AD7225CC // INDEX 3639 -Matis_Armorer_Apprentice [Matis-Rüstungshandwerkslehrling] +Matis_Armorer_Apprentice [Matis-Rüstungsmacherlehrling] // HASH_VALUE A8AA6881279225CC // INDEX 3640 -Matis_Jeweler_Apprentice [Matis-Juwelierslehrling] +Matis_Jeweler_Apprentice [Matis-Juwelierlehrling] // HASH_VALUE 1DD5B8902988C368 // INDEX 3641 @@ -15274,7 +15277,7 @@ Matis_Weapon_Smith_Apprentice [Matis-Waffenschmiedelehrling] // HASH_VALUE 23EBBC44F2A69FB5 // INDEX 3642 -Matis_Munitioner_Apprentice [Matis-Munitionshandwerkslehrling] +Matis_Munitioner_Apprentice [Matis-Munitionsmacherlehrling] // HASH_VALUE A9575B5FC778AFB5 // INDEX 3643 @@ -15286,11 +15289,11 @@ Matis_Shield_Smith_Apprentice [Matis-Schildschmiedelehrling] // HASH_VALUE 2DDB909B80C1F8A3 // INDEX 3645 -Tryker_Armorer_Apprentice [Tryker-Rüstungshandwerkslehrling] +Tryker_Armorer_Apprentice [Tryker-Rüstungsmacherslehrling] // HASH_VALUE AC3BB88EC2C1F8A3 // INDEX 3646 -Tryker_Jeweler_Apprentice [Tryker-Juwelierslehrling] +Tryker_Jeweler_Apprentice [Tryker-Juwelierlehrling] // HASH_VALUE 176BD88768839F77 // INDEX 3647 @@ -15298,7 +15301,7 @@ Tryker_Weapon_Smith_Apprentice [Tryker-Waffenschmiedelehrling] // HASH_VALUE 6C77A7AF21D51892 // INDEX 3648 -Tryker_Munitioner_Apprentice [Tryker-Munitionshandwerkslehrling] +Tryker_Munitioner_Apprentice [Tryker-Munitionsmacherlehrling] // HASH_VALUE DFF6145261E5E8B6 // INDEX 3649 @@ -15310,11 +15313,11 @@ Tryker_Shield_Smith_Apprentice [Tryker-Schildschmiedelehrling] // HASH_VALUE A4CB0091AD7225B8 // INDEX 3651 -Zorai_Armorer_Apprentice [Zoraï-Rüstungshandwerkslehrling] +Zorai_Armorer_Apprentice [Zoraï-Rüstungsmacherlehrling] // HASH_VALUE A46AD89B279225B8 // INDEX 3652 -Zorai_Jeweler_Apprentice [Zoraï-Juwelierslehrling] +Zorai_Jeweler_Apprentice [Zoraï-Juwelierlehrling] // HASH_VALUE 1BB5F09DA868F75E // INDEX 3653 @@ -15322,7 +15325,7 @@ Zorai_Weapon_Smith_Apprentice [Zoraï-Waffenschmiedelehrling] // HASH_VALUE 64CBF451702697B9 // INDEX 3654 -Zorai_Munitioner_Apprentice [Zoraï-Munitionshandwerkslehrling] +Zorai_Munitioner_Apprentice [Zoraï-Munitionsmacherlehrling] // HASH_VALUE 2A08936CC7D78FA9 // INDEX 3655 @@ -15334,7 +15337,7 @@ Zorai_Shield_Smith_Apprentice [Zoraï-Schildschmiedelehrling] // HASH_VALUE 6232BC93D54813A4 // INDEX 3657 -Melee_Warrior [Nahkämpfer] +Melee_Warrior [Nahkampfkrieger] // HASH_VALUE 1B5484851A5603AE // INDEX 3658 @@ -15342,35 +15345,35 @@ Range_Fighter [Fernkämpfer] // HASH_VALUE 1C12FC82D82807BB // INDEX 3659 -Light_Armsman [Leichter Waffenmann] +Light_Armsman [Einhandkämpfer] // HASH_VALUE 9E72008C57382FBA // INDEX 3660 -Heavy_Armsman [Schwerer Waffenmann] +Heavy_Armsman [Zweihandkämpfer] // HASH_VALUE AE56185DB0E4FC77 // INDEX 3661 -Gunman [Schütze] +Gunman [Einhandschütze] // HASH_VALUE 32B65F77F2144AA8 // INDEX 3662 -Heavy_Gunman [Schwerer Schütze] +Heavy_Gunman [Zweihandschütze] // HASH_VALUE E9BA5C0C8A96609F // INDEX 3663 -Advanced_Gunman [Fortgeschrittener Gunman] +Advanced_Gunman [Fortgeschrittener Einhandschütze] // HASH_VALUE 61C92437E022F7B6 // INDEX 3664 -Advanced_Heavy_Gunman [Fortgeschrittener Schwerer Gunman] +Advanced_Heavy_Gunman [Fortgeschrittener Zweihandschütze] // HASH_VALUE 6BC7C87D28E7A083 // INDEX 3665 -Bludgeoner [Zerschmetterer] +Bludgeoner [Keulenschwinger] // HASH_VALUE 7458B44C70582494 // INDEX 3666 -Skewerer [Pfählerer] +Skewerer [Aufspießer] // HASH_VALUE EB29A49323385C92 // INDEX 3667 @@ -15378,15 +15381,15 @@ Slasher [Aufschlitzer] // HASH_VALUE EB29A89463486092 // INDEX 3668 -Smasher [Zertrümmerer] +Smasher [Zerschmetterer] // HASH_VALUE 6839AC872198388C // INDEX 3669 -Impaler [Aufspießer] +Impaler [Durchbohrer] // HASH_VALUE EA29A4759C771C90 // INDEX 3670 -Cleaver [Zerhackerer] +Cleaver [Aufspalter] // HASH_VALUE 2C28E85CACD5E47B // INDEX 3671 @@ -15402,7 +15405,7 @@ Pistoleer [Pistolenschütze] // HASH_VALUE 6BA7BC5E9B98D3AB // INDEX 3674 -Heavy_Artilleryman [Schwerer Artillerieschütze] +Heavy_Artilleryman [Schwerer Artillerist] // HASH_VALUE 9F8AD881AD37DCB5 // INDEX 3675 @@ -15410,11 +15413,11 @@ Crossbowman [Armbrustschütze] // HASH_VALUE EBFAF8672D09E092 // INDEX 3676 -Artilleryman [Artillerieschütze] +Artilleryman [Artillerist] // HASH_VALUE A2232741A70894A0 // INDEX 3677 -Rifleman [Fernwaffenschütze] +Rifleman [Gewehrschütze] // HASH_VALUE A7785C76DC06F889 // INDEX 3678 @@ -15422,15 +15425,15 @@ Maceman [Streitkolbenkämpfer] // HASH_VALUE 6FE93C8DA6F83890 // INDEX 3679 -Brute [Knochenbrecher] +Brute [Stabkämpfer] // HASH_VALUE 6458E42C6C58D494 // INDEX 3680 -Knifeman [Messerkämpfer] +Knifeman [Dolchkämpfer] // HASH_VALUE 6058044C6C58D4C8 // INDEX 3681 -Spearman [Speerkämpfer] +Spearman [Lanzenkämpfer] // HASH_VALUE 6FD6304832940868 // INDEX 3682 @@ -15442,95 +15445,95 @@ Swordsman [Schwertkämpfer] // HASH_VALUE A142C88256173BA9 // INDEX 3684 -Heavy_Maceman [Schwerer Streitkolbenkämpfer] +Heavy_Maceman [Zweihand-Streitkolbenkämpfer] // HASH_VALUE A7F89C89A137248C // INDEX 3685 -Pikeman [Piekenkämpfer] +Pikeman [Pikenier] // HASH_VALUE F356936E7454B29F // INDEX 3686 -Heavy_Axeman [Schwerer Axtkämpfer] +Heavy_Axeman [Zweihand-Axtkämpfer] // HASH_VALUE 32FA748E23163F74 // INDEX 3687 -Heavy_Swordsman [Schwerer Schwertkämpfer] +Heavy_Swordsman [Zweihand-Schwertkämpfer] // HASH_VALUE D508B09163E58C88 // INDEX 3688 -Master_Bowman [Meisterlicher Bogenschütze] +Master_Bowman [Meister-Bogenschütze] // HASH_VALUE 27080F9150D67847 // INDEX 3689 -Master_Heavy_Bowman [Meisterlicher Schwerer Bogenschütze] +Master_Heavy_Bowman [Schwerer Meister-Bogenschütze] // HASH_VALUE F0FCA46C60B0BCA2 // INDEX 3690 -Master_Pistoleer [Meisterlicher Pistolenschütze] +Master_Pistoleer [Meister-Pistolenschütze] // HASH_VALUE B07AF0898F26486B // INDEX 3691 -Master_Heavy_Artilleryman [Meisterlicher Schwerer Artillerieschütze] +Master_Heavy_Artilleryman [Großer Meister-Artillerist] // HASH_VALUE 2C690840A2F524AD // INDEX 3692 -Master_Crossbowman [Meisterlicher Armbrustschütze] +Master_Crossbowman [Meister-Armbrustschütze] // HASH_VALUE 27C75B9E2236D0A6 // INDEX 3693 -Master_Artilleryman [Meisterlicher Artillerieschütze] +Master_Artilleryman [Meister-Artillerist] // HASH_VALUE ECFA3C6C38D09CA4 // INDEX 3694 -Master_Rifleman [Meisterlicher Gewehrschütze ] +Master_Rifleman [Meister-Scharfschütze ] // HASH_VALUE AFF99886A0233C33 // INDEX 3695 -Master_Maceman [Meisterlicher Streitkolbenkämpfer] +Master_Maceman [Meister des Streitkolbens] // HASH_VALUE 23B7A8719682EC89 // INDEX 3696 -Master_Brute [Meisterlicher Knochenbrecher] +Master_Brute [Meister des Stabkampfes] // HASH_VALUE 2A3A9085187087A5 // INDEX 3697 -Master_Knifeman [Meisterlicher Messerkämpfer] +Master_Knifeman [Meister der Dolche] // HASH_VALUE 6DBB6C839BF187A5 // INDEX 3698 -Master_Spearman [Meisterlicher Speerkämpfer] +Master_Spearman [Meister der Lanze] // HASH_VALUE D508689A23C4B087 // INDEX 3699 -Master_Axeman [Meisterlicher Axtkämpfer] +Master_Axeman [Meister der Axt] // HASH_VALUE 6CBC8488DE30FCB0 // INDEX 3700 -Master_Swordsman [Meisterlicher Schwertkämpfer] +Master_Swordsman [Klingentänzer] // HASH_VALUE 28B6887C65B60844 // INDEX 3701 -Master_Heavy_Maceman [Meisterlicher Schwerer Streitkolbenkämpfer] +Master_Heavy_Maceman [Zermalmer] // HASH_VALUE AFF9B88E63A34833 // INDEX 3702 -Master_Pikeman [Meisterlicher Pikenkämpfer] +Master_Pikeman [Meister-Pikenier] // HASH_VALUE 27080F910F677454 // INDEX 3703 -Master_Heavy_Axeman [Meisterlicher Schwerer Axtkämpfer] +Master_Heavy_Axeman [Vollstrecker] // HASH_VALUE 722B6C979DA3F013 // INDEX 3704 -Master_Heavy_Swordsman [Meisterlicher Schwerer Schwertkämpfer] +Master_Heavy_Swordsman [Meister des Breitschwertes] // HASH_VALUE 80EA8C8397C1F860 // INDEX 3705 -Master_Hand_To_Hand_Fighter [Meister Handkampfkämpfer] +Master_Hand_To_Hand_Fighter [Schattentänzer] // HASH_VALUE D6182C18135874D0 // INDEX 3706 -Hand_To_Hand_Fighter [Faustkampf-Kämpfer] +Hand_To_Hand_Fighter [Unbewaffneter Nahkämpfer] // HASH_VALUE E173B0825A06F7AF // INDEX 3707 @@ -15542,15 +15545,15 @@ Advanced_Close_Fighter [Fortgeschrittener Nahkämpfer] // HASH_VALUE 12D4A7732D288C88 // INDEX 3709 -Defensive_Magician [Defensivmagier] +Defensive_Magician [Defensiv-Magier] // HASH_VALUE 5284AB7E2D288C88 // INDEX 3710 -Offensive_Magician [Offensivmagier] +Offensive_Magician [Offensiv-Magier] // HASH_VALUE EE49808FE0BA1C5C // INDEX 3711 -Elementalist_Apprentice [Elementalistenlehrling] +Elementalist_Apprentice [Elementalisten-Lehrling] // HASH_VALUE 6457689DA9B9C0A8 // INDEX 3712 @@ -15562,15 +15565,15 @@ Enchanter [Verzauberer] // HASH_VALUE 6C58544C7058E4BC // INDEX 3714 -Summoner [Beschwörer] +Summoner [Illusionist] // HASH_VALUE 98057B422E55208D // INDEX 3715 -Master_Of_Illusion [Meister der Illusion] +Master_Of_Illusion [Meister der Illusionen] // HASH_VALUE 619634929202FB5B // INDEX 3716 -Mind_Lord [Gedanken Lord] +Mind_Lord [Geistesfürst] // HASH_VALUE 2B06A4566974D873 // INDEX 3717 @@ -15586,27 +15589,27 @@ Priest [Priester] // HASH_VALUE 6CB77B725873A038 // INDEX 3720 -Master_Of_Life [Meister des Lebens] +Master_Of_Life [Quell des Lebens] // HASH_VALUE 173453796B290487 // INDEX 3721 -Celestial_Guardian [Himmlischer Wächter] +Celestial_Guardian [Himmelswächter] // HASH_VALUE A4844B6153C45375 // INDEX 3722 -Black_Mage [Schwarzer Magier] +Black_Mage [Schwarzmagier] // HASH_VALUE DF72C08965EAEC61 // INDEX 3723 -Affliction_Bringer [Schmerzerzeuger] +Affliction_Bringer [Peiniger] // HASH_VALUE E994D396D755DCBA // INDEX 3724 -Master_Of_Torment [Meister der Qualen] +Master_Of_Torment [Orakel des Leidens] // HASH_VALUE F096B24E70F024A6 // INDEX 3725 -Avatar_Of_Sorrow [Avatar des Schmerzes] +Avatar_Of_Sorrow [Avatar der Sorgen] // HASH_VALUE 63F804942EFB24BE // INDEX 3726 @@ -15614,15 +15617,15 @@ Destroyer [Zerstörer] // HASH_VALUE A819BC96E4681C94 // INDEX 3727 -Warlock [Zauberer] +Warlock [Hexenmeister] // HASH_VALUE 68D8240464D814B4 // INDEX 3728 -Archmage [Hochmagier] +Archmage [Elementarmagier] // HASH_VALUE AC285B765873C43B // INDEX 3729 -Master_Of_Pain [Meister der Schmerzen] +Master_Of_Pain [Beschwörer der Qualen] // HASH_VALUE 5917AF7EA19238B1 // INDEX 3730 @@ -15646,7 +15649,7 @@ Master_Of_Energies [Meister der Energien] // HASH_VALUE D875D47059086861 // INDEX 3735 -Chosen_Of_Atys [Erwählter von Atys] +Chosen_Of_Atys [Auserwählter von Atys] // HASH_VALUE ADE34C43D7F7AAAF // INDEX 3736 @@ -15671,31 +15674,31 @@ G [Guide] // HASH_VALUE 2F059F5756EBD4B4 // INDEX 3741 -Armorer_Apprentice [Rüstungsbaulehrling] +Armorer_Apprentice [Rüstungsmacherlehrling] // HASH_VALUE 6A366B60568AACB8 // INDEX 3742 -Jeweler_Apprentice [Juwelierslehrling] +Jeweler_Apprentice [Juwelierlehrling] // HASH_VALUE 1C54C89027C8C35A // INDEX 3743 -Melee_Weapon_Smith_Apprentice [Waffenschmiedlehrling für Nahkampfwaffen] +Melee_Weapon_Smith_Apprentice [Nahkampfwaffen-Schmiedelehrling] // HASH_VALUE 9C74B895A788D75A // INDEX 3744 -Range_Weapon_Smith_Apprentice [Waffenschmiedlehrling für Fernwaffen] +Range_Weapon_Smith_Apprentice [Fernkampfwaffen-Schmiedelehrling] // HASH_VALUE 9FC3009098F72FBE // INDEX 3745 -Heavy_Armorer [Schwerer Rüstungsbauer] +Heavy_Armorer [Schwerer Ausrüster] // HASH_VALUE 1D63FC8619E707BF // INDEX 3746 -Light_Armorer [Leichter Rüstungsbauer] +Light_Armorer [Leichter Ausrüster] // HASH_VALUE EDE9B8925E431847 // INDEX 3747 -Medium_Armorer [Mittlerer Rüstungsbauer] +Medium_Armorer [Mittelschwerer Ausrüster] // HASH_VALUE A075787F1BE16898 // INDEX 3748 @@ -15707,11 +15710,11 @@ Jeweler [Juwelier] // HASH_VALUE 69A68C798FA31B60 // INDEX 3750 -Melee_Weapon_Smith [Waffenschmied für Nahkampfwaffen] +Melee_Weapon_Smith [Nahkampfwaffenschmied] // HASH_VALUE 8E25BC6AE8653A8E // INDEX 3751 -Melee_Heavy_Weapon_Smith [Waffenschmied für schwere Nahkampfwaffen] +Melee_Heavy_Weapon_Smith [Schwerer Nahkampfwaffenschmied] // HASH_VALUE 8ED58470EAE53A8E // INDEX 3752 @@ -15719,23 +15722,23 @@ Melee_Light_Weapon_Smith [Leichter Nahkampfwaffenschmied] // HASH_VALUE E8177C7E8FA32362 // INDEX 3753 -Range_Weapon_Smith [Waffenschmied für Fernwaffen] +Range_Weapon_Smith [Fernkampfwaffenschmied] // HASH_VALUE 8E659C74E8653A8E // INDEX 3754 -Range_Heavy_Weapon_Smith [Waffenschmied für schwere Fernwaffen] +Range_Heavy_Weapon_Smith [Schwerer Fernkampfwaffenschmied] // HASH_VALUE 2499EC49946ECCAE // INDEX 3755 -Advanced_Heavy_Armorer [Erfahrener Schwerer Rüstungsbauer] +Advanced_Heavy_Armorer [Fortgeschrittener Schwerer Ausrüster] // HASH_VALUE A5D9FC49956EB8A0 // INDEX 3756 -Advanced_Light_Armorer [Erfahrener Leichter Rüstungsbauer] +Advanced_Light_Armorer [Fortgeschrittener Leichter Ausrüster] // HASH_VALUE E7A9680679998CAC // INDEX 3757 -Advanced_Medium_Armorer [Erfahrener Mittlerer Rüstungsbauer] +Advanced_Medium_Armorer [Fortgeschrittener Mittelschwerer Ausrüster] // HASH_VALUE 28B94C15D817C39F // INDEX 3758 @@ -15743,7 +15746,7 @@ Advanced_Shield_Smith [Fortgeschrittener Schildschmied] // HASH_VALUE 6A7A74C26A587CA6 // INDEX 3759 -Advanced_Jeweler [Erfahrener Juwelier] +Advanced_Jeweler [Fortgeschrittener Juwelier] // HASH_VALUE 9E4A1C2FE4A37BA5 // INDEX 3760 @@ -15751,39 +15754,39 @@ Advanced_Melee_Weapon_Smith [Fortgeschrittener Nahkampfwaffenschmied] // HASH_VALUE D90A089EA0443446 // INDEX 3761 -Advanced_Melee_Heavy_Weapon_Smith [Fortgeschrittener schwerer Nahkampfwaffenschmied] +Advanced_Melee_Heavy_Weapon_Smith [Fortgeschrittener Schwerer Nahkampfwaffenschmied] // HASH_VALUE 982920A2A1443446 // INDEX 3762 -Advanced_Melee_Light_Weapon_Smith [Erfahrener Leichter Nahkampfwaffenschmied] +Advanced_Melee_Light_Weapon_Smith [Fortgeschrittener Leichter Nahkampfwaffenschmied] // HASH_VALUE 1E0A302FE4A37BA7 // INDEX 3763 -Advanced_Range_Weapon_Smith [Fortgeschrittener Waffenschmied für Fernwaffen] +Advanced_Range_Weapon_Smith [Fortgeschrittener Fernkampfwaffenschmied] // HASH_VALUE 59CA1C9EA0443448 // INDEX 3764 -Advanced_Range_Heavy_Weapon_Smith [Fortgeschrittener schwerer Waffenschmied für Fernwaffen] +Advanced_Range_Heavy_Weapon_Smith [Fortgeschrittener Schwerer Fernkampf-Waffenschmied] // HASH_VALUE 65C6008B24973C3C // INDEX 3765 -Expert_Heavy_Armorer [Schwerer Rüstungsbauexperte] +Expert_Heavy_Armorer [Schwerer Rüstungsexperte] // HASH_VALUE 25E5188FE4B65440 // INDEX 3766 -Expert_Light_Armorer [Leichter Rüstungsbauexperte] +Expert_Light_Armorer [Leichter Rüstungsexperte] // HASH_VALUE 170BF87C65E3FB9E // INDEX 3767 -Expert_Medium_Armorer [Mittlerer Rüstungsbauexperte] +Expert_Medium_Armorer [Mittelschwerer Rüstungsexperte] // HASH_VALUE DF18D78AE453A7B7 // INDEX 3768 -Expert_Shield_Smith [Schildschmied Experte] +Expert_Shield_Smith [Schildschmied-Experte] // HASH_VALUE 2DDA047FE6B3A43C // INDEX 3769 -Expert_Jeweler [Juwelenexperte] +Expert_Jeweler [Juwelierexperte] // HASH_VALUE D6CA6482D035AC4A // INDEX 3770 @@ -15799,39 +15802,39 @@ Expert_Melee_Light_Weapon_Smith [Leichter Nahkampfwaffenschmied-Experte] // HASH_VALUE D6EA6C7E1135AC4A // INDEX 3773 -Expert_Range_Weapon_Smith [Experte Waffenschmied für Fernwaffen] +Expert_Range_Weapon_Smith [Fernkampfwaffenschmied-Experte] // HASH_VALUE E2B4FF8A18E54860 // INDEX 3774 -Expert_Range_Heavy_Weapon_Smith [Experte schwerer Fernwaffen] +Expert_Range_Heavy_Weapon_Smith [Schwerer Fernkampfwaffenschmied-Experte] // HASH_VALUE 2EA7A3A1EA2552A0 // INDEX 3775 -Heavy_Armorer_Master [Schwerer Rüstungsbaumeister] +Heavy_Armorer_Master [Schwerer Rüstungsmeister] // HASH_VALUE AB07B3A06785629F // INDEX 3776 -Light_Armorer_Master [Leichter Rüstungsbaumeister] +Light_Armorer_Master [Leichter Rüstungsmeister] // HASH_VALUE 5759EC8997307C8D // INDEX 3777 -Medium_Armorer_Master [Mittlerer Rüstungsbaumeister] +Medium_Armorer_Master [Mittelschwerer Rüstungsmeister] // HASH_VALUE A2395B98D3F43C5D // INDEX 3778 -Shield_Smith_Master [Meister Schildschmied] +Shield_Smith_Master [Schildschmied-Meister] // HASH_VALUE 6BCA80811216738D // INDEX 3779 -Jeweler_Master [Juweliersmeister] +Jeweler_Master [Juweliermeister] // HASH_VALUE 62142C94E1942F4B // INDEX 3780 -Melee_Weapon_Smith_Master [Meister Nahkampfwaffenschmied] +Melee_Weapon_Smith_Master [Nahkampfwaffenschmied-Meister] // HASH_VALUE 11755C3DE2084F9D // INDEX 3781 -Melee_Heavy_Weapon_Smith_Master [Meister schwerer Fernwaffenschmied] +Melee_Heavy_Weapon_Smith_Master [Schwerer Nahkampfwaffenschmied-Meister] // HASH_VALUE 11252443E3484F9D // INDEX 3782 @@ -15839,99 +15842,99 @@ Melee_Light_Weapon_Smith_Master [Leichter Nahkampfwaffenschmied-Meister] // HASH_VALUE 62F43099E1942F4D // INDEX 3783 -Range_Weapon_Smith_Master [Meister Fernwaffenschmied] +Range_Weapon_Smith_Master [Fernkampfwaffenschmied-Meiste] // HASH_VALUE 91954C4223084F9D // INDEX 3784 -Range_Heavy_Weapon_Smith_Master [Meister schwerer Fernwaffenschmied] +Range_Heavy_Weapon_Smith_Master [Schwerer Fernkampfwaffenschmied-Meister] // HASH_VALUE EBA6935C563A9CAE // INDEX 3785 -Forager_Apprentice [Lehrling des Rohstoffabbaus] +Forager_Apprentice [Ernte-Lehrling] // HASH_VALUE 2609A88860A83484 // INDEX 3786 -Forager [Rohstoffabbauer] +Forager [Ernterin] // HASH_VALUE EBCA9087DF73483B // INDEX 3787 -Desert_Forager [Wüsten-Rohstoffabbauer] +Desert_Forager [Wüstenernter] // HASH_VALUE EBCAB8886183703E // INDEX 3788 -Forest_Forager [Wald-Rohstoffabbauer] +Forest_Forager [Waldernter] // HASH_VALUE A718D88863824C3B // INDEX 3789 -Jungle_Forager [Dschungel-Rohstoffabbauer] +Jungle_Forager [Dschungelernter] // HASH_VALUE F2583CD8EAFADCA8 // INDEX 3790 -Lacustre_Forager [Seenland-Rohstoffabbauer] +Lacustre_Forager [Seelandernter] // HASH_VALUE 52EA78461D24AF91 // INDEX 3791 -Prime_Roots_Forager [Urwurzeln-Rohstoffabbauer] +Prime_Roots_Forager [Urwurzelernter] // HASH_VALUE 27FA380B790A809D // INDEX 3792 -Advanced_Desert_Forager [Erfahrener Wüsten-Rohstoffabbauer] +Advanced_Desert_Forager [Fortgeschrittener Wüstenernter] // HASH_VALUE E79A400B790A849D // INDEX 3793 -Advanced_Forest_Forager [Erfahrener Wald-Rohstoffabbauer] +Advanced_Forest_Forager [Fortgeschrittener Waldernter] // HASH_VALUE E6FB500B7919689F // INDEX 3794 -Advanced_Jungle_Forager [Erfahrener Dschungel-Rohstoffabbauer] +Advanced_Jungle_Forager [Fortgeschrittener Dschungelernter] // HASH_VALUE A8274738674998B6 // INDEX 3795 -Advanced_Lacustre_Forager [Erfahrener Seenland-Rohstoffabbauer] +Advanced_Lacustre_Forager [Fortgeschrittener Seenlandernter] // HASH_VALUE 2A2B2C31A1B5CC3C // INDEX 3796 -Advanced_Prime_Roots_Forager [Erfahrener Urwurzeln-Rohstoffabbauer] +Advanced_Prime_Roots_Forager [Fortgeschrittener Urwurzelernter] // HASH_VALUE 561AFC816124FB9C // INDEX 3797 -Expert_Desert_Forager [Wüsten-Rohstoffabbauexperte] +Expert_Desert_Forager [Wüstenernte-Experte] // HASH_VALUE 961AF88BE114239E // INDEX 3798 -Expert_Forest_Forager [Wald-Rohstoffabbauexperte] +Expert_Forest_Forager [Waldernte-Experte] // HASH_VALUE D53AE89162D33B93 // INDEX 3799 -Expert_Jungle_Forager [Dschungel-Rohstoffabbauexperte] +Expert_Jungle_Forager [Dschungelernte-Experte] // HASH_VALUE 29DBEC64C443AFC1 // INDEX 3800 -Expert_Lacustre_Forager [Seenland-Rohstoffabbauexperte] +Expert_Lacustre_Forager [Seenlandernte-Experte] // HASH_VALUE 61331C90E5357871 // INDEX 3801 -Expert_Prime_Roots_Forager [Urwurzeln-Rohstoffabbauexperte] +Expert_Prime_Roots_Forager [Urwurzelernte-Experte] // HASH_VALUE 1A2A6C9821B3138F // INDEX 3802 -Master_Desert_Forager [Wüsten-Rohstoffabbaumeister] +Master_Desert_Forager [Meister-Wüstenernter] // HASH_VALUE 5A2A68A2A1A33B91 // INDEX 3803 -Master_Forest_Forager [Wald-Rohstoffabbaumeister] +Master_Forest_Forager [Meister-Waldernter] // HASH_VALUE 994A58A822625386 // INDEX 3804 -Master_Jungle_Forager [Dschungel-Rohstoffabbaumeister] +Master_Jungle_Forager [Meister-Dschungelernter] // HASH_VALUE AAFC9C55C643A7B2 // INDEX 3805 -Master_Lacustre_Forager [Seenlandland-Rohstoffabbaumeister] +Master_Lacustre_Forager [Meister-Seenlandernter] // HASH_VALUE 5FE3C0986464AC67 // INDEX 3806 -Master_Prime_Roots_Forager [Urwurzeln-Rohstoffabbaumeister] +Master_Prime_Roots_Forager [Meister-Urwurzelernter] // HASH_VALUE 33681C99F1A8509A // INDEX 3807 @@ -15951,11 +15954,11 @@ uiRainy [regnerisch] // HASH_VALUE 27BA7BB76EE4E87C // INDEX 3811 -uiSandThundery [Sandsturm] +uiSandThundery [holzstaub-stürmisch] // HASH_VALUE 098C40BE9CDC5CBF // INDEX 3812 -uiSapThundery [Sapsturm] +uiSapThundery [sap-gewittrig] // HASH_VALUE B18A28D12FAA48D2 // INDEX 3813 @@ -15967,15 +15970,15 @@ uiThundery [stürmisch] // HASH_VALUE 68585420781C9490 // INDEX 3815 -uiHumidity [Feuchtigkeit] +uiHumidity [feucht] // HASH_VALUE 6498945C6498945C // INDEX 3816 -uiWind [Wind] +uiWind [windig] // HASH_VALUE 2E59C4AAE9F9F4BD // INDEX 3817 -uiContinentIndoors [indoors] +uiContinentIndoors [Innenraum] // HASH_VALUE 94A55E9E066B888F // INDEX 3818 @@ -16047,151 +16050,151 @@ uiCommandWrongArgumentCount [Falsches Argument oder Reihenfolge im Befehl.] // HASH_VALUE 62C7348CE738649D // INDEX 3835 -mpfam0 [Undefiniert] +mpfam0 [undefiniert] // HASH_VALUE DBD84B79A622146A // INDEX 3836 -mpfam1 [Abhaya Holz] +mpfam1 [Abhaya-Holz] // HASH_VALUE EA38A42848D814AE // INDEX 3837 -mpfam2 [Adelina Splitter] +mpfam2 [Adelina-Splitter] // HASH_VALUE A038738E22A26858 // INDEX 3838 -mpfam3 [Adriel Holz] +mpfam3 [Adriel-Holz] // HASH_VALUE 9DF7537FA1932C56 // INDEX 3839 -mpfam4 [Alicea Stamm] +mpfam4 [Alicea-Stamm] // HASH_VALUE 6C08D4625985A770 // INDEX 3840 -mpfam5 [Amelina Pollen] +mpfam5 [Amelina-Pollen] // HASH_VALUE 0D693828A7E5837E // INDEX 3841 -mpfam6 [Anete Faser] +mpfam6 [Anete-Faser] // HASH_VALUE 25676C2BA817BFA1 // INDEX 3842 -mpfam7 [Angelica Stamm] +mpfam7 [Angelica-Stamm] // HASH_VALUE 9FD724774D12F360 // INDEX 3843 -mpfam8 [Arma Nagel] +mpfam8 [Arma-Nagel] // HASH_VALUE A7D7503F22F3303C // INDEX 3844 -mpfam9 [Arma Wirbel] +mpfam9 [Arma-Wirbel] // HASH_VALUE A958BB719B07C86F // INDEX 3845 -mpfam10 [Astragali Seide] +mpfam10 [Astragali-Seide] // HASH_VALUE 57A83C3AC498305A // INDEX 3846 -mpfam11 [Avinash Holz] +mpfam11 [Avinash-Holz] // HASH_VALUE D57B9040038BD463 // INDEX 3847 -mpfam12 [Barkers Holz] +mpfam12 [Barkers-Holz] // HASH_VALUE 0B3ADC38E754CF76 // INDEX 3848 -mpfam13 [Batoo Bernstein] +mpfam13 [Batoo-Bernstein] // HASH_VALUE 96CA782BC4CBAC4E // INDEX 3849 -mpfam14 [Beckers Rinde] +mpfam14 [Beckers-Rinde] // HASH_VALUE 6636EC341AE20035 // INDEX 3850 -mpfam15 [Beng Bernstein] +mpfam15 [Beng-Bernstein] // HASH_VALUE CBF6107F62130B43 // INDEX 3851 -mpfam16 [Große Schale] +mpfam16 [Riesen-Muschel] // HASH_VALUE 6EE88C751AA9F065 // INDEX 3852 -mpfam17 [Bitters Schale] +mpfam17 [Bitters-Muschel] // HASH_VALUE 2C15B35F9924B37B // INDEX 3853 -mpfam18 [Bodoc Horn] +mpfam18 [Bodoc-Horn] // HASH_VALUE 2B35A36198D5B372 // INDEX 3854 -mpfam19 [Bodoc Haut] +mpfam19 [Bodoc-Haut] // HASH_VALUE 29E4735C1684AB72 // INDEX 3855 -mpfam20 [Bodoc Nagel] +mpfam20 [Bodoc-Nagel] // HASH_VALUE D0983C7BDC22FB4A // INDEX 3856 -mpfam21 [Buo Faser] +mpfam21 [Buo-Faser] // HASH_VALUE 6BE857506636B0AA // INDEX 3857 -mpfam22 [Butterfly Leinen] +mpfam22 [Butterfly-Leinen] // HASH_VALUE 59BA2C42C5093468 // INDEX 3858 -mpfam23 [Caprice Samen] +mpfam23 [Caprice-Samen] // HASH_VALUE 998A80410519B477 // INDEX 3859 -mpfam24 [Capryni Knochen] +mpfam24 [Capryni-Knochen] // HASH_VALUE D99A80474529B47D // INDEX 3860 -mpfam25 [Capryni Hufe] +mpfam25 [Capryni-Hufe] // HASH_VALUE 9CA73B7B1C521847 // INDEX 3861 -mpfam27 [Carlea Blatt] +mpfam27 [Carlea-Blatt] // HASH_VALUE 2969382CE442B08E // INDEX 3862 -mpfam28 [Champion Schale] +mpfam28 [Champion-Muschel] // HASH_VALUE 1AE5E445A8F7C08A // INDEX 3863 -mpfam30 [Crocifissa Knospe] +mpfam30 [Crocifissa-Knospe] // HASH_VALUE 2FC76837E803B843 // INDEX 3864 -mpfam31 [Cuty Schale] +mpfam31 [Cuty-Muschel] // HASH_VALUE A9255768D7B58383 // INDEX 3865 -mpfam32 [Dante Seide] +mpfam32 [Dante-Seide] // HASH_VALUE 572A5C4444E96C65 // INDEX 3866 -mpfam33 [Darleen Holz] +mpfam33 [Darleen-Holz] // HASH_VALUE 9E26546895C16097 // INDEX 3867 -mpfam34 [Devesh Bernstein] +mpfam34 [Devesh-Bernstein] // HASH_VALUE 24265C56D8C17073 // INDEX 3868 -mpfam35 [Devraj Bernstein] +mpfam35 [Devraj-Bernstein] // HASH_VALUE 6A587446E5335444 // INDEX 3869 -mpfam36 [Dung Spore] +mpfam36 [Dung-Spore] // HASH_VALUE AD465432A2F2882A // INDEX 3870 -mpfam37 [Dzao Faser] +mpfam37 [Dzao-Faser] // HASH_VALUE AC16C35F6C548A7B // INDEX 3871 -mpfam38 [Enola Baumwolle] +mpfam38 [Enola-Baumwolle] // HASH_VALUE 6CD85414609894B4 // INDEX 3872 @@ -16199,263 +16202,263 @@ mpfam39 [Eucomina] // HASH_VALUE 6FB5B36C5ED5C784 // INDEX 3873 -mpfam40 [Eyota Holz] +mpfam40 [Eyota-Holz] // HASH_VALUE ADF7AF759B07188F // INDEX 3874 -mpfam41 [Foomongus Moos] +mpfam41 [Foomongus-Moos] // HASH_VALUE 6A787448E5535446 // INDEX 3875 -mpfam42 [Fung Spore] +mpfam42 [Fung-Spore] // HASH_VALUE 2BA4B35A56849F85 // INDEX 3876 -mpfam43 [Gingo Kralle] +mpfam43 [Gingo-Kralle] // HASH_VALUE 9FE2FC741697BFB4 // INDEX 3877 -mpfam44 [Gingo Leder] +mpfam44 [Gingo-Leder] // HASH_VALUE AD78643FA6C3F48A // INDEX 3878 -mpfam45 [Glorious Leinen] +mpfam45 [Glorious-Leinen] // HASH_VALUE EBB78035E4234845 // INDEX 3879 -mpfam46 [Glue Harz] +mpfam46 [Klebharz] // HASH_VALUE A0C640624FE373AB // INDEX 3880 -mpfam47 [Goari Knospe] +mpfam47 [Goari-Knospe] // HASH_VALUE CEF8842D6A265797 // INDEX 3881 -mpfam48 [Goari Schale] +mpfam48 [Goari-Panzer] // HASH_VALUE D4D5A065DC046FBA // INDEX 3882 -mpfam49 [Gulatch Öl] +mpfam49 [Gulatch-Öl] // HASH_VALUE A6E7DC3A5A93F440 // INDEX 3883 -mpfam50 [Hash Bernstein] +mpfam50 [Hash-Bernstein] // HASH_VALUE 1326B881A204F898 // INDEX 3884 -mpfam51 [Helena Pollen] +mpfam51 [Helena-Pollen] // HASH_VALUE A8F7283C61335046 // INDEX 3885 -mpfam52 [Hero Schale] +mpfam52 [Hero-Muschel] // HASH_VALUE 0E0A743F6EF59BA7 // INDEX 3886 -mpfam53 [Hornartige Schale] +mpfam53 [Horn-Muschel] // HASH_VALUE 6DF4AB4E98F4C36C // INDEX 3887 -mpfam54 [Igara Kralle] +mpfam54 [Igara-Kralle] // HASH_VALUE EB68986D5AD9D862 // INDEX 3888 -mpfam56 [Insekten Schale] +mpfam56 [Insekten-Panzer] // HASH_VALUE CCEA1034AD84A38D // INDEX 3889 -mpfam57 [Iriku Bernstein] +mpfam57 [Iriku-Bernstein] // HASH_VALUE E3973C8B93533B69 // INDEX 3890 -mpfam58 [Irin Holz] +mpfam58 [Irin-Holz] // HASH_VALUE E7C62C2C2417DF8D // INDEX 3891 -mpfam59 [Isabella Blatt] +mpfam59 [Isabella-Blatt] // HASH_VALUE A3C8708D4BD2C768 // INDEX 3892 -mpfam60 [Izam Kralle] +mpfam60 [Izam-Kralle] // HASH_VALUE 6C58A4246C580480 // INDEX 3893 -mpfam61 [Izam Sporn] +mpfam61 [Izam-Sporn] // HASH_VALUE E50998501C93A478 // INDEX 3894 -mpfam62 [Jayadeep Bernstein] +mpfam62 [Jayadeep-Bernstein] // HASH_VALUE A659C84B5B14848F // INDEX 3895 -mpfam63 [Jitendra Bernstein] +mpfam63 [Jitendra-Bernstein] // HASH_VALUE 55B8805643D8B474 // INDEX 3896 -mpfam64 [Kachine Holz] +mpfam64 [Kachine-Holz] // HASH_VALUE AA24B35DD5F4877C // INDEX 3897 -mpfam65 [Kiban Kralle] +mpfam65 [Kiban-Kralle] // HASH_VALUE E946986D55C99C62 // INDEX 3898 -mpfam66 [Kincher Panzer] +mpfam66 [Kincher-Panzer] // HASH_VALUE 6986B46F568A9C5D // INDEX 3899 -mpfam67 [Kincher Stachel] +mpfam67 [Kincher-Stachel] // HASH_VALUE 8B5828322A555B96 // INDEX 3900 -mpfam68 [Kiban Panzer] +mpfam68 [Kiban-Panzer] // HASH_VALUE 2658C46F9A69E06F // INDEX 3901 -mpfam69 [Kipesta Schale] +mpfam69 [Kipesta-Panzer] // HASH_VALUE E7C5776096354F8E // INDEX 3902 -mpfam70 [Kipee Knochen] +mpfam70 [Kipee-Knochen] // HASH_VALUE AB05B354D6459781 // INDEX 3903 -mpfam71 [Kipee Kralle] +mpfam71 [Kipee-Kralle] // HASH_VALUE 8CA93840E895938D // INDEX 3904 -mpfam72 [Kipee Schale] +mpfam72 [Kipee-Panzer] // HASH_VALUE 2AC7847F5768FC5F // INDEX 3905 -mpfam73 [Kipucka Panzer] +mpfam73 [Kipucka-Panzer] // HASH_VALUE EEDCF075C8A2BCB5 // INDEX 3906 -mpfam74 [Kipucka Schnabel] +mpfam74 [Kipucka-Schnabel] // HASH_VALUE 9B7ACC4CC869F874 // INDEX 3907 -mpfam75 [Kirosta Kralle] +mpfam75 [Kirosta-Kralle] // HASH_VALUE 28B8E07B1B2A086C // INDEX 3908 -mpfam76 [Kirosta Stachel] +mpfam76 [Kirosta-Stachel] // HASH_VALUE 6C7AD4895D254366 // INDEX 3909 -mpfam77 [Kitin Sekret] +mpfam77 [Kitin-Sekret] // HASH_VALUE A1C8879821C2B453 // INDEX 3910 -mpfam78 [Kizoar Schwanz] +mpfam78 [Kizoar-Schwanz] // HASH_VALUE E447C397E5D36467 // INDEX 3911 -mpfam79 [Koorin Holz] +mpfam79 [Koorin-Holz] // HASH_VALUE A6A6CF9AE1C31C68 // INDEX 3912 -mpfam80 [Lumper Knochen] +mpfam80 [Lumper-Knochen] // HASH_VALUE A547BB96E4838463 // INDEX 3913 -mpfam81 [Lumper Haut] +mpfam81 [Lumper-Haut] // HASH_VALUE 6594186D1DC00C86 // INDEX 3914 -mpfam82 [Lumper Wirbel] +mpfam82 [Lumper-Wirbel] // HASH_VALUE A8CAFC925F72DFAE // INDEX 3915 -mpfam83 [Lumper Schnurrbarthaare] +mpfam83 [Lumper-Schnurrhaare] // HASH_VALUE A0E8479225E24864 // INDEX 3916 -mpfam84 [Manath Holz] +mpfam84 [Manath-Holz] // HASH_VALUE 1FA8B04C0A18F06E // INDEX 3917 -mpfam85 [Mektoub Kralle] +mpfam85 [Mektoub-Kralle] // HASH_VALUE DD28AC5CC898EC7E // INDEX 3918 -mpfam86 [Mektoub Haut] +mpfam86 [Mektoub-Haut] // HASH_VALUE EF39E8811AF59781 // INDEX 3919 -mpfam87 [Mektoub Rüssel] +mpfam87 [Mektoub-Rüssel] // HASH_VALUE D538986003388482 // INDEX 3920 -mpfam88 [Miakoda Holz] +mpfam88 [Miakoda-Holz] // HASH_VALUE E189779928226470 // INDEX 3921 -mpfam89 [Mitexi Holz] +mpfam89 [Mitexi-Holz] // HASH_VALUE A3A7A39A6672686D // INDEX 3922 -mpfam90 [Moojoo Holz] +mpfam90 [Moojoo-Holz] // HASH_VALUE ACB6603B24626041 // INDEX 3923 -mpfam91 [Moon Leinen] +mpfam91 [Moon-Leinen] // HASH_VALUE 6DDAE8A4DE80D7BF // INDEX 3924 -mpfam92 [Mooshy Pilz] +mpfam92 [Mooshy-Pilz] // HASH_VALUE DF788F9164224465 // INDEX 3925 -mpfam93 [Motega Holz] +mpfam93 [Motega-Holz] // HASH_VALUE 62072C909383335E // INDEX 3926 -mpfam94 [Nita Holz] +mpfam94 [Nita-Holz] // HASH_VALUE 6297109193F34F5D // INDEX 3927 -mpfam95 [Oath Holz] +mpfam95 [Oath-Holz] // HASH_VALUE 2457BF84E5330863 // INDEX 3928 -mpfam96 [Olathe Holz] +mpfam96 [Olathe-Holz] // HASH_VALUE E67A743EC2BAECB8 // INDEX 3929 -mpfam97 [Omalita Parasit] +mpfam97 [Omalita-Parasit] // HASH_VALUE 66FAB43AC618F4C2 // INDEX 3930 -mpfam98 [Paddooa Pilz] +mpfam98 [Paddooa-Pilz] // HASH_VALUE 1F53678422B76B62 // INDEX 3931 -mpfam99 [Patee Hartholz] +mpfam99 [Patee-Holzknoten] // HASH_VALUE 2083678422C60358 // INDEX 3932 -mpfam100 [Patee Hartholz] +mpfam100 [Patee-Holzverwachsung] // HASH_VALUE 29D8FC482726FFB0 // INDEX 3933 -mpfam101 [Perfling Rinde] +mpfam101 [Perfling-Rinde] // HASH_VALUE 8EC840899C12BF2A // INDEX 3934 -mpfam102 [Pha Bernstein] +mpfam102 [Pha-Bernstein] // HASH_VALUE E1273C74D0F26FA4 // INDEX 3935 -mpfam103 [Pilan Öl] +mpfam103 [Pilan-Öl] // HASH_VALUE ADE59369D806B78D // INDEX 3936 -mpfam106 [Ragus Kralle] +mpfam106 [Ragus-Kralle] // HASH_VALUE 2123EC8D545823B1 // INDEX 3937 -mpfam107 [Ragus Leder] +mpfam107 [Ragus-Leder] // HASH_VALUE 638374426463C886 // INDEX 3938 @@ -16463,7 +16466,7 @@ mpfam109 [Entflammtes Sap] // HASH_VALUE 93778393264A2497 // INDEX 3939 -mpfam110 [Rosabella Parasit] +mpfam110 [Rosabella-Parasit] // HASH_VALUE 29C7FC6BEEC6F07E // INDEX 3940 @@ -16471,227 +16474,227 @@ mpfam111 [Gummi] // HASH_VALUE A778E44AEBC66FA6 // INDEX 3941 -mpfam112 [Salverio Blatt] +mpfam112 [Salverio-Blatt] // HASH_VALUE DF883F8B20232C54 // INDEX 3942 -mpfam113 [Sarina Samen] +mpfam113 [Sarina-Samen] // HASH_VALUE E839B8541CB59497 // INDEX 3943 -mpfam114 [Satilish Bernstein] +mpfam114 [Satilish-Bernstein] // HASH_VALUE 591A5868C5D98C84 // INDEX 3944 -mpfam115 [Saurona Samen] +mpfam115 [Saurona-Samen] // HASH_VALUE 21294F9CA5435866 // INDEX 3945 -mpfam116 [Scrath Holz] +mpfam116 [Scrath-Holz] // HASH_VALUE 4EF84C8C9C12BF2A // INDEX 3946 -mpfam117 [Sha Bernstein] +mpfam117 [Sha-Bernstein] // HASH_VALUE 53394C8CDC221343 // INDEX 3947 -mpfam118 [Shu Faser] +mpfam118 [Shu-Faser] // HASH_VALUE 29345C4469C8C490 // INDEX 3948 -mpfam119 [Silberkraut Sap] +mpfam119 [Silberkraut-Sap] // HASH_VALUE A58683931FF43853 // INDEX 3949 -mpfam120 [Silvio Blatt] +mpfam120 [Silvio-Blatt] // HASH_VALUE 6DC8987F55D91852 // INDEX 3950 -mpfam121 [Slamers Schale] +mpfam121 [Slamers-Muschel] // HASH_VALUE 2B48987657D9F45A // INDEX 3951 -mpfam122 [Schild Schale] +mpfam122 [Sliders-Muschel] // HASH_VALUE D1A97C39ADE757A0 // INDEX 3952 -mpfam123 [Gepflegte Schale] +mpfam123 [Elegante Muschel] // HASH_VALUE 9248688C9C12F73F // INDEX 3953 -mpfam124 [Soo Bernstein] +mpfam124 [Soo-Bernstein] // HASH_VALUE EBF84847E6530C92 // INDEX 3954 -mpfam125 [Splitter Schale] +mpfam125 [Splitter-Muschel] // HASH_VALUE 9757F08F5F76288C // INDEX 3955 -mpfam126 [Subera Schwamm] +mpfam126 [Subera-Schwamm] // HASH_VALUE 1658A0A11FA55080 // INDEX 3956 -mpfam127 [Takoda Baumwolle] +mpfam127 [Takoda-Baumwolle] // HASH_VALUE 207724969383174F // INDEX 3957 -mpfam128 [Tama Holz] +mpfam128 [Tama-Holz] // HASH_VALUE 28965393173763AA // INDEX 3958 -mpfam129 [Tansy Holz] +mpfam129 [Tansy-Holz] // HASH_VALUE 32367B7DAFE4668A // INDEX 3959 -mpfam130 [Tehya Baumwolle] +mpfam130 [Tehya-Baumwolle] // HASH_VALUE A27763992153F869 // INDEX 3960 -mpfam131 [Timari Knochen] +mpfam131 [Timari-Knochen] // HASH_VALUE E2A82F961E23445C // INDEX 3961 -mpfam132 [Timari Kralle] +mpfam132 [Timari-Kralle] // HASH_VALUE A1184F9524136064 // INDEX 3962 -mpfam133 [Timari Haut] +mpfam133 [Timari-Haut] // HASH_VALUE A2E84B9D5B336051 // INDEX 3963 -mpfam134 [Torbak Kralle] +mpfam134 [Torbak-Kralle] // HASH_VALUE DF177F925F832C5E // INDEX 3964 -mpfam135 [Torbak Reisszahn] +mpfam135 [Torbak-Reißzahn] // HASH_VALUE 62A78FA0E1635062 // INDEX 3965 -mpfam136 [Torbak Horn] +mpfam136 [Torbak-Horn] // HASH_VALUE 28DA6C9FDEC4643A // INDEX 3966 -mpfam137 [Torbak Leder] +mpfam137 [Torbak-Leder] // HASH_VALUE EB8724469F33583A // INDEX 3967 -mpfam138 [Tsao Bernstein] +mpfam138 [Tsao-Bernstein] // HASH_VALUE EA174C5126A92BAB // INDEX 3968 -mpfam139 [Valosera Seide] +mpfam139 [Valosera-Seide] // HASH_VALUE 65E763A11F13605D // INDEX 3969 -mpfam140 [Varinx Reißzahn] +mpfam140 [Varinx-Reißzahn] // HASH_VALUE 2EAA50A11DE46049 // INDEX 3970 -mpfam141 [Varinx Leder] +mpfam141 [Varinx-Leder] // HASH_VALUE 60DC945870583480 // INDEX 3971 -mpfam142 [Visc Sap] +mpfam142 [Visc-Sap] // HASH_VALUE 6030DC92E8DA54B0 // INDEX 3972 -mpfam143 [Flüsterer Schale] +mpfam143 [Flüsterer-Muschel] // HASH_VALUE A1D7389B93831B50 // INDEX 3973 -mpfam144 [Yana Holz] +mpfam144 [Yana-Holz] // HASH_VALUE 2C58E446E8588C0D // INDEX 3974 -mpfam145 [Yber Leder] +mpfam145 [Yber-Leder] // HASH_VALUE A407489B0ED2E75C // INDEX 3975 -mpfam146 [Yelk Knochen] +mpfam146 [Yelk-Knochen] // HASH_VALUE A4E894AE1282135C // INDEX 3976 -mpfam147 [Yelk Moos] +mpfam147 [Yelk-Moos] // HASH_VALUE 6B25939B25D6E86C // INDEX 3977 -mpfam148 [Yelk Pilz] +mpfam148 [Yelk-Pilz] // HASH_VALUE A477508F4DB2175C // INDEX 3978 -mpfam149 [Yelk Nagel] +mpfam149 [Yelk-Nagel] // HASH_VALUE A7A7284D60E34051 // INDEX 3979 -mpfam150 [Yelk Schale] +mpfam150 [Yelk-Schale] // HASH_VALUE 2668889B0E12CF66 // INDEX 3980 -mpfam151 [Yubo Knochen] +mpfam151 [Yubo-Knochen] // HASH_VALUE 26F8989B10E31366 // INDEX 3981 -mpfam152 [Yubo Haut] +mpfam152 [Yubo-Haut] // HASH_VALUE A9784C9C0EA3336F // INDEX 3982 -mpfam153 [Zerx Knochen] +mpfam153 [Zerx-Knochen] // HASH_VALUE A999609E4B83376F // INDEX 3983 -mpfam154 [Zerx Kralle] +mpfam154 [Zerx-Kralle] // HASH_VALUE 96099C939C12F344 // INDEX 3984 -mpfam155 [Zun Bernstein] +mpfam155 [Zun-Bernstein] // HASH_VALUE DB58C835C658A055 // INDEX 3985 -mpfam162 [Cratcha Blatt] +mpfam162 [Cratcha-Blatt] // HASH_VALUE 6F1910671B659B70 // INDEX 3986 -mpfam163 [Cratcha Stempel] +mpfam163 [Cratcha-Stempel] // HASH_VALUE 20368F826173F45C // INDEX 3987 -mpfam164 [Stinga Blatt] +mpfam164 [Stinga-Blatt] // HASH_VALUE 1A28EC93E3F6308C // INDEX 3988 -mpfam165 [Stinga Stempel] +mpfam165 [Stinga-Stempel] // HASH_VALUE 6AA48358D9A49F6E // INDEX 3989 -mpfam166 [Jubla Blatt] +mpfam166 [Jubla-Blatt] // HASH_VALUE ABE7FB68EAC6A67F // INDEX 3990 -mpfam167 [Jubla Stempel] +mpfam167 [Jubla-Stempel] // HASH_VALUE 29F9543C2BB72FAF // INDEX 3991 -mpfam168 [Psykopla Blatt] +mpfam168 [Psykopla-Blatt] // HASH_VALUE AE1A983350A7C8BC // INDEX 3992 -mpfam169 [Psykopla Stempel] +mpfam169 [Psykopla-Stempel] // HASH_VALUE DBD8B0574658B869 // INDEX 3993 -mpfam170 [Slaveni Blatt] +mpfam170 [Slaveni-Blatt] // HASH_VALUE 703900771AE69B8A // INDEX 3994 -mpfam171 [Slaveni Stempel] +mpfam171 [Slaveni-Stempel] // HASH_VALUE 62D663905F832C54 // INDEX 3995 -mpfam172 [Shooki Blatt] +mpfam172 [Shooki-Blatt] // HASH_VALUE 5708CC9466755496 // INDEX 3996 -mpfam173 [Shooki Stempel] +mpfam173 [Shooki-Stempel] // HASH_VALUE E7A477625674777B // INDEX 3997 @@ -16727,23 +16730,23 @@ mpfam181 [Verrottetes Holz] // HASH_VALUE CA5A2CC86C5A2476 // INDEX 4005 -mpfam182 [Trockenes Holzsägemehl] +mpfam182 [Trockener Holzstaub] // HASH_VALUE A323A78BEF084B68 // INDEX 4006 -mpfam183 [Feuchtes Holzsägemehl] +mpfam183 [Feuchter Holzstaub] // HASH_VALUE A2A24B89E116E752 // INDEX 4007 -mpfam184 [Kleines Schilf Blatt] +mpfam184 [Kleines Schilfblatt] // HASH_VALUE 9E635F761DA5E74B // INDEX 4008 -mpfam185 [Großes Schilf Blatt] +mpfam185 [Großes Schilfblatt] // HASH_VALUE 24C23B79DD55E75A // INDEX 4009 -mpfam186 [Riesiges Schilf Blatt] +mpfam186 [Riesiges Schilfblatt] // HASH_VALUE D24880432C365F9F // INDEX 4010 @@ -16903,55 +16906,55 @@ mpfam225 [Trockenes Moos] // HASH_VALUE 6BA9848A20A40760 // INDEX 4049 -mpfam226 [Frisches Dandelion] +mpfam226 [Frisches Sonnwendlig] // HASH_VALUE E7089488A084075C // INDEX 4050 -mpfam227 [Getrocknetes Dandelion] +mpfam227 [Getrocknetes Sonnwendlig] // HASH_VALUE A232183FE6C8B0A1 // INDEX 4051 -mpfam228 [Blühendes Dandelion] +mpfam228 [Blühendes Sonnwendlig] // HASH_VALUE 27134B89E1861365 // INDEX 4052 -mpfam229 [Kleiner Schilf Stamm] +mpfam229 [Kleiner Schilfstängel] // HASH_VALUE 23D45F761D15135E // INDEX 4053 -mpfam230 [Großer Schilf Stamm] +mpfam230 [Großer Schilfstängel] // HASH_VALUE C8582C6AECB47A76 // INDEX 4054 -mpfam231 [Frische Lockere Erde] +mpfam231 [Frische lockere Erde] // HASH_VALUE C2D82C66ECB47A6E // INDEX 4055 -mpfam232 [Getrocknete Lockere Erde] +mpfam232 [Getrocknete lockere Erde] // HASH_VALUE 2C66EC58D0B28398 // INDEX 4056 -mpfam233 [Frisches Modifiziertes Sap] +mpfam233 [Frisches modifiziertes Sap] // HASH_VALUE A986EC56D0724B98 // INDEX 4057 -mpfam234 [Getrocknetes Modifiziertes Sap] +mpfam234 [Getrocknetes modifiziertes Sap] // HASH_VALUE E8F814599A97AB5E // INDEX 4058 -mpfam235 [Kleines Insekten Fossil] +mpfam235 [Kleines Insektenfossil] // HASH_VALUE E509E452D847EF4B // INDEX 4059 -mpfam236 [Großes Insekten Fossil] +mpfam236 [Großes Insektenfossil] // HASH_VALUE 19A8D06DDA666E87 // INDEX 4060 -mpfam237 [Kleines Pflanzen Fossil] +mpfam237 [Kleines Pflanzenfossil] // HASH_VALUE D448A066DAF65A91 // INDEX 4061 -mpfam238 [Großes Pflanzen Fossil] +mpfam238 [Großes Pflanzenfossil] // HASH_VALUE 4F686B8463F3BC8A // INDEX 4062 @@ -16975,11 +16978,11 @@ mpfam243 [Schwarzes Pigment] // HASH_VALUE 22A41F89225293B3 // INDEX 4067 -mpfam244 [Frischer Goo Rest] +mpfam244 [Frischer Goorest] // HASH_VALUE A0E41787225283A1 // INDEX 4068 -mpfam245 [Getrockneter Goo Rest] +mpfam245 [Getrockneter Goorest] // HASH_VALUE 59F9C499ED56BF7B // INDEX 4069 @@ -17023,23 +17026,23 @@ mpfam255 [Getrockneter Honig] // HASH_VALUE 6B196021D546EBAD // INDEX 4079 -mpfam256 [Scharfe Aromatische Pflanze] +mpfam256 [Scharfe aromatische Pflanze] // HASH_VALUE AEA67BA7A5C283A4 // INDEX 4080 -mpfam257 [Würzige Aromatische Pflanze] +mpfam257 [Würzige aromatische Pflanze] // HASH_VALUE 185AA878D0C4408E // INDEX 4081 -mpfam258 [Bittere Aromatische Pflanze] +mpfam258 [Bittere aromatische Pflanze] // HASH_VALUE D8B0B4647038929A // INDEX 4082 -mpfam259 [Frische Wildbeeren] +mpfam259 [Frische Wildbeere] // HASH_VALUE D230B46070389292 // INDEX 4083 -mpfam260 [Getrocknete Wildbeeren] +mpfam260 [Getrocknete Wildbeere] // HASH_VALUE 544A24496CB69F88 // INDEX 4084 @@ -17051,67 +17054,67 @@ mpfam262 [Große Frucht] // HASH_VALUE 5FA894564A18D478 // INDEX 4086 -mpfam263 [Mektoub Fleisch] +mpfam263 [Mektoub-Fleisch] // HASH_VALUE 2B856B7316A6AB8D // INDEX 4087 -mpfam264 [Ragus Fleisch] +mpfam264 [Ragus-Fleisch] // HASH_VALUE 265990930C22FB66 // INDEX 4088 -mpfam265 [Yubo Fleisch] +mpfam265 [Yubo-Fleisch] // HASH_VALUE 5DBA584CC9498C82 // INDEX 4089 -mpfam266 [Capryni Fleisch] +mpfam266 [Capryni-Fleisch] // HASH_VALUE 206867875C635C47 // INDEX 4090 -mpfam267 [Messab Fleisch] +mpfam267 [Messab-Fleisch] // HASH_VALUE 6D471842E4126837 // INDEX 4091 -mpfam268 [Cray Fleisch] +mpfam268 [Cray-Fleisch] // HASH_VALUE EB948358D694B76C // INDEX 4092 -mpfam269 [Igara Fleisch] +mpfam269 [Igara-Fleisch] // HASH_VALUE A39864830C02EF68 // INDEX 4093 -mpfam270 [Izam Fleisch] +mpfam270 [Izam-Fleisch] // HASH_VALUE E35844930C531359 // INDEX 4094 -mpfam271 [Yber Fleisch] +mpfam271 [Yber-Fleisch] // HASH_VALUE 9F58247B0C42EF60 // INDEX 4095 -mpfam272 [Arma Fleisch] +mpfam272 [Arma-Fleisch] // HASH_VALUE 2C54A3531774CB6A // INDEX 4096 -mpfam273 [Bodoc Fleisch] +mpfam273 [Bodoc-Fleisch] // HASH_VALUE A4F850930CE2135C // INDEX 4097 -mpfam274 [Yelk Fleisch] +mpfam274 [Yelk-Fleisch] // HASH_VALUE 24479B906123845B // INDEX 4098 -mpfam275 [Lumper Fleisch] +mpfam275 [Lumper-Fleisch] // HASH_VALUE 20182F8FA1B3605C // INDEX 4099 -mpfam276 [Timari Fleisch] +mpfam276 [Timari-Fleisch] // HASH_VALUE 6978C4731AA9D46D // INDEX 4100 -mpfam277 [Kirosta Inneres] +mpfam277 [Kirosta-Fleisch] // HASH_VALUE AA4698675509685E // INDEX 4101 -mpfam278 [Kincher Inneres] +mpfam278 [Kincher-Fleisch] // HASH_VALUE EBC7847957A8C85B // INDEX 4102 @@ -17127,143 +17130,143 @@ mpfam281 [Kipee Inneres] // HASH_VALUE 6187A86317E2CC79 // INDEX 4105 -mpfam282 [Kizoar Inneres] +mpfam282 [Kizoar-Fleisch] // HASH_VALUE E758C4699AA9AC6B // INDEX 4106 -mpfam283 [Kipesta Inneres] +mpfam283 [Kipesta-Fleisch] // HASH_VALUE 2EF7A83AE7336843 // INDEX 4107 -mpfam284 [Cute Schädel] +mpfam284 [Cute-Schädel] // HASH_VALUE 1F14C45A5BF0C474 // INDEX 4108 -mpfam285 [Gibbaï Schädel] +mpfam285 [Gibbaï-Schädel] // HASH_VALUE 23F43058DDE03073 // INDEX 4109 -mpfam286 [Frahar Schädel] +mpfam286 [Frahar-Schädel] // HASH_VALUE E9D794721A38E45E // INDEX 4110 -mpfam287 [Mektoub Blut] +mpfam287 [Mektoub-Blut] // HASH_VALUE 8DE808442B047B89 // INDEX 4111 -mpfam288 [Gingo Blut] +mpfam288 [Gingo-Blut] // HASH_VALUE D4B920482A965F85 // INDEX 4112 -mpfam289 [Ragus Blut] +mpfam289 [Ragus-Blut] // HASH_VALUE 2C772C54A3832C4A // INDEX 4113 -mpfam290 [Yubo Blut] +mpfam290 [Yubo-Blut] // HASH_VALUE 0E69004AA924837F // INDEX 4114 -mpfam291 [Kipee Blut] +mpfam291 [Kipee-Blut] // HASH_VALUE EA677471D9A8B857 // INDEX 4115 -mpfam292 [Kipucka Blut] +mpfam292 [Kipucka-Blut] // HASH_VALUE 2717EC549E23DC54 // INDEX 4116 -mpfam293 [Yelk Blut] +mpfam293 [Yelk-Blut] // HASH_VALUE EE06203E65124833 // INDEX 4117 -mpfam294 [Cray Blut] +mpfam294 [Cray-Blut] // HASH_VALUE 1E7594509851946A // INDEX 4118 -mpfam295 [Gibbaï Haare] +mpfam295 [Gibbaï-Haare] // HASH_VALUE EAB7BC6F1959B07C // INDEX 4119 -mpfam296 [Capryni Haare] +mpfam296 [Capryni-Haare] // HASH_VALUE 0C292C3E29048B92 // INDEX 4120 -mpfam298 [Gingo Haare] +mpfam298 [Gingo-Haare] // HASH_VALUE 1E77CC6A9852BC77 // INDEX 4121 -mpfam299 [Torbak Haare] +mpfam299 [Torbak-Haare] // HASH_VALUE 53FA444228966F8E // INDEX 4122 -mpfam300 [Ragus Haare] +mpfam300 [Ragus-Haare] // HASH_VALUE 26D5185E1C010C77 // INDEX 4123 -mpfam302 [Lumper Haare] +mpfam302 [Lumper-Haare] // HASH_VALUE AD09284DE3E4645E // INDEX 4124 -mpfam303 [Zerx Haare] +mpfam303 [Zerx-Haare] // HASH_VALUE CDC9642FA734638C // INDEX 4125 -mpfam304 [Bodoc Haare] +mpfam304 [Bodoc-Haare] // HASH_VALUE 2A275C3460023C40 // INDEX 4126 -mpfam305 [Arma Haare] +mpfam305 [Arma-Haare] // HASH_VALUE 6EF8684CA4D3804D // INDEX 4127 -mpfam306 [Yubo Haare] +mpfam306 [Yubo-Haare] // HASH_VALUE ECB8683622935849 // INDEX 4128 -mpfam307 [Cute Haare] +mpfam307 [Cute-Haare] // HASH_VALUE 96D8B4E86B08308C // INDEX 4129 -mpfam308 [Goo verseuchtes Fleisch] +mpfam308 [Gooverseuchtes Fleisch] // HASH_VALUE DAE7CC7418A48A7E // INDEX 4130 -mpfam309 [Frischer Kitin Kokon] +mpfam309 [Frischer Kitinkokon] // HASH_VALUE C6F4627AEA7AC45C // INDEX 4131 -mpfam310 [Alter Kitin Kokon] +mpfam310 [Alter Kitinkokon] // HASH_VALUE 642A6F7062184A93 // INDEX 4132 -mpfam311 [Kitin Speichel] +mpfam311 [Kitin-Speichel] // HASH_VALUE D0595451EA355B99 // INDEX 4133 -mpfam312 [Kitin Larve] +mpfam312 [Kitinlarve] // HASH_VALUE 6C669C3825A24C3A // INDEX 4134 -mpfam313 [Arma Schädel] +mpfam313 [Arma-Schädel] // HASH_VALUE D0F8783BA8A66F91 // INDEX 4135 -mpfam314 [Bodoc Schädel] +mpfam314 [Bodoc-Schädel] // HASH_VALUE 6978C8741CF9DC75 // INDEX 4136 -mpfam315 [Capryni Schädel] +mpfam315 [Capryni-Schädel] // HASH_VALUE 0F58404A2A769797 // INDEX 4137 -mpfam316 [Gingo Schädel] +mpfam316 [Gingo-Schädel] // HASH_VALUE B037A85069739047 // INDEX 4138 -mpfam317 [Yubo Schädel] +mpfam317 [Yubo-Schädel] // HASH_VALUE A73688669F017C7A // INDEX 4139 -mpfam318 [Messab Schädel] +mpfam318 [Messab-Schädel] // HASH_VALUE 1F16FC745BF1EC81 // INDEX 4140 @@ -17271,291 +17274,291 @@ mpfam319 [Torbak Schädel] // HASH_VALUE 27744868DFA03C81 // INDEX 4141 -mpfam320 [Lumper Schädel] +mpfam320 [Lumper-Schädel] // HASH_VALUE 53A8643F26476387 // INDEX 4142 -mpfam321 [Igara Schädel] +mpfam321 [Igara-Schädel] // HASH_VALUE 7126BC402A629C36 // INDEX 4143 -mpfam322 [Izam Schädel] +mpfam322 [Izam-Schädel] // HASH_VALUE 2938B0809C282866 // INDEX 4144 -mpfam323 [Mektoub Schädel] +mpfam323 [Mektoub-Schädel] // HASH_VALUE 5629584E29087B93 // INDEX 4145 -mpfam324 [Ragus Schädel] +mpfam324 [Ragus-Schädel] // HASH_VALUE 5048084DE5868782 // INDEX 4146 -mpfam325 [Najab Schädel] +mpfam325 [Najab-Schädel] // HASH_VALUE 9F74C4851BA0C4A3 // INDEX 4147 -mpfam326 [Timari Schädel] +mpfam326 [Timari-Schädel] // HASH_VALUE 522A405DEE07A7A6 // INDEX 4148 -mpfam327 [Vorax Schädel] +mpfam327 [Vorax-Schädel] // HASH_VALUE ABD7685064134051 // INDEX 4149 -mpfam328 [Yelk Schädel] +mpfam328 [Yelk-Schädel] // HASH_VALUE A316C0851DF11C9D // INDEX 4150 -mpfam329 [Varinx Schädel] +mpfam329 [Varinx-Schädel] // HASH_VALUE AC675C5065A3504A // INDEX 4151 -mpfam330 [Yber Schädel] +mpfam330 [Yber-Schädel] // HASH_VALUE EF486851A8847458 // INDEX 4152 -mpfam331 [Zerx Schädel] +mpfam331 [Zerx-Schädel] // HASH_VALUE 23F43058DDE03073 // INDEX 4153 -mpfam332 [Frahar Schädel] +mpfam332 [Frahar-Schädel] // HASH_VALUE 5F97E478DC72D485 // INDEX 4154 -mpfam333 [Torbak Zähne] +mpfam333 [Torbak-Zahn] // HASH_VALUE A2C79B91DC03F454 // INDEX 4155 -mpfam334 [Messab Knochen] +mpfam334 [Messab-Knochen] // HASH_VALUE 1F38639063D2705D // INDEX 4156 -mpfam335 [Javing Flügel] +mpfam335 [Javing-Flügel] // HASH_VALUE EED6C472957AB06B // INDEX 4157 -mpfam336 [Clopper Schale] +mpfam336 [Clopper-Schale] // HASH_VALUE 1D29A839095A8C66 // INDEX 4158 -mpfam337 [Clopper Kralle] +mpfam337 [Clopper-Kralle] // HASH_VALUE E88763AF1EF3485D // INDEX 4159 -mpfam338 [Varinx Knochen] +mpfam338 [Varinx-Knochen] // HASH_VALUE 6764776616745792 // INDEX 4160 -mpfam339 [Gingo Knochen] +mpfam339 [Gingo-Knochen] // HASH_VALUE 9B78BC4B86E8FC6D // INDEX 4161 -mpfam340 [Mektoub Knochen] +mpfam340 [Mektoub-Knochen] // HASH_VALUE 9B9BFC34867BBC5D // INDEX 4162 -mpfam341 [Cuttler Knochen] +mpfam341 [Cuttler-Knochen] // HASH_VALUE 2BD7B0891A682C62 // INDEX 4163 -mpfam342 [Mektoub Zähne] +mpfam342 [Mektoub-Zahn] // HASH_VALUE E9A5577598F66F9A // INDEX 4164 -mpfam343 [Ragus Knochen] +mpfam343 [Ragus-Knochen] // HASH_VALUE 9F671C830E32C360 // INDEX 4165 -mpfam344 [Arma Knochen] +mpfam344 [Arma-Knochen] // HASH_VALUE DFF5AC899C21ACA7 // INDEX 4166 -mpfam345 [Timari Zähne] +mpfam345 [Timari-Zahn] // HASH_VALUE E6E527791536779A // INDEX 4167 -mpfam346 [Ragus Reisszahn] +mpfam346 [Ragus-Reißzahn] // HASH_VALUE 64A4476A93B45F92 // INDEX 4168 -mpfam347 [Gingo Reisszahn] +mpfam347 [Gingo-Reißzahn] // HASH_VALUE 1B9BC438067B8461 // INDEX 4169 -mpfam348 [Cuttler Reisszahn] +mpfam348 [Cuttler-Reißzahn] // HASH_VALUE E426377B132657A9 // INDEX 4170 -mpfam349 [Yetin Reißzahn] +mpfam349 [Yetin-Reißzahn] // HASH_VALUE E7B7706A2082647E // INDEX 4171 -mpfam350 [Messab Zähne] +mpfam350 [Messab-Zahn] // HASH_VALUE A066B3869E12F45F // INDEX 4172 -mpfam351 [Bolobi Knochen] +mpfam351 [Bolobi-Knochen] // HASH_VALUE 64872B9E5C336C55 // INDEX 4173 -mpfam352 [Rendor Kralle] +mpfam352 [Rendor-Kralle] // HASH_VALUE A2667F9C5E93F85E // INDEX 4174 -mpfam353 [Wombai Knochen] +mpfam353 [Wombai-Knochen] // HASH_VALUE A3963C6A1D31548E // INDEX 4175 -mpfam354 [Javing Schale] +mpfam354 [Javing-Panzer] // HASH_VALUE AA748B5D59F48B8A // INDEX 4176 -mpfam355 [Gnoof Knochen] +mpfam355 [Gnoof-Knochen] // HASH_VALUE A99854908C03436F // INDEX 4177 -mpfam356 [Zerx Reisszahn] +mpfam356 [Zerx-Reißzahn] // HASH_VALUE A6C77FA0DB241C50 // INDEX 4178 -mpfam357 [Raspal Knochen] +mpfam357 [Raspal-Knochen] // HASH_VALUE 6FD4CB549A54E372 // INDEX 4179 -mpfam358 [Goari Kralle] +mpfam358 [Goari-Kralle] // HASH_VALUE 1FF787839E23404F // INDEX 4180 -mpfam359 [Messab Nagel] +mpfam359 [Messab-Nagel] // HASH_VALUE 5B07438ADB320450 // INDEX 4181 -mpfam360 [Bawaab Knochen] +mpfam360 [Bawaab-Knochen] // HASH_VALUE 29982447E4F3F890 // INDEX 4182 -mpfam361 [Ploderos Schale] +mpfam361 [Ploderos-Panzer] // HASH_VALUE 2194887BDCB0BC98 // INDEX 4183 -mpfam362 [Rendor Schale] +mpfam362 [Rendor-Panzer] // HASH_VALUE A1076B9861536059 // INDEX 4184 -mpfam363 [Wombai Haut] +mpfam363 [Wombai-Haut] // HASH_VALUE 9F079F82A1D25C5A // INDEX 4185 -mpfam364 [Bolobi Haut] +mpfam364 [Bolobi-Haut] // HASH_VALUE A168878DDFC35C4F // INDEX 4186 -mpfam365 [Messab Haut] +mpfam365 [Messab-Haut] // HASH_VALUE E3874497D2343B59 // INDEX 4187 -mpfam366 [Yber Flügel] +mpfam366 [Yber-Flügel] // HASH_VALUE 5AA82F86DEF26C4B // INDEX 4188 -mpfam367 [Bawaab Haut] +mpfam367 [Bawaab-Haut] // HASH_VALUE 29A95842E603D87C // INDEX 4189 -mpfam368 [Horncher Schale] +mpfam368 [Horncher-Panzer] // HASH_VALUE 1C12A8751547C3A3 // INDEX 4190 -mpfam369 [Najab Leder] +mpfam369 [Najab-Leder] // HASH_VALUE E7284FAB21B3B058 // INDEX 4191 -mpfam370 [Varinx Haut] +mpfam370 [Varinx-Haut] // HASH_VALUE AAD8A426A718ECFD // INDEX 4192 -mpfam371 [Izam Leder] +mpfam371 [Izam-Leder] // HASH_VALUE E132BC81D397F399 // INDEX 4193 -mpfam372 [Igara Leder] +mpfam372 [Igara-Leder] // HASH_VALUE E3F74C9B10142B59 // INDEX 4194 -mpfam373 [Yber Haut] +mpfam373 [Yber-Haut] // HASH_VALUE D8372F7C9D52504B // INDEX 4195 -mpfam374 [Bawaab Nagel] +mpfam374 [Bawaab-Nagel] // HASH_VALUE 17F78C9764E4289D // INDEX 4196 -mpfam375 [Javing Zunge] +mpfam375 [Javing-Zunge] // HASH_VALUE 6FEBC0694884BC9E // INDEX 4197 -mpfam376 [Cuttler Leder] +mpfam376 [Cuttler-Leder] // HASH_VALUE 23D6BB8CA3E36863 // INDEX 4198 -mpfam377 [Lumper Nagel] +mpfam377 [Lumper-Nagel] // HASH_VALUE A2379F919E031055 // INDEX 4199 -mpfam378 [Messab Hufe] +mpfam378 [Messab-Huf] // HASH_VALUE A8896C9DDEA35C3D // INDEX 4200 -mpfam379 [Wombai Leder] +mpfam379 [Wombai-Leder] // HASH_VALUE 62B8AF89E623686B // INDEX 4201 -mpfam380 [Frippo Haut] +mpfam380 [Frippo-Haut] // HASH_VALUE 53894C4D03194C6B // INDEX 4202 -mpfam381 [Madakam Horn] +mpfam381 [Madakam-Horn] // HASH_VALUE 4C78802729855792 // INDEX 4203 -mpfam382 [Arana Schale] +mpfam382 [Arana-Panzer] // HASH_VALUE DF950C6B9C71DC92 // INDEX 4204 -mpfam383 [Gubani Zähne] +mpfam383 [Gubani-Zahn] // HASH_VALUE 271718910EA34F74 // INDEX 4205 -mpfam384 [Ocyx Knochen] +mpfam384 [Ocyx-Knochen] // HASH_VALUE 9F16E373A413D86F // INDEX 4206 -mpfam385 [Jugula Reisszahn] +mpfam385 [Jugula-Reißzahn] // HASH_VALUE 28688836E737E3B8 // INDEX 4207 -mpfam386 [Tyrancha Kralle] +mpfam386 [Tyrancha-Kralle] // HASH_VALUE 9958804747C8606A // INDEX 4208 -mpfam387 [Kidinak Kralle] +mpfam387 [Kidinak-Kralle] // HASH_VALUE 951A804B45296072 // INDEX 4209 -mpfam388 [Kizarak Kralle] +mpfam388 [Kizarak-Kralle] // HASH_VALUE E7E7739EDBA3884F // INDEX 4210 -mpfam389 [Kinrey Kralle] +mpfam389 [Kinrey-Kralle] // HASH_VALUE 2BD6CB7256479FA1 // INDEX 4211 -mpfam390 [Vorax Kralle] +mpfam390 [Vorax-Kralle] // HASH_VALUE 66279F916354245C // INDEX 4212 -mpfam391 [Shalah Stosszahn] +mpfam391 [Shalah-Stoßzahn] // HASH_VALUE F3F9507E34F72090 // INDEX 4213 @@ -17563,1183 +17566,1183 @@ mpfam392 [System] // HASH_VALUE 20182F8FA1B3605C // INDEX 4214 -mpfam393 [Timari Fleisch] +mpfam393 [Timari-Fleisch] // HASH_VALUE 24684B965B848443 // INDEX 4215 -mpfam394 [Raspal Fleisch] +mpfam394 [Raspal-Fleisch] // HASH_VALUE D9A80F805B926C43 // INDEX 4216 -mpfam395 [Bawaab Fleisch] +mpfam395 [Bawaab-Fleisch] // HASH_VALUE E1B88F8363C36863 // INDEX 4217 -mpfam396 [Frippo Fleisch] +mpfam396 [Frippo-Fleisch] // HASH_VALUE A2F72B97DFC38855 // INDEX 4218 -mpfam397 [Rendor Fleisch] +mpfam397 [Rendor-Fleisch] // HASH_VALUE EC549F5BD7A4C77D // INDEX 4219 -mpfam398 [Gnoof Fleisch] +mpfam398 [Gnoof-Fleisch] // HASH_VALUE 1E077F7C1E725C52 // INDEX 4220 -mpfam399 [Bolobi Fleisch] +mpfam399 [Bolobi-Fleisch] // HASH_VALUE 624757811D532C4A // INDEX 4221 -mpfam400 [Shalah Fleisch] +mpfam400 [Shalah-Fleisch] // HASH_VALUE 67784C35ACE61BBB // INDEX 4222 -mpfam401 [Ploderos Fleisch] +mpfam401 [Ploderos-Fleisch] // HASH_VALUE 20074B92DEF36051 // INDEX 4223 -mpfam402 [Wombai Fleisch] +mpfam402 [Wombai-Fleisch] // HASH_VALUE D578245285082470 // INDEX 4224 -mpfam403 [Madakam Fleisch] +mpfam403 [Madakam-Fleisch] // HASH_VALUE AD14AF509814D364 // INDEX 4225 -mpfam404 [Arana Fleisch] +mpfam404 [Arana-Fleisch] // HASH_VALUE DC275F77A3E23464 // INDEX 4226 -mpfam405 [Gubani Fleisch] +mpfam405 [Gubani-Fleisch] // HASH_VALUE 1E682F8C9E927C50 // INDEX 4227 -mpfam406 [Javing Fleisch] +mpfam406 [Javing-Fleisch] // HASH_VALUE 5FCBD43F4AAB9468 // INDEX 4228 -mpfam407 [Cuttler Fleisch] +mpfam407 [Cuttler-Fleisch] // HASH_VALUE 270820890CB37B74 // INDEX 4229 -mpfam408 [Ocyx Fleisch] +mpfam408 [Ocyx-Fleisch] // HASH_VALUE A057AF7723532862 // INDEX 4230 -mpfam409 [Jugula Fleisch] +mpfam409 [Jugula-Fleisch] // HASH_VALUE 285A2446A303C883 // INDEX 4231 -mpfam410 [Horncher Fleisch] +mpfam410 [Horncher-Fleisch] // HASH_VALUE 28F8A43625D7E3B5 // INDEX 4232 -mpfam411 [Tyrancha Fleisch] +mpfam411 [Tyrancha-Fleisch] // HASH_VALUE 29C67B7514968B9C // INDEX 4233 -mpfam412 [Yetin Fleisch] +mpfam412 [Yetin-Fleisch] // HASH_VALUE 9F74C4851BA0C4A3 // INDEX 4234 -mpfam413 [Timari Schädel] +mpfam413 [Timari-Schädel] // HASH_VALUE 27369070DF01BC7F // INDEX 4235 -mpfam414 [Raspal Schädel] +mpfam414 [Raspal-Schädel] // HASH_VALUE 9FB668501B416C6F // INDEX 4236 -mpfam415 [Bawaab Schädel] +mpfam415 [Bawaab-Schädel] // HASH_VALUE 27F42467DF601891 // INDEX 4237 -mpfam416 [Frippo Schädel] +mpfam416 [Frippo-Schädel] // HASH_VALUE 2194C87EDCB0FC9B // INDEX 4238 -mpfam417 [Rendor Schädel] +mpfam417 [Rendor-Schädel] // HASH_VALUE 11D8744B29F69B93 // INDEX 4239 -mpfam418 [Gnoof Schädel] +mpfam418 [Gnoof-Schädel] // HASH_VALUE A554F4519E90DC71 // INDEX 4240 -mpfam419 [Bolobi Schädel] +mpfam419 [Bolobi-Schädel] // HASH_VALUE 25F4B872DEE0B880 // INDEX 4241 -mpfam420 [Shalah Schädel] +mpfam420 [Shalah-Schädel] // HASH_VALUE 2DC8644AE4F3F890 // INDEX 4242 -mpfam421 [Ploderos Schädel] +mpfam421 [Ploderos-Schädel] // HASH_VALUE 1F74F47A5BA0DC84 // INDEX 4243 -mpfam422 [Wombai Schädel] +mpfam422 [Wombai-Schädel] // HASH_VALUE 2687906DD6588C5B // INDEX 4244 -mpfam423 [Madakam Schädel] +mpfam423 [Madakam-Schädel] // HASH_VALUE 9F1424671BF0F48E // INDEX 4245 -mpfam425 [Gubani Schädel] +mpfam425 [Gubani-Schädel] // HASH_VALUE 3128E476DBFAC06C // INDEX 4246 -mpfam427 [Cuttler Schädel] +mpfam427 [Cuttler-Schädel] // HASH_VALUE 6E07604627436C54 // INDEX 4247 -mpfam428 [Ocyx Schädel] +mpfam428 [Ocyx-Schädel] // HASH_VALUE A9B4046B2040B48D // INDEX 4248 -mpfam429 [Jugula Schädel] +mpfam429 [Jugula-Schädel] // HASH_VALUE 2DD99845E603D87C // INDEX 4249 -mpfam430 [Horncher Schädel] +mpfam430 [Horncher-Schädel] // HASH_VALUE A8898C51E2F4A896 // INDEX 4250 -mpfam431 [Tyrancha Schädel] +mpfam431 [Tyrancha-Schädel] // HASH_VALUE 15A93862E9B7AF92 // INDEX 4251 -mpfam432 [Yetin Schädel] +mpfam432 [Yetin-Schädel] // HASH_VALUE 59A4AC8691D0ACA4 // INDEX 4252 -mpfam433 [Timari Blut] +mpfam433 [Timari-Blut] // HASH_VALUE E16678715531A480 // INDEX 4253 -mpfam434 [Raspal Blut] +mpfam434 [Raspal-Blut] // HASH_VALUE 59E6505191715470 // INDEX 4254 -mpfam435 [Bawaab Blut] +mpfam435 [Bawaab-Blut] // HASH_VALUE E1240C6855900092 // INDEX 4255 -mpfam436 [Frippo Blut] +mpfam436 [Frippo-Blut] // HASH_VALUE DBC4B07F52E0E49C // INDEX 4256 -mpfam437 [Rendor Blut] +mpfam437 [Rendor-Blut] // HASH_VALUE 8F683C452A847F85 // INDEX 4257 -mpfam438 [Gnoof Blut] +mpfam438 [Gnoof-Blut] // HASH_VALUE 5F84DC5214C0C472 // INDEX 4258 -mpfam439 [Bolobi Blut] +mpfam439 [Bolobi-Blut] // HASH_VALUE DF24A0735410A081 // INDEX 4259 -mpfam440 [Shalah Blut] +mpfam440 [Shalah-Blut] // HASH_VALUE A908084BA0F3D893 // INDEX 4260 -mpfam441 [Ploderos Blut] +mpfam441 [Ploderos-Blut] // HASH_VALUE D9A4DC7BD1D0C485 // INDEX 4261 -mpfam442 [Wombai Blut] +mpfam442 [Wombai-Blut] // HASH_VALUE E626745F54684853 // INDEX 4262 -mpfam443 [Madakam Blut] +mpfam443 [Madakam-Blut] // HASH_VALUE CE384831EA144784 // INDEX 4263 -mpfam444 [Arana Blut] +mpfam444 [Arana-Blut] // HASH_VALUE 59440C689120DC8F // INDEX 4264 -mpfam445 [Gubani Blut] +mpfam445 [Gubani-Blut] // HASH_VALUE 5DC6646E93617C92 // INDEX 4265 -mpfam446 [Javing Blut] +mpfam446 [Javing-Blut] // HASH_VALUE F1C7C868590A7C64 // INDEX 4266 -mpfam447 [Cuttler Blut] +mpfam447 [Cuttler-Blut] // HASH_VALUE EA47E44A61530857 // INDEX 4267 -mpfam448 [Ocyx Blut] +mpfam448 [Ocyx-Blut] // HASH_VALUE 63E4EC6C96709C8E // INDEX 4268 -mpfam449 [Jugula Blut] +mpfam449 [Jugula-Blut] // HASH_VALUE A9193C46A203B87F // INDEX 4269 -mpfam450 [Horncher Blut] +mpfam450 [Horncher-Blut] // HASH_VALUE 24C930529EF48899 // INDEX 4270 -mpfam451 [Tyrancha Blut] +mpfam451 [Tyrancha-Blut] // HASH_VALUE 9339005CEA459384 // INDEX 4271 -mpfam452 [Yetin Blut] +mpfam452 [Yetin-Blut] // HASH_VALUE 0EA9603F28848F8E // INDEX 4272 -mpfam453 [Gnoof Haar] +mpfam453 [Gnoof-Haar] // HASH_VALUE A4B5C447DBF1AC67 // INDEX 4273 -mpfam454 [Bolobi Haar] +mpfam454 [Bolobi-Haar] // HASH_VALUE 245588681B418876 // INDEX 4274 -mpfam455 [Shalah Haar] +mpfam455 [Shalah-Haar] // HASH_VALUE 1ED5C4709801AC7A // INDEX 4275 -mpfam456 [Wombai Haar] +mpfam456 [Wombai-Haar] // HASH_VALUE 9E75F45D5851C484 // INDEX 4276 -mpfam457 [Gubani Haar] +mpfam457 [Gubani-Haar] // HASH_VALUE 127A2456E845A38D // INDEX 4277 -mpfam458 [Yetin Haar] +mpfam458 [Yetin-Haar] // HASH_VALUE EE35D3621A14CF76 // INDEX 4278 -mpfam459 [Arana Moos] +mpfam459 [Arana-Moos] // HASH_VALUE AFD6C46C95BA7C67 // INDEX 4279 -mpfam460 [Clopper Fleisch] +mpfam460 [Clopper-Fleisch] // HASH_VALUE CEF86C2D2C555791 // INDEX 4280 -mpfam461 [Goari Fleisch] +mpfam461 [Goari-Fleisch] // HASH_VALUE E3673C9B0E43E759 // INDEX 4281 -mpfam462 [Yber Knochen] +mpfam462 [Yber-Knochen] // HASH_VALUE 9F14387D1788E3C1 // INDEX 4282 -mpfam463 [Vorax Leder] +mpfam463 [Vorax-Leder] // HASH_VALUE 67968F7E163757AE // INDEX 4283 -mpfam464 [Vorax Knochen] +mpfam464 [Vorax-Knochen] // HASH_VALUE 64D65F8293775FAE // INDEX 4284 -mpfam465 [Vorax Reißzahn] +mpfam465 [Vorax-Reißzahn] // HASH_VALUE 27382C934B835374 // INDEX 4285 -mpfam467 [Ocyx Kralle] +mpfam467 [Ocyx-Kralle] // HASH_VALUE A8D49354D3E4677B // INDEX 4286 -mpfam468 [Najab Kralle] +mpfam468 [Najab-Kralle] // HASH_VALUE 2B9597681AB59372 // INDEX 4287 -mpfam469 [Arana Holz] +mpfam469 [Arana-Holz] // HASH_VALUE 6E965C3727D2AC30 // INDEX 4288 -mpfam470 [Cray Panzer] +mpfam470 [Cray-Panzer] // HASH_VALUE 53F83C5803883C76 // INDEX 4289 -mpfam471 [Madakam Haut] +mpfam471 [Madakam-Haut] // HASH_VALUE A26764654D023FA4 // INDEX 4290 -mpfam472 [Jubla Knospe] +mpfam472 [Jubla-Knospe] // HASH_VALUE 6124F04FA043A098 // INDEX 4291 -mpfam473 [Stinga Knospe] +mpfam473 [Stinga-Knospe] // HASH_VALUE 254B642FA37A584E // INDEX 4292 -mpfam474 [Psykopla Knospe] +mpfam474 [Psykopla-Knospe] // HASH_VALUE 9CB40464D9564FAF // INDEX 4293 -mpfam475 [Slaveni Knospe] +mpfam475 [Slaveni-Knospe] // HASH_VALUE 9794F44ED9B537AB // INDEX 4294 -mpfam476 [Cratcha Knospe] +mpfam476 [Cratcha-Knospe] // HASH_VALUE 9E84E053DFE394A2 // INDEX 4295 -mpfam477 [Shooki Knospe] +mpfam477 [Shooki-Knospe] // HASH_VALUE 2794C4635FB0047D // INDEX 4296 -mpfam479 [Kinrey Panzer] +mpfam479 [Kinrey-Panzer] // HASH_VALUE E5B4D46F1DD01489 // INDEX 4297 -mpfam480 [Kinrey Stachel] +mpfam480 [Kinrey-Stachel] // HASH_VALUE E7E9A883D7E0ABAC // INDEX 4298 -mpfam481 [Kinrey Unterkiefer] +mpfam481 [Kinrey-Unterkiefer] // HASH_VALUE A9F9808499C1EFB1 // INDEX 4299 -mpfam482 [Kinrey Sehne] +mpfam482 [Kinrey-Sehne] // HASH_VALUE A49693955D133457 // INDEX 4300 -mpfam483 [Kinrey Säure] +mpfam483 [Kinrey-Säure] // HASH_VALUE A966B073D2B8A45E // INDEX 4301 -mpfam485 [Kidinak Panzer] +mpfam485 [Kidinak-Panzer] // HASH_VALUE 29A6CC75D379A459 // INDEX 4302 -mpfam486 [Kidinak Stachel] +mpfam486 [Kidinak-Stachel] // HASH_VALUE E6585430C2F81CAE // INDEX 4303 -mpfam487 [Kidinak Unterkiefer] +mpfam487 [Kidinak-Unterkiefer] // HASH_VALUE D7D854588548347B // INDEX 4304 -mpfam488 [Kidinak Schwanz] +mpfam488 [Kidinak-Schwanz] // HASH_VALUE A7C7C06B57F98478 // INDEX 4305 -mpfam490 [Kizarak Panzer] +mpfam490 [Kizarak-Panzer] // HASH_VALUE 2707DC6D58BA8473 // INDEX 4306 -mpfam491 [Kizarak Stachel] +mpfam491 [Kizarak-Stachel] // HASH_VALUE E21A5430C2F81CB6 // INDEX 4307 -mpfam492 [Kizarak Unterkiefer] +mpfam492 [Kizarak-Unterkiefer] // HASH_VALUE 2AF9A857845280A5 // INDEX 4308 -mpfam493 [Kizarak Bauch] +mpfam493 [Kizarak-Bauch] // HASH_VALUE 92CA745B42D95482 // INDEX 4309 -mpfam494 [Kizarak Seide] +mpfam494 [Kizarak-Seide] // HASH_VALUE 511A64540129447B // INDEX 4310 -mpfam495 [Kizarak Blatt] +mpfam495 [Kizarak-Blatt] // HASH_VALUE 8D1A40446BD5AF8F // INDEX 4311 -mpfam496 [Kipee Stachel] +mpfam496 [Kipee-Stachel] // HASH_VALUE 1D577F809EC2305B // INDEX 4312 -mpfam497 [Adriel Rinde] +mpfam497 [Adriel-Rinde] // HASH_VALUE DFA748640F5243A2 // INDEX 4313 -mpfam498 [Arana Auge] +mpfam498 [Arana-Auge] // HASH_VALUE AAA47F599724B36C // INDEX 4314 -mpfam499 [Arana Nagel] +mpfam499 [Arana-Nagel] // HASH_VALUE 6BC7EB4F29B6A26F // INDEX 4315 -mpfam500 [Arana Becken] +mpfam500 [Arana-Becken] // HASH_VALUE CEA8A431EC35639B // INDEX 4316 -mpfam501 [Arana Zahn] +mpfam501 [Arana-Zahn] // HASH_VALUE 60582404645C5480 // INDEX 4317 -mpfam502 [Arma Auge] +mpfam502 [Arma-Auge] // HASH_VALUE 9FF72C8310030760 // INDEX 4318 -mpfam503 [Arma Haut] +mpfam503 [Arma-Haut] // HASH_VALUE 59D5887419E77460 // INDEX 4319 -mpfam504 [Arma Becken] +mpfam504 [Arma-Becken] // HASH_VALUE E9277844E4E24042 // INDEX 4320 -mpfam505 [Arma Zahn] +mpfam505 [Arma-Zahn] // HASH_VALUE 5A34B83C99B32893 // INDEX 4321 -mpfam506 [Bawaab Auge] +mpfam506 [Bawaab-Auge] // HASH_VALUE 1228887126F4AC9B // INDEX 4322 -mpfam507 [Bawaab Becken] +mpfam507 [Bawaab-Becken] // HASH_VALUE DF3750549CC25473 // INDEX 4323 -mpfam508 [Bawaab Zahn] +mpfam508 [Bawaab-Zahn] // HASH_VALUE 5FB640658F825BA5 // INDEX 4324 -mpfam509 [Bodoc Auge] +mpfam509 [Bodoc-Auge] // HASH_VALUE EB27D35369E69674 // INDEX 4325 -mpfam510 [Bodoc Becken] +mpfam510 [Bodoc-Becken] // HASH_VALUE 4EF89C35AB556F9A // INDEX 4326 -mpfam511 [Bodoc Zahn] +mpfam511 [Bodoc-Zahn] // HASH_VALUE 60830C3D6112B489 // INDEX 4327 -mpfam512 [Bolobi Auge] +mpfam512 [Bolobi-Auge] // HASH_VALUE EB89A08721425C29 // INDEX 4328 -mpfam513 [Bolobi Leder] +mpfam513 [Bolobi-Leder] // HASH_VALUE 1D969F786032405A // INDEX 4329 -mpfam514 [Bolobi Nagel] +mpfam514 [Bolobi-Nagel] // HASH_VALUE 18E7C47F26E40091 // INDEX 4330 -mpfam515 [Bolobi Becken] +mpfam515 [Bolobi-Becken] // HASH_VALUE E5D5DC551F11C475 // INDEX 4331 -mpfam516 [Bolobi Zahn] +mpfam516 [Bolobi-Zahn] // HASH_VALUE 58F6D8661C458FBC // INDEX 4332 -mpfam517 [Capryni Auge] +mpfam517 [Capryni-Auge] // HASH_VALUE DB3A705247C9A488 // INDEX 4333 -mpfam518 [Capryni Haut] +mpfam518 [Capryni-Haut] // HASH_VALUE 5B3A484DC7C97C83 // INDEX 4334 -mpfam519 [Capryni Nagel] +mpfam519 [Capryni-Nagel] // HASH_VALUE 6B17C87D9A39E071 // INDEX 4335 -mpfam520 [Capryni Zahn] +mpfam520 [Capryni-Zahn] // HASH_VALUE 6AB86C20C2DA3CB2 // INDEX 4336 -mpfam521 [Clopper Unterkiefer] +mpfam521 [Clopper-Unterkiefer] // HASH_VALUE 6B48A024D95ABCB7 // INDEX 4337 -mpfam522 [Clopper Sekret] +mpfam522 [Clopper-Sekret] // HASH_VALUE 6E16E074963BB066 // INDEX 4338 -mpfam523 [Clopper Stachel] +mpfam523 [Clopper-Stachel] // HASH_VALUE 5BA97C4A47DA6077 // INDEX 4339 -mpfam524 [Clopper Schwanz] +mpfam524 [Clopper-Schwanz] // HASH_VALUE 1E79F0360979C856 // INDEX 4340 -mpfam525 [Cratcha Moos] +mpfam525 [Cratcha-Moos] // HASH_VALUE 22E838874B93F76C // INDEX 4341 -mpfam526 [Cray Kralle] +mpfam526 [Cray-Kralle] // HASH_VALUE 6D44838CDED5B854 // INDEX 4342 -mpfam527 [Cray Unterkiefer] +mpfam527 [Cray-Unterkiefer] // HASH_VALUE 2755E88A2BC75C37 // INDEX 4343 -mpfam528 [Cray Sekret] +mpfam528 [Cray-Sekret] // HASH_VALUE 22372C79CFF43B6C // INDEX 4344 -mpfam529 [Cray Schwanz] +mpfam529 [Cray-Schwanz] // HASH_VALUE 1FCBF0350AABB05E // INDEX 4345 -mpfam530 [Cuttler Kralle] +mpfam530 [Cuttler-Kralle] // HASH_VALUE EA7AF41E4A1A54B2 // INDEX 4346 -mpfam531 [Cuttler Sehne] +mpfam531 [Cuttler-Sehne] // HASH_VALUE DD4BEC45C82BAC6E // INDEX 4347 -mpfam532 [Cuttler Haut] +mpfam532 [Cuttler-Haut] // HASH_VALUE 2147DC688DD49FA8 // INDEX 4348 -mpfam533 [Dante Sap] +mpfam533 [Dante-Sap] // HASH_VALUE AD16A432A682743B // INDEX 4349 -mpfam534 [Dung Harz] +mpfam534 [Dung-Harz] // HASH_VALUE E23714698C1373AA // INDEX 4350 -mpfam535 [Enola Sap] +mpfam535 [Enola-Sap] // HASH_VALUE 6293304FE403DC98 // INDEX 4351 -mpfam536 [Frippo Auge] +mpfam536 [Frippo-Auge] // HASH_VALUE AD3AB0882352803B // INDEX 4352 -mpfam537 [Frippo Leder] +mpfam537 [Frippo-Leder] // HASH_VALUE E047AF7FA5834C6B // INDEX 4353 -mpfam538 [Frippo Nagel] +mpfam538 [Frippo-Nagel] // HASH_VALUE 1A570884E6F62C9C // INDEX 4354 -mpfam539 [Frippo Becken] +mpfam539 [Frippo-Becken] // HASH_VALUE 67750C6B60E10095 // INDEX 4355 -mpfam540 [Frippo Zahn] +mpfam540 [Frippo-Zahn] // HASH_VALUE AD36A434A6A2743D // INDEX 4356 -mpfam541 [Fung Harz] +mpfam541 [Fung-Harz] // HASH_VALUE 57985C89E5949B70 // INDEX 4357 -mpfam542 [Gingo Sehne] +mpfam542 [Gingo-Sehne] // HASH_VALUE 22A6506A50B293B2 // INDEX 4358 -mpfam543 [Gnoof Auge] +mpfam543 [Gnoof-Auge] // HASH_VALUE EB359F695805AF85 // INDEX 4359 -mpfam544 [Gnoof Haut] +mpfam544 [Gnoof-Haut] // HASH_VALUE E9E46F64D6B4A785 // INDEX 4360 -mpfam545 [Gnoof Nagel] +mpfam545 [Gnoof-Nagel] // HASH_VALUE EB87CB606996927F // INDEX 4361 -mpfam546 [Gnoof Becken] +mpfam546 [Gnoof-Becken] // HASH_VALUE 2C67AB69EDB67288 // INDEX 4362 -mpfam547 [Gnoof Rüssel] +mpfam547 [Gnoof-Rüssel] // HASH_VALUE 9508A07FE8445769 // INDEX 4363 -mpfam548 [Goari Unterkiefer] +mpfam548 [Goari-Unterkiefer] // HASH_VALUE 6DDAA08BDDE54361 // INDEX 4364 -mpfam549 [Goari Sekret] +mpfam549 [Goari-Sekret] // HASH_VALUE CF698C31ED667399 // INDEX 4365 -mpfam550 [Goari Stachel] +mpfam550 [Goari-Stachel] // HASH_VALUE EA65736DD765B77A // INDEX 4366 -mpfam551 [Goari Schwanz] +mpfam551 [Goari-Schwanz] // HASH_VALUE 5F33244E60829490 // INDEX 4367 -mpfam552 [Gubani Auge] +mpfam552 [Gubani-Auge] // HASH_VALUE 5D277F7D2642346C // INDEX 4368 -mpfam553 [Gubani Haut] +mpfam553 [Gubani-Haut] // HASH_VALUE DBB67F73E5A2186C // INDEX 4369 -mpfam554 [Gubani Nagel] +mpfam554 [Gubani-Nagel] // HASH_VALUE 17970C76A305DC93 // INDEX 4370 -mpfam555 [Gubani Becken] +mpfam555 [Gubani-Becken] // HASH_VALUE 2A07933FA89864A3 // INDEX 4371 -mpfam556 [Horncher Unterkiefer] +mpfam556 [Horncher-Unterkiefer] // HASH_VALUE 22038C3C69FA7CAC // INDEX 4372 -mpfam557 [Horncher Sekret] +mpfam557 [Horncher-Sekret] // HASH_VALUE E88A684EE603C47E // INDEX 4373 -mpfam558 [Horncher Stachel] +mpfam558 [Horncher-Stachel] // HASH_VALUE 29474C3FAAC7FBB3 // INDEX 4374 -mpfam559 [Horncher Schwanz] +mpfam559 [Horncher-Schwanz] // HASH_VALUE A8E45F4DD6E4936C // INDEX 4375 -mpfam560 [Igara Schnabel] +mpfam560 [Igara-Schnabel] // HASH_VALUE A9B46F5A58E47B79 // INDEX 4376 -mpfam561 [Igara Knochen] +mpfam561 [Igara-Knochen] // HASH_VALUE 1AE8807E27E49364 // INDEX 4377 -mpfam562 [Igara Sehne] +mpfam562 [Igara-Sehne] // HASH_VALUE EA75836657F59F74 // INDEX 4378 -mpfam563 [Igara Haut] +mpfam563 [Igara-Haut] // HASH_VALUE A8055F6FD7358379 // INDEX 4379 -mpfam564 [Igara Flügel] +mpfam564 [Igara-Flügel] // HASH_VALUE 6C5824246C58F480 // INDEX 4380 -mpfam565 [Irin Öl] +mpfam565 [Irin-Öl] // HASH_VALUE A307407A4952C368 // INDEX 4381 -mpfam566 [Izam Schnabel] +mpfam566 [Izam-Schnabel] // HASH_VALUE A3A75C8B0EF2C368 // INDEX 4382 -mpfam567 [Izam Knochen] +mpfam567 [Izam-Knochen] // HASH_VALUE EEC4EF859D15905C // INDEX 4383 -mpfam568 [Izam Sehne] +mpfam568 [Izam-Sehne] // HASH_VALUE A3376C8B10C30768 // INDEX 4384 -mpfam569 [Izam Haut] +mpfam569 [Izam-Haut] // HASH_VALUE A3C76487D2E31768 // INDEX 4385 -mpfam570 [Izam Flügel] +mpfam570 [Izam-Flügel] // HASH_VALUE 1E272F8CDB922C50 // INDEX 4386 -mpfam571 [Javing Schnabel] +mpfam571 [Javing-Schnabel] // HASH_VALUE A0C763961E32145D // INDEX 4387 -mpfam572 [Javing Knochen] +mpfam572 [Javing-Knochen] // HASH_VALUE A9E9807B57B1A7A8 // INDEX 4388 -mpfam573 [Javing Sehne] +mpfam573 [Javing-Sehne] // HASH_VALUE E9EA50991D631C3D // INDEX 4389 -mpfam574 [Javing Leder] +mpfam574 [Javing-Leder] // HASH_VALUE 2FD5DF6B5BB4D380 // INDEX 4390 -mpfam575 [Jubla Moos] +mpfam575 [Jubla-Moos] // HASH_VALUE 22B6E381A3F3C06F // INDEX 4391 -mpfam576 [Jugula Knochen] +mpfam576 [Jugula-Knochen] // HASH_VALUE 62E7AF7EA0C30C62 // INDEX 4392 -mpfam577 [Jugula Kralle] +mpfam577 [Jugula-Kralle] // HASH_VALUE 2CB9948F5CB18FA0 // INDEX 4393 -mpfam578 [Jugula Sehne] +mpfam578 [Jugula-Sehne] // HASH_VALUE 6BD9D08A2572543B // INDEX 4394 -mpfam579 [Jugula Leder] +mpfam579 [Jugula-Leder] // HASH_VALUE 5168448423943F72 // INDEX 4395 -mpfam580 [Kiban Unterkiefer] +mpfam580 [Kiban-Unterkiefer] // HASH_VALUE 6AD98C895D254366 // INDEX 4396 -mpfam581 [Kiban Sekret] +mpfam581 [Kiban-Sekret] // HASH_VALUE 8CC93036AD957798 // INDEX 4397 -mpfam582 [Kiban Stachel] +mpfam582 [Kiban-Stachel] // HASH_VALUE 25B55B7612055B84 // INDEX 4398 -mpfam583 [Kiban Schwanz] +mpfam583 [Kiban-Schwanz] // HASH_VALUE E768B42C17A9A4AE // INDEX 4399 -mpfam584 [Kidinak Sekret] +mpfam584 [Kidinak-Sekret] // HASH_VALUE E2985430C2DA3CA2 // INDEX 4400 -mpfam585 [Kincher Unterkiefer] +mpfam585 [Kincher-Unterkiefer] // HASH_VALUE E708B42CD95A9CA2 // INDEX 4401 -mpfam586 [Kincher Sekret] +mpfam586 [Kincher-Sekret] // HASH_VALUE D389645203CA546F // INDEX 4402 -mpfam587 [Kincher Schwanz] +mpfam587 [Kincher-Schwanz] // HASH_VALUE EA1A6460DEF014B2 // INDEX 4403 -mpfam588 [Kinrey Sekret] +mpfam588 [Kinrey-Sekret] // HASH_VALUE 2447939322F3A057 // INDEX 4404 -mpfam589 [Kinrey Schwanz] +mpfam589 [Kinrey-Schwanz] // HASH_VALUE 52B9549224753F69 // INDEX 4405 -mpfam590 [Kipee Unterkiefer] +mpfam590 [Kipee-Unterkiefer] // HASH_VALUE 29FAC4895D25435D // INDEX 4406 -mpfam591 [Kipee Sekret] +mpfam591 [Kipee-Sekret] // HASH_VALUE 26965B6D13566B89 // INDEX 4407 -mpfam592 [Kipee Schwanz] +mpfam592 [Kipee-Schwanz] // HASH_VALUE E4DA5430C2B8B4B8 // INDEX 4408 -mpfam593 [Kipesta Unterkiefer] +mpfam593 [Kipesta-Unterkiefer] // HASH_VALUE A698E0719B2AE06A // INDEX 4409 -mpfam594 [Kipesta Stachel] +mpfam594 [Kipesta-Stachel] // HASH_VALUE D5BAA05D84C9CC85 // INDEX 4410 -mpfam595 [Kipesta Schwanz] +mpfam595 [Kipesta-Schwanz] // HASH_VALUE 930AC0604219EC88 // INDEX 4411 -mpfam596 [Kipesta Flügel] +mpfam596 [Kipesta-Flügel] // HASH_VALUE 9F3AA83C4A49B054 // INDEX 4412 -mpfam597 [Kipucka Kralle] +mpfam597 [Kipucka-Kralle] // HASH_VALUE ECDA5430C2B86C98 // INDEX 4413 -mpfam598 [Kipucka Unterkiefer] +mpfam598 [Kipucka-Unterkiefer] // HASH_VALUE ED29B42C95A9A0AF // INDEX 4414 -mpfam599 [Kipucka Sekret] +mpfam599 [Kipucka-Sekret] // HASH_VALUE E81A5430C2B8B4B8 // INDEX 4415 -mpfam600 [Kirosta Unterkiefer] +mpfam600 [Kirosta-Unterkiefer] // HASH_VALUE EB49B42C953A04B9 // INDEX 4416 -mpfam601 [Kirosta Sekret] +mpfam601 [Kirosta-Sekret] // HASH_VALUE A878C4791A690871 // INDEX 4417 -mpfam602 [Kirosta Panzer] +mpfam602 [Kirosta-Panzer] // HASH_VALUE D9FAA05D06E9CC85 // INDEX 4418 -mpfam603 [Kirosta Schwanz] +mpfam603 [Kirosta-Schwanz] // HASH_VALUE 6AC9B42C17A9B4AA // INDEX 4419 -mpfam604 [Kizarak Sekret] +mpfam604 [Kizarak-Sekret] // HASH_VALUE D39A545C83A93483 // INDEX 4420 -mpfam605 [Kizarak Schwanz] +mpfam605 [Kizarak-Schwanz] // HASH_VALUE 2579D883D7E08FA1 // INDEX 4421 -mpfam606 [Kizoar Unterkiefer] +mpfam606 [Kizoar-Unterkiefer] // HASH_VALUE A516A85F9E71CC75 // INDEX 4422 -mpfam607 [Kizoar Panzer] +mpfam607 [Kizoar-Panzer] // HASH_VALUE 6336B86B5C91DC81 // INDEX 4423 -mpfam608 [Kizoar Stachel] +mpfam608 [Kizoar-Stachel] // HASH_VALUE A3A89BA02242AC58 // INDEX 4424 -mpfam609 [Kizoar Flügel] +mpfam609 [Kizoar-Flügel] // HASH_VALUE 6542643DE542F08C // INDEX 4425 -mpfam610 [Koorin Öl] +mpfam610 [Koorin-Öl] // HASH_VALUE 2333484A66F2F497 // INDEX 4426 -mpfam611 [Lumper Auge] +mpfam611 [Lumper-Auge] // HASH_VALUE DB28E88AA8755095 // INDEX 4427 -mpfam612 [Lumper Becken] +mpfam612 [Lumper-Becken] // HASH_VALUE 5454A45798142BB2 // INDEX 4428 -mpfam613 [Madakam Auge] +mpfam613 [Madakam-Auge] // HASH_VALUE 69B9305FC6D39899 // INDEX 4429 -mpfam614 [Madakam Leder] +mpfam614 [Madakam-Leder] // HASH_VALUE D3F8145383881471 // INDEX 4430 -mpfam615 [Madakam Nagel] +mpfam615 [Madakam-Nagel] // HASH_VALUE 2958786D11F5578E // INDEX 4431 -mpfam616 [Madakam Becken] +mpfam616 [Madakam-Becken] // HASH_VALUE 2826907654989057 // INDEX 4432 -mpfam617 [Madakam Zahn] +mpfam617 [Madakam-Zahn] // HASH_VALUE 1E04D4729A9597AF // INDEX 4433 -mpfam618 [Mektoub Auge] +mpfam618 [Mektoub-Auge] // HASH_VALUE 5D2884574898C479 // INDEX 4434 -mpfam619 [Mektoub Nagel] +mpfam619 [Mektoub-Nagel] // HASH_VALUE F308D474D7B5B787 // INDEX 4435 -mpfam620 [Mektoub Becken] +mpfam620 [Mektoub-Becken] // HASH_VALUE DFA4C8471E23809A // INDEX 4436 -mpfam621 [Messab Auge] +mpfam621 [Messab-Auge] // HASH_VALUE 5EA8838BA4422C73 // INDEX 4437 -mpfam623 [Mitexi Rinde] +mpfam623 [Mitexi-Rinde] // HASH_VALUE EDB68C3BE6227845 // INDEX 4438 -mpfam624 [Moon Harz] +mpfam624 [Moon-Harz] // HASH_VALUE E494576093D41F88 // INDEX 4439 -mpfam625 [Najab Knochen] +mpfam625 [Najab-Knochen] // HASH_VALUE E1D4276410142788 // INDEX 4440 -mpfam626 [Najab Reißzahn] +mpfam626 [Najab-Reißzahn] // HASH_VALUE D688248C62C47B6A // INDEX 4441 -mpfam627 [Najab Sehne] +mpfam627 [Najab-Sehne] // HASH_VALUE 25556B6C92E54383 // INDEX 4442 -mpfam628 [Najab Haut] +mpfam628 [Najab-Haut] // HASH_VALUE 6173677495675441 // INDEX 4443 -mpfam629 [Nita Holzgewebe] +mpfam629 [Nita-Holzgewebe] // HASH_VALUE 6207388D8CC2FB5D // INDEX 4444 -mpfam630 [Oath Rinde] +mpfam630 [Oath-Rinde] // HASH_VALUE 273720858C035F74 // INDEX 4445 -mpfam632 [Ocyx Reißzahn] +mpfam632 [Ocyx-Reißzahn] // HASH_VALUE EBA59396A3A4D474 // INDEX 4446 -mpfam633 [Ocyx Sehne] +mpfam633 [Ocyx-Sehne] // HASH_VALUE 6AD7204323136C54 // INDEX 4447 -mpfam634 [Ocyx Panzer] +mpfam634 [Ocyx-Panzer] // HASH_VALUE 677940252A79583A // INDEX 4448 -mpfam635 [Ploderos Auge] +mpfam635 [Ploderos-Auge] // HASH_VALUE 69D84C3D2D471BB5 // INDEX 4449 -mpfam636 [Ploderos Haut] +mpfam636 [Ploderos-Haut] // HASH_VALUE 6938303DABF61BB3 // INDEX 4450 -mpfam637 [Ploderos Nagel] +mpfam637 [Ploderos-Nagel] // HASH_VALUE 2A58442C1369F8B6 // INDEX 4451 -mpfam638 [Ploderos Becken] +mpfam638 [Ploderos-Becken] // HASH_VALUE AA89504E25F3E898 // INDEX 4452 -mpfam639 [Ploderos Zahn] +mpfam639 [Ploderos-Zahn] // HASH_VALUE AD998C4EADC72FBC // INDEX 4453 -mpfam640 [Psykopla Moos] +mpfam640 [Psykopla-Moos] // HASH_VALUE DB69748D67D57B7F // INDEX 4454 -mpfam641 [Ragus Sehne] +mpfam641 [Ragus-Sehne] // HASH_VALUE 1EF5E04CE0748C9F // INDEX 4455 -mpfam642 [Raspal Auge] +mpfam642 [Raspal-Auge] // HASH_VALUE A5686B9CDEE4844B // INDEX 4456 -mpfam643 [Raspal Haut] +mpfam643 [Raspal-Haut] // HASH_VALUE 23F76B929D44684B // INDEX 4457 -mpfam644 [Raspal Nagel] +mpfam644 [Raspal-Nagel] // HASH_VALUE D6898890A8F45097 // INDEX 4458 -mpfam645 [Raspal Becken] +mpfam645 [Raspal-Becken] // HASH_VALUE 67B778746082A483 // INDEX 4459 -mpfam646 [Raspal Zahn] +mpfam646 [Raspal-Zahn] // HASH_VALUE 1CA4085A5F0384A8 // INDEX 4460 -mpfam647 [Rendor Auge] +mpfam647 [Rendor-Auge] // HASH_VALUE 23F74B9D6223885D // INDEX 4461 -mpfam648 [Rendor Haut] +mpfam648 [Rendor-Haut] // HASH_VALUE A1864B9321836C5D // INDEX 4462 -mpfam649 [Rendor Nagel] +mpfam649 [Rendor-Nagel] // HASH_VALUE D499D084E81438A0 // INDEX 4463 -mpfam650 [Rendor Becken] +mpfam650 [Rendor-Becken] // HASH_VALUE 6115B0825D31E49F // INDEX 4464 -mpfam651 [Rendor Zahn] +mpfam651 [Rendor-Zahn] // HASH_VALUE C0DA94845C90BC84 // INDEX 4465 -mpfam652 [Scrath Holzgewebe] +mpfam652 [Scrath-Holzgewebe] // HASH_VALUE DFE4EC4DA063888E // INDEX 4466 -mpfam653 [Shalah Auge] +mpfam653 [Shalah-Auge] // HASH_VALUE E3477787A0B32C52 // INDEX 4467 -mpfam654 [Shalah Haut] +mpfam654 [Shalah-Haut] // HASH_VALUE 61D6777D5F131052 // INDEX 4468 -mpfam655 [Shalah Nagel] +mpfam655 [Shalah-Nagel] // HASH_VALUE 9738A48D23643485 // INDEX 4469 -mpfam656 [Shalah Becken] +mpfam656 [Shalah-Becken] // HASH_VALUE 6575A0765F61A084 // INDEX 4470 -mpfam657 [Shalah Zahn] +mpfam657 [Shalah-Zahn] // HASH_VALUE E4B7AB9A23236466 // INDEX 4471 -mpfam658 [Shooki Moos] +mpfam658 [Shooki-Moos] // HASH_VALUE A5D79393E1F44C57 // INDEX 4472 -mpfam659 [Silvio Samen] +mpfam659 [Silvio-Samen] // HASH_VALUE 1EF9D8588979E06A // INDEX 4473 -mpfam660 [Slaveni Moos] +mpfam660 [Slaveni-Moos] // HASH_VALUE A217D78C25132C6E // INDEX 4474 -mpfam661 [Stinga Moos] +mpfam661 [Stinga-Moos] // HASH_VALUE A8034F882306036C // INDEX 4475 -mpfam662 [Tansy Holzgewebe] +mpfam662 [Tansy-Holzgewebe] // HASH_VALUE 5CB4F45F5D4464AC // INDEX 4476 -mpfam663 [Timari Auge] +mpfam663 [Timari-Auge] // HASH_VALUE 1FA74F8BE3734464 // INDEX 4477 -mpfam664 [Timari Nagel] +mpfam664 [Timari-Nagel] // HASH_VALUE 1418EC83668510A2 // INDEX 4478 -mpfam665 [Timari Becken] +mpfam665 [Timari-Becken] // HASH_VALUE A439A8935D52B79F // INDEX 4479 -mpfam666 [Torbak Sehne] +mpfam666 [Torbak-Sehne] // HASH_VALUE 6B983C43A727E3A6 // INDEX 4480 -mpfam667 [Tyrancha Knochen] +mpfam667 [Tyrancha-Knochen] // HASH_VALUE 6BB854432467E3A8 // INDEX 4481 -mpfam668 [Tyrancha Reißzahn] +mpfam668 [Tyrancha-Reißzahn] // HASH_VALUE 2718E74966E88097 // INDEX 4482 -mpfam669 [Tyrancha Sehne] +mpfam669 [Tyrancha-Sehne] // HASH_VALUE 60FA2CE8E8B85CC4 // INDEX 4483 -mpfam670 [Tyrancha Leder] +mpfam670 [Tyrancha-Leder] // HASH_VALUE 28B82FAC1BC39450 // INDEX 4484 -mpfam671 [Varinx Kralle] +mpfam671 [Varinx-Kralle] // HASH_VALUE A9A970875A72EBB9 // INDEX 4485 -mpfam672 [Varinx Sehne] +mpfam672 [Varinx-Sehne] // HASH_VALUE D66A5C9CE5C6B388 // INDEX 4486 -mpfam673 [Vorax Sehne] +mpfam673 [Vorax-Sehne] // HASH_VALUE A857A38A15487BA9 // INDEX 4487 -mpfam674 [Vorax Haut] +mpfam674 [Vorax-Haut] // HASH_VALUE 1DE40C511E63809E // INDEX 4488 -mpfam675 [Wombai Auge] +mpfam675 [Wombai-Auge] // HASH_VALUE D548C08766D42091 // INDEX 4489 -mpfam676 [Wombai Becken] +mpfam676 [Wombai-Becken] // HASH_VALUE 5D94C47F99C0AC89 // INDEX 4490 -mpfam677 [Wombai Wirbel] +mpfam677 [Wombai-Wirbel] // HASH_VALUE 53C7C48E6565548D // INDEX 4491 -mpfam678 [Wombai Rüssel] +mpfam678 [Wombai-Rüssel] // HASH_VALUE 6112477993B7344C // INDEX 4492 -mpfam679 [Yana Holzgewebe] +mpfam679 [Yana-Holzgewebe] // HASH_VALUE E3C7208A49A3E759 // INDEX 4493 -mpfam680 [Yber Schnabel] +mpfam680 [Yber-Schnabel] // HASH_VALUE 29058F9A9E94E460 // INDEX 4494 -mpfam681 [Yber Sehne] +mpfam681 [Yber-Sehne] // HASH_VALUE A497589B10A32B5C // INDEX 4495 -mpfam682 [Yelk Haut] +mpfam682 [Yelk-Haut] // HASH_VALUE E1C57C8BD6087053 // INDEX 4496 -mpfam683 [Yelk Becken] +mpfam683 [Yelk-Becken] // HASH_VALUE E7E6677796E64FA9 // INDEX 4497 -mpfam684 [Yetin Knochen] +mpfam684 [Yetin-Knochen] // HASH_VALUE AB26A36BD6F6979C // INDEX 4498 -mpfam685 [Yetin Kralle] +mpfam685 [Yetin-Kralle] // HASH_VALUE D8E954A165168B81 // INDEX 4499 -mpfam686 [Yetin Sehne] +mpfam686 [Yetin-Sehne] // HASH_VALUE 1F64E88898470FB9 // INDEX 4500 -mpfam687 [Yetin Leder] +mpfam687 [Yetin-Leder] // HASH_VALUE 6C985464645C5480 // INDEX 4501 -mpfam688 [Yubo Auge] +mpfam688 [Yubo-Auge] // HASH_VALUE AAF87C462728D80D // INDEX 4502 -mpfam689 [Yubo Leder] +mpfam689 [Yubo-Leder] // HASH_VALUE 26D8908F4DF2FF66 // INDEX 4503 -mpfam690 [Yubo Nagel] +mpfam690 [Yubo-Nagel] // HASH_VALUE E225CC81DA484863 // INDEX 4504 -mpfam691 [Yubo Becken] +mpfam691 [Yubo-Becken] // HASH_VALUE 2DF8845C28B3844F // INDEX 4505 -mpfam692 [Yubo Zahn] +mpfam692 [Yubo-Zahn] // HASH_VALUE 6CE69BA1E1C4006D // INDEX 4506 -mpfam693 [Zerx Sehne] +mpfam693 [Zerx-Sehne] // HASH_VALUE 30FAFC486A29980E // INDEX 4507 -mpfam694 [Zerx Leder] +mpfam694 [Zerx-Leder] // HASH_VALUE AC45B35DD715A78E // INDEX 4508 -mpfam695 [Kitin Kralle] +mpfam695 [Kitin-Kralle] // HASH_VALUE 58D5B781EC28C883 // INDEX 4509 @@ -18751,75 +18754,75 @@ mpfam697 [Atrium] // HASH_VALUE C4DC3462EE367A72 // INDEX 4511 -mpfam698 [Matis Bestellformular] +mpfam698 [Matis-Bestellformular] // HASH_VALUE C69CF454EE367A72 // INDEX 4512 -mpfam699 [Fyros Bestellformular] +mpfam699 [Fyros-Bestellformular] // HASH_VALUE C09CA47CEE367A5E // INDEX 4513 -mpfam700 [Zoraï Bestellformular] +mpfam700 [Zoraï-Bestellformular] // HASH_VALUE 2D5A74825283F762 // INDEX 4514 -mpfam701 [Tryker Bestellformular] +mpfam701 [Tryker-Bestellformular] // HASH_VALUE 127B5C8E20709F99 // INDEX 4515 -mpfam702 [Matis Militär Paket] +mpfam702 [Matis Truppen-Paket] // HASH_VALUE 935BD48526009F99 // INDEX 4516 -mpfam703 [Fyros Militär Paket] +mpfam703 [Fyros Truppen-Paket] // HASH_VALUE 10BA7499A3419F8F // INDEX 4517 -mpfam704 [Zoraï Militär Paket] +mpfam704 [Zoraï Truppen-Paket] // HASH_VALUE 2A19E47FCAC3AF99 // INDEX 4518 -mpfam705 [Tryker Militär Paket] +mpfam705 [Tryker Truppen-Paket] // HASH_VALUE 9A3924A3A2D35B50 // INDEX 4519 -mpfam706 [Königliches Symbol der Matis] +mpfam706 [Königliches Matis-Symbol] // HASH_VALUE 2B38A798A5E4AB8A // INDEX 4520 -mpfam707 [Königliches Symbol der Fyros ] +mpfam707 [Imperales Fyros-Symbol] // HASH_VALUE 677857586645DB59 // INDEX 4521 -mpfam708 [Zoraï Cho Token] +mpfam708 [Dynastisches Zoraï Symbol] // HASH_VALUE AAE8BF99DAE2AFA3 // INDEX 4522 -mpfam709 [Symbol der Tryker Föderation ] +mpfam709 [Tryker Föderations-Symbol] // HASH_VALUE 20D8F41C749C1440 // INDEX 4523 -mpfam710 [Goo Teil] +mpfam710 [Goo-Teil] // HASH_VALUE 9976E4651B948F70 // INDEX 4524 -mpfam711 [Goo Knötchen] +mpfam711 [Goo-Knötchen] // HASH_VALUE 2C44639BDEB5B06A // INDEX 4525 -mpfam712 [Nano Bauer] +mpfam712 [Nano-Baustein] // HASH_VALUE D4B0AC68EA988C02 // INDEX 4526 -mpfam713 [Kami Verdienstabzeichen] +mpfam713 [Kami-Verdienstabzeichen] // HASH_VALUE D7A6705D1AB697B0 // INDEX 4527 -mpfam714 [Karavan Verdienstabzeichen] +mpfam714 [Karavan-Verdienstabzeichen] // HASH_VALUE 92D31B96ABEB704B // INDEX 4528 -mpfam715 [Sap Machtkristall] +mpfam715 [Sap-Machtkristall] // HASH_VALUE A3070C5ECDD2AFB4 // INDEX 4529 @@ -18827,43 +18830,43 @@ mpfam716 [Kitin-Ei] // HASH_VALUE A3548C5F1D90C493 // INDEX 4530 -mpfam717 [Aelius Panzer] +mpfam717 [Aelius-Panzer] // HASH_VALUE E324C45C1D60FC90 // INDEX 4531 -mpfam718 [Aelius Harz] +mpfam718 [Aelius-Harz] // HASH_VALUE 61D8778F66A26C69 // INDEX 4532 -mpfam719 [Aelius Holz] +mpfam719 [Aelius-Holz] // HASH_VALUE DFC4A4791710AC9C // INDEX 4533 -mpfam720 [Olkern Faser] +mpfam720 [Olkern-Faser] // HASH_VALUE E104E8751C50F098 // INDEX 4534 -mpfam721 [Olkern Harz] +mpfam721 [Olkern-Harz] // HASH_VALUE 1FB78F89E3621C70 // INDEX 4535 -mpfam722 [Olkern Rinde] +mpfam722 [Olkern-Rinde] // HASH_VALUE 9F749C5E1BA09091 // INDEX 4536 -mpfam723 [Almati Panzer] +mpfam723 [Almati-Panzer] // HASH_VALUE DF44D45B1B70C88E // INDEX 4537 -mpfam724 [Almati Harz] +mpfam724 [Almati-Harz] // HASH_VALUE C038DC605C90C484 // INDEX 4538 -mpfam725 [Almati Hartholz] +mpfam725 [Almati-Hartholz] // HASH_VALUE DDD87386E822486F // INDEX 4539 -mpfam726 [Almati Holz] +mpfam726 [Almati-Holz] // HASH_VALUE EADA64586EB8A428 // INDEX 4540 @@ -18875,291 +18878,291 @@ mpfam728 [Sternenförmiger Bernstein] // HASH_VALUE D738546990748C76 // INDEX 4542 -mpfam729 [Veredelter Aelius Panzer] +mpfam729 [Veredelter Aelius-Panzer] // HASH_VALUE 57088C6650748C76 // INDEX 4543 -mpfam730 [Veredeltes Aelius Harz] +mpfam730 [Veredeltes Aelius-Harz] // HASH_VALUE 98747867D574ACAD // INDEX 4544 -mpfam731 [Vereldetes Aelius Holz] +mpfam731 [Vereldetes Aelius-Holz] // HASH_VALUE 57B864784C649481 // INDEX 4545 -mpfam732 [Veredelte Olkern Faser] +mpfam732 [Veredelte Olkern-Faser] // HASH_VALUE 56F8A8744F649481 // INDEX 4546 -mpfam733 [Veredeltes Olkern Harz] +mpfam733 [Veredeltes Olkern-Harz] // HASH_VALUE 1AD4A067CF3494B1 // INDEX 4547 -mpfam734 [Veredelte Olkern Rinde] +mpfam734 [Veredelte Olkern-Rinde] // HASH_VALUE D54870698E848075 // INDEX 4548 -mpfam735 [Veredelter Almati Panzer] +mpfam735 [Veredelter Almati-Panzer] // HASH_VALUE 5518A8664E848075 // INDEX 4549 -mpfam736 [Veredeltes Almati Harz] +mpfam736 [Veredeltes Almati-Harz] // HASH_VALUE 14E898543ED48C9E // INDEX 4550 -mpfam737 [Veredeltes Almati Hartholz] +mpfam737 [Veredeltes Almati-Hartholz] // HASH_VALUE 9684946795F488B3 // INDEX 4551 -mpfam738 [Veredeltes Almati Holz] +mpfam738 [veredeltes Almati-Holz] // HASH_VALUE A9B9DC504768FC70 // INDEX 4552 -mpfam739 [Veredeltes kristallisiertes Sap] +mpfam739 [veredeltes kristallisiertes Sap] // HASH_VALUE E738D44F020AB06C // INDEX 4553 -mpfam740 [Veredelter sternenförmiger Bernstein] +mpfam740 [veredelter sternenförmiger Bernstein] // HASH_VALUE 2848681E7CD8B4A0 // INDEX 4554 -mpfam741 [Modifizierte Tekorn-Brombeere] +mpfam741 [modifizierte Tekorn-Brombeere] // HASH_VALUE 8EB8403764263B83 // INDEX 4555 -mpfam742 [Modifizierte Maga-Liane] +mpfam742 [modifizierte Maga-Liane] // HASH_VALUE 29090C1D4C22A099 // INDEX 4556 -mpfam743 [Modifizierte Armilo-Flechte] +mpfam743 [modifizierte Armilo-Flechte] // HASH_VALUE E84AB8FC0F78A4A3 // INDEX 4557 -mpfam744 [Modifizierte Greslin-Gestade] +mpfam744 [modifizierte Greslin-Gestade] // HASH_VALUE 4F74B8A22528649E // INDEX 4558 -mpfam745 [Gereinigte Tekorn-Brombeere] +mpfam745 [gereinigte Tekorn-Brombeere] // HASH_VALUE 1469405666F83484 // INDEX 4559 -mpfam746 [Gereinigte Maga-Liane] +mpfam746 [gereinigte Maga-Liane] // HASH_VALUE 11C6689EE3289479 // INDEX 4560 -mpfam747 [Gereinigte Armilo-Flechte] +mpfam747 [gereinigte Armilo-Flechte] // HASH_VALUE C758A09EE619E472 // INDEX 4561 -mpfam748 [Gereinigte Greslin-Gestade] +mpfam748 [gereinigte Greslin-Gestade] // HASH_VALUE E52860481EF4483C // INDEX 4562 -mpfam749 [Modifizierter Vedic-Saft] +mpfam749 [modifizierter Vedic-Saft] // HASH_VALUE 0E591C45E1447486 // INDEX 4563 -mpfam750 [Modifizierte Cheng-Wurzel] +mpfam750 [modifizierte Cheng-Wurzel] // HASH_VALUE 664AC8F3A61A3035 // INDEX 4564 -mpfam751 [Modifizierter Rubbarn-Gummi] +mpfam751 [modifizierter Rubbarn-Gummi] // HASH_VALUE 29E834214D63ACA2 // INDEX 4565 -mpfam752 [Modifizierte Egiros-Pollen] +mpfam752 [modifizierte Egiros-Pollen] // HASH_VALUE 4E96D47763E88497 // INDEX 4566 -mpfam753 [Gereinigter Vedice-Saft] +mpfam753 [gereinigter Vedice-Saft] // HASH_VALUE 97F88F9DA9D89C7B // INDEX 4567 -mpfam754 [Gereinigte Cheng-Wurzel] +mpfam754 [gereinigte Cheng-Wurzel] // HASH_VALUE 03E9FC9A2148DC68 // INDEX 4568 -mpfam755 [Gereinigter Rubbarn-Gummi] +mpfam755 [gereinigter Rubbarn-Gummi] // HASH_VALUE 12C678A125288C83 // INDEX 4569 -mpfam756 [Gereinigte Egiros-Pollen] +mpfam756 [gereinigte Egiros-Pollen] // HASH_VALUE 708ADF59E705B4AF // INDEX 4570 -mpfam757 [UnbenannteZone jugula Haut] +mpfam757 [verseuchte Jugula-Haut] // HASH_VALUE E71AE39D59FAC472 // INDEX 4571 -mpfam758 [UnbenannteZone gingo Pelz] +mpfam758 [verseuchter Gingo-Pelz] // HASH_VALUE 699AABAFD61AC79D // INDEX 4572 -mpfam759 [UnbenannteZone igara Haut] +mpfam759 [verseuchte Igara-Haut] // HASH_VALUE 30578BA266CA0CCD // INDEX 4573 -mpfam760 [UnbenannteZone psykopla Moos] +mpfam760 [verseuchtes Psykopla-Moos] // HASH_VALUE EE2BDF59EC5568BA // INDEX 4574 -mpfam761 [UnbenannteZone torbak Haut] +mpfam761 [verseuchte Torbak-Haut] // HASH_VALUE 2E7ADF592D95A8B3 // INDEX 4575 -mpfam762 [UnbenannteZone kinrey Seide] +mpfam762 [verseuchte Kinrey-Seide] // HASH_VALUE AD7A869A56F9C0AB // INDEX 4576 -mpfam763 [UnbenannteZone cratcha Blatt] +mpfam763 [verseuchtes Cratcha-Blatt] // HASH_VALUE 2E7ADF596B559CBF // INDEX 4577 -mpfam764 [UnbenannteZone kizoar Seide] +mpfam764 [verseuchte Kizoar-Seide] // HASH_VALUE 46B83C9CF0D85AAE // INDEX 4578 -mpfam765 [Große Mugul Haut] +mpfam765 [große Mugul-Haut] // HASH_VALUE 6A6B869A59FA98BC // INDEX 4579 -mpfam766 [UnbenannteZone kipesta Sack] +mpfam766 [verseuchter Kipesta-Sack] // HASH_VALUE EA69E39956DBE466 // INDEX 4580 -mpfam767 [UnbenannteZone jubla Keimling] +mpfam767 [verseuchter Jubla-Knospe] // HASH_VALUE 2949529C262B9CC7 // INDEX 4581 -mpfam768 [UnbenannteZone kincher Panzer] +mpfam768 [verseuchter Kincher-Panzer] // HASH_VALUE 6E6A8697245934BA // INDEX 4582 -mpfam769 [UnbenannteZone kipucka Fleisch] +mpfam769 [verseuchtes Kipucka-Fleisch] // HASH_VALUE 703B86A1A2F9F0B2 // INDEX 4583 -mpfam770 [UnbenannteZone kidinak Stachel] +mpfam770 [verseuchter Kidinak-Stachel] // HASH_VALUE 6BDAABA94459E8AF // INDEX 4584 -mpfam771 [UnbenannteZone goari Greifer] +mpfam771 [verseuchter Goari-Greifer] // HASH_VALUE EBDBD7595AA99CCF // INDEX 4585 -mpfam772 [UnbenannteZone varinx Zahn] +mpfam772 [verseuchter Varinx-Zahn] // HASH_VALUE 703B8697244920BE // INDEX 4586 -mpfam773 [UnbenannteZone kipucka Stachel] +mpfam773 [verseuchter Kipucka-Stachel] // HASH_VALUE 6C92E4BC68184AC4 // INDEX 4587 -mpfam774 [Kitin Boss Stachel] +mpfam774 [Kitin-Anführer-Stachel] // HASH_VALUE 6EFBCF9722F5CCB2 // INDEX 4588 -mpfam775 [UnbenannteZone yelk Panzer] +mpfam775 [verseuchter Yelk-Panzer] // HASH_VALUE 6B3AB3592D95A8AC // INDEX 4589 -mpfam776 [UnbenannteZone kinrey Kopf] +mpfam776 [verseuchter Kinrey-Kopf] // HASH_VALUE 6BBA86AB954974B8 // INDEX 4590 -mpfam777 [UnbenannteZone kincher Kopf] +mpfam777 [verseuchter Kincher-Kopf] // HASH_VALUE 685B93A15AEBE876 // INDEX 4591 -mpfam778 [UnbenannteZone vorax Klaue] +mpfam778 [verseuchte Vorax-Klaue] // HASH_VALUE 256AC7A6A7963869 // INDEX 4592 -mpfam779 [UnbenannteZone yber Knochen] +mpfam779 [verseuchter Yber-Knochen] // HASH_VALUE 29E9529E651AC0B9 // INDEX 4593 -mpfam780 [UnbenannteZone kidinak Kiefer] +mpfam780 [verseuchter Kidinak-Kiefer] // HASH_VALUE 6BEC935996EAACC9 // INDEX 4594 -mpfam781 [UnbenannteZone timari crest] +mpfam781 [verseuchte Timari-Krone] // HASH_VALUE 68EA83B0557A83A6 // INDEX 4595 -mpfam782 [UnbenannteZone najab tail] +mpfam782 [verseuchter Najab-Schwanz] // HASH_VALUE 2E4BCFAD9976B4A9 // INDEX 4596 -mpfam783 [UnbenannteZone ragus Zahn] +mpfam783 [verseuchter Ragus-Zahn] // HASH_VALUE 29E952942A6BB0C5 // INDEX 4597 -mpfam784 [UnbenannteZone kipesta Kiefer] +mpfam784 [verseuchter Kipesta-Kiefer] // HASH_VALUE EAC9529C26ACD0C8 // INDEX 4598 -mpfam785 [UnbenannteZone clopper Panzer] +mpfam785 [verseuchter Clopper-Panzer] // HASH_VALUE 6C7BD359D8D9B0D1 // INDEX 4599 -mpfam786 [UnbenannteZone kizoar Stachel] +mpfam786 [verseuchter Kizoar-Stachel] // HASH_VALUE 29F9939C2897FC65 // INDEX 4600 -mpfam787 [UnbenannteZone cray Kopf] +mpfam787 [verseuchter Cray-Kopf] // HASH_VALUE E84ACBA1E9B6ABAE // INDEX 4601 -mpfam789 [UnbenannteZone dark resin] +mpfam789 [verseuchtes dunkles Harz] // HASH_VALUE 304AEF59AAC57CA7 // INDEX 4602 -mpfam790 [UnbenannteZone bright wood] +mpfam790 [verseuchtes helles Holz] // HASH_VALUE 281B839E568BD79D // INDEX 4603 -mpfam791 [UnbenannteZone heavy bark] +mpfam791 [verseuchte schwere Rinde] // HASH_VALUE 2E4AB3AC188680AD // INDEX 4604 -mpfam792 [UnbenannteZone light shell] +mpfam792 [verseuchte leichte Muschel] // HASH_VALUE 2C9BC79A1AF56CB5 // INDEX 4605 -mpfam793 [UnbenannteZone thick amber] +mpfam793 [verseuchter dicker Bernstein] // HASH_VALUE E509CBA62F86C876 // INDEX 4606 -mpfam794 [UnbenannteZone dark wood] +mpfam794 [verseuchtes dunkles Holz] // HASH_VALUE 2ED79BA5D4D9D8C5 // INDEX 4607 -mpfam795 [UnbenannteZone unstable oil] +mpfam795 [verseuchtes instabiles Öl] // HASH_VALUE ED8BC79AD98584B8 // INDEX 4608 -mpfam796 [UnbenannteZone solid amber] +mpfam796 [verseuchter solider Bernstein] // HASH_VALUE AA75A3B56CE5C71D // INDEX 4609 -mpfam797 [mp Kitin Rohstofflager 01] +mpfam797 [Kitin-Rohstofflager 01] // HASH_VALUE AA75A3B56CF5C71D // INDEX 4610 -mpfam798 [mp Kitin Rohstofflager 02] +mpfam798 [Kitin-Rohstofflager 02] // HASH_VALUE AA75A3B56C05C71D // INDEX 4611 -mpfam799 [mp Kitin Rohstofflager 03] +mpfam799 [Kitin-Rohstofflager 03] // HASH_VALUE AA75A3B56C15C71D // INDEX 4612 -mpfam800 [mp Kitin Rohstofflager 04] +mpfam800 [Kitin-Rohstofflager 04] // HASH_VALUE AA75A3B56C25C71D // INDEX 4613 -mpfam801 [mp Kitin Rohstofflager 05] +mpfam801 [Kitin-Rohstofflager 05] // HASH_VALUE C6EA4BA6B0A5D860 // INDEX 4614 @@ -19215,7 +19218,7 @@ mpfam814 [Grobe Haut der Königin] // HASH_VALUE DBB5789F9C74AC9C // INDEX 4627 -mpfam815 [Kristall des Diebes] +mpfam815 [Kristall des Marodeurs] // HASH_VALUE EE30BC8EC2B8CCBA // INDEX 4628 @@ -19227,11 +19230,11 @@ mpfam817 [Kristall des Sirgio] // HASH_VALUE EB35EC50D9D887A8 // INDEX 4630 -mpfam818 [Kristall des Pen] +mpfam818 [Kristall des Pei] // HASH_VALUE 996ABCA5556957BF // INDEX 4631 -mpfam819 [Kristall der Diebe] +mpfam819 [Kristall der Marodeure] // HASH_VALUE 62C7348CE738649D // INDEX 4632 @@ -19247,7 +19250,7 @@ mpgroup2 [Bernstein] // HASH_VALUE 6418F4386418F438 // INDEX 4635 -mpgroup3 [Gewebe] +mpgroup3 [Holzgewebe] // HASH_VALUE 689C1408689C1408 // INDEX 4636 @@ -19263,7 +19266,7 @@ mpgroup12 [Samen] // HASH_VALUE A9D7349362D75090 // INDEX 4639 -mpgroup16 [Schale] +mpgroup16 [Muschel] // HASH_VALUE 2A48648E23983C9C // INDEX 4640 @@ -19291,7 +19294,7 @@ mpgroup25 [Schädel] // HASH_VALUE 2B19E86E278AF49F // INDEX 4646 -mpgroup26 [Konstruktion] +mpgroup26 [Struktur] // HASH_VALUE 6058240C649C54D0 // INDEX 4647 @@ -19327,7 +19330,7 @@ mpgroup34 [Öl] // HASH_VALUE 697A0079E58B008E // INDEX 4655 -mpgroup35 [Konservierungsstoffe] +mpgroup35 [Konservierungsstoff] // HASH_VALUE 6879BC89A116108C // INDEX 4656 @@ -19351,11 +19354,11 @@ mpgroup40 [Außenposten] // HASH_VALUE 2F48C366D8E8DC9B // INDEX 4661 -mpgroup41 [UnbenannteZone Moor] +mpgroup41 [Verseuchtes Moor] // HASH_VALUE ABE9B0A7EA68D4B4 // INDEX 4662 -mpgroup42 [TODO : kitiniere] +mpgroup42 [Kitin-Nest] // HASH_VALUE 533988971905B457 // INDEX 4663 @@ -19391,7 +19394,7 @@ uittPlayerFocusFormat [Fokus: %v/%m] // HASH_VALUE 36739468C991E31C // INDEX 4671 -uittBulkFormat [@{6F6F}Größe@{FFFF}: %v/%m] +uittBulkFormat [@{6F6F}Volumen@{FFFF}: %v / %m] // HASH_VALUE B344E44CEDADC0E9 // INDEX 4672 @@ -19403,7 +19406,7 @@ uiBotChatSkillPointCost [Fertigkeitspunkte: ] // HASH_VALUE 993AC4412A485333 // INDEX 4674 -uiBotChatSkillPointCostNotReceived [Fertigkeitspunktkosten nicht erhalten.] +uiBotChatSkillPointCostNotReceived [Fertigkeitskosten nicht erhalten.] // HASH_VALUE 6BC7037FE6E85069 // INDEX 4675 @@ -19415,7 +19418,7 @@ uittForageContent [Quelleninhalt] // HASH_VALUE 23A79F965FF43058 // INDEX 4677 -uittForageLife [Quellenleben] +uittForageLife [Quellenhaltbarkeit] // HASH_VALUE E295EB9AA4E7D8A0 // INDEX 4678 @@ -19423,7 +19426,7 @@ uittForageDanger [Abbaurisiko] // HASH_VALUE E1496390D590684D // INDEX 4679 -uittForageKami [Kami-Toleranz in diesem Gebiet] +uittForageKami [Kami-Toleranz dieses Gebiets] // HASH_VALUE 5EC0486AA3B48067 // INDEX 4680 @@ -19431,11 +19434,11 @@ uittQualityAbbrev [von der Qualität] // HASH_VALUE D71A56541260A0AA // INDEX 4681 -uiForageToolMissing [Du hast kein Rohstoffgewinnungswerkzeug.] +uiForageToolMissing [Du hast keine Erntehacke ausgerüstet.] // HASH_VALUE BD75E475F0864D50 // INDEX 4682 -uiExtractionPhraseMissing [Du hast keine Abbau-Aktion gespeichert.] +uiExtractionPhraseMissing [Du hast keine Rohstoffernte-Aktion gespeichert.] // HASH_VALUE 28897B5DEC77428A // INDEX 4683 @@ -19455,29 +19458,29 @@ uiAnimalsTitle [TIERE] // HASH_VALUE BAC7944ECF89AE06 // INDEX 4687 -uittSatiety [Rot: HP / Orange: Taschenplatz / Weiß: Sättigung. Wenn dieser Balken auf Null fällt, hat das Tier Hunger.] +uittSatiety [Rot: Lebenskraft / Orange: Taschenplatz / Weiß: Sättigung. Wenn der Sättigungs-Balken auf Null fällt, hat das Tier Hunger und wird langsam.] // HASH_VALUE 2EE6A09C38655ED5 // INDEX 4688 uittAliveLandscape [Das Tier ist am Leben und außerhalb des Stalls.\n - @{6F6F}Linksklick, @{FFFF}um auszuwählen.\n - @{6F6F}Rechtsklick, @{FFFF}um eine Anweisung zu geben.] + @{6F6F}Linksklick, @{FFFF}um es auszuwählen.\n + @{6F6F}Rechtsklick, @{FFFF}um ihm eine Anweisung zu geben.] // HASH_VALUE 3CB6917B84CD2195 // INDEX 4689 uittStable [Das Tier ist im Stall.\n - @{6F6F}Linksklick, @{FFFF}um auszuwählen.\n - @{6F6F}Rechtsklick, @{FFFF}um eine Anweisung zu geben.] + @{6F6F}Linksklick, @{FFFF}um es auszuwählen.\n + @{6F6F}Rechtsklick, @{FFFF}um ihm eine Anweisung zu geben.] // HASH_VALUE AF075E2295E176F7 // INDEX 4690 uittDead [Das Tier ist tot.\n - @{6F6F}Linksklick, @{FFFF}um auszuwählen.\n - @{6F6F}Rechtsklick, @{FFFF}um eine Anweisung zu geben.] + @{6F6F}Linksklick, @{FFFF}um es auszuwählen.\n + @{6F6F}Rechtsklick, @{FFFF}um ihm eine Anweisung zu geben.] // HASH_VALUE 309E23DB19F9A563 // INDEX 4691 -uittDeathTimer [Restzeit, ehe der Körper dieses Tieres verschwindet.] +uittDeathTimer [Restzeit, ehe der Körper dieses toten Tieres verschwindet.] // HASH_VALUE A9604559224F1442 // INDEX 4692 @@ -19749,7 +19752,7 @@ uiCharSel_Quit [BEENDEN] // HASH_VALUE 116EBD6A7F5B6F17 // INDEX 4759 -uiCharSel_DelChar [Willst Du diesen Charakter wirklich löschen?] +uiCharSel_DelChar [Willst du diesen Charakter wirklich löschen?] // HASH_VALUE 4411542844915438 // INDEX 4760 @@ -19809,7 +19812,7 @@ uiCP_Result [ERGEBNIS] // HASH_VALUE 64CA8C8CC4D27CB0 // INDEX 4774 -uiCP_BP1 [Spezialis. ] +uiCP_BP1 [Spezialisiere] // HASH_VALUE CA52A40E2CF4D41C // INDEX 4775 @@ -19833,15 +19836,15 @@ uiCP_Abort [ABBRECHEN] // HASH_VALUE 3DE2F2EB07B1B443 // INDEX 4780 -uiCP_Abort2 [Du verlierst durch den Abbruch sämtliche Einstellungen...] +uiCP_Abort2 [Du verlierst durch einen Abbruch sämtliche Einstellungen...] // HASH_VALUE 5490F40C4454E424 // INDEX 4781 -uiCP_Abort_yes [WEITER] +uiCP_Abort_yes [BEENDEN] // HASH_VALUE 0350481983A0741B // INDEX 4782 -uiCP_Abort_no [ABBRUCH] +uiCP_Abort_no [ZURÜCK] // HASH_VALUE FA00BC3D8F20DEF3 // INDEX 4783 @@ -19849,7 +19852,7 @@ uiCP_Title [TITEL: ] // HASH_VALUE FC408C1683DF9014 // INDEX 4784 -uiCP_Pack [AKTIONSPAKET INHALT:] +uiCP_Pack [AKTIONSPAKET: ] // HASH_VALUE C881A032CB318823 // INDEX 4785 @@ -19857,7 +19860,7 @@ uiCP_Refugee [FLÜCHTLING] // HASH_VALUE 4C71D03587DFB4F6 // INDEX 4786 -uiCP_Fight1 [KAMPFANFÄNGER] +uiCP_Fight1 [KAMPFNEULING] // HASH_VALUE 8A4FC41DCBB1B8FE // INDEX 4787 @@ -19865,7 +19868,7 @@ uiCP_Fight2 [KAMPFLEHRLING] // HASH_VALUE 44C1D825099ED312 // INDEX 4788 -uiCP_Magic1 [MAGIEANFÄNGER] +uiCP_Magic1 [MAGIENEULING] // HASH_VALUE 077FAC1BC3D2171B // INDEX 4789 @@ -19873,15 +19876,15 @@ uiCP_Magic2 [MAGIELEHRLING] // HASH_VALUE 0801C8344A3FB4F6 // INDEX 4790 -uiCP_Forage1 [ROHSTOFFGEWINNUNGSANFÄNGER] +uiCP_Forage1 [ROHSTOFFERNTEANFÄNGER] // HASH_VALUE 8A4FC41D4AA1E404 // INDEX 4791 -uiCP_Forage2 [ROHSTOFFGEWINNUNGSLEHRLING] +uiCP_Forage2 [ROHSTOFFERNTELEHRLING] // HASH_VALUE 4C51B83C4570A8F6 // INDEX 4792 -uiCP_Craft1 [HANDWERKSANFÄNGER] +uiCP_Craft1 [HANDWERKSNEULING] // HASH_VALUE C94FC41D4A229407 // INDEX 4793 @@ -19905,69 +19908,69 @@ uiCP_JOB4 [HANDWERK] // HASH_VALUE 49697FD959E95C22 // INDEX 4798 -uiCP_Res_F [- Spezialisierung Kampf] +uiCP_Res_F [Spezialisierung Kampf] // HASH_VALUE 25201B0C55244C2F // INDEX 4799 -uiCP_Res_M [- Spezialisierung Magie] +uiCP_Res_M [Spezialisierung Magie] // HASH_VALUE 8A698BD959F87421 // INDEX 4800 -uiCP_Res_G [- Spezialisierung Rohstoffernte] +uiCP_Res_G [Spezialisierung Rohstoffernte] // HASH_VALUE 9965FB1A6640C019 // INDEX 4801 -uiCP_Res_C [- Spezialisierung Handwerk] +uiCP_Res_C [Spezialisierung Handwerk] // HASH_VALUE 2E07FBEF9EC2E674 // INDEX 4802 -uiCP_Job_F1 [1- Dolch\n - 2- Präzisionsangriff 1\n +uiCP_Job_F1 [1- Basis-Dolch Q10\n + 2- Fertigkeit Präzisionsangriff 01\n ] // HASH_VALUE 40E73E605EC2B540 // INDEX 4803 uiCP_Job_M1 [1- Magieverstärker Q10\n - 2- Säureschaden 1] + 2- Fertigkeit Säureschaden-Zauber 01] // HASH_VALUE 5A7A17E4438FD999 // INDEX 4804 -uiCP_Job_G1 [1- Abbauwerkzeug\n - 2- Basisabbau] +uiCP_Job_G1 [1- Rohstoffernte-Hacke\n + 2- Fertigkeit Basis-Ernteaktion Q10] // HASH_VALUE 6BF722C24BAB80F0 // INDEX 4805 uiCP_Job_C1 [1- Erschaffungswerkzeug für Rüstungen\n - 2- 50 Stück Standardrohstoff der Qualität 10\n - 3- Aktion um eine Rassenrüstung zu erschaffen\n - 4- Bauplan Stiefel] + 2- 50 Stück Allzweckrohstoff Q10\n + 3- Fertigkeit Herstellung rassentypischer Rüstungen Q10\n + 4- Handwerksplan für Basis-Stiefel] // HASH_VALUE AE336402F917F9B6 // INDEX 4806 -uiCP_Job_F2 [1- Dolch\n - 2- Präzisionsangriff 1\n - 3- Erhöhter Schaden 1\n +uiCP_Job_F2 [1- Basis-Dolch Q10\n + 2- Fertigkeit Präzisionsangriff 01\n + 3- Fertigkeit Schadenserhöhung 01\n ] // HASH_VALUE ED1E72C4E8AFEB0A // INDEX 4807 uiCP_Job_M2 [1- Magieverstärker Q10\n - 2- Säureschaden 1\n - 3- Angst 1] + 2- Fertigkeit Säureschaden-Zauber 01\n + 3- Fertigkeit Angst-Zauber 01] // HASH_VALUE A99CAAD8499430C9 // INDEX 4808 uiCP_Job_G2 [1- Abbauwerkzeug\n - 2- Basisabbau\n - 3- Basisrohstoffsuche] + 2- Fertigkeit Basis-Ernteaktion Q10\n + 3- Fertigkeit Basis-Rohstoffquellensuche] // HASH_VALUE 886490FD3F0A7D2F // INDEX 4809 -uiCP_Job_C2 [1- Erschaffungswerkzeug für Rüstungen\n - 2- 100 Stück Standardrohstoff der Qualität 10\n - 3- Aktion um eine Rassenrüstung zu erschaffen\n - 4- Bauplan Stiefel\n - 5- Bauplan Handschuhe] +uiCP_Job_C2 [1- Rüstungs-Herstellungswerkzeug\n + 2- 100 Stück Allzweckrohstoff Q10\n + 3- Fertigkeit Herstellung rassentypischer Rüstungen Q10\n + 4- Handwerksplan für Basis-Stiefel\n + 5- Handwerksplan für Basis-Handschuhe] // HASH_VALUE 4630296EDB43AACF // INDEX 4810 @@ -20002,15 +20005,15 @@ uiLocation_Back [SPÄTER SPIELEN] // HASH_VALUE E0F51B6868143202 // INDEX 4817 -uiCP_Location_Back [Bist Du sicher, dass Du mit diesem Charakter erst später spielen möchtest?] +uiCP_Location_Back [Bist du sicher, dass du mit diesem Charakter erst später spielen möchtest?] // HASH_VALUE 0E6261DD98092B20 // INDEX 4818 -uiQConfirmFreeAnimal [Willst Du dieses Tier wirklich freilassen?] +uiQConfirmFreeAnimal [Willst du dieses Tier wirklich freilassen?] // HASH_VALUE C52A2E4C49773F24 // INDEX 4819 -uiQConfirmFreeAllAnimal [Willst Du wirklich alle deine Tiere freilassen?] +uiQConfirmFreeAllAnimal [Willst du wirklich alle deine Tiere freilassen?] // HASH_VALUE 5126B04C19D4C86B // INDEX 4820 @@ -20038,7 +20041,7 @@ uiInfos_Close [Schließen] // HASH_VALUE 220A13D6592A98DD // INDEX 4826 -uiCharSel_Infos1 [Charakter-Auswahlinfo - Nicht leer] +uiCharSel_Infos1 [Charakter-Auswahlinfo - nicht leer] // HASH_VALUE 05035E0A6EEA905B // INDEX 4827 @@ -20075,326 +20078,326 @@ uiWebOnQuit [IN DIE ÜBERSICHT EINTRAGEN] // HASH_VALUE E1C9F277D15BECEE // INDEX 4835 uiAppear_Infos_Fyros [DIE FYROS-ZIVILISATION\n - \n - Wahrheit, Ehre, Justiz und Disziplin sind die Werte, an die jeder echte Fyros glaubt! Wir sind die Meister der Wüste und halten uns an einen strengen Verhaltenskodex. Wir sind die Krieger des Wissens und geloben, die Wahrheitssuche nach dem Drachen des Mythos nie aufzugeben. Weder das Gesetz Jenas noch die Verbote der Karavan werden uns davon abhalten, ins Innere von Atys hinabzusteigen, wo wir sowohl auf mysteriöse Reliquien als auch auf Böses gestoßen sind.\n - \n - Wir sind die Beschützer der fruchtbarsten Regionen, denn wir sind die Einzigen, die den Mut aufbringen, unsere Städte in der verdörrten Wüste zu errichten, wo der Drache am ehesten wieder aufzutauchen vermag.\n - \n - Aus diesen lebensfeindlichen Dünen heraus werden wir unser neues Imperium aufbauen, ihm Stärke verleihen und mit den Kamis eine Allianz bilden, deren Magie wir voller Stolz beherrschen. Wir streben auch danach, unser Wissen über die Herstellung feuerfesten Werkzeugs sowie brandsicherer Rüstungen auszubauen, um unsere Wahrheitssuche zu unterstützen.\n - \n - Homin, wenn Du leidenschaftlich und ehrlich bist, komm zu uns. Ein Imperium braucht dich!!\n - \n - Falls du Fragen hast...\n - \n - \n - Wer bin ich ?\n - Du bist ein junger Homin-Flüchtling. Mutig hast Du die lange und gefährliche Reise auf Dich genommen, um aus den Alten Landen zu diesen Neuen Landen zu kommen, in denen wir damit begonnen haben, unser neues Imperium aufzubauen. Nachdem Du ausreichend trainiert hast , kannst du Deine Fähigkeiten in den Dienst unseres Imperators stellen und mithelfen, unsere Zivilisation wieder aufzubauen\n - \n - Wer sind meine Vorfahren ?\n - Deine Vorfahren hatten mithilfe von Feuer und Schwertern das mächtigste Imperium der Geschichte aufgebaut. Verehre sie, solange Du lebst! Doch die Früchte ihrer Arbeit wurden von den großen Invasionen der Kitins zerstört. Deine Eltern und Deine Großeltern hatten Glück, diesem Massaker entkommen zu sein. Sie überlebten viele Jahre in der Wildnis von Atys, wo Deine Eltern Dich aufgezogen haben. Sie bewiesen großen Mut, indem sie Dich dazu gebracht haben, den langen Weg auf Dich zu nehmen, um bei den Deinen zu sein. Jetzt, da Du uns gefunden hast, musst Du ihrem Mut gerecht werden. Es kostete uns 40 Jahre Blut und Schweiß, den Grundstein für unser neues Imperium zu legen und jetzt ist es an Deiner Generation, es aufzubauen. \n - \n - Wer ist unser Anführer ?\n - Dexton ist unser gesetzmäßiger Imperator, ihm sollst Du Treue geloben. Seine Anordnungen können nur in höheren Sphären angefochten werden. Bis Du einen höheren Rang erklommen hast, darfst Du sie nicht in Frage stellen. Das darfst Du nie vergessen, junger Homin! Du wirst die imperialen Order erfolgreich durchführen oder aber dabei sterben, es sei denn, Du beschmutzt freiwillig den Namen deiner Vorfahren. Dexton hat sich die besten Berater heraus gesucht: Abycus Zekops und Kyla Dyntheus gehören zu seinen Senatoren.\n - \n - An was glauben wir ?\n - Wir glauben an die Energie von Atys, die Energie, die jedes Wesen mit Leben und Bewusstsein erfüllt. Laut den Zoraï verkörpern die Kamis diese große Energie, die die Erde erschaffen hat und die sie Ma-duk nennen. Auch wenn wir ihre Lehren nicht blindlings annehmen, sind wir uns über die Jahre nähergekommen, um den Strafen des Karavan zu entgehen, die er uns für den Bergbau und die Erkundung der Unterwelt auferlegt hat. Auch wenn wir den Kamis unseren Glauben nicht schenken, so schulden wir ihnen unsere Loyalität.\n - \n - Was sind unsere Werte ?\n - Dein Leben muss auf den 4 Grundpfeilern beruhen, die unser Imperium zusammen halten:\n - Wahrheit ist der erste Pfeiler.\n - Feige Lügen werden keine Schlacht zu unseren Gunsten entscheiden! Sag Deinen Kameraden nichts als die Wahrheit, sowie sie auch Dir gerade heraus antworten müssen. Scheue Dich allerdings nicht, dem Feind gegenüber Listen anzuwenden. Ein weise durchgeführter Plan ist genau so gefährlich wie eine scharfe Lanze, die gut in der Hand liegt!\n - Ehre ist der zweite Grundpfeiler.\n - Lass Dich in jeder Lebenslage von Deiner Ehre leiten. Gehe nicht auf niedere Gefühle ein, egal wie hoch Dir der etwaige Gewinn scheint. Und denk daran: Ein ehrenvoller Tod ist besser als eine feige Existenz.\n - Disziplin ist der dritte Grundpfeiler.\n - Das Fyros-Imperium besteht dank der Gehorsamkeitskette, die uns mit dem Imperator verbindet; vom jüngsten Novizen bis zum gefeiertsten General. Jeder einzelne von uns hat den höheren Befehlen zu gehorchen. Ein ungehorsamer Fyros reicht aus, um die Verbindung zu brechen und somit das ganze Imperium zu gefährden.\n - Justiz ist der vierte Grundpfeiler.\n - Der Imperator ist unser oberster Anführer. Doch auch er hält sich an die Gesetze, die unsere Vorfahren festgelegt haben. Vom mächtigsten bis zum bescheidensten Fyros, befolgen wir bedingungslos unsere Gesetze. In Wahrheit ist es nicht der Imperiale Anführer, sondern das Imperiale Gesetz, das uns unser Verhalten vorschreibt.\n - \n - \n - Was ist uns verboten?\n - - Lass Dich nie dazu verleiten, dem Karavan einen Gefallen zu tun. Er ist gegen die Kamis und gegen unseren Sinn für die Gerechtigkeit. Für ihn stehen Jenas Gesetze über der sozialen Gerechtigkeit.\n - - Führe nie eine Mission für die Anhänger des Karavan durch.\n - - Führe nie eine Mission für verfeindete Stämme durch. \n - - Verletze nie den Ehrenkodex. \n - \n - \n - Was sind unsere Ziele ?\n - Unser Imperium hat zutiefst unter dem Großen Schwarm gelitten. Unser Sinn für Disziplin hat es uns ermöglicht, besser als die Matis oder die Tryker zu überleben. Der Beweis dafür ist unsere große Hauptstadt Pyr. Jetzt müssen wir :\n - - unsere persönlichen Stärken und Fertigkeiten verbessern \n - - mächtige und gut organisierte Gilden gründen, um Zugkraft zu haben \n - - die Wahrheit über den Drachen aufdecken\n - - gegen den Karavan kämpfen, um eine neue Ordnung über die Verehrung der Kamis herzustellen \n - - das Wissen sammeln, das während des Großen Schwarmes in den Ländern verloren ging, um die Türen zu den Geheimnissen der Vergangenheit zu öffnen .\n - - unser Gebiet festigen und neues Land erobern. \n - \n - Wer sind unsere Freunde ?\n - Seit dem Friedensvertrag von Fairhaven leben wir in Frieden mit den anderen Homin-Zivilisationen. Doch die Vergangenheit hat Spuren der Unsicherheit hinterlassen und unsere Beziehungen hängen von den Völkern ab.\n - Zoraï: Über die Jahre haben die Zoraï wiederholt ihre Loyalität und Freundschaft zu unserem Volk zum Ausdruck gebracht. Außerdem haben wir beide die Kamis ins Herz geschlossen und hegen eine Abneigung gegen die Karavan.\n - Tryker: Wir haben mehrmals versucht, die Tryker in unsere Obhut zu nehmen, doch sie haben sich als zu chaotisch und launisch für eine anhaltende Freundschaft erwiesen. Heute müssen wir uns vor den kleinen, wankelmütigen Homins in Acht nehmen, denn sie sind sich mehr denn je eins mit den Matis in ihrer Verehrung der Karavan-Göttin\n - Matis : Die Matis sind unser natürlicher Feind, dem nicht zu trauen ist. Wir teilen den matisianischen Sinn der Justiz nicht, der auf der Monarchie und den Gesetzen Jenas beruht. Selbst in diesen friedlichen Zeiten müssen wir auf der Hut sein, dass sie sich nicht gegen uns verbünden. \n - Zu den freundlichen Stämmen gehören: Die Unterwasserwurzel-Extrahierer, die Kitin-Jäger, die Feuermagierinnen, die Aufpasser, die Frahar Jäger, die Wasserbrecher, die Ersten Deserteure, die Scharlachroten Söldner, die Brunnengräber und die Heiliges Sap. \n - \n - \n - Wer sind unsere Feinde ?\n - - Die Karavan: Sie sind dagegen, dass wir nach der Wahrheit suchen. Ihnen ist nicht zu trauen. \n - - Die Kitins: Diese gigantischen Insekten haben Tausende von Fyros massakriert und unser großes Imperium in den Alten Landen zerstört.\n - - Der Drache des Mythos: Jahrhunderte lang haben wir nach der Wahrheit über den legendären Drachen gesucht. Es ist unsere Gräberei in den Tiefen von Atys, in denen der Drachen schlummern soll, die die Karavan erzürnt. Wir werden weiter graben, bis wir die Wahrheit aufgedeckt haben.\n - - Zu den feindlichen Stämmen gehören: die Sapsammler, die Kakerlaken, die Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Tutoren und die Alten Dryaden.\n - - Banditen: Aufgepasst, die Länder sind voll von Gesetzlosen, Dieben und Halsaufschneidern.\n - - Raubtiere: In der Tierwelt gibt es zahlreiche Raubtiere. Pass auf, zu einem Stück Homin-Fleisch sagen sie nicht nein!\n - \n - Wie kann ich meinem Volk helfen ?\n - - Wir brauchen Handwerker, Rohstoffabbauer, Magier und Krieger, um unsere Zivilisation zu erhalten und zu festigen.\n - Atys ist ein trügerischer Ort und wir benötigen Krieger, um unser Hoheitsgebiet zu verteidigen und neue Gebiete für neue Niederlassungen zu erobern. \n - - Wir wollen Handwerker, die alltägliche Gegenstände und Waffen herstellen; sowie Ernter, die Rohmaterial fürs Essen und das Handwerk abbauen. \n - Wir brauchen Magier, um erschaffene Gegenstände zu verzaubern, Ernter zu beschützen und Krieger zu heilen, sowie ihnen im Kampf zu helfen.\n - \n - \n - Was kann ich von meinem Volk erwarten ?\n - - Training von unseren erfahrenen Trainern.\n - - Unser Volk wird von Gilden beschützt, die Dir zur Hilfe kommen, wenn Du einer beitrittst. \n - - Je mehr Du für das Wohl unseres Volkes tust, desto reichlicher werden Deine Ehrentaten belohnt werden.\n - \n - \n - Was ist unser neues Land ?\n - Unser Volk ließ sich 2483 erstmals in diesen verwüsteten Gegenden nieder, als sie aus den Tiefen der Urwurzeln aufstiegen. Die Wüste ist die anspruchsvollste Gegend auf dem Planeten, doch diese Herausforderung entspricht dem Mut und den Werten unseres Volkes. Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den weiten Weg aus den alten Ländern auf sich genommen haben – den Weg, den auch Du tapfer genommen hast. \n - \n - Was kann ich von Atys, unserer Welt, erwarten ?\n - Auf Atys gibt es Rohmaterial im Überfluss, junger Homin. Solange Du die Umwelt respektierst, wird sie Dich mit Ernten belohnen. Indem Du Wissen über die Welt erlangst, wirst du lernen, die Wildnis zu bändigen und neue Gebiete zu erobern.] + \n + Wahrheit, Ehre, Justiz und Disziplin sind die Werte, an die jeder echte Fyros glaubt! Wir sind die Meister der Wüste und halten uns an einen strengen Verhaltenskodex. Wir sind die Krieger des Wissens und geloben, die Wahrheitssuche nach dem Drachen des Mythos nie aufzugeben. Weder das Gesetz Jenas noch die Verbote der Karavan werden uns davon abhalten, ins Innere von Atys hinabzusteigen, wo wir sowohl auf mysteriöse Reliquien als auch auf Böses gestoßen sind.\n + \n + Wir sind die Beschützer der fruchtbarsten Regionen, denn wir sind die Einzigen, die den Mut aufbringen, unsere Städte in der verdörrten Wüste zu errichten, wo der Drache am ehesten wieder aufzutauchen vermag.\n + \n + Aus diesen lebensfeindlichen Dünen heraus werden wir unser neues Imperium aufbauen, ihm Stärke verleihen und mit den Kamis eine Allianz bilden, deren Magie wir voller Stolz beherrschen. Wir streben auch danach, unser Wissen über die Herstellung feuerfesten Werkzeugs sowie brandsicherer Rüstungen auszubauen, um unsere Wahrheitssuche zu unterstützen.\n + \n + Homin, wenn Du leidenschaftlich und ehrlich bist, komm zu uns. Ein Imperium braucht dich!!\n + \n + Falls du Fragen hast...\n + \n + \n + Wer bin ich ?\n + Du bist ein junger Homin-Flüchtling. Mutig hast Du die lange und gefährliche Reise auf Dich genommen, um aus den Alten Landen zu diesen Neuen Landen zu kommen, in denen wir damit begonnen haben, unser neues Imperium aufzubauen. Nachdem Du ausreichend trainiert hast , kannst du Deine Fähigkeiten in den Dienst unseres Imperators stellen und mithelfen, unsere Zivilisation wieder aufzubauen\n + \n + Wer sind meine Vorfahren ?\n + Deine Vorfahren hatten mithilfe von Feuer und Schwertern das mächtigste Imperium der Geschichte aufgebaut. Verehre sie, solange Du lebst! Doch die Früchte ihrer Arbeit wurden von den großen Invasionen der Kitins zerstört. Deine Eltern und Deine Großeltern hatten Glück, diesem Massaker entkommen zu sein. Sie überlebten viele Jahre in der Wildnis von Atys, wo Deine Eltern Dich aufgezogen haben. Sie bewiesen großen Mut, indem sie Dich dazu gebracht haben, den langen Weg auf Dich zu nehmen, um bei den Deinen zu sein. Jetzt, da Du uns gefunden hast, musst Du ihrem Mut gerecht werden. Es kostete uns 40 Jahre Blut und Schweiß, den Grundstein für unser neues Imperium zu legen und jetzt ist es an Deiner Generation, es aufzubauen.\n + \n + Wer ist unser Anführer ?\n + Dexton ist unser gesetzmäßiger Imperator, ihm sollst Du Treue geloben. Seine Anordnungen können nur in höheren Sphären angefochten werden. Bis Du einen höheren Rang erklommen hast, darfst Du sie nicht in Frage stellen. Das darfst Du nie vergessen, junger Homin! Du wirst die imperialen Order erfolgreich durchführen oder aber dabei sterben, es sei denn, Du beschmutzt freiwillig den Namen deiner Vorfahren. Dexton hat sich die besten Berater heraus gesucht: Abycus Zekops und Kyla Dyntheus gehören zu seinen Senatoren.\n + \n + An was glauben wir ?\n + Wir glauben an die Energie von Atys, die Energie, die jedes Wesen mit Leben und Bewusstsein erfüllt. Laut den Zoraï verkörpern die Kamis diese große Energie, die die Erde erschaffen hat und die sie Ma-duk nennen. Auch wenn wir ihre Lehren nicht blindlings annehmen, sind wir uns über die Jahre nähergekommen, um den Strafen des Karavan zu entgehen, die er uns für den Bergbau und die Erkundung der Unterwelt auferlegt hat. Auch wenn wir den Kamis unseren Glauben nicht schenken, so schulden wir ihnen unsere Loyalität.\n + \n + Was sind unsere Werte ?\n + Dein Leben muss auf den 4 Grundpfeilern beruhen, die unser Imperium zusammen halten:\n + Wahrheit ist der erste Pfeiler.\n + Feige Lügen werden keine Schlacht zu unseren Gunsten entscheiden! Sag Deinen Kameraden nichts als die Wahrheit, sowie sie auch Dir gerade heraus antworten müssen. Scheue Dich allerdings nicht, dem Feind gegenüber Listen anzuwenden. Ein weise durchgeführter Plan ist genau so gefährlich wie eine scharfe Lanze, die gut in der Hand liegt!\n + Ehre ist der zweite Grundpfeiler.\n + Lass Dich in jeder Lebenslage von Deiner Ehre leiten. Gehe nicht auf niedere Gefühle ein, egal wie hoch Dir der etwaige Gewinn scheint. Und denk daran: Ein ehrenvoller Tod ist besser als eine feige Existenz.\n + Disziplin ist der dritte Grundpfeiler.\n + Das Fyros-Imperium besteht dank der Gehorsamkeitskette, die uns mit dem Imperator verbindet; vom jüngsten Novizen bis zum gefeiertsten General. Jeder einzelne von uns hat den höheren Befehlen zu gehorchen. Ein ungehorsamer Fyros reicht aus, um die Verbindung zu brechen und somit das ganze Imperium zu gefährden.\n + Justiz ist der vierte Grundpfeiler.\n + Der Imperator ist unser oberster Anführer. Doch auch er hält sich an die Gesetze, die unsere Vorfahren festgelegt haben. Vom mächtigsten bis zum bescheidensten Fyros, befolgen wir bedingungslos unsere Gesetze. In Wahrheit ist es nicht der Imperiale Anführer, sondern das Imperiale Gesetz, das uns unser Verhalten vorschreibt.\n + \n + \n + Was ist uns verboten?\n + - Lass Dich nie dazu verleiten, dem Karavan einen Gefallen zu tun. Er ist gegen die Kamis und gegen unseren Sinn für die Gerechtigkeit. Für ihn stehen Jenas Gesetze über der sozialen Gerechtigkeit.\n + - Führe nie eine Mission für die Anhänger des Karavan durch.\n + - Führe nie eine Mission für verfeindete Stämme durch.\n + - Verletze nie den Ehrenkodex.\n + \n + \n + Was sind unsere Ziele ?\n + Unser Imperium hat zutiefst unter dem Großen Schwarm gelitten. Unser Sinn für Disziplin hat es uns ermöglicht, besser als die Matis oder die Tryker zu überleben. Der Beweis dafür ist unsere große Hauptstadt Pyr. Jetzt müssen wir :\n + - unsere persönlichen Stärken und Fertigkeiten verbessern\n + - mächtige und gut organisierte Gilden gründen, um Zugkraft zu haben\n + - die Wahrheit über den Drachen aufdecken\n + - gegen den Karavan kämpfen, um eine neue Ordnung über die Verehrung der Kamis herzustellen\n + - das Wissen sammeln, das während des Großen Schwarmes in den Ländern verloren ging, um die Türen zu den Geheimnissen der Vergangenheit zu öffnen .\n + - unser Gebiet festigen und neues Land erobern.\n + \n + Wer sind unsere Freunde ?\n + Seit dem Friedensvertrag von Fairhaven leben wir in Frieden mit den anderen Homin-Zivilisationen. Doch die Vergangenheit hat Spuren der Unsicherheit hinterlassen und unsere Beziehungen hängen von den Völkern ab.\n + Zoraï: Über die Jahre haben die Zoraï wiederholt ihre Loyalität und Freundschaft zu unserem Volk zum Ausdruck gebracht. Außerdem haben wir beide die Kamis ins Herz geschlossen und hegen eine Abneigung gegen die Karavan.\n + Tryker: Wir haben mehrmals versucht, die Tryker in unsere Obhut zu nehmen, doch sie haben sich als zu chaotisch und launisch für eine anhaltende Freundschaft erwiesen. Heute müssen wir uns vor den kleinen, wankelmütigen Homins in Acht nehmen, denn sie sind sich mehr denn je eins mit den Matis in ihrer Verehrung der Karavan-Göttin\n + Matis : Die Matis sind unser natürlicher Feind, dem nicht zu trauen ist. Wir teilen den matisianischen Sinn der Justiz nicht, der auf der Monarchie und den Gesetzen Jenas beruht. Selbst in diesen friedlichen Zeiten müssen wir auf der Hut sein, dass sie sich nicht gegen uns verbünden.\n + Zu den freundlichen Stämmen gehören: Die Unterwasserwurzel-Extrahierer, die Kitin-Jäger, die Feuermagierinnen, die Aufpasser, die Frahar Jäger, die Wasserbrecher, die Ersten Deserteure, die Scharlachroten Söldner, die Brunnengräber und die Heiliges Sap.\n + \n + \n + Wer sind unsere Feinde ?\n + - Die Karavan: Sie sind dagegen, dass wir nach der Wahrheit suchen. Ihnen ist nicht zu trauen.\n + - Die Kitins: Diese gigantischen Insekten haben Tausende von Fyros massakriert und unser großes Imperium in den Alten Landen zerstört.\n + - Der Drache des Mythos: Jahrhunderte lang haben wir nach der Wahrheit über den legendären Drachen gesucht. Es ist unsere Gräberei in den Tiefen von Atys, in denen der Drachen schlummern soll, die die Karavan erzürnt. Wir werden weiter graben, bis wir die Wahrheit aufgedeckt haben.\n + - Zu den feindlichen Stämmen gehören: die Sapsammler, die Kakerlaken, die Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Tutoren und die Alten Dryaden.\n + - Banditen: Aufgepasst, die Länder sind voll von Gesetzlosen, Dieben und Halsaufschneidern.\n + - Raubtiere: In der Tierwelt gibt es zahlreiche Raubtiere. Pass auf, zu einem Stück Homin-Fleisch sagen sie nicht nein!\n + \n + Wie kann ich meinem Volk helfen ?\n + - Wir brauchen Handwerker, Rohstoffabbauer, Magier und Krieger, um unsere Zivilisation zu erhalten und zu festigen.\n + Atys ist ein trügerischer Ort und wir benötigen Krieger, um unser Hoheitsgebiet zu verteidigen und neue Gebiete für neue Niederlassungen zu erobern.\n + - Wir wollen Handwerker, die alltägliche Gegenstände und Waffen herstellen; sowie Ernter, die Rohmaterial fürs Essen und das Handwerk abbauen.\n + Wir brauchen Magier, um erschaffene Gegenstände zu verzaubern, Ernter zu beschützen und Krieger zu heilen, sowie ihnen im Kampf zu helfen.\n + \n + \n + Was kann ich von meinem Volk erwarten ?\n + - Training von unseren erfahrenen Trainern.\n + - Unser Volk wird von Gilden beschützt, die Dir zur Hilfe kommen, wenn Du einer beitrittst.\n + - Je mehr Du für das Wohl unseres Volkes tust, desto reichlicher werden Deine Ehrentaten belohnt werden.\n + \n + \n + Was ist unser neues Land ?\n + Unser Volk ließ sich 2483 erstmals in diesen verwüsteten Gegenden nieder, als sie aus den Tiefen der Urwurzeln aufstiegen. Die Wüste ist die anspruchsvollste Gegend auf dem Planeten, doch diese Herausforderung entspricht dem Mut und den Werten unseres Volkes. Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den weiten Weg aus den alten Ländern auf sich genommen haben – den Weg, den auch Du tapfer genommen hast.\n + \n + Was kann ich von Atys, unserer Welt, erwarten ?\n + Auf Atys gibt es Rohmaterial im Überfluss, junger Homin. Solange Du die Umwelt respektierst, wird sie Dich mit Ernten belohnen. Indem Du Wissen über die Welt erlangst, wirst du lernen, die Wildnis zu bändigen und neue Gebiete zu erobern.] // HASH_VALUE 4DD020F174DAF28F // INDEX 4836 uiAppear_Infos_Matis [DIE MATIS-ZIVILISATION\n - \n - Ein Matis muss die nobelsten Charakterzüge aller Homins aufweisen. Er muss loyal, höflich, beharrlich, und vor Allem ehrfürchtig sein. Indem wir unserem König gehorsam sind, verherrlichen wir Jena, unsere Göttin, die ihm das göttliche Recht verlieh. Da wir glauben, dass jeder Teil in Jenas Universum einen Sinn hat, muss jeder Homin nach seinem oder ihrem richtigen Platz in der Gesellschaft suchen.\n - \n - Helft euch und Jena wird euch helfen. Ein Matis gibt nie auf. Mit dem Streben nach Erfolg wird unsere Gesellschaft als ein Ganzes stärker. Nur die Besten können in die höheren Schichten unserer Gesellschaft aufsteigen; nur die Elite kann unser Volk vorantreiben. \n - \n - Durch die Manipulation der Natur kommen unsere Seelen der Göttlichkeit näher. In der Tat, Homin, ist es kein Zufall, dass wir die atysianischen Meistermanipulatoren der Pflanzen- und Tierwelt geworden sind. Unsere Waffen, Rüstungen und sogar unsere Haushaltsgegenstände sind lebendig!\n - \n - Wir haben uns in den Waldgebieten der neuen Länder niedergelassen, wo wir jede lebende Essenz vorfinden, die wir für unsere Experimente benötigen. Im Namen Jenas müssen wir unser neues Königreich jetzt stärker und besser gestalten.\n - \n - Falls adeliges Blut in Deinen Adern fließt, schwöre dem König Treue! Unser Königreich braucht Sieger!!\n - \n - Wenn Du Fragen hast, Homin, so stelle sie jetzt...\n - \n - \n - Wer bin ich?\n - Du bist ein junger Homin-Flüchtling. Du hast den langen und gefährlichen Weg auf Dich genommen, um von den alten in die neuen Lande und in unser neues Reich zu kommen. Nach einer Trainingszeit wirst du als loyaler Untertan des Königs in der Lage sein, Deine Fähigkeiten in den Dienst des Guten zu stellen und helfen, das Königreich wiederaufzubauen\n - \n - Wer sind meine Vorfahren ?\n - Deine Ahnen hatten das glorreichste Königreich von Atys errichtet. Doch die majestätische Nation von Matia wurde 2481 von den Kitins in einem schrecklichen Schwarm zerstört. Deine Großeltern entkamen in die Wälder, wo zuerst Deine Eltern und dann Du ein schwieriges Leben unter der ständigen Bedrohung der Kitins führten. Zu Deinem eigenen Besten haben Deine Eltern Dich dazu ermutigt, den Weg zu ihrem Volk einzuschlagen. Nach vielen Jahren hast Du uns gefunden, wir haben Gebiete abgesichert und damit begonnen, unser Königreich wieder aufzubauen. Es liegt bei Deiner Generation, unseren verlorenen Ruhm wieder aufleben zu lassen und unsere Zivilisation wieder zu dem zu machen, was sie einmal war. \n - \n - Wer ist unser Herrscher?\n - König Yrkanis. Nach Jena ist er der oberste Herr. Du schuldest Ihm absolute Gehorsamkeit. Seine Autorität in Frage zu stellen ist ein Angriff auf Jena; eine Gotteslästerung die mit dem Tod bestraft werden kann. Wenn Du die Ehre hast, eine königliche Mission auferlegt zu bekommen, musst du sie mit Würde ausführen – es sei denn, Du willst seine göttliche Autorität untergraben. Du musst danach streben, seines Vertrauens würdig zu sein und dann kannst auch Du eine höhere Position erklimmen. Nach Jena ist er unser höchster Fürst. Rodi di Varello und Girini di Antorello sind die ihm ergebenen Herzöge, die ihn beraten.\n - \n - An was glauben wir?\n - Jena ist unsere Göttin, und wir müssen uns so an ihre Gesetze halten, wie ihre ergebenen Anhänger, die Karavan, es unterrichten. Sie gibt Acht auf uns, damit wir nicht vom richtigen Weg abkommen. Ihre Anhänger gestatten uns, Ihr Geschenke zu machen und Dienste zu erfüllen, um die Zukunft im versprochenen Jenseits vorzubereiten. Denke daran, junger Homin: Die Karavan verfügen über große Mächte, die sie nur mit den Gläubigen teilen werden. Es ist Deine Pflicht durch den Umgang mit ihren Anhängern Jenas Gunst zu erlangen und auch Du wirst lernen, ihre Technologie zu nutzen.\n - \n - Was sind unsere Werte?\n - Um als richtiger Matis Erfolg zu haben, musst Du Dein Leben auf drei Grundwerten aufbauen:\n - - Loyalität zum König und zu Jena: Der König hat seine Macht durch göttliches Recht inne; seine Feinde sind Deine Feinde. Indem Du unsere Religion verteidigst, verteidigst Du unser Königreich. Wenn Du dem König nicht gehorchst, zeigst Du Dich gleichermaßen respektlos gegenüber Jena und machst Dich damit der Ketzerei schuldig.\n - - Ästhetische Perfektion: Unserer Kultur gebührt nur das Beste. Da die Göttin uns adeliges Blut verliehen hat, verehren wir sie, indem wir alles schön gestalten.\n - - Wettbewerb: Wir glauben, dass jeder Matis nach seinem wahren Platz in der Gesellschaft streben muss. Der Wettbewerb stärkt unseren Charakter und trennt die Starken von den Schwachen. Und wir Matis kämpfen, um zu siegen! \n - \n - Was sind unsere Verbote? \n - - Es ist streng verboten, sich den Kamis anzunähern (es sei denn, die Karavan würde es anordnen). Sie sind böse Teufel und sie sind gegen die Karavan. \n - - Breche niemals Jenas Gesetz.\n - - Verlasse die Oberfläche von Atys nicht: Im Inneren des Planeten läufst du Gefahr, den gefürchteten Drachen des Untergangs aufzuwecken.\n - - Führe keine Missionen für feindliche Stämme durch.\n - - Es ist verboten, Drachenfeuer in den Ländern zu verbreiten. Es frisst die Bäume auf und raubt uns die Essenzen für die Dinge, die wir herstellen.\n - \n - Was sind unsere Ziele?\n - Nach unserem Aufstieg aus den Urwurzeln war unsere größte Herausforderung, dieses Land zu bändigen und es zu veredeln. Die in den Bäumen erbaute Hauptstadt und die Niederlassungen sind ein lebender Beweis für unseren Erfolg. Jetzt müssen wir :\n - - unsere persönlichen Stärken und Fertigkeiten entwickeln. \n - - starke und loyale Gilden aufbauen, um das Wort Jenas unter den Ungläubigen zu verbreiten und die Welt von der Besessenheit der Kamis zu befreien. \n - - unser Wissen vertiefen, um noch bessere Waffen und Gegenstände herzustellen. Während des Großen Schwarms ging viel Wissen im Land verloren. Dieses Wissen und noch mehr aufzudecken, wird die Tore zu den Geheimnissen der Vergangenheit öffnen.\n - \n - Wer sind unsere Freunde ?\n - Seit dem Friedensabkommen, das 2515 in Fairhaven unterzeichnet wurde, leben wir in Frieden mit den anderen Homin-Völkern. Doch auch zehn Jahre des Friedens können die Narben der vergangenen Gemeinheiten nicht verwischen. Unsere Beziehungen hängen in der Tat von den jeweiligen Völkern ab.\n - Tryker: Die Vergangenheit hat uns gelehrt, dass die Tryker nicht zu bändigen sind und dass sie den Dämonen ihre Seele verkaufen würden, nur um ihren Lebensstil beizubehalten. Wie dem auch sei: Im Namen Jenas haben wir gelernt, als nachgiebige Freunde zusammenzuleben, anstatt sie auf der Seite der Ungläubigen zu sehen. Dank Jena ist unsere Freundschaft besser denn je, auch wenn ihre Leidenschaft noch manchmal zu wünschen übrig lässt.\n - Zoraï: Die Zoraï sind Ungläubige und auf ihr Heidentum ist achtzugeben, auch wenn es ein Zoraï-Krieger war, der den jetzigen König rettete. Bei allem Respekt belastet diese "Schuld" gegenüber den Zoraï viele von uns, da sie unsere Glaubwürdigkeit in den Augen der Karavan beeinträchtigt. Besser, so etwas kommt nicht nochmal vor.\n - Fyros: Die Fyros sind unsere natürlichen Feinde, die über die letzten 44 Jahre den bösartigen Kamis immer näher gekommen sind. Wir dürfen nie vergessen, dass es ihnen in der Vergangenheit gelungen ist, die Tryker für ihre Seite und gegen uns zu gewinnen. Doch die Fyros alliieren sich jetzt lieber mit den Zoraï, deren Verehrungen für die dämonischen Kamis sie teilen. Wir müssen trotzdem aufpassen, dass sie nicht versuchen, die Tryker mit ihrem gotteslästerlichern Geschwätz zu konvertieren.\n - Freundlich gesinnte Stämme sind: die Rindengräber, die Frahar-Jäger, die Lehmbildhauer, die Abtrünnigen, die Sklaventreiber, die Ikonenschnitzer, die Matis-Amazonen, die Grünen Samen, die Sapsklaven, die Dörre Matis, die Matiagoo, die Kuilde.\n - \n - \n - Wer sind unsere Feinde ?\n - - Die Kamis: Sie sind dagegen, dass wir Jenas Land mit Ordnung und Schönheit bescheren. Sie sind eine bösartige Plage und sollten ausgeschaltet werden.\n - - Die Kitins: Diese gigantischen Insekten haben Tausende von Matis massakriert und unser majestätisches Königreich in den alten Ländern zerstört.\n - - Feindlich gesinnte Stämme sind: die Sapsammler, die Kakerlaken, die Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Tutoren, die Alten Dryaden, die Ersten Deserteure, die Scharlachroten Söldner, die Wüstenplünderer.\n - - Banditen: Gebe auf Gesetzlose, Diebe und Halsaufschneider acht, die um die Wälder nach leichter Beute suchen.\n - - Raubtiere: Wilde Tiere können grausam sein und viele von ihnen greifen Homins an, sobald sie ihnen unter die Augen kommen!\n - \n - \n - Wie kann ich meinem Volk helfen ?\n - Uns fehlen Handwerker, Ernter, Magier und Krieger, um unsere Fähigkeiten weiter auszubauen, damit wir immer die Besten sind.\n - - Wir benötigen Krieger, um unser Territorium zu verteidigen und neuen Lebensraum zu erschließen. \n - - Wir brauchen auch ausgebildete Handwerker, um alltägliche Gegenstände und Waffen herzustellen; sowie Ernter, um das Rohmaterial zu sammeln, das wir zur Ernährung und Verarbeitung benötigen.\n - - Wir brauchen Magier, um erschaffene Gegenstände zu verzaubern, Ernter zu beschützen, Krieger im Kampf zu heilen und den Feind in Schach zu halten.\n - \n - Was kann ich von meinem Volk erwarten ?\n - - Training von unseren Experten.\n - - Unser Volk wird von Gilden verteidigt, die Dir zur Hilfe eilen können, sobald Du einer beigetreten bist. \n - - Je mehr Du im Sinne unseres Volkes handelst, desto großzügiger werden Deine noblen Taten belohnt werden. \n - \n - Wie ist unser neues Land?\n - Unser Volk hat sich 2483 zum ersten Mal in diesen bewaldeten Regionen niedergelassen, als sie aus dem Schutz der Urwurzeln in die neuen Länder aufstiegen. Der Wald ist bei Weitem das schönste Gebiet auf Atys und bietet dem aufmerksamen Auge jede Essenz, die zur Erschaffung benötigt wird. Seit 2487 sind unaufhörlich Flüchtlinge zu uns gestoßen, die den selben langen Weg eingeschlagen haben, den Du, mutiger Homin auch genommen haben.\n - \n - \n - Was kann ich von Atys, unserer Welt, erwarten? \n - Atys ist eine Mine fabelhafter, natürlicher Ressourcen, junger Matis. Mit der Zeit wirst Du lernen, sie in verkaufbaren Reichtum umzusetzen. Da Du Dich mit der Welt vertraut machst, wirst Du lernen, die Wildnis zu bändigen und neue Gebiete zu erobern.] + \n + Ein Matis muss die nobelsten Charakterzüge aller Homins aufweisen. Er muss loyal, höflich, beharrlich, und vor Allem ehrfürchtig sein. Indem wir unserem König gehorsam sind, verherrlichen wir Jena, unsere Göttin, die ihm das göttliche Recht verlieh. Da wir glauben, dass jeder Teil in Jenas Universum einen Sinn hat, muss jeder Homin nach seinem oder ihrem richtigen Platz in der Gesellschaft suchen.\n + \n + Helft euch und Jena wird euch helfen. Ein Matis gibt nie auf. Mit dem Streben nach Erfolg wird unsere Gesellschaft als ein Ganzes stärker. Nur die Besten können in die höheren Schichten unserer Gesellschaft aufsteigen; nur die Elite kann unser Volk vorantreiben.\n + \n + Durch die Manipulation der Natur kommen unsere Seelen der Göttlichkeit näher. In der Tat, Homin, ist es kein Zufall, dass wir die atysianischen Meistermanipulatoren der Pflanzen- und Tierwelt geworden sind. Unsere Waffen, Rüstungen und sogar unsere Haushaltsgegenstände sind lebendig!\n + \n + Wir haben uns in den Waldgebieten der neuen Länder niedergelassen, wo wir jede lebende Essenz vorfinden, die wir für unsere Experimente benötigen. Im Namen Jenas müssen wir unser neues Königreich jetzt stärker und besser gestalten.\n + \n + Falls adeliges Blut in Deinen Adern fließt, schwöre dem König Treue! Unser Königreich braucht Sieger!!\n + \n + Wenn Du Fragen hast, Homin, so stelle sie jetzt...\n + \n + \n + Wer bin ich?\n + Du bist ein junger Homin-Flüchtling. Du hast den langen und gefährlichen Weg auf Dich genommen, um von den alten in die neuen Lande und in unser neues Reich zu kommen. Nach einer Trainingszeit wirst du als loyaler Untertan des Königs in der Lage sein, Deine Fähigkeiten in den Dienst des Guten zu stellen und helfen, das Königreich wiederaufzubauen\n + \n + Wer sind meine Vorfahren ?\n + Deine Ahnen hatten das glorreichste Königreich von Atys errichtet. Doch die majestätische Nation von Matia wurde 2481 von den Kitins in einem schrecklichen Schwarm zerstört. Deine Großeltern entkamen in die Wälder, wo zuerst Deine Eltern und dann Du ein schwieriges Leben unter der ständigen Bedrohung der Kitins führten. Zu Deinem eigenen Besten haben Deine Eltern Dich dazu ermutigt, den Weg zu ihrem Volk einzuschlagen. Nach vielen Jahren hast Du uns gefunden, wir haben Gebiete abgesichert und damit begonnen, unser Königreich wieder aufzubauen. Es liegt bei Deiner Generation, unseren verlorenen Ruhm wieder aufleben zu lassen und unsere Zivilisation wieder zu dem zu machen, was sie einmal war.\n + \n + Wer ist unser Herrscher?\n + König Yrkanis. Nach Jena ist er der oberste Herr. Du schuldest Ihm absolute Gehorsamkeit. Seine Autorität in Frage zu stellen ist ein Angriff auf Jena; eine Gotteslästerung die mit dem Tod bestraft werden kann. Wenn Du die Ehre hast, eine königliche Mission auferlegt zu bekommen, musst du sie mit Würde ausführen – es sei denn, Du willst seine göttliche Autorität untergraben. Du musst danach streben, seines Vertrauens würdig zu sein und dann kannst auch Du eine höhere Position erklimmen. Nach Jena ist er unser höchster Fürst. Rodi di Varello und Girini di Antorello sind die ihm ergebenen Herzöge, die ihn beraten.\n + \n + An was glauben wir?\n + Jena ist unsere Göttin, und wir müssen uns so an ihre Gesetze halten, wie ihre ergebenen Anhänger, die Karavan, es unterrichten. Sie gibt Acht auf uns, damit wir nicht vom richtigen Weg abkommen. Ihre Anhänger gestatten uns, Ihr Geschenke zu machen und Dienste zu erfüllen, um die Zukunft im versprochenen Jenseits vorzubereiten. Denke daran, junger Homin: Die Karavan verfügen über große Mächte, die sie nur mit den Gläubigen teilen werden. Es ist Deine Pflicht durch den Umgang mit ihren Anhängern Jenas Gunst zu erlangen und auch Du wirst lernen, ihre Technologie zu nutzen.\n + \n + Was sind unsere Werte?\n + Um als richtiger Matis Erfolg zu haben, musst Du Dein Leben auf drei Grundwerten aufbauen:\n + - Loyalität zum König und zu Jena: Der König hat seine Macht durch göttliches Recht inne; seine Feinde sind Deine Feinde. Indem Du unsere Religion verteidigst, verteidigst Du unser Königreich. Wenn Du dem König nicht gehorchst, zeigst Du Dich gleichermaßen respektlos gegenüber Jena und machst Dich damit der Ketzerei schuldig.\n + - Ästhetische Perfektion: Unserer Kultur gebührt nur das Beste. Da die Göttin uns adeliges Blut verliehen hat, verehren wir sie, indem wir alles schön gestalten.\n + - Wettbewerb: Wir glauben, dass jeder Matis nach seinem wahren Platz in der Gesellschaft streben muss. Der Wettbewerb stärkt unseren Charakter und trennt die Starken von den Schwachen. Und wir Matis kämpfen, um zu siegen!\n + \n + Was sind unsere Verbote?\n + - Es ist streng verboten, sich den Kamis anzunähern (es sei denn, die Karavan würde es anordnen). Sie sind böse Teufel und sie sind gegen die Karavan.\n + - Breche niemals Jenas Gesetz.\n + - Verlasse die Oberfläche von Atys nicht: Im Inneren des Planeten läufst du Gefahr, den gefürchteten Drachen des Untergangs aufzuwecken.\n + - Führe keine Missionen für feindliche Stämme durch.\n + - Es ist verboten, Drachenfeuer in den Ländern zu verbreiten. Es frisst die Bäume auf und raubt uns die Essenzen für die Dinge, die wir herstellen.\n + \n + Was sind unsere Ziele?\n + Nach unserem Aufstieg aus den Urwurzeln war unsere größte Herausforderung, dieses Land zu bändigen und es zu veredeln. Die in den Bäumen erbaute Hauptstadt und die Niederlassungen sind ein lebender Beweis für unseren Erfolg. Jetzt müssen wir :\n + - unsere persönlichen Stärken und Fertigkeiten entwickeln.\n + - starke und loyale Gilden aufbauen, um das Wort Jenas unter den Ungläubigen zu verbreiten und die Welt von der Besessenheit der Kamis zu befreien.\n + - unser Wissen vertiefen, um noch bessere Waffen und Gegenstände herzustellen. Während des Großen Schwarms ging viel Wissen im Land verloren. Dieses Wissen und noch mehr aufzudecken, wird die Tore zu den Geheimnissen der Vergangenheit öffnen.\n + \n + Wer sind unsere Freunde ?\n + Seit dem Friedensabkommen, das 2515 in Fairhaven unterzeichnet wurde, leben wir in Frieden mit den anderen Homin-Völkern. Doch auch zehn Jahre des Friedens können die Narben der vergangenen Gemeinheiten nicht verwischen. Unsere Beziehungen hängen in der Tat von den jeweiligen Völkern ab.\n + Tryker: Die Vergangenheit hat uns gelehrt, dass die Tryker nicht zu bändigen sind und dass sie den Dämonen ihre Seele verkaufen würden, nur um ihren Lebensstil beizubehalten. Wie dem auch sei: Im Namen Jenas haben wir gelernt, als nachgiebige Freunde zusammenzuleben, anstatt sie auf der Seite der Ungläubigen zu sehen. Dank Jena ist unsere Freundschaft besser denn je, auch wenn ihre Leidenschaft noch manchmal zu wünschen übrig lässt.\n + Zoraï: Die Zoraï sind Ungläubige und auf ihr Heidentum ist achtzugeben, auch wenn es ein Zoraï-Krieger war, der den jetzigen König rettete. Bei allem Respekt belastet diese 'Schuld' gegenüber den Zoraï viele von uns, da sie unsere Glaubwürdigkeit in den Augen der Karavan beeinträchtigt. Besser, so etwas kommt nicht nochmal vor.\n + Fyros: Die Fyros sind unsere natürlichen Feinde, die über die letzten 44 Jahre den bösartigen Kamis immer näher gekommen sind. Wir dürfen nie vergessen, dass es ihnen in der Vergangenheit gelungen ist, die Tryker für ihre Seite und gegen uns zu gewinnen. Doch die Fyros alliieren sich jetzt lieber mit den Zoraï, deren Verehrungen für die dämonischen Kamis sie teilen. Wir müssen trotzdem aufpassen, dass sie nicht versuchen, die Tryker mit ihrem gotteslästerlichern Geschwätz zu konvertieren.\n + Freundlich gesinnte Stämme sind: die Rindengräber, die Frahar-Jäger, die Lehmbildhauer, die Abtrünnigen, die Sklaventreiber, die Ikonenschnitzer, die Matis-Amazonen, die Grünen Samen, die Sapsklaven, die Dörre Matis, die Matiagoo, die Kuilde.\n + \n + \n + Wer sind unsere Feinde ?\n + - Die Kamis: Sie sind dagegen, dass wir Jenas Land mit Ordnung und Schönheit bescheren. Sie sind eine bösartige Plage und sollten ausgeschaltet werden.\n + - Die Kitins: Diese gigantischen Insekten haben Tausende von Matis massakriert und unser majestätisches Königreich in den alten Ländern zerstört.\n + - Feindlich gesinnte Stämme sind: die Sapsammler, die Kakerlaken, die Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Tutoren, die Alten Dryaden, die Ersten Deserteure, die Scharlachroten Söldner, die Wüstenplünderer.\n + - Banditen: Gebe auf Gesetzlose, Diebe und Halsaufschneider acht, die um die Wälder nach leichter Beute suchen.\n + - Raubtiere: Wilde Tiere können grausam sein und viele von ihnen greifen Homins an, sobald sie ihnen unter die Augen kommen!\n + \n + \n + Wie kann ich meinem Volk helfen ?\n + Uns fehlen Handwerker, Ernter, Magier und Krieger, um unsere Fähigkeiten weiter auszubauen, damit wir immer die Besten sind.\n + - Wir benötigen Krieger, um unser Territorium zu verteidigen und neuen Lebensraum zu erschließen.\n + - Wir brauchen auch ausgebildete Handwerker, um alltägliche Gegenstände und Waffen herzustellen; sowie Ernter, um das Rohmaterial zu sammeln, das wir zur Ernährung und Verarbeitung benötigen.\n + - Wir brauchen Magier, um erschaffene Gegenstände zu verzaubern, Ernter zu beschützen, Krieger im Kampf zu heilen und den Feind in Schach zu halten.\n + \n + Was kann ich von meinem Volk erwarten ?\n + - Training von unseren Experten.\n + - Unser Volk wird von Gilden verteidigt, die Dir zur Hilfe eilen können, sobald Du einer beigetreten bist.\n + - Je mehr Du im Sinne unseres Volkes handelst, desto großzügiger werden Deine noblen Taten belohnt werden.\n + \n + Wie ist unser neues Land?\n + Unser Volk hat sich 2483 zum ersten Mal in diesen bewaldeten Regionen niedergelassen, als sie aus dem Schutz der Urwurzeln in die neuen Länder aufstiegen. Der Wald ist bei Weitem das schönste Gebiet auf Atys und bietet dem aufmerksamen Auge jede Essenz, die zur Erschaffung benötigt wird. Seit 2487 sind unaufhörlich Flüchtlinge zu uns gestoßen, die den selben langen Weg eingeschlagen haben, den Du, mutiger Homin auch genommen haben.\n + \n + \n + Was kann ich von Atys, unserer Welt, erwarten?\n + Atys ist eine Mine fabelhafter, natürlicher Ressourcen, junger Matis. Mit der Zeit wirst Du lernen, sie in verkaufbaren Reichtum umzusetzen. Da Du Dich mit der Welt vertraut machst, wirst Du lernen, die Wildnis zu bändigen und neue Gebiete zu erobern.] // HASH_VALUE 69D4E423BABC9C11 // INDEX 4837 uiAppear_Infos_Tryker [DIE TRYKER-ZIVILISATION\n - \n - Wir Tryker glauben an die Werte der Freiheit, Gleichheit und Aufteilung. Für uns sind alle Homins gleich. Alle sollen leben und leben lassen. Wir glauben an den Wert jedes Einzelnen und nicht nur an jenen einer Gruppe. Schließlich schenkt unsere süße Göttin Jena jedem einzeln das Leben, und nicht zu elft oder zu neunt! Die Unterstützung der individuellen Entwicklung und des Glücks eines jeden bringt auf solch eine natürliche Art eine Gruppenharmonie und Solidarität mit sich, wie viele Ströme in einem Fluss zusammen laufen.\n - \n - Die Tryker sind sowohl große Reisende und Entdecker, als auch Experten der Windtechnologien. Seit dem Großen Schwarm der Kitins, die unsere Inselstädte in den alten Landen zerstört haben, haben wir uns in den Seengebieten der neuen Länder angesiedelt, wo wir das Fundament für unsere neue Föderation gelegt haben. \n - \n - Wenn Du an eine Welt ohne Tyrannei oder Intoleranz glaubst, eine Welt ohne Meister und Sklaven, dann helfe uns, sie aufzubauen!!\n - \n - Jetzt kannst Du deine Fragen stellen...\n - \n - \n - Wer bin ich? \n - Du bist ein junger Tryker Flüchtling. Du hast gut daran getan, den langen und gefährlichen Weg aus den alten Ländern in Angriff zu nehmen, um Dich uns dort anzuschließen, wo wir unsere neue Heimat errichtet haben. Nachdem Du etwas trainiert hast, wirst Du die Gelegenheit haben, uns zu zeigen, aus welchem Holz Du geschnitzt bist und uns dabei helfen können, die Föderation der Tryker-Völker aufzubauen.\n - \n - Wer sind meine Vorfahren? \n - Deine Vorfahren haben die wundervollsten Inselstädte in den alten Ländern von Trykoth errichtet, in denen sie frei wie die Vögel lebten. Doch vor drei Generationen nahm das ein Ende, als die Kitins kamen und Tod und Zerstörung überall im Land verbreiteten. Deine Großeltern sind auf die Hügel geflüchtet, wo zuerst Deine Eltern und dann Du in ständiger Angst eines erneuten Kitin-Angriffs aufwuchsen. Es ist eine gute Sache, dass Deine Eltern Dich dazu gebracht haben, dieses Leben in der Sackgasse aufzugeben und sich auf den langen Weg zu wagen, um uns in das neue Land zu folgen. Jetzt hast Du uns endlich gefunden und Dein neues Leben kann beginnen.\n - \n - Wer ist unser Anführer? \n - Lady Ailan Mac'kean ist unsere Anführerin. Sie ist die Gouverneurin des Trykerrates. Wenn sie spricht, hast Du nach ihrer Pfeife zu tanzen. Zumindest so lange, bis Du Dich hoch genug gearbeitet hast, um unter vier Augen mit ihr zu sprechen. Stelle sicher, dass Du zu ihr stehst, junger Tryker, unsere Unabhängigkeit hängt von unserer Solidarität ab! Die Vize-Gouverneurin Shaly Nara ist ihre rechte Hand. Erfahrene Homins beraten sie zudem. Wenn Dir jemals die Ehre zu Teil kommt, eine Mission für den Rat auszuführen, gib Dein Bestes. Man weiß ja nie, unsere Unabhängigkeit könnte davon abhängig sein. \n - \n - Was ist unser Glaube? \n - Jena ist unsere Göttin; sie ist die Mutter der Schöpfung. Viele unserer Gewohnheiten bauen rund um ihre Verehrung auf. So fällt der Erntedank-Tag zum Beispiel auf die Wintersonnenwende, um die Wiederkehr des Lichts nach den dunklen Jahren des Großen Schwarms zu symbolisieren. Damit das nicht nochmal passiert, müssen wir uns an ihr Gesetz halten, das uns von Ihren treuen Anhängern, den Karavan, übermittelt wird. Sie wachen über uns und beschützen uns vor der Besessenheit der Kamis. Bedenke, junger Tryker: So lange Du alles so machst, wie man Dir sagt, und Du nicht widersprichst, wirst auch Du in der Lage sein, den Umgang ihrer Technologie zu erlernen. Oh, und noch was: Behalte es für Dich, doch manche behaupten, Elias Tryton sei kein geringerer als Jenas Mann; das macht ihn zum heiligen Vater. Kein Wort darüber zu den Karavan!\n - \n - Auf was legen wir am meisten Wert?\n - Um ein richtiger Tryker zu werden, musst Du Dich an die Werte der Freiheit, der Gleichheit und des Teilens halten:\n - - Freiheit: Jeder Homin ist frei zu tun, was er will und er ist auch dafür verantwortlich. Ein Homin, der die Freiheit eines anderen Homin verletzt, verstößt gegen den Homin-Rechtsakt, der zufälligerweise als erstes vom Tryker-Rat aufgesetzt wurde.\n - - Gleichheit: Jeder Homin hat das gleiche Recht auf Bewegungsfreiheit, Bildung, den Abbau der natürlichen Ressourcen und die Bestimmung seines Schicksals, solange er damit nicht andere Homin-Rechte verletzt.\n - - Teilen: Wir glauben daran, dass unsere Stärke in unserer Solidarität liegt und dass Solidarität aus dem Teilen entsteht. Wenn wir alle Kinder Jenas davon überzeugen könnten, so wie wir Tryker zu sein, wäre die Welt sicherer!\n - \n - \n - Was ist uns verboten?\n - - Du darfst nie einen Pakt mit den Kamis eingehen oder eine Mission für sie erfüllen. Sie sind böse Dämonen und werden Dich Deiner Seele berauben. \n - - Breche nie Jenas Gesetz.\n - - Es ist verboten, Drachenfeuer im Land auszubreiten. Dadurch wird es unfruchtbar. \n - - Führe nie Missionen für feindliche Stämme durch.\n - - Wenn Du Dich unter die Oberfläche von Atys wagst, sei vorsichtig, dass Du den gefürchteten Drachen des Untergangs nicht aufweckst.\n - \n - Was sind unsere Ziele ?\n - Seit wir aus den Urwurzeln wieder aufgestiegen sind, haben wir stabile Grundlagen für unsere zukünftige Zivilisation ohne Tyrannei und Intoleranz gelegt, in der alle Kinder Jenas in Frieden leben können. Jetzt wo unsere junge Gesellschaft floriert, müssen wir sie groß und mächtig machen! Wir müssen starke und eng miteinander verbundene Gilden gründen, um das Wort Jenas zu verbreiten und die Ungläubigen vom Einfluss der Kamis zu befreien. Dafür müssen wir unser Wissen vertiefen, um noch bessere Werkzeuge und Waffen herstellen zu können. Doch während des großen Schwarms ist viel Wissen verloren gegangen. Dieses Wissen und mehr aufzudecken, wird die Tore zu den Geheimnissen der Vergangenheit öffnen.\n - \n - Wer sind unsere Freunde ?\n - Seit dem im Jahre 2515 unterzeichneten Friedensabkommen von Fairhaven leben wir in Frieden mit den anderen Homin-Völkern. Doch das hält uns nicht davon ab, manche mehr zu mögen als andere.\n - - Matis: Trotz vergangener Streitereien und Missverständnisse respektieren die Matis jetzt unsere Denkfreiheit und unser Recht, unsere Gesellschaft nach unseren Vorstellungen aufzubauen. Was wirklich zählt ist ja, dass wir den Glauben an Jena teilen. Dank Jena ist unsere Freundschaft besser denn je; vor Allem seit die Matis den Homin-Rechtsakt ratifiziert haben. Darüber hinaus verdanken die Matis uns bis zu einem bestimmten Grad ihre Freiheit nach der Diktatur von Jinovitch. Der Tryker-Rat hat Yrkanis nicht nur politisches Asyl in Fairhaven gewährt, sondern Still Wyler hat ihn auch zurück in die Matisländer eskortiert, um Jinovitch vom Thron zu stürzen.\n - - Fyros: Die Fyros waren einst Alliierte, die unseren Bedarf an Schutz ausnutzten, indem sie uns Fyros-Städte mit Waren zu einem niedrigen Preis beliefern ließen. Seit wir in der Lage sind, uns selbst zu verteidigen, sind wir nicht mehr auf die Fyros-Beschützer angewiesen, insbesondere da wir uns auch den Matis jetzt verbundener fühlen. Darüber hinaus sind die Fyros den Kamis näher gekommen.\n - - Zoraï: Den Zoraï ist kein Vertrauen zu schenken: Mit ihrer Verehrung der Kamis brechen sie offen das Gesetz Jenas. Darüber hinaus haben die Zoraï es uns während des Großen Schwarmes verweigert, uns durch ihre große Mauer zu lassen, worauf hin Tausende von Trykern in den Klauen der Kitins umkamen. Vor Kürzerem waren es die Zoraï, die als Erste die Sklaverei in den neuen Ländern einführten.\n - - Freundlich gesinnte Stämme beinhalten: die Frahar-Jäger, die Lehmbildhauer, die Korsare, die Gischtläufer, die Schattenschmuggler, die Grünen Samen, die Scharlachroten Söldner, die Ökokrieger, die Brunnengräber und die Kuilde.\n - \n - \n - \n - Wer sind unsere Feinde?\n - - Die Kamis sind ein böses Verderbnis; sie versuchen, deinen Geist mit ihrer Magie in Besitz zu nehmen, nur um Dich zu beherrschen. Sie gehören ausgerottet. Die Kitins sind unser größter Feind. Sie haben Tausende von Trykern umgebracht und unsere wundervollen schwimmenden Städte in den alten Ländern von Trykoth zerstört.\n - - Der Drache wurde zwar noch nie gesehen, doch wir wissen, dass er irgendwo im tiefsten Inneren von Atys lauert.\n - - Zu den feindlichen Stämmen gehören: die Sapsammler, die Chlorogoos, die Gesetzlosen, die Lagunenbrüder, die Sklaventreiber, die Tutoren, die Alten Dryaden, die Wüstenplünderer, die Matiagoo.\n - - Banditen: Pass gut auf Gesetzlose, Diebe und Halsaufschneider auf, sie lauern überall.\n - - Raubtiere: Es gibt eine Menge gemeingefährlicher Raubtiere auf Atys. Pass auf wohin Du gehst, wenn Du nicht in ihrem Magen landen willst!\n - \n - Wie kann ich meinem Volk helfen?\n - Ganz einfach: Ob du Handwerker, Ernter, Magier oder Krieger bist, wir brauchen Dich!\n - - Wir brauchen Krieger, die unsere territorialen Rechte verteidigen und unseren Wachstumsbedarf decken.\n - - Wir benötigen gute Handwerker, um alltägliche Gegenstände und Waffen herzustellen. Und wir brauchen Ernter, die das Rohmaterial sammeln, das wir fürs Essen und zur Verarbeitung benötigen.\n - - Wir brauchen auch Magier, die erschaffene Gegenstände verzaubern, Ernter beschützen, Krieger im Kampf heilen und den Feind auf Trab halten. \n - \n - Was kann ich von meinem Volk erwarten?\n - - Training von unseren besten Lehrern.\n - - Unser Volk wird von Gilden verteidigt, die auch Dir zu Hilfe kommen, wenn Du einer davon beitrittst.\n - - Je mehr du im Sinne unseres Volkes handelst, desto besser werden Deine Heldentaten belohnt werden!\n - \n - Was ist unser neues Land?\n - Unser Volk hat 2483 die Seenlande zu seiner neuen Heimat auserkoren, nachdem wir aus den Urwurzeln in die neuen Länder aufgestiegen sind. Die Länder der Seen sind der magischste Ort von Atys. Doch Du musst auf der Hut sein, es ist kein Ort für Schwächlinge! Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den langen Weg aus den alten Ländern auf sich genommen haben; den Weg, den auch Du tapfer begangen hast, Homin.\n - \n - Was kann ich von Atys, unserem Planeten, erwarten?\n - Atys ist eine Mine an natürlichen Ressourcen, Tryker. Mit der Zeit wirst Du lernen, gut mit ihnen zu überleben. Je mehr Du deine Fertigkeiten über die Welt verbesserst, desto besser wirst Du die Beschaffenheit des Landes kennenlernen und in der Lage sein, neue Gebiete zu erschließen. ] + \n + Wir Tryker glauben an die Werte der Freiheit, Gleichheit und Aufteilung. Für uns sind alle Homins gleich. Alle sollen leben und leben lassen. Wir glauben an den Wert jedes Einzelnen und nicht nur an jenen einer Gruppe. Schließlich schenkt unsere süße Göttin Jena jedem einzeln das Leben, und nicht zu elft oder zu neunt! Die Unterstützung der individuellen Entwicklung und des Glücks eines jeden bringt auf solch eine natürliche Art eine Gruppenharmonie und Solidarität mit sich, wie viele Ströme in einem Fluss zusammenlaufen.\n + \n + Die Tryker sind sowohl große Reisende und Entdecker, als auch Experten der Windtechnologien. Seit dem Großen Schwarm der Kitins, die unsere Inselstädte in den alten Landen zerstört haben, haben wir uns in den Seengebieten der neuen Länder angesiedelt, wo wir das Fundament für unsere neue Föderation gelegt haben.\n + \n + Wenn Du an eine Welt ohne Tyrannei oder Intoleranz glaubst, eine Welt ohne Meister und Sklaven, dann helfe uns, sie aufzubauen!!\n + \n + Jetzt kannst Du deine Fragen stellen...\n + \n + \n + Wer bin ich?\n + Du bist ein junger Tryker Flüchtling. Du hast gut daran getan, den langen und gefährlichen Weg aus den alten Ländern in Angriff zu nehmen, um Dich uns dort anzuschließen, wo wir unsere neue Heimat errichtet haben. Nachdem Du etwas trainiert hast, wirst Du die Gelegenheit haben, uns zu zeigen, aus welchem Holz Du geschnitzt bist und uns dabei helfen können, die Föderation der Tryker-Völker aufzubauen.\n + \n + Wer sind meine Vorfahren?\n + Deine Vorfahren haben die wundervollsten Inselstädte in den alten Ländern von Trykoth errichtet, in denen sie frei wie die Vögel lebten. Doch vor drei Generationen nahm das ein Ende, als die Kitins kamen und Tod und Zerstörung überall im Land verbreiteten. Deine Großeltern sind auf die Hügel geflüchtet, wo zuerst Deine Eltern und dann Du in ständiger Angst eines erneuten Kitin-Angriffs aufwuchsen. Es ist eine gute Sache, dass Deine Eltern Dich dazu gebracht haben, dieses Leben in der Sackgasse aufzugeben und sich auf den langen Weg zu wagen, um uns in das neue Land zu folgen. Jetzt hast Du uns endlich gefunden und Dein neues Leben kann beginnen.\n + \n + Wer ist unser Anführer?\n + Lady Ailan Mac'kean ist unsere Anführerin. Sie ist die Gouverneurin des Trykerrates. Wenn sie spricht, hast Du nach ihrer Pfeife zu tanzen. Zumindest so lange, bis Du Dich hoch genug gearbeitet hast, um unter vier Augen mit ihr zu sprechen. Stelle sicher, dass Du zu ihr stehst, junger Tryker, unsere Unabhängigkeit hängt von unserer Solidarität ab! Die Vize-Gouverneurin Shaly Nara ist ihre rechte Hand. Erfahrene Homins beraten sie zudem. Wenn Dir jemals die Ehre zu Teil kommt, eine Mission für den Rat auszuführen, gib Dein Bestes. Man weiß ja nie, unsere Unabhängigkeit könnte davon abhängig sein.\n + \n + Was ist unser Glaube?\n + Jena ist unsere Göttin; sie ist die Mutter der Schöpfung. Viele unserer Gewohnheiten bauen rund um ihre Verehrung auf. So fällt der Erntedank-Tag zum Beispiel auf die Wintersonnenwende, um die Wiederkehr des Lichts nach den dunklen Jahren des Großen Schwarms zu symbolisieren. Damit das nicht nochmal passiert, müssen wir uns an ihr Gesetz halten, das uns von Ihren treuen Anhängern, den Karavan, übermittelt wird. Sie wachen über uns und beschützen uns vor der Besessenheit der Kamis. Bedenke, junger Tryker: So lange Du alles so machst, wie man Dir sagt, und Du nicht widersprichst, wirst auch Du in der Lage sein, den Umgang ihrer Technologie zu erlernen. Oh, und noch was: Behalte es für Dich, doch manche behaupten, Elias Tryton sei kein geringerer als Jenas Mann; das macht ihn zum heiligen Vater. Kein Wort darüber zu den Karavan!\n + \n + Auf was legen wir am meisten Wert?\n + Um ein richtiger Tryker zu werden, musst Du Dich an die Werte der Freiheit, der Gleichheit und des Teilens halten:\n + - Freiheit: Jeder Homin ist frei zu tun, was er will und er ist auch dafür verantwortlich. Ein Homin, der die Freiheit eines anderen Homin verletzt, verstößt gegen den Homin-Rechtsakt, der zufälligerweise als erstes vom Tryker-Rat aufgesetzt wurde.\n + - Gleichheit: Jeder Homin hat das gleiche Recht auf Bewegungsfreiheit, Bildung, den Abbau der natürlichen Ressourcen und die Bestimmung seines Schicksals, solange er damit nicht andere Homin-Rechte verletzt.\n + - Teilen: Wir glauben daran, dass unsere Stärke in unserer Solidarität liegt und dass Solidarität aus dem Teilen entsteht. Wenn wir alle Kinder Jenas davon überzeugen könnten, so wie wir Tryker zu sein, wäre die Welt sicherer!\n + \n + \n + Was ist uns verboten?\n + - Du darfst nie einen Pakt mit den Kamis eingehen oder eine Mission für sie erfüllen. Sie sind böse Dämonen und werden Dich Deiner Seele berauben.\n + - Breche nie Jenas Gesetz.\n + - Es ist verboten, Drachenfeuer im Land auszubreiten. Dadurch wird es unfruchtbar.\n + - Führe nie Missionen für feindliche Stämme durch.\n + - Wenn Du Dich unter die Oberfläche von Atys wagst, sei vorsichtig, dass Du den gefürchteten Drachen des Untergangs nicht aufweckst.\n + \n + Was sind unsere Ziele ?\n + Seit wir aus den Urwurzeln wieder aufgestiegen sind, haben wir stabile Grundlagen für unsere zukünftige Zivilisation ohne Tyrannei und Intoleranz gelegt, in der alle Kinder Jenas in Frieden leben können. Jetzt wo unsere junge Gesellschaft floriert, müssen wir sie groß und mächtig machen! Wir müssen starke und eng miteinander verbundene Gilden gründen, um das Wort Jenas zu verbreiten und die Ungläubigen vom Einfluss der Kamis zu befreien. Dafür müssen wir unser Wissen vertiefen, um noch bessere Werkzeuge und Waffen herstellen zu können. Doch während des großen Schwarms ist viel Wissen verloren gegangen. Dieses Wissen und mehr aufzudecken, wird die Tore zu den Geheimnissen der Vergangenheit öffnen.\n + \n + Wer sind unsere Freunde ?\n + Seit dem im Jahre 2515 unterzeichneten Friedensabkommen von Fairhaven leben wir in Frieden mit den anderen Homin-Völkern. Doch das hält uns nicht davon ab, manche mehr zu mögen als andere.\n + - Matis: Trotz vergangener Streitereien und Missverständnisse respektieren die Matis jetzt unsere Denkfreiheit und unser Recht, unsere Gesellschaft nach unseren Vorstellungen aufzubauen. Was wirklich zählt ist ja, dass wir den Glauben an Jena teilen. Dank Jena ist unsere Freundschaft besser denn je; vor Allem seit die Matis den Homin-Rechtsakt ratifiziert haben. Darüber hinaus verdanken die Matis uns bis zu einem bestimmten Grad ihre Freiheit nach der Diktatur von Jinovitch. Der Tryker-Rat hat Yrkanis nicht nur politisches Asyl in Fairhaven gewährt, sondern Still Wyler hat ihn auch zurück in die Matisländer eskortiert, um Jinovitch vom Thron zu stürzen.\n + - Fyros: Die Fyros waren einst Alliierte, die unseren Bedarf an Schutz ausnutzten, indem sie uns Fyros-Städte mit Waren zu einem niedrigen Preis beliefern ließen. Seit wir in der Lage sind, uns selbst zu verteidigen, sind wir nicht mehr auf die Fyros-Beschützer angewiesen, insbesondere da wir uns auch den Matis jetzt verbundener fühlen. Darüber hinaus sind die Fyros den Kamis näher gekommen.\n + - Zoraï: Den Zoraï ist kein Vertrauen zu schenken: Mit ihrer Verehrung der Kamis brechen sie offen das Gesetz Jenas. Darüber hinaus haben die Zoraï es uns während des Großen Schwarmes verweigert, uns durch ihre große Mauer zu lassen, worauf hin Tausende von Trykern in den Klauen der Kitins umkamen. Vor Kürzerem waren es die Zoraï, die als Erste die Sklaverei in den neuen Ländern einführten.\n + - Freundlich gesinnte Stämme beinhalten: die Frahar-Jäger, die Lehmbildhauer, die Korsare, die Gischtläufer, die Schattenschmuggler, die Grünen Samen, die Scharlachroten Söldner, die Ökokrieger, die Brunnengräber und die Kuilde.\n + \n + \n + \n + Wer sind unsere Feinde?\n + - Die Kamis sind ein böses Verderbnis; sie versuchen, deinen Geist mit ihrer Magie in Besitz zu nehmen, nur um Dich zu beherrschen. Sie gehören ausgerottet. Die Kitins sind unser größter Feind. Sie haben Tausende von Trykern umgebracht und unsere wundervollen schwimmenden Städte in den alten Ländern von Trykoth zerstört.\n + - Der Drache wurde zwar noch nie gesehen, doch wir wissen, dass er irgendwo im tiefsten Inneren von Atys lauert.\n + - Zu den feindlichen Stämmen gehören: die Sapsammler, die Chlorogoos, die Gesetzlosen, die Lagunenbrüder, die Sklaventreiber, die Tutoren, die Alten Dryaden, die Wüstenplünderer, die Matiagoo.\n + - Banditen: Pass gut auf Gesetzlose, Diebe und Halsaufschneider auf, sie lauern überall.\n + - Raubtiere: Es gibt eine Menge gemeingefährlicher Raubtiere auf Atys. Pass auf wohin Du gehst, wenn Du nicht in ihrem Magen landen willst!\n + \n + Wie kann ich meinem Volk helfen?\n + Ganz einfach: Ob du Handwerker, Ernter, Magier oder Krieger bist, wir brauchen Dich!\n + - Wir brauchen Krieger, die unsere territorialen Rechte verteidigen und unseren Wachstumsbedarf decken.\n + - Wir benötigen gute Handwerker, um alltägliche Gegenstände und Waffen herzustellen. Und wir brauchen Ernter, die das Rohmaterial sammeln, das wir fürs Essen und zur Verarbeitung benötigen.\n + - Wir brauchen auch Magier, die erschaffene Gegenstände verzaubern, Ernter beschützen, Krieger im Kampf heilen und den Feind auf Trab halten.\n + \n + Was kann ich von meinem Volk erwarten?\n + - Training von unseren besten Lehrern.\n + - Unser Volk wird von Gilden verteidigt, die auch Dir zu Hilfe kommen, wenn Du einer davon beitrittst.\n + - Je mehr du im Sinne unseres Volkes handelst, desto besser werden Deine Heldentaten belohnt werden!\n + \n + Was ist unser neues Land?\n + Unser Volk hat 2483 die Seenlande zu seiner neuen Heimat auserkoren, nachdem wir aus den Urwurzeln in die neuen Länder aufgestiegen sind. Die Länder der Seen sind der magischste Ort von Atys. Doch Du musst auf der Hut sein, es ist kein Ort für Schwächlinge! Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den langen Weg aus den alten Ländern auf sich genommen haben; den Weg, den auch Du tapfer begangen hast, Homin.\n + \n + Was kann ich von Atys, unserem Planeten, erwarten?\n + Atys ist eine Mine an natürlichen Ressourcen, Tryker. Mit der Zeit wirst Du lernen, gut mit ihnen zu überleben. Je mehr Du deine Fertigkeiten über die Welt verbesserst, desto besser wirst Du die Beschaffenheit des Landes kennenlernen und in der Lage sein, neue Gebiete zu erschließen.] // HASH_VALUE 89DF5206BCA0DF71 // INDEX 4838 uiAppear_Infos_Zorai [DIE ZORAÏ-ZIVILISATION\n - \n - Unsere Gesellschaft beruht auf dem Erreichen der spirituellen Vollendung, Weisheit und dem Respekt der Natur. Über die Jahrhunderte haben wir eine Beziehung zu den Kamis aufgebaut – göttliche Entitäten, die von Ma-Duk gesandt wurden, dem Erschaffer von Atys. Wir sind stolz, die Kamimaske zu tragen, die uns von Homin-Rassen unterscheidet, welche uns spirituell unterlegen sind.\n - Wir haben nach Wissen gestrebt, wo andere nur ihren persönlichen Gewinn im Sinn hatten. Wir waren die Ersten, die das gesprochene Wort niedergeschrieben haben, um das Wissen unserer Ahnen aufzubewahren. Unsere Gesellschaft hat sich um atemberaubende Tempelstädte herum aufgebaut, in denen große Zeremonien gefeiert wurden, um die Seuche aufzuhalten, die die Flora befällt und gegen die die Kamis nicht in der Lage waren, selbst vorzugehen.\n - Seit dem zerstörerischen Schwarm der Kitins haben wir unsere neuen Städte inmitten des verzaubernden Dschungels, in dem der Goo-Befall am größten ist, erneut errichtet\n - Wir streben jetzt danach, die Größe unserer vergangenen Dynastie wiederherzustellen und sie als Zeichen der Weisheit erstrahlen zu lassen. Wir sind darauf erpicht, ein spirituelles Bewusstsein in der Welt zu verbreiten, sodass alle Homin-Völker ewige Glückseligkeit erreichen.\n - Wenn Du glaubst, dass mehr im Leben steckt, als das Auge zu sehen vermag, dann brauchen wir Dich! Stelle jetzt Deine Fragen und lasse Deinen Geist ruhen...\n - \n - \n - Wer bin ich? \n - Du bist ein junger Homin-Flüchtling. Du hast die Weisheit bewiesen, dem Ruf unseres Volkes zu folgen und hast den langen und beschwerlichen Weg aus den alten Landen auf Dich genommen. In den letzten 44 Jahren haben wir begonnen, die Grundlagen unserer Gesellschaft in diesen neuen, vielversprechenden Ländern wiederaufzubauen, und wir brauchen Deine Hilfe. Nach einer Phase des Lernens wirst Du in der Lage sein, Deine Fertigkeiten in die Tat umzusetzen und beim Wiederaufbau unserer Zivilisation zu helfen. \n - \n - Wer sind meine Vorfahren? \n - Deine Vorfahren hatten eine Gesellschaft aufgebaut, die um magnetische Tempelstädte herum organisiert war, in denen große Zeremonien zur spirituellen Erleuchtung abgehalten wurden. Es ist an Deiner Generation, diese Flamme wieder zum Brennen zu bringen und unsere Zivilisation wieder als die spirituellen Anführer erleuchten zu lassen. Du bist in der Wildnis aufgewachsen, in die Deine Großeltern sich vor den Kitin-Massakern im Jahre 2481 geflüchtet haben. Deine Eltern haben gut daran getan, Dir nahe zu legen, Dein dortiges, unglückseliges Leben aufzugeben und den weiten Weg zum Rest Deines Volkes auf Dich zu nehmen. Du bist jahrelang gereist, doch jetzt hast Du uns gefunden. Dein neues Leben hat gerade erst begonnen.\n - \n - Wer ist unser Chef? \n - Mabreka, der Große Weise, ist unser spiritueller Anführer. Du musst dorthin gehen, wohin er Dich leitet; seine Aura leuchtet wie ein Stern in der Nacht und leitet unsere Seelen. Folge seinem Licht, und auch Du wirst unter Deinem Volk glänzen. Sehe es als große Ehre an, wenn Du auserwählt bist, eine Mission für ihn durchzuführen – der Ausgang wird Deine Vertrauenswürdigkeit unter Beweis stellen. Cuan Sa-Ki und Shon Wo-Can sind die großen Gurus, die ihn beraten.\n - \n - Was ist unser Glauben? \n - Wir verehren die übermächtige Lebensenergie, die Atys erschaffen hat: Ma-Duk. Ma-Duk ist durch die Kamis auf Atys präsent, welche seine Schöpfung überwachen. Vergesse nicht Homin, dass die Kamis beschützt werden müssen – es liegt an Dir und Deinem Einsatz, wie schnell Du an Verdienst gewinnst und zur völligen Erleuchtung gelangst. Beschenke sie und tu ihnen Gefallen, wann immer du kannst, und sie werden Dir ihre Magiekünste beibringen. \n - \n - Was sind unsere Werte? \n - Um als richtiger Zoraï wiedergeboren zu werden, musst Du dein Leben auf die Grundlagen der Weisheit, der spirituellen Vollendung und dem Respekt für die Natur aufbauen.\n - - Weisheit: Um den Kamis besser zu dienen, ist es wichtig, sich selbst, sein Volk und Atys besser kennenzulernen. Mit zunehmendem Wissen wirst Du auch lernen, wie Du Atys, die Kamis und Dein Volk besser gegen barbarische Taten schützen kannst.\n - - Spirituelle Vollendung: Du musst nach Anerkennung für Deine Seele streben, um zur Erleuchtung zu gelangen. Dafür musst Du nicht nur Deine persönliche Beziehung zu den Kamis kräftigen, sondern auch ihre erleuchteten Lehren unter anderen Homins verbreiten, damit auch Du die vollendete Glückseligkeit erfährst.\n - - Respekt der Natur: Unsere Kultur beruht auf einem tiefen Respekt für die Natur. Du musst Dich vor einer übertriebenen Ausnutzung und dem Feuer hüten und um jeden Preis gegen das Goo kämpfen, gegen das die Kamis keine Macht haben.\n - \n - \n - Was sind unsere Verbote? \n - - Du darfst keine Geschäfte mit den Karavan eingehen. Sie sind der Feind der Kamis und versuchen, uns bei der Bekämpfung des Goo aufzuhalten. Indem Du Rohmaterial für die Karavan sammelst, machst Du Dich der Ausbeutung des Planeten schuldig, den wir verehren. Die Karavan sind für die schrittweise Erschöpfung der Ressourcen und die Zerstörung der Umwelt verantwortlich.\n - - Mache dich nie über die Kamis lustig und widerspreche ihnen nicht. Sie handeln für das Gute von Atys.\n - - Es ist verboten, Feuer zu legen. Es entzieht dem Boden seinen Reichtum und er wird unfruchtbar. \n - - Führe nie Missionen für feindliche Stämme durch.\n - \n - Was sind unsere Ziele?\n - In den letzten 44 Jahren haben wir gewissenhaft den Grundstein für unsere Zivilisation gelegt. Jetzt müssen wir:\n - - Unsere persönlichen Stärken und Fertigkeiten entwickeln. \n - - Unsere Dynastie glänzen lassen und uns für ein spirituelles Bewusstsein rund um die Kami-Verehrung in allen neu gegründeten Ländern einsetzen.\n - - Starke Gilden gründen, die die Homin-Rassen vom Einfluss der Karavan befreien. Dann könnten wir uns alle verbünden, um gegen das Goo zu kämpfen und aus dieser Welt eine bessere Welt zu machen. \n - - Das Wissen wiederfinden, das während des Großen Schwarms versteckt wurde. Wenn Du dieses Wissen aufdeckst, wirst Du in der Lage sein, die Tore zu den Geheimnissen der Vergangenheit zu öffnen.\n - \n - Wer sind unsere Freunde?\n - Seit dem Friedensabkommen, das 2515 in Fairhaven unterzeichnet wurde, leben wir in Frieden mit den anderen Homin-Völkern. Doch auch zehn Jahre Frieden können die vielen Jahre Barbarei nicht wettmachen, die in den anderen Homingebieten herrschten. Trotzdem finden wir, dass manche Homins ehrenwerter sind als andere.\n - Fyros: Die Fyros sind unverfrorene und dennoch vorsichtige Krieger, die sich in letzter Zeit als vertrauenswürdig erwiesen haben. Sie haben große Fortschritte in ihrer spirituellen Entwicklung gemacht und haben sich eindeutig für die Kamis entschieden.\n - Tryker: Der Geist der Tryker ist noch nicht bereit, die Kami-Erleuchtung zu akzeptieren. Sie sind von geringerem spirituellen Wert. Sie sollen die Kamis in der Vergangenheit nicht nur mit Frivolität behandelt haben, sondern sie verehren auch die Kami-feindlichen Karavan.\n - Matis: Wir müssen versuchen, die Matis vom Einfluss der Karavan zu befreien und sie von der Lebensart der Kamis zu überzeugen. Deshalb wurde dem jetzigen Matis-König Yrkanis 2509 in Zora Unterschlupf gewährt, wo er half, eine Armee auszuheben, um den extremistischen Karavan-Monarchen Jinovitch zu stürzen und eine tolerantere Regierung an die Macht zu bringen. Das war der erste Schritt, um die Matis in die Kami-Welt zu locken. Doch das Gerücht geht um, es gäbe eine wachsende Opposition gegen Yrkanis in seinem eigenen Königreich. Wir müssen vorsichtig bleiben! \n - Freundlich gesinnte Stämme beinhalten: die Rindengräber, die Dünenreiter, die Gischtläufer, die Lagunenbrüder, die Tutoren, die Matis-Amazonen, die Ökokrieger, die Brunnengräber, Heiliges Sap und die Geschwister der Pflanzen. \n - \n - Wer sind unsere Feinde?\n - - Die Karavan: Sie sind gegen die Kamis und haben unter schwachen Geistern einen blinden Gehorsam ihrer Göttin Jena gegenüber verbreitet. Unseren Vorfahren, und vor Kürzerem auch den Fyros, ist es gelungen, sich aus ihrem Bann zu lösen. Wir müssen den andern Völkern helfen, das Gleiche zu tun.\n - - Die Kitins: Diese gigantischen Insekten haben Tausende von Zoraï während des Großen Schwarms massakriert und unsere Dynastie in den alten Ländern zerstört. \n - - Das Goo: Er ist eine Seuche für unseren Planeten. Es greift die Kamis an und muss ausgelöscht werden.\n - - Zu den feindlichen Stämmen gehören: die Kakerlaken, der Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Meister des Goo, die Antikamis, die Erleuchteten des Goo, die Wüstenplünderer und die Matiagoo.\n - - Banditen: Gebe Acht auf Gesetzlose, Räuber und Halsabschneider, junger Homin. Sie legen keinen Wert auf Dein Leben, wenn sie daraus Profit ziehen können.\n - - Raubtiere: Im Dschungel haben viele wilde Tiere ihr Zuhause und viele von ihnen greifen Homins an, sobald sie ihnen unter die Augen kommen.\n - \n - Wie kann ich meinem Volk helfen?\n - Um in der Lage zu sein, unsere Tempelstädte zu errichten und unserer Rolle als spirituelle Anführer von Atys gerecht zu werden, müssen wir stark genug sein, jeglicher Opposition standzuhalten. \n - Deshalb müssen wir mehr Handwerker, Ernter, Magier und Krieger rekrutieren. Wir brauchen Krieger, um unser Hoheitsgebiet zu verteidigen und neue Zentren zur Kami-Verehrung zu errichten. \n - Wir benötigen Handwerker, um alltägliche Gegenstände und Waffen herzustellen; und Ernter, die das nötige Rohmaterial als Nahrung und für das Handwerk abbauen. \n - Wir brauchen Magier, um hergestellte Gegenstände zu verzaubern, Ernter zu beschützen, Krieger zu heilen und dem Feind die Stirn zu bieten.\n - \n - Was kann ich von meinem Volk erwarten?\n - - Ausbildung durch unsere Experten. \n - - Unser Volk wird von Gilden verteidigt, die Dir zur Hilfe kommen können, sobald Du einer beigetreten bist. \n - - Je mehr Du im Sinn Deines Volkes handelst, desto besser werden Deine edlen Taten belohnt werden.\n - \n - \n - Was ist unser neues Land?\n - Nach dem Aufstieg aus den Urwurzeln der neuen Länder im Jahre 2483 haben wir neue Stätten inmitten des Dschungels gesichert, wo die Kamis uns am Meisten brauchen. Der Dschungel ist zwar der verzaubertste Ort auf Atys, doch er muss gehegt und gepflegt werden, da das Goo dort am gefährlichsten ist. Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den Weg aus den alten Ländern zu uns gefunden haben – genau den Weg, den auch Du tapfer gegangen bist, Homin.\n - \n - Was kann ich von Atys, unserer Welt, erwarten? \n - Atys ist reich an natürlichen Ressourcen, junger Homin. Du kannst Dich davon bedienen, vorausgesetzt, Du respektierst die Umwelt. Wenn nicht, werden die Kamis Dich bestrafen, als seist Du vom Blitz getroffen worden!\n - Mit der Entdeckung der Welt wirst Du die Lage des Landes kennen lernen, einen wichtigen Übergangsritus, wenn Du neues Land beanspruchen willst, Homin.] + \n + Unsere Gesellschaft beruht auf dem Erreichen der spirituellen Vollendung, Weisheit und dem Respekt der Natur. Über die Jahrhunderte haben wir eine Beziehung zu den Kamis aufgebaut – göttliche Entitäten, die von Ma-Duk gesandt wurden, dem Erschaffer von Atys. Wir sind stolz, die Kamimaske zu tragen, die uns von Homin-Rassen unterscheidet, welche uns spirituell unterlegen sind.\n + Wir haben nach Wissen gestrebt, wo andere nur ihren persönlichen Gewinn im Sinn hatten. Wir waren die Ersten, die das gesprochene Wort niedergeschrieben haben, um das Wissen unserer Ahnen aufzubewahren. Unsere Gesellschaft hat sich um atemberaubende Tempelstädte herum aufgebaut, in denen große Zeremonien gefeiert wurden, um die Seuche aufzuhalten, die die Flora befällt und gegen die die Kamis nicht in der Lage waren, selbst vorzugehen.\n + Seit dem zerstörerischen Schwarm der Kitins haben wir unsere neuen Städte inmitten des verzaubernden Dschungels, in dem der Goo-Befall am größten ist, erneut errichtet\n + Wir streben jetzt danach, die Größe unserer vergangenen Dynastie wiederherzustellen und sie als Zeichen der Weisheit erstrahlen zu lassen. Wir sind darauf erpicht, ein spirituelles Bewusstsein in der Welt zu verbreiten, sodass alle Homin-Völker ewige Glückseligkeit erreichen.\n + Wenn Du glaubst, dass mehr im Leben steckt, als das Auge zu sehen vermag, dann brauchen wir Dich! Stelle jetzt Deine Fragen und lasse Deinen Geist ruhen...\n + \n + \n + Wer bin ich?\n + Du bist ein junger Homin-Flüchtling. Du hast die Weisheit bewiesen, dem Ruf unseres Volkes zu folgen und hast den langen und beschwerlichen Weg aus den alten Landen auf Dich genommen. In den letzten 44 Jahren haben wir begonnen, die Grundlagen unserer Gesellschaft in diesen neuen, vielversprechenden Ländern wiederaufzubauen, und wir brauchen Deine Hilfe. Nach einer Phase des Lernens wirst Du in der Lage sein, Deine Fertigkeiten in die Tat umzusetzen und beim Wiederaufbau unserer Zivilisation zu helfen.\n + \n + Wer sind meine Vorfahren?\n + Deine Vorfahren hatten eine Gesellschaft aufgebaut, die um magnetische Tempelstädte herum organisiert war, in denen große Zeremonien zur spirituellen Erleuchtung abgehalten wurden. Es ist an Deiner Generation, diese Flamme wieder zum Brennen zu bringen und unsere Zivilisation wieder als die spirituellen Anführer erleuchten zu lassen. Du bist in der Wildnis aufgewachsen, in die Deine Großeltern sich vor den Kitin-Massakern im Jahre 2481 geflüchtet haben. Deine Eltern haben gut daran getan, Dir nahe zu legen, Dein dortiges, unglückseliges Leben aufzugeben und den weiten Weg zum Rest Deines Volkes auf Dich zu nehmen. Du bist jahrelang gereist, doch jetzt hast Du uns gefunden. Dein neues Leben hat gerade erst begonnen.\n + \n + Wer ist unser Chef?\n + Mabreka, der Große Weise, ist unser spiritueller Anführer. Du musst dorthin gehen, wohin er Dich leitet; seine Aura leuchtet wie ein Stern in der Nacht und leitet unsere Seelen. Folge seinem Licht, und auch Du wirst unter Deinem Volk glänzen. Sehe es als große Ehre an, wenn Du auserwählt bist, eine Mission für ihn durchzuführen – der Ausgang wird Deine Vertrauenswürdigkeit unter Beweis stellen. Cuan Sa-Ki und Shon Wo-Can sind die großen Gurus, die ihn beraten.\n + \n + Was ist unser Glauben?\n + Wir verehren die übermächtige Lebensenergie, die Atys erschaffen hat: Ma-Duk. Ma-Duk ist durch die Kamis auf Atys präsent, welche seine Schöpfung überwachen. Vergesse nicht Homin, dass die Kamis beschützt werden müssen – es liegt an Dir und Deinem Einsatz, wie schnell Du an Verdienst gewinnst und zur völligen Erleuchtung gelangst. Beschenke sie und tu ihnen Gefallen, wann immer du kannst, und sie werden Dir ihre Magiekünste beibringen.\n + \n + Was sind unsere Werte?\n + Um als richtiger Zoraï wiedergeboren zu werden, musst Du dein Leben auf die Grundlagen der Weisheit, der spirituellen Vollendung und dem Respekt für die Natur aufbauen.\n + - Weisheit: Um den Kamis besser zu dienen, ist es wichtig, sich selbst, sein Volk und Atys besser kennenzulernen. Mit zunehmendem Wissen wirst Du auch lernen, wie Du Atys, die Kamis und Dein Volk besser gegen barbarische Taten schützen kannst.\n + - Spirituelle Vollendung: Du musst nach Anerkennung für Deine Seele streben, um zur Erleuchtung zu gelangen. Dafür musst Du nicht nur Deine persönliche Beziehung zu den Kamis kräftigen, sondern auch ihre erleuchteten Lehren unter anderen Homins verbreiten, damit auch Du die vollendete Glückseligkeit erfährst.\n + - Respekt der Natur: Unsere Kultur beruht auf einem tiefen Respekt für die Natur. Du musst Dich vor einer übertriebenen Ausnutzung und dem Feuer hüten und um jeden Preis gegen das Goo kämpfen, gegen das die Kamis keine Macht haben.\n + \n + \n + Was sind unsere Verbote?\n + - Du darfst keine Geschäfte mit den Karavan eingehen. Sie sind der Feind der Kamis und versuchen, uns bei der Bekämpfung des Goo aufzuhalten. Indem Du Rohmaterial für die Karavan sammelst, machst Du Dich der Ausbeutung des Planeten schuldig, den wir verehren. Die Karavan sind für die schrittweise Erschöpfung der Ressourcen und die Zerstörung der Umwelt verantwortlich.\n + - Mache dich nie über die Kamis lustig und widerspreche ihnen nicht. Sie handeln für das Gute von Atys.\n + - Es ist verboten, Feuer zu legen. Es entzieht dem Boden seinen Reichtum und er wird unfruchtbar.\n + - Führe nie Missionen für feindliche Stämme durch.\n + \n + Was sind unsere Ziele?\n + In den letzten 44 Jahren haben wir gewissenhaft den Grundstein für unsere Zivilisation gelegt. Jetzt müssen wir:\n + - Unsere persönlichen Stärken und Fertigkeiten entwickeln.\n + - Unsere Dynastie glänzen lassen und uns für ein spirituelles Bewusstsein rund um die Kami-Verehrung in allen neu gegründeten Ländern einsetzen.\n + - Starke Gilden gründen, die die Homin-Rassen vom Einfluss der Karavan befreien. Dann könnten wir uns alle verbünden, um gegen das Goo zu kämpfen und aus dieser Welt eine bessere Welt zu machen.\n + - Das Wissen wiederfinden, das während des Großen Schwarms versteckt wurde. Wenn Du dieses Wissen aufdeckst, wirst Du in der Lage sein, die Tore zu den Geheimnissen der Vergangenheit zu öffnen.\n + \n + Wer sind unsere Freunde?\n + Seit dem Friedensabkommen, das 2515 in Fairhaven unterzeichnet wurde, leben wir in Frieden mit den anderen Homin-Völkern. Doch auch zehn Jahre Frieden können die vielen Jahre Barbarei nicht wettmachen, die in den anderen Homingebieten herrschten. Trotzdem finden wir, dass manche Homins ehrenwerter sind als andere.\n + Fyros: Die Fyros sind unverfrorene und dennoch vorsichtige Krieger, die sich in letzter Zeit als vertrauenswürdig erwiesen haben. Sie haben große Fortschritte in ihrer spirituellen Entwicklung gemacht und haben sich eindeutig für die Kamis entschieden.\n + Tryker: Der Geist der Tryker ist noch nicht bereit, die Kami-Erleuchtung zu akzeptieren. Sie sind von geringerem spirituellen Wert. Sie sollen die Kamis in der Vergangenheit nicht nur mit Frivolität behandelt haben, sondern sie verehren auch die Kami-feindlichen Karavan.\n + Matis: Wir müssen versuchen, die Matis vom Einfluss der Karavan zu befreien und sie von der Lebensart der Kamis zu überzeugen. Deshalb wurde dem jetzigen Matis-König Yrkanis 2509 in Zora Unterschlupf gewährt, wo er half, eine Armee auszuheben, um den extremistischen Karavan-Monarchen Jinovitch zu stürzen und eine tolerantere Regierung an die Macht zu bringen. Das war der erste Schritt, um die Matis in die Kami-Welt zu locken. Doch das Gerücht geht um, es gäbe eine wachsende Opposition gegen Yrkanis in seinem eigenen Königreich. Wir müssen vorsichtig bleiben!\n + Freundlich gesinnte Stämme beinhalten: die Rindengräber, die Dünenreiter, die Gischtläufer, die Lagunenbrüder, die Tutoren, die Matis-Amazonen, die Ökokrieger, die Brunnengräber, Heiliges Sap und die Geschwister der Pflanzen.\n + \n + Wer sind unsere Feinde?\n + - Die Karavan: Sie sind gegen die Kamis und haben unter schwachen Geistern einen blinden Gehorsam ihrer Göttin Jena gegenüber verbreitet. Unseren Vorfahren, und vor Kürzerem auch den Fyros, ist es gelungen, sich aus ihrem Bann zu lösen. Wir müssen den andern Völkern helfen, das Gleiche zu tun.\n + - Die Kitins: Diese gigantischen Insekten haben Tausende von Zoraï während des Großen Schwarms massakriert und unsere Dynastie in den alten Ländern zerstört.\n + - Das Goo: Er ist eine Seuche für unseren Planeten. Es greift die Kamis an und muss ausgelöscht werden.\n + - Zu den feindlichen Stämmen gehören: die Kakerlaken, der Chlorogoos, die Gesetzlosen, die Enthäuteten, die Lagunenbrüder, die Meister des Goo, die Antikamis, die Erleuchteten des Goo, die Wüstenplünderer und die Matiagoo.\n + - Banditen: Gebe Acht auf Gesetzlose, Räuber und Halsabschneider, junger Homin. Sie legen keinen Wert auf Dein Leben, wenn sie daraus Profit ziehen können.\n + - Raubtiere: Im Dschungel haben viele wilde Tiere ihr Zuhause und viele von ihnen greifen Homins an, sobald sie ihnen unter die Augen kommen.\n + \n + Wie kann ich meinem Volk helfen?\n + Um in der Lage zu sein, unsere Tempelstädte zu errichten und unserer Rolle als spirituelle Anführer von Atys gerecht zu werden, müssen wir stark genug sein, jeglicher Opposition standzuhalten.\n + Deshalb müssen wir mehr Handwerker, Ernter, Magier und Krieger rekrutieren. Wir brauchen Krieger, um unser Hoheitsgebiet zu verteidigen und neue Zentren zur Kami-Verehrung zu errichten.\n + Wir benötigen Handwerker, um alltägliche Gegenstände und Waffen herzustellen; und Ernter, die das nötige Rohmaterial als Nahrung und für das Handwerk abbauen.\n + Wir brauchen Magier, um hergestellte Gegenstände zu verzaubern, Ernter zu beschützen, Krieger zu heilen und dem Feind die Stirn zu bieten.\n + \n + Was kann ich von meinem Volk erwarten?\n + - Ausbildung durch unsere Experten.\n + - Unser Volk wird von Gilden verteidigt, die Dir zur Hilfe kommen können, sobald Du einer beigetreten bist.\n + - Je mehr Du im Sinn Deines Volkes handelst, desto besser werden Deine edlen Taten belohnt werden.\n + \n + \n + Was ist unser neues Land?\n + Nach dem Aufstieg aus den Urwurzeln der neuen Länder im Jahre 2483 haben wir neue Stätten inmitten des Dschungels gesichert, wo die Kamis uns am Meisten brauchen. Der Dschungel ist zwar der verzaubertste Ort auf Atys, doch er muss gehegt und gepflegt werden, da das Goo dort am gefährlichsten ist. Seit 2487 sind ständig Flüchtlinge zu uns gestoßen, die den Weg aus den alten Ländern zu uns gefunden haben – genau den Weg, den auch Du tapfer gegangen bist, Homin.\n + \n + Was kann ich von Atys, unserer Welt, erwarten?\n + Atys ist reich an natürlichen Ressourcen, junger Homin. Du kannst Dich davon bedienen, vorausgesetzt, Du respektierst die Umwelt. Wenn nicht, werden die Kamis Dich bestrafen, als seist Du vom Blitz getroffen worden!\n + Mit der Entdeckung der Welt wirst Du die Lage des Landes kennen lernen, einen wichtigen Übergangsritus, wenn Du neues Land beanspruchen willst, Homin.] // HASH_VALUE A9780C8C4F136771 // INDEX 4839 @@ -20406,12 +20409,12 @@ uiTaskbarIconMode [Iconmodus] // HASH_VALUE 64DC5448485400D0 // INDEX 4841 -uiTaskbarResetUI [UI zurückstellen] +uiTaskbarResetUI [UI zurücksetzen] // MILKO INTERFACE // HASH_VALUE 89A15C25C5626816 // INDEX 4842 -uimTouchpad [PAD] +uimTouchpad [TOUCHPAD] // HASH_VALUE 9023144851D43C48 // INDEX 4843 @@ -20499,7 +20502,7 @@ uiMK_Defense_1 [ABWEHRMODUS] // HASH_VALUE C9B200431063D41D // INDEX 4864 -uiMK_Action_1 [ABBAU] +uiMK_Action_1 [ROHSTOFFABBAU] // HASH_VALUE C1113B1888ADC029 // INDEX 4865 @@ -20535,19 +20538,19 @@ uiMK_MoreWin [MEHR...] // HASH_VALUE BA44D73E928F5459 // INDEX 4873 -uiMK_Game_3 [1. ARBEITSFLÄCHE] +uiMK_Game_3 [1. OBERFLÄCHE] // HASH_VALUE FA43C32F519F1454 // INDEX 4874 -uiMK_Game_4 [2. ARBEITSFLÄCHE] +uiMK_Game_4 [2. OBERFLÄCHE] // HASH_VALUE 3A43D33052AF1458 // INDEX 4875 -uiMK_Game_5 [3. ARBEITSFLÄCHE] +uiMK_Game_5 [3. OBERFLÄCHE] // HASH_VALUE 7B83DB35D3BF245A // INDEX 4876 -uiMK_Game_6 [4. ARBEITSFLÄCHE] +uiMK_Game_6 [4. OBERFLÄCHE] // HASH_VALUE 1052E4247CCF1312 // INDEX 4877 @@ -20559,7 +20562,7 @@ uiMK_Game_8 [SPIELKONFIGURATION] // HASH_VALUE 48D454105014F450 // INDEX 4879 -uiMK_Game_Desk [ARBEITSFLÄCHEN] +uiMK_Game_Desk [OberFLÄCHEN] // HASH_VALUE E3194849B0B6D7C1 // INDEX 4880 @@ -20611,7 +20614,7 @@ uiConfigErrorWritingTheFile [Fehler beim Schreiben der Datei] // HASH_VALUE 81039870774051EA // INDEX 4892 -uiConfigQuitWithoutSaving [Bist du sicher, dass du beenden willst ohne die Konfiguration gespeichert zu haben?] +uiConfigQuitWithoutSaving [Bist du sicher, dass du abbrechen willst, ohne die Konfiguration gespeichert zu haben?] // HASH_VALUE EE039F962D7D700E // INDEX 4893 @@ -20639,11 +20642,11 @@ uiConfigDisplaySysInfo [Systeminformation] // HASH_VALUE A5199378E056088A // INDEX 4899 -uiConfigDisplayOpenGLInfo [OpenGL Information] +uiConfigDisplayOpenGLInfo [OpenGL-Information] // HASH_VALUE 594A7C3DA0352B89 // INDEX 4900 -uiConfigDisplayD3DInfo [Direct3D Information] +uiConfigDisplayD3DInfo [Direct3D-Information] // HASH_VALUE EC687094A7C8549A // INDEX 4901 @@ -20679,7 +20682,7 @@ uiConfigTextureSuper [Hoch (128MB VRAM)] // HASH_VALUE 701C9488701C9488 // INDEX 4909 -uiConfigBits [bits] +uiConfigBits [Bits] // HASH_VALUE 7810A4207810A420 // INDEX 4910 @@ -20695,7 +20698,7 @@ uiConfigDriver [Treiber] // HASH_VALUE 66A22AF0BCD16D2F // INDEX 4913 -uiConfigOpenGLOrD3D [Wählen ob Ryzom in OpenGL oder Direct3D laufen soll: ] +uiConfigOpenGLOrD3D [Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: ] // HASH_VALUE E59A7CA362496CA1 // INDEX 4914 @@ -20703,7 +20706,7 @@ uiConfigParameters [Parameter] // HASH_VALUE B667779A902D697B // INDEX 4915 -uiConfigWindowedOrFullscreen [Wähle ob Ryzom im Fullscreen oder Fenstermodus laufen soll: ] +uiConfigWindowedOrFullscreen [Wähle, ob Ryzom im Vollbild- oder Fenstermodus laufen soll: ] // HASH_VALUE 24998B8634D89666 // INDEX 4916 @@ -20727,7 +20730,7 @@ uiConfigPositionY [PositionY: ] // HASH_VALUE 6CA7B090A988CC8A // INDEX 4921 -uiConfigFullscreen [Fullscreen] +uiConfigFullscreen [Vollbild] // HASH_VALUE 6498945C645874BC // INDEX 4922 @@ -20751,7 +20754,7 @@ uiConfigLandscape [Landschaft] // HASH_VALUE 6C59D70C97545BA6 // INDEX 4927 -uiConfigLOD [Detaillevel: ] +uiConfigLOD [Detailstufe (LOD): ] // HASH_VALUE EBB8908AE7A7C477 // INDEX 4928 @@ -20795,11 +20798,11 @@ uiConfigEnableEAX [EAX aktivieren] // HASH_VALUE D87530F9A0678A74 // INDEX 4938 -uiConfigEnableFMod [FMod Modus nutzen] +uiConfigEnableFMod [FMod-Modus nutzen] // HASH_VALUE DB2A146EDB66686E // INDEX 4939 -uiConfigSoundForceSoftware [Software-Sound (Kann die fps erhöhen)] +uiConfigSoundForceSoftware [Software-Sound (Kann die FPS erhöhen)] // HASH_VALUE DC49E89266A3DF8D // INDEX 4940 @@ -20823,11 +20826,11 @@ uiConfigDriverDesc [Treiber: ] // HASH_VALUE 2D1B383F3B11D4B3 // INDEX 4945 -uiConfigDriverVersion [Treiber Version: ] +uiConfigDriverVersion [Treiber-Version: ] // HASH_VALUE 0D6DFF5F9B2A41C0 // INDEX 4946 -uiConfigAdvancedComment [Verändere diese Einstellungen nur, wenn Du Probleme hast, das Spiel zu starten] +uiConfigAdvancedComment [Verändere diese Einstellungen nur, wenn du Probleme hast, das Spiel zu starten] // HASH_VALUE A27AB48484F9DCB2 // INDEX 4947 @@ -20851,7 +20854,7 @@ uiConfigMenuAbout [&Über die Ryzom Konfiguration...] // HASH_VALUE ACF4870B9739D8B6 // INDEX 4952 -uiConfigSystemInfoPhyMem [Physischer Speicher: ] +uiConfigSystemInfoPhyMem [Physikalischer Speicher: ] // HASH_VALUE A675CE4A2AAA0464 // INDEX 4953 @@ -20875,15 +20878,15 @@ uiCaracMisc [Verschiedenes] // HASH_VALUE 1099CF8010269298 // INDEX 4958 -uiTotalMalus [Gesamte Strafe ] +uiTotalMalus [Aktions-Malus ] // HASH_VALUE C9B2BB39E243FB2A // INDEX 4959 -uiBagBulk [Taschengröße ] +uiBagBulk [Taschenvolumen ] // HASH_VALUE A283A38D94F8EF4A // INDEX 4960 -uiWeightSpeedFactor [Geschwindigkeitsfaktor ] +uiWeightSpeedFactor [Laufgeschwindigkeit] // HASH_VALUE 8773A9CCE8467FD9 // INDEX 4961 @@ -20911,7 +20914,7 @@ uiUpdateDisplayDriversCard [Gerät: ] // HASH_VALUE 6860E97D0D56362B // INDEX 4967 -uiUseATID3D [Ryzom läuft aktuell unter OpenGL mit einer ATI-Karte. Wir empfehlen dringend auf D3D zu wechseln. Willst du jetzt zu D3D wechseln?] +uiUseATID3D [Ryzom läuft aktuell unter OpenGL mit einer ATI-Karte. Wir empfehlen dringend, auf D3D zu wechseln. Willst du jetzt zu D3D wechseln?] // HASH_VALUE 89273CA24287DB48 // INDEX 4968 @@ -20927,7 +20930,7 @@ uiPhraseSectionFmt [Benötigte Stufe %min-%max:] // HASH_VALUE EA668B7899D6738D // INDEX 4971 -uiSkillTree [Fähigkeitenbaum] +uiSkillTree [Fertigkeitsbaum/Aktionen] // HASH_VALUE DD459C779E500F5D // INDEX 4972 @@ -21005,7 +21008,7 @@ uittBrowseHome [Ruft die Hauptseite auf] // HASH_VALUE 0917B47E1C101853 // INDEX 4990 -uiawrSF [Alle Waffen und Nahkampf] +uiawrSF [allen Waffen und Nahkampf] // HASH_VALUE A6F76B60A6A65678 // INDEX 4991 @@ -21045,19 +21048,19 @@ uiawrSFM1P [einhändigen Stichwaffen] // HASH_VALUE 69A86C96A1B95C8B // INDEX 5000 -uiawrSFM1PS [Speer] +uiawrSFM1PS [Lanze] // HASH_VALUE 69BA203A9F42D083 // INDEX 5001 -uiawrSFM1PSE [elektrischem Speer] +uiawrSFM1PSE [elektrischer Lanze] // HASH_VALUE 24E67C769E817498 // INDEX 5002 -uiawrSFM1PSL [lebendem Speer] +uiawrSFM1PSL [lebender Lanze] // HASH_VALUE 69A86C96A1B95C8B // INDEX 5003 -uiawrSFM1PSM [Speer] +uiawrSFM1PSM [Lanze] // HASH_VALUE 66775B4B8D714A6D // INDEX 5004 @@ -21161,11 +21164,11 @@ uiawrSFM2SSW [wehendem Langschwert] // HASH_VALUE B0366B58AF743A7A // INDEX 5029 -uiawrSFMC [leichtem Nahkampf] +uiawrSFMC [Nahkampf] // HASH_VALUE B0366B58AF743A7A // INDEX 5030 -uiawrSFMCA [leichtem Nahkampf] +uiawrSFMCA [Nahkampf] // HASH_VALUE A68670542554B475 // INDEX 5031 @@ -21185,11 +21188,11 @@ uiawrSFMCADW [wehendem Dolch] // HASH_VALUE 53A860F842B8ACD0 // INDEX 5035 -uiawrSFMCAH [Faustkampf] +uiawrSFMCAH [waffenlosem Kampf] // HASH_VALUE 53A860F842B8ACD0 // INDEX 5036 -uiawrSFMCAHM [Faustkampf] +uiawrSFMCAHM [waffenlosem Kampf] // HASH_VALUE A6374B6A26C6467D // INDEX 5037 @@ -21301,7 +21304,7 @@ uiawrSFM1P_SFM2P_SFMCAD [allen Stichwaffen] // HASH_VALUE 4B8CF1AD0EA6A417 // INDEX 5064 -uiawrSFM1_SFM2_SFMCAD_SFR1_SFR2 [allen Waffen, ausser leichten Nahkampfwaffen] +uiawrSFM1_SFM2_SFMCAD_SFR1_SFR2 [allen Waffen, außer leichten Nahkampfwaffen] // HASH_VALUE 97E83B1DA08643BD // INDEX 5065 @@ -21313,7 +21316,7 @@ uiPhraseWRSeparator [, ] // HASH_VALUE 17A6C0F32AB79B83 // INDEX 5067 -uiEula [Endbenutzerlizenvertrag] +uiEula [Endbenutzer-Lizenzvertrag] // HASH_VALUE 878180150661C424 // INDEX 5068 @@ -21327,69 +21330,69 @@ uiEulaDecline [ABLEHNEN] // INDEX 5070 uiEulaContent [RYZOM-LIZENZVEREINBARUNG\n \n - INFORMATION FÜR DIE BENUTZER: DIESES DOKUMENT IST EIN VERTRAG. BEVOR SIE UNTEN AUF DEN "ICH AKZEPTIERE"-BUTTON KLICKEN UND DAMIT DIE INSTALLATION ODER REGISTRIERUNG BEENDEN, SOLLTEN SIE DIESES DOKUMENT SORGFÄLTIG DURCHLESEN. MIT KLICKEN AUF "ICH AKZEPTIERE", BESTÄTIGEN UND AKZEPTIEREN SIE DIE BEDINGUNGEN DIESES VERTRAGES UND DIE DAMIT VERBUNDENEN PFLICHTEN. WENN SIE DIESEN VERTRAG NICHT AKZEPTIEREN ODER MIT DEN BEDINGUNGEN NICHT EINVERSTANDEN SIND, KLICKEN SIE BITTE AUF "ABLEHNEN", INSTALLIEREN DIE SOFTWARE NICHT (ODER DEINSTALLIEREN SIE SIE, FALLS SCHON INSTALLIERT) UND BENUTZEN SIE DIE SOFTWARE NICHT. WENN SIE AUF "ABLEHNEN" KLICKEN UND SIE SELBST DAS SPIEL AUF CD-ROM GEKAUFT HABEN, RATEN WIR IHNEN, SICH MIT IHREM HÄNDLER IN VERBINDUNG ZU SETZEN, UM DAS GELD ENTSPRECHEND DER RÜCKGABEBEDINGUNGEN DES JEWEILIGEN HÄNDLERS ZURÜCKERSTATTET ZU BEKOMMEN. EINE RÜCKERSTATTUNG VON ABONNEMENTGEBÜHREN, WELCHE SIE BEREITS BEZAHLT HABEN ODER WELCHE IM PREIS DER CD-ROM INBEGRIFFEN SEIN KANN, IST UNTER KEINEN UMSTÄNDEN MÖGLICH, INSOFERN SIE DEN VERTRAG NICHT ANERKENNEN UND "ABLEHNEN" KLICKEN. Sollten Sie Schwierigkeiten in Bezug auf diese Lizenzvereinbarung haben, kontaktieren Sie bitte den Ryzom Kundenservice unter der folgenden Emailadresse: support@ryzom.com\n + INFORMATION FÜR DIE BENUTZER: DIESES DOKUMENT IST EIN VERTRAG. BEVOR SIE UNTEN AUF DEN "ICH AKZEPTIERE"-BUTTON KLICKEN UND DAMIT DIE INSTALLATION ODER REGISTRIERUNG BEENDEN, SOLLTEN SIE DIESES DOKUMENT SORGFÄLTIG DURCHLESEN. MIT ANKLICKEN VON "ICH AKZEPTIERE" BESTÄTIGEN UND AKZEPTIEREN SIE DIE BEDINGUNGEN DIESES VERTRAGES UND DIE DAMIT VERBUNDENEN PFLICHTEN. WENN SIE DIESEN VERTRAG NICHT AKZEPTIEREN ODER MIT DEN BEDINGUNGEN NICHT EINVERSTANDEN SIND, KLICKEN SIE BITTE AUF "ABLEHNEN", INSTALLIEREN SIE DIE SOFTWARE NICHT (ODER DEINSTALLIEREN SIE SIE, FALLS SCHON INSTALLIERT) UND BENUTZEN SIE DIE SOFTWARE NICHT. WENN SIE AUF "ABLEHNEN" KLICKEN UND SIE DAS SPIEL AUF CD-ROM GEKAUFT HABEN, RATEN WIR IHNEN, SICH MIT IHREM HÄNDLER IN VERBINDUNG ZU SETZEN, UM DAS GELD ENTSPRECHEND DER RÜCKGABEBEDINGUNGEN DES JEWEILIGEN HÄNDLERS ZURÜCKERSTATTET ZU BEKOMMEN. EINE RÜCKERSTATTUNG VON ABONNEMENTGEBÜHREN, WELCHE SIE BEREITS BEZAHLT HABEN ODER WELCHE IM PREIS DER CD-ROM INBEGRIFFEN SEIN KÖNNEN, IST UNTER KEINEN UMSTÄNDEN MÖGLICH, INSOFERN SIE DEN VERTRAG NICHT ANERKENNEN UND "ABLEHNEN" KLICKEN. Sollten Sie Schwierigkeiten in Bezug auf diese Lizenzvereinbarung haben, kontaktieren Sie bitte den Ryzom - Kundenservice unter der folgenden Emailadresse: support@ryzom.com\n \n - 1. GEGENSTAND DES VERTRAGES. Die Ryzom Lizenzvereinbarung (hier im Weiteren auf den "Vertrag" bezogen) ist ein Vertrag zwischen Ihnen und Winch Gate Property Limited ("Winch Gate" oder "Wir/Uns"). Sein Zweck ist es, die Bedingungen aufzuzeigen, unter welchen Winch Gate die folgenden Leistungen (wie weiter unten in Paragraph 2 definiert) für die autorisierten Benutzer in Bezug auf das Massively Multiplayer Onlinegame Ryzom ("Ryzom" oder "das Spiel" oder "Ryzom Ring") zur Verfügung stellen wird. Die Leistungen umfassen die Eröffnung und Erhaltung eines Accounts, der es dem Benutzer ermöglicht, das Spiel über das Internet zu spielen und Nutzung des Spieles sicherzustellen.\n + 1. GEGENSTAND DES VERTRAGES. Die Ryzom-Lizenzvereinbarung (hier im Folgenden der "Vertrag" genannt) ist ein Vertrag zwischen Ihnen und Winch Gate Property Limited ("Winch Gate" oder "Wir/Uns"). Sein Zweck ist es, die Bedingungen aufzuzeigen, unter welchen Winch Gate die folgenden Leistungen (wie weiter unten in Paragraph 2 definiert) für die autorisierten Benutzer in Bezug auf das Massively Multiplayer Onlinegame Ryzom ("Ryzom" oder "das Spiel" genannt, inkludiert auch "Ryzom Ring") zur Verfügung stellen wird. Die Leistungen umfassen die Eröffnung und Erhaltung eines Accounts, der es dem Benutzer ermöglicht, das Spiel über das Internet zu spielen und die Nutzung des Spieles sicherzustellen.\n \n - 2. AUTORISIERTE BENUTZER. Nur natürliche Personen, die die Volljährigkeit erreicht haben, können einen Account eröffnen, entweder für ihre eigene Nutzung oder für ihre minderjährigen Kinder, um ihnen zu ermöglichen, Ryzom zu spielen. Sollten Sie minderjährig sein, müssen Ihre Eltern für Ihren Account unterschreiben und die Bedingungen dieses Vertrages annehmen. Nach den Bestimmungen dieses Vertrages hat eine minderjährige Person die gesetzliche Volljährigkeit nach dem gültigen Gesetz des für ihn zuständigen Landes noch nicht erreicht. Nur Benutzer, die (a) das Spiel gekauft oder die orginal CD-ROMs des Spiels legitim erstanden haben, (b) einen aktuellen Zugang und ein gültiges Abonnement besitzen und (c) über eine Internetverbindung verfügen, sind autorisiert, Ryzom zu spielen. Autorisierte Benutzer werden im Weiteren als "Benutzer" beschrieben.\n + 2. AUTORISIERTE BENUTZER. Nur natürliche Personen, die die Volljährigkeit erreicht haben, sind berechtigt, einen Account zu eröffnen, entweder zur eigenen Nutzung oder für ihre minderjährigen Kinder, um diesen zu ermöglichen, Ryzom zu spielen. Sollten Sie minderjährig sein, müssen Ihre Eltern oder Erziehungsberechtigten für Ihren Account unterschreiben und die Bedingungen dieses Vertrages akzeptieren. Nach den Bestimmungen dieses Vertrages ist eine "minderjährige" Person eine, die die gesetzliche Volljährigkeit nach dem gültigen Gesetz des für sie zuständigen Landes noch nicht erreicht hat. Nur Benutzer, die (a) das Spiel online gekauft oder die orginal CD-ROMs des Spiels legitim erstanden haben, (b) einen aktuellen Zugang und ein gültiges Abonnement (bezieht auch kostenlose Test-Accounts mitein) besitzen und (c) über eine Internetverbindung verfügen, sind autorisiert, Ryzom zu spielen. Autorisierte Benutzer werden im Weiteren als "Benutzer" beschrieben.\n \n - 3. REGISTRIERUNG UND ERÖFFNUNG EINES ACCOUNTS. Dieser Vertrag erlaubt Ihnen die Nutzung der Registrierung Ihrer Daten, um einen (1) Account zu erstellen, welcher Sie befähigt, Ryzom und/oder den Ryzom Ring über das Internet zu spielen. Die Internetverbindung wird nicht durch Winch Gate zur Verfügung gestellt und der Benutzer ist selbst verantwortlich für die Bezahlung aller Kosten, die ihn zur Verbindung mit dem Internet und die Aufrechterhaltung dieser Verbindung befähigen. Für die Registrierung ist es nötig, dass Sie Winch Gate Informationen, inklusive persönlicher Daten und Daten über die Zahlungsweise zusenden. Sie garantieren die Richtigkeit aller während der Registrierung gemachten Daten, und werden Winch Gate im Falle einer Änderung dieser Daten informieren, in dem sie die Updatefunktion Ihres Accounts nutzen.\n + 3. REGISTRIERUNG UND ERÖFFNUNG EINES ACCOUNTS. Dieser Vertrag erlaubt Ihnen die Nutzung der Registrierung Ihrer Daten, um einen (1) Account zu erstellen, welcher Sie befähigt, Ryzom und/oder den Ryzom Ring über das Internet zu spielen. Die Internetverbindung wird nicht durch Winch Gate zur Verfügung gestellt und der Benutzer ist selbst verantwortlich für die Bezahlung aller Kosten, die ihn zur Verbindung mit dem Internet und die Aufrechterhaltung dieser Verbindung befähigen. Für die Registrierung ist es nötig, dass Sie Winch Gate Informationen inklusive persönlicher Daten und Daten über die Zahlungsweise zusenden. Sie garantieren die Richtigkeit aller während der Registrierung gemachten Daten, und werden Winch Gate im Falle einer Änderung dieser Daten informieren, in dem Sie die Updatefunktion Ihres Accounts nutzen.\n \n - 4. PERSÖNLICHE NUTZUNG DES ACCOUNTS. Die Nutzung Ihres Accounts ist nur Ihnen selbst erlaubt. Der Account darf nicht, auch nicht kurzzeitig, mit jemandem geteilt oder jemand anderem zugänglich gemacht werden (weder kostenlos noch unter kommerzieller Verwendung). Auch darf er nicht in einer unüblichen, sich von der normalen Spielweise und Spielnutzung abweichenden Form (weder kostenlos noch unter kommerzieller Verwendung) verwendet werden. Der Benutzer ist voll verantwortlich für die Zugangsnutzung seines Accounts, für die Zugangsnutzung des Accounts seiner minderjährigen Kinder und auch für den Fall einer Zugangsnutzung seiner Accounts durch Fremde.\n + 4. PERSÖNLICHE NUTZUNG DES ACCOUNTS. Die Nutzung Ihres Accounts ist nur Ihnen selbst und Ihren minderjährigen Kindern erlaubt. Der Account darf nicht, auch nicht kurzzeitig, mit jemandem anderem geteilt oder jemand anderem zugänglich gemacht werden (weder kostenlos noch unter kommerzieller Verwendung). Auch darf er nicht in einer unüblichen, sich von der normalen Spielweise und Spielnutzung abweichenden Form (weder kostenlos noch unter kommerzieller Verwendung) verwendet werden. Der Benutzer ist voll verantwortlich für die Zugangsnutzung seines Accounts, für die Zugangsnutzung des Accounts seiner minderjährigen Kinder, und auch für den Fall einer Zugangsnutzung seiner Accounts durch Fremde.\n \n - 5. LOGIN UND PASSWORT. Um einen Account zu bekommen, müssen ein Login und ein Passwort gewählt werden; Diese Angaben werden den Zugang zum Account sicherstellen. Der Login und das Passwort ist absolut persönlich und darf von niemand anderem verwendet werden; Auch darf der Benutzer nicht das Passwort und Login eines andern Spielers verwenden. Sie sind selbst verantwortlich für die Wahl ihres Logins und Passwortes, für deren Geheimhaltung und für jeden Gebrauch dieser durch andere Personen. Winch Gate lehnt jede Verantwortung für einen entstandenen Schaden an Ihrem Account ab, der durch unautorisierten Gebrauch zustandegekommen ist. Sollten Sie Ihren Login und das Passwort verloren haben, können sie ein neues beantragen.\n + 5. LOGIN UND PASSWORT. Um einen Account zu bekommen, müssen ein Login und ein Passwort gewählt werden; diese Angaben werden den Zugang zum Account sicherstellen. Der Login und das Passwort sind absolut persönlich und dürfen von niemand anderem verwendet werden; Auch darf der Benutzer nicht das Passwort und Login eines anderen Spielers verwenden. Sie sind selbst verantwortlich für die Wahl Ihres Logins und Ihres Passwortes, für deren Geheimhaltung und für jeden Gebrauch dieser durch andere Personen. Winch Gate lehnt jede Verantwortung für einen entstandenen Schaden an Ihrem Account ab, der durch unautorisierten Gebrauch zustandegekommen ist. Sollten Sie Ihren Login und das Passwort verloren haben, können Sie neue beantragen.\n \n - 6. ABONNEMENT UND BEZAHLUNG. Die aktuellen Abonnementgebühren können auf der Webseite www.ryzom.com eingesehen werden und werden auch während der Registrierung genannt. Diese Gebühren können durch Winch Gate jederzeit verändert werden. Diese Änderungen werden dem Benutzer aber im Voraus mitgeteilt, entweder auf der Winch Gate-Webseite www.ryzom.com, oder als Info wenn der Benutzer mit seinem Account einlogt oder durch eine Email an die Adresse des Benutzers. Änderungen der Gebühren werden erst bei der nächsten fälligen Gebührenzahlung angerechnet. Die Abonnementgebühren werden im europäischen Raum in Euro ausgedrückt, in England in Pfund Sterling und in den USA in Dollar. Die Gebühr deckt eine exakte Abonnementperiode ab (3 Monate, 6 Monate...). Abonnements werden automatisch für den selben Zeitraum erneuert, es sei denn, der Benutzer benachrichtigt Winch Gate wie weiter unten in Paragraph 18 beschrieben. Die Bezahlung der Abonnementgebühr berechtigt den Benutzer grenzenlosen Zugang zu Ryzom für den Zeitraum des bezahlten Abonnements und für jeden weiteren durch die automatisierte Erneuerung des Abonnements sichergestellten Zeitraum. Diese Bezahlung deckt nicht den Kauf von Ryzom auf CD-ROM ab. Auch deckt sie nicht die entstehenden Kosten für die Internetverbindung ab, welche benötigt wird, um Ryzom spielen zu können. Wenn nicht anders angegeben, ist der erste Monat des Abonnements bereits im Kaufpreis der Ryzom CD-ROM enthalten. Die Abonnementgebühren und jede Erneuerung werden im Voraus bezahlt und können nicht zurückgezahlt werden. Die Gebühren können per Kreditkarte, Debit Karte oder jeder anderen durch Winch Gate akzeptierten Zahlungsweise, unter der Berücksichtigung des auf der Winch Gate Webseite dargestellten Verfahrens bezahlt werden. Die Abonnementgebühren werden automatisch am selben Tag Ihrer ersten Bezahlung nach Ablauf des Zeitraumes für jede weitere Erneuerung von Ihrer Kreditkarte oder Debit Karte abgebucht (insofern sie nicht im Kaufpreis der Ryzom CD-ROM beinhaltet waren). Winch Gate behält sich das Recht vor, einen Benutzeraccount sofort zu schließen, wenn eine Abbuchung der geforderten Gebühren für die Erneuerung nicht möglich ist.\n + 6. ABONNEMENT UND BEZAHLUNG. Die aktuellen Abonnementgebühren können auf der Webseite http://ryzom.com/?page=page_why_pay eingesehen werden und werden auch während der Registrierung genannt. Diese Gebühren können durch Winch Gate jederzeit verändert werden. Diese Änderungen werden dem Benutzer aber im voraus mitgeteilt, entweder auf der Winch Gate - Webseite www.ryzom.com, oder als Information, wenn der Benutzer mit seinem Account einloggt oder durch eine E-Mail an die Adresse des Benutzers. Änderungen der Gebühren werden erst bei der nächsten fälligen Gebührenzahlung angerechnet. Die Abonnementgebühren werden im europäischen Raum in Euro ausgedrückt, in England in Pfund Sterling und in den USA in Dollar. Die Gebühr deckt eine exakte Abonnementperiode ab (3 Monate, 6 Monate...). Abonnements werden automatisch für den selben Zeitraum erneuert, es sei denn, der Benutzer benachrichtigt Winch Gate durch ein Account-Update wie weiter unten in Paragraph 18 beschrieben. Die Bezahlung der Abonnementgebühr berechtigt den Benutzer zum Zugang zu Ryzom für den Zeitraum des bezahlten Abonnements und für jeden weiteren durch die automatisierte Erneuerung des Abonnements sichergestellten Zeitraum. Diese Bezahlung deckt nicht den Kauf von Ryzom auf CD-ROM ab. Auch deckt sie nicht die entstehenden Kosten für die Internetverbindung ab, welche benötigt wird, um Ryzom spielen zu können. Wenn nicht anders angegeben, ist der erste Monat des Abonnements bereits im Kaufpreis der Ryzom CD-ROM enthalten. Die Abonnementgebühren und jede Erneuerung werden im voraus bezahlt und können nicht zurückgezahlt werden. Die Gebühren können per Kreditkarte, Debit Karte oder jeder anderen durch Winch Gate akzeptierten Zahlungsweise unter der Berücksichtigung des auf der Winch Gate Webseite dargestellten Verfahrens bezahlt werden. Die Abonnementgebühren werden automatisch am selben Tag Ihrer ersten Bezahlung nach Ablauf des Zeitraumes für jede weitere Erneuerung von Ihrer Kreditkarte oder Debit-Karte abgebucht (insofern sie nicht im Kaufpreis der Ryzom CD-ROM inkludiert waren). Winch Gate behält sich das Recht vor, einen Benutzeraccount zu schließen, wenn eine Abbuchung der geforderten Gebühren für die Erneuerung nicht möglich ist.\n \n - 7. SICHERHEIT DER BEZAHLUNG. Für eine sichere Bezahlung per Kredit- oder Debit-Karte sorgt die Nutzung des Bezahlsystems von Bibit Global Payment Service (www.bibit.com), einem speziellen Provider für sichere Onlineabwicklungen von Bezahltransaktionen. Die Detailinformationen Ihrer Kredit- oder Debit Karte (Name, Kartentyp, Kartennummer und das Ablaufdatum) werden verschlüsselt mittels SSL-Protokoll direkt an die Bibit-Server verschickt, welche im Weiteren die Autorisierung für die Bezahlung von der Bank erhalten. Die übersendeten Bank- und Kontoinformationen werden ausschließlich für den Ablauf der Bezahlung und die Rechnungsstellung verwendet.\n + 7. SICHERHEIT DER BEZAHLUNG. Für eine sichere Bezahlung per Kredit- oder Debit-Karte sorgt die Nutzung des Bezahlsystems von WorldPay http://www.worldpay.com, einem speziellen Provider für sichere Onlineabwicklungen von Bezahltransaktionen. Die Detailinformationen Ihrer Kredit- oder Debit-Karte (Name, Kartentyp, Kartennummer und das Ablaufdatum) werden verschlüsselt mittels SSL-Protokoll direkt an die WorldPay-Server verschickt, welche im weiteren die Autorisierung für die Bezahlung von der Bank erhalten. Die übersendeten Bank- und Kontoinformationen werden ausschließlich für den Ablauf der Bezahlung und die Rechnungsstellung verwendet.\n \n - 8. LIZENZ FÜR DIE NUTZUNG VON RYZOM. Dieser Vertrag gibt Ihnen, dem Benutzer, ein limitiertes, nicht exklusives und widerrufbares Recht auf Zugang zu einem Spielserver mittels eines gültigen Accounts, um das Spiel in der dafür vorgesehenen Art und Weise ohne jeglichen Anspruch, entsprechend den Bedingungen dieses Vertrages, zu nutzen. Dieser Vertrag autorisiert Sie zur Installation und Nutzung der auf der CD-ROM befindlichen Software auf nur einem (1) Computer. Die Software wird auf einem Computer genutzt, wenn sie in den flüchtigen Speicher (RAM) geladen oder in den nichtflüchtigen Speicher (zum Beispiel die Festplatte, eine CD oder ein anderes Speichermedium) installiert wird. Die Software darf nicht auf mehr als einem Rechner zur selben Zeit genutzt werden. Zur Installation in einem Netzwerk brauchen Sie für jeden Computer, auf dem das Spiel genutzt wird, eine Lizenz. Für BackUp Zwecke dürfen Sie sich selbst eine Kopie der CD-ROM machen, allerdings keine weiteren Kopien oder aus einem anderen Grund und auch keine Kopien des Spiels oder Teilen daraus. Insofern die Bedingungen dieses Vertrags anerkannt werden, überreicht Ihnen Winch Gate eine nicht exklusive und widerrufliche Lizenz zur Nutzung des Spiels, mit dem alleinigem Zweck, Ryzom und/oder den Ryzom Ring unter legitimen Vorraussetzungen und mittels eines autorisierten und voll bezahlten Accounts oder unter der Verwendung einer gültigen Probezeit zu spielen. Alle anderen Verwendungen des Accounts oder des Spieles sind verboten. Insbesondere darf der Programmcode des Spiels unter keinen Umständen verändert, dekompiliert oder zerlegt werden. Sie dürfen weder das ganze Spiel noch Teile der Software einer anderen Person übermitteln. Sie dürfen das Spiel weder vermieten, verleihen oder verkaufen. Alle dem Benutzer durch diesen Vertrag nicht ausdrücklich zugesicherten Rechte sind Winch Gate vorbehalten.\n + 8. LIZENZ FÜR DIE NUTZUNG VON RYZOM. Dieser Vertrag gibt Ihnen, dem Benutzer, ein limitiertes, nicht exklusives und widerrufbares Recht auf Zugang zu einem Spielserver mittels eines gültigen Accounts, um das Spiel in der dafür vorgesehenen Art und Weise ohne jeglichen Anspruch entsprechend den Bedingungen dieses Vertrages zu nutzen. Dieser Vertrag autorisiert Sie zur Installation und Nutzung der auf der CD-ROM befindlichen Software auf nur einem (1) Computer. Die Software wird auf einem Computer genutzt, wenn sie in den flüchtigen Speicher (RAM) geladen oder in den nichtflüchtigen Speicher (zum Beispiel die Festplatte, eine CD oder ein anderes Speichermedium) installiert wird. Die Software darf nicht auf mehr als einem Computer zur selben Zeit genutzt werden. Zur Installation in einem Netzwerk brauchen Sie für jeden Computer, auf dem das Spiel genutzt wird, eine Lizenz. Für BackUp-Zwecke dürfen Sie sich selbst eine Kopie der CD-ROM machen, allerdings keine weiteren Kopien und auch keine Kopien des Spiels oder von Teilen daraus. Insofern die Bedingungen dieses Vertrags anerkannt werden, überreicht Ihnen Winch Gate eine nicht exklusive und widerrufliche Lizenz zur Nutzung des Spiels, mit dem alleinigem Zweck, Ryzom und/oder den Ryzom Ring unter legitimen Vorraussetzungen und mittels eines autorisierten und voll bezahlten Accounts oder unter der Verwendung einer gültigen Probezeit zu spielen. Alle anderen Verwendungen des Accounts oder des Spieles sind verboten. Insbesondere darf der Programmcode des Spiels unter keinen Umständen verändert, dekompiliert oder zerlegt werden. Sie dürfen weder das ganze Spiel noch Teile der Software einer anderen Person übermitteln. Sie dürfen das Spiel weder vermieten, verleihen oder verkaufen. Alle dem Benutzer durch diesen Vertrag nicht ausdrücklich zugesicherten Rechte sind Winch Gate vorbehalten.\n \n - 9. GNU/GPL LIZENZ. Einige Programmbestandteile der Ryzom Clientsoftware (Teile der Software auf dem Computer des Benutzers) wurden von Winch Gate unter einer speziellen "GNU General Public License" veröffentlicht, dessen Text unter der folgenden Adresse einsehbar ist: http://www.gnu.org/licenses/gpl-2.0.html. Die Benutzung dieser Programmbestandteile ist ebenfalls den Bedingungen dieser Lizenz unterworfen. Die hier angesprochenen Programmbestandteile (Sources) werden unter der Winch Gate Webseite dev.ryzom.com im weiteren genannt.\n + 9. GNU/GPL LIZENZ. Einige Programmbestandteile der Ryzom Clientsoftware (Teile der Software auf dem Computer des Benutzers) wurden von Winch Gate unter einer speziellen "GNU General Public License" veröffentlicht, dessen Text unter der folgenden Adresse einsehbar ist: http://www.gnu.org/licenses/gpl-2.0.html. Die Benutzung dieser Programmbestandteile ist ebenfalls den Bedingungen dieser Lizenz unterworfen. Die hier angesprochenen Programmbestandteile (Sources) werden unter der Winch Gate Webseite http://www.ryzomcore.org (vormals dev.ryzom.com) im weiteren genannt.\n \n - 10. SPÄTERE VERSIONSVERBESSERUNGEN. Weder dieser Vertrag noch Ihr Account verleiht Ihnen ein Recht auf spätere Versionen oder Erweiterungen von Ryzom und/oder den Ryzom Ring. Winch Gate kann das Spiel erweitern oder verbessern, ist aber nicht Verpflichtet, Ihnen diese Erweiterungen oder Verbesserungen zur Verfügung zu stellen. Die kostenlose Bereitstellung eines Updates, einer Erweiterung oder einer Verbesserung verleiht Ihnen nicht das Recht auf spätere Updates, Erweiterungen oder Verbesserungen.\n + 10. SPÄTERE VERSIONSVERBESSERUNGEN. Weder dieser Vertrag noch Ihr Account verleiht Ihnen ein Recht auf spätere Versionen oder Erweiterungen von Ryzom und/oder den Ryzom Ring. Winch Gate kann das Spiel erweitern oder verbessern, ist aber nicht verpflichtet, Ihnen diese Erweiterungen oder Verbesserungen zur Verfügung zu stellen. Die kostenlose Bereitstellung eines Updates, einer Erweiterung oder einer Verbesserung verleiht Ihnen nicht das Recht auf spätere Updates, Erweiterungen oder Verbesserungen.\n \n - 11. BESITZ DES SPIELS UND SEINER BESTANDTEILE. Winch Gate ist der alleinige Eigentümer von Ryzom und/oder den Ryzom Ring, den proprietären Bestandteilen, durch die Ryzom funktioniert und aller Urheberrechte, die sich auf diese Bestandteile beziehen. Sie bestätigen, dass Ryzom und alle dazugehörigen Inhalte durch das Copyright und andere Urheberrechte von Winch Gate oder den Partnern geschützt ist und dass Sie keine Rechte jenseits der limitierten Lizenzrechte besitzen, die Ihnen im Besonderen unter Paragraph 7 dieses Vertrages zugesichert wurden. Winch Gate ist ebenso alleiniger Eigentümer des Benutzeraccounts und aller Bestandteile, die vom Benutzer im Zuge dieses Accounts erschaffen oder genutzt wurden, inklusive der Charakter, aber nicht limitiert auf diese, ihrer Erscheinung, Charakteristiken, Geschichten, erschaffenen Gegenständen, Gilden, Gruppen und Titeln. Der Benutzer bestätigt Winch Gate außerdem das Recht, die an den Server über den Account geschickten Daten und Informationen (mit Ausnahme der persönlichen Daten und den an andere Benutzer geschickte Nachrichten) auszuwerten und weiter zu verwenden, inklusive einer kommerziellen Auswertung und Verwendung. \n + 11. BESITZ DES SPIELS UND SEINER BESTANDTEILE. Winch Gate ist der alleinige Eigentümer von Ryzom und dem Ryzom Ring, den proprietären Bestandteilen, durch die Ryzom funktioniert und aller Urheberrechte, die sich auf diese Bestandteile beziehen. Sie erkennen an, dass Ryzom und alle dazugehörigen Inhalte durch das Copyright und andere Urheberrechte von Winch Gate oder den Partnern geschützt sind und dass Sie keine Rechte jenseits der limitierten Lizenzrechte besitzen, die Ihnen im Besonderen unter Paragraph 7 dieses Vertrages zugesichert wurden. Winch Gate ist ebenso alleiniger Eigentümer des Benutzeraccounts und aller Bestandteile, die vom Benutzer im Zuge dieses Accounts erschaffen oder genutzt wurden, inklusive der Charaktere, aber nicht limitiert auf diese, ihrer Erscheinung, Charakteristiken, Geschichten, erschaffenen Gegenständen, Gilden, Gruppen und Titeln. Der Benutzer bestätigt Winch Gate außerdem das Recht, die an den Server über den Account geschickten Daten und Informationen (mit Ausnahme der persönlichen Daten und den an andere Benutzer geschickte Nachrichten) auszuwerten und weiter zu verwenden, inklusive einer kommerziellen Auswertung und Verwendung.\n \n - 12. DURCH DEN BENUTZER GESENDETE INFORMATIONEN UND DATEN. Die im Zuge der Nutzung von Ryzom durch den Benutzer übermittelten Daten, Informationen und Kommunikationen dürfen (a) nicht gegen die Rechte eines anderen verstoßen, inklusive dessen Urheberrechten, Bildrechten und dessen Recht auf Privatsphäre; (b) dürfen nicht gegen geltendes Gesetz, Verordnungen oder ähnliches verstoßen; (c) dürfen keine Inhalte verleumderischer, unsittlicher, obszöner Natur beherbergen oder generell schädlicher Natur für Minderjährige sein; (d) dürfen keine Viren, Trojaner schädlichen Programmcodes, Würmer, Logische Bomben oder andere Computerbefehle, Pogramme oder Subprogramme beinhalten, welche darauf ausgelegt sind Schaden, Datenschaden oder unautorisierte Änderungen an der Ryzom- und/oder der Ryzom Ring-Software oder dem Server zu verursachen. Wir behalten uns das Recht vor, im Notfall jegliche Mittel gegen Ihren Account (inklusive der Suspendierung und Auflösung) einzusetzen, deren Einsatz wir als nötig erachten, insofern wir den Eindruck bekommen, dass Sie den oben genannten Verboten zuwiderhandeln. \n + 12. DURCH DEN BENUTZER GESENDETE INFORMATIONEN UND DATEN. Die im Zuge der Nutzung von Ryzom durch den Benutzer übermittelten Daten, Informationen und Kommunikationen dürfen (a) nicht gegen die Rechte eines anderen verstoßen, inklusive dessen Urheberrechten, Bildrechten und dessen Recht auf Privatsphäre; (b) dürfen nicht gegen geltendes Gesetz, Verordnungen oder ähnliches verstoßen; (c) dürfen keine Inhalte verleumderischer, unsittlicher und/oder obszöner Natur beherbergen oder generell schädlicher Natur für Minderjährige sein; (d) dürfen keine Viren, Trojaner, schädlichen Programmcodes, Würmer, logische Bomben oder andere Computerbefehle, Pogramme oder Subprogramme beinhalten, welche darauf ausgelegt sind, Schaden, Datenschaden oder unautorisierte Änderungen an der Ryzom- und/oder der Ryzom Ring-Software oder an Servern zu verursachen. Wir behalten uns das Recht vor, im Notfall jegliche Mittel gegen Ihren Account (inklusive der Suspendierung und Auflösung) einzusetzen, deren Einsatz wir als nötig erachten, insofern wir den Eindruck bekommen, dass Sie den oben genannten Verboten zuwiderhandeln.\n \n - 13. VERHALTENSREGELN. Sie bestätigen, dass die richtige Funktion und der Erfolg eines Online-Rollenspiels wie Ryzom und/oder von Ryzom Ring von einer empfindlichen Balance abhängt, die Winch Gate aufrechterhalten muss. Dem Benutzer ist es daher strikt verboten: (a) Programme oder Methoden anzuwenden, die den Inhalt oder die Funktionsweisen des Spiels ändern; (b) den Server zu einer Überlastung führen; (c) Prozeduren anzuwenden, die es einfacher machen, Anweisungen und Befehle schneller auszuführen, als sie durch den normalen Spielgebrauch möglich sind; (d) Das Benutzerinterface oder jede andere Komponente der Software zu verändern, um Gegenstände, Erfahrungspunkt, Geld, Charakter-Attribute, Ränge oder ähnliches zu bekommen, ohne dass der Erhalt dieser Dinge auf die normale Nutzung des Spiels zurückzuführen ist; (e) Spielcharaktere zu kaufen, verkaufen oder zu übertragen, ebenso wie ihre Attribute. Darüber hinaus muß der Benutzer jederzeit die Verhaltens- und Höflichkeitsregeln, sowie die Ryzom Namensregeln einhalten, die auf der Spielwebseite www.ryzom.com einzusehen sind. Die Inhalte dieser Regeln werden hiermit als ein integraler Teil dieses Vertrages erklärt. Wir behalten uns das Recht vor, im Notfall jegliche Mittel gegen Ihren Account (inklusive der Suspendierung und Auflösung) einzusetzen, deren Einsatz wir als nötig erachten, insofern wir den Eindruck bekommen, dass Sie den oben genannten Verboten zuwiderhandeln.\n + 13. VERHALTENSREGELN. Sie erkennen an, dass die richtige Funktion und der Erfolg eines Online-Rollenspiels wie Ryzom und/oder von Ryzom Ring von einer empfindlichen Balance abhängt, die Winch Gate aufrechterhalten muss. Dem Benutzer ist es daher strikt verboten: (a) Programme oder Methoden anzuwenden, die den Inhalt oder die Funktionsweisen des Spiels ändern; und /oder (b) den Server zu einer Überlastung führen; (c) Prozeduren anzuwenden, die es einfacher machen, Anweisungen und Befehle schneller auszuführen, als sie durch den normalen Spielgebrauch möglich sind; (d) das Benutzerinterface oder jede andere Komponente der Software zu verändern, um Gegenstände, Erfahrungspunkt, Geld, Charakter-Attribute, Ränge oder ähnliches zu bekommen, ohne dass der Erhalt dieser Dinge auf die normale Nutzung des Spiels zurückzuführen ist; (e) Spielcharaktere zu kaufen, verkaufen oder zu übertragen, ebenso wie ihre Attribute oder ähnliches. Darüber hinaus muss der Benutzer jederzeit die Verhaltens- und Höflichkeitsregeln sowie die Ryzom-Namensregeln einhalten, die im Forum zum Spiel auf http://app.ryzom.com/app_forum/index.php?page=topic/view/21885/1&post148782=en#1 einzusehen sind. Die Inhalte dieser Regeln werden hiermit als ein integraler Teil dieses Vertrages erklärt. Wir behalten uns das Recht vor, im Notfall jegliche Mittel gegen Ihren Account (inklusive der Suspendierung und Auflösung) einzusetzen, deren Einsatz wir als nötig erachten, insofern wir den Eindruck bekommen, dass Sie den oben genannten Verboten zuwiderhandeln.\n \n - 14. PERSÖNLICHE Patches (Erneuerungen und Verbesserungen) für das Spiel zu ermöglichen, autorisieren sie Winch Gate: (a) die Detailinformationen Ihres Computersystems aus Ihrem persönlichem Profil auszulesen und auszuwerten; (b) die Detailinformationen Ihres Computersystems über den Speicherort des Spiels innerhalb Ihres Dateisystems und Ihre Zugangsrechte auszulesen und auszuwerten; und (c) Spielkomponenten und für die Installation relevante Komponenten mittels Ihres Accounts auf Ihren Computer zu laden. \n + 14. PERSÖNLICHES / BENUTZER-INFORMATIONEN. Winch Gates Unternehmungen betreffend personenbezogener Daten sind in der Personen-Datenschutzerklärung auf der Winch Gate Webseite auf www.ryzom.com zu finden, was hiermit zu einem integralen bestandteil dieses Vertrages erklärt wird. Winch Gate kann nicht sicherstellen, dass persönliche Informationen, die der Benutzer einem anderen Benutzer im Verlauf des Spiels mitteilt, nicht an weitere Personen verraten werden. Um Patches (Erneuerungen und Verbesserungen) für das Spiel zu ermöglichen, autorisieren Sie Winch Gate: (a) die Detailinformationen Ihres Computersystems aus Ihrem persönlichem Profil auszulesen und auszuwerten; (b) die Detailinformationen Ihres Computersystems über den Speicherort des Spiels innerhalb Ihres Dateisystems und Ihre Zugangsrechte auszulesen und auszuwerten; und (c) Spielkomponenten und für die Installation relevante Komponenten mittels Ihres Accounts auf Ihren Computer zu laden.\n \n - 15. GARANTIE / VERPFLICHTUNGSEINSCHRÄNKUNG. Die CD-ROM, das Spiel und die damit verbundenen Leistungen werden durch Winch Gate "wie sie sind" und mit keiner anderen Garantie als mit dem gesetzlich verpflichteten Minimum an öffentlicher Verpflichtung der auf diesen Vertrag herausgeht, zur Verfügung gestellt. Jede andere Garantieverpflichtung, gesetzlich oder vertraglich, wird ausdrücklich ausgeschlossen. Winch Gate wird alles versuchen, den Benutzeraccount konstant erreichbar zu machen, behält sich aber das Recht vor, Leistungen auf Grund von technischen und Instandhaltungsaktivitäten zu unterbrechen. Winch Gate kann auf gar keinen Fall eine konstante und fehlerfreie Funktion auf die Leistungen und das Spiel bezogen garantieren. Auch kann Winch Gate zu keiner Zeit den unterbrechungsfreien Zugang des Benutzers zu seinen Accounts garantieren. Unter keinen Umständen ist Winch Gate für Schaden an der Computerhardware oder Software durch die Benutzung des Spiels in Verantwortung zu ziehen. Die Benutzer werden hiermit nochmals an die durch Winch Gate bekannt gegebene Empfehlung für die Mindestkonfiguration des Computers erinnert, und dass Sie Ihre Software regelmäßig aktualisieren und Sicherungen Ihrer wichtigen Daten durchführen sollten. Winch Gate kann nicht für den Inhalt von Tauschgeschäften zwischen Benutzern oder für das Verhalten von Benutzern verantwortlich gemacht werden. Sollte Winch Gate für Schäden irgendeiner Art und aus welchen Gründen auch immer verantwortlich gemacht werden, kann eine daraus resultierende finanzielle Verpflichtung nicht größer sein, als die Gesamtsumme der durch den Benutzer bezahlten Abonnementgebühren.\n + 15. GARANTIE / VERPFLICHTUNGSEINSCHRÄNKUNG. Die CD-ROM, das Spiel und auch die damit verbundenen Leistungen werden durch Winch Gate "wie sie sind" und mit keiner anderen Garantie als mit dem gesetzlich verpflichteten Minimum an öffentlicher Verpflichtung zur Verfügung gestellt, wie sie auf diesen Vertrag zutrifft. Jede andere Garantieverpflichtung, gesetzlich oder vertraglich, wird ausdrücklich ausgeschlossen. Winch Gate wird alles versuchen, den Benutzeraccount konstant erreichbar zu machen, behält sich aber das Recht vor, Leistungen auf Grund von technischen und Instandhaltungsaktivitäten zu unterbrechen. Winch Gate kann auf gar keinen Fall eine konstante und fehlerfreie Funktion auf die Leistungen und das Spiel bezogen garantieren. Auch kann Winch Gate zu keiner Zeit den unterbrechungsfreien Zugang des Benutzers zu seinen Accounts garantieren. Unter keinen Umständen ist Winch Gate für Schaden an der Computerhardware oder Software durch die Benutzung des Spiels in Verantwortung zu ziehen. Die Benutzer werden hiermit nochmals an die durch Winch Gate bekannt gegebene Empfehlung für die Mindestkonfiguration des Computers erinnert, und dass sie ihre Software regelmäßig aktualisieren und Sicherungen ihrer wichtigen Daten durchführen sollten. Winch Gate kann nicht für den Inhalt von Tauschgeschäften zwischen Benutzern oder für das Verhalten von Benutzern verantwortlich gemacht werden. Sollte Winch Gate für Schäden irgendeiner Art und aus welchen Gründen auch immer verantwortlich gemacht werden, kann eine daraus resultierende finanzielle Verpflichtung nicht größer sein als die Gesamtsumme der durch den Benutzer bezahlten Abonnementgebühren.\n \n - 16. STILLLEGUNG DES SPIELS DURCH WINCH GATE. Winch Gate übernimmt keine Garantie für die Dauer des Spiels. Winch Gate behält sich das Recht vor, das Spiel oder die Leistungen zur Aufrechterhaltung des Spiels jederzeit aus eigener Vorsicht zu beenden, sollten die Benutzerzahlen eine erforderliche Menge nicht erreichen oder unterschreiten (inklusive anderer Gründe). Winch Gate wird die Benutzer in einem solchen Fall aber durch eine Nachricht beim Einloggen in das Spiel, durch eine Information auf der Webseite www.ryzom.com oder per Email unterrichten. Die Benutzeraccounts würden in einem solchen Fall definitiv geschlossen.\n + 16. STILLLEGUNG DES SPIELS DURCH WINCH GATE. Winch Gate übernimmt keine Garantie für die Dauer des Spiels. Winch Gate behält sich das Recht vor, das Spiel oder die Leistungen zur Aufrechterhaltung des Spiels jederzeit nach eigenem Ermessen zu beenden, sollten die Benutzerzahlen eine erforderliche Menge nicht erreichen oder unterschreiten, oder aus anderen Gründen. Winch Gate wird die Benutzer in einem solchen Fall aber durch eine Nachricht beim Einloggen in das Spiel, durch eine Information auf der Webseite www.ryzom.com oder per E-Mail unterrichten. Die Benutzeraccounts würden in einem solchen Fall definitiv geschlossen.\n \n - 17. KÜNDIGUNG DURCH WINCH GATE. Winch Gate kann den Vertrag mit einem Benutzer und dessen Account ohne eine weitere Nachricht beenden, sofort und ohne vorherige Warnung oder einer entsprechenden Nachricht, sollte der Benutzer irgendeine der in diesem Vertrag festgelegten Pflichten oder Bedingungen, die aus Dokumenten, die als Teil dieses Vertrages deklariert wurden, missachtet haben. Sollte Winch Gate einen Benutzeraccount auf Grund eines Vertragsbruches schließen, so behält sich Winch Gate das Recht vor, den Computer, die Kreditkarte (oder andere eingesetzte Zahlungswege) und/oder die Software durch Unbrauchbarmachen von weiteren Transaktionen mit Winch Gate oder dem Spiel auszzuschließen. Wenn der Computer für das Spiel gebannt oder die Software unbrauchbar gemacht wurde, wird jede andere Person, die den selben Computer oder dieselbe Software verwendet, nicht mehr in der Lage sein, sich mit dem Spiel zu verbinden. Wenn die Kreditkarte (oder ein anderer Zahlungsweg) eines Accounts gebannt ist, sind auch alle anderen Accounts, die dieselben Daten benutzen gebannt. In einem solchen Fall wird es als Entschädigung für den Benutzer keine Zurückzahlung der auf die restlichen Tage bis zur Beendigung des gewählten Abonnementzeitraumes umgerechneten Abonnementgebühren geben.\n + 17. KÜNDIGUNG DURCH WINCH GATE. Winch Gate kann den Vertrag mit einem Benutzer und dessen Account beenden, sofort und ohne vorherige Warnung oder einer entsprechenden Nachricht, wenn der Benutzer irgendeine der in diesem Vertrag festgelegten Pflichten missachtet haben sollte, oder Bedingungen, die durch Dokumente auferlegt wurden, die als Teil dieses Vertrages deklariert wurden. Sollte Winch Gate einen Benutzeraccount auf Grund eines Vertragsbruches schließen, so behält sich Winch Gate das Recht vor, den Computer, die Kreditkarte (oder andere eingesetzte Zahlungswege) durch Bann und/oder die Software durch Unbrauchbarmachung von weiteren Transaktionen mit Winch Gate oder dem Spiel auszuschließen. Wenn der Computer für das Spiel gebannt oder die Software unbrauchbar gemacht wurde, wird jede andere Person, die den selben Computer oder dieselbe Software verwendet, nicht mehr in der Lage sein, sich mit dem Spiel zu verbinden. Wenn die Kreditkarte (oder ein anderer Zahlungsweg) eines Accounts gebannt ist, sind auch alle anderen Accounts gebannt, die dieselben Daten benutzen. In einem solchen Fall wird es als Entschädigung für den Benutzer keine Zurückzahlung der auf die restlichen Tage bis zur Beendigung des gewählten Abonnementzeitraumes umgerechneten Abonnementgebühren geben.\n \n - 18. KÜNDIGUNG DURCH DEN BENUTZER. Der Benutzer kann seinen Vertrag und seine Accounts jederzeit kündigen, indem er Winch Gate davon per Mail oder auf anderem durch den Zugang zum Account angebotenem Wege informiert. Die Kündigung tritt mit der Beendigung des aktuell gewählten Abonnementzeitraumes in Kraft. Die Gebühren bis zum Ende des Abonnementzeitraumes werden nicht zurückgezahlt, selbst dann nicht, wenn der Benutzer seinen Account bis zur Beendigung des Abonnementzeitraumes nicht mehr nutzt. \n + 18. KÜNDIGUNG DURCH DEN BENUTZER. Der Benutzer kann seinen Vertrag und seine Accounts jederzeit kündigen, indem er Winch Gate davon per E-Mail oder auf anderem (durch den Zugang zum Account angebotenen) Wege informiert. Die Kündigung tritt mit der Beendigung des aktuell gewählten Abonnementzeitraumes in Kraft. Die Gebühren bis zum Ende des Abonnementzeitraumes werden nicht zurückgezahlt, selbst dann nicht, wenn der Benutzer seinen Account bis zur Beendigung des Abonnementzeitraumes nicht mehr nutzt.\n \n - 19. VERÄNDERUNGEN DER LIZENZ. Winch Gate behält sich das Recht vor, die Bedingungen des Vertrages jederzeit verändern zu können. Der Benutzer wird über alle Änderung am Vertrag anschließend beim nächsten Zugriff auf seinen Account informiert. Der Zutritt zum Spiel erfordert dann die Zustimmung zu diesen veränderten Bedingungen des Vertrages, welche dann sofort in Kraft treten.\n + 19. VERÄNDERUNGEN DER LIZENZ. Winch Gate behält sich das Recht vor, die Bedingungen des Vertrages jederzeit verändern zu können. Der Benutzer wird anschließend über alle Änderungen am Vertrag beim nächsten Zugriff auf seinen Account informiert. Der Zutritt zum Spiel erfordert die Zustimmung zu diesen veränderten Bedingungen des Vertrages, welche dann sofort in Kraft treten.\n \n - 20. ZU BEACHTENDE VORKEHRUNGEN Winch Gate erinnert Sie daran, dass Sie das Spiel nicht im übermüdeten Zustand spielen sollten. Stellen Sie sicher, dass Sie in einem gut beleuchteten Raum mit einem nicht zu hell eingestelltem Bildschirm spielen. Videospiele, die eine Verbindung zu einem Monitor/TV benötigen, sollten in einem vernünftigen Abstand, den die Kabelverbindungen erlauben, zu eben diesem Monitor/TV gespielt werden. Nehmen Sie sich zehn- oder fünfzehnminütige Pausen nach jeder Stunde, die Sie gespielt haben. Wir weisen Sie außerdem darauf hin, dass einige Menschen durch Videospiele einen epileptischen Anfall und/oder den Verlust des visuellen Bewusstseins erleiden können. Auslöser hierbei sind verschiedene und bestimmte Arten von starken Lichtreizen: die rasche Abfolge von Bilder oder die Wiederholung einfacher geometrischer Abbildungen oder die Simulation von Blitzen oder Explosionen. Diese Leute setzen sich selbst dem Risiko solcher Anfälle und Schädigungen aus, wenn sie bestimmte Videospiele spielen, die solche Reize beinhalten, selbst wenn sie eine Empfindlichkeit für solche Reize in ihrer Vergangenheit nicht erlebten oder nie zuvor einen epileptischen Anfall hatten. Falls Sie selbst oder irgendein anderes Mitglied Ihrer Familie bereits Symptome irgendwelcher Art hatten, die auf die Anfälligkeit für epileptische Anfälle durch Lichtreize hindeutet (Anfälle oder Bewusstseinsverlust), sollten Sie einen Arzt konsultieren, bevor Sie solche Spiele nutzen. Eltern sollten zudem Ihre Kinder beim Videospielen nicht ohne Aufsicht lassen. Wenn Sie selbst oder Ihr Kind irgend eines der folgenden Symptome aufweisen: Schwindel, visuelle Beeinträchtigung, Augen- oder Muskelkontraktionen, Beeinträchtigung des Orientierungssinnes, unkontrollierte Bewegungen oder Zuckungen, zeitweiliger Bewusstseinsverlust; müssen Sie sofort das Spielen beenden und einen Arzt konsultieren.\n + 20. ZU BEACHTENDE VORKEHRUNGEN. Winch Gate erinnert Sie daran, dass Sie das Spiel nicht im übermüdeten Zustand spielen sollten. Stellen Sie sicher, dass Sie in einem gut beleuchteten Raum mit einem nicht zu hell eingestelltem Bildschirm spielen. Videospiele, die eine Verbindung zu einem Monitor/TV benötigen, sollten in einem vernünftigen Abstand, den die Kabelverbindungen erlauben, zu eben diesem Monitor/TV gespielt werden. Nehmen Sie sich zehn- oder fünfzehnminütige Pausen nach jeder Stunde, die Sie gespielt haben. Wir weisen Sie außerdem darauf hin, dass einige Menschen durch Videospiele einen epileptischen Anfall und/oder den Verlust des visuellen Bewusstseins erleiden können. Auslöser hierbei sind verschiedene und bestimmte Arten von starken Lichtreizen, die rasche Abfolge von Bildern oder die Wiederholung einfacher geometrischer Abbildungen oder die Simulation von Blitzen oder Explosionen. Diese Leute setzen sich selbst dem Risiko solcher Anfälle und Schädigungen aus, wenn sie bestimmte Videospiele spielen, die solche Reize beinhalten, selbst wenn sie eine Empfindlichkeit für solche Reize in ihrer Vergangenheit nicht erlebten oder nie zuvor einen epileptischen Anfall hatten. Falls Sie selbst oder irgendein anderes Mitglied Ihrer Familie bereits Symptome irgendwelcher Art hatten, die auf die Anfälligkeit für epileptische Anfälle durch Lichtreize hindeutet (Anfälle oder Bewusstseinsverlust), sollten Sie einen Arzt konsultieren, bevor Sie Computerspiele nutzen. Eltern sollten zudem Ihre Kinder beim Videospielen nicht ohne Aufsicht lassen. Wenn Sie selbst oder Ihr Kind irgend eines der folgenden Symptome aufweisen: Schwindel, visuelle Beeinträchtigung, Augen- oder Muskelkontraktionen, Beeinträchtigung des Orientierungssinnes, unkontrollierte Bewegungen oder Zuckungen, oder zeitweiliger Bewusstseinsverlust; müssen Sie sofort das Spielen beenden und einen Arzt konsultieren.\n \n - 21. ANZUWENDENDES GESETZ / ZUSÄTZLICHE VORSCHRIFTEN. Dieser Vertrag unterliegt dem französischen Gesetz. Die UN-Konventionen für internationale Verträge für den Verkauf von Gütern werden hiermit für diesen Vertrag als nicht anwendbar deklariert. Jeder Streitfall, der sich auf diesen Vertrag bezieht, unterwirft sich der absoluten Gerichtsbarkeit und Autorität in Paris. Sollte irgendeine Klausel dieses Vertrages im Hinblick auf einen Benutzer nichtig sein, beeinträchtigt eine solche Nichtigkeit nicht die Gültigkeit der anderen Vertragsklauseln. Dieser Vertrag kann durch den Benutzer nicht zugewiesen oder übertragen werden.] + 21. ANZUWENDENDES GESETZ / ZUSÄTZLICHE VORSCHRIFTEN. Dieser Vertrag unterliegt dem französischen Gesetz. Die UN-Konventionen für internationale Verträge für den Verkauf von Gütern werden hiermit für diesen Vertrag als nicht anwendbar deklariert. Jeder Streitfall, der sich auf diesen Vertrag bezieht, unterwirft sich der absoluten Gerichtsbarkeit durch die entsprechenden Gerichte/Autoritäten in Paris. Sollte irgendeine Klausel dieses Vertrages im Hinblick auf einen Benutzer nichtig oder wirkungslos sein, beeinträchtigt eine solche Nichtigkeit nicht die Gültigkeit oder Wirksamkeit der anderen Vertragsklauseln. Dieser Vertrag kann durch den Benutzer nicht zugewiesen oder übertragen werden.] // HASH_VALUE AC59689FA8799CBD // INDEX 5071 -gn_apprentice_tracer [Schützenlehrling] +gn_apprentice_tracer [Spurenleser-Lehrlinge] // HASH_VALUE 2672E092177803B5 // INDEX 5072 -gn_bandit_bountybeaches_1 [Blood Rooters] +gn_bandit_bountybeaches_1 [Blutwurzler-Banditen] // HASH_VALUE E63C84606052F4B8 // INDEX 5073 -gn_bandit_bountybeaches_2 [Bounty Snatchers] +gn_bandit_bountybeaches_2 [Kopfgeld-Schnapper] // HASH_VALUE ED861C40AA77E7AB // INDEX 5074 -gn_bandit_bountybeaches_3 [Infamous Five] +gn_bandit_bountybeaches_3 [Berüchtigte Fünfe] // HASH_VALUE 9F23682B98B59AB9 // INDEX 5075 -gn_bandit_citiesofintuition_1 [Birds Of Omen] +gn_bandit_citiesofintuition_1 [Vögel des Omens] // HASH_VALUE 6BD87C4AA2C4284D // INDEX 5076 @@ -21397,447 +21400,447 @@ gn_bandit_citiesofintuition_2 [Zora Kovans] // HASH_VALUE AF1AD81CD639B371 // INDEX 5077 -gn_bandit_citiesofintuition_3 [Eyes of Intuition] +gn_bandit_citiesofintuition_3 [Augen der Intuition] // HASH_VALUE 16395C93E3F7777B // INDEX 5078 -gn_bandit_dunesofexil_1 [Ridge Ravagers] +gn_bandit_dunesofexil_1 [Berggrat-Verwüster] // HASH_VALUE A65978A1ABC900A7 // INDEX 5079 -gn_bandit_dunesofexil_2 [Waylayers] +gn_bandit_dunesofexil_2 [Wegelagerer] // HASH_VALUE E56308821B37D3C5 // INDEX 5080 -gn_bandit_dunesofexil_3 [Dyron Dragons] +gn_bandit_dunesofexil_3 [Dyron-Drachen] // HASH_VALUE 1ECBC08CAB0624AC // INDEX 5081 -gn_bandit_dunesofexil_4 [Firebooters] +gn_bandit_dunesofexil_4 [Feuerstiefel] // HASH_VALUE 6A2AFC880FB5FF70 // INDEX 5082 -gn_bandit_enchantedisle_1 [Tyler's Rippers] +gn_bandit_enchantedisle_1 [Tylers Aufschlitzer] // HASH_VALUE 95B29031A7E64F7D // INDEX 5083 -gn_bandit_enchantedisle_2 [Magicians of Malice] +gn_bandit_enchantedisle_2 [Magier der Niedertracht] // HASH_VALUE EED8D41EC8381CB0 // INDEX 5084 -gn_bandit_enchantedisle_3 [Bucking Mektoubs] +gn_bandit_enchantedisle_3 [Bockende Mektoubs] // HASH_VALUE 6769D09862E65F65 // INDEX 5085 -gn_bandit_fleetinggarden_1 [Green Ravishers] +gn_bandit_fleetinggarden_1 [Grüne Verführer] // HASH_VALUE 24D70C2D6A56DB9D // INDEX 5086 -gn_bandit_fleetinggarden_2 [Deadened Eyes] +gn_bandit_fleetinggarden_2 [Abgestumpfte Augen] // HASH_VALUE 68C593852434AC6E // INDEX 5087 -gn_bandit_fleetinggarden_3 [High Watchers] +gn_bandit_fleetinggarden_3 [Höhenbeobachter] // HASH_VALUE 2BD9403A60A2C08C // INDEX 5088 -gn_bandit_fleetinggarden_4 [Fleeting Lords] +gn_bandit_fleetinggarden_4 [flüchtige Herrscher] // HASH_VALUE 2739BC2F27292CFC // INDEX 5089 -gn_bandit_fleetinggarden_5 [Seed Addicts] +gn_bandit_fleetinggarden_5 [Samen-Süchtige] // HASH_VALUE 063A8F8219C7DB8F // INDEX 5090 -gn_bandit_forbidden_depths_1 [Eva's Empalers] +gn_bandit_forbidden_depths_1 [Evas Erblasser] // HASH_VALUE A949788B21C8949D // INDEX 5091 -gn_bandit_forbidden_depths_2 [Slicers] +gn_bandit_forbidden_depths_2 [Schlitzer] // HASH_VALUE 6C79584A81B3D8BA // INDEX 5092 -gn_bandit_forbidden_depths_3 [Beastie Bandits] +gn_bandit_forbidden_depths_3 [Biestige Banditen] // HASH_VALUE A9A98C7B9F526045 // INDEX 5093 -gn_bandit_forbidden_depths_4 [Dragon Dodgers] +gn_bandit_forbidden_depths_4 [Drachen-Schlitzohren] // HASH_VALUE AEDA687B94A1CFB4 // INDEX 5094 -gn_bandit_frahartowers_1 [Canyon Creepers] +gn_bandit_frahartowers_1 [Canyon-Fieslinge] // HASH_VALUE 2B9AC43AD277D4BC // INDEX 5095 -gn_bandit_frahartowers_2 [Stunning Stavons] +gn_bandit_frahartowers_2 [Betäubende Knüppel] // HASH_VALUE 33C7FB6E5C934C49 // INDEX 5096 -gn_bandit_frahartowers_3 [Swords of Fury] +gn_bandit_frahartowers_3 [Schwerter der Raserei] // HASH_VALUE EBFA848D9E426839 // INDEX 5097 -gn_bandit_frahartowers_4 [Frahar Blazers] +gn_bandit_frahartowers_4 [Frahar-Brenner] // HASH_VALUE D93A7879E914AB70 // INDEX 5098 -gn_bandit_gate_of_obscurity_1 [Heart Breakers] +gn_bandit_gate_of_obscurity_1 [Herzensbrecher] // HASH_VALUE 1463EC3DAD085B94 // INDEX 5099 -gn_bandit_gate_of_obscurity_2 [Merchants of Terror] +gn_bandit_gate_of_obscurity_2 [Händler des Terrors] // HASH_VALUE AE8A98ABDF84404D // INDEX 5100 -gn_bandit_gate_of_obscurity_3 [Valley Busters] +gn_bandit_gate_of_obscurity_3 [Talsenken-Sprenger] // HASH_VALUE A9B95471C7B5FCA8 // INDEX 5101 -gn_bandit_gate_of_obscurity_4 [Scarlet Loafers] +gn_bandit_gate_of_obscurity_4 [Scharlachrote Herumtreiber] // HASH_VALUE 63967C621638B460 // INDEX 5102 -gn_bandit_groveofconfusion_1 [Madding Maids] +gn_bandit_groveofconfusion_1 [Rasende Jungfern] // HASH_VALUE 6B52B0A3DCD83FC0 // INDEX 5103 -gn_bandit_groveofconfusion_2 [Grove Tyrants] +gn_bandit_groveofconfusion_2 [Tyrannen der Wälder] // HASH_VALUE 68B8FCE66A788CB8 // INDEX 5104 -gn_bandit_groveofconfusion_3 [Slashing Slathes] +gn_bandit_groveofconfusion_3 [Aufschlitzende Schmierer] // HASH_VALUE 18F79C9A64447C95 // INDEX 5105 -gn_bandit_groveofumbra_1 [Killer Queens] +gn_bandit_groveofumbra_1 [Mörder-Königinnen] // HASH_VALUE 298AB8A8E154504A // INDEX 5106 -gn_bandit_groveofumbra_2 [Spleen Busters] +gn_bandit_groveofumbra_2 [Zornige Kerle] // HASH_VALUE 27D4836653B48B7B // INDEX 5107 -gn_bandit_groveofumbra_3 [Black Lams] +gn_bandit_groveofumbra_3 [Schwarze Flucht] // HASH_VALUE E688F8451B63F848 // INDEX 5108 -gn_bandit_groveofumbra_4 [Dare Doers] +gn_bandit_groveofumbra_4 [Herausforderer] // HASH_VALUE 6BC7207A557BD46C // INDEX 5109 -gn_bandit_havenofpurity_1 [Skelter Punks] +gn_bandit_havenofpurity_1 [Ruhelose Rabauken] // HASH_VALUE 9729B08EAB35C770 // INDEX 5110 -gn_bandit_havenofpurity_2 [Homin Hounders] +gn_bandit_havenofpurity_2 [Homin-Verfolger] // HASH_VALUE E1726F878F344CC3 // INDEX 5111 -gn_bandit_havenofpurity_3 [Flights of Fury] +gn_bandit_havenofpurity_3 [Flug des Zorns] // HASH_VALUE 6CDA4C14C8DA54AA // INDEX 5112 -gn_bandit_hereticshovel_1 [Channel Gaugers] +gn_bandit_hereticshovel_1 [Wasserlauf-Steuereintreiber] // HASH_VALUE 1939B024D588D7BB // INDEX 5113 -gn_bandit_hereticshovel_2 [Heathens of the Hovel] +gn_bandit_hereticshovel_2 [Heiden der Hütte] // HASH_VALUE AAB9B76B6D877A8F // INDEX 5114 -gn_bandit_hereticshovel_3 [Hovel Spooks] +gn_bandit_hereticshovel_3 [Heimsucher der Hütte] // HASH_VALUE 68D8044C709C54B0 // INDEX 5115 -gn_bandit_hiddensource_1 [Spoilers] +gn_bandit_hiddensource_1 [Verderber] // HASH_VALUE 6CC90823AB19BCFB // INDEX 5116 -gn_bandit_hiddensource_2 [Hell Raisers] +gn_bandit_hiddensource_2 [Höllen-Heber] // HASH_VALUE 23C367A0CE13601F // INDEX 5117 -gn_bandit_hiddensource_3 [Jenas Cuss] +gn_bandit_hiddensource_3 [Jenas Fluch] // HASH_VALUE 7A45308FD9F4A445 // INDEX 5118 -gn_bandit_imperialdunes_1 [Eye of the Dragon] +gn_bandit_imperialdunes_1 [Auge des Drachen] // HASH_VALUE 6FB5CF872056A462 // INDEX 5119 -gn_bandit_imperialdunes_2 [Dune Stalkers] +gn_bandit_imperialdunes_2 [Dünen-Nachsteller] // HASH_VALUE C8CC284B9CFC0C3E // INDEX 5120 -gn_bandit_imperialdunes_3 [Pyr Crushers] +gn_bandit_imperialdunes_3 [Pyr-Zermalmer] // HASH_VALUE 16B78790A4002CB6 // INDEX 5121 -gn_bandit_imperialdunes_4 [Pagans of Pyr] +gn_bandit_imperialdunes_4 [Ungläubige von Pyr] // HASH_VALUE EAEA8879E2639C39 // INDEX 5122 -gn_bandit_knollofdissent_1 [Border Raiders] +gn_bandit_knollofdissent_1 [Grenz-Plünderer] // HASH_VALUE 1F636F93D95A7861 // INDEX 5123 -gn_bandit_knollofdissent_2 [Casters of Dissent] +gn_bandit_knollofdissent_2 [Magier des Widerspruchs] // HASH_VALUE E8364A5CEA7A8C8E // INDEX 5124 -gn_bandit_knollofdissent_3 [Highcliff Riders] +gn_bandit_knollofdissent_3 [Reiter der Hohen Klippen] // HASH_VALUE 8DBB23807243FCCF // INDEX 5125 -gn_bandit_knollofdissent_4 [Cut-throats] +gn_bandit_knollofdissent_4 [Halsaufschneider] // HASH_VALUE 2329889EEB29BCAE // INDEX 5126 -gn_bandit_knollofdissent_5 [Thrashers] +gn_bandit_knollofdissent_5 [Drescher] // HASH_VALUE 1ECBC08CAB0624AC // INDEX 5127 -gn_bandit_knollofdissent_6 [Firebooters] +gn_bandit_knollofdissent_6 [Feuerstiefel] // HASH_VALUE 2F685B496A4890BC // INDEX 5128 -gn_bandit_knotofdementia_1 [Browbeat Brothers] +gn_bandit_knotofdementia_1 [Einschüchterungs-Brüder] // HASH_VALUE 607704431D521410 // INDEX 5129 -gn_bandit_knotofdementia_2 [Zoras Thorn] +gn_bandit_knotofdementia_2 [Dorn von Zora] // HASH_VALUE 61C6909C6A69A05C // INDEX 5130 -gn_bandit_knotofdementia_3 [Zora Springers] +gn_bandit_knotofdementia_3 [Zora-Springer] // HASH_VALUE EAA8C4AEA7676367 // INDEX 5131 -gn_bandit_lagoonsofloria_1 [Swamp Slouchers] +gn_bandit_lagoonsofloria_1 [Sumpf-Fläzer] // HASH_VALUE D776C0A65ED48C8F // INDEX 5132 -gn_bandit_lagoonsofloria_2 [Lagoon Fylers] +gn_bandit_lagoonsofloria_2 [Lagunen-Flieger] // HASH_VALUE B0885C31A47E0835 // INDEX 5133 -gn_bandit_lagoonsofloria_3 [Dillers Mates] +gn_bandit_lagoonsofloria_3 [Dillers Kumpane] // HASH_VALUE AC67783323133C44 // INDEX 5134 -gn_bandit_lagoonsofloria_4 [Mire Mates] +gn_bandit_lagoonsofloria_4 [Morast-Kameraden] // HASH_VALUE 25D67C5B59389469 // INDEX 5135 -gn_bandit_lagoonsofloria_5 [Damning Dames] +gn_bandit_lagoonsofloria_5 [Vernichtende Matronen] // HASH_VALUE E40A50358828A765 // INDEX 5136 -gn_bandit_lagoonsofloria_6 [Seven Swords of Sin] +gn_bandit_lagoonsofloria_6 [Sieben Schwerter der Sünden] // HASH_VALUE 6AB99C6E899418BF // INDEX 5137 -gn_bandit_libertylake_1 [Liberty Pirates] +gn_bandit_libertylake_1 [Piraten der Freiheit] // HASH_VALUE 9B25CC75EB784FBD // INDEX 5138 -gn_bandit_libertylake_2 [Cristabell Skinners] +gn_bandit_libertylake_2 [Crystabell-Abdecker] // HASH_VALUE E252878D10340CB9 // INDEX 5139 -gn_bandit_libertylake_3 [Friends of Fury] +gn_bandit_libertylake_3 [Freunde der Raserei] // HASH_VALUE 2C9990795E635456 // INDEX 5140 -gn_bandit_maidengrove_1 [Shadow Bandits] +gn_bandit_maidengrove_1 [Schatten-Banditen] // HASH_VALUE 974AC092AA468B83 // INDEX 5141 -gn_bandit_maidengrove_2 [Plain Scourers] +gn_bandit_maidengrove_2 [Einfache Abreiber] // HASH_VALUE E689D01EE5C97CF2 // INDEX 5142 -gn_bandit_maidengrove_3 [Lake Loafers] +gn_bandit_maidengrove_3 [Seen-Bummler] // HASH_VALUE 9BC8A439E583778F // INDEX 5143 -gn_bandit_majesticgarden_1 [Wrath of Natae] +gn_bandit_majesticgarden_1 [Grimm von Natae] // HASH_VALUE 46FAEC90C258C4E8 // INDEX 5144 -gn_bandit_majesticgarden_2 [Turn of the Tide] +gn_bandit_majesticgarden_2 [Gezeitenwechsler] // HASH_VALUE 584A8C72D316427F // INDEX 5145 -gn_bandit_majesticgarden_3 [Davaes Clutch] +gn_bandit_majesticgarden_3 [Umklammerer von Davae] // HASH_VALUE 27D9AC80D781AB9D // INDEX 5146 -gn_bandit_majesticgarden_4 [Avalae Charmers] +gn_bandit_majesticgarden_4 [Bezauberer von Avalae] // HASH_VALUE AB3A9487DE135C3B // INDEX 5147 -gn_bandit_majesticgarden_5 [Border Blights] +gn_bandit_majesticgarden_5 [Grenz-Zerstörer] // HASH_VALUE D4F8A34B189383A7 // INDEX 5148 -gn_bandit_nexus_1 [Rebels of the West] +gn_bandit_nexus_1 [Rebellen des Westens] // HASH_VALUE E85A646FA62B449E // INDEX 5149 -gn_bandit_nexus_2 [Highwatchers] +gn_bandit_nexus_2 [Überblicker] // HASH_VALUE 6CDA3480F2B82ABE // INDEX 5150 -gn_bandit_nexus_3 [Nexus Stranglers] +gn_bandit_nexus_3 [Nexus-Würger] // HASH_VALUE E582A8924DC7AB94 // INDEX 5151 -gn_bandit_nexus_4 [Casters of the Knot] +gn_bandit_nexus_4 [Zauberer des Knotens] // HASH_VALUE 9A56BC91DB75307A // INDEX 5152 -gn_bandit_oflovaksoasis_1 [Dragon Breath] +gn_bandit_oflovaksoasis_1 [Drachen-Atem] // HASH_VALUE D718BC9222C46095 // INDEX 5153 -gn_bandit_oflovaksoasis_2 [Shadow Riders] +gn_bandit_oflovaksoasis_2 [Schatten-Reiter] // HASH_VALUE 899538926718CC85 // INDEX 5154 -gn_bandit_oflovaksoasis_3 [Dragonfire Angels] +gn_bandit_oflovaksoasis_3 [Drachenfeuer-Himmelsboten] // HASH_VALUE A6B9A0600703AC9D // INDEX 5155 -gn_bandit_oflovaksoasis_4 [Hothead Hackers] +gn_bandit_oflovaksoasis_4 [Hitzkopf-Freibeuter] // HASH_VALUE 2D19C092A6734849 // INDEX 5156 -gn_bandit_outlawcanyon_1 [Canyon Outlaws] +gn_bandit_outlawcanyon_1 [Canyon-Verbrecher] // HASH_VALUE EAD80C15CCF7C0AF // INDEX 5157 -gn_bandit_outlawcanyon_2 [Fighting Flames] +gn_bandit_outlawcanyon_2 [Kämpfende Flammen] // HASH_VALUE 6AD7F07A29C6E878 // INDEX 5158 -gn_bandit_outlawcanyon_3 [Buccaneers] +gn_bandit_outlawcanyon_3 [Freibeuter] // HASH_VALUE A869A4728BD5FF67 // INDEX 5159 -gn_bandit_sawdustmines_1 [Vinnis Rapiers] +gn_bandit_sawdustmines_1 [Vinnis Degen] // HASH_VALUE 6C84B77ADDD52C66 // INDEX 5160 -gn_bandit_sawdustmines_2 [Bone Breakers] +gn_bandit_sawdustmines_2 [Knochenbrecher] // HASH_VALUE 1F65708E94C39F96 // INDEX 5161 -gn_bandit_sawdustmines_3 [Bandits of the Wooded Dunes] +gn_bandit_sawdustmines_3 [Banditen der Bewaldeten Dünen] // HASH_VALUE 65B2A09894261BAB // INDEX 5162 -gn_bandit_the_abyss_of_ichor_1 [Death Mongers] +gn_bandit_the_abyss_of_ichor_1 [Todeshändler] // HASH_VALUE 60309484485AD490 // INDEX 5163 -gn_bandit_the_abyss_of_ichor_2 [Slayers of Ichor] +gn_bandit_the_abyss_of_ichor_2 [Totschläger von Ichor] // HASH_VALUE ED481B4F2AB89F4F // INDEX 5164 -gn_bandit_the_abyss_of_ichor_3 [Sentinels of the Sap] +gn_bandit_the_abyss_of_ichor_3 [Schildwache des Saps] // HASH_VALUE 9F4850976B09B4A9 // INDEX 5165 -gn_bandit_the_abyss_of_ichor_4 [Marauders] +gn_bandit_the_abyss_of_ichor_4 [Marodeure] // HASH_VALUE 5A46A88B1F74587F // INDEX 5166 -gn_bandit_the_elusive_forest_1 [Flaxen Fiends] +gn_bandit_the_elusive_forest_1 [Flachsfarbene Fanatiker] // HASH_VALUE 3266EB53F194A27F // INDEX 5167 -gn_bandit_the_elusive_forest_2 [Brown Braves] +gn_bandit_the_elusive_forest_2 [Braune Krieger] // HASH_VALUE 8CC910352CD4778C // INDEX 5168 -gn_bandit_the_elusive_forest_3 [Green Grief] +gn_bandit_the_elusive_forest_3 [Grüner Gram] // HASH_VALUE D718E4982464789D // INDEX 5169 -gn_bandit_the_land_of_continuty_1 [Shadow Zoners] +gn_bandit_the_land_of_continuty_1 [Schatten-Einteiler] // HASH_VALUE 52FA7842E393BB9B // INDEX 5170 -gn_bandit_the_land_of_continuty_2 [Prime Root Princes] +gn_bandit_the_land_of_continuty_2 [Urwurzel-Prinzen] // HASH_VALUE 9367A085A355249E // INDEX 5171 -gn_bandit_the_land_of_continuty_3 [Cavern Cranks] +gn_bandit_the_land_of_continuty_3 [Kavernen-Sonderlinge] // HASH_VALUE 9F84DC6CD770CC97 // INDEX 5172 -gn_bandit_the_land_of_continuty_4 [Dragon Dudes] +gn_bandit_the_land_of_continuty_4 [Drachen-Kerle] // HASH_VALUE E43A9410C8DABC92 // INDEX 5173 -gn_bandit_the_land_of_continuty_5 [Diehard Ditchers] +gn_bandit_the_land_of_continuty_5 [Hartnäckige Gräber] // HASH_VALUE EE6B5C3AAFAAEC07 // INDEX 5174 -gn_bandit_the_sunken_city_1 [Soul Sisters] +gn_bandit_the_sunken_city_1 [Seelen-Schwestern] // HASH_VALUE 741C1448709C54B0 // INDEX 5175 -gn_bandit_the_sunken_city_2 [Rattlers] +gn_bandit_the_sunken_city_2 [Schwätzer] // HASH_VALUE 1C3A885708A99C6E // INDEX 5176 -gn_bandit_the_sunken_city_3 [Ripping Jaks] +gn_bandit_the_sunken_city_3 [Reißende Jaks] // HASH_VALUE 6C6AE4999A71ABB4 // INDEX 5177 -gn_bandit_the_sunken_city_4 [Loving Goo-drops] +gn_bandit_the_sunken_city_4 [Liebevolle Goo-Tropfen] // HASH_VALUE 7058C408709C54D0 // INDEX 5178 -gn_bandit_the_trench_of_trials_1 [Blasters] +gn_bandit_the_trench_of_trials_1 [Sprenger] // HASH_VALUE A4E6673FA8D8A8A9 // INDEX 5179 -gn_bandit_the_trench_of_trials_2 [Highland Heathens] +gn_bandit_the_trench_of_trials_2 [Hochland-Ketzer] // HASH_VALUE EC185CC4F25AF4A6 // INDEX 5180 -gn_bandit_the_trench_of_trials_3 [Bigmount Bandits] +gn_bandit_the_trench_of_trials_3 [Großlafetten-Banditen] // HASH_VALUE D9EAD498D5A9247C // INDEX 5181 -gn_bandit_the_under_spring_1 [Underspring Lynchers] +gn_bandit_the_under_spring_1 [Quellen-Lyncher] // HASH_VALUE 1A59EC565995A69A // INDEX 5182 -gn_bandit_the_under_spring_2 [Cookys Cranks] +gn_bandit_the_under_spring_2 [Cookys Sonderlinge] // HASH_VALUE F0F9C0AC2374C04C // INDEX 5183 -gn_bandit_the_under_spring_3 [Spooky Stavons] +gn_bandit_the_under_spring_3 [Gruslige Knüppel] // HASH_VALUE A2C8889D68C88CA8 // INDEX 5184 -gn_bandit_the_under_spring_4 [Silencers] +gn_bandit_the_under_spring_4 [Stillmacher] // HASH_VALUE 583084526AFA24AA // INDEX 5185 -gn_bandit_the_windy_gate_1 [Heartbreak Babes] +gn_bandit_the_windy_gate_1 [Herzensbrecher-Schätzchen] // HASH_VALUE 91D4689F1ED3CB9D // INDEX 5186 -gn_bandit_the_windy_gate_2 [Windy Gate Wipers] +gn_bandit_the_windy_gate_2 [Windpforten-Abreiber] // HASH_VALUE 6979C49818A2E7B4 // INDEX 5187 -gn_bandit_the_windy_gate_3 [Spirit Catchers] +gn_bandit_the_windy_gate_3 [Geisterfänger] // HASH_VALUE 68582440709C54AC // INDEX 5188 @@ -21845,111 +21848,111 @@ gn_bandit_thefount_1 [Prakkers] // HASH_VALUE E313F48C1617EBBD // INDEX 5189 -gn_bandit_thefount_2 [Fount Gaffers] +gn_bandit_thefount_2 [Quellen-Gevatter] // HASH_VALUE AB22A389A02BD7C3 // INDEX 5190 -gn_bandit_thefount_3 [Flibusters of the Fount] +gn_bandit_thefount_3 [Quellen-Blockierer] // HASH_VALUE 27D86C6809944CBD // INDEX 5191 -gn_bandit_thefount_4 [Liberty Rangers] +gn_bandit_thefount_4 [Förster der Freiheit] // HASH_VALUE 62AA369068B36F53 // INDEX 5192 -gn_bandit_thesavagedunes_1 [Wicked of the Woods] +gn_bandit_thesavagedunes_1 [Verruchte der Wälder] // HASH_VALUE A43AB0811BA3ABA3 // INDEX 5193 -gn_bandit_thesavagedunes_2 [Savage Slashers] +gn_bandit_thesavagedunes_2 [Barbarische Schlitzer] // HASH_VALUE 5D72A07D5496AFAE // INDEX 5194 -gn_bandit_thesavagedunes_3 [Canal Daggers] +gn_bandit_thesavagedunes_3 [Dolche des Kanals] // HASH_VALUE D08448569B1AA497 // INDEX 5195 -gn_bandit_thesavagedunes_4 [Thieves of Thesos] +gn_bandit_thesavagedunes_4 [Diebe von Thesos] // HASH_VALUE 13B90496231570A1 // INDEX 5196 -gn_bandit_thescorchedcorridor_1 [Underground Slicers] +gn_bandit_thescorchedcorridor_1 [Untergrund-Schlitzer] // HASH_VALUE 19D70C956306788E // INDEX 5197 -gn_bandit_thescorchedcorridor_2 [Tunnel Hounds] +gn_bandit_thescorchedcorridor_2 [Tunnel-Spürhunde] // HASH_VALUE AB8A8020D1F814CA // INDEX 5198 -gn_bandit_thescorchedcorridor_3 [Alleyway Strays] +gn_bandit_thescorchedcorridor_3 [Durchgangs-Streuner] // HASH_VALUE 64D672726E78E4A8 // INDEX 5199 -gn_bandit_thevoid_1 [Underwood Rebels] +gn_bandit_thevoid_1 [Unterholz-Rebellen] // HASH_VALUE D7E75849EC462799 // INDEX 5200 -gn_bandit_thevoid_2 [Goo Grapplers] +gn_bandit_thevoid_2 [Goo-Greifer] // HASH_VALUE D758A43898C81FBB // INDEX 5201 -gn_bandit_thevoid_3 [Villains of the Void] +gn_bandit_thevoid_3 [Schurken des Nichts] // HASH_VALUE 95196C8211175787 // INDEX 5202 -gn_bandit_upperbog_1 [Sap Rakers] +gn_bandit_upperbog_1 [Sap-Harker] // HASH_VALUE 2B27D08569E8E497 // INDEX 5203 -gn_bandit_upperbog_2 [Bushwhacks] +gn_bandit_upperbog_2 [Auflauerer] // HASH_VALUE DCB71CA09D46408F // INDEX 5204 -gn_bandit_upperbog_3 [Stalia Rovers] +gn_bandit_upperbog_3 [Stalia-Vagabunden] // HASH_VALUE AFA6D386A576A473 // INDEX 5205 -gn_bandit_windsofmuse_1 [Muse Tumblers] +gn_bandit_windsofmuse_1 [Musen-Stürzer] // HASH_VALUE 6522D0891357DFA3 // INDEX 5206 -gn_bandit_windsofmuse_2 [Cliff Tanners] +gn_bandit_windsofmuse_2 [Klippen-Gerber] // HASH_VALUE 67EC7421E70CD4F4 // INDEX 5207 -gn_bandit_windsofmuse_3 [Muse Muggers] +gn_bandit_windsofmuse_3 [Musen-Straßenräuber] // HASH_VALUE 9808A48BCFA17441 // INDEX 5208 -gn_bandit_windsofmuse_4 [Wicked Winds of the West] +gn_bandit_windsofmuse_4 [Verruchte Winde des Westens] // HASH_VALUE AC59689FE9899CBD // INDEX 5209 -gn_class_apprentice_trader [Händlerlehrling] +gn_class_apprentice_trader [Händler-Lehrling] // HASH_VALUE 258BD0976128D8A2 // INDEX 5210 -gn_class_arcane_apprentice [Erfahrener Elitemagier] +gn_class_arcane_apprentice [erfahrener Elitemagier] // HASH_VALUE 24E91888A93924B0 // INDEX 5211 -gn_class_arcane_master [Alter Elitemagier] +gn_class_arcane_master [hochrangiger Elitemagier] // HASH_VALUE 242A1893E18B1897 // INDEX 5212 -gn_class_archery_lord [Alter Starkschütze] +gn_class_archery_lord [altgedienter starker Schütze] // HASH_VALUE 6F19C0A4E5B9D8A4 // INDEX 5213 -gn_class_archery_master [Erfahrener Starkschütze] +gn_class_archery_master [erfahrener starker Schützee] // HASH_VALUE 6C1978AA67E924B5 // INDEX 5214 -gn_class_archery_recruit [Junger Starkschütze] +gn_class_archery_recruit [junger starker Schütze] // HASH_VALUE 60DC34846C5834CC // INDEX 5215 -gn_class_assassin [Junger mächtiger Schütze] +gn_class_assassin [mächtiger Schütze] // HASH_VALUE EAA8A0992A7AE8B3 // INDEX 5216 @@ -21957,87 +21960,87 @@ gn_class_bodyguard [Eskorte] // HASH_VALUE 2C6AE8A0AC19E4A3 // INDEX 5217 -gn_class_bowmen [Junger regelmäßiger Schütze] +gn_class_bowmen [junger regulärer Schütze] // HASH_VALUE 6AFA9CA86939709B // INDEX 5218 -gn_class_captain [Erfahrener Meisterschütze] +gn_class_captain [altgedienter Meisterkrieger] // HASH_VALUE A479B088AAC964A6 // INDEX 5219 -gn_class_charm_adept [Junger mächtiger Magier] +gn_class_charm_adept [junger mächtiger Magier] // HASH_VALUE 73A954A3F5E930AD // INDEX 5220 -gn_class_charm_expert [Erfahrener mächtiger Magier] +gn_class_charm_expert [hochrangiger mächtiger Magier] // HASH_VALUE 2B78B894AA58949A // INDEX 5221 -gn_class_cleric [Alter Eliteschütze] +gn_class_cleric [altgedienter Eliteheiler] // HASH_VALUE 6898F48C705824D4 // INDEX 5222 -gn_class_conjurer [Alter starker Magier] +gn_class_conjurer [hochrangiger starker Magier] // HASH_VALUE 2A59DCB0EA2ADCB3 // INDEX 5223 -gn_class_conscript [Junger regelmäßiger Krieger] +gn_class_conscript [junger regulärer Krieger] // HASH_VALUE 2CAAC0966798C0A4 // INDEX 5224 -gn_class_cure_adept [Junger Meisterschütze] +gn_class_cure_adept [junger Meisterheiler] // HASH_VALUE E36A149FEC69F0BE // INDEX 5225 -gn_class_cure_expert [Alter Meisterschütze] +gn_class_cure_expert [hochrangiger Meisterheiler] // HASH_VALUE A97A84B669E9149A // INDEX 5226 -gn_class_cure_master [Erfahrener Meisterschütze] +gn_class_cure_master [altgedienter Meisterheiler] // HASH_VALUE EBF980AAEB08ACA7 // INDEX 5227 -gn_class_elite [Junger Eliteschütze] +gn_class_elite [junger Elitekrieger] // HASH_VALUE 27984CAD2AD83CBD // INDEX 5228 -gn_class_executionner [Erfahrener mächtiger Schütze] +gn_class_executionner [erfahrener mächtiger Schütze] // HASH_VALUE ED8B28ACB2DA18B9 // INDEX 5229 -gn_class_expert [Erfahrener Elitekrieger] +gn_class_expert [erfahrener Elitekrieger] // HASH_VALUE 2C99B49EE6999CB1 // INDEX 5230 -gn_class_fighter [Erfahrener mächtiger Schütze] +gn_class_fighter [mächtiger altgedienter Krieger] // HASH_VALUE 2609A8A868AAB4A4 // INDEX 5231 -gn_class_forager [Erntebetreiber] +gn_class_forager [Ernter] // HASH_VALUE 2CB9689367A9EC9F // INDEX 5232 -gn_class_healing_apprentice [Junger regelmäßiger Heiler] +gn_class_healing_apprentice [junger regulärer Heiler] // HASH_VALUE 6AD8BCAA28D870B4 // INDEX 5233 -gn_class_legionnaire [Junger mächtiger Schütze] +gn_class_legionnaire [junger mächtiger Krieger] // HASH_VALUE E919AC9E2C0AD491 // INDEX 5234 -gn_class_life_surgeon [Erfahrener Eliteheiler] +gn_class_life_surgeon [erfahrener Eliteheiler] // HASH_VALUE 68D814B46C58948C // INDEX 5235 -gn_class_magician [Alter Meistermagier] +gn_class_magician [altgedienter Meistermagier] // HASH_VALUE 6988ACAF28B9C0B8 // INDEX 5236 -gn_class_major [Junger Meisterkrieger] +gn_class_major [junger Meisterkrieger] // HASH_VALUE A408689E27A87C9D // INDEX 5237 -gn_class_medic [Erfahrener starker Heiler] +gn_class_medic [erfahrener starker Heiler] // HASH_VALUE 681894B46C58948C // INDEX 5238 @@ -22045,11 +22048,11 @@ gn_class_milician [Aufseher] // HASH_VALUE 6B1AD0A3EE18F4A7 // INDEX 5239 -gn_class_mystical_adept [Junger Meistermagier] +gn_class_mystical_adept [junger kundiger Magier] // HASH_VALUE EC0C28AAABF9ACA3 // INDEX 5240 -gn_class_mystical_expert [Erfahrener Meistermagier] +gn_class_mystical_expert [erfahrener Meistermagier] // HASH_VALUE 6B88D0A32B48B89A // INDEX 5241 @@ -22057,79 +22060,79 @@ gn_class_noble [Kamerad] // HASH_VALUE 6B6AF8BCAEDB00BF // INDEX 5242 -gn_class_priest [Junger Eliteheiler] +gn_class_priest [junger Eliteheiler] // HASH_VALUE 6B5ACCC1AF1AF0AA // INDEX 5243 -gn_class_private [Erfahrener starker Krieger] +gn_class_private [erfahrener starker Krieger] // HASH_VALUE A73918B4687A1CA9 // INDEX 5244 -gn_class_professional [Alter starker Schütze] +gn_class_professional [altgedienter mächtiger Schütze] // HASH_VALUE A5C968A4E6099897 // INDEX 5245 -gn_class_range_adept [Alter regelmäßiger Schütze] +gn_class_range_adept [regulärer Schütze] // HASH_VALUE A6F858BC25E850AF // INDEX 5246 -gn_class_range_master [Alter Eliteschütze] +gn_class_range_master [hochrangiger Eliteschütze] // HASH_VALUE 704AC0AC69FAD4C4 // INDEX 5247 -gn_class_recruit [Erfahrener regelmäßiger Krieger] +gn_class_recruit [regulärer Krieger] // HASH_VALUE E77BC0ADB0D8D4B4 // INDEX 5248 -gn_class_ritual_master [Alter starker Heiler] +gn_class_ritual_master [hochrangiger starker Heiler] // HASH_VALUE EAD990B1AAFBECBA // INDEX 5249 -gn_class_sergent [Alter mächtiger Krieger] +gn_class_sergent [altgedienter mächtiger Krieger] // HASH_VALUE 6B79B0A82A9AC896 // INDEX 5250 -gn_class_shaman [Junger starker Heiler] +gn_class_shaman [junger starker Heiler] // HASH_VALUE E84A98AD270878C9 // INDEX 5251 -gn_class_shooting_elite [Junger Eliteschütze] +gn_class_shooting_elite [junger Eliteschütze] // HASH_VALUE 2CB9B4B3E979ACAE // INDEX 5252 -gn_class_shooting_lord [Erfahrener Eliteschütze] +gn_class_shooting_lord [erfahrener Eliteschütze] // HASH_VALUE 68F8A4B2EB1AE8B3 // INDEX 5253 -gn_class_soldier [Alter regelmäßiger Krieger] +gn_class_soldier [regulärer Krieger] // HASH_VALUE 609CF4CC70582494 // INDEX 5254 -gn_class_sorcerer [Junger Elitemagier] +gn_class_sorcerer [junger Elitemagier] // HASH_VALUE 6B7B90B0688AD8AC // INDEX 5255 -gn_class_sorcery_apprentice [Junger starker Magier] +gn_class_sorcery_apprentice [junger Magier] // HASH_VALUE 2D0AA0C5E2CBCCB6 // INDEX 5256 -gn_class_sorcery_master [Erfahrener starker Magier] +gn_class_sorcery_master [altgedienter starker Magier] // HASH_VALUE EC7A8CAF6C5AB8A2 // INDEX 5257 -gn_class_spellcaster [Junger starker Magier] +gn_class_spellcaster [junger starker Magier] // HASH_VALUE ABEB78A92649B4C9 // INDEX 5258 -gn_class_throwing_adept [Junger Meisterschütze] +gn_class_throwing_adept [junger Meisterschütze] // HASH_VALUE 2DABE0A0E7EAF8B7 // INDEX 5259 -gn_class_throwing_expert [Erfahrener Meisterschütze] +gn_class_throwing_expert [erfahrener Meisterschütze] // HASH_VALUE B16AA4A8E7CABCB9 // INDEX 5260 -gn_class_throwing_master [Alter Meisterschütze] +gn_class_throwing_master [altgedienter Meisterschütze] // HASH_VALUE 6AC9ECAEEDFAEC9F // INDEX 5261 @@ -22141,27 +22144,27 @@ gn_class_traveler [Reisender] // HASH_VALUE A52A949DEEC974B7 // INDEX 5263 -gn_class_treat_adept [Erfahrener mächtiger Heiler] +gn_class_treat_adept [erfahrener mächtiger Heiler] // HASH_VALUE E65824C8EA9844D0 // INDEX 5264 -gn_class_treat_apprentice [Junger mächtiger Heiler] +gn_class_treat_apprentice [junger mächtiger Heiler] // HASH_VALUE EC4904C46F8BF8BB // INDEX 5265 -gn_class_trooper [Junger starker Krieger] +gn_class_trooper [junger starker Krieger] // HASH_VALUE 609C14DC645894A0 // INDEX 5266 -gn_class_warchief [Alter Meisterkrieger] +gn_class_warchief [hochrangiger Meisterkrieger] // HASH_VALUE A819BCB6EC6A9CB4 // INDEX 5267 -gn_class_warlock [Alter mächtiger Magier] +gn_class_warlock [altgedienter mächtiger Magier] // HASH_VALUE AB0ABCB6ECFABCBC // INDEX 5268 -gn_class_warlord [Alter Elitekrieger] +gn_class_warlord [altgedienter Elitekrieger] // HASH_VALUE 2CDBC0C2AA6AD0A1 // INDEX 5269 @@ -22169,35 +22172,35 @@ gn_class_warmaster [Kriegsmeister] // HASH_VALUE 6DDABCBC6DDBE8C1 // INDEX 5270 -gn_class_warrior [Alter starker Krieger] +gn_class_warrior [starker Kriegerveteran] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5271 -gn_darkeningsap_static_guard_5 [Wächter] +gn_darkeningsap_static_guard_5 [resoluter Wächter] // HASH_VALUE 2609A8A868AAB4A4 // INDEX 5272 -gn_forager [Erntender] +gn_forager [Ernter] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5273 -gn_fraharhunters_guards_w_10 [Mächtiger Wächter] +gn_fraharhunters_guards_w_10 [mächtiger Wächter] // HASH_VALUE 679AC8ACEB39C0A2 // INDEX 5274 -gn_fyros_defender [Fyros Verteidiger] +gn_fyros_defender [Verteidiger der Fyros] // HASH_VALUE 6DB820A0E45A6CBD // INDEX 5275 -gn_fyros_officer [Fyros Offizier] +gn_fyros_officer [Fyros-Offizier] // HASH_VALUE E896B49864FA0CBA // INDEX 5276 -gn_green_seed_noble [Grüner Saatadliger] +gn_green_seed_noble [Kommandant] // HASH_VALUE EBD86CAEEAD988A9 // INDEX 5277 -gn_green_seed_volunteer [Grüner Saatfreiwilliger] +gn_green_seed_volunteer [Krieger-Volontär] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5278 @@ -22205,11 +22208,11 @@ gn_guard_inv_1 [Wächter] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5279 -gn_guard_inv_2 [Wächter] +gn_guard_inv_2 [Wachposten] // HASH_VALUE 64A55B8D6504F067 // INDEX 5280 -gn_kami_sentinel [Kami-Wächter] +gn_kami_sentinel [Kami-Wachposten] // HASH_VALUE E87AB46446F854B4 // INDEX 5281 @@ -22217,31 +22220,31 @@ gn_karavan_guard_h_1 [Karavan-Wächter] // HASH_VALUE E87AB42446F854B4 // INDEX 5282 -gn_karavan_guardian [Karavan-Wächter] +gn_karavan_guardian [Karavan-Beschützer] // HASH_VALUE 6F79DCB365FBE8B1 // INDEX 5283 -gn_levier_volunteer [Levier Freiwilliger] +gn_levier_volunteer [Regulärer Freiwilliger] // HASH_VALUE AA7A7CAFA8D9D89F // INDEX 5284 -gn_leviers_noble [Levier Kamarad] +gn_leviers_noble [Kommandant] // HASH_VALUE E648C0A165D970BF // INDEX 5285 -gn_matis_officer [Matis Offizier] +gn_matis_officer [Matis-Offizier] // HASH_VALUE 261B94C1EA4A88BB // INDEX 5286 -gn_matis_voluteer [Matis Freiwilliger] +gn_matis_voluteer [Verteidiger der Matis] // HASH_VALUE E9DAB4A4ABF9A4A1 // INDEX 5287 -gn_mystical__adept [Junger Magiermeister] +gn_mystical__adept [junger Magiekundiger] // HASH_VALUE 691AC8A6AC9AE4A9 // INDEX 5288 -gn_professionnal [Alter mächtiger Schütze] +gn_professionnal [altgedienter mächtiger Schütze] // HASH_VALUE CE745F72D2D39772 // INDEX 5289 @@ -22253,7 +22256,7 @@ gn_zorai_officer [Zoraï-Offizier] // HASH_VALUE 245AACCC6BFBC0BE // INDEX 5291 -gn_zorai_voluteer_f [Zoraï-Freiwilliger] +gn_zorai_voluteer_f [Verteidigerin der Zoraï] // HASH_VALUE 10F0B412CEB0AC10 // INDEX 5292 @@ -22265,8 +22268,8 @@ uiEncyclopedia [ENZYKLOPÄDIE] // HASH_VALUE A79A55E425442C20 // INDEX 5294 -uiEncyExplanation [Das ist Deine Enzyklopädie.\n - Die Enzyklopädie ist wie eine Bibliothek, die das Wissen, welches Du auf Atys über Rohstoffe, Kreaturen, Geschichte oder Stämme sammelst, zusammenfasst. Sie ist aus mehreren Bänden aufgebaut und jeder Band umfasst wiederum mehrere Themen.] +uiEncyExplanation [Das ist deine Enzyklopädie.\n + Die Enzyklopädie sammelt (Charakter-)Wissen über Rohstoffe, Kreaturen, Nationen, Stämme und die Atys-Geschichte, das du vor allem durch 'Riten' auf Atys erwirbst. Die Enzyklopädie besteht aus mehreren 'Bänden'. Jeder Band umfasst mehrere Themen.] // HASH_VALUE 1C09E47B1F4AB09D // INDEX 5295 @@ -22314,11 +22317,11 @@ uiTask7 [Ritual-Aufgabe 7: Aufgabe von einem NPC erteilt...] // HASH_VALUE 245AACCC6BFBC0BE // INDEX 5306 -gn_zorai_voluteer_m [Zoraï-Freiwilliger] +gn_zorai_voluteer_m [Verteidiger der Zoraï] // HASH_VALUE 3E67E4291FBB3642 // INDEX 5307 -uiMoveToNoMoreSlot [Du hast keine freien Plätze mehr in diesem Inventar.] +uiMoveToNoMoreSlot [Du hast keine freien Slots mehr in diesem Inventar.] // HASH_VALUE 918272974F939B3F // INDEX 5308 @@ -22338,8 +22341,8 @@ uiQuitingRyzom [Ryzom verlassen...] // HASH_VALUE 69AD08699B76E8FF // INDEX 5312 -uiQuitingRules [Hinweis: Wenn du dich bewegst, oder angreifst, wird Dein Ausloggen abgebrochen.\n - Hinweis: Wenn du 'Jetzt verlassen' drückst, bleibt dein Avatar noch 30 Sekunden lang verbunden.] +uiQuitingRules [Hinweis: Wenn du dich bewegst, oder angreifst, wird dein Ausloggen abgebrochen.\n + Hinweis: Wenn du 'Jetzt verlassen' anklickst, bleibt dein Charakter noch 30 Sekunden lang ingame.] // HASH_VALUE 7458544474D8E480 // INDEX 5313 @@ -22347,8 +22350,8 @@ uiQuitNow [Jetzt verlassen] // HASH_VALUE 76FA8CC65B825C6E // INDEX 5314 -uiPayingAccount [Für einen kurzen Zeitraum ist die Spielelizenz von Ryzom gratis!\n - Abonniere jetzt für den vollen Zugang zu Ryzom und bezahle nur die monatliche Abogebühr. ] +uiPayingAccount [Du kannst Ryzom gratis herunterladen, aber die Online-Nutzung (Server, Support) ist für kostenlose Testaccounts nur bis zu einer gewissen Grenze kostenlos (Stufe 125, eingeschränkte Lager-Möglichkeiten).\n + Abonniere jetzt für den vollen Zugang zu Ryzom und bezahle nur die monatliche Abogebühr.] // HASH_VALUE 4D9FFC178C00FC3E // INDEX 5315 @@ -22388,15 +22391,15 @@ uiBCNoItemTypeFilter [Alle] // HASH_VALUE A0D45B8193642864 // INDEX 5324 -uiBCTitleFilterPrice [Preisgrenzen:] +uiBCTitleFilterPrice [Preiseingrenzung:] // HASH_VALUE 9688AC88DEA05C72 // INDEX 5325 -uiBCTitleFilterQuality [Qualitätsgrenzen:] +uiBCTitleFilterQuality [Qualitätseingrenzung:] // HASH_VALUE A2043B7B4F45685C // INDEX 5326 -uiBCTitleFilterClass [Gütegrenzen:] +uiBCTitleFilterClass [Güteeingrenzung:] // HASH_VALUE DA580C3F5CE42F9C // INDEX 5327 @@ -22550,11 +22553,11 @@ uittNotEnoughGuildMoney [Deine Gilde hat nicht genug Dapper, um das zu kaufen] // HASH_VALUE 9EA0F87CB6A59313 // INDEX 5364 -uittNotEnoughGuildXP [Du hast nicht genug Gilden-XP, um das kaufen.] +uittNotEnoughGuildXP [Du hast nicht genug Gilden-Erfahrung, um das zu kaufen.] // HASH_VALUE 53D9C9F44CDBDCD8 // INDEX 5365 -uittNotEnoughSkillPoints [Du hast nicht genug Fertigkeiten-Punkte, um diese Aktion zu kaufen.] +uittNotEnoughSkillPoints [Du hast nicht genug Fertigkeitspunkte, um diese Aktion zu kaufen.] // HASH_VALUE 54D3D13C71366CC4 // INDEX 5366 @@ -22594,10 +22597,10 @@ uiMagicProtectTable [Schutz] // HASH_VALUE 276E3F52A73FB865 // INDEX 5375 -uittMagicProtectTable [Der @{6F6F}magische Schutz@{FFFF} absorbiert einen Prozentsatz an magischen Schäden, abhängig von: \n - @{T4}- dem @{6F6F}Typ@{FFFF} des erlittenen magischen Schadens \n - @{T4}- dem Schutz, den der @{6F6F}Schmuck@{FFFF} bietet \n - @{T4}- der Summe der @{6F6F}Qualität @{FFFF}des getragenen Schmucks\n +uittMagicProtectTable [Der @{6F6F}magische Schutz@{FFFF} absorbiert einen Prozentsatz an magischen Schäden, abhängig von:\n + @{T4}- dem @{6F6F}Typ@{FFFF} des erlittenen magischen Schadens,\n + @{T4}- dem Schutz, den der @{6F6F}Schmuck@{FFFF} bietet,\n + @{T4}- der Summe der @{6F6F}Qualität @{FFFF}des getragenen Schmucks und\n @{T4}- der @{6F6F}Rasse@{FFFF} des Spielers] // HASH_VALUE 20A994876787A8A4 @@ -22630,44 +22633,44 @@ uiProtect_Shockwave [Schockwelle] // HASH_VALUE 049B1C4DD74B2041 // INDEX 5383 -uiProtect_MaxAbsorb [Max absorbiert] +uiProtect_MaxAbsorb [Max. absorbiert] // HASH_VALUE 7259CAAC235FEE16 // INDEX 5384 -uittProtect_Rot [Absorption der Verrottungsschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Rot [Verrottungsschäden-Absorption: @{6F6F}%v%@{FFFF} %max] // HASH_VALUE CB53C08014A3833C // INDEX 5385 -uittProtect_Acid [Absorption der Säureschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Acid [Säureschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE 0C53B980D4F39B4B // INDEX 5386 -uittProtect_Cold [Absorption der Kälteschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Cold [Kälteschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE A7CA8DB65D5E0B80 // INDEX 5387 -uittProtect_Fire [Absorption der Feuerschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Fire [Feuerschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE 6CC982F5CCA8356D // INDEX 5388 -uittProtect_Poison [Absorption der Giftschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Poison [Giftschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE C10039287A9472FB // INDEX 5389 -uittProtect_Electricity [Absorption der Elektroschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Electricity [Elektroschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE 56A951A06FA9108A // INDEX 5390 -uittProtect_Shockwave [Absorption der Schockwellenschäden: @{6F6F}%v%@{FFFF} %max] +uittProtect_Shockwave [Schockwellenschäden-Absorption : @{6F6F}%v%@{FFFF} %max] // HASH_VALUE DB00AE336D4AC0AF // INDEX 5391 -uittProtect_MaxReached [(maximum)] +uittProtect_MaxReached [(maximal)] // HASH_VALUE BE3C7E33592B3BA4 // INDEX 5392 -uittProtect_MaxAbsorb [Maximum der absorbierten Schäden.\n - Summe aus @{6F6F}Qualität der Juwelen@{FFFF} + @{6F6F}Level max@{FFFF} von den Spielern.] +uittProtect_MaxAbsorb [Maximum der absorbierten Schäden:\n + Summe aus @{6F6F}Qualität der Juwelen@{FFFF} + @{6F6F}max. Stufe@{FFFF} des Spielers] // HASH_VALUE 0F43D4330BE3FC4C // INDEX 5393 @@ -22677,14 +22680,14 @@ uiResistsTable [Widerstände] // INDEX 5394 uittMagicResistTable [Den Zaubersprüchen der Kreaturen und Spieler kann vollständig widerstanden werden@{FFFF}.\n Die @{6F6F}Chance@{FFFF} einem Zauberspruch ganz zu widerstehen hängt ab von:\n - @{T4}- der @{6F6F}Kraft@{FFFF} des Spuchs wenn es sich um einen Beherrschungsspruch handelt\n - @{T4}- dem @{6F6F}Level@{FFFF} des Zauberers, wenn es sich um einen Elementarspruch handelt\n + @{T4}- der @{6F6F}Kraft@{FFFF} des Spruchs, wenn es sich um einen Beherrschungsspruch handelt\n + @{T4}- der @{6F6F}Stufe@{FFFF} der Magiefertigkeit, wenn es sich um einen Elementarspruch handelt\n @{T4}- deinem @{6F6F}Widerstandswert@{FFFF} in dem @{6F6F}Zauberbereich@{FFFF} des aufgesagten Spruchs\n - @{T0}Dein @{6F6F}Widerstandswert@{FFFF} ist die Summe\n - @{T4}- des Maximums zwischen deinen Fertigkeitsleveln in @{6F6F}Kampf, Zauber und Rohstoffabbau/2@{FFFF}\n - @{T4}- der Boni @{6F6F}des Schmuckwiderstands@{FFFF} im betroffenen Magiebereich\n - @{T4}- dem Bonus abhängig @{6F6F}von deiner Rasse@{FFFF} (Bsp.: +10 in der Wüste für die Fyros)\n - @{T4}- dem Malus abhängig vom @{6F6F}Ökosystem@{FFFF}, in dem du dich befindest (Bsp.: -10 in der Wüste wenn du dich in der Wüste befindest)] + @{T0}Dein @{6F6F}Widerstandswert@{FFFF} ist die Summe: :\n + @{T4}- vom Maximum zwischen deinen Fertigkeitsstufen in @{6F6F}Kampf, Zauber und Rohstoffabbau/2@{FFFF}\n + @{T4}- von den Boni @{6F6F}des Schmuckwiderstands@{FFFF} im betroffenen Magiebereich\n + @{T4}- vom Bonus, abhängig @{6F6F}von deiner Rasse@{FFFF} (Bsp.: +10 in der Wüste für die Fyros)\n + @{T4}- und vom Malus, abhängig vom @{6F6F}Ökosystem@{FFFF}, in dem du dich befindest (Bsp.: -10 für Dschungel, wenn du dich im Dschungel befindest)] // HASH_VALUE CC25343C56C9D2F7 // INDEX 5395 @@ -22692,7 +22695,7 @@ uiResist_Desert [Wüstenmagie-Widerstand] // HASH_VALUE 9D21928895966E9E // INDEX 5396 -uiResist_Forest [Waldmagie-Widerstand] +uiResist_Forest [Wadmagie-Widerstand] // HASH_VALUE C01AA450C8187C6A // INDEX 5397 @@ -22708,21 +22711,21 @@ uiResist_PrimRoot [Urwurzelmagie-Widerstand] // HASH_VALUE 0B3B8D626ED819EA // INDEX 5400 -uittResist_Desert [Widerstand gegen Zaubersprüche aus dem Wüstenbereich: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chancen einem Spruch von @{6F6F}Elementarmagie@{FFFF} der Stufe @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF} zu widerstehen\n - @{T4}- Chancen einem Spruch von @{6F6F}Schmerzzauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF} zu widerstehen\n - @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n +uittResist_Desert [Widerstand gegen Magiesprüche aus dem Wüstenbereich: @{6F6F}%v@{FFFF} %max\n + @{T4}- Chance, einem Spruch von @{6F6F}Elementarmagie@{FFFF} der Stufe @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF} zu widerstehen\n + @{T4}- Chance, einem Spruch von @{6F6F}Schmerzmagie@{FFFF} der Stufe @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF} zu widerstehen\n + @{T0}Dieser Bereich inkludiert folgende Magie-Effekte:\n @{T4}- @{6F6F}Feuer@{FFFF}\n - @{T4}- @{6F6F}Blenden@{FFFF}\n + @{T4}- @{6F6F}Blindheit@{FFFF}\n @{T4}- @{6F6F}Wahnsinn@{FFFF}\n ] // HASH_VALUE 59EA33B883AB2026 // INDEX 5401 -uittResist_Forest [Widerstand gegen Zaubersprüche aus dem Waldbereich: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chancen, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chancen, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n - @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n +uittResist_Forest [Widerstand gegen Magiesprüche aus dem Waldlandbereich: @{6F6F}%v@{FFFF} %max\n + @{T4}- Chance, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n + @{T4}- Chancen einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n + @{T0}Dieser Bereich inkludiert folgende Magie-Effekte:\n @{T4}- @{6F6F}Gift@{FFFF}\n @{T4}- @{6F6F}Schlaf@{FFFF}\n @{T4}- @{6F6F}Bewegungsverlangsamung@{FFFF}\n @@ -22730,21 +22733,21 @@ uittResist_Forest [Widerstand gegen Zaubersprüche aus dem Waldbereich: @{6F6F}% // HASH_VALUE C9600D6865D27D73 // INDEX 5402 -uittResist_Lacustre [Widerstand gegen Zaubersprüche aus dem Seenlandbereich: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chancen, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chancen, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n - @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n +uittResist_Lacustre [Widerstand gegen Magieprüche aus dem Seenlandbereich: @{6F6F}%v@{FFFF} %max\n + @{T4}- Chance, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n + @{T4}- Chance, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n + @{T0}Dieser Bereich inkludiert folgende Magie-Effekte:\n @{T4}- @{6F6F}Kälte@{FFFF}\n @{T4}- @{6F6F}Schockwelle@{FFFF}\n - @{T4}- @{6F6F}Betäubung@{FFFF}\n + @{T4}- @{6F6F}Betäuben@{FFFF}\n ] // HASH_VALUE 6D27C3213D0933D9 // INDEX 5403 -uittResist_Jungle [Widerstand gegen Zaubersprüche aus dem Dschungelbereich: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chancen, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chancen, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n - @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n +uittResist_Jungle [Widerstand gegen Magiesprüche aus dem Dschungelbereich: @{6F6F}%v@{FFFF} %max\n + @{T4}- Chance, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n + @{T4}- Chance, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n + @{T0}Dieser Bereich inkludiert folgende Magie-Effekte:\n @{T4}- @{6F6F}Elektrizität@{FFFF}\n @{T4}- @{6F6F}Verwurzelung@{FFFF}\n @{T4}- @{6F6F}Angriffsverlangsamung@{FFFF}\n @@ -22752,10 +22755,10 @@ uittResist_Jungle [Widerstand gegen Zaubersprüche aus dem Dschungelbereich: @{6 // HASH_VALUE C84D03E6ED023088 // INDEX 5404 -uittResist_PrimRoot [Widerstand gegen Zaubersprüche aus dem Urwurzelbereich: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chancen einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chancen einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n - @{T0}Dieser Bereich beinhaltet folgende Zaubersprüche:\n +uittResist_PrimRoot [Widerstand gegen Magiesprüche aus dem Urwurzelbereich: @{6F6F}%v@{FFFF} %max\n + @{T4}- Chance, einem @{6F6F}Elementarzauber@{FFFF} der Stufe @{6F6F}%eml@{FFFF} zu widerstehen: @{6F6F}%emr%@{FFFF}\n + @{T4}- Chance, einem @{6F6F}Beherrschungszauber@{FFFF} der Stufe @{6F6F}%aml@{FFFF} zu widerstehen: @{6F6F}%amr%@{FFFF}\n + @{T0}Dieser Bereich inkludiert folgende Magie-Effekte:\n @{T4}- @{6F6F}Säure@{FFFF}\n @{T4}- @{6F6F}Verrotten@{FFFF}\n @{T4}- @{6F6F}Angst@{FFFF}\n @@ -22763,7 +22766,7 @@ uittResist_PrimRoot [Widerstand gegen Zaubersprüche aus dem Urwurzelbereich: @{ // HASH_VALUE DB00AE336D4AC0AF // INDEX 5405 -uittResist_MaxReached [(maximum)] +uittResist_MaxReached [(Maximum)] // HASH_VALUE 6858142C6858142C // INDEX 5406 @@ -22799,7 +22802,7 @@ uiAFK [{AFK}] // HASH_VALUE D8CAC083E0E7544A // INDEX 5414 -uiLOGResolution [Spielauflösung] +uiLOGResolution [Auflösung] // HASH_VALUE EC7A4CD8EA744A9A // INDEX 5415 @@ -22839,11 +22842,11 @@ uiENDesc [MISSIONSNAME: ] // HASH_VALUE 9340C82653FDD415 // INDEX 5424 -uiENRequired [RITUELLE AUFGABEN] +uiENRequired [RITEN] // HASH_VALUE 4414944844149448 // INDEX 5425 -uiENRite [RITUAL] +uiENRite [RITE] // HASH_VALUE 8263473683720A41 // INDEX 5426 @@ -22863,7 +22866,7 @@ uiMissionOr [oder ] // HASH_VALUE 62F5049CECE91B4A // INDEX 5430 -uiMissionPrereq [Vorbedingungen:] +uiMissionPrereq [Voraussetzungen:] // HASH_VALUE 55F70330EE7AE893 // INDEX 5431 @@ -22891,15 +22894,15 @@ uiMFNext [Weiter] // HASH_VALUE 1BA94F762BB2AC62 // INDEX 5437 -uiMFDeleteMailTitle [Nachricht löschen] +uiMFDeleteMailTitle [Brief löschen] // HASH_VALUE 8F75FC2F68F786B0 // INDEX 5438 -uiMFEraseMail [Nachricht löschen?] +uiMFEraseMail [Brief löschen?] // HASH_VALUE 79152CAEF0165762 // INDEX 5439 -uiMFEraseMailQuestion [Willst du diese Nachricht wirklich löschen? ] +uiMFEraseMailQuestion [Willst du diesen Brief wirklich löschen? ] // HASH_VALUE 6B89EC7BECC7FC8A // INDEX 5440 @@ -22947,7 +22950,7 @@ uiMFNewMessage [Neue Nachricht] // HASH_VALUE 66FAB49864B7FC7A // INDEX 5451 -uiMFMailBody [Nachricht] +uiMFMailBody [Brief] // HASH_VALUE D154876FF036DB6C // INDEX 5452 @@ -22963,11 +22966,11 @@ uiMFMessages [Nachrichten] // HASH_VALUE E6181C94EBE70B56 // INDEX 5455 -uiMFUndelivrableMail [Mail kann nicht zugestellt werden] +uiMFUndelivrableMail [Brief kann nicht zugestellt werden.] // HASH_VALUE 2D4662ECB080CC5C // INDEX 5456 -uiMFUndelivrableMailTo [Server konnte die Mail nicht zustellen an ] +uiMFUndelivrableMailTo [Server konnte den Brief nicht zustellen an ] // HASH_VALUE 26B58F895A049457 // INDEX 5457 @@ -22975,7 +22978,7 @@ uiMFUndelivrableMailCheck [Bitte überprüfe den Namen des Empfängers.] // HASH_VALUE 6B8682A168644431 // INDEX 5458 -uiMFMailContent [Briefinhalt: ] +uiMFMailContent [Brief-Inhalt:] // HASH_VALUE DFE6607F5557844B // INDEX 5459 @@ -23069,36 +23072,23 @@ uiCancelCreateAccount [Zurück zum Einloggen] // INDEX 5481 uiSubmitNewAccount [OK] -/* OLD VALUE : [Congratulations! -You have succeeded in creating a Ryzom account -A confirmation e-mail has been sent to you at the following address: -] */ -/* OLD VALUE : [Glückwunsch! -Dein Ryzom Account wurde erstellt. -Eine Bestätigungs-Email wurde an folgende Adresse geschickt: -] */ // HASH_VALUE 0A7AAE591216F54A // INDEX 5482 uiSubmitSucces1 [Glückwunsch!\n \n Du hast erfolgreich einen Ryzom-Account erstellt.\n - Es wurde eine E-Mail an die folgende Adresse gesandt:\n + Eine Benachrichtigungs-E-Mail wurde an die folgende Adresse gesandt:\n ] -/* OLD VALUE : [ -Please click on the link that it contains to activate your new account. -You must activate your account before you can log in.] */ -/* OLD VALUE : [ -Bitte klicke auf den in der E-Mail enthaltenen Link, um Deinen Account zu aktivieren. Bevor du Dich einloggen kannst, muss Dein Account aktiviert worden sein.] */ // HASH_VALUE 3B64D40332050146 // INDEX 5483 uiSubmitSucces2 [\n - Klicke unten auf VERBINDEN, um dich einzuloggen.] + Bitte klicke unten auf VERBINDEN, um dich einzuloggen.] // HASH_VALUE C36FA10451D20B71 // INDEX 5484 -uiCreateAccountWelcome [Willkommen,\n - bitte fülle folgende Felder aus, um Deinen Ryzom Account zu erstellen.\n +uiCreateAccountWelcome [Willkommen!\n + Bitte füll folgende Felder aus, um deinen Ryzom Account zu erstellen.\n ] // HASH_VALUE 93F7FF7D7010D8F7 @@ -23127,16 +23117,16 @@ uiCloseScanData [SCHLIEßEN] // HASH_VALUE C3480F9CE5F4FC70 // INDEX 5491 -uiCancelingScanData [Data-Scan wird gelöscht. Bitte warten...] +uiCancelingScanData [Daten-Scan wird gelöscht. Bitte warten...] // HASH_VALUE 661A66B087AD7306 // INDEX 5492 -uiScanDataSucess [Data-Scan hat keine fehlerhaften Dateien gefunden.\n - "Schließen" drücken.] +uiScanDataSucess [Daten-Scan hat keine fehlerhaften Dateien gefunden.\n + 'Schließen' drücken.] // HASH_VALUE 721E5E1A9456EFBF // INDEX 5493 -uiScanDataErrors [Data-Scan hat % fehlerhafte Dateien gefunden. Sie werden beim nächsten Patch völlig neu geladen. "Schließen" drücken.] +uiScanDataErrors [Daten-Scan hat % fehlerhafte Dateien gefunden. Diese werden beim nächsten Patch völlig neu geladen. Bitte 'Schließen' bestätigen.] // HASH_VALUE E75AB8609366163E // INDEX 5494 @@ -23148,7 +23138,7 @@ uiOnDataScanning [ALLE DATEIEN WERDEN ÜBERPRÜFT...] // HASH_VALUE D706BA911951BA99 // INDEX 5496 -uiOnDataScanningHelp [Dieser Prozess überprüft all deine Data Files (das dauert ein paar Minuten). Klicke "Abbrechen". ] +uiOnDataScanningHelp [Dieser Prozess überprüft all deine Data Files (das dauert ein paar Minuten). Klicke 'Abbrechen'.] // HASH_VALUE 18912791DA6A6861 // INDEX 5497 @@ -23244,7 +23234,7 @@ uiJenaYear [JJ] // HASH_VALUE 6B61A036022E46B3 // INDEX 5520 -uiRandomBadParameter [Die Zeichenreihefolge "%s" ist ungültig für den Random-Befehl.] +uiRandomBadParameter [Die Zeichenreihefolge '%s' ist ungültig für den Random-Befehl.] // HASH_VALUE 4FB51A0B1FF5D447 // INDEX 5521 @@ -23284,7 +23274,7 @@ uiLoadingString0 [Die Mektoubfutterrechnung der letzten 4 Wochen wird automatisc // HASH_VALUE E98900FFF775E4A4 // INDEX 5530 -uiLoadingString1 [Alle Mektoubs der Gilde werden gerade gefüttert, vielen Dank für Deine Spende.] +uiLoadingString1 [Alle Mektoubs der Gilde werden gerade gefüttert, vielen Dank für deine Spende.] // HASH_VALUE EC380C7826B0E2B8 // INDEX 5531 @@ -23296,11 +23286,11 @@ uiLoadingString3 [Hier könnte dein Handelsangebot stehen!] // HASH_VALUE A9A928B20D40C067 // INDEX 5533 -uiLoadingString4 [Bitte die Karavanwachen nicht mehr mit Dappern bewerfen, Rumstehen ist ihr Job!] +uiLoadingString4 [Bitte die Karavanwachen nicht mehr mit Dapper bewerfen, Rumstehen ist ihr Job!] // HASH_VALUE 57987089DF3E8526 // INDEX 5534 -uiLoadingString5 [Wettervorhersage in Pyr: staubig, windig, heiß... Wüste halt!] +uiLoadingString5 [Wettervorhersage in Pyr: 10:00 Uhr staubig, 16:00 Uhr heiß, 22:00 Uhr windig... Wüste halt!] // HASH_VALUE DDCF5B28C4882657 // INDEX 5535 @@ -23324,31 +23314,31 @@ uiLoadingString10 [Der Heiler: 1121341... verdammt!] // HASH_VALUE 7185186ACE241B26 // INDEX 5540 -uiLoadingString11 [Der Krieger: "Ha, elender Kitin! Nimm dies!" *pieks* ... "und lach nicht!!!"] +uiLoadingString11 [Der Krieger: 'Ha, elender Kitin! Nimm dies!' *pieks* ... 'und lach nicht!'] // HASH_VALUE D3A4AE55153998BE // INDEX 5541 -uiLoadingString12 [Der Magier: "3 Sprüche pro Mob, schaut her!" *brutzel* "Oh..." *Schluck* "Jetzt kommen 5..."] +uiLoadingString12 [Der Magier: '3 Sprüche pro Mob, schaut her!' *brutzel* 'Oh...' *Schluck* 'Jetzt kommen 5...'] // HASH_VALUE A235B485FD91F379 // INDEX 5542 -uiLoadingString13 [Der Beherrschungsmagier: "Wartet, ich schick den Boss kurz weg..." *widersteht* "Ups..."] +uiLoadingString13 [Der Beherrschungsmagier: 'Wartet, ich schick den Boss kurz weg...' *widersteht* 'Ups...'] // HASH_VALUE 2C7660055814BCAD // INDEX 5543 -uiLoadingString14 [Der Beherrschungsmagier: "Lass uns mal ganz in Ruhe drüber reden, Kirosta..." *stun*] +uiLoadingString14 [Der Beherrschungsmagier: 'Lass uns mal ganz in Ruhe drüber reden, Kirosta...' *stun*] // HASH_VALUE DA2580B0E74AB8DE // INDEX 5544 -uiLoadingString15 [Der Harvester: "Buddeln und Chatten? Kein Problem!" ... *bumm* "Argh..."] +uiLoadingString15 [Der Ernter: 'Buddeln und Chatten? Kein Problem!' ... *bumm* 'Argh...'] // HASH_VALUE 9F5A8863CDA463CB // INDEX 5545 -uiLoadingString16 [Der Crafter: "Wart, ich bau mir noch schnell ne Rüstung!" *degrade*...*degrade*...*seufz*...] +uiLoadingString16 [Der Handwerker: 'Wart, ich bau mir noch schnell eine Rüstung!' *degrade*...*degrade*...*seufz*...] // HASH_VALUE 4A93117E839C41A5 // INDEX 5546 -uiLoadingString17 [Marktwirtschaft: Kaufe 3 Tickets zum Freundschaftspreis von... 3 Tickets!] +uiLoadingString17 [Marktwirtschaft: Kaufe 3 Pakte zum Freundschaftspreis von... 3 Pakten!] // HASH_VALUE 0D16EA857967AA4C // INDEX 5547 @@ -23356,11 +23346,11 @@ uiLoadingString18 [Merke: 'Buddeln bis der Arzt kommt' kann man auf Atys durchau // HASH_VALUE C8D5F76A5807BF6E // INDEX 5548 -uiLoadingString19 [Vorsicht: Swingende, besoffene Yubos in Miniröcken gesichtet. Tryker dementieren Beteiligung!] +uiLoadingString19 [Vorsicht: swingende, besoffene Yubos in Miniröcken gesichtet. Tryker dementieren Beteiligung!] // HASH_VALUE 47BCE034A35B081F // INDEX 5549 -uiLoadingString20 [*gähn* "Guten Morgen, gut geschlafen?" *auf die Uhr schau* "Ähm... äh... Hallo alle!"] +uiLoadingString20 [*gähn* 'Guten Morgen, gut geschlafen?' *auf die Uhr schau* 'Ähm... äh... Hallo alle!'] // HASH_VALUE 86E4AC9E5A742C23 // INDEX 5550 @@ -23384,7 +23374,7 @@ uiLoadingString25 [Ladedauer verzögert sich, empfehle Powerleveln des RAMs zur // HASH_VALUE 4BB6F756D6E77479 // INDEX 5555 -uiLoadingString26 [Rechtschreibkontrolleur nimmt sich heute frei...] +uiLoadingString26 [Rechtschreibkorrektur nimmt sich heute frei...] // HASH_VALUE D955C83AACB50070 // INDEX 5556 @@ -23420,7 +23410,7 @@ uiLoadingString34 [Rohstoffquellen werden aufgefüllt... das ist mehr Arbeit, al // HASH_VALUE DBFAF08F5CC96722 // INDEX 5564 -uiLoadingString35 [Ich sehe dich User, aber nicht gut... putz mal den Monitor! ] +uiLoadingString35 [Ich sehe dich, User, aber nicht gut... putz mal den Monitor! ] // HASH_VALUE 23B5B3719B486459 // INDEX 5565 @@ -23456,7 +23446,7 @@ uiLoadingString43 [GMs werden versteckt...] // HASH_VALUE 76760A7A4CF0DACE // INDEX 5573 -uiLoadingString44 [Magie wird in Atys hineingepumpt... ] +uiLoadingString44 [Magie wird in Atys hineingepumpt...] // HASH_VALUE 0D04174F9C980447 // INDEX 5574 @@ -23488,7 +23478,7 @@ uiLoadingString51 [Geheimes Zeug wird im Boden versteckt...] // HASH_VALUE 6F798442B63488B7 // INDEX 5581 -uiLoadingString52 [Gingos werden geärgert, um die Aggressivität zu erhöhen... ] +uiLoadingString52 [Gingos werden geärgert, um die Aggressivität zu erhöhen...] // HASH_VALUE E0617F4556CA98A4 // INDEX 5582 @@ -23517,7 +23507,7 @@ uimItemTextDisplay [Lesen] // HASH_VALUE DBC89089E5521B69 // INDEX 5588 -uiTabInfo [Rechtsklick, um das Tab in einem eigenen Fenster anzuzeigen.] +uiTabInfo [Rechtsklick, um den Tab in einem eigenen Fenster anzuzeigen.] // HASH_VALUE 0000000000000000 // INDEX 5589 @@ -23557,7 +23547,7 @@ uiItemSpecialEffectFlyingTextISE_FORAGE_NO_RISK [risikofreie Quelle] // HASH_VALUE ADCF037D8B34A964 // INDEX 5597 uihelpItemConsumableFormat [@{FFF9}Verbrauchszeit :@{T21}@{FFFF}%consumption_time sec.\n - @{FFF9}Wiederverwendbar :@{T21}@{FFFF}%overdose_timer_min Minuten %overdose_timer_sec. \n + @{FFF9}Wiederverwendbar :@{T21}@{FFFF}%overdose_timer_min Minuten %overdose_timer_sec.\n \n \n @{FFFF}%consumable_effects%custom_text] @@ -23574,55 +23564,55 @@ uiItemConsumableEffectUpCharac [Gibt einen Bonus von @{2F2F}%charac@{FFFF} Punkt // HASH_VALUE DF3EF99A20B4695F // INDEX 5600 -uiItemConsumableEffectModDefenseSuccess [Erhöht Deine Verteidigungsfähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModDefenseSuccess [Erhöht deine Verteidigungsfähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 3506E5DDEF147CED // INDEX 5601 -uiItemConsumableEffectModDodgeSuccess [Erhöht Deine Ausweichfähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModDodgeSuccess [Erhöht deine Ausweichfähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE ECEAE5CBEDE43CCA // INDEX 5602 -uiItemConsumableEffectModParrySuccess [Erhöht Deine Abwehrfähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModParrySuccess [Erhöht deine Abwehrfähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 2A117FFC8275CB18 // INDEX 5603 -uiItemConsumableEffectModMeleeSuccess [Erhöht Deine Nahkampffähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModMeleeSuccess [Erhöht deine Nahkampfähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 6FFDDC9A005FC218 // INDEX 5604 -uiItemConsumableEffectModRangeSuccess [Erhöht Deine Fernkampffähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModRangeSuccess [Erhöht deine Fernkampffähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 6BB2E2D5DACC1DF2 // INDEX 5605 -uiItemConsumableEffectModMagicSuccess [Erhöht Deine Magiefähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModMagicSuccess [Erhöht deine Magiefähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 0643269EF329F766 // INDEX 5606 -uiItemConsumableEffectModCraftSuccess [Erhöht Deine Handwerksfähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModCraftSuccess [Erhöht deine Handwerksfähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 623EF99BA0545D5F // INDEX 5607 -uiItemConsumableEffectModForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE FC96A365A5108A74 // INDEX 5608 -uiItemConsumableEffectModDesertForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit in der Wüste um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModDesertForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten in der Wüste um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE C615071883CB86AB // INDEX 5609 -uiItemConsumableEffectModForestForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit im Wald um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModForestForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten im Waldland um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE F29FFCD29327D7E5 // INDEX 5610 -uiItemConsumableEffectModLacustreForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit im Seenland um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModLacustreForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten im Seenland um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE FC56675F25BFB89A // INDEX 5611 -uiItemConsumableEffectModJungleForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit im Dschungel um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModJungleForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten im Dschungel um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 646834C54196B1B1 // INDEX 5612 -uiItemConsumableEffectModPrimaryRootForageSuccess [Erhöht Deine Rohstoffabbaufähigkeit in den Urwurzeln um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] +uiItemConsumableEffectModPrimaryRootForageSuccess [Erhöht deine Rohstoffabbaufähigkeiten in den Urwurzeln um %modifier Punkt(e) für %minutes Min. und %secondes Sek.] // HASH_VALUE 789B903E4FE50883 // INDEX 5613 @@ -23631,7 +23621,7 @@ uiItemConsumableEffectStaminaAura [Aktiviert eine @{2F2F}Aura der Ausdauer@{FFFF // HASH_VALUE 659C9459CECD5FFB // INDEX 5614 -uiItemConsumableEffectSapAura [Aktiviert eine @{2F2F}Aura des Saps@{FFFF} mit einem Bonus von @{2F2F}%modifier@{FFFF} über %minutes Minuten und %secondes Sekunden mit einem Radius von %radius.\n +uiItemConsumableEffectSapAura [Aktiviert eine @{2F2F}Aura des Sap@{FFFF} mit einem Bonus von @{2F2F}%modifier@{FFFF} über %minutes Minuten und %secondes Sekunden mit einem Radius von %radius.\n Deaktivierung: Ziel = %targetDisableTime sek, Benutzer = %userDisableTime sek.] // HASH_VALUE 1B38899A63140B67 @@ -23673,7 +23663,7 @@ uittModDesertForageSuccess [Deine Abbaufähigkeit in der Wüste wird um %modifie // HASH_VALUE B4136B89CDB38542 // INDEX 5624 -uittModForestForageSuccess [Deine Abbaufähigkeit im Wald wird um %modifier Punkt(e) erhöht.] +uittModForestForageSuccess [Deine Abbaufähigkeit im Waldland wird um %modifier Punkt(e) erhöht.] // HASH_VALUE 56F25CAD75DC4A2F // INDEX 5625 @@ -23685,11 +23675,11 @@ uittModJungleForageSuccess [Deine Abbaufähigkeit im Dschungel wird um %modifier // HASH_VALUE 7ACE5BA9F4C7F607 // INDEX 5627 -uittModPrimaryRootForageSuccess [Deine Abbaufähigkeit in den Urwurzeln wird um %modifier Punkt(e) erhöht.] +uittModPrimaryRootForageSuccess [Deine Abbaufähtigkeit in den Urwurzeln wird um %modifier Punkt(e) erhöht.] // HASH_VALUE 68D0B43C68D0B43C // INDEX 5628 -uiOnMainlandValidation [Ok] +uiOnMainlandValidation [OK] // HASH_VALUE 4FB1FC250E00142E // INDEX 5629 @@ -23721,11 +23711,11 @@ uiSessionVanishedFarTP [Die Ring-Session, in der du warst, ist jetzt geschlossen // HASH_VALUE 6FAA845613A17B3F // INDEX 5636 -uiSessionUnreachable [Das mit diesem Charakter assoziierte Szenario ist geschlossen, bitte versuche es später noch einmal.] +uiSessionUnreachable [Das mit diesem Charakter assoziierte Szenario ist geschlossen, bitte versuch es später noch einmal.] // HASH_VALUE CA70DC0EC8219E3C // INDEX 5637 -uiR2EDActionCategory [RYZOM RING BEFEHLE] +uiR2EDActionCategory [RYZOM RING-BEFEHLE] // HASH_VALUE E4367B87E784EC6C // INDEX 5638 @@ -23753,7 +23743,7 @@ uiScenarioOrient_StoryTelling [Geschichten erzählen] // HASH_VALUE 70FB18ADAA39C89D // INDEX 5644 -uiScenarioOrient_Mistery [Mistery] +uiScenarioOrient_Mistery [Mystery] // HASH_VALUE A21548239C517C02 // INDEX 5645 @@ -23841,7 +23831,7 @@ uiMk_action1_1 [Stopp] // HASH_VALUE 8DECD25E643E5382 // INDEX 5666 -uiMk_action1_1_tt [Klicken, um @{6F6F}stehen zu bleiben@{FFFF}.\n +uiMk_action1_1_tt [Klicken, um @{6F6F}stehenzubleiben@{FFFF}.\n Du kannst auch klicken und beide Maustasten loslassen.] // HASH_VALUE EE186C9062B94490 @@ -23851,7 +23841,7 @@ uiMk_action2_0 [Sitzen] // HASH_VALUE 4A87BCEC6F2D6E60 // INDEX 5668 uiMk_action2_0_tt [Du @{6F6F}sitzt@{FFFF}.\n - Wenn du sitzt, erholt sich dein Leben (HP), deine Ausdauer, dein Sap und deine Konzentration (Fokus) doppelt so schnell.\n + Wenn du sitzt, erholen sich deine Lebenskraft (HP), deine Ausdauer, dein Sap und deine Konzentration (Fokus) doppelt so schnell.\n Klicken, um aufzustehen] // HASH_VALUE 2CE7B85FAA05F490 @@ -23861,7 +23851,7 @@ uiMk_action2_1 [Stehen] // HASH_VALUE C3B320EC18D4D541 // INDEX 5670 uiMk_action2_1_tt [Du @{6F6F}stehst@{FFFF}.\n - Klicken, um sich zu setzen und doppelt so schnell Leben, Stamina, Sap und Fokus wiederzuerlangen] + Klicken, um sich zu setzen und doppelt so schnell Lebenskraft, Stamina, Sap und Fokus wiederzuerlangen] // HASH_VALUE 61A82C74E1553C8F // INDEX 5671 @@ -23869,7 +23859,7 @@ uiMk_action3_0 [Gehen] // HASH_VALUE 7A3F1E4BFA7531B4 // INDEX 5672 -uiMk_action3_0_tt [Du befindest dich im @{6F6F}Gehenmodus@{FFFF}.\n +uiMk_action3_0_tt [Du befindest dich im @{6F6F}Gehen-Modus@{FFFF}.\n Klicken, um zu rennen] // HASH_VALUE 6C19D86EABF6B09E @@ -23878,7 +23868,7 @@ uiMk_action3_1 [Rennen] // HASH_VALUE D74EF23C399585C3 // INDEX 5674 -uiMk_action3_1_tt [Du befindest dich im @{6F6F}Rennmodus@{FFFF}.\n +uiMk_action3_1_tt [Du befindest dich im @{6F6F}Laufmodus@{FFFF}.\n Klicke, um zu gehen] // HASH_VALUE AD6B0C9EE6F85089 @@ -23908,7 +23898,7 @@ uiMk_action5_0 [Angreifen] // HASH_VALUE 54FC5F595D478E32 // INDEX 5680 uiMk_action5_0_tt [Klicke, um das ausgewählte Ziel @{6F6F}anzugreifen@{FFFF}.\n - Du kannst auch eine Kampfaktion in der Aktionsleiste oben auf dem Bildschirm auswählen (Standard-Einstellung).] + Du kannst auch eine Kampfaktion in der Aktionsleiste oben auf dem Bildschirm auswählen.] // HASH_VALUE 48E7AA788577A28A // INDEX 5681 @@ -23925,7 +23915,7 @@ uiMk_action6 [Abbauen] // HASH_VALUE 4194992211935C5F // INDEX 5684 uiMk_action6_tt [Klicke, um die ausgewählte Quelle @{6F6F}abzubauen@{FFFF}.\n - Du kannst auch eine Abbauaktion der Aktionsleiste oben auf dem Bildschirm wählen (Standard-Einstellung).] + Du kannst auch eine Rohstoff-Ernteaktion der Aktionsleiste oben auf dem Bildschirm wählen.] // HASH_VALUE 6C9A0896E4083C94 // INDEX 5685 @@ -23933,7 +23923,7 @@ uiMk_action7 [Einladen] // HASH_VALUE 6F417F62E8F510BE // INDEX 5686 -uiMk_action7_tt [Klicken, um den ausgewählten Spieler @{6F6F}einzuladen@{FFFF}.\n +uiMk_action7_tt [Klicken, um den ausgewählten Spieler zum Formen eines Teams @{6F6F}einzuladen@{FFFF}.\n Du kannst ihn auch über das Kontextmenü einladen (Rechtsklick auf den Spieler).] // HASH_VALUE 6DA3E802EDEBECC1 @@ -23947,12 +23937,12 @@ uiMk_action8_tt [Klicke, um dein Team @{6F6F}zu verlassen@{FFFF}.\n // HASH_VALUE 6C9C1440E0082494 // INDEX 5689 -uiMk_action9 [Sprechen mit] +uiMk_action9 [Sprich mit] // HASH_VALUE 46BCF3453997A04A // INDEX 5690 -uiMk_action9_tt [Klicke, um mit dem ausgewählten Spieler zu @{6F6F}sprechen@{FFFF}.\n - Du kannst auch über das Kontextmenü mit ihm sprechen (Rechtsklick auf dem Bildschirm).] +uiMk_action9_tt [Klicke, um mit dem ausgewählten Spieler in einem privaten 'Tellfenster' zu @{6F6F}flüstern@{FFFF}.\n + Du kannst auch über das Kontextmenü mit ihm flüstern (Rechtsklick auf dem Bildschirm).] // HASH_VALUE 7498F40C701C3484 // INDEX 5691 @@ -24052,7 +24042,7 @@ uiWelcomeCSTitle [Kundendienst kontaktieren] // HASH_VALUE E909ADF967AF3768 // INDEX 5715 -uiWelcomeCS [Der Kundendienst kümmert sich Tag und Nacht um Atys. Er ist über den Hilfe-Button des Menüs unten rechts auf dem Bildschirm zu erreichen. ] +uiWelcomeCS [Der Kundendienst kümmert sich Tag und Nacht um Atys. Er ist über den Hilfe-Button des Menüs unten rechts auf dem Bildschirm zu erreichen.] // HASH_VALUE C39F0F4139781ED3 // INDEX 5716 @@ -24071,17 +24061,17 @@ uittIdentityHP [@{6F6F}Lebenspunkte@{FFFF}: %n\n // HASH_VALUE E62E03C44CC6CCDF // INDEX 5719 uittIdentitySap [@{6F6F}Sappunkte@{FFFF}: %n\n - Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] + Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten geheilt werden.] // HASH_VALUE 96475BB346DF4BF2 // INDEX 5720 uittIdentitySta [@{6F6F}Ausdauerpunkte@{FFFF}: %n\n - Wenn du zu wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), durch andere Spieler, Verbrauchsgüter oder Fertigkeiten (teils) geheilt wurde, kannst du nur den Standardangriff durchführen. ] + Wenn du zu wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), oder durch andere Spieler, Verbrauchsgüter oder Fertigkeiten geheilt wurde, kannst du nur den Standardangriff verwenden (Doppelklick).] // HASH_VALUE 5429E1693D81762D // INDEX 5721 uittIdentityFoc [@{6F6F}Fokuspunkte@{FFFF}: %n\n - Wenn du zu wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben und Handwerkserzeugnissen keine Boni geben. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] + Wenn du zu wenig Fokus hast, kannst du keine Rohstoffernte betreiben und keine Handwerkserzeugnissen mit Boni herstellen. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten geheilt werden.] // HASH_VALUE 98A8D5EC1A1065BF // INDEX 5722 @@ -24117,7 +24107,7 @@ uittIdentityStr [Bestimmt den Maximalwert deiner @{6F6F}Ausdauer@{FFFF}.] // HASH_VALUE A69334314CCC506D // INDEX 5729 -uittIdentityDex [Bestimmt den Maximalwert deines @{6F6F}Fokus@{FFFF}.] +uittIdentityDex [Bestimmt den Maximalwert deines @{6F6F}Fokus'@{FFFF}.] // HASH_VALUE 697AE7D97DF4582E // INDEX 5730 @@ -24133,79 +24123,79 @@ uittIdentityWB [Bestimmt die @{6F6F}Regenerationsrate @{FFFF}deiner @{6F6F}Ausda // HASH_VALUE 8F2E6463DEBC4F94 // INDEX 5733 -uittIdentityWill [Bestimmt die @{6F6F}Regenerationsrate @{FFFF}deines @{6F6F}Fokus@{FFFF}.] +uittIdentityWill [Bestimmt die @{6F6F}Regenerationsrate @{FFFF}deines @{6F6F}Fokus'@{FFFF}.] // HASH_VALUE 42260C22B0E4EADA // INDEX 5734 -uittIdentitySkillFight [Punkte, für die Du bei einem @{6F6F}Kampflehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Levelanstieg in den @{6F6F}Kampffertigkeiten@{FFFF} erhältst Du Punkte dazu.] +uittIdentitySkillFight [Punkte, für die du bei einem @{6F6F}Kampflehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Stufenaufstieg in @{6F6F}Kampffertigkeiten@{FFFF} erhältst du 10 Punkte dazu.] // HASH_VALUE E50736A49821FBE0 // INDEX 5735 -uittIdentitySkillMagic [Punkte, für die Du bei einem @{6F6F}Magielehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Levelanstieg in den @{6F6F}Magiefertigkeiten@{FFFF} erhältst Du Punkte dazu.] +uittIdentitySkillMagic [Punkte, für die du bei einem @{6F6F}Magielehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Stufenaufstieg in @{6F6F}Magiefertigkeiten@{FFFF} erhältst du 10 Punkte dazu.] // HASH_VALUE 2DDB84478A798721 // INDEX 5736 -uittIdentitySkillCraft [Punkte, für die Du bei einem @{6F6F}Handwerkslehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Levelanstieg in den @{6F6F}Handwerksfertigkeiten@{FFFF} erhältst Du Punkte dazu.] +uittIdentitySkillCraft [Punkte, für die du bei einem @{6F6F}Handwerkslehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Stufenaufstieg in @{6F6F}Handwerksfertigkeiten@{FFFF} erhältst du 10 Punkte dazu.] // HASH_VALUE FB2D95494A554AA9 // INDEX 5737 -uittIdentitySkillHarvest [Punkte, für die Du bei einem @{6F6F}Rohstoffabbaulehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Levelanstieg in den @{6F6F}Rohstoffabbaufertigkeiten@{FFFF} erhältst Du Punkte dazu.] +uittIdentitySkillHarvest [Punkte, für die du bei einem @{6F6F}Rohstofferntelehrer @{FFFF} neue Aktionen und Stanzas lernen kannst. Bei jedem Stufenaufstieg in @{6F6F}Rohstofferntefertigkeiten@{FFFF} erhältst du 10 Punkte dazu.] // HASH_VALUE 28E872070328510A // INDEX 5738 -uittIdentityTotalMalus [Spiegelt die Gesamtstrafe für Aktionen wieder, die von Dir gesprochene Zaubersprüche, Deinen Rohstoffabbau und Dein Handwerk beeinflusst.\n - Eine @{6F6F}hohe Gesamtstrafe @{FFFF}bringt erhöhte Energiekosten, eine verzögerte Zeit beim Ausführen von Aktionen und eine verminderte Reichweite mit sich.\n - Die Gesamtstrafe entspricht der @{6F6F}Summe der Aktionsstrafen@{FFFF}, die durch deine Kleidung, Rüstung oder in der Hand gehaltene Gegenstände verursacht wird.] +uittIdentityTotalMalus [Das ist der Gesamtmalus durch behindernde Ausrüstung, die Aktionen wie von dir gesprochene Zaubersprüche, deinen Rohstoffabbau und dein Handwerk negativ beeinflusst.\n + Ein @{6F6F}hoher Gesamtmalus @{FFFF}erhöht die Sapkosten, verlängert die Vorbereitungszeit beim Ausführen von Aktionen und vermindert die Reichweite von Magie.\n + Der Gesamtmalus entspricht der @{6F6F}Summe der Aktionsmalusse@{FFFF}, die durch klobige Rüstung oder verschiedene in der Hand gehaltene Gegenstände verursacht werden.] // HASH_VALUE A95088E49CCB1C0F // INDEX 5739 -uittIdentitBagBulk [Ein Maß für @{6F6F}den Platz @{FFFF}(auch 'Bulk' genannt), den die Gegenstände (siehe dort die Angabe 'Größe') deines Inventars einnehmen. Wenn er voll ist, kannst du keine Gegenstände mehr in dein Inventar aufnehmen.] +uittIdentitBagBulk [Der Begriff Volumen beschreibt @{6F6F}den Platz @{FFFF}, den deine Tasche bietet (auch 'Bulk' genannt). Alle Gegenstände deines Inventars haben Volumen-Werte, die anzeigen, wie viel Platz sie jeweils einnehmen. Wenn das Volumen deiner Tasche ganz ausgefüllt ist, kannst du keine weiteren Gegenstände mehr in dein Inventar nehmen.] // HASH_VALUE 23F7EA654AA1CB4D // INDEX 5740 -uittIdentitySpeedFactor [Ein Maß für die Belastung durch die Gegenstände (siehe dort die Angabe 'Gewicht'), die du trägst oder in deinem Inventar transportierst. Bist zu sehr beladen, sinkt deine @{6F6F}Fortbewegungsgeschwindigkeit@{FFFF}. Er kann sowohl positiv als auch negativ von Zaubersprüchen beeinflusst werden.] +uittIdentitySpeedFactor [Wenn die Laufgeschwindigkeit auf 0 fällt, trägt deine Spielfigur zu schwer (meist Munition oder schwere Pakete im Inventar). Jeder Gegenstand hat einen Gewichts-Wert. Die @{6F6F}Laufgeschwindigkeit@{FFFF} kann mit Magie positiv (Sprint) oder negativ beeinflusst werden.] // HASH_VALUE 8272D64679BD9704 // INDEX 5741 uittIdentityDodge [@{6F6F}Ausweichen@{FFFF}: %n\n - Chancen, dem Angriff eines Gegners der Stufe @{6F6F}%l @{FFFF}auszuweichen: @{6F6F}%p@{FFFF}%.] + Chance, dem Angriff eines Gegners der Stufe @{6F6F}%l @{FFFF}auszuweichen: @{6F6F}%p@{FFFF}%.] // HASH_VALUE 7E36CADC9DBA9B29 // INDEX 5742 uittIdentityParry [@{6F6F}Abwehren@{FFFF}: %n\n - Chancen, dem Schlag eines Gegners der Stufe @{6F6F}%l @{FFFF}auszuweichen: @{6F6F}%p@{FFFF}%.] + Chance, dem Schlag eines Gegners der Stufe @{6F6F}%l @{FFFF}auszuweichen: @{6F6F}%p@{FFFF}%.] // HASH_VALUE 6B1A85A1D4FFAC37 // INDEX 5743 -uittIdentityFaction [Fraktionspunkte gewinnt man durch die Teilnahme am @{6F6F}Fraktions-PVP @{FFFF}oder an @{6F6F}besonderen Events @{FFFF}wie dem Bau der Kami- oder Karavan-Tempel.] +uittIdentityFaction [Fraktionspunkte gewinnt man durch die Teilnahme am @{6F6F}Fraktions-PvP @{FFFF}oder an @{6F6F}besonderen Events und Missionen @{FFFF}wie der Versorgung von Kitin-Beobachtungslagern. Nationspunkte können bei Nationshändlern in den Hauptstädten für nützliche Dinge eingetauscht werden.] // HASH_VALUE 4F8AFC0E01053CF0 // INDEX 5744 -uittGaugesNameTitle [Dein @{6F6F}Name @{FFFF}gefolgt vom @{6F6F}Titel @{FFFF}, den du für andere sichtbar machst.] +uittGaugesNameTitle [Der@{6F6F}Name @{FFFF}deines Charakters, gefolgt vom @{6F6F}Titel @{FFFF}, den du für deinen Charakter gerade ausgewählt hast.] // HASH_VALUE 7BE20A882E207871 // INDEX 5745 -uittGaugesActionBar [Zeigt den Fortschritt der @{6F6F}Aktion @{FFFF}an, die gerade durchgeführt wird.] +uittGaugesActionBar [Zeigt den Verlauf der @{6F6F}Aktion @{FFFF}an, die gerade ausgeführt wird.] // HASH_VALUE 4D1DFC058F6A8F05 // INDEX 5746 uittGaugesHP [@{6F6F}Lebenspunkte@{FFFF}:\n - Wenn die Lebenspunkte auf 0 sind, fällt deine Spielfigur ins Koma. Wenn deine Spielfigur in der Koma-Phase nicht von anderen Spielern geheilt wird, wird sie von den Mächten von Atys wiederbelebt und gewinnt danach eine Zeitlang keine Erfahrung.] + Wenn die Lebenspunkte auf 0 sind, fällt dein Charakter ins Koma. Wenn dein Charakter in der Koma-Phase nicht von anderen Spielern geheilt wird, wird er von den Mächten von Atys wiederbelebt und gewinnt danach eine Zeitlang keine Erfahrung.] // HASH_VALUE 3218DC16D5185B23 // INDEX 5747 uittGaugesSap [@{6F6F}Sappunkte@{FFFF}:\n - Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] + Wenn du zu wenig Sap hast, kannst du keine Zaubersprüche mehr sprechen. Sap erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten geheilt werden.] // HASH_VALUE BCFAB72720F87E38 // INDEX 5748 uittGaugesSta [@{6F6F}Ausdauerpunkte@{FFFF}:\n - Wenn du zu wenig Ausdauer hast, kannst du keine Spezialschläge mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), durch andere Spieler, Verbrauchsgüter oder Fertigkeiten (teils) geheilt wurde, kannst du nur den Standardangriff durchführen. ] + Wenn du zu wenig Ausdauer hast, kannst du keine Spezialattacken mehr durchführen. Bis deine Ausdauer sich erholt hat (schneller im Sitzen), durch andere Spieler, Verbrauchsgüter oder Fertigkeiten geheilt wurde, kannst du nur den Standardangriff durchführen.] // HASH_VALUE 21A49D1370B3A93A // INDEX 5749 uittGaugesFoc [@{6F6F}Fokuspunkte@{FFFF}:\n - Wenn du zu wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben und Handwerkserzeugnissen keine Boni geben. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten (teils) geheilt werden.] + Wenn du zu wenig Fokus hast, kannst du keinen Rohstoffabbau mehr betreiben und keine Handwerkserzeugnisse mit Boni herstellen. Fokus erholt sich langsam von selbst (schneller im Sitzen), kann aber auch durch andere Spieler, Verbrauchsgüter und Fertigkeiten geheilt werden.] // HASH_VALUE 1AC7CE1C76B16FB8 // INDEX 5750 @@ -24219,36 +24209,36 @@ uittHandL [@{6F6F}Linke Hand\n // HASH_VALUE D0DC28E41A1C9C9D // INDEX 5752 -uittHandSet [Aktionsleiste wechseln.] +uittHandSet [Aktionsleiste wechseln] // HASH_VALUE BE3F0692797C90AA // INDEX 5753 -uittAnimalBar [@{E42F}Leben @{FFFF}- Sättigung - @{EB2F}Platz] +uittAnimalBar [@{E42F}Leben @{FFFF}- Sättigung - @{EB2F}Inventarplatz] // HASH_VALUE 5767725E0D249E29 // INDEX 5754 -uittAnimalWeight [@{6F6F}Gesamtgewicht, @{FFFF}das dein Tier transportiert.] +uittAnimalWeight [@{6F6F}Gesamtgewicht, @{FFFF}das dein Tier transportiert. Tiere können sehr viel schwerere Gewichte tragen als Homin-Charaktere.] // HASH_VALUE D92907CA57A0A70A // INDEX 5755 -uittAnimalInv [Das @{6F6F}Inventar @{FFFF}bietet Zugang zu den Gegenständen, die dieses Tier transportiert.] +uittAnimalInv [Das @{6F6F}Inventar @{FFFF}bietet Zugang zu den Gegenständen, die dieses Tier transportiert, solange das Tier nahe genug ist. Steht das Tier in einem Stall, genügt es, nahe beim Stall zu sein, um Zugriff auf das Tier-Inventar zu haben.] // HASH_VALUE EC6515C0797E672F // INDEX 5756 uittChatAround [@{6F6F}UMGEBUNG\n @{FFFF}Zeigt allen Spielern in Reichweite von 25 Metern die von dir geschriebenen Nachrichten an.\n - Rechtsklick um zu trennen.] + Rechtsklick, um zu trennen.] // HASH_VALUE 71DAEEB31452DCEA // INDEX 5757 uittChatRegion [@{6F6F}REGION\n - @{FFFF}Zeigt allen Spielern in deiner Region (Kontinent) die von dir geschriebenen Nachrichten an.\n + @{FFFF}Zeigt allen Spielern in deiner Region die von dir geschriebenen Nachrichten an.\n Rechtsklick um zu trennen.] // HASH_VALUE 899B178F5AD9368A // INDEX 5758 uittChatUniverse [@{6F6F}Universum\n - @{FFFF}Zeigt allen Spielern im Spiel die hier geschriebenen Nachrichten (Neulingsfragen sollten bevorzugt werden).\n + @{FFFF}Zeigt allen Spielern im Spiel die hier geschriebenen Nachrichten an (Neulingsfragen sollten bevorzugt werden).\n Rechtsklick um zu trennen.] // HASH_VALUE 165BD172D9A11956 @@ -24274,18 +24264,18 @@ uittChatYubo [@{6F6F}YUBO CHAT\n // HASH_VALUE 3E6C1A6BDD69D5F5 // INDEX 5763 uittChatSysInfo [@{6F6F}SYS. INFO\n - @{FFFF}Zeigt Kampfnachrichten und Systeminformationen an.\n - Rechtsklick, um das Tab als eigenes Fenster abzukoppeln.] + @{FFFF}Zeigt Kampfnachrichten und alle Arten von Systeminformationen an.\n + Rechtsklick, um den Tab als eigenes Fenster abzukoppeln.] // HASH_VALUE C5D74B8FF574901A // INDEX 5764 uittCompassRange [@{6F6F}Kompassreichweite\n - @{FFFF}Radius der auf dem Radar sichtbaren Zone.\n - Scrolle mit der Maus im Fenster @{6F6F}Kompass @{FFFF}oder rechtsklicke und wähle @{6F6F}Reinzoomen @{FFFF}oder @{6F6F}Rauszoomen @{FFFF}um die @{6F6F}Reichweite@{FFFF} zu ändern.] + @{FFFF}Radius der auf dem Radar georteten Umgebung in Metern.\n + Um die @{6F6F}Reichweite@{FFFF} des Radars zu ändern, scrolle mit der Maus im @{6F6F}Kompass-Fenster @{FFFF}oder rechtsklicke und wähle @{6F6F}Hineinzoomen @{FFFF}bzw. @{6F6F}Herauszoomen @{FFFF}.] // HASH_VALUE 70874AF6596CE72C // INDEX 5765 -uittCompassDistance [@{6F6F}Entfernung @{FFFF}zu dem auf dem Kompass ausgewählten Objekt.] +uittCompassDistance [@{6F6F}Entfernung @{FFFF}deines Charakters zu dem auf dem Kompass ausgewählten Objekt oder Markierungsfähnchen in Metern.] // HASH_VALUE E78C50DD64F5F5B7 // INDEX 5766 @@ -24293,18 +24283,18 @@ uittPhraseActions [@{6F6F}Aktionen@{FFFF}, die du auch per Drag & Drop in deine // HASH_VALUE 5236A0B56A20D732 // INDEX 5767 -uittPhraseUpgrades [@{6F6F}Verbesserungen @{FFFF}von Aktionen oder Eigenschaften, die du als alleinstehende Aktions-Teile nicht direkt von der Aktionsleiste nutzen kannst.] +uittPhraseUpgrades [@{6F6F}Verbesserungen @{FFFF}von Aktionen oder Eigenschaften, die du als alleinstehende Aktions-Teile nicht über die Aktions-Leiste nutzen kannst.] // HASH_VALUE 33E06D99C6DEE206 // INDEX 5768 uittPhraseXPMalus [@{6F6F}Sterbe-Erfahrungsstrafe.\n @{FFFF}Wenn dein Charakter von den Mächten wiederbelebt werden muss, wird diese Strafe erhöht.\n Die darauf folgenden Erfahrungs-Gewinne begleichen die Strafe, bis sie abgetragen ist.\n - Bis die Strafe auf 0 gesunken ist, bringen Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] + Bis die Strafe auf 0 gesunken ist, bringen ausgeführte Aktionen keine Fertigkeitserhöhungen. Es verbleiben @{6F6F}%dp@{FFFF}% der Strafe.] // HASH_VALUE 29532B61D5EBA4EA // INDEX 5769 -uittInventoryWeight [@{6F6F}Gesamtgewicht @{FFFF}dieses Inventars] +uittInventoryWeight [@{6F6F}Gesamtgewicht @{FFFF}dieses Inventars (beeinflusst die Laufgeschwindigkeit bis zum Stillstand bei Überladung).] // HASH_VALUE 9BC3D805B99BB138 // INDEX 5770 @@ -24345,146 +24335,146 @@ uittTargetLevel [Stufe des Ziels:@{6F6F} %min @{FFFF}bis @{6F6F}%max] // HASH_VALUE 9E39F76DBB00ECE7 // INDEX 5779 -uittTargetBoss [Boss mit Stufe: @{6F6F}%n] +uittTargetBoss [sehr starke 'Boss'-Kreatur der Stufe: @{6F6F}%n] // HASH_VALUE 23163435076A9E73 // INDEX 5780 -uittTargetGuardBoss [Wächter oder Boss mit Stufe: @{6F6F}%n] +uittTargetGuardBoss [starke 'Boss-Wächter'-Kreatur der Stufe: @{6F6F}%n] // HASH_VALUE 2C802BB94A366E80 // INDEX 5781 -uittTargetNamed [Named mit Stufe: @{6F6F}%n] +uittTargetNamed [starke 'Named'-Kreatur der Stufe: @{6F6F}%n] // HASH_VALUE 7F814BE1CB74F37A // INDEX 5782 uittInfoBulk [@{6F6F}Volumen @{FFFF}:\n - Platz, den der Gegenstand in deinem Inventar einnimmt. Jedes Inventar hat nur begrenzten Platz, deshalb kann man nicht viele große Gegenstände miteinander transportieren.] + Platz, den der Gegenstand im Inventar (deiner Tasche oder der Satteltasche von Tieren) einnimmt. Jedes Inventar hat nur begrenzten Platz, deshalb kann man nicht zu viele große Gegenstände gemeinsam transportieren.] // HASH_VALUE 8268E616D14643F5 // INDEX 5783 uittInfoHP [@{6F6F}Haltbarkeit @{FFFF}:\n - Dieser Wert verschlechtert sich mit dem Gebrauch dieses Gegenstands. Bei 0 ist der Gegenstand zerstört.] + Dieser Wert verschlechtert sich mit jedem Gebrauch dieses Gegenstands. Bei 0 ist der Gegenstand unbrauchbar.] // HASH_VALUE 2ABB2BD8C07878B9 // INDEX 5784 uittInfoWeight [@{6F6F}Gewicht @{FFFF}:\n - Wenn das Gesamt-Tragegewicht zu hoch wird, kann deine Fortbewegungsgeschwindigkeit abnehmen.] + Wenn das Gesamt-Tragegewicht die Trage-Kapazität übersteigt, nimmt die Laufgeschwindigkeit ab. Bei zu hohem Tragegewicht kann sich dein Charakter gar nicht mehr fortbewegen.] // HASH_VALUE 6819F591D97250CB // INDEX 5785 uittInfoMalus [@{6F6F}Malus auf den Aktionen @{FFFF}:\n - Durch diesen Gegenstand hinzugefügte Strafe zum @{6F6F}Gesamtmalus @{FFFF}(siehe Identitätsfenster).] + Durch diese Ausrüstung (auch Waffe) verursachte Behinderung, die zum gesamten @{6F6F}Aktions-Malus @{FFFF} für Zauber, Handwerk und Ernte beiträgt (siehe Identitätsfenster).] // HASH_VALUE 9C3F914AF05FB96E // INDEX 5786 uittInfoDodgeMod [@{6F6F}Ausweichmodifikator @{FFFF}:\n - Bonus oder Malus auf deinen @{6F6F}Ausweich-Wert@{FFFF}, wenn du diesen Gegenstand benutzt.] + Dein @{6F6F}Ausweich-Wert@{FFFF} wird sich entweder verbessern oder verringern (bei Minus-Wert), wenn du diesen Gegenstand benutzt.] // HASH_VALUE 8E26E14159EBEFDD // INDEX 5787 uittInfoParryMod [@{6F6F}Abwehrmodifikator @{FFFF}:\n - Bonus oder Malus auf deinen @{6F6F}Abwehr-Wert@{FFFF}, wenn du diesen Gegenstand benutzt.] + Wenn du diesen Gegenstand benutzt, erfährt dein @{6F6F}Abwehr-Wert@{FFFF} entweder eine Verbesserung oder Verringerung (bei Minus-Wert).] // HASH_VALUE 9C4DB1F11B930922 // INDEX 5788 uittInfoProt [@{6F6F}Schutz @{FFFF}:\n - Absorptionsbonus der erlittenen magischen Schäden.] + Resistenzbonus gegen erlittene magische Schäden. Viele Kreaturen und auch Pflanzen auf Atys können magischen Schaden verursachen.] // HASH_VALUE 08D3DEF917117F15 // INDEX 5789 uittInfoResist [@{6F6F}Widerstand @{FFFF}:\n - Widerstandsbonus gegen Magie.] + Widerstandsbonus gegen Magie. Viele Kreaturen und auch Pflanzen auf Atys können magischen Schaden verursachen.] // HASH_VALUE 0B893FA30FAEEEE3 // INDEX 5790 -uittInfoOrigin [@{6F6F}Herkunft @{FFFF}:\n - Beeinflusst das Aussehen des Gegenstandes.] +uittInfoOrigin [@{6F6F}Design @{FFFF}:\n + Typischer Design-Stil einer bestimmten Gruppierung für solche Gegenstände.] // HASH_VALUE 6FF94D091FEA4384 // INDEX 5791 uittInfoRequirement [@{6F6F}Voraussetzung @{FFFF}:\n - Benötigte Werte und Fertigkeiten, um diesen Gegenstand benutzen zu können.] + Benötigte Werte und/oder Fertigkeiten, um diesen Gegenstand benutzen zu können.] // HASH_VALUE 62A6F932478349A1 // INDEX 5792 uittInfoItemSkill [@{6F6F}Fertigkeit @{FFFF}:\n - Fertigkeit, wenn du diesen Gegenstand benutzt.] + Fertigkeitsbaum, in dem du Erfahrung gewinnen kannst, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 2CCD4E8B7503D42B // INDEX 5793 uittInfoArmorQuality [@{6F6F}Qualität @{FFFF}:\n - Eine bessere Qualität sorgt für einen höheren Schutz.] + Eine bessere Rüstungs-Qualität sorgt meist auch für allgemein höhere Schutzwerte.] // HASH_VALUE 8ECCA8FB6F801B7D // INDEX 5794 uittInfoArmorProtection [@{6F6F}Schutzfaktor @{FFFF}:\n - Prozent des Schadens, der von der Rüstung absorbiert werden kann. Die Rüstung kann jedoch nicht mehr Schaden eines Typs absorbieren, als ihr maximaler Schutz gegen die Schadensart beträgt.] + Prozent des Schadens, der von der Rüstung absorbiert werden kann. Die Rüstung kann jedoch nie mehr Schaden eines Typs absorbieren, als ihr maximaler Schutz gegen diese Schadensart beträgt.] // HASH_VALUE D0A9618CFFCA51BE // INDEX 5795 uittInfoArmorSlash [@{6F6F}Maximalschutz gegen Zerschneiden @{FFFF}:\n - Das Maximum an Schaden, den die Rüstung bei einem Angriff mit Klingenwaffen absorbieren kann.] + Das Maximum an Schaden, den diese Rüstung bei einem Angriff mit Klingenwaffen oder schneidendem Schaden (z.B. Tier-Scheren) absorbieren kann.] // HASH_VALUE CDBA2D92024ABDBD // INDEX 5796 uittInfoArmorPierc [@{6F6F}Maximalschutz gegen Durchbohren @{FFFF}:\n - Das Maximum an Schaden, den die Rüstung bei einem Angriff mit Klingenwaffen absorbieren kann.] + Das Maximum an Schaden, den diese Rüstung bei einem Angriff mit Stichwaffen oder Stichschaden (z.B. Tier-Stacheln) absorbieren kann.] // HASH_VALUE 4FB40368338D138F // INDEX 5797 uittInfoArmorBlunt [@{6F6F}Maximalschutz gegen Zertrümmern @{FFFF}:\n - Das Maximum an Schaden, den die Rüstung bei einem Angriff mit Klingenwaffen absorbieren kann.] + Das Maximum an Schaden, den diese Rüstung bei einem Angriff mit stumpfen Waffen oder Schlägen (z.B. Tier-Hufe) absorbieren kann.] // HASH_VALUE 3AB07105106EBD5F // INDEX 5798 uittInfoArmorType [@{6F6F}Rüstungsart @{FFFF}:\n - Die Art der Rüstung beeinflusst normalerweiser die Aktionsstrafe. Die mittleren und schweren Rüstungen bringen einen zusätzlichen HP-Bonus mit sich, behindern aber stärker.] + Die Art der Rüstung beeinflusst den Aktions-Malus. Mittlere und schwere Rüstungen bringen einen zusätzlichen Lebens-Bonus mit sich, behindern aber stärker bei allen Nicht-Kampf-Aktionen (also Rohstoffernte, Handwerk und vor allem Magie). Auch schwere Waffen tragen zum Aktions-Malus bei.] // HASH_VALUE 49163199A15FAAAA // INDEX 5799 uittInfoShieldCat [@{6F6F}Kategorie @{FFFF}:\n - Die Schilde bieten den Rüstungen einen zusätzlichen Schutz.\n - @{6F6F}Beschützer@{FFFF} schützen die Hände und manchmal den Oberkörper und die Arme.\n + Schilde bieten zusätzlichen Schutz und nützen vor allem Nahkämpfern.\n + @{6F6F}Beschützer@{FFFF} schützen die Hände, manchmal den Oberkörper und die Arme.\n @{6F6F}Große Schilde@{FFFF} schützen Hände, Oberkörper, Arme und manchmal Beine.] // HASH_VALUE 660BAC182D2E1531 // INDEX 5800 uittInfoWeaponQuality [@{6F6F}Qualität @{FFFF}:\n - Deine zu diesem Gegenstand gehörende Stufe muss mindestens so hoch sein wie seine Qualität, um das Optimum aus dem Gegenstand herauszuholen.] + Um das Optimum aus dem Gegenstand herauszuholen, muss deine zu diesem Gegenstand (meist Waffe) gehörende Stufe (also höchste Kampffertigkeit) mindestens so hoch sein wie die Qualität des Gegenstandes.] // HASH_VALUE 8754B72B73295E97 // INDEX 5801 uittInfoWeaponSapLoad [@{6F6F}Sapladung @{FFFF}:\n @{AAAF}Aktuelle Ladung / Maximale Ladung@{FFFF}\n - Stellt die Kapazität eines Gegenstandes dar, mit @{6F6F}kristallisierten Zaubern@{FFFF} belegt zu werden. Sprüche einer hohen Stufe benötigen mehr Ladung.] + Stellt die Kapazität eines Gegenstandes dar, die mit @{6F6F}kristallisierten Zaubern@{FFFF} belegt werden kann. Sprüche einer hohen Stufe benötigen mehr Sapladung. Kristallisierte Zauber auf Gegenständen (gelingen immer) werden beim Auslösen der Gegenstandsverzauberung (spezielle Aktion) entladen, und müssen danach wieder aufgeladen werden.] // HASH_VALUE 7500C4BC89B3C38F // INDEX 5802 uittInfoWeaponDamage [@{6F6F}Schaden @{FFFF}:\n @{AAAF}Aktueller Schaden (Maximalschaden)@{FFFF}\n - Du richtest nur den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist sie niedriger, gibt es Abzüge.] + Du richtest nur dann den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist deine Nahkampffertigkeit niedriger, gibt es Abzüge.] // HASH_VALUE FB28E0E2E5C62D91 // INDEX 5803 -uittInfoWeaponHitMin [@{6F6F}Schlag/Minute @{FFFF}:\n - Angriffsgeschwindigkeit dieser Waffe.] +uittInfoWeaponHitMin [@{6F6F}Treffer / Minute @{FFFF}:\n + Die Angriffsgeschwindigkeit dieser Waffe.] // HASH_VALUE 02C5B6C0F2D11F57 // INDEX 5804 uittInfoWeaponRDamage [@{6F6F}Schaden @{FFFF}:\n @{AAAF}aktueller Schaden (Maximalschaden)@{FFFF}\n - Bonus wird dem Munitionsschaden hinzugefügt.\n - Du richtest nur den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist sie niedriger, gibt es Abzüge.] + Dem Munitionsschaden wird ein Bonus hinzugefügt.\n + Du richtest nur dann den Maximalschaden an, wenn deine Nahkampfstufe der Qualität der Waffe entspricht. Ist deine Nahkampffertigkeit niedriger, gibt es Abzüge.] // HASH_VALUE 17BD73E2E6753A6B // INDEX 5805 -uittInfoWeaponRHitMin [@{6F6F}Schläge/Minute @{FFFF}:\n - Feuergeschwindigkeit dieser Waffe.] +uittInfoWeaponRHitMin [@{6F6F}Treffer / Minute @{FFFF}:\n + Bei Schusswaffen beschreibt dieser Wert die Feuergeschwindigkeit.] // HASH_VALUE E496FD3F3619A785 // INDEX 5806 uittInfoWeaponReach [@{6F6F}Reichweite @{FFFF}:\n - Reichweite dieser Waffe. Je größer die Reichweite deiner Waffe im Vergleich zu der Deines Gegners ist, desto mehr steigen deine Trefferchancen.] + Reichweite dieser Waffe. Je größer die Reichweite deiner Waffe oder Attacke im Vergleich zu der deines Gegners ist, desto mehr steigen deine Trefferchancen.] // HASH_VALUE 4A6372DDB6610612 // INDEX 5807 @@ -24494,123 +24484,123 @@ uittInfoWeaponRange [@{6F6F}Reichweite @{FFFF}:\n // HASH_VALUE E4727E065EB26399 // INDEX 5808 uittInfoTargetDodgeMod [@{6F6F}Gegnerischer Ausweichmodifikator @{FFFF}:\n - Bonus oder Malus auf den @{6F6F}Ausweich-Wert@{FFFF} deines Gegners, wenn du Diesen Gegenstand benutzt.] + Verringert oder erhöht (selten) den @{6F6F}Ausweich-Wert@{FFFF} deines Gegners, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 5A1646B333ED1B97 // INDEX 5809 uittInfoTargetParryMod [@{6F6F}Gegnerischer Abwehrmodifikator @{FFFF}:\n - Bonus oder Malus auf den @{6F6F}Abwehr-Wert@{FFFF} Deines Gegners, wenn Du diesen Gegenstand benutzt.] + Verringert oder erhöht (selten) den @{6F6F}Abwehr-Wert@{FFFF} deines Gegners, wenn du diesen Gegenstand benutzt.] // HASH_VALUE 300D28760EFEB41F // INDEX 5810 uittInfoDamageType [@{6F6F}Schadenstyp @{FFFF}:\n - Manche Gegner sind anfälliger gegen bestimmte Schadensarten als andere.] + Beachte, dass manche Gegner anfälliger gegen bestimmte Schadensarten sind als gegen andere.] // HASH_VALUE F927F89F9EA3745B // INDEX 5811 uittInfoAmmoMagazine [@{6F6F}Magazin @{FFFF}:\n - @{AAAF}aktuelle Menge / Maximale Menge@{FFFF}\n - Anzahl an Munitionen über die du verfügst.\n - Nimm diese Munition in die linke Hand, um sie zu benutzen. ] + @{AAAF}aktuelle Menge / maximale Menge@{FFFF}\n + Anzahl an Munition, über die du verfügst.\n + Zieh die Munition in die linke Hand neben der Aktionsleiste, um sie zu benutzen.] // HASH_VALUE 4F7EBFFA6574C836 // INDEX 5812 uittInfoAmmoDamage [@{6F6F}Schaden @{FFFF}:\n - @{AAAF}Gängiger Schaden (Maximalschaden)@{FFFF}\n - Du fügst Maximalschaden zu, wenn dein Fernkampflevel gleich hoch oder höher als die Qualität der Munition ist.] + @{AAAF}Gängiger Schaden (möglicher Maximalschaden)@{FFFF}\n + Du fügst nur dann den Maximalschaden zu, wenn deine Fernkampfstufe gleich hoch oder höher als die Qualität der verwendeten Munition ist.] // HASH_VALUE FA24F13E9941458E // INDEX 5813 -uittInfoAmmoHitMin [@{6F6F}Schlag/Minute @{FFFF}:\n - Modifikator der Schussgeschwindigkeit dieser Munition.] +uittInfoAmmoHitMin [@{6F6F}Treffer / Minute @{FFFF}:\n + Modifiziert von der maximalen Schussgeschwindigkeit dieser Munition.] // HASH_VALUE 6EFE5CC17212A5D8 // INDEX 5814 uittInfoAmmoRange [@{6F6F}Reichweite @{FFFF}:\n - Verändert die Reichweite dieser Munition.] + Modifiziert von der maximalen Reichweite dieser Munition.] // HASH_VALUE 215E342F64C18D7E // INDEX 5815 uittInfoMpQuality [@{6F6F}Qualität @{FFFF}:\n - Die Qualität des Rohmaterials übt einen Einfluss auf Preis und Qualität der Gegenstände aus, die du damit herstellst (im Rahmen Deiner handwerklichen Fähigkeiten).] + Die Qualität des Rohmaterials übt einen Einfluss auf die Werte und damit auch den Preis der Gegenstände aus, die du damit herstellst (im Rahmen deiner handwerklichen Fähigkeiten). Beachte, dass für Handwerkspläne einer bestimmten Nation keine typischen Rohmaterialien aus anderen Ökosystemen (Typ) verwendet werden können, außer solche aus den Urwurzeln.] // HASH_VALUE 4F90998FB193490C // INDEX 5816 -uittInfoMpEco [@{6F6F}Ökosystem @{FFFF}:\n - Land, in dem dieses Material gefunden werden kann.] +uittInfoMpEco [@{6F6F}Typ @{FFFF}:\n + Ökosystem, in dem dieses Material gefunden werden kann. Rohstofftypen, die typisch für die Ökosysteme Waldland, Seenland, Dschungel oder Wüste sind, können nicht für Handwerkspläne der anderen Nationen eingesetzt werden.] // HASH_VALUE 9681BD4E9A352FDF // INDEX 5817 uittInfoMpColor [@{6F6F}Farbe @{FFFF}:\n - Wenn du Rüstungen und Kleider erschaffst, kann die Farbe dieses Rohmaterials die Endfarbe des erschaffenen Gegenstandes beeinflussen.] + Wenn du Rüstungen und Kleider herstellst, bestimmt die überwiegend genutzte Farbe von Rohmaterialen die Farbe des erschaffenen Gegenstandes.] // HASH_VALUE E22A99D0CC0BE7D3 // INDEX 5818 uittInfoMpFam [@{6F6F}Art @{FFFF}:\n - Die Rohstoffabbauer können sich in der Suche nach verschiedenen Rohstoffarten spezialisieren. Verschiedene Arten desselben Rohstoffes unterscheiden sich in ihren Eigenschaften.] + Die Rohstoffsuche kann nach bestimmten Arten von Rohstoffen eingegrenzt werden. Unterschiedliche Arten desselben Rohstoffes unterscheiden sich in ihren Eigenschaften und geben Handwerkserzeugnissen dementsprechend andere Werte, beispielsweise Bernsteine für Magieverstärker, die entweder Heilmagie, Elementarmagie oder andere Werte stärker erhöhen.] // HASH_VALUE A5569C1F20133383 // INDEX 5819 -uittActionSpellLevel [@{6F6F}Level des Zauberspruchs @{FFFF}:\n - Entspricht dem Level des höchsten eingebauten Spruches.\n - Wenn der Level des Spruchs höher ist als die @{6F6F}Qualität @{FFFF} der Zauberverstärker, dann kann dieser den Zauber nicht unterstützen.] +uittActionSpellLevel [@{6F6F}Stufe des Zauberspruchs @{FFFF}:\n + Zeigt die Stufe der höchsten eingebauten Spruch-Stanza (Bauteil von Aktionen) an.\n + Wenn die Stufe des Spruchs höher ist als die @{6F6F}Qualität @{FFFF} des getragenen Magieverstärkers (Gegenstand), dann kann der Magieverstärker den Spruch nicht unterstützen.] // HASH_VALUE A1061E7285A07820 // INDEX 5820 uittActionSuccessRateSF [@{6F6F}Erfolgsquote @{FFFF}:\n - Die Erfolgsquote hängt von der Nahkampffähigkeit im entsprechenden Waffentyp ab.] + Die Erfolgsquote hängt von der höchsten erreichten Nahkampffertigkeit im entsprechenden Kampfzweig (waffenabhängig) ab.] // HASH_VALUE EB0CFEEEE31A1747 // INDEX 5821 uittActionSuccessRateSM [@{6F6F}Erfolgsquote @{FFFF}:\n - Die Erfolgsquote hängt von den Magiefähigkeiten im entsprechenden Magiebereich ab.] + Die Erfolgsquote hängt von den höchsten erreichten Magiefertigkeiten im entsprechenden Magiezweig ab.] // HASH_VALUE 39CAC6D61D730B75 // INDEX 5822 uittActionSuccessRateSC [@{6F6F}Erfolgsquote @{FFFF}:\n - Die Erfolgsquote hängt von den Handswerkfähigkeiten im entsprechenden Handwerksbereich.] + Die Erfolgsquote hängt von den höchsten erreichten Handswerkfertigkeiten im entsprechenden Handwerkszweig ab.] // HASH_VALUE 278EB05C321DE95A // INDEX 5823 uittActionSuccessRateSH [@{6F6F}Erfolgsquote @{FFFF}:\n - Die Erfolgsquote hängt vom Abbauort und den benutzten Stanzas ab.] + Die Erfolgsquote hängt vom Abbaugebiet und allen benutzten Stanzas (Aktions-Bauteilen) ab.] // HASH_VALUE 6272716CB11A7CC9 // INDEX 5824 uittActionSkillPoint [@{6F6F}Fertigkeitspunkte @{FFFF}:\n - @{AAAF}Fehlende Punkte / Gesamtkosten \n - @{FFFF}Wenn du alle Stanzas einer Aktion beherrscht, lautet die erste Ziffer 0 und die Aktion wird im nicht mehr grau im Fortschrittfenster der Aktionen angezeigt.] + @{AAAF}Fehlende Punkte / Gesamtkosten\n + @{FFFF}Wenn du alle Stanzas (Teile) einer Aktion gelernt hast, lautet die erste Ziffer 0 und die Aktion wird im Fortschrittfenster der Aktionen nicht mehr als inaktiv ausgegraut angezeigt.] // HASH_VALUE E7774044D26B5A5A // INDEX 5825 -uittActionSkillReq [@{6F6F}Benötigte Fähigkeiten @{FFFF}:\n - Informiert über den benötigten Level in einer Fähigkeit, der notwendig ist, um die Stanzas kaufen zu können.\n - Die nicht erfüllten Voraussetzungen erscheinen in @{F80F}orange@{FFFF}.] +uittActionSkillReq [@{6F6F}Benötigte Fertigkeiten @{FFFF}:\n + Informiert über die benötigte Mindeststufe in einer Fertigkeit, die notwendig ist, um die Stanzas (Teile von Aktionen) kaufen zu können.\n + Noch nicht erfüllte Voraussetzungen werden in @{F80F}orange@{FFFF} angezeigt.] // HASH_VALUE 0F626E17850BE478 // INDEX 5826 uittActionStanzaReq [@{6F6F}Benötigte Stanzas @{FFFF}:\n - Du musst die nächsten Stanzas beherrschen, ehe du diese Aktion lernen kannst.\n - Nicht erfüllte Voraussetzungen sind in @{F80F}orange@{FFFF}.] + Du musst alle einzelnen Stanzas (Teile von Aktionen) gelernt haben, ehe du diese Aktion als ganzes anwenden kannst.\n + Noch nicht erfüllte Voraussetzungen werden in @{F80F}orange@{FFFF} angezeigt.] // HASH_VALUE 25ED5B9582ABCB37 // INDEX 5827 uittToolCraftType [@{6F6F}Werkzeugtyp @{FFFF}:\n - Ehe Du mit dem Handwerk beginnen kannst, musst Du das passende Werkzeug in Deine rechte Hand nehmen.] + Ehe du mit einem Handwerk beginnen kannst, musst du das dafür jeweils nötige Werkzeug in die rechte Hand nehmen.] // HASH_VALUE 28CCB0FDC1AA7305 // INDEX 5828 uittInfoToolQuality [@{6F6F}Qualität @{FFFF}:\n - Die Qualität des Werkzeugs hat keinen Einfluss auf das Endprodukt.] + Die Qualität oder Haltbarkeit des Handwerks-Werkzeugs hat keinen Einfluss auf das Endprodukt. Zur eigenen Herstellung von Werkzeugen sind Außenposten-Materialien vonnöten. Außenposten werden von Spieler-Gilden gehalten und umkämpft.] // HASH_VALUE B204FB18B049B1D2 // INDEX 5829 uittInfoJewelryQuality [@{6F6F}Qualität @{FFFF}:\n - Eine erhöhte Qualität bringt größeren magischen Schutz und einen höheren möglichen Boost mit sich.] + Eine höhere Qualität bringt meist sowohl größeren magischen Schutz als auch einen höheren möglichen Bonus mit sich.] // HASH_VALUE 2B64B02F2A00CC6C // INDEX 5830 -uiQuickEmote [Hallo] +uiQuickEmote [Hallo!] // HASH_VALUE 6DD99C906287949B // INDEX 5831 @@ -24646,15 +24636,15 @@ uiR2EDHomeButton [HOME] // HASH_VALUE D4CD14EFCFC47DD6 // INDEX 5839 -uiUniverseChanelWarningContent [Der Universum-Chat dient den Spielern von Ryzom dazu, um Atys-weit mit anderen Spielern über das Spiel zu sprechen. Neulinge sollten ihre Fragen hier stellen. Beleidigungen und Kränkungen von Spielern sind untersagt. Missbräuchliche Verwendung des Chats wird vom Kundensupport (CSR) bestraft.] +uiUniverseChanelWarningContent [Der Universum-Chat dient den Spielern von Ryzom dazu, um Atys-weit mit anderen Spielern über das Spiel zu sprechen. Neulinge dürfen ihre Fragen hier stellen (Bitten um Wiederbelebung oder Zusammenspiel sollten aber in "Region" geschrieben werden). Beleidigungen und Kränkungen von Spielern sind untersagt! Missbräuchliche Verwendung des Chats wird vom Kundensupport (CSR) geahndet.] // HASH_VALUE 091458309CC6A08A // INDEX 5840 -uiUniverseChanelWarningAvoid [Zeige diese Nachricht nicht mehr an.] +uiUniverseChanelWarningAvoid [Zeig diese Nachricht nicht mehr an.] // HASH_VALUE 6E75FF30933AF805 // INDEX 5841 -uittBonusMalusWindow [Bonus / Malus] +uittBonusMalusWindow [Buff / Debuff - Fenster] // HASH_VALUE 4F1BFC426F18DFC5 // INDEX 5842 @@ -24662,7 +24652,7 @@ uiR2EntryPoint [Einstiegspunkt] // HASH_VALUE 9E56F43342EE765D // INDEX 5843 -uiDockUndockChat [Dock / UnDock Chat] +uiDockUndockChat [Hefte Chat an / ab] // HASH_VALUE 469C21A66AD69D1C // INDEX 5844 @@ -24754,7 +24744,7 @@ uiR2EDShard [Shards: ] // HASH_VALUE 6604244CE930386A // INDEX 5866 -uiR2EDCombatLevel [Kampf-Level] +uiR2EDCombatLevel [Kampf-Stufen] // HASH_VALUE 4C80AC2789814F0E // INDEX 5867 @@ -24818,7 +24808,7 @@ uiCP_KeysetName_ [Sich anhand der Pfeiltasten bewegen] // HASH_VALUE 0ACCC21F27279934 // INDEX 5882 -uiCP_KeysetTooltip_ [Avatar nur anhand von @{6F6F}Pfeilen@{FFFF} bewegen.] +uiCP_KeysetTooltip_ [Charakter nur anhand von @{6F6F}Pfeilen@{FFFF} bewegen.] // HASH_VALUE CFB9BDB29DF40C78 // INDEX 5883 @@ -24826,7 +24816,7 @@ uiCP_KeysetName_bi_zqsd [Mit 'ZQSD' bewegen] // HASH_VALUE 9EDFCAA7C6EC9CCE // INDEX 5884 -uiCP_KeysetTooltip_bi_zqsd [Avatar mit den Tasten @{6F6F}ZQSD@{FFFF} nach FPS-Art bewegen. Das trifft auf belgische und französische Tastaturen zu.] +uiCP_KeysetTooltip_bi_zqsd [Charakter mit den Tasten @{6F6F}ZQSD@{FFFF} nach FPS-Art bewegen. Das trifft auf belgische und französische Tastaturen zu.] // HASH_VALUE CB89BDB29DF40C78 // INDEX 5885 @@ -24834,7 +24824,7 @@ uiCP_KeysetName_bi_wasd [Mit 'WASD' bewegen] // HASH_VALUE 792BC77DB79CF13B // INDEX 5886 -uiCP_KeysetTooltip_bi_wasd [Avatar mit den Tasten @{6F6F}WASD@{FFFF} nach FPS-Art bewegen. Das trifft auf US-amerikanische, englische und deutsche Tastaturen zu.] +uiCP_KeysetTooltip_bi_wasd [Charakter mit den Tasten @{6F6F}WASD@{FFFF} nach FPS-Art bewegen. Das trifft auf US-amerikanische, englische und deutsche Tastaturen zu.] // HASH_VALUE 2FC0531D290A6BEE // INDEX 5887 @@ -24897,7 +24887,7 @@ uiRAP_NewDestination [NEUES ZIEL] // HASH_VALUE D428978759DA5BBE // INDEX 5901 -uiRAP_MenuJoin [Betrete das Szenario] +uiRAP_MenuJoin [Betritt das Szenario] // HASH_VALUE 32DF17B8DB85B3AE // INDEX 5902 @@ -24913,15 +24903,15 @@ uiRAP_LaunchDate [Startdatum] // HASH_VALUE 1F822822A7538076 // INDEX 5905 -uiRAP_AuthorRRPRating [Autor RRP] +uiRAP_AuthorRRPRating [Autor-RRP] // HASH_VALUE A456A443CCA497BC // INDEX 5906 -uiRAP_OwnerRRPRating [Besitzer RRP] +uiRAP_OwnerRRPRating [Besitzer-RRP] // HASH_VALUE 25672C2765A76835 // INDEX 5907 -uiRAP_ScenarioRRPRating [Szenario RRP] +uiRAP_ScenarioRRPRating [Szenario-RRP] // HASH_VALUE 1A877C6FE605609E // INDEX 5908 @@ -24961,7 +24951,7 @@ uiRAP_NotInvited [Um dieses Szenario zu betreten, musst du vom Szenariobesitzer // HASH_VALUE E8E8B47569658C8A // INDEX 5917 -uiRAP_Level0 [Anfänger] +uiRAP_Level0 [Neuling] // HASH_VALUE 6B98B47DADB8D879 // INDEX 5918 @@ -24969,11 +24959,11 @@ uiRAP_Level1 [Lehrling] // HASH_VALUE DF56F079AAF9C0AC // INDEX 5919 -uiRAP_Level2 [Durchschnitt] +uiRAP_Level2 [Geübt] // HASH_VALUE 609C4404645834B8 // INDEX 5920 -uiRAP_Level3 [Fortgeschritten] +uiRAP_Level3 [Fortgeschrittener] // HASH_VALUE ED89286CB2D61899 // INDEX 5921 @@ -24985,11 +24975,11 @@ uiRAP_Level5 [Meister] // HASH_VALUE B1AC34FA292C2E15 // INDEX 5923 -uiRAP_HowToBeInvited [Du hast keine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und Klicken des @{6F6F}'BITTE UM EINLADUNG'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters kannst du dem Szenariobesitzer eine Einladungsanfrage schicken.] +uiRAP_HowToBeInvited [Du hast keine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und Anklicken des @{6F6F}'BITTE UM EINLADUNG'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters kannst du dem Szenario-Besitzer eine Einladungsanfrage schicken.] // HASH_VALUE 29037B25BC79BCE8 // INDEX 5924 -uiRAP_HowToJoin [Du hast eine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und klicken des @{6F6F}'TEILNEHMEN'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters.] +uiRAP_HowToJoin [Du hast eine Einladung für dieses Ring-Szenario. Durch Doppelklick auf das Szenario oder durch Auswahl und Anklicken des @{6F6F}'TEILNEHMEN'@{FFFF}-Buttons in der unteren rechten Ecke dieses Fensters kannst du nun das Szenario betreten.] // HASH_VALUE 9D9520606CDA74AA // INDEX 5925 @@ -25017,7 +25007,7 @@ uiRAP_ConnectionClosed [Verbindung geschlossen!] // HASH_VALUE 352A6FDF7485BE55 // INDEX 5931 -uiRAP_JoinFailed [Es tut uns leid, ein Fehler ist während des Versuches aufgetreten, dem Szenario beizutreten. Bitte versuche es noch einmal.] +uiRAP_JoinFailed [Es tut uns leid, ein Fehler ist während des Versuchs aufgetreten, dem Szenario beizutreten. Bitte versuche es noch einmal.] // HASH_VALUE 9C55CB466969C742 // INDEX 5932 @@ -25042,7 +25032,7 @@ uiRAP_FlagsTooltip [Ein @{6F6F}Haken@{FFFF} wird angezeigt, wenn der Szenariobes // HASH_VALUE 7DACB1DE78A79DE0 // INDEX 5937 -uiRAP_OwnerTooltip [Name des Spielers, der das Szenario erzeugt hat. Du kannst mittels des rechten Mausklick-Menüs oder über den Button in der rechten unteren Ecke dieses Fensters ein @{6F6F}Tell@{FFFF} zum Spieler schicken. Ein Doppelklick auf ein Szenario, in das du nicht eingeladen wurdest, sendet ein Tell an den Szenario Besitzer mit einer Einladungsanfrage. Klicke um nach Besitzern zu sortieren.] +uiRAP_OwnerTooltip [Name des Spielers, der das Szenario erstellt hat. Du kannst mit der rechten Maustaste ein Menü aufrufen oder über den Button in der rechten unteren Ecke dieses Fensters ein Flüstern in einem privaten @{6F6F}Tell-Fenster@{FFFF} zu dem ausgewählten Spieler schicken. Ein Doppelklick auf ein Szenario, in das du nicht eingeladen wurdest, sendet ein Flüstern an den Szenario-Besitzer mit einer Einladungsanfrage. Klicke, um nach Besitzern zu sortieren.] // HASH_VALUE 99D70A17296D53C2 // INDEX 5938 @@ -25054,13 +25044,13 @@ uiRAP_DescTooltip [Beschreibung des Szenarios. Klicke, um nach der Beschreibung // HASH_VALUE 65D648A61C519477 // INDEX 5940 -uiRAP_LevelTooltip [Schwierigkeit des Szenarios. Der Schwerigkeitsgrad bestimmt welche Belohnungspunkte in diesem Szenario verdient werden können und auch die Höhe der Fähigkeiten die du benötigst um Punkte zu verdienen.\n - @{6F6F}Anfänger@{FFFF}: Fähigkeiten jeder Höhe\n - @{6F6F}Lehrling@{FFFF}: Fähigkeiten ab Level 21\n - @{6F6F}Durchschnitt@{FFFF}: Fähigkeiten ab Level 51\n - @{6F6F}Fortgeschritten@{FFFF}: Fähigkeiten ab Level 101\n - @{6F6F}Experte@{FFFF}: Fähigkeiten ab Level 151\n - @{6F6F}Meister@{FFFF}: Fähigkeiten ab Level 201\n +uiRAP_LevelTooltip [Schwierigkeit des Szenarios. Der Schwerigkeitsgrad bestimmt, welche Belohnungspunkte in diesem Szenario verdient werden können und auch die Mindeststufe der Fertigkeiten, die du benötigst, um Punkte zu verdienen.\n + @{6F6F}Anfänger@{FFFF}: Fertigkeiten jeder Höhe\n + @{6F6F}Lehrling@{FFFF}: Fertigkeiten ab Stufe 21\n + @{6F6F}Geübter@{FFFF}: Fertigkeiten ab Stufe 51\n + @{6F6F}Fortgeschrittener@{FFFF}: Fertigkeiten ab Stufe 101\n + @{6F6F}Experte@{FFFF}: Fertigkeiten ab Stufe 151\n + @{6F6F}Meister@{FFFF}: Fertigkeiten ab Stufe 201\n Klicke, um danach zu sortieren.] // HASH_VALUE 810ABC32257B9A31 @@ -25077,15 +25067,15 @@ uiRAP_LaunchDateTooltip [Startzeit des Szenarios. Klicke, um nach der Startzeit // HASH_VALUE 18F87CAC4C1322C4 // INDEX 5944 -uiRAP_ScenarioTypeTooltip [Der Szenario-Typ, wie vom Besitzer angegeben. Klicke, um nach dem Typ zu sortieren.] +uiRAP_ScenarioTypeTooltip [Der Szenarien-Typ, wie vom Besitzer angegeben. Klicke, um nach dem Typ zu sortieren.] // HASH_VALUE 425165B00E6543E3 // INDEX 5945 -uiRAP_AuthorRRPRatingTooltip [Belohnungspunkte des Szenario-Autors] +uiRAP_AuthorRRPRatingTooltip [Belohnungspunkte des Szenarien-Autors] // HASH_VALUE 81F06DBE0E657AE6 // INDEX 5946 -uiRAP_OwnerRRPRatingTooltip [Belohnungspunkte des Szenariobesitzers] +uiRAP_OwnerRRPRatingTooltip [Belohnungspunkte des Szenarien-Besitzers] // HASH_VALUE 6BF9C446DE544EC1 // INDEX 5947 @@ -25093,23 +25083,23 @@ uiRAP_ScenarioRRPRatingTooltip [Belohnungspunkte dieses Szenarios] // HASH_VALUE 1FCE9DCFE7D94BC5 // INDEX 5948 -uiRAP_RateFunTooltip [Die Durschschnittsbewertung des @{6F6F}Spaßes@{FFFF}, vergeben durch die Spieler des Szenarios. ] +uiRAP_RateFunTooltip [Durchschnittsbewertung des @{6F6F}Spaßes@{FFFF}, vergeben durch die Spieler des Szenarios.] // HASH_VALUE 1B6F8628496B75B6 // INDEX 5949 -uiRAP_RateDifficultyTooltip [Die Durschschnittsbewertung der @{6F6F}Schwierigkeit@{FFFF}, vergeben durch die Spieler des Szenarios. ] +uiRAP_RateDifficultyTooltip [Durchschnittsbewertung der @{6F6F}Schwierigkeit@{FFFF}, vergeben durch die Spieler des Szenarios.] // HASH_VALUE AEBE4A5E6AABD012 // INDEX 5950 -uiRAP_RateAccessibilityTooltip [Die Durschschnittsbewertung der @{6F6F}Spielbarkeit@{FFFF}, vergeben durch die Spieler des Szenarios. ] +uiRAP_RateAccessibilityTooltip [Durchschnittsbewertung der @{6F6F}Spielbarkeit@{FFFF}, vergeben durch die Spieler des Szenarios.] // HASH_VALUE 77B4423604F01431 // INDEX 5951 -uiRAP_RateOriginalityTooltip [Die Durschschnittsbewertung der @{6F6F}Originalität@{FFFF}, vergeben durch die Spieler des Szenarios. ] +uiRAP_RateOriginalityTooltip [Durchschnittsbewertung der @{6F6F}Originalität@{FFFF}, vergeben durch die Spieler des Szenarios.] // HASH_VALUE 3A66C9B848AD4C51 // INDEX 5952 -uiRAP_RateDirectionTooltip [Die Durschschnittsbewertung der @{6F6F}Leitung@{FFFF}, vergeben durch die Spieler des Szenarios. ] +uiRAP_RateDirectionTooltip [Durchschnittsbewertung der @{6F6F}Leitung@{FFFF}, vergeben durch die Spieler des Szenarios.] // HASH_VALUE 2A922083176AD879 // INDEX 5953 @@ -25125,11 +25115,11 @@ uiRAP_ST_1 [Anfängertraining] // HASH_VALUE 71C3049F96EB47B4 // INDEX 5956 -uiRAP_ST_2 [Geschichtenerzählen] +uiRAP_ST_2 [Geschichten-Erzählen] // HASH_VALUE 70FBD89DA638889D // INDEX 5957 -uiRAP_ST_3 [Mistery] +uiRAP_ST_3 [Mystery] // HASH_VALUE A21548239C517C02 // INDEX 5958 @@ -25145,7 +25135,7 @@ uiRAP_ST_6 [Anderes] // HASH_VALUE F6A0687DF032C854 // INDEX 5961 -uiCP_InRingSession [Das Ringszenario, das dieser Charakter gestartet hat, ist weitergelaufen. Klicke auf @{6F6F}'Szenario wiederaufnehmen' @{FFFF}um fortzufahren] +uiCP_InRingSession [Das Ringszenario, das dieser Charakter gestartet hat, ist weitergelaufen. Klicke auf @{6F6F}'Szenario wiederaufnehmen' @{FFFF}, um damit fortzufahren] // HASH_VALUE AC8AB07F995277AD // INDEX 5962 @@ -25161,7 +25151,7 @@ uiAddTellerToFriends [Freund] // HASH_VALUE E67BA5A407A5C4C4 // INDEX 5965 -uiAddTellerToFriendsToolip [Diese Person auf die Freundesliste setzen.] +uiAddTellerToFriendsToolip [Diesen Charakter auf die Freundesliste setzen.] // HASH_VALUE E8878C72E635849B // INDEX 5966 @@ -25169,7 +25159,7 @@ uiAddTellerToIgnoreList [Ignorieren] // HASH_VALUE 098D5E90649D1E19 // INDEX 5967 -uiAddTellerToIgnoreListTooltip [Person auf die Ignore-Liste setzen. Du wirst dann keine Nachrichten mehr von dieser Person erhalten.] +uiAddTellerToIgnoreListTooltip [Spieler-Charakter auf die Ignore-Liste setzen. Du wirst dann keine Nachrichten mehr von diesem Spieler-Charakter erhalten.] // HASH_VALUE A8A9AC7CE9D688A7 // INDEX 5968 @@ -25177,7 +25167,7 @@ uiInviteToRingSession [Einladen] // HASH_VALUE 2E70FEF04CCFE0DF // INDEX 5969 -uiInviteToRingSessionTooltip [Charakter zu diesem Ringszenario einladen und ihm ermöglichen über ein @{6F6F}Ring-Terminal@{FFFF} einzusteigen.] +uiInviteToRingSessionTooltip [Spieler zu diesem Ringszenario einladen und ihm ermöglichen, über ein @{6F6F}Ring-Terminal@{FFFF} einzusteigen.] // HASH_VALUE A13B79A707E6A00D // INDEX 5970 @@ -25185,7 +25175,7 @@ uiAddTellerToIgnoreListWarning [Willst du diesen Spieler auf deine Ignore-Liste // HASH_VALUE 6C58F488C23ADCA0 // INDEX 5971 -uiRAP_CharsTitle [Spieler-Aufspüren] +uiRAP_CharsTitle [Spieler aufspüren] // HASH_VALUE 6CDA7A4EEA3AE48C // INDEX 5972 @@ -25249,7 +25239,7 @@ uiRAP_CharFlagsTooltip [Ein Auge zeigt an, dass der Spieler an diesem Szenario t // HASH_VALUE C1F77B1087622C01 // INDEX 5987 -uiRAP_CharNameTooltip [Name des Spielers, der eingeladen wurde. Du kannst ein @{6F6F}Tell@{FFFF} an den Spieler senden, ihn @{6F6F}kicken@{FFFF} oder ihn @{6F6F}teleportieren@{FFFF} in dem du die rechte Maustaste oder die Buttons in der rechten unteren Ecke drückst. Klicke, um danach zu sortieren.] +uiRAP_CharNameTooltip [Name des Spielers, der eingeladen wurde. Du kannst ein @{6F6F}Tell@{FFFF} an den Spieler senden, ihn @{6F6F}kicken@{FFFF} oder ihn @{6F6F}teleportieren@{FFFF} in dem du die rechte Maustaste oder die Knöpfe in der rechten unteren Ecke drückst. Klicke, um danach zu sortieren.] // HASH_VALUE 87FE819401AF7A96 // INDEX 5988 @@ -25257,27 +25247,27 @@ uiRAP_CharGuildTooltip [Name der Gilde des Spielers, wenn er eine hat. Klicke, u // HASH_VALUE 11682E61448D7B0D // INDEX 5989 -uiRAP_CharRaceTooltip [Rasse des Spielers. Klicke, um danach zu sortieren.] +uiRAP_CharRaceTooltip [Spieler-Rasse. Klicke, um danach zu sortieren.] // HASH_VALUE DF37145D4FE4767E // INDEX 5990 -uiRAP_CharReligionTooltip [Religion des Spielers. Klicke, um danach zu sortieren.] +uiRAP_CharReligionTooltip [Spieler-Religion. Klicke, um danach zu sortieren.] // HASH_VALUE 6A07FA5D0DD06C3A // INDEX 5991 -uiRAP_CharShardTooltip [Shard des Spielers. Klicke, um danach zu sortieren.] +uiRAP_CharShardTooltip [Spieler-Shard. Klicke, um danach zu sortieren.] // HASH_VALUE 4836C73AF7CA1B31 // INDEX 5992 -uiRAP_CharLevelTooltip [Höchster Fertigkeitslevel in Kampf/Magie. Klicke, um danach zu sortieren.] +uiRAP_CharLevelTooltip [Höchste Fertigkeitsstufe in Kampf/Magie. Klicke, um danach zu sortieren.] // HASH_VALUE C7CC9091D253FCB1 // INDEX 5993 -uiRAP_TellSentTo [Einladungsanforderung gesendet an:] +uiRAP_TellSentTo [Einladung gesandt an:] // HASH_VALUE 73CC6FBBDB9441B6 // INDEX 5994 -uiRingInviteNotification [Du wurdest eingeladen an einem Ring Szenario teilzunehmen. Wenn du das Szenario an einem Ring Terminal auswählst, wirst du es sofort betreten können.] +uiRingInviteNotification [Du wurdest eingeladen, an einem Ring-Szenario teilzunehmen. Wenn du das Szenario an einem Ring-Terminal auswählst, wirst du es sofort betreten können.] // HASH_VALUE DB910EA8014D380B // INDEX 5995 @@ -25297,7 +25287,7 @@ uiRingPlotItemEmpty [ - ] // HASH_VALUE E7B77016F0413C53 // INDEX 5999 -uiRingAutoInviteToggle [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann müssen Spieler an einem @{6F6F}Ring-Terminal@{FFFF} um eine Einladung bitten, bevor sie am Szenario teilnehmen können.] +uiRingAutoInviteToggle [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann müssen Spieler an einem @{6F6F}Ring-Terminal@{FFFF} um eine Einladung anfragen, bevor sie am Szenario teilnehmen können.] // HASH_VALUE 7F3877CFCE661A29 // INDEX 6000 @@ -25305,68 +25295,68 @@ uiRingGlobalAccessToggle [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann seh // HASH_VALUE BADC46EEDC730E8E // INDEX 6001 -uiRingFilterFyros [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Fyros Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterFyros [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Fyros-Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE BADC2EF0D6E30E8E // INDEX 6002 -uiRingFilterMatis [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Matis Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterMatis [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Matis-Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE BA3B0EEE59B40E8E // INDEX 6003 -uiRingFilterZorai [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Zoraï Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterZorai [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Zoraï-Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE D2E7A5B1A79E23DD // INDEX 6004 -uiRingFilterTryker [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Tryker Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterTryker [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Tryker-Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE C95390E570D1BC39 // INDEX 6005 -uiRingFilterGuild [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler die nicht Mitglied deiner Gilde sind dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen. \n +uiRingFilterGuild [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, die nicht Mitglied deiner Gilde sind, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.\n Diese Option ist effektlos, wenn du kein Mitglied einer Gilde bist.] // HASH_VALUE AD832E7F8FBC8C6A // INDEX 6006 -uiRingFilterCombatLevel0 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level nicht höher als Level @{6F6F}20@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel0 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe nicht höher als Stufe @{6F6F}20@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 74E8F3F8129FE704 // INDEX 6007 -uiRingFilterCombatLevel1 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level zwischen @{6F6F}21@{FFFF} und @{6F6F}50@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel1 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe zwischen @{6F6F}21@{FFFF} und @{6F6F}50@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 2C9DED97CB154CDD // INDEX 6008 -uiRingFilterCombatLevel2 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level zwischen @{6F6F}51@{FFFF} und @{6F6F}100@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel2 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe zwischen @{6F6F}51@{FFFF} und @{6F6F}100@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 71D2AB828CA0D2C2 // INDEX 6009 -uiRingFilterCombatLevel3 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level zwischen @{6F6F}101@{FFFF} und @{6F6F}150@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel3 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe zwischen @{6F6F}101@{FFFF} und @{6F6F}150@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 30E2AB828CA0E6C2 // INDEX 6010 -uiRingFilterCombatLevel4 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level zwischen @{6F6F}151@{FFFF} und @{6F6F}200@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel4 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe zwischen @{6F6F}151@{FFFF} und @{6F6F}200@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 71E2AB828CA0D2C3 // INDEX 6011 -uiRingFilterCombatLevel5 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler, deren höchster Kampf Level zwischen @{6F6F}201@{FFFF} und @{6F6F}250@{FFFF} ist, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterCombatLevel5 [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler, deren höchste Kampf-Stufe zwischen @{6F6F}201@{FFFF} und @{6F6F}250@{FFFF} list, dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE C926ECD900DFDE26 // INDEX 6012 -uiRingFilterReligionKami [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Kami Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterReligionKami [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Kami-treue Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 3DAAD1B84B617D5A // INDEX 6013 -uiRingFilterReligionKaravan [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Karavan Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterReligionKaravan [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Karavan-treue Spieler dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 671857FABB67D633 // INDEX 6014 -uiRingFilterReligionNeutral [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können Spieler ohne Nationalität dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterReligionNeutral [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler ohne Nationalität dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE 2F3592532EC842F6 // INDEX 6015 -uiRingFilterShard [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht eingeladene Spieler dieses Shards dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] +uiRingFilterShard [Wenn @{6F6F}kein Häkchen gesetzt ist@{FFFF}, dann können nicht-eingeladene Spieler dieses Shards dieses Szenario am @{6F6F}Ring-Terminal@{FFFF} nicht sehen.] // HASH_VALUE F259DC5CF2CACC81 // INDEX 6016 -uiRAP_AskForTall [Unterhaltungsanforderung] +uiRAP_AskForTall [Unterhaltungsaufforderung] // HASH_VALUE 308CD0C4308CD0C4 // INDEX 6017 @@ -25398,23 +25388,23 @@ uiRAP_Invite [EINLADEN] // HASH_VALUE BA6859E05968167A // INDEX 6024 -uiRAP_InvitedAndConnected [Der Charakter, den du gerade eingeladen hast, ist jetzt verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF}-Button kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF}-Button kannst du dich an seine derzeitige Position teleportieren.] +uiRAP_InvitedAndConnected [Der Charakter, den du gerade eingeladen hast, ist jetzt verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menü oder dem @{6F6F}'FLÜSTERN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter privat im 'Tellfenster' sprechen; mit dem @{6F6F}'ENTLASSEN'@{FFFF}-Button kannst du ihn ausladen; mit dem @{6F6F}'Teleportiere zu'@{FFFF}-Button kannst du dich an seine derzeitige Position teleportieren.] // HASH_VALUE 509F0C9B906C3F52 // INDEX 6025 -uiRAP_InvitedAndNotConnected [Der Charakter, den du gerade eingeladen hast, ist derzeit nicht verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menüs oder den @{6F6F}'SPRECHEN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter sprechen; mit dem @{6F6F}'Kick'@{FFFF}-Button kannst du ihn ausschließen; mit dem @{6F6F}'Teleportiere zu'@{FFFF}-Button kannst du dich an seine derzeitige Position teleportieren.] +uiRAP_InvitedAndNotConnected [Der Charakter, den du gerade eingeladen hast, ist derzeit nicht verbunden. Indem du auf den Namen klickst und entweder mit dem rechten Mausklick-Menü oder dem @{6F6F}'FLÜSTERN'@{FFFF}-Button in der unteren rechten Ecke dieses Fensters klickst, kannst du mit dem Charakter privat im 'Tellfenster' sprechen; mit dem @{6F6F}'ENTLASSEN'@{FFFF}-Button kannst du ihn ihn ausladen; mit dem @{6F6F}'Teleportiere zu'@{FFFF} Knopf kannst du dich an seine derzeitige Position teleportieren.] // HASH_VALUE 48D0942C48D0942C // INDEX 6026 -uiRAP_Kick [KICK] +uiRAP_Kick [ENTLASSEN] // HASH_VALUE EA58480EC9612117 // INDEX 6027 -uiRAP_MenuCharTell [Schicke ein 'tell' an ] +uiRAP_MenuCharTell [Flüstere im 'Tellfenster' an] // HASH_VALUE 1436DF3FDE82FF39 // INDEX 6028 -uiRAP_MenuKick [Kick ] +uiRAP_MenuKick [Entlassen] // HASH_VALUE D7A9B8389B0AE054 // INDEX 6029 @@ -25422,7 +25412,7 @@ uiRAP_MenuTeleportTo [Teleportiere zu ] // HASH_VALUE 1438989724F33B43 // INDEX 6030 -uiRAP_MenuUnkick [Unkick ] +uiRAP_MenuUnkick [Zurückholen] // HASH_VALUE 76E0307605C6680D // INDEX 6031 @@ -25462,11 +25452,11 @@ uiR2EDso_newbie_training [Anfängertraining] // HASH_VALUE 69C3049F96E947B4 // INDEX 6040 -uiR2EDso_story_telling [Geschichtenerzählen] +uiR2EDso_story_telling [Geschichten-Erzählen] // HASH_VALUE 70FBD89DA638889D // INDEX 6041 -uiR2EDso_mistery [Mistery] +uiR2EDso_mistery [Mystery] // HASH_VALUE A2A5271C9C713AF4 // INDEX 6042 @@ -25474,7 +25464,7 @@ uiR2EDso_hack_slash [Hack & Slash] // HASH_VALUE 56A8D07F6E65BB6D // INDEX 6043 -uiR2EDso_guild_training [Gilden Training] +uiR2EDso_guild_training [Gilden-Training] // HASH_VALUE 2C17789A63E86C8E // INDEX 6044 @@ -25534,19 +25524,19 @@ uiRingDescriptionScenarioTooltip [Beschreibe das Szenario, das du starten willst // HASH_VALUE 37A499AF454933EB // INDEX 6058 -uiRingWarningFreeTrial [FREIACCOUNT BESCHRÄNKUNGEN:\n +uiRingWarningFreeTrial [FREE TRIAL ACCOUNT - EINSCHRÄNKUNGEN:\n \n - Du kannst an diesem Ring-Abenteuer nicht mit einem Freien Testaccount teilnehmen.\n + Du kannst an diesem Ring-Abenteuer nicht mit einem kostenlosen Testaccount teilnehmen.\n \n Um vollen Zugang zum Ring zu bekommen, musst du Ryzom abonnieren.\n \n - Um deinen Account umzuwandeln, siehe \n + Um deinen Account umzuwandeln, siehe\n www.ryzom.com\n ] // HASH_VALUE 001FEF6E892C40E8 // INDEX 6059 -uiRingWarningInviteFreeTrial [Du kannst diesen Spieler nicht einladen, da er nur einen freien Testaccount besitzt und dieses Szenario nicht für Testspieler zugelassen ist.\n +uiRingWarningInviteFreeTrial [Du kannst diesen Spieler nicht einladen, da er nur einen kostenlosen Testaccount besitzt und dieses Szenario nicht für Testspieler zugelassen ist.\n ] // HASH_VALUE CF3B4C5857A765C5 @@ -25556,7 +25546,7 @@ uiRingWarningNewcomer [Du kannst diesen Spieler nicht einladen, da einer von euc // HASH_VALUE 0FDAAC9109769FFD // INDEX 6061 -uiRingWarningBanishedPlayer [Du wurdest ausgesperrt, damit hast du die Möglichkeit, verloren ein Szenario zu starten.] +uiRingWarningBanishedPlayer [Du wurdest ausgesperrt. Damit hast du die Möglichkeit verloren, ein Szenario zu starten.] // HASH_VALUE 7484A535D707EA06 // INDEX 6062 @@ -25564,7 +25554,7 @@ uiRingLaunchScenarioError [Ein Fehler ist aufgetreten, als du versucht hast, dei // HASH_VALUE D34A4A98246E6F7A // INDEX 6063 -uiRingUpdateScenarioFiltersError [Ein Fehler ist aufgetreten, als du versucht hast deine Szenario Filter zu aktualisieren.] +uiRingUpdateScenarioFiltersError [Ein Fehler ist aufgetreten, als du versucht hast, deine Szenarien-Filter zu aktualisieren.] // HASH_VALUE 2A62ABF263466CB3 // INDEX 6064 @@ -25589,8 +25579,8 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Description [@{6F6F}Beschreibung // HASH_VALUE B347D4DBDA147171 // INDEX 6068 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Rules [@{6F6F}Geleitet\n - @{FFFF} Geleitet bedeutet, dass du der Abenteuermeister in dem Szenario bist\n - Ungeleitet bedeutet, dass du am Szenario als Spieler teilnimmst.] + @{FFFF} "Geleitet" bedeutet, dass du der Abenteuermeister / Spielleiter in dem Szenario bist\n + "Ungeleitet" bedeutet, dass du am Szenario als normaler Spieler teilnimmst.] // HASH_VALUE FC2BD65951F97767 // INDEX 6069 @@ -25600,12 +25590,12 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Level [@{6F6F}Schwierigkeit\n // HASH_VALUE AFBD81929D869A76 // INDEX 6070 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Language [@{6F6F}Sprache\n - @{FFFF} Die Sprache des ausgewählten Szenarios, wie vom Szenario Autor vorgegeben.] + @{FFFF} Die Sprache des ausgewählten Szenarios, wie vom Szenarien-Autor vorgegeben.] // HASH_VALUE 66CEF50ED8DC276E // INDEX 6071 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RingPointsLevel [@{6F6F}Anforderungen\n - @{FFFF} Gibt an, ob es dir erlaubt ist, das Szenario zu laden. Du kannst nur Szenarien laden, auf deren Inhalt du Zugriff hast. Du kannst Zugriff zu weiteren Inhalten nur bekommen, indem du die Länder von Atys erforscht.] + @{FFFF} Gibt an, ob es dir erlaubt ist, das Szenario zu laden. Du kannst nur Szenarien laden, auf deren Inhalt du Zugriff hast. Du kannst Zugriff zu weiteren Inhalten nur bekommen, indem du viele Länder von Atys erforscht und Wiederbelebungsorte besuchst.] // HASH_VALUE 2F284F3398091766 // INDEX 6072 @@ -25614,13 +25604,13 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Author [@{6F6F}Autor\n // HASH_VALUE 7D5B350CB5DF616F // INDEX 6073 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_NewbieTreeInfo [@{6F6F}Neulingsinsel Szenarien\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_NewbieTreeInfo [@{6F6F}Neulingsinsel - Szenarien\n @{FFFF} SCHREIB MIR] // HASH_VALUE F0009604F468F22A // INDEX 6074 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Fun [@{6F6F}Spaßbewertung\n - @{FFFF} Bewertung des Spaßes des ausgewählten Szenarios..] + @{FFFF} Bewertung des Spaßfaktors des ausgewählten Szenarios..] // HASH_VALUE 5CC60FE247B6E541 // INDEX 6075 @@ -25629,12 +25619,12 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Difficulty [@{6F6F}Schwierigkeit // HASH_VALUE C3A8D93AB4BF2DF7 // INDEX 6076 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Accessibility [@{6F6F} Spielbarkeitsbewertung \n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Accessibility [@{6F6F} Spielbarkeitsbewertung\n @{FFFF} Bewertung der Spielbarkeit des ausgewählten Szenarios.] // HASH_VALUE E63CECE3EAA44809 // INDEX 6077 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Originality [@{6F6F}Originalitätsbewertung \n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Originality [@{6F6F}Originalitätsbewertung\n @{FFFF} Bewertung der Originalität des ausgewählten Szenarios.] // HASH_VALUE EAB3000597E79860 @@ -25644,17 +25634,17 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Direction [@{6F6F}Spielleitungsb // HASH_VALUE F9C96D1B8F3186FB // INDEX 6079 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RRPTotal [@{6F6F}Ryzom-Ring-Punkte Total \n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RRPTotal [@{6F6F}Ryzom-Ring-Punkte Total\n @{FFFF} Gesamte Anzahl an Ryzom-Ring-Punkten (RRP) für das ausgewählten Szenario.] // HASH_VALUE DEB31F903CC13218 // INDEX 6080 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_TreeInfo [@{6F6F}Winch Gate Beispiele\n - @{FFFF}Beispiel Szenarien mitgeliefert mit Ryzom. Diese demonstrieren einige der Dinge, die mit dem Ryzom Ring gemacht werden können.\n - @{6F6F}Pionier Szenarien\n - @{FFFF}Bereitgestellt durch andere Spieler und dem Kundensupport, diese wurden nicht von Winch Gate geprüft. Siehe ryzom.com/pioneer_program für weitere Informationen.\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_TreeInfo [@{6F6F}Winch Gate Beispiel-Szenarien\n + @{FFFF}"Beispiel-Szenarien" werden mit Ryzom bereitgestellt. Sie demonstrieren einige der Dinge, die mit dem Ryzom-Ring gemacht werden können.\n + @{6F6F}Pionier-Szenarien\n + @{FFFF}"Pionier-Szenarien" werden durch andere Spieler und den Kundensupport bereitgestellt, wurden aber nicht von Winch Gate geprüft. Siehe ryzom.com/pioneer_program für weitere Informationen.\n @{6F6F}Meine Dateien\n - @{FFFF}Die Dateien sind im 'My Scenarios' Ordner auf deinem Computer.] + @{FFFF}Diese Dateien sind im 'My Scenarios'-Ordner auf deinem Computer gespeichert.] // HASH_VALUE 26367F872144C855 // INDEX 6081 @@ -25662,7 +25652,7 @@ uiR2EDLoadScenarioWindow [Lade Szenario] // HASH_VALUE ED388C486ED8B037 // INDEX 6082 -uiR2EDProp_LoadScenario_Description [Szenario Beschreibung] +uiR2EDProp_LoadScenario_Description [Szenarien-Beschreibung] // HASH_VALUE EBE85C8EA7783C99 // INDEX 6083 @@ -25722,16 +25712,16 @@ uiR2EDLoadScenario_InvalidFileName [Ungültiger Dateiname] // HASH_VALUE E082DD6A29896311 // INDEX 6097 -uiR2EDLoadScenario_Yes [Du hast ausreichendes Wissen über Atys] +uiR2EDLoadScenario_Yes [Du hast ausreichende Atys-Kenntnis] // HASH_VALUE 18577D9A4E0EA0E9 // INDEX 6098 -uiR2EDLoadScenario_No [Du hast UNZUREICHENDES Wissen über Atys] +uiR2EDLoadScenario_No [Du hast UNZUREICHENDE Atys-Kenntnis] // ENTRIES MIGRATED FROM R2.UXT FOR USE IN SCEANARIO LOADING // HASH_VALUE AAC8204867A84443 // INDEX 6099 -uiR2EDRollout_ScenarioInfo [Szenario Information] +uiR2EDRollout_ScenarioInfo [Szenarien-Information] // HASH_VALUE 6458F4306458F430 // INDEX 6100 @@ -25788,7 +25778,7 @@ uiR2EDPrimeRootPoints [Urwurzelkenntnis] // HASH_VALUE DA6F7B598594B31E // INDEX 6113 -uiR2EDBasicPointsTooltip [@{6F6F}Allgemein@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n +uiR2EDBasicPointsTooltip [@{6F6F}Allgemein@{FFFF}: %n/%p\n ] // HASH_VALUE 0E24671ACE438724 @@ -25803,7 +25793,7 @@ uiR2EDSubtropicPointsTooltip [@{6F6F}Seenland@{FFFF}: entdeckte Wiederbelebungsp // HASH_VALUE 4E2463244E438724 // INDEX 6116 -uiR2EDForestPointsTooltip [@{6F6F}Wald@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n +uiR2EDForestPointsTooltip [@{6F6F}Waldland@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE 8D44532A4F438715 @@ -25813,16 +25803,16 @@ uiR2EDJunglePointsTooltip [@{6F6F}Dschungel@{FFFF}: entdeckte Wiederbelebungspun // HASH_VALUE 113F47AD9C83370A // INDEX 6118 -uiR2EDPrimeRootPointsTooltip [@{6F6F}Urwurzel@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n +uiR2EDPrimeRootPointsTooltip [@{6F6F}Urwurzeln@{FFFF}: entdeckte Wiederbelebungspunkte %n/%p\n ] // HASH_VALUE E4F4FB7720E1A7B3 // INDEX 6119 -uiR2EDRrpsLevelTitle [Belohnungspunkte (RRP)] +uiR2EDRrpsLevelTitle [Ring-Belohnungspunkte (RRP)] // HASH_VALUE EA26E864ABC1C079 // INDEX 6120 -uiR2EDRrpsLevel20 [Anfängerstufe] +uiR2EDRrpsLevel20 [Neulingsstufe] // HASH_VALUE 6E12AC48EA3A2494 // INDEX 6121 @@ -25830,7 +25820,7 @@ uiR2EDRrpsLevel50 [Lehrlingsstufe] // HASH_VALUE E968A7361D26C4B6 // INDEX 6122 -uiR2EDRrpsLevel100 [Durchschnittsstufe] +uiR2EDRrpsLevel100 [Geübtenstufe] // HASH_VALUE E8F9A03CA5D36079 // INDEX 6123 @@ -25846,38 +25836,38 @@ uiR2EDRrpsLevel250 [Meisterstufe] // HASH_VALUE 118869B320D7EDCD // INDEX 6126 -uiR2EDRrpsLevel20Tooltip [@{6F6F}Anfängerstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Anfänger'-Szenarien\n +uiR2EDRrpsLevel20Tooltip [@{6F6F}Neulingsstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n + Punkte verdient in 'Neulings'-Szenarien verdiente Punkte \n ] // HASH_VALUE EF966A1FB8731D23 // INDEX 6127 uiR2EDRrpsLevel50Tooltip [@{6F6F}Lehrlingsstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Lehrlings'-Szenarien (benutzte Fähigkeiten ab Level 21)\n + in 'Lehrlings'-Szenarien verdiente Punkte (benutzte Fertigkeiten ab Stufe 21)\n ] // HASH_VALUE 5B2F7EAB79E12023 // INDEX 6128 -uiR2EDRrpsLevel100Tooltip [@{6F6F}Durchschnittsstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Durchschnitts'-Szenarien (benutzte Fähigkeiten ab Level 51)\n +uiR2EDRrpsLevel100Tooltip [@{6F6F}Geübtenstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n + in 'Geübten'-Szenarien verdiente Punkte (benutzte Fertigkeiten ab Stufe 51)\n ] // HASH_VALUE BB8E4159D1270158 // INDEX 6129 uiR2EDRrpsLevel150Tooltip [@{6F6F}Fortgeschrittenenstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Fortgeschrittenen'-Szenarien (benutzte Fähigkeiten ab Level 101)\n + in 'Fortgeschrittenen'-Szenarien verdiente Punkte (benutzte Fertigkeiten ab Stufe 101)\n ] // HASH_VALUE 867F514CB2A03C2D // INDEX 6130 uiR2EDRrpsLevel200Tooltip [@{6F6F}Expertenstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Experten'-Szenarien (benutzte Fähigkeiten ab Level 151)\n + in 'Experten'-Szenarien verdiente Punkte (benutzte Fertigkeiten ab Stufe 151)\n ] // HASH_VALUE 4350293FB42F5C2B // INDEX 6131 uiR2EDRrpsLevel250Tooltip [@{6F6F}Meisterstufe Ryzom-Ring-Punkte@{FFFF}: %n.\n - Punkte verdient in 'Meister'-Szenarien (benutzte Fähigkeiten ab Level 201)\n + in 'Meister'-Szenarien verdiente Punkte (benutzte Fertigkeiten ab Stufe 201)\n ] // HASH_VALUE AB584C2DEF88F0FB @@ -25898,37 +25888,37 @@ uiR2EDMasterlessRingRating [Organisationsbewertung] // HASH_VALUE 23C8A5EEEDF6E93B // INDEX 6136 -uiR2EDAuthorRingRatingTooltip [@{6F6F}Autor-Bewertung@{FFFF}: Level : %n, Fortschritt : %p%.\n - Bewertung als Szenario-Autor. Diese Bewertung erhöht sich sobald Spieler von dir geschaffene Szenarien spielen.\n +uiR2EDAuthorRingRatingTooltip [@{6F6F}Autor-Bewertung@{FFFF}: Stufe : %n, Fortschritt : %p%.\n + Bewertung als Szenarien-Autor. Diese Bewertung erhöht sich, sobald Spieler von dir geschaffene Szenarien spielen.\n ] // HASH_VALUE 6DC021DB83F07BB9 // INDEX 6137 -uiR2EDAMRingRatingTooltip [@{6F6F}AM-Bewertung@{FFFF}: Level : %n, Fortschritt : %p%.\n - Bewertung als Abenteuer-Meister. Diese Bewertung erhöht sich sobald Spieler von dir geleitete Szenarien spielen.\n +uiR2EDAMRingRatingTooltip [@{6F6F}AM-Bewertung@{FFFF}: Stufe: %n, Fortschritt : %p%.\n + Bewertung als Abenteuer-Meister. Diese Bewertung erhöht sich, sobald Spieler von dir geleitete Szenarien spielen.\n ] // HASH_VALUE 8444264E77E31EF4 // INDEX 6138 -uiR2EDMasterlessRingRatingTooltip [@{6F6F}Organisationsbewertung @{FFFF}: Level : %n, Fortschritt : %p%.\n - Bewertung als Organisator von ungeleiteten Szenarien. Diese Bewertung erhöht sich sobald Spieler von dir gestartete, ungeleitete Szenarien spielen.\n +uiR2EDMasterlessRingRatingTooltip [@{6F6F}Organisationsbewertung @{FFFF}: Stufe : %n, Fortschritt : %p%.\n + Bewertung als Organisator von ungeleiteten Szenarien. Diese Bewertung erhöht sich, sobald Spieler von dir gestartete ungeleitete Szenarien spielen.\n ] // HASH_VALUE 2FA7448946541072 // INDEX 6139 -uiRingLoadingNotARoSScenario [Du kannst kein Hauptland-Szenario Spielen, solange du in den Ruinen von Silan bist. ] +uiRingLoadingNotARoSScenario [Du kannst kein Hauptland-Szenario Spielen, solange du im Start-Gebiet "Ruinen von Silan" bist.] // HASH_VALUE B4F03AFFA31F6D0B // INDEX 6140 -uiRingNoRatings [Szenario-Punkte sind im Hauptland nicht verfügbar.] +uiRingNoRatings [Szenarien-Punkte sind am Hauptland nicht verfügbar.] // HASH_VALUE 4A01C80AFF1F901B // INDEX 6141 -uiR2EDScenarioScores [DURCHSCHNITTLICHE SZENARIO-PUNKTE] +uiR2EDScenarioScores [DURCHSCHNITTLICHE SZENARIEN-PUNKTE] // HASH_VALUE 84EFDC320541EF05 // INDEX 6142 -uiR2EDMyScenarioScores [MEINE SZENARIO-PUNKTE] +uiR2EDMyScenarioScores [MEINE SZENARIEN-PUNKTE] // HASH_VALUE 6C05A88ADDA13E69 // INDEX 6143 @@ -25940,15 +25930,15 @@ uiNoAvailableMission [Dein Missionsjournal ist leer.] // HASH_VALUE D5EF87890D23D659 // INDEX 6145 -uittExpandMissionList [Klicke hier um zwischen der erweiterten Liste und dem Dropdown-Menü zu wechseln.] +uittExpandMissionList [Klicke hier, um zwischen der erweiterten Liste und dem Dropdown-Menü zu wechseln.] // HASH_VALUE D191FA72CB9FB222 // INDEX 6146 -uittMissionCombo [Dies ist dein Missionsjournal und deine aktuelle Mission. Klicke um zu wählen oder verwende das @{6F6F}Mausrad@{FFFF}, um durch alle verfügbaren Missionen zu scrollen.] +uittMissionCombo [Dies ist dein Missionsjournal mit den aktuellen Missionen. Klicke zum Auswählen oder verwende das @{6F6F}Mausrad@{FFFF}, um durch alle verfügbaren Missionen zu scrollen.] // HASH_VALUE 2EF9BCB21D59A4B4 // INDEX 6147 -uittMissionJournal [Dies ist dein Mission Journal.] +uittMissionJournal [Dies ist dein Missionsjournal.] // HASH_VALUE 59798C4465B3A795 // INDEX 6148 @@ -25968,23 +25958,23 @@ uiFixedMissionEntry_Newbie_R2_Trial [Ruinen von Silan/Free trial/Ring] // HASH_VALUE C8A0CB926A9A2FF4 // INDEX 6152 -uiFixedMissionEntry_Mainland_Fyros [Hauptland / Fyros] +uiFixedMissionEntry_Mainland_Fyros [Hauptland / Wüste] // HASH_VALUE C8A0CB926A39EBFB // INDEX 6153 -uiFixedMissionEntry_Mainland_Matis [Hauptland / Matis] +uiFixedMissionEntry_Mainland_Matis [Hauptland / Wald] // HASH_VALUE 03A287772CF4B30C // INDEX 6154 -uiFixedMissionEntry_Mainland_Tryker [Hauptland / Tryker] +uiFixedMissionEntry_Mainland_Tryker [Hauptland / Seenland] // HASH_VALUE C8A0CB88E7F95708 // INDEX 6155 -uiFixedMissionEntry_Mainland_Zorai [Hauptland / Zoraï] +uiFixedMissionEntry_Mainland_Zorai [Hauptland / Dschungel] // HASH_VALUE 6CD9A79F9BC9BFA7 // INDEX 6156 -uiFixedMissionEntry_R2 [Ryzom ring] +uiFixedMissionEntry_R2 [Ryzom-Ring] // HASH_VALUE 6C7A4A8CE2187A28 // INDEX 6157 @@ -26044,7 +26034,7 @@ uiR2Session_browser [Session-Browser] // HASH_VALUE 2B98E01C8FE8CCAC // INDEX 6171 -uiR2Scenario_control [Szenario-Filter] +uiR2Scenario_control [Szenarien-Filter] // HASH_VALUE EB99488FE0C29FAE // INDEX 6172 @@ -26052,114 +26042,114 @@ uiR2Player_tracking [Spielerverfolgung] // HASH_VALUE 16289C9B5234B491 // INDEX 6173 -uiCCDPalette [Palette-Überschriftenfarbe] +uiCCDPalette [Palette-Überschriftsfarbe] // HASH_VALUE 2899704495792BA6 // INDEX 6174 -uiCCDScenario [Szenario-Überschriftfarbe] +uiCCDScenario [Szenarien-Überschriftfsarbe] // HASH_VALUE 6A35D399204ADCA8 // INDEX 6175 -uiCCDProp_window [Eigenschaften-Überschriftfarbe] +uiCCDProp_window [Eigenschaften-Überschriftsfarbe] // HASH_VALUE EBF7AC7E54B58B6A // INDEX 6176 -uiCCDForm [Arten-Überschriftfarbe] +uiCCDForm [Arten-Überschriftsfarbe] // HASH_VALUE 216A97796E15AFC5 // INDEX 6177 -uiCCDCustom_look [Anpassung der Überschriftenfarben] +uiCCDCustom_look [Anpassung der Überschriftsfarben] // HASH_VALUE D859888A1465A080 // INDEX 6178 -uiCCDDialogs [Dialog-Überschriftfarbe] +uiCCDDialogs [Dialog-Überschriftsfarbe] // HASH_VALUE 9E499B89AE7473BD // INDEX 6179 -uiCCDEvents [Events-Überschriftenfarbe] +uiCCDEvents [Events-Überschriftsfarbe] // HASH_VALUE EC15AB7B5C4AB8B0 // INDEX 6180 -uiCCDActivities [Aktivitäten-Überschriftfarbe] +uiCCDActivities [Aktivitäten-Überschriftsfarbe] // HASH_VALUE 9959D8849499FC6C // INDEX 6181 -uiCCDFeature_help [Feature-Hilfe-Überschriftfarbe] +uiCCDFeature_help [Feature-Hilfe-Überschriftsfarbe] // HASH_VALUE 5839907F9445A875 // INDEX 6182 -uiCCDConnect [Verbindung-Überschriftfarbe] +uiCCDConnect [Verbindung-Überschriftsfarbe] // HASH_VALUE 6E39A48CC446B094 // INDEX 6183 -uiCCDSession_browser [Sessionbrowser-Überschriftfarbe] +uiCCDSession_browser [Session-Browser-Überschriftsfarbe] // HASH_VALUE 6968F8F657E974AB // INDEX 6184 -uiCCDScenario_control [Szenariokontrolle-Überschriftfarbe] +uiCCDScenario_control [Szenario-Kontrolle-Überschriftsfarbe] // HASH_VALUE ED587C995390FC83 // INDEX 6185 -uiCCDPlayer_tracking [Spielerverfolgung Überschriftfarbe] +uiCCDPlayer_tracking [Spielerverfolgung-Überschriftsfarbe] // HASH_VALUE 5779246256A6A3B0 // INDEX 6186 -uittR2_Palette [Wähle Überschriftfarbe für 'Palette'] +uittR2_Palette [Wähle Überschriftsfarbe für 'Palette'] // HASH_VALUE 9599CCAA578657B9 // INDEX 6187 -uittR2_Scenario [Wähle Überschriftfarbe für 'Szenario'] +uittR2_Scenario [Wähle Überschriftsfarbe für 'Szenario'] // HASH_VALUE E0C1B9A41A8667BB // INDEX 6188 -uittR2_Prop_window [Wähle Überschriftfarbe für 'Eigenschaften'] +uittR2_Prop_window [Wähle Überschriftsfarbe für 'Eigenschaften'] // HASH_VALUE D859FC3BCDD19FB8 // INDEX 6189 -uittR2_Form [Wähle Überschriftfarbe für 'Arten'] +uittR2_Form [Wähle Überschriftsfarbe für 'Arten'] // HASH_VALUE 33BC85B520EB4C2E // INDEX 6190 -uittR2_Custom_look [Wähle Überschriftfarbe für 'Bearbeite Aussehen'] +uittR2_Custom_look [Wähle Überschriftsfarbe für 'Bearbeite Aussehen'] // HASH_VALUE 94F9F462D9D58FB7 // INDEX 6191 -uittR2_Dialogs [Wähle Überschriftfarbe für 'Dialoge'] +uittR2_Dialogs [Wähle Überschriftsfarbe für 'Dialoge'] // HASH_VALUE 95CAF83BC696A3B9 // INDEX 6192 -uittR2_Events [Wähle Überschriftfarbe für 'Events'] +uittR2_Events [Wähle Überschriftsfarbe für 'Events'] // HASH_VALUE 22D07DA41AF5ABB4 // INDEX 6193 -uittR2_Activities [Wähle Überschriftfarbe für 'Aktivitäten'] +uittR2_Activities [Wähle Überschriftsfarbe für 'Aktivitäten'] // HASH_VALUE AF0F9D5B5686432F // INDEX 6194 -uittR2_Feature_help [Wähle Überschriftfarbe für 'Feature Hilfe'] +uittR2_Feature_help [Wähle Überschriftsfarbe für 'Feature-Hilfe'] // HASH_VALUE D759F0621A9567B9 // INDEX 6195 -uittR2_Connect [Wähle Überschriftfarbe für 'Verbindung'] +uittR2_Connect [Wähle Überschriftsfarbe für 'Verbindung'] // HASH_VALUE F3E0B98234AB4435 // INDEX 6196 -uittR2_Session_browser [Wähle Überschriftfarbe für 'Session Browser'] +uittR2_Session_browser [Wähle Überschriftsfarbe für 'Session-Browser'] // HASH_VALUE 70CF4C1632AD2827 // INDEX 6197 -uittR2_Scenario_control [Wähle Überschriftfarbe für 'Szenario Kontrolle'] +uittR2_Scenario_control [Wähle Überschriftsfarbe für 'Szenario-Kontrolle'] // HASH_VALUE 6C3FEDB6DE6C0C2F // INDEX 6198 -uittR2_Player_tracking [Wähle Überschriftfarbe für 'Spielerverfolgung'] +uittR2_Player_tracking [Wähle Überschriftsfarbe für 'Spielerverfolgung'] /////////////////////////// // BACKGROUND DOWNLOADER // /////////////////////////// // HASH_VALUE 6CDA3C92EE34229C // INDEX 6199 -uiBGD_RBG [Ryzom Downloader] +uiBGD_RBG [Ryzom-Downloader] // HASH_VALUE 7458841474588414 // INDEX 6200 @@ -26211,7 +26201,7 @@ uiBGD_PatchError [Fehler beim Patchen. Bitte prüfe deine Systemeinstellungen un // HASH_VALUE 1EF6CD9CD14C00BD // INDEX 6212 -uiBGD_ProtocolError [Spiel/Downloader Kommunikationsfehler. Bitte starte Ryzom erneut oder benutze den Ryzom Downloader, um die Installation zu reparieren.] +uiBGD_ProtocolError [Spiel - Downloader Kommunikationsfehler. Bitte starte Ryzom erneut oder benutze den Ryzom-Downloader, um die Installation zu reparieren.] // HASH_VALUE 26A8FD55064E9186 // INDEX 6213 @@ -26243,7 +26233,7 @@ uiBGD_FullPatchNeeded [Dieses Feature kann erst verwendet werden, nachdem alle P // HASH_VALUE A01CE7B6A9D03D43 // INDEX 6220 -uiBGD_MainlandCharFullPatchNeeded [Die Position, auf der sich dieser Charakter befindet kann erst betreten werden, wenn der Client komplett gepatcht wurde. Der Fortschritt des Patches wird in der Fortschrittsleiste angezeigt.] +uiBGD_MainlandCharFullPatchNeeded [Die Position, auf der sich dieser Charakter befindet, kann erst betreten werden, wenn der Client komplett gepatcht wurde. Der Fortschritt des Patches wird in der Fortschrittsleiste angezeigt.] // HASH_VALUE 2B27D4766A97FC8C // INDEX 6221 @@ -26263,7 +26253,7 @@ uiBGD_NormalPriority [Normale Priorität] // HASH_VALUE BD4D3CF8E95C917A // INDEX 6225 -uiBGD_PriorityTooltip [Wähle eine Priorität für den Ryzom-Downloader. Auf einem schnellen Rechner ist @{6F6F}Normal@{FFFF} die richtige Einstellung. Wird dein Computer langsam während des Patches wähle @{6F6F}Niedrig@{FFFF} oder @{6F6F}Pause@{FFFF}.] +uiBGD_PriorityTooltip [Wähle eine Priorität für den Ryzom-Downloader. Auf einem schnellen Rechner ist @{6F6F}"normal"@{FFFF} die beste Einstellung. Wird dein Computer während des Patches langsam, wähle @{6F6F}"niedrig"@{FFFF} oder @{6F6F}"Pause"@{FFFF}.] // HASH_VALUE 201CF438645834D4 // INDEX 6226 @@ -26271,7 +26261,7 @@ uiBGD_NotUsed [Nicht verwendet] // HASH_VALUE F40D1B4F626F4271 // INDEX 6227 -uiBGD_ShutdownFailed [Fehler beim Beenden des Ryzom-Downloaders, vermutlich musst du deinen Rechner rebooten, um das Problem zu lösen.] +uiBGD_ShutdownFailed [Fehler beim Beenden des Ryzom-Downloaders. Vermutlich musst du deinen Computer neustarten, um das Problem zu lösen.] // HASH_VALUE B703221C05EDDEEE // INDEX 6228 @@ -26279,7 +26269,7 @@ uiBGD_InGamePatchIncomplete [Um Zugang zum Atys-Hauptland oder zum Ryzom Ring zu // HASH_VALUE 40DA4DB418F59CA7 // INDEX 6229 -uiBGD_InGamePatchIncompleteBC [Bitte warte bis der Patch abgeschlossen ist] +uiBGD_InGamePatchIncompleteBC [Bitte warte, bis der Patch abgeschlossen ist] // HASH_VALUE 0269C693E713F9B0 // INDEX 6230 @@ -26295,7 +26285,7 @@ uiCP_KeysetName_bi_wow_alike [Anderes 1] // HASH_VALUE 9181AE4143F379CE // INDEX 6233 -uiCP_KeysetTooltip_bi_wow_alike [Wenn Du bereits an andere MMO-Tastenbelegungen gewöhnt bist, erleichtert diese Einstellung den Umstieg. Funktioniert nicht im Ryzom Ring.] +uiCP_KeysetTooltip_bi_wow_alike [Wenn Du bereits an andere MMO-Tastenbelegungen gewöhnt bist, erleichtert diese Einstellung den Umstieg. Dies funktioniert allerdings nicht im Ryzom Ring.] // HASH_VALUE 2957F04D21D5A0AF // INDEX 6234 @@ -26323,7 +26313,7 @@ uiBGD_BackgroundPatchStarting [Ryzom-Patch wurde im Hintergrund gestartet] // HASH_VALUE B79B42F4214FCE38 // INDEX 6240 -uiBGD_Welcome [Ryzom wird nun auf deinem Rechner installiert. Mit diesem Vorgang können ebenfalls beschädigte Installationen repariert werden.\n +uiBGD_Welcome [Ryzom wird nun auf deinem Computer installiert. Mit diesem Vorgang können ebenfalls beschädigte Installationen repariert werden.\n ] // HASH_VALUE AE38D87E9D59F061 @@ -26340,7 +26330,7 @@ uiBGD_NextStep [weiter >] // HASH_VALUE 7458841474588414 // INDEX 6244 -uiBGD_Quit [beenden] +uiBGD_Quit [Beenden] // HASH_VALUE F686610840B57FC7 // INDEX 6245 @@ -26348,7 +26338,7 @@ uiBGD_ChoosePackage [Bitte wähle die gewünschte Installation: ] // HASH_VALUE F1F783BFC21EFB8D // INDEX 6246 -uiBGD_MinimalInstall [Minimale Installation. Nur die für das Spielen des Free-Trial-Angebots notwendigen Dateien werden installiert.] +uiBGD_MinimalInstall [Minimale Installation. Nur die für das Spielen des kostenlosen Test-Angebotes notwendigen Dateien werden installiert.] // HASH_VALUE 2522249A66C6EC1A // INDEX 6247 @@ -26369,7 +26359,7 @@ uiBGD_InstallCongrat [Glückwunsch! ] // HASH_VALUE 0E8DA8E1AB261FD5 // INDEX 6251 uiBGD_CongratSuccessfullInstall [Ryzom wurde installiert.\n - Viel Spass auf Atys!\n + Viel Spaß auf Atys!\n ] // HASH_VALUE 5C15C8B0ED686371 @@ -26382,11 +26372,11 @@ uiBGD_Help [Hilfe] // HASH_VALUE 2867906D28E58C9A // INDEX 6254 -uiBGD_FinishInstall [beenden] +uiBGD_FinishInstall [Beenden] // HASH_VALUE 719D107BFC098D19 // INDEX 6255 -uiBGD_ResumeDownloadInfo [Anmerkung: Die Installation kann jederzeit durch klicken des Icons auf dem Desktop fortgesetzt werden.] +uiBGD_ResumeDownloadInfo [Anmerkung: Die Installation kann jederzeit durch Anklicken des Icons auf dem Desktop fortgesetzt werden.] // HASH_VALUE 13F3EFA1EB9ABB9E // INDEX 6256 @@ -26401,7 +26391,7 @@ uiBGD_Package [Bitte wähle eine der folgenden Optionen\n // HASH_VALUE 15040737D9339F6C // INDEX 6258 -uiBGD_TaskTypeDownload [1. Download] +uiBGD_TaskTypeDownload [1. Herunterladen] // HASH_VALUE 5032BB8011525B2C // INDEX 6259 @@ -26438,17 +26428,17 @@ uiAllocating [Berechne] // HASH_VALUE BE3ECA6D0B5B0535 // INDEX 6267 uiCanNotDownload [Fehler beim Laden einer Ryzom-Installationsdatei.\n - Bitte prüfe deinen verfügbaren Speicherplatz und deine Internetverbindung. ] + Bitte überprüfe deinen verfügbaren Speicherplatz und deine Internetverbindung.] // HASH_VALUE AF6AD90EBA37C7F9 // INDEX 6268 uiCanNotInstall [Fehler beim Installieren einer Ryzom-Installationsdatei.\n - Bitte prüfe deinen verfügbaren Speicherplatz.] + Bitte überprüfe deinen verfügbaren Speicherplatz.] //Size needed label (not displayed anymore) // HASH_VALUE 59C92C3AC811D222 // INDEX 6269 -uiBGD_CategoryDownload [Downloaden (1/2)] +uiBGD_CategoryDownload [Herunterladen (1/2)] // HASH_VALUE 4E72AC6E48D2DA26 // INDEX 6270 @@ -26456,15 +26446,15 @@ uiBGD_CategoryInstall [Installiere (2/2)] // HASH_VALUE 32B8685B66C794BE // INDEX 6271 -uiBGD_Restarting [Das Programm wird neu gestartet.] +uiBGD_Restarting [Das Programm wird neugestartet.] // HASH_VALUE 1799D444A927A0A4 // INDEX 6272 -uiBGD_LoadTorrent [Laden der Hash Informationen.] +uiBGD_LoadTorrent [Laden der Hash-Informationen.] // HASH_VALUE 25F99677D776BCAB // INDEX 6273 -uiBGD_LoadPackageList [Lade die Liste der verfügbaren Pakete.] +uiBGD_LoadPackageList [Laden der Liste der verfügbaren Pakete.] // HASH_VALUE CEDA746E70B24C80 // INDEX 6274 @@ -26484,7 +26474,7 @@ uiBGD_ScanData [Überprüfe die Integrität] // HASH_VALUE E1F9B493AAD6C8AA // INDEX 6278 -uiBGD_Patch [Downloaden] +uiBGD_Patch [Herunterladen] // HASH_VALUE A2172B8652863387 // INDEX 6279 @@ -26502,7 +26492,7 @@ uiBGD_LoadVersionError [Fehler beim Laden der Versionsinformationen. Bitte prüf // HASH_VALUE A989B04F04A80065 // INDEX 6282 -uiBGD_LoadVersionInfo [Lade Versionsinfos] +uiBGD_LoadVersionInfo [Lade Versionsinfo] // HASH_VALUE E949573D6633C4C3 // INDEX 6283 @@ -26546,7 +26536,7 @@ uiBGD_RateFormat [ bei {0}/s] // HASH_VALUE 2668285196A98094 // INDEX 6293 -uiSelectPackage [Packetauswahl] +uiSelectPackage [Paketauswahl] // HASH_VALUE 2A891B7B6DD405B6 // INDEX 6294 @@ -26554,7 +26544,7 @@ uiBGD_RyzomUpdateRepair [Ryzom installieren oder reparieren] // HASH_VALUE F56A4FAD57DE9EDF // INDEX 6295 -uiBGD_ContentStartProcessFullVersion [Du hast Dich entschieden, nur die unbedingt notwendigen Dateien zu laden. Die restlichen Dateien werden während du spielst geladen und installiert.] +uiBGD_ContentStartProcessFullVersion [Du hast dich entschieden, nur die unbedingt notwendigen Dateien zu laden. Die restlichen Dateien werden geladen und installiert, während du spielst.] // HASH_VALUE 63BA402BD4CCCA58 // INDEX 6296 @@ -26563,17 +26553,17 @@ uiBGD_ContentStartProcessInstall [Du stehst kurz davor, Ryzom herunterzuladen.\n // HASH_VALUE 0716CC8CFA483488 // INDEX 6297 -uiBGD_ContentStartProcessRepair [Du stehst kurz davor, Ryzom zu updaten.\n - Dieser Vorgang wird ebenfalls fehlende oder beschädigte Dateien ersetzen.\n +uiBGD_ContentStartProcessRepair [Du stehst kurz davor, Ryzom zu aktualisieren.\n + Dieser Vorgang wird gleichzeitig fehlende oder beschädigte Dateien ersetzen.\n Nach dem Update werden alle Konfigurationseinstellungen auf die Standardwerte zurückgesetzt.] // HASH_VALUE ADA2E41D709F5795 // INDEX 6298 -uiBGD_ContentStartProcessTorrent ['Torrent-Download' verwendet das BitTorrent-Protokoll, um Dateien gleichzeitig von mehreren Server zu laden. Solltest du Probleme beim Download haben, deaktiviere diese Funktion.] +uiBGD_ContentStartProcessTorrent ['Torrent-Download' verwendet das BitTorrent-Protokoll, um Dateien gleichzeitig von mehreren Server zu laden. Solltest du Probleme beim Herunterladen haben, deaktiviere diese Funktion.] // HASH_VALUE A8B4ECB24E75F05B // INDEX 6299 -uiBGD_TitleStartProcessInstall [Willkommen beim Ryzom-Installationsprogram] +uiBGD_TitleStartProcessInstall [Willkommen beim Ryzom-Installationsprogramm.] // HASH_VALUE AA39CC7F2309DCB0 // INDEX 6300 @@ -26585,11 +26575,11 @@ uiBGD_ContentInstallSuccess [Ryzom wurde erfolgreich installiert.] // HASH_VALUE 9E1F03D60DC3E49B // INDEX 6302 -uiBGD_QuitInstallContent [Willst Du das Installationsprogramm wirklich abbrechen?] +uiBGD_QuitInstallContent [Willst du das Installationsprogramm wirklich abbrechen?] // HASH_VALUE 78E7ED45ECD4B47D // INDEX 6303 -uiBGD_QuitInstallRestart [Um die Installation fortzusetzen, klicke auf das Ryzom-Icon auf Deinem Desktop.] +uiBGD_QuitInstallRestart [Um die Installation fortzusetzen, klicke auf das Ryzom-Icon auf deinem Desktop.] // HASH_VALUE A349BB7928F5E76D // INDEX 6304 @@ -26597,7 +26587,7 @@ uiBGD_QuitInstallTitle [Abbrechen?] // HASH_VALUE 0CCB8A3B129779C5 // INDEX 6305 -uiBGD_ErrorSupportFormat [FAQ für bekannte Probleme bei der Ryzom Installation: {0}] +uiBGD_ErrorSupportFormat [FAQs fürs Lösen bekannter Probleme bei der Ryzom-Installation: {0}] // HASH_VALUE E38B768D810F532E // INDEX 6306 @@ -26621,26 +26611,27 @@ uiUnsupportedColorDepth [Die aktuelle Farbtiefe wird von Ryzom nicht unterstütz // HASH_VALUE 839DB655EBC9E640 // INDEX 6311 -uiUnsupportedNewColorDepth [Die neu gewählte Farbtiefe wird von Ryzom nicht unterstützt. Bitte starte Ryzom im 16-Millionen-Farben-Modus.] +uiUnsupportedNewColorDepth [Die neugewählte Farbtiefe wird von Ryzom nicht unterstützt. Bitte starte Ryzom im 16-Millionen-Farben-Modus.] // HASH_VALUE D51ACCF3858BA4D0 // INDEX 6312 -uiDeathWarningTitle [Ohnmacht und Tod] +uiDeathWarningTitle [Koma und Tod] // HASH_VALUE 38DAD4E07D7667A5 // INDEX 6313 -uiDeathWarningContent [Du bist ohnmächtig.\n +uiDeathWarningContent [Dein Charakter liegt im Koma.\n \n - Der Timer zeigt Dir, wie Deine Lebensenergie weicht. Wenn sie einen kritischen Punkt erreicht hat wirst Du durch die Gottheiten von Atys an dem auf der Karte hervorgehobenen Ort wiederbelebt.\n - Du kannst entweder von anderen Spielern geheilt werden, um die mit dem Sterben verbundenen Strafpunkte zu vermeiden, oder Du klickst auf 'Wiederbeleben', um sofort durch die Gottheiten wiederbelebt zu werden.] + Der Timer zeigt dir, wie die Lebensenergie sinkt. Wenn der Timer abgelaufen ist, wird dein Charakter du durch die Mächte von Atys an dem auf der Karte ausgewählten Ort wiederbelebt.\n + Du kannst auch auf 'Wiederbeleben', klicken, um sofort durch die Mächte wiederbelebt zu werden. Dadurch erhältst du aber eine Sterbe-Erfahrungsstrafe, die durch die folgenden Aktionen "abgearbeitet" wird. Solange gewinnst du dann keine Erfahrung in den Fertigkeiten.\n + Um diese Sterbe-Erfahrungsstrafe zu vermeiden, kann dein Charakter während des Timers noch von anderen Spielern geheilt werden.] // HASH_VALUE A752DDE8C09704A2 // INDEX 6314 -uiDeathWarningAvoid [Zeige diese Nachricht nicht mehr an.] +uiDeathWarningAvoid [Zeig diese Nachricht nicht mehr an.] // HASH_VALUE D963345468890479 // INDEX 6315 -uiScreenShotPNG [Screenshot PNG] +uiScreenShotPNG [Bildschirmfoto in PNG] // HASH_VALUE C7272835423B4BEB // INDEX 6316 @@ -26652,7 +26643,7 @@ uiQDeleteMacro [Willst du dieses Makro wirklich löschen?] // HASH_VALUE 9E11A88A1CA2FAAC // INDEX 6318 -uiQResetUI [Möchtest du das UI wirklich zurücksetzen?] +uiQResetUI [Möchtest du die Oberfläche wirklich zurücksetzen?] // HASH_VALUE EC18EC7026582CA0 // INDEX 6319 @@ -26666,7 +26657,7 @@ uiNightWarningTitle [Die Nacht] // INDEX 6321 uiNightWarningContent [Es wird Nacht auf Atys.\n \n - Du kannst Deine Umgebung beleuchten, indem Du 'L' (Standardbelegung) auf Deiner Tastatur drückst.\n + Du kannst deine Umgebung beleuchten, indem du 'L' (Standardbelegung) auf deiner Tastatur drückst.\n ] // HASH_VALUE D666185AA1B41885 @@ -26695,7 +26686,9 @@ uittConsiderTargetNoSelection [Kein Ziel ausgewählt] // HASH_VALUE 650D15C4888305BE // INDEX 6328 -uittConsiderTargetLevel [@{6F6F}Level@{FFFF} des ausgewählten Ziels] +uittConsiderTargetLevel [@{6F6F}Stufe@{FFFF} des ausgewählten Ziels\n + Die @{FFFE}Farbe des Kreises@{FFFF} zeigt die Stufe der Region an. Rechtsklick und Klick auf 'Hilfe' erklärt dazu Genaueres. @{FFFE}Ein schwarzer Stern@{FFFF} warnt vor einer starken 'Named'-Kreatur, @{FFFE}zwei schwarze@{FFFF} Sterne warnen vor einer noch stärkeren 'Boss'-Kreatur.\n + Die @{FFFE}Stufe des Ziels@{FFFF} ist nur bis zu 10 Stufen über deiner Stufe erkennbar, aber je 10 Stufen mehr für jeden Spieler in deinem Team. Die höchsten @{FFFE}Kampfstufen von Spielern@{FFFF} werden nur sichtbar, wenn du und diese Spieler im PvP-Modus sind.] // HASH_VALUE 0AB7FA32A8511BE3 // INDEX 6329 @@ -26711,18 +26704,17 @@ uittConsiderNamedOrMiniBoss [Diese Kreatur ist eine @{6F6F}Teamherausforderung@{ // HASH_VALUE 359EDEECC69B0BB1 // INDEX 6332 -uittConsiderUnknownLevel [Der Level des Zielt ist @{F00F}zu hoch@{FFFF} im Vergleich zu Deinem Level.\n - \n - @{888F}Anmerkung: Du kannst den genauen Level Deines Ziels bis zu 10 Level über Deinem eigenen sehen. Du erhältst einen Bonus von 10 Leveln für jeden Spieler in Deinem Team.] +uittConsiderUnknownLevel [uneinschätzbar: die Stufe des Ziels ist @{F00F}zu hoch@{FFFF} im Vergleich zu deiner Stufe.\n + @{888F}Du kannst die genaue Stufe deines Ziels nur bis zu 10 Stufen über deiner eigenen erkennen. Dazu kommt ein Bonus von 10 Stufen für jeden Spieler in deinem Team.] // HASH_VALUE A7189BEC5B76E245 // INDEX 6333 -uittConsiderBothPVPToSeeLevel [@{6F6F}Tipp:@{FFFF} Du und Dein Ziel müssen sich im PVP-Modus befinden, damit Du den Level Deines Gegners sehen kannst.] +uittConsiderBothPVPToSeeLevel [@{6F6F}Tip:@{FFFF} du und dein Ziel müssen sich beide im PvP-Modus befinden, damit du die Stufe deines Gegners erkennen kannst.] // tooltip for the tab in the trainer window // HASH_VALUE 2ED574482B685C4E // INDEX 6334 -uittTabBuyAll [Zeige alle verfügbaren Steigerungen an.] +uittTabBuyAll [Zeig alle verfügbaren Steigerungen an.] // HASH_VALUE 4E5A9F97A623DCA8 // INDEX 6335 @@ -26730,7 +26722,7 @@ uittTabBuyAction [Neue Aktionen] // HASH_VALUE 567AE84B92E694AA // INDEX 6336 -uittTabBuyUpgrade [Steigerungen deiner Fähigkeiten] +uittTabBuyUpgrade [Verbesserungen deiner Fertigkeiten] // HASH_VALUE E9C76744D94A6366 // INDEX 6337 @@ -26738,7 +26730,7 @@ uittTabBuyPower [Lerne neue Kräfte und Auren] // HASH_VALUE F298C84F29398785 // INDEX 6338 -uittTabBuyCarac [Steigere Deine Werte] +uittTabBuyCarac [Erhöhe deine Grundwerte] // spell cast time (displayed in the tooltip of actions) // HASH_VALUE 57D08F660BB56E6F @@ -26783,11 +26775,11 @@ uittSuccessRate [Erfolgsrate: @{6F6F}] // HASH_VALUE FA111C562D322699 // INDEX 6348 -uittRegenTime [Regen.-Zeit : @{6F6F}] +uittRegenTime [Regenerations-Zeit : @{6F6F}] // HASH_VALUE 5FA7D8A4CB502E07 // INDEX 6349 -uittDisableTime [Wiederh.-Zeit : @{FFFF}] +uittDisableTime [Wiederholungs-Zeit : @{FFFF}] // HASH_VALUE 91D82F4921A4338B // INDEX 6350 @@ -26887,7 +26879,7 @@ uiShowTimesInChatCB [Zeige Zeitstempel im Chat] // HASH_VALUE 3D0B2453397DF2BC // INDEX 6374 -uittShowTimesInChat [Wenn angewählt, wird die aktuelle Zeit vor allen Chatnachrichten angezeigt.] +uittShowTimesInChat [Wenn aktiviert, wird die jeweilige Zeit vor allen Chatnachrichten angezeigt.] // HASH_VALUE 41634A5914865F53 // INDEX 6375 @@ -26900,7 +26892,7 @@ uiShowClock [Zeige die Uhr im Kompass an] // HASH_VALUE E80563EA6265AD11 // INDEX 6377 -uittShowClock [Wenn angewählt, wird die aktuelle Zeit im Kompass angewählt.] +uittShowClock [Wenn aktiviertt, wird die System-Zeit des Computers im Kompass angezeigt.] // HASH_VALUE 5B008CB3BFE212C7 // INDEX 6378 @@ -26912,7 +26904,7 @@ uiShow3dItemPreview [Zeige eine 3D-Item-Vorschau] // HASH_VALUE 2740E55A1C979355 // INDEX 6380 -uittShow3dItemPreview [Wenn angewählt, wird eine 3D-Vorschau des betrachteten Gegenstandes angezeigt.] +uittShow3dItemPreview [Wenn aktiviert, wird eine 3D-Ansicht oder Vorschau des mit "Info" betrachteten Gegenstandes angezeigt.] // HASH_VALUE C2BAF45AC14F102F // INDEX 6381 @@ -26920,7 +26912,7 @@ uiShowDynChannelNameInChatCB [Zeige die Namen der dynamischen Chats im Chat an.] // HASH_VALUE 68467226378FE4E8 // INDEX 6382 -uittShowDynChannelNameInChat [Wenn aktiviert, wird der Name des dynamischen Chat-Kanals vor einer Mitteilung angezeigt, sofern dieser im Tab "Benutzer" angezeigt wird.] +uittShowDynChannelNameInChat [Wenn aktiviert, wird der Name des dynamischen Chat-Kanals vor einer Mitteilung angezeigt, sofern dieser Kanal für den Tab "User" aktiviert wurde.] // HASH_VALUE 92BA6C7192D6743F // INDEX 6383 @@ -26928,7 +26920,7 @@ uiShowReticle [Zeige Zielmarkierung] // HASH_VALUE DEF8FF70C06E611F // INDEX 6384 -uittShowReticle [Wenn angewählt, wird eine Zielmarkierung beim Mouseover und einer Zielauswahl angezeigt.] +uittShowReticle [Wenn angewählt, wird eine Zielmarkierung bei Mouse-Over und einer Zielauswahl angezeigt.] // HASH_VALUE 200EB441EC195B51 // INDEX 6385 @@ -26940,12 +26932,12 @@ uittContactInfo [Öffne das Profil] // HASH_VALUE EBD6449961176891 // INDEX 6387 -uiPlayerInfos [Infos] +uiPlayerInfos [Info] // need be a short word // HASH_VALUE 125A567C47B698C6 // INDEX 6388 -youTellPlayer [Du flüsterst/tellst %name] +youTellPlayer [Du flüsterst/tellst %name an] // HASH_VALUE 5FC44FA59BD42F78 // INDEX 6389 @@ -26953,7 +26945,7 @@ uimwHands2 [Aktionsleiste 2] // HASH_VALUE B374A35AB0FA28BF // INDEX 6390 -uiRunShortcut2 [Führe Tastaturkürzel aus #2] +uiRunShortcut2 [Führe Schnelltaste aus #2] // HASH_VALUE D7506FD19A326FD0 // INDEX 6391 @@ -26988,7 +26980,7 @@ uittShowOnlineOfflineNotifications [Zeige eine Benachrichtigung, wenn Gildenmitg /* OLD VALUE : [&ISE&%s has come online.] */ // HASH_VALUE C5878CD4F49A9E18 // INDEX 6398 -uiPlayerOnline [&ISE&%s ist online gegangen.] +uiPlayerOnline [&ISE&%s ist online gekommen.] /* OLD VALUE : [&ISE&%s has gone offline.] */ // HASH_VALUE C666FFDC96558E3E @@ -27133,11 +27125,11 @@ uiKeySEMICOLON [SEMIKOLON] // HASH_VALUE 409424485450B40C // INDEX 6434 -uiKeyRBRACKET [RBRACKET] +uiKeyRBRACKET [RKLAMMER] // HASH_VALUE 409424305450B40C // INDEX 6435 -uiKeyLBRACKET [LBRACKET] +uiKeyLBRACKET [LKLAMMER] // HASH_VALUE C8C2DC2BCCC1E432 // INDEX 6436 @@ -27181,7 +27173,8 @@ uiOrganizationStatus [Rang:] // HASH_VALUE 67A9E49D2609E451 // INDEX 6446 -uittOrganization [Organisations-Tooltip] +uittOrganization [Du kannst einer @{6F6F}Organization@{FFFF} beitreten und durch das Absolvieren einer Rite die Vorteile dafür erlangen, dieser Organisation anzugehören.\n + Du musst zuerst die erforderlichen Ruhm-Voraussetzungen erfüllen, bevor du diese Rite ablegen kannst. Der Weise oder ein vergleichbarer Wissen-Hüter der Organisation kann dir mehr Informationen darüber geben] // HASH_VALUE 65C71C3EEC5A0FC8 // INDEX 6447 @@ -27193,7 +27186,7 @@ uittRpTags [Zeige alle Fraktions-Zeichen über dem Charakter] // HASH_VALUE 68DC145070582480 // INDEX 6449 -uimwTaskBar [Taskleiste] +uimwTaskBar [Web-Taskleiste] // HASH_VALUE 20D0043864581438 // INDEX 6450 @@ -27221,7 +27214,7 @@ uittChooseLMFiberColor [Farbe für 'Faser'-Landmarke auswählen] // HASH_VALUE 9B4A6C691004BB09 // INDEX 6456 -uiSelectShortcutBar2 [Wähle Tastaturkürzelbalken #2] +uiSelectShortcutBar2 [Wähle Tastaturkürzelbalken 2] // HASH_VALUE 5854C7639701383B // INDEX 6457 @@ -27277,7 +27270,7 @@ uiLodValue [STANDARD] // HASH_VALUE 6878DC2CC23A6CB6 // INDEX 6470 -uiDebugProfileFillRate [Profil Füllrate] +uiDebugProfileFillRate [Profil-Füllrate] // HASH_VALUE 0F54678C93B4CBF6 // INDEX 6471 diff --git a/code/ryzom/tools/translation/translated/sbrick_words_de.txt b/code/ryzom/tools/translation/translated/sbrick_words_de.txt index 5db0d734a959bd63f51811aebdc17e55fb0b73f2..1b3a4cf504d65ac1210af737b681f0c59dd7bf9a 100644 GIT binary patch delta 14041 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 delta 11846 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 From 6b399be0f636bc739015b4e0cbe07239025db9ee Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 16:57:34 +0100 Subject: [PATCH 084/184] Changed: Minor changes --- code/nel/src/misc/system_utils.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/nel/src/misc/system_utils.cpp b/code/nel/src/misc/system_utils.cpp index 4b59817e0..de23db001 100644 --- a/code/nel/src/misc/system_utils.cpp +++ b/code/nel/src/misc/system_utils.cpp @@ -231,11 +231,11 @@ bool CSystemUtils::supportUnicode() { init = true; #ifdef NL_OS_WINDOWS - OSVERSIONINFO osvi; + OSVERSIONINFOA osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); // get Windows version - if (GetVersionEx(&osvi)) + if (GetVersionExA(&osvi)) { if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { @@ -347,7 +347,7 @@ bool CSystemUtils::setRegKey(const string &ValueName, const string &Value) HKEY hkey; DWORD dwDisp; - if (RegCreateKeyExW(HKEY_CURRENT_USER, utf8ToWide(RootKey), 0, L"", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisp) == ERROR_SUCCESS) + if (RegCreateKeyExW(HKEY_CURRENT_USER, utf8ToWide(RootKey), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisp) == ERROR_SUCCESS) { ucstring utf16Value = ucstring::makeFromUtf8(Value); From c70095d428042c63966576bcf16b1be3c13e03f8 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 16:58:07 +0100 Subject: [PATCH 085/184] Fixed: Use full path for client_default.cfg --- code/ryzom/client/src/client_cfg.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index 32b345294..e59dd6886 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -2222,9 +2222,11 @@ bool CClientConfig::getDefaultConfigLocation(std::string& p_name) const defaultConfigPath = Args.getProgramPath(); #endif + std::string currentPath = CPath::standardizePath(CPath::getCurrentPath()); + // look in the current working directory first - if (CFile::isExists(defaultConfigFileName)) - p_name = defaultConfigFileName; + if (CFile::isExists(currentPath + defaultConfigFileName)) + p_name = currentPath + defaultConfigFileName; // look in startup directory else if (CFile::isExists(Args.getStartupPath() + defaultConfigFileName)) From d3f031f3ee3b2b5ec13fef9186e662c5a16d8298 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 16:58:57 +0100 Subject: [PATCH 086/184] Fixed: Don't append empty login, password or shard ID to batch --- code/ryzom/client/src/login_patch.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 35dc39496..0d0209427 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1029,12 +1029,20 @@ void CPatchManager::executeBatchFile() arguments += "\"" + RyzomFilename + "\" \"" + ClientPatchPath + "\" " + ClientRootPath + "\""; #endif - // append login and password - arguments += " " + LoginLogin + " " + LoginPassword; - - if (!r2Mode) + // append login, password and shard + if (!LoginLogin.empty()) { - arguments += " " + toString(LoginShardId); + arguments += " " + LoginLogin; + + if (!LoginPassword.empty()) + { + arguments += " " + LoginPassword; + + if (!r2Mode) + { + arguments += " " + toString(LoginShardId); + } + } } if (!launchProgram(batchFilename, arguments, false)) From fd06b974d577155f644cdeb7e6c36af5c4a8d201 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 17:03:40 +0100 Subject: [PATCH 087/184] Fixed: Implement alternate login system with LoginCustomParameters --- code/ryzom/client/src/far_tp.cpp | 47 +++++++++-- code/ryzom/client/src/far_tp.h | 5 ++ code/ryzom/client/src/login.cpp | 135 ++++++++++++++++++++++--------- 3 files changed, 144 insertions(+), 43 deletions(-) diff --git a/code/ryzom/client/src/far_tp.cpp b/code/ryzom/client/src/far_tp.cpp index a7a41c628..bd313b830 100644 --- a/code/ryzom/client/src/far_tp.cpp +++ b/code/ryzom/client/src/far_tp.cpp @@ -189,7 +189,7 @@ const std::string& CLoginStateMachine::toString(CLoginStateMachine::TEvent event break; \ } \ -extern std::string LoginLogin, LoginPassword; +extern std::string LoginLogin, LoginPassword, LoginCustomParameters; extern bool noUserChar; extern bool userChar; extern bool serverReceivedReady; @@ -248,12 +248,24 @@ void CLoginStateMachine::run() { if (LoginLogin.empty()) { - // standard procedure - SM_BEGIN_EVENT_TABLE - SM_EVENT(ev_init_done, st_login); - SM_EVENT(ev_skip_all_login, st_ingame); - SM_EVENT(ev_quit, st_end); - SM_END_EVENT_TABLE + if (LoginCustomParameters.empty()) + { + // standard procedure + SM_BEGIN_EVENT_TABLE + SM_EVENT(ev_init_done, st_login); + SM_EVENT(ev_skip_all_login, st_ingame); + SM_EVENT(ev_quit, st_end); + SM_END_EVENT_TABLE + } + else + { + // alternate login procedure + SM_BEGIN_EVENT_TABLE + SM_EVENT(ev_init_done, st_alt_login); + SM_EVENT(ev_skip_all_login, st_ingame); + SM_EVENT(ev_quit, st_end); + SM_END_EVENT_TABLE + } } else { @@ -325,6 +337,27 @@ void CLoginStateMachine::run() // SM_EVENT(ev_login_ok, st_check_patch); // SM_EVENT(ev_quit, st_end); // SM_END_EVENT_TABLE +// } + break; + case st_alt_login: + initAltLogin(); + +// if (ClientCfg.R2Mode) + { + // r2 mode + SM_BEGIN_EVENT_TABLE + SM_EVENT(ev_login_not_alt, st_login); + SM_EVENT(ev_login_ok, st_check_patch); + SM_EVENT(ev_quit, st_end); + SM_END_EVENT_TABLE + } +// else +// { +// // legacy mode +// SM_BEGIN_EVENT_TABLE +// SM_EVENT(ev_login_ok, st_check_patch); +// SM_EVENT(ev_quit, st_end); +// SM_END_EVENT_TABLE // } break; case st_shard_list: diff --git a/code/ryzom/client/src/far_tp.h b/code/ryzom/client/src/far_tp.h index cec696ba3..a4c8f77b4 100644 --- a/code/ryzom/client/src/far_tp.h +++ b/code/ryzom/client/src/far_tp.h @@ -81,6 +81,8 @@ public: st_rate_session, /// create account st_create_account, + /// try to login with alternate login system + st_alt_login, /// pseudo state to leave the state machine st_end, /// @@ -156,6 +158,8 @@ public: ev_create_account, /// the client push the 'create account' button ev_close_create_account, + /// the client want to use alternate login system + ev_login_not_alt, /// ev_unknown }; @@ -203,6 +207,7 @@ void initEula(); void initPatchCheck(); void initCatDisplay(); void initAutoLogin(); +void initAltLogin(); void initPatch(); //void initWebBrowser(); void initReboot(); diff --git a/code/ryzom/client/src/login.cpp b/code/ryzom/client/src/login.cpp index 80e184efe..109f9417e 100644 --- a/code/ryzom/client/src/login.cpp +++ b/code/ryzom/client/src/login.cpp @@ -842,6 +842,55 @@ void initAutoLogin() } } +void initAltLogin() +{ + // Check the alt param + if (!LoginCustomParameters.empty()) + { + // don't use login and password for alternate login + string res = checkLogin("", "", ClientApp, LoginCustomParameters); + if (res.empty()) + { + if (ClientCfg.R2Mode) + { + LoginSM.pushEvent(CLoginStateMachine::ev_login_ok); + } + else + { + // Select good shard + ShardSelected = -1; + for (uint32 i = 0; i < Shards.size(); ++i) + { + if (Shards[i].ShardId == LoginShardId) + { + ShardSelected = i; + break; + } + } + + if (ShardSelected == -1) + { + CInterfaceManager *pIM = CInterfaceManager::getInstance(); + pIM->messageBoxWithHelp(CI18N::get("uiErrServerLost"), "ui:login"); + LoginSM.pushEvent(CLoginStateMachine::ev_quit); + } + else + { + LoginSM.pushEvent(CLoginStateMachine::ev_login_ok); + } + } + + return; + } + } + + // close the socket in case of error + HttpClient.disconnect(); + + // ignore error + LoginSM.pushEvent(CLoginStateMachine::ev_login_not_alt); +} + // *************************************************************************** // Called from client.cpp @@ -2732,49 +2781,63 @@ string checkLogin(const string &login, const string &password, const string &cli string res; - // ask server for salt - if(!HttpClient.sendGet(ClientCfg.ConfigFile.getVar("StartupPage").asString()+"?cmd=ask&login="+login+"&lg="+ClientCfg.LanguageCode, "", pPM->isVerboseLog())) - return "Can't send (error code 60)"; - - if(pPM->isVerboseLog()) nlinfo("Sent request for password salt"); - - if(!HttpClient.receive(res, pPM->isVerboseLog())) - return "Can't receive (error code 61)"; - - if(pPM->isVerboseLog()) nlinfo("Received request login check"); - - if(res.empty()) - return "Empty answer from server (error code 62)"; - - if(res[0] == '0') + // don't use login with alt method + if (!login.empty()) { - // server returns an error - nlwarning("server error: %s", res.substr(2).c_str()); - return res.substr(2); - } - else if(res[0] == '1') - { - Salt = res.substr(2); - } - else - { - // server returns ??? - nlwarning("%s", res.c_str()); - return res; - } + // ask server for salt + if(!HttpClient.sendGet(ClientCfg.ConfigFile.getVar("StartupPage").asString()+"?cmd=ask&login="+login+"&lg="+ClientCfg.LanguageCode, "", pPM->isVerboseLog())) + return "Can't send (error code 60)"; - // send login + crypted password + client app and cp=1 (as crypted password) - if(!HttpClient.connectToLogin()) - return "Can't connect (error code 63)"; + if(pPM->isVerboseLog()) nlinfo("Sent request for password salt"); - if(pPM->isVerboseLog()) nlinfo("Connected"); + if(!HttpClient.receive(res, pPM->isVerboseLog())) + return "Can't receive (error code 61)"; + + if(pPM->isVerboseLog()) nlinfo("Received request login check"); + + if(res.empty()) + return "Empty answer from server (error code 62)"; + + if(res[0] == '0') + { + // server returns an error + nlwarning("server error: %s", res.substr(2).c_str()); + return res.substr(2); + } + else if(res[0] == '1') + { + Salt = res.substr(2); + } + else + { + // server returns ??? + nlwarning("%s", res.c_str()); + return res; + } + + // send login + crypted password + client app and cp=1 (as crypted password) + if(!HttpClient.connectToLogin()) + return "Can't connect (error code 63)"; + + if(pPM->isVerboseLog()) nlinfo("Connected"); + } if (ClientCfg.R2Mode) { // R2 login sequence - std::string cryptedPassword = CCrypt::crypt(password, Salt); - if(!HttpClient.sendGet(ClientCfg.ConfigFile.getVar("StartupPage").asString()+"?cmd=login&login="+login+"&password="+cryptedPassword+"&clientApplication="+clientApp+"&cp=1"+"&lg="+ClientCfg.LanguageCode+customParameters)) - return "Can't send (error code 2)"; + + if (!login.empty()) + { + std::string cryptedPassword = CCrypt::crypt(password, Salt); + if(!HttpClient.sendGet(ClientCfg.ConfigFile.getVar("StartupPage").asString()+"?cmd=login&login="+login+"&password="+cryptedPassword+"&clientApplication="+clientApp+"&cp=1"+"&lg="+ClientCfg.LanguageCode+customParameters)) + return "Can't send (error code 2)"; + } + else + { + // don't send login and password if empty + if(!HttpClient.sendGet(ClientCfg.ConfigFile.getVar("StartupPage").asString()+"?cmd=login&clientApplication="+clientApp+"&cp=1"+"&lg="+ClientCfg.LanguageCode+customParameters)) + return "Can't send (error code 2)"; + } // the response should contains the result code and the cookie value if(pPM->isVerboseLog()) nlinfo("Sent request login check"); From 6c1cf58572ce0110045a859f4e68243ffcc03831 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 17:05:04 +0100 Subject: [PATCH 088/184] Changed: Trim URL before to display it --- code/ryzom/common/src/game_share/http_client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/common/src/game_share/http_client.cpp b/code/ryzom/common/src/game_share/http_client.cpp index 9abc5929c..d9add4692 100644 --- a/code/ryzom/common/src/game_share/http_client.cpp +++ b/code/ryzom/common/src/game_share/http_client.cpp @@ -79,7 +79,7 @@ bool CHttpClient::send(const std::string& buffer, bool verbose) if(verbose) { - nldebug("Sending '%s' to '%s'", buffer.c_str(), _Sock.remoteAddr().asString().c_str()); + nldebug("Sending '%s' to '%s'", trim(buffer).c_str(), _Sock.remoteAddr().asString().c_str()); } uint32 size = (uint32)buffer.size(); From 023104388660357fac41dcadd790768a44ebee4b Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 17:27:01 +0100 Subject: [PATCH 089/184] Changed: Updated translations --- .../translated/faction_words_de.txt | Bin 11858 -> 11960 bytes .../ryzom/tools/translation/translated/fr.uxt | 3808 ++++++++--------- 2 files changed, 1900 insertions(+), 1908 deletions(-) diff --git a/code/ryzom/tools/translation/translated/faction_words_de.txt b/code/ryzom/tools/translation/translated/faction_words_de.txt index 26e68ff56ebae855679ab44b7aec9c2f77d88d13..113b6ab470e72e73b1f754ee288ed046e05df172 100644 GIT binary patch delta 372 zcmcZ4^qFB{TX4ICSY`~&7xrIe! zvIU0& zEXXFmIZ8l|RUD+rogp6xbs4-Fz5xwO16rXu`JjUO-2WShIkp] +uiNewSpell [Nouveau sort >] // HASH_VALUE 48609C2284718C1B // INDEX 2015 -uimMaClear [ANNULER] +uimMaClear [Annuler] // HASH_VALUE C4124CE4D012AA2A // INDEX 2016 -uimMaReset [REINITIALISER PAR DEFAUT] +uimMaReset [Réinitialiser par défaut] // HASH_VALUE 4C90E4244C90E424 // INDEX 2017 -uimMaInfos [INFOS] +uimMaInfos [Infos] // HASH_VALUE 4AB1D01C87CFB72A // INDEX 2018 -uimMaDel [ANNULER L'ACTION] +uimMaDel [Annuler l'action] // HASH_VALUE 4701BB304CEE04FC // INDEX 2019 -uimMaEdit [EDITER L'ACTION] +uimMaEdit [Éditer l'action] // HASH_VALUE 1A151D0AE1D3564D // INDEX 2020 -uittSelectBrick [Cliquez ici pour choisir une brique Source] +uittSelectBrick [Cliquez ici pour choisir une brique source] // HASH_VALUE 62C7447F6306449A // INDEX 2021 @@ -8369,27 +8369,27 @@ uittDecrementRow [Diminuer le nombre de lignes] // HASH_VALUE C2512A4140FEC7FD // INDEX 2026 -uiMagicCreateNewSpell [NOUVEAU SORT >] +uiMagicCreateNewSpell [Nouveau sort >] // HASH_VALUE 8AB1A4014BEFE0FA // INDEX 2027 -uiMagicEditSpell [EDITER LE SORT] +uiMagicEditSpell [Éditer le sort] // HASH_VALUE E8455B7A97358791 // INDEX 2028 -uiMagicEditSpellName [Nom du Sort] +uiMagicEditSpellName [Nom du sort] // HASH_VALUE 2014144C54D4F40C // INDEX 2029 -uiMagicEditSapCost [COUT EN SEVE] +uiMagicEditSapCost [Coût en Sève] // HASH_VALUE 4C42C836C691B027 // INDEX 2030 -uiMagicEditDifficulty [DIFFICULTE] +uiMagicEditDifficulty [Difficulté] // HASH_VALUE 5BCAE043B3D90C45 // INDEX 2031 -uiMagicEditNotEnoughSap [Attention ! Pas Assez de Sève !] +uiMagicEditNotEnoughSap [Attention ! Pas assez de Sève !] // HASH_VALUE 36B251FFFAE39E10 // INDEX 2032 @@ -8397,11 +8397,11 @@ uiTextHelpSelectRootBrick [<- Cliquez pour définir l'ACTION.] // HASH_VALUE C54E6F05CFC14F9B // INDEX 2033 -uiTextHelpSelectEffectBrick [<- Cliquez pour choisir l'EFFET ] +uiTextHelpSelectEffectBrick [<- Cliquez pour choisir l'EFFET.] // HASH_VALUE 2B25EA1199395CC8 // INDEX 2034 -uiTextHelpSelectOtherBrick [Votre CREDIT doit être égal ou supérieur aux COUTS de vos ACTIONS.] +uiTextHelpSelectOtherBrick [Votre CRÉDIT doit être égal ou supérieur au COÛT de vos ACTIONS.] // HASH_VALUE 8516934358A74240 // INDEX 2035 @@ -8413,63 +8413,63 @@ uiMagicSpellIcon [Icône] // HASH_VALUE 2E828FA091228B8B // INDEX 2037 -uittMagicSpellNotFound [Sort Non Trouvé dans le Livre des Sorts] +uittMagicSpellNotFound [Sort non trouvé dans le livre des sorts] // HASH_VALUE 09D17C144450882A // INDEX 2038 -uiDefenseTitle [DEFENSE] +uiDefenseTitle [Défense] // HASH_VALUE 06F0741FC6D08014 // INDEX 2039 -uiStyle1 [ESQUIVE] +uiStyle1 [Esquive] // HASH_VALUE CE63F43C8CD3F44D // INDEX 2040 -uiStyle2 [PARADE] +uiStyle2 [Parade] // HASH_VALUE C660981A89B09825 // INDEX 2041 -uiDefenseReset [TOUS] +uiDefenseReset [Tous] // HASH_VALUE F16A2C2DD657C36B // INDEX 2042 -uittDefenseHead [Protéger votre tête] +uittDefenseHead [Protège votre tête] // HASH_VALUE 30E7D79009253469 // INDEX 2043 -uittDefenseChest [Protéger votre poitrine] +uittDefenseChest [Protège votre poitrine] // HASH_VALUE F16A2C3C5797D36B // INDEX 2044 -uittDefenseLegs [Protéger vos jambes] +uittDefenseLegs [Protège vos jambes] // HASH_VALUE F16A2C3DD737BB6B // INDEX 2045 -uittDefenseFeet [Protéger vos pieds] +uittDefenseFeet [Protège vos pieds] // HASH_VALUE F16A2C3C1CB8A76B // INDEX 2046 -uittDefenseArms [Protéger vos bras] +uittDefenseArms [Protège vos bras] // HASH_VALUE 30E7D3818DB54869 // INDEX 2047 -uittDefenseHands [Protéger vos mains] +uittDefenseHands [Protège vos mains] // HASH_VALUE 5014544C5014544C // INDEX 2048 -uiSetsTitle [REGLAGES] +uiSetsTitle [Réglages] // HASH_VALUE FFB1B80F4110E343 // INDEX 2049 -uiSetInUseTitle [REGLAGE DE L'UTILISATION] +uiSetInUseTitle [Réglage de l'utilisation] // HASH_VALUE 2010C4045014544C // INDEX 2050 -uiAllSetsTitle [TOUS LES REGLAGES] +uiAllSetsTitle [Tous les réglages] // HASH_VALUE BE714CFB02BEE010 // INDEX 2051 -uiAffectedTitle [ATTRIBUE PAR] +uiAffectedTitle [Attribué par] // HASH_VALUE E8284490A3184481 // INDEX 2052 @@ -8477,127 +8477,127 @@ uiSteedTitle [Monture] // HASH_VALUE 859D0F0F454F5314 // INDEX 2053 -uiInventoryTitle [INVENTAIRE DE $P] +uiInventoryTitle [Inventaire de $P] // HASH_VALUE 4CD0F4484CD0F448 // INDEX 2054 -uiInvRoomTitle [PIECE] +uiInvRoomTitle [Appartement] // HASH_VALUE 4C03E42C4BC1F03F // INDEX 2055 -uiInvEquipTitle [EQUIPEMENT] +uiInvEquipTitle [Équipement] // HASH_VALUE 0D00103A0A41EC39 // INDEX 2056 -uiMoneyTitle [ARGENT] +uiMoneyTitle [Argent] // HASH_VALUE 4120300C01D0480B // INDEX 2057 -uiBagTitle [SAC] +uiBagTitle [Sac] // HASH_VALUE 50D0140850D01408 // INDEX 2058 -uiBagsTitle [SACS] +uiBagsTitle [Sacs] // HASH_VALUE 75AEEFD4B9BF52DA // INDEX 2059 -uiBagTitle1 [SAC 1] +uiBagTitle1 [Sac 1] // HASH_VALUE B5AEF3D5B9CF56DB // INDEX 2060 -uiBagTitle2 [SAC 2] +uiBagTitle2 [Sac 2] // HASH_VALUE F5AEF7D6B9DF5ADC // INDEX 2061 -uiBagTitle3 [SAC 3] +uiBagTitle3 [Sac 3] // HASH_VALUE 36AEFBD7B9EF5EDD // INDEX 2062 -uiBagTitle4 [SAC 4] +uiBagTitle4 [Sac 4] // HASH_VALUE 0BD2C8338B41F431 // INDEX 2063 -uiKitTitle [KIT] +uiKitTitle [Kit] // HASH_VALUE 4E01CC340A32D42F // INDEX 2064 -uiArmorTitle [ARMURE] +uiArmorTitle [Armure] // HASH_VALUE C8C0AC2006B1842D // INDEX 2065 -uiHandsTitle [MAINS] +uiHandsTitle [Mains] // HASH_VALUE 4EB2B82B0902EC41 // INDEX 2066 -uiJewelryTitle [BIJOUX] +uiJewelryTitle [Bijoux] // HASH_VALUE 4DA1CC39CBA11C3E // INDEX 2067 -uiMemoryTitle [MEMOIRE] +uiMemoryTitle [Mémoire] // HASH_VALUE 08F0D4144B50E812 // INDEX 2068 -uiMemCombatTitle [COMBAT] +uiMemCombatTitle [Combat] // HASH_VALUE 43F0641AC6906C20 // INDEX 2069 -uiMemMagicTitle [MAGIE] +uiMemMagicTitle [Magie] // HASH_VALUE 8530882B0952C429 // INDEX 2070 -uiMemSpecialTitle [SPECIALE] +uiMemSpecialTitle [spéciale] // HASH_VALUE 7C61E42C094F1436 // INDEX 2071 -uiMemCombatFull [COMBAT DE MEMOIRE] +uiMemCombatFull [Combat de mémoire] // HASH_VALUE C93EAC2D496CFC32 // INDEX 2072 -uiMemMagicFull [MAGIE DE MEMOIRE] +uiMemMagicFull [Magie de mémoire] // HASH_VALUE 8E418C2D49AFF800 // INDEX 2073 -uiMemSpecialFul [MEMOIRE SPECIALE] +uiMemSpecialFul [Mémoire spéciale] // HASH_VALUE D001183E0E62FC44 // INDEX 2074 -uimMount [MONTER] +uimMount [Monter] // HASH_VALUE D001003F0E52184C // INDEX 2075 -uimUnmount [DESCENDRE] +uimUnmount [Descendre] // HASH_VALUE CEE008278E802830 // INDEX 2076 -uimFollow [SUIVRE] +uimFollow [Suivre] // HASH_VALUE 8DB310280F92143A // INDEX 2077 -uimAssist [ASSISTER] +uimAssist [Assister] // HASH_VALUE 50D0444C50D0444C // INDEX 2078 -uimStop [STOP] +uimStop [Stop] // HASH_VALUE 4450241844502418 // INDEX 2079 -uimFree [LIBERER] +uimFree [Libérer] // HASH_VALUE 4C10140C4C10140C // INDEX 2080 -uimCall [APPELER] +uimCall [Appeler] // HASH_VALUE 7F62DC1F4B8F9426 // INDEX 2081 -uimForgetPhrase [OUBLIER L'ACTION] +uimForgetPhrase [Oublier l'action] // HASH_VALUE C871D8124A4EEC11 // INDEX 2082 -uimForgetMacro [OUBLIER LA MACRO] +uimForgetMacro [Oublier la macro] // HASH_VALUE 46F2302652C1B04C // INDEX 2083 -uimCristalize [CRISTALLISER] +uimCristalize [Cristalliser] // HASH_VALUE 2C66B0612A24EC7E // INDEX 2084 @@ -8605,11 +8605,11 @@ uittHelmet [Casque] // HASH_VALUE 6858E4646EF64AD0 // INDEX 2085 -uittChest [Protège poitrine] +uittChest [Pectoral] // HASH_VALUE 6939C49063482C79 // INDEX 2086 -uittArms [Protèges bras] +uittArms [Protège bras] // HASH_VALUE 31B60862AF342480 // INDEX 2087 @@ -8617,7 +8617,7 @@ uittHands [Gants] // HASH_VALUE 99B8478C5686E87A // INDEX 2088 -uittLegs [Protèges jambes] +uittLegs [Jambières] // HASH_VALUE AF57509863476498 // INDEX 2089 @@ -8669,51 +8669,51 @@ uittAmmo [Munitions] // HASH_VALUE 722089E1970C8D7B // INDEX 2101 -uittMemoryCombat [Voici votre mémoire pour les Capacités de Combat] +uittMemoryCombat [Voici votre mémoire pour les actions de combat] // HASH_VALUE B6C05DEE87E99709 // INDEX 2102 -uittMemoryMagic [Voici votre mémoire pour les Sorts Magiques] +uittMemoryMagic [Voici votre mémoire pour les sorts] // HASH_VALUE 73707143CC106D78 // INDEX 2103 -uittMemorySpecial [Voici votre mémoire pour les Capacités Spéciales] +uittMemorySpecial [Voici votre mémoire pour les capacités spéciales] // HASH_VALUE CFD2B3C9FD928D76 // INDEX 2104 uittPvPModeTagOff [@{6F6F}PvP de Faction@{FFFF}\n - Vous êtes en @{6F6F}Tag Pvp Désactivé@{FFFF}.\n + Votre @{6F6F}Tag PvP est désactivé@{FFFF}.\n Cliquez pour passer en mode PvP.] // HASH_VALUE D50C6FC5DAA03215 // INDEX 2105 uittPvPModeTagOffChange [@{6F6F}PvP de Faction@{FFFF}\n - Vous avez demandé à passer en @{6F6F}Tag Pvp Activé@{FFFF}. Ce sera actif après la fin du compteur.\n + Vous avez demandé à @{6F6F}activer votre Tag PvP@{FFFF}. Ce sera effectif après la fin du décompte.\n Cliquez pour annuler.] // HASH_VALUE 93315FA35EF3F2F9 // INDEX 2106 uittPvPModeTagOn [@{6F6F}PvP de Faction@{FFFF}\n - Vous êtes en @{6F6F}Tag Pvp Activé@{FFFF}.\n + Vous avez @{6F6F}activé votre Tag PvP@{FFFF}.\n Vous pouvez attaquer et être attaqué par les joueurs de la faction adverse.\n Cliquez pour passer en mode PvE.] // HASH_VALUE E0612BAA4EC3D6FC // INDEX 2107 uittPvPModeTagOnChange [@{6F6F}PvP de Faction@{FFFF}\n - Vous avez demandé à passer en @{6F6F}Tag Pvp Désactivé@{FFFF}. Ce sera désactivé après la fin du compteur.\n + Vous avez demandé à @{6F6F}désactiver votre Tag PvP@{FFFF}. Ce sera effectif après la fin du décompte.\n Cliquez pour annuler.] // HASH_VALUE FBCF5EAB65E4CE37 // INDEX 2108 uittPvPTagTimer [\n - Il reste %temps avant que votre Tag Pvp ne change.] + Il reste %temps avant que votre Tag PvP ne change.] // HASH_VALUE FF59B9602588C677 // INDEX 2109 uittPvPModeFlag [@{6F6F}PvP de Faction@{FFFF}\n - Vous êtes en @{6F6F}Tag Pvp Activé@{FFFF} et avez effectué une action offensive en PvP récemment.\n - Vous êtes donc @{6F6F}Flagué Pvp@{FFFF} (cela empêche un certain nombre d'actions PVE sur les joueurs de la faction adverse comme grouper).\n + VVous avez @{6F6F}activé votre Tag PvP@{FFFF} et avez effectué une action offensive en PvP récemment.\n + Vous êtes donc @{6F6F}Flagué Pvp@{FFFF} (cela empêche un certain nombre d'actions PvE sur les joueurs de la faction adverse comme grouper).\n Ce flag s'effacera dans %temps.] // HASH_VALUE 00841A0EC6F3BC0E @@ -8722,43 +8722,43 @@ uittPvPTime [@{6F6F}%h h %m m %s s@{FFFF}] // HASH_VALUE 4B7FC42C020EF005 // INDEX 2111 -uiSelMoney2Give [CHOISIR LA SOMME A DONNER] +uiSelMoney2Give [Choisir la somme à donner] // HASH_VALUE 48D0841444D0E404 // INDEX 2112 -uiTrade2Player [ECHANGER] +uiTrade2Player [Échanger] // HASH_VALUE 4EA04B244AB09CFE // INDEX 2113 -uiPlayerName [NOM DU JOUEUR] +uiPlayerName [Nom du personnage] // HASH_VALUE C172980D4C211332 // INDEX 2114 -uiOtherGive [AUTRES PROPOSITIONS] +uiOtherGive [Autres propositions] // HASH_VALUE 8D01D83D0B62F82E // INDEX 2115 -uiItems [OBJETS] +uiItems [Objets] // HASH_VALUE 517E042ECC6C1C23 // INDEX 2116 -uiPlayerGive [VOTRE PROPOSITION] +uiPlayerGive [Votre proposition] // HASH_VALUE CE71233E80820432 // INDEX 2117 -uiInvFull [INVENTAIRE PLEIN] +uiInvFull [Inventaire plein] // HASH_VALUE 878180150661C424 // INDEX 2118 -uiAccept [ACCEPTER] +uiAccept [Accepter] // HASH_VALUE 4C22943D48E3943E // INDEX 2119 -uiRefuse [REFUSER] +uiRefuse [Refuser] // HASH_VALUE 439F334184006A32 // INDEX 2120 -uiTradeWith [ECHANGER AVEC ?] +uiTradeWith [Échanger avec ?] // HASH_VALUE 52695C9F2AB4C366 // INDEX 2121 @@ -8770,11 +8770,11 @@ uittClearMoney [Annuler l'argent] // HASH_VALUE 8530882B0952C429 // INDEX 2123 -uiSpecialLaboTitle [SPECIAL] +uiSpecialLaboTitle [Spécial] // HASH_VALUE 4C30A02C08D0E82E // INDEX 2124 -uiMacrosTitle [MACROS] +uiMacrosTitle [Macros] // HASH_VALUE C464BFDDA7589F68 // INDEX 2125 @@ -8782,7 +8782,7 @@ uiShortCutTT [Glissez ici un sort de combat ou de magie] // HASH_VALUE 2D19632A97548F17 // INDEX 2126 -uiQestionQuit [Vous voulez ?] +uiQestionQuit [Où voulez-vous aller ?] // HASH_VALUE 1365D0771A40629D // INDEX 2127 @@ -8790,75 +8790,75 @@ uiServerStalled [Veuillez patienter...] // HASH_VALUE 538110261072281B // INDEX 2128 -uimPlayer [JOUEUR] +uimPlayer [Joueur] // HASH_VALUE 13B2403C13D33C3E // INDEX 2129 -uimStatus [ETAT] +uimStatus [État] // HASH_VALUE 86D2681D85E1AC1F // INDEX 2130 -uimCareer [CARRIERES] +uimCareer [Carrière] // HASH_VALUE CC21D83B8BC2F834 // INDEX 2131 -uimSkills [COMPETENCES] +uimSkills [Compétences] // HASH_VALUE 8A7214404EB19C25 // INDEX 2132 -uimJournal [JOURNAL] +uimJournal [Journal] // HASH_VALUE CB21A82C8BA1B420 // INDEX 2133 -uimGuild [GUILDE] +uimGuild [Guilde] // HASH_VALUE 43F0641AC6906C20 // INDEX 2134 -uimMagic [MAGIE] +uimMagic [Magie] // HASH_VALUE 08F0D4144B50E812 // INDEX 2135 -uimCombat [COMBAT] +uimCombat [Combat] // HASH_VALUE C5F0701EC2C17C1F // INDEX 2136 -uimFaber [COLLECTER] +uimFaber [Collecter] // HASH_VALUE 8521AC1FC9017830 // INDEX 2137 -uimFaCrea [CREER] +uimFaCrea [Créer] // HASH_VALUE 85C3783D86E3AC34 // INDEX 2138 -uimFaRepa [REPARER] +uimFaRepa [Réparer] // HASH_VALUE 46D1643845926434 // INDEX 2139 -uimFaRefi [PEAUFINER] +uimFaRefi [Rafiner] // HASH_VALUE 4C50F40C44D02414 // INDEX 2140 -uimCommerce [TROQUER] +uimCommerce [Troquer] // HASH_VALUE CF13BC318B02C434 // INDEX 2141 -uimHarvest [COLLECTER] +uimHarvest [Collecter] // HASH_VALUE 4C30A02C08D0E82E // INDEX 2142 -uimMacros [MACROS] +uimMacros [Macros] // HASH_VALUE 5054542C5054542C // INDEX 2143 -uimKeys [TOUCHES] +uimKeys [Touches] // HASH_VALUE 8530882B0952C429 // INDEX 2144 -uimSpecial [SPECIAL] +uimSpecial [Spécial] // HASH_VALUE 48609C2284718C1B // INDEX 2145 -uimClear [ANNULER] +uimClear [Annuler] // HASH_VALUE 41FEB60C79CEFFED // INDEX 2146 @@ -8866,39 +8866,39 @@ uiNotAssigned [N/A] // HASH_VALUE 5010542050105420 // INDEX 2147 -uimHelp [AIDE] +uimHelp [Aide] // HASH_VALUE 4C1454504C509448 // INDEX 2148 -uimTutorial [TUTORIEL] +uimTutorial [Tutoriel] // HASH_VALUE 5014544C5014544C // INDEX 2149 -uimwSet [REGLAGES] +uimwSet [Réglages] // HASH_VALUE C8C0AC2006B1842D // INDEX 2150 -uimwHands [MAINS] +uimwHands [Mains] // HASH_VALUE CB720C430F71F837 // INDEX 2151 -uimwInventory [INVENTAIRE] +uimwInventory [Inventaire] // HASH_VALUE 0D00103A0A41EC39 // INDEX 2152 -uimwMoney [ARGENT] +uimwMoney [Argent] // HASH_VALUE 50D0140850D01408 // INDEX 2153 -uimwBags [SACS] +uimwBags [Sacs] // HASH_VALUE 4E01CC340A32D42F // INDEX 2154 -uimwArmor [ARMURE] +uimwArmor [Armure] // HASH_VALUE 4EB2B82B0902EC41 // INDEX 2155 -uimwJewelry [BIJOUX] +uimwJewelry [Bijoux] // HASH_VALUE 8A40982588C1BC21 // INDEX 2156 @@ -8906,19 +8906,19 @@ uimwPA [ANIMAUX] // HASH_VALUE 8EE3BC39CBA3F82E // INDEX 2157 -uimwPet [ANIMAUX DOMESTIQUES] +uimwPet [Animaux domestiques] // HASH_VALUE C822C4308B12C421 // INDEX 2158 -uimwSteed [MONTURE] +uimwSteed [Monture] // HASH_VALUE 0C22B82F0A31E42A // INDEX 2159 -uimwCompas [COMPAS] +uimwCompas [Radar] // HASH_VALUE 4591A82645A29C29 // INDEX 2160 -uimwRadar [RADAR] +uimwRadar [Radar] // HASH_VALUE 0AF2802B07C1BC1F // INDEX 2161 @@ -8926,39 +8926,39 @@ uimwMap [CARTE] // HASH_VALUE 08F0D4144B50E812 // INDEX 2162 -uimwCombat [COMBAT] +uimwCombat [Combat] // HASH_VALUE 4C50F40C44D02414 // INDEX 2163 -uimwCommerce [COMMERCE] +uimwCommerce [Commerce] // HASH_VALUE 87C18F23CAD10A2F // INDEX 2164 -uimwFaberCreate [ARTISAN EN CREATION] +uimwFaberCreate [Création d'objets] // HASH_VALUE 4451AF2444522A30 // INDEX 2165 -uimwFaberRefine [ARTISAN EN PEAUFINEMENT] +uimwFaberRefine [Amélioration d'objets] // HASH_VALUE 87018F2E87020A3A // INDEX 2166 -uimwFaberRepair [ARTISAN EN REPARATION] +uimwFaberRepair [Réparation d'objets] // HASH_VALUE CCA12B3002711F33 // INDEX 2167 -uimwMagic [LIVRE DES SORTS] +uimwMagic [Livre des sorts] // HASH_VALUE 8530882B0952C429 // INDEX 2168 -uimwSpecial [SPECIAL] +uimwSpecial [Spécial] // HASH_VALUE 405024504490942C // INDEX 2169 -uimwTracking [PISTAGE] +uimwTracking [Pistage] // HASH_VALUE C4C0B02EC49DFC1F // INDEX 2170 -uimwTarget [INDICATEURS DE LA CIBLE] +uimwTarget [Indicateurs de la cible] // HASH_VALUE 8F50470F82805715 // INDEX 2171 @@ -8970,7 +8970,7 @@ uimwMainChat [CHAT PRINCIPAL] // HASH_VALUE CF114F418A60E404 // INDEX 2173 -uimwInfoSys [INFOS SYSTEMES] +uimwInfoSys [INFOS SYSTÈME] // HASH_VALUE 0C8198F3FF7FDC44 // INDEX 2174 @@ -8978,155 +8978,155 @@ uimwAroundMe [ALENTOURS] // HASH_VALUE 4C1054504C105450 // INDEX 2175 -uimwTell [RACONTER] +uimwTell [Dire] // HASH_VALUE 09F2BC313A8EC7F3 // INDEX 2176 -uimwTeamChat [CHAT DE L'EQUIPE] +uimwTeamChat [CHAT DE L'ÉQUIPE] // HASH_VALUE 4C5054504C505450 // INDEX 2177 -uimwTeamList [EQUIPE] +uimwTeamList [ÉQUIPE] // HASH_VALUE 4742AC133AA37C11 // INDEX 2178 -uimwContactList [LISTE DE CONTACTS] +uimwContactList [LISTE DES CONTACTS] // HASH_VALUE 4450141844501418 // INDEX 2179 -uimwFame [RENOMMEE] +uimwFame [RENOMMÉE] // HASH_VALUE 4408943444D05404 // INDEX 2180 -uimwBars [MES INDICATEURS] +uimwBars [Mes indicateurs] // HASH_VALUE C3621C0B4C114744 // INDEX 2181 -uimwBonusMalus [BONUS/MALUS] +uimwBonusMalus [Bonus / Malus] // HASH_VALUE 8B11903507628423 // INDEX 2182 -uimwWebIG [WEB] +uimwWebIG [Web] // HASH_VALUE BE714CFB02BEE010 // INDEX 2183 -uimwBuff [ATTRIBUE PAR] +uimwBuff [Affecté par] // HASH_VALUE CE004B1A03E0431A // INDEX 2184 -uimwGuild [INFOS DE LA GUILDE] +uimwGuild [Infos de la guilde] // HASH_VALUE CA42F0330BC3D045 // INDEX 2185 -uimwMissions [TACHES] +uimwMissions [Tâches] // HASH_VALUE 79C3BBDD892CB734 // INDEX 2186 -uimwProgression [CARACTERISTIQUES] +uimwProgression [Caractéristiques] // HASH_VALUE 4C50442458149450 // INDEX 2187 -uimwProgression2 [IDENTITE] +uimwProgression2 [Identité] // HASH_VALUE 13B2403C13D33C3E // INDEX 2188 -uimwStatus [ETAT] +uimwStatus [État] // HASH_VALUE 450170220A31CC20 // INDEX 2189 -uimwAbilities [CAPACITES] +uimwAbilities [Capacités] // HASH_VALUE C4DEB8D7F5E03221 // INDEX 2190 -uimwChatMode0 ["Echap"-SORTIR DU CHAT] +uimwChatMode0 ["Échap" fait sortir du chat] // HASH_VALUE 831CBCFE764DC013 // INDEX 2191 -uimwChatMode1 ["ENTREE"-SORTIR DU CHAT] +uimwChatMode1 ["Entrée" fait sortir du chat] // HASH_VALUE 7C61E42C094F1436 // INDEX 2192 -uimwMemCombat [MEMOIRE DE COMBAT] +uimwMemCombat [Mémoire de combat] // HASH_VALUE C93EAC2D496CFC32 // INDEX 2193 -uimwMemMagic [MEMOIRE MAGIQUE] +uimwMemMagic [Mémoire magique] // HASH_VALUE 8E418C2D49AFF800 // INDEX 2194 -uimwMemSpecial [MEMOIRE SPECIALE] +uimwMemSpecial [Mémoire spéciale] // HASH_VALUE 48209C2B05607C06 // INDEX 2195 -uimwColors [CONFIGURATION DU JEU] +uimwColors [Configuration du jeu] // HASH_VALUE 4B51A82B88B1BC25 // INDEX 2196 -uimwConnection [CONNEXION] +uimwConnection [Connexion] // HASH_VALUE 5054542C5054542C // INDEX 2197 -uimwKeys [TOUCHES] +uimwKeys [Touches] // HASH_VALUE 4C30A02C08D0E82E // INDEX 2198 -uimwMacros [MACROS] +uimwMacros [Macros] // HASH_VALUE 6005D327D4545744 // INDEX 2199 -uimSortUser [Tri : UTILISATEUR] +uimSortUser [Tri : Utilisateur] // HASH_VALUE 9FA6B7315644234F // INDEX 2200 -uimSortType [Tri : TYPE] +uimSortType [Tri : Type] // HASH_VALUE 9914572850E3234C // INDEX 2201 -uimSortName [Tri : NOM] +uimSortName [Tri : Nom] // HASH_VALUE CD54EC5AE085F732 // INDEX 2202 -uimSortQuantity [Tri : QUANTITE] +uimSortQuantity [Tri : Quantité] // HASH_VALUE 50D0241050D02410 // INDEX 2203 -uimDrop [DEPOSER] +uimDrop [Déposer] // HASH_VALUE D293FC304B62C83E // INDEX 2204 -uimDestroy [DETRUIRE] +uimDestroy [Détruire] // HASH_VALUE 36104CE2D472DC30 // INDEX 2205 -uimQuantityDrop [QUANTITE A JETER] +uimQuantityDrop [Quantité à jeter] // HASH_VALUE F732340C91607C41 // INDEX 2206 -uimQuantityDestroy [QUANTITE A DETRUIRE] +uimQuantityDestroy [Quantité à détruire] // HASH_VALUE 4120300C01D0480B // INDEX 2207 -uimMtBag [SAC] +uimMtBag [Sac] // HASH_VALUE C422683F86036840 // INDEX 2208 -uimMtSheath [GAINE] +uimMtSheath [Étui] // HASH_VALUE 4410544C4410544C // INDEX 2209 -uimMtSelf [MOI] +uimMtSelf [Moi] // HASH_VALUE 4494941C4494941C // INDEX 2210 -uimGive [DON] +uimGive [Donner] // HASH_VALUE 85C3783D86E3AC34 // INDEX 2211 -uimRepair [REPARER] +uimRepair [Réparer] // HASH_VALUE 46D1643845926434 // INDEX 2212 -uimRefine [PEAUFINER] +uimRefine [Améliorer] // HASH_VALUE 4C90E4244C90E424 // INDEX 2213 @@ -9134,27 +9134,27 @@ uimBoldInfo [INFOS] // HASH_VALUE 0F52F02F4CC3C033 // INDEX 2214 -uimEquip [EQUIPER] +uimEquip [Équiper] // HASH_VALUE 0921EF39F322FB1F // INDEX 2215 -uimCristalEnchant [ENCHANTER LA MAIN DROITE] +uimCristalEnchant [Enchanter l'arme de la main droite] // HASH_VALUE 0D10A0317FDEB704 // INDEX 2216 -uimCristalReload [RECHARGER LA MAIN DROITE] +uimCristalReload [Recharger l'arme de la main droite] // HASH_VALUE 7691EC4EBF01B44D // INDEX 2217 -uimTeleportUse [UTILISER TELEPORTEUR] +uimTeleportUse [Utiliser le téléporteur] // HASH_VALUE 0370002437E0F836 // INDEX 2218 -uimItemConsume [CONSOMMATION OBJET] +uimItemConsume [Consommer l'objet] // HASH_VALUE 076F78FA8853AC2C // INDEX 2219 -uimXpCatalyserUse [ACTIVER CATALYSEUR] +uimXpCatalyserUse [Activer les catalyseurs] // HASH_VALUE 02794481A8430873 // INDEX 2220 @@ -9162,43 +9162,43 @@ uittClose [Fermer] // HASH_VALUE ABA9AC1A93E72B61 // INDEX 2221 -uittSeed1 [Graine Morte Pourrissante] +uittSeed1 [Graine morte pourrissante] // HASH_VALUE A4437F81DFB4B763 // INDEX 2222 -uittSeed2 [Graines Mortes Moisies] +uittSeed2 [Graine morte moisie] // HASH_VALUE A007678122B4005F // INDEX 2223 -uittSeed3 [Graines Mortes Flétries] +uittSeed3 [Graine morte racornie] // HASH_VALUE 5587B8E929B6A685 // INDEX 2224 -uittSeed4 [Graines Mortes Sèches] +uittSeed4 [Graine morte sèche] // HASH_VALUE 0ADE882807EC7C38 // INDEX 2225 -uiDefmcwCol [CHOISIR LA COULEUR] +uiDefmcwCol [Choisir la couleur] // HASH_VALUE 5414543854145438 // INDEX 2226 -uiNext [SUIVANT] +uiNext [Suivant] // HASH_VALUE 5050B44C5050B44C // INDEX 2227 -uiSkip [PASSER] +uiSkip [Passer] // HASH_VALUE 062E270D40018C0A // INDEX 2228 -uiConnecting [CONNEXION EN COURS...] +uiConnecting [Connexion en cours...] // HASH_VALUE AA12D38AE5798454 // INDEX 2229 -uiCrashing1 [Echec de la connexion.] +uiCrashing1 [Échec de la connexion] // HASH_VALUE 180E5AA16915A2F0 // INDEX 2230 -uiCrashing2 [Si vous venez de quitter ryzom, veuillez patienter 30 secondes] +uiCrashing2 [Si vous venez de quitter Ryzom, merci de patienter 30 secondes] // HASH_VALUE B2BFBE15B45FEB3C // INDEX 2231 @@ -9206,11 +9206,11 @@ uiCrashing3 [pour que votre personnage soit déconnecté puis réessayez.] // HASH_VALUE 08DE1628072C9C92 // INDEX 2232 -uiFirewallAlert [Veuillez donner l'autorisation pare-feu pour Ryzom] +uiFirewallAlert [Veuillez paramétrer votre pare-feu pour autoriser Ryzom.] // HASH_VALUE D7C4407FEBD94C9A // INDEX 2233 -uiFirewallFail [La connexion a échoué] +uiFirewallFail [La connexion a échoué.] // HASH_VALUE A8A125B6298AB35C // INDEX 2234 @@ -9226,11 +9226,11 @@ uiQuit [Quitter Ryzom] // HASH_VALUE 5F725DC938E549F6 // INDEX 2237 -uiQuitGameWithoutWarning [Quitter Ryzom et Retourner au Menu sans Avertissement] +uiQuitGameWithoutWarning [Quitter Ryzom et revenir au menu principal sans avertissement] // HASH_VALUE 70384C5765C79660 // INDEX 2238 -uiQuitRyzomWithoutWarning [Quitter Ryzom sans Avertissement] +uiQuitRyzomWithoutWarning [Quitter Ryzom sans avertissement] // HASH_VALUE 6458F4206458F420 // INDEX 2239 @@ -9254,15 +9254,15 @@ uiBack [Retour] // HASH_VALUE EF987C4B2D4957B1 // INDEX 2244 -uiPrevStep [Etape Précédente] +uiPrevStep [Étape précédente] // HASH_VALUE 27C8249752C57F71 // INDEX 2245 -uiNextStep [Etape Suivante] +uiNextStep [Étape suivante] // HASH_VALUE EED8605365B3504E // INDEX 2246 -uiSkipIntro [Passer l'Intro] +uiSkipIntro [Passer l'introduction] // HASH_VALUE 2B271087A246208A // INDEX 2247 @@ -9270,11 +9270,11 @@ uiClose [Fermer] // HASH_VALUE 5A387B986B346094 // INDEX 2248 -uiReturnCharSel [Retourner à la Sélection du Personnage] +uiReturnCharSel [Retourner à la sélection du personnage] // HASH_VALUE B086B7809B27D79D // INDEX 2249 -uiEmptySlot [Emplacement Libre] +uiEmptySlot [Emplacement libre] // HASH_VALUE BF927812CC4E362E // INDEX 2250 @@ -9282,27 +9282,27 @@ uiDelChar [SUPPRIMER CE PERSONNAGE ?] // HASH_VALUE 4450143844501438 // INDEX 2251 -uiName [NOM] +uiName [Prénom] // HASH_VALUE 87F1DC485003EC26 // INDEX 2252 -uiSurName [NON DE FAMILLE] +uiSurName [Nom] // HASH_VALUE CF0DA82308FF5117 // INDEX 2253 -uiDeleteTitle [SOUHAITEZ-VOUS VRAIMENT LE SUPPRIMER ?] +uiDeleteTitle [Souhaitez-vous vraiment le supprimer ?] // HASH_VALUE 071C63FDB432AC50 // INDEX 2254 -uiSelectTitle [BIENVENUE DANS RYZOM - Bêta 2] +uiSelectTitle [Bienvenue dans Ryzom] // HASH_VALUE C27F70D8CA8F7029 // INDEX 2255 -uiSelCharTitle [CHOISIR UN PERSONNAGE] +uiSelCharTitle [Choisir un personnage] // HASH_VALUE 8CB1F43C4E73043F // INDEX 2256 -uiOptTitle [OPTIONS] +uiOptTitle [Options] // HASH_VALUE 7858C4407858C440 // INDEX 2257 @@ -9314,11 +9314,11 @@ uiDelete [Annuler] // HASH_VALUE 2C9A588517F0A7A5 // INDEX 2259 -uiManCrea [Création Manuelle] +uiManCrea [Création manuelle] // HASH_VALUE 6B89588A5841ABB4 // INDEX 2260 -uiRanCrea [Création Aléatoire] +uiRanCrea [Création aléatoire] // HASH_VALUE 6ED865116AD71FFE // INDEX 2261 @@ -9334,7 +9334,7 @@ uiCulture [CULTURE] // HASH_VALUE C8506C2B90443C3E // INDEX 2264 -uiEcosystem [ECOSYSTEME] +uiEcosystem [ÉCOSYSTÈME] // HASH_VALUE 911214414E53083A // INDEX 2265 @@ -9354,139 +9354,139 @@ uiZoName [ZORAÏ] // HASH_VALUE 4813BF2EC6F30E3B // INDEX 2269 -uiFyPeople [PEUPLE-FYROS] +uiFyPeople [PEUPLE FYROS] // HASH_VALUE 4653FF3C4513AE42 // INDEX 2270 -uiMaPeople [PEUPLE-MATIS] +uiMaPeople [PEUPLE MATIS] // HASH_VALUE C404B030123FDC33 // INDEX 2271 -uiTrPeople [PEUPLE-TRYKER] +uiTrPeople [PEUPLE TRYKER] // HASH_VALUE 42136F4C43F3E63B // INDEX 2272 -uiZoPeople [PEUPLE-ZORAÏ] +uiZoPeople [PEUPLE ZORAÏ] // HASH_VALUE 8DB0183389433B3F // INDEX 2273 -uiFyCulture [CULTURE-FYROS] +uiFyCulture [CULTURE FYROS] // HASH_VALUE 0640B8340AC23F41 // INDEX 2274 -uiMaCulture [CULTURE-MATIS] +uiMaCulture [CULTURE MATIS] // HASH_VALUE 0C53FC564901B418 // INDEX 2275 -uiTrCulture [CULTURE-TRYKER] +uiTrCulture [CULTURE TRYKER] // HASH_VALUE 87F1C83989015335 // INDEX 2276 -uiZoCulture [CULTURE-ZORAÏ] +uiZoCulture [CULTURE ZORAÏ] // HASH_VALUE 90E360418AC01319 // INDEX 2277 -uiFyEco [ECOSYSTEME-FYROS] +uiFyEco [ÉCOSYSTÈME FYROS] // HASH_VALUE 0FA3083046301319 // INDEX 2278 -uiMaEco [ECOSYSTEME-MATIS] +uiMaEco [ÉCOSYSTÈME MATIS] // HASH_VALUE 50940C2E484C3430 // INDEX 2279 -uiTrEco [ECOSYSTEME-TRYKER] +uiTrEco [ÉCOSYSTÈME TRYKER] // HASH_VALUE 8B03384B0C01130F // INDEX 2280 -uiZoEco [ECOSYSTEME-ZORAÏ] +uiZoEco [ÉCOSYSTÈME ZORAÏ] // HASH_VALUE CB303FDCCD40AEED // INDEX 2281 -uiSelCiv [AVEC QUELLE RACE SOUHAITEZ-VOUS JOUER ?] +uiSelCiv [Avec quelle race souhaitez-vous jouer ?] // HASH_VALUE 07827835073E9A2C // INDEX 2282 -uiDescMF [COMBATTANT DE MELEE - DESCRIPTION] +uiDescMF [Combattant de mêlée - description] // HASH_VALUE 07627C3A073E9A2E // INDEX 2283 -uiDescRF [COMBATTANT A DISTANCE - DESCRIPTION] +uiDescRF [Tireur - description] // HASH_VALUE 40F2C00F83FFA832 // INDEX 2284 -uiDescAM [ATTAQUANT- DESCRIPTION] +uiDescAM [Attaquant - description] // HASH_VALUE C5C1841604AF7825 // INDEX 2285 -uiDescHM [GUERISSEUR - DESCRIPTION] +uiDescHM [Guérisseur - description] // HASH_VALUE C111C410044F8C35 // INDEX 2286 -uiDescBM [BUFFER - DESCRIPTION] +uiDescBM [Mage protecteur - description] // HASH_VALUE CE321F404850C42B // INDEX 2287 -uiDescH [RANGER - DESCRIPTION] +uiDescH [Foreur - description] // HASH_VALUE 8330D40FC8B1C83C // INDEX 2288 -uiDescA [ARTISAN - DESCRIPTION] +uiDescA [Artisan - description] // HASH_VALUE 4C515016CDF17405 // INDEX 2289 -uiDescM [MARCHAND - DESCRIPTION] +uiDescM [Marchand - description] // HASH_VALUE C76FE03947DDF03D // INDEX 2290 -uiPtsLeft [POINTS RESTANTS :] +uiPtsLeft [Points restants :] // HASH_VALUE 8BD27C320841EC0E // INDEX 2291 -uiCa [CARACTERISTIQUES] +uiCa [Caractéristiques] // HASH_VALUE 8B71603AC7F09229 // INDEX 2292 -uiCarMF [COMBATTANT DE MELEE - CARACTERISTIQUES] +uiCarMF [Combattant de mêlée - caractéristiques] // HASH_VALUE 0B91503F4710822E // INDEX 2293 -uiCarRF [COMBATTANT A DISTANCE - CARACTERISTIQUES] +uiCarRF [Tireur - caractéristiques] // HASH_VALUE C243C00E474ED012 // INDEX 2294 -uiCarAM [ATTAQUANT - CARACTERISTIQUES] +uiCarAM [Attaquant - Caractéristiques] // HASH_VALUE 8512841583BEEC14 // INDEX 2295 -uiCarHM [GUERISSEUR - CARACTERISTIQUES] +uiCarHM [Guérisseur - Caractéristiques] // HASH_VALUE 0362C40F875EEC14 // INDEX 2296 -uiCarBM [BUFFER - CARACTERISTIQUES] +uiCarBM [Buffer - Caractéristiques] // HASH_VALUE 4E1207278BF2C430 // INDEX 2297 -uiCarH [RANGER - CARACTERISTIQUES] +uiCarH [Foreur - caractéristiques] // HASH_VALUE 46F08F198910C44E // INDEX 2298 -uiCarA [ARTISAN - CARACTERISTIQUES] +uiCarA [Artisan - caractéristiques] // HASH_VALUE 8BA2901104A35813 // INDEX 2299 -uiCarM [MARCHAND - CARACTERISTIQUES] +uiCarM [Marchand - caractéristiques] // HASH_VALUE 0C91B41EC6919C31 // INDEX 2300 -uiCaNaBoldF [COMBATTANT] +uiCaNaBoldF [Combattant] // HASH_VALUE 48D014344C50940C // INDEX 2301 -uiCaNaBoldM [MAGICIEN] +uiCaNaBoldM [Mage] // HASH_VALUE 4551941F8CB2BC2D // INDEX 2302 -uiCaNaBoldC [ARTISAN] +uiCaNaBoldC [Artisan] // HASH_VALUE 2C99B47EDE971C91 // INDEX 2303 @@ -9494,7 +9494,7 @@ uiCaNaF [Combattant] // HASH_VALUE 68D814346C58948C // INDEX 2304 -uiCaNaM [Magicien] +uiCaNaM [Mage] // HASH_VALUE 292A0C9063680C83 // INDEX 2305 @@ -9502,15 +9502,15 @@ uiCaNaR [Artisan] // HASH_VALUE F45FC41D05204C10 // INDEX 2306 -uiCareerTitle [QUE SOUHAITEZ-VOUS DEVENIR ?] +uiCareerTitle [Que souhaitez-vous devenir ?] // HASH_VALUE 4871AC1F06706826 // INDEX 2307 -uiDesc [GENERAL] +uiDesc [Général] // HASH_VALUE 4050044C40506424 // INDEX 2308 -uiSpe [SPECIFIQUE] +uiSpe [Spécifique] // HASH_VALUE 649CF434649CF434 // INDEX 2309 @@ -9522,235 +9522,235 @@ uiLess [Moins] // HASH_VALUE 62FA0CB868B89428 // INDEX 2311 -uittMoreInfo [plus d'informations] +uittMoreInfo [Plus d'informations] // HASH_VALUE C7D288304A21C429 // INDEX 2312 -uiShape [FORME] +uiShape [Forme] // HASH_VALUE 5050142050501420 // INDEX 2313 -uiHair [CHEVEUX] +uiHair [Cheveux] // HASH_VALUE CE4280244871CC34 // INDEX 2314 -uiHaircut [COIFFURE] +uiHaircut [Coiffure] // HASH_VALUE 8B008C06C70EA400 // INDEX 2315 -uiHairColor [COULEUR DES CHEVEUX] +uiHairColor [Couleur des cheveux] // HASH_VALUE CAC3944B47C3DC46 // INDEX 2316 -uiTatoos [TATOUAGES] +uiTatoos [Tatouage] // HASH_VALUE D190EC030D9E08F9 // INDEX 2317 -uiEyes [COULEUR DES YEUX] +uiEyes [Couleur des yeux] // HASH_VALUE 083098218820D421 // INDEX 2318 -uiHeight [TAILLE] +uiHeight [Taille] // HASH_VALUE 5050240450502404 // INDEX 2319 -uiArms [BRAS] +uiArms [Bras] // HASH_VALUE 50D0543050D05430 // INDEX 2320 -uiLegs [JAMBES] +uiLegs [Jambes] // HASH_VALUE 0DE2B01AC5D2F03C // INDEX 2321 -uiBreasts [POITRINE] +uiBreasts [Poitrine] // HASH_VALUE 0C60B0210A20EC1E // INDEX 2322 -uiHelmet [CASQUE] +uiHelmet [Casque] // HASH_VALUE 0E93144550521848 // INDEX 2323 -uiTorso [TORSE] +uiTorso [Torse] // HASH_VALUE CDD0E4104D10AC10 // INDEX 2324 -uiArmpad [PROTEGES BRAS] +uiArmpad [Manches] // HASH_VALUE 11B008228F302420 // INDEX 2325 -uiGloves [GANTS] +uiGloves [Gants] // HASH_VALUE 0ED2284AD183F83E // INDEX 2326 -uiTrouser [PANTALONS] +uiTrouser [Jambières] // HASH_VALUE 5450541854505418 // INDEX 2327 -uiFeet [PIEDS] +uiFeet [Bottes] // HASH_VALUE EBF2AFF80CFC1F3B // INDEX 2328 -uiAppearTitle [COMMENT SOUHAITEZ-VOUS ETRE ?] +uiAppearTitle [Quelle apparence désirez-vous ?] // HASH_VALUE 5810F4085810F408 // INDEX 2329 -uiBody [CORPS] +uiBody [Corps] // HASH_VALUE 44D0141844D01418 // INDEX 2330 -uiFace [VISAGE] +uiFace [Visage] // HASH_VALUE 4C11E032CB21A023 // INDEX 2331 -uiClothes [VETEMENTS] +uiClothes [Vêtements] // HASH_VALUE 62D644656364448B // INDEX 2332 -uiFemale [Femme] +uiFemale [Homine] // HASH_VALUE 6418143464181434 // INDEX 2333 -uiMale [Homme] +uiMale [Homin] // HASH_VALUE 90B2172BCCE15A26 // INDEX 2334 -uiFace1Fy [HAUTEUR DE LA BOUCHE] +uiFace1Fy [Hauteur de la bouche] // HASH_VALUE 082FE819C251AC06 // INDEX 2335 -uiFace2Fy [YEUX] +uiFace2Fy [Yeux] // HASH_VALUE C71088303F00E4FC // INDEX 2336 -uiFace3Fy [HAUTEUR DU NEZ] +uiFace3Fy [Hauteur du nez] // HASH_VALUE 81F13C064CD21B42 // INDEX 2337 -uiFace4Fy [EPAISSEUR DE LA BOUCHE] +uiFace4Fy [Épaisseur de la bouche] // HASH_VALUE C89FB8348300D808 // INDEX 2338 -uiFace5Fy [LONGUEUR DU NEZ] +uiFace5Fy [Longueur du nez] // HASH_VALUE 47F2CC0B0AAFD015 // INDEX 2339 -uiFace6Fy [LARGEUR DU NEZ] +uiFace6Fy [Largeur du nez] // HASH_VALUE C6BF4F2EBB42D8D7 // INDEX 2340 -uiFace7Fy [TAILLE DES YEUX / FRONT] +uiFace7Fy [Taille des yeux / front] // HASH_VALUE 4C50840C4C50840C // INDEX 2341 -uiFace8Fy [MENTON] +uiFace8Fy [Menton] // HASH_VALUE 082FE819C251AC06 // INDEX 2342 -uiFace1Ma [HAUTEUR DES YEUX] +uiFace1Ma [Hauteur des yeux] // HASH_VALUE C71088303F00E4FC // INDEX 2343 -uiFace2Ma [HAUTEUR DU NEZ] +uiFace2Ma [Hauteur du nez] // HASH_VALUE C89FB8348300D808 // INDEX 2344 -uiFace3Ma [LONGUEUR DU NEZ] +uiFace3Ma [Longueur du nez] // HASH_VALUE 47F2CC0B0AAFD015 // INDEX 2345 -uiFace4Ma [LARGEUR DU NEZ] +uiFace4Ma [Largeur du nez] // HASH_VALUE 81F13C064CD21B42 // INDEX 2346 -uiFace5Ma [LARGEUR DE LA BOUCHE] +uiFace5Ma [Largeur de la bouche] // HASH_VALUE 90B2172BCCE15A26 // INDEX 2347 -uiFace6Ma [HAUTEUR DE LA BOUCHE] +uiFace6Ma [Hauteur de la bouche] // HASH_VALUE 09E1982DC4006306 // INDEX 2348 -uiFace7Ma [TAILLE DES OREILLES] +uiFace7Ma [Taille des oreilles] // HASH_VALUE 4C50840C4C50840C // INDEX 2349 -uiFace8Ma [MENTON] +uiFace8Ma [Menton] // HASH_VALUE 082FE819C251AC06 // INDEX 2350 -uiFace1Tr [YEUX] +uiFace1Tr [Yeux] // HASH_VALUE C71088303F00E4FC // INDEX 2351 -uiFace2Tr [HAUTEUR DU NEZ] +uiFace2Tr [Hauteur du nez] // HASH_VALUE C89FB8348300D808 // INDEX 2352 -uiFace3Tr [LONGUEUR DU NEZ] +uiFace3Tr [Longueur du nez] // HASH_VALUE 47F2CC0B0AAFD015 // INDEX 2353 -uiFace4Tr [LARGEUR DU NEZ] +uiFace4Tr [Largeur du nez] // HASH_VALUE 81F13C064CD21B42 // INDEX 2354 -uiFace5Tr [LARGEUR DE LA BOUCHE] +uiFace5Tr [Largeur de la bouche] // HASH_VALUE 90B2172BCCE15A26 // INDEX 2355 -uiFace6Tr [HAUTEUR DE LA BOUCHE] +uiFace6Tr [Hauteur de la bouche] // HASH_VALUE 09E1982DC4006306 // INDEX 2356 -uiFace7Tr [TAILLE DES OREILLES] +uiFace7Tr [Taille des oreilles] // HASH_VALUE 4C50840C4C50840C // INDEX 2357 -uiFace8Tr [MENTON] +uiFace8Tr [Menton] // HASH_VALUE CC91F82DC4002F11 // INDEX 2358 -uiFace1Zo [TAILLE DES YEUX] +uiFace1Zo [Taille des yeux] // HASH_VALUE 3ABEFC3D4E12BEE4 // INDEX 2359 -uiFace2Zo [CORNE : EN BAS 1] +uiFace2Zo [Corne : en bas 1] // HASH_VALUE 7ABEFC3D4E12C2E4 // INDEX 2360 -uiFace3Zo [CORNE : EN BAS 2] +uiFace3Zo [Corne : en bas 2] // HASH_VALUE 388E9C2AC9C1A6EF // INDEX 2361 -uiFace4Zo [CORNE : AU MILIEU 1] +uiFace4Zo [Corne : au milieu 1] // HASH_VALUE 788E9C2AC9C1AAEF // INDEX 2362 -uiFace5Zo [CORNE : AU MILIEU 2] +uiFace5Zo [Corne : au milieu 2] // HASH_VALUE B87D1F3BCB4FD6FA // INDEX 2363 -uiFace6Zo [CORNE : EN HAUT 1] +uiFace6Zo [Corne : en haut 1] // HASH_VALUE 360E7A30D0522A0C // INDEX 2364 -uiFace7Zo [CORNE : EN HAUT 2] +uiFace7Zo [Corne : en haut 2] // HASH_VALUE 1884DB5E28B067C1 // INDEX 2365 -uiInvalid [n'est pas un nom autorisé] +uiInvalid [n'est pas un nom autorisé.] // HASH_VALUE 53005EA9ABC8A864 // INDEX 2366 -uiValid [est un nom autorisé] +uiValid [est un nom autorisé.] // HASH_VALUE 83B10304CECF23E2 // INDEX 2367 -uiSummaryTitle [QUEL NOM SOUHAITEZ-VOUS PRENDRE ?] +uiSummaryTitle [Quel nom souhaitez-vous porter ?] // HASH_VALUE 856F6F1D7831E300 // INDEX 2368 -uiEnterName [SAISIR UN NOM :] +uiEnterName [Saisir un nom :] // HASH_VALUE EBD96355AAC4735D // INDEX 2369 @@ -9758,39 +9758,39 @@ uiValidName [Tester le nom] // HASH_VALUE 8871CC3A0EA0BC22 // INDEX 2370 -uiRand [RANDOMISER] +uiRand [Choisir au hasard ?] // HASH_VALUE C660981A89B09825 // INDEX 2371 -uiRand1 [TOUT] +uiRand1 [Tout] // HASH_VALUE 86D2681D85E1AC1F // INDEX 2372 -uiRand2 [CARRIERE] +uiRand2 [Carrière] // HASH_VALUE 44D0144844D01448 // INDEX 2373 -uiRand3 [CIVILISATION] +uiRand3 [Civilisation] // HASH_VALUE 0F93D8438C432435 // INDEX 2374 -uiRand4 [SEXE] +uiRand4 [Sexe] // HASH_VALUE 5810F4085810F408 // INDEX 2375 -uiRand5 [CORPS] +uiRand5 [Corps] // HASH_VALUE 44D0141844D01418 // INDEX 2376 -uiRand6 [VISAGE] +uiRand6 [Visage] // HASH_VALUE 4DE104244D511433 // INDEX 2377 -uiRand7 [COULEURS] +uiRand7 [Couleurs] // HASH_VALUE 5F39D89917F49466 // INDEX 2378 -uiSelInfos [INFORMATIONS\n +uiSelInfos [INFORMATION\n \n Vous disposez de 5 emplacements pour sauvegarder 5 personnages différents.\n Pour créer un nouveau personnage, vous devez sélectionner un emplacement libre.\n @@ -9799,14 +9799,14 @@ uiSelInfos [INFORMATIONS\n // HASH_VALUE D9161EE8306CE124 // INDEX 2379 -uiCultFy [LES FYROS : GUERRIERS DU FEU ET MAITRES DES DESERTS ARDENTS\n +uiCultFy [LES FYROS : GUERRIERS DU FEU ET MAÎTRES DU DÉSERT ARDENT\n \n Les Fyros sont une race de guerriers.\n Leur société repose sur un code de l'honneur strict et sur un but commun : la quête du Grand Dragon qui a ravagé des régions entières de la planète.] // HASH_VALUE BD8E5DB70F346936 // INDEX 2380 -uiCultMa [LES MATIS : MAITRES MANIPULATEURS DE LA NATURE ET SEIGNEURS DES FORETS LUXURIANTES\n +uiCultMa [LES MATIS : MAÎTRES MANIPULATEURS DE LA NATURE ET SEIGNEURS DE LA LUXURIANTE FORÊT\n \n Les Matis sont un peuple romantique et autoritaire.\n Ils sont obsédés par les mutations génétiques qui sont des merveilles à contempler.\n @@ -9814,15 +9814,15 @@ uiCultMa [LES MATIS : MAITRES MANIPULATEURS DE LA NATURE ET SEIGNEURS DES FORETS // HASH_VALUE 6D776444536B145E // INDEX 2381 -uiCultTr [LES TRYKERS : AMIS DES VENTS ET DES COURANTS, PRINCES DE LA REGION DES LACS\n +uiCultTr [LES TRYKERS : AMIS DES VENTS ET DES COURANTS, PRINCES DE LA RÉGION DES LACS\n \n - Les Trykers sont des hédonistes rusés formant une fédération plus qu'un simple peuple.\n - Ils vivent tels des Homins libres.\n + Les Trykers sont des hédonistes rusés formant une Fédération plus qu'un simple peuple.\n + Ils vivent en homins libres.\n Les autres races les considèrent comme des brigands indisciplinés. ] // HASH_VALUE AB92CE5AC6C599F2 // INDEX 2382 -uiCultZo [LES ZORAÏS : MAGICIENS DES JUNGLES DES TERRES MALADES\n +uiCultZo [LES ZORAÏS : MAGES DE LA JUNGLE DU PAYS MALADE\n \n Les Zoraïs sont les êtres mystiques d'Atys.\n Ils sont devenus maîtres dans la manipulation des champs magnétiques qu'ils utilisent pour la fabrication des armes et des bâtiments.] @@ -9845,78 +9845,78 @@ uiEcoZo [] // HASH_VALUE E512F038A22B4E1E // INDEX 2387 -uiExplcarac [CARACTERISTIQUES\n +uiExplcarac [CARACTÉRISTIQUES\n \n Vous avez 20 points à ajouter à vos caractéristiques.\n \n - REGLES:\n + RÈGLES :\n -La valeur minimum est de 20.\n -La valeur de base peut être réduite de 5 points max.\n -La valeur de base peut être augmentée de 10 points max.] // HASH_VALUE 0182D82842B2D420 // INDEX 2388 -uiExplF [EXPLICATIONS DES COMBATTANTS] +uiExplF [Explication sur les combattants] // HASH_VALUE 49814C0ACA60DF30 // INDEX 2389 -uiExplM [EXPLICATIONS DES MAGICIENS] +uiExplM [Explication sur les mages] // HASH_VALUE CB31FF4B87CFB824 // INDEX 2390 -uiExplR [EXPLICATIONS DES RANGERS] +uiExplR [Explication sur les tireurs] // HASH_VALUE CA0FF03289D11630 // INDEX 2391 -uiMoreFFy [GUERRIER FYROS : LE FURIEUX] +uiMoreFFy [Guerrier fyros : le furieux] // HASH_VALUE 43E2743B9051DF2C // INDEX 2392 -uiMoreFMa [GUERRIER MATISIEN : LE PORTEUR D'EPEE] +uiMoreFMa [Guerrier matis : le porteur d'épée] // HASH_VALUE FC63BC31450D2032 // INDEX 2393 -uiMoreFTr [GUERRIER TRYKER : LE BRETTEUR] +uiMoreFTr [Guerrier tryker : le bretteur] // HASH_VALUE 87412441CB0DA6FC // INDEX 2394 -uiMoreFZo [GUERRIER ZORAÏ : LE POING KAMIC] +uiMoreFZo [Guerrier zoraï : le poing kamique] // HASH_VALUE 7EF2EC3680310F29 // INDEX 2395 -uiMoreMFy [MAGICIEN FYROS : LE CORRUPTEUR] +uiMoreMFy [Mage fyros : le corrupteur] // HASH_VALUE 8AA06F000C8E5C30 // INDEX 2396 -uiMoreMMa [MAGICIEN MATISIEN : LE PESTILENTIEL] +uiMoreMMa [Mage matis : le pestilentiel] // HASH_VALUE C6D16B4BC53EA0F5 // INDEX 2397 -uiMoreMTr [MAGICIEN TRYKER : L'EPOUSTOUFLANT] +uiMoreMTr [Mage tryker : l'époustouflant] // HASH_VALUE FF1103387DF02327 // INDEX 2398 -uiMoreMZo [MAGICIEN ZORAÏ : LA FURIE KAMIQUE] +uiMoreMZo [Mage zoraï : la furie kamique] // HASH_VALUE 8C32822D47829A1C // INDEX 2399 -uiMoreRFy [RANGER FYROS : LE CHASSEUR ECARLATE] +uiMoreRFy [Tireur fyros : le chasseur écarlate] // HASH_VALUE 48DFD824C3A3900F // INDEX 2400 -uiMoreRMa [RANGER MATISIEN : LE CHASSEUR VERT] +uiMoreRMa [Tireur matis : le chasseur vert] // HASH_VALUE 4C8F1734109C872D // INDEX 2401 -uiMoreRTr [RANGER TRYKER : LE CHASSEUR DE L'OMBRE] +uiMoreRTr [Tireur tryker : le chasseur de l'ombre] // HASH_VALUE 0CEF6087C9C2C90A // INDEX 2402 -uiMoreRZo [RANGER ZORAÏ : LE GARDIEN D'ATYS] +uiMoreRZo [Tireur zoraï : le gardien d'Atys] // HASH_VALUE 09F2BC313A8EC7F3 // INDEX 2403 -uiTeamChatTitle [CHAT DE L'EQUIPE] +uiTeamChatTitle [CHAT DE L'ÉQUIPE] // HASH_VALUE 45812B1C0E4EB813 // INDEX 2404 @@ -9924,11 +9924,11 @@ uiFriendList [LISTE D'AMIS] // HASH_VALUE C81227254C1ED00C // INDEX 2405 -uiIgnoreList [LISTE A IGNORER] +uiIgnoreList [LISTE À IGNORER] // HASH_VALUE CF114F418A60E404 // INDEX 2406 -uiSystemInfoTitle [INFOS SYSTEMES] +uiSystemInfoTitle [INFOS SYSTÈME] // HASH_VALUE 0C8198F3FF7FDC44 // INDEX 2407 @@ -9940,7 +9940,7 @@ uiUniverseTitle [UNIVERS] // HASH_VALUE 8801883A87B2AC37 // INDEX 2409 -uiRegionTitle [REGION] +uiRegionTitle [RÉGION] // HASH_VALUE 8F50470F82805715 // INDEX 2410 @@ -9948,15 +9948,15 @@ uiGuildChat [CHAT DE LA GUILDE] // HASH_VALUE 8C72F72D7FF3273C // INDEX 2411 -uiPartyChat [SESSION DE CHAT] +uiPartyChat [Session de chat] // HASH_VALUE 7FC236417613BC31 // INDEX 2412 -uiNewPartyChat [NOUVELLE SESSION DE CHAT] +uiNewPartyChat [Nouvelle session de chat] // HASH_VALUE 4903C42F4B02943A // INDEX 2413 -uiTeamTitle [EQUIPE] +uiTeamTitle [ÉQUIPE] // HASH_VALUE CB21A82C8BA1B420 // INDEX 2414 @@ -9964,15 +9964,15 @@ uiGUILD [GUILDE] // HASH_VALUE 4C5054504C505450 // INDEX 2415 -uiTEAM [EQUIPE] +uiTEAM [ÉQUIPE] // HASH_VALUE 4E73BC40CA131C2E // INDEX 2416 -uiSAY [DIRE] +uiSAY [Dire] // HASH_VALUE 4F02FC440EF2144B // INDEX 2417 -uiSHOUT [CRIER] +uiSHOUT [Crier] // HASH_VALUE 7058542C7058542C // INDEX 2418 @@ -9980,47 +9980,47 @@ uiKeepInfoButton [Conserver] // HASH_VALUE ECB89CF96AE9664D // INDEX 2419 -uittKeepInfo [Conserver l'info dans cette fenêtre.] +uittKeepInfo [Conserver l'info dans cette fenêtre] // HASH_VALUE 45FB9FEFF875C517 // INDEX 2420 uihelpItemMagicBonusAll [@{FFF9}Bonus pour Magie :\n - @{T3}Vitesse du Sort :@{T19}@{FFFF}%cs%@{FFF9}\n + @{T3}Vitesse du sort :@{T19}@{FFFF}%cs%@{FFF9}\n @{T3}Puissance :@{T19}@{FFFF}%mp%\n ] // HASH_VALUE 2FB33DD3AB8213E8 // INDEX 2421 -uihelpItemMagicBonusOffElemental [@{FFF9}Bonus pour Magie Destructrice Elémentaire :\n - @{T3}Vitesse du Sort :@{T19}@{FFFF}%cs%@{FFF9}\n +uihelpItemMagicBonusOffElemental [@{FFF9}Bonus pour magie élémentaire :\n + @{T3}Vitesse du sort :@{T19}@{FFFF}%cs%@{FFF9}\n @{T3}Puissance :@{T19}@{FFFF}%mp%\n ] // HASH_VALUE 2098D0E88AF919A7 // INDEX 2422 -uihelpItemMagicBonusOffAffliction [@{FFF9}Bonus pour Magie Débilitante :\n - @{T3}Vitesse du Sort :@{T19}@{FFFF}%cs%@{FFF9}\n +uihelpItemMagicBonusOffAffliction [@{FFF9}Bonus pour Magie débilitante :\n + @{T3}Vitesse du sort :@{T19}@{FFFF}%cs%@{FFF9}\n @{T3}Puissance :@{T19}@{FFFF}%mp%\n ] // HASH_VALUE DD4432757076566B // INDEX 2423 -uihelpItemMagicBonusDefHeal [@{FFF9}Bonus pour Magie Salvatrice Curative :\n - @{T3}Vitesse du Sort :@{T19}@{FFFF}%cs%@{FFF9}\n +uihelpItemMagicBonusDefHeal [@{FFF9}Bonus pour Magie curative :\n + @{T3}Vitesse du sort :@{T19}@{FFFF}%cs%@{FFF9}\n @{T3}Puissance :@{T19}@{FFFF}%mp%\n ] // HASH_VALUE 2088A4E88AF919A7 // INDEX 2424 -uihelpItemMagicBonusDefAffliction [@{FFF9}Bonus pour Magie Salvatrice Neutralisante :\n - @{T3}Vitesse du Sort :@{T19}@{FFFF}%cs%@{FFF9}\n +uihelpItemMagicBonusDefAffliction [@{FFF9}Bonus pour Magie neutralisante :\n + @{T3}Vitesse du sort :@{T19}@{FFFF}%cs%@{FFF9}\n @{T3}Puissance :@{T19}@{FFFF}%mp%\n ] // HASH_VALUE 4A4CE5C3DA44A737 // INDEX 2425 uihelpItemMagicBonusHeader [\n - @{FFFF}Bonus de Magie @{FFF9}(seulement si le sort a un "Niveau de Sort" inférieur ou égal à @{FFFF}%mglvl@{FFF9}):\n + @{FFFF}Bonus de Magie @{FFF9}(seulement si le sort a un "niveau de sort" inférieur ou égal à @{FFFF}%mglvl@{FFF9}):\n ] // HASH_VALUE 49F09B8ED6794263 @@ -10035,12 +10035,12 @@ uihelpItemHpMalus [@{FFF9}Pénalité Vie :@{T21}@{F44F}%val\n // HASH_VALUE C22128B75D575A2C // INDEX 2428 -uihelpItemSapBonus [@{FFF9}Bonus en Sève :@{T21}@{2F2F}%val\n +uihelpItemSapBonus [@{FFF9}Bonus Sève :@{T21}@{2F2F}%val\n ] // HASH_VALUE 060079B75D57521E // INDEX 2429 -uihelpItemSapMalus [@{FFF9}Pénalité en Sève :@{T21}@{F44F}%val\n +uihelpItemSapMalus [@{FFF9}Pénalité Sève :@{T21}@{F44F}%val\n ] // HASH_VALUE 74BAE89A0594E3CA @@ -10075,7 +10075,7 @@ uihelpMagicProtectFormat [@{T4}@{FFF9}%t:@{T18}@{FFFF}+%v%\n // HASH_VALUE ED2AD1F20B1DE4B3 // INDEX 2436 -uihelpMagicProtectMaxAbsorbFormat [@{T4}@{FFF9}Max Absorbés:@{T18}@{FFFF}+%v\n +uihelpMagicProtectMaxAbsorbFormat [@{T4}@{FFF9}Max absorbés:@{T18}@{FFFF}+%v\n ] // HASH_VALUE FCD4C98932A028D0 @@ -10098,23 +10098,23 @@ uihelpItemFaberPrefix [%p %n] // HASH_VALUE 6607E86F1EA7C081 // INDEX 2441 -uiItemRMClass0 [de Base] +uiItemRMClass0 [de base] // HASH_VALUE 6498941864989418 // INDEX 2442 -uiItemRMClass1 [Fin(e)] +uiItemRMClass1 [fin(e)] // HASH_VALUE 27567C58E7947078 // INDEX 2443 -uiItemRMClass2 [de Choix] +uiItemRMClass2 [de choix] // HASH_VALUE A058808C2A3884AC // INDEX 2444 -uiItemRMClass3 [Excellent(e)] +uiItemRMClass3 [excellent(e)] // HASH_VALUE A95AF4AAE9E96C8A // INDEX 2445 -uiItemRMClass4 [Suprême] +uiItemRMClass4 [suprême] // HASH_VALUE 5D26625CB2217642 // INDEX 2446 @@ -10122,11 +10122,11 @@ uiItemFX_ISE_FIGHT_ADD_CRITICAL [@{2F2F}+%p% @{FFFF}de chance de porter un coup // HASH_VALUE BE7D5E89F09FE48B // INDEX 2447 -uiItemFX_ISE_FIGHT_VAMPIRISM [@{2F2F}%p% @{FFFF}de chance de vampiriser l'ennemi (dégats infligés ajoutés à sa propre vie)] +uiItemFX_ISE_FIGHT_VAMPIRISM [@{2F2F}%p% @{FFFF}de chance de vampiriser l'ennemi (dégâts infligés ajoutés à sa propre vie)] // HASH_VALUE C95C259659D8F880 // INDEX 2448 -uiItemFX_ISE_MAGIC_DIVINE_INTERVENTION [@{2F2F}%p% @{FFFF}de chance que le sort lancé n'applique les contreparties] +uiItemFX_ISE_MAGIC_DIVINE_INTERVENTION [@{2F2F}%p% @{FFFF}de chance que le sort lancé n'applique pas les contreparties] // HASH_VALUE D3DC792607B34F92 // INDEX 2449 @@ -10134,7 +10134,7 @@ uiItemFX_ISE_MAGIC_SHOOT_AGAIN [@{2F2F}%p% @{FFFF}de chance que le prochain sort // HASH_VALUE 14C6AB5BBD7F0131 // INDEX 2450 -uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}de chance d'ajouter un bonus de @{2F2F}%r @{FFFF}plus un bonus lié à la qualité de l'objet fabriqué, à la valeur d'un score de cet objet] +uiItemFX_ISE_CRAFT_ADD_STAT_BONUS [@{2F2F}%p% @{FFFF}de chance d'ajouter, en plus d'un bonus @{2F2F}%r @{FFFF}à la valeur d'une caractéristique de l'objet fabriqué, un bonus lié à la qualité de de cet objet] // HASH_VALUE 64B7C8128FA0596D // INDEX 2451 @@ -10201,21 +10201,21 @@ uihelpItemDefaultFormat [@{FFF9}@{HuittInfoWeight}Poids :@{H}@{T12}@{FFFF}%weigh // HASH_VALUE 33BBBD4A8EBCBED9 // INDEX 2464 -uihelpItemCantSell [@{F80B}Cet objet ne peut pas être vendu au marchand@{FFFF}\n +uihelpItemCantSell [@{F80B}Cet objet ne peut pas être vendu au marchand.@{FFFF}\n ] // HASH_VALUE A203D9DB12EA02AC // INDEX 2465 -uihelpItemCosmeticDontFit [@{F80B}Ce produit cosmétique ne s'applique pas à vous en raison de votre race ou sexe@{FFFF}\n +uihelpItemCosmeticDontFit [@{F80B}Ce produit cosmétique ne s'applique pas à vous en raison de votre race ou de votre sexe.@{FFFF}\n ] // HASH_VALUE 03E5545F85F4B4DE // INDEX 2466 -uihelpItemNoRent [@{F80B}Item Temporaire :@{FFFF}] +uihelpItemNoRent [@{F80B}Objet temporaire :@{FFFF}] // HASH_VALUE CC04DC80B5D30827 // INDEX 2467 -uihelpItemNoRentDesc [@{F80B}Cet item sera détruit lorsque vous vous deconnecterez@{FFFF}\n +uihelpItemNoRentDesc [@{F80B}Cet objet sera détruit lorsque vous vous déconnecterez.@{FFFF}\n ] // HASH_VALUE 68DDFECD9FC79CEE @@ -10235,14 +10235,14 @@ uihelpItemArmorFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF}%origi @{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n %cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoArmorType}Type d'Armure :@{H}@{T22}@{FFFF}%armor %armor_bonus\n + @{FFF9}@{HuittInfoArmorType}Type d'armure :@{H}@{T22}@{FFFF}%armor %armor_bonus\n @{FFF9}@{HuittInfoDodgeMod}Modif. d'Esquive :@{H}@{T22}@{FFFF}%dodge\n @{FFF9}@{HuittInfoParryMod}Modif. de Parade :@{H}@{T22}@{FFFF}%parry\n - @{FFF9}@{HuittInfoMalus}Pénalité de l'Action :@{H}@{T22}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoMalus}Pénalité de l'action :@{H}@{T22}@{FFFF}+%actmalus\n @{FFF9}@{HuittInfoArmorProtection}Protection :@{H}@{T22}@{FFFF}%protect%\n - @{FFF9} @{HuittInfoArmorSlash}Max / Cp Tranchant :@{H}@{T22}@{FFFF}%p_slash\n - @{FFF9} @{HuittInfoArmorBlunt}Max / Cp Contondant :@{H}@{T22}@{FFFF}%p_blunt\n - @{FFF9} @{HuittInfoArmorPierc}Max / Cp Perforant :@{H}@{T22}@{FFFF}%p_pierce\n + @{FFF9}@{HuittInfoArmorSlash}Max / Cp tranchant :@{H}@{T22}@{FFFF}%p_slash\n + @{FFF9}@{HuittInfoArmorBlunt}Max / Cp contondant :@{H}@{T22}@{FFFF}%p_blunt\n + @{FFF9}@{HuittInfoArmorPierc}Max / Cp perforant :@{H}@{T22}@{FFFF}%p_pierce\n %buffs%special_effects%desc%custom_text] // HASH_VALUE 13E0EBA3282D2876 @@ -10256,15 +10256,15 @@ uihelpItemMeleeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T17}@{FFFF} @{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T17}@{FFFF}%skill\n %cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T17}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoDamageType}Type de Dégâts :@{H}@{T23}@{FFFF}%dmtype\n + @{FFF9}@{HuittInfoDamageType}Type de dégâts :@{H}@{T23}@{FFFF}%dmtype\n @{FFF9}@{HuittInfoWeaponDamage}Dégâts :@{H}@{T23}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoWeaponHitMin}Coups/Minute :@{H}@{T23}@{FFFF}%speed\n + @{FFF9}@{HuittInfoWeaponHitMin}Coups / minute :@{H}@{T23}@{FFFF}%speed\n @{FFF9}@{HuittInfoWeaponReach}Portée :@{H}@{T23}@{FFFF}%reach\n - @{FFF9}@{HuittInfoDodgeMod}Modif. d'Esquive :@{H}@{T23}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Modif. de Parade :@{H}@{T23}@{FFFF}%parry\n - @{FFF9}@{HuittInfoTargetDodgeMod}Modif. d'Esquive/Cible :@{H}@{T23}@{FFFF}%adv_dodge\n - @{FFF9}@{HuittInfoTargetParryMod}Modif. de Parade/Cible :@{H}@{T23}@{FFFF}%adv_parry\n - @{FFF9}@{HuittInfoMalus}Pénalité de l'Action :@{H}@{T23}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoDodgeMod}Modification d'Esquive :@{H}@{T23}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Modification de Parade :@{H}@{T23}@{FFFF}%parry\n + @{FFF9}@{HuittInfoTargetDodgeMod}Modif. d'Esquive / cible :@{H}@{T23}@{FFFF}%adv_dodge\n + @{FFF9}@{HuittInfoTargetParryMod}Modif. de Parade / cible :@{H}@{T23}@{FFFF}%adv_parry\n + @{FFF9}@{HuittInfoMalus}Pénalité de l'action :@{H}@{T23}@{FFFF}+%actmalus\n %magic_bonus%buffs%special_effects%skill_mod_vs_type%desc%custom_text%enchantment] // HASH_VALUE 3C0F81B91BD521BD @@ -10279,13 +10279,13 @@ uihelpItemRangeWeaponFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF} %cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n @{FFF9}@{HuittInfoWeaponRDamage}Dégâts :@{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoWeaponRHitMin}Coups/Minute :@{H}@{T12}@{FFFF}%speed\n + @{FFF9}@{HuittInfoWeaponRHitMin}Coups / minute :@{H}@{T12}@{FFFF}%speed\n @{FFF9}@{HuittInfoWeaponRange}Portée :@{H}@{T12}@{FFFF}%range\n - @{FFF9}@{HuittInfoDodgeMod}Modif. d'Esquive :@{H}@{T12}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Modif. de Parade :@{H}@{T12}@{FFFF}%parry\n - @{FFF9}@{HuittInfoTargetDodgeMod}Modif. d'Esquive/Cible :@{H}@{T12}@{FFFF}%adv_dodge\n - @{FFF9}@{HuittInfoTargetParryMod}Modif. de Parade/Cible :@{H}@{T12}@{FFFF}%adv_parry\n - @{FFF9}@{HuittInfoMalus}Pénalité de l'Action :@{H}@{T12}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoDodgeMod}Modification d'Esquive :@{H}@{T12}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Modiication. de Parade :@{H}@{T12}@{FFFF}%parry\n + @{FFF9}@{HuittInfoTargetDodgeMod}Modif. d'Esquive / cible :@{H}@{T12}@{FFFF}%adv_dodge\n + @{FFF9}@{HuittInfoTargetParryMod}Modif. de Parade / cible :@{H}@{T12}@{FFFF}%adv_parry\n + @{FFF9}@{HuittInfoMalus}Pénalité de l'action :@{H}@{T12}@{FFFF}+%actmalus\n %magic_bonus%buffs%special_effects%skill_mod_vs_type%desc%custom_text%enchantment] // HASH_VALUE 1589D2AD17955FDD @@ -10298,10 +10298,10 @@ uihelpItemAmmoFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}%origin @{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T12}@{FFFF}%skill\n %cansell\n @{FFF9}@{HuittInfoAmmoMagazine}Chargeur :@{H}@{T12}@{FFFF}%magazine\n - @{FFF9}@{HuittInfoDamageType}Type de Dégâts :@{H}@{T12}@{FFFF}%dmtype\n - @{FFF9}@{HuittInfoAmmoDamage}Dégâts :@{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n - @{FFF9}@{HuittInfoAmmoHitMin}Coups/Minute :@{H}@{T12}@{FFFF}%speed\n - @{FFF9}@{HuittInfoAmmoRange}Portée :@{H}@{T12}@{FFFF}%range\n + @{FFF9}@{HuittInfoDamageType}Type de dégâts :@{H}@{T12}@{FFFF}%dmtype\n + @{FFF9} @{HuittInfoAmmoDamage}Dégâts :@{H}@{T12}@{FFFF}%dmg (@{T12}@{FFFF}%max_dmg)\n + @{FFF9} @{HuittInfoAmmoHitMin}Coups / minute :@{H}@{T12}@{FFFF}%speed\n + @{FFF9} @{HuittInfoAmmoRange}Portée :@{H}@{T12}@{FFFF}%range\n \n @{FFFF}%desc] @@ -10311,7 +10311,7 @@ uihelpItemMPFormat [@{FFF9}@{HuittInfoMpQuality}Qualité :@{H}@{T13}@{FFFF}%qual @{FFF9}@{HuittInfoWeight}Poids :@{H}@{T13}@{FFFF}%weight Kg\n @{FFF9}@{HuittInfoBulk}Volume :@{H}@{T13}@{FFFF}%bulk\n %cansell\n - @{FFF9}@{HuittInfoMpEco}Ecosystème :@{H}@{T13}@{FFFF}%ecosystem\n + @{FFF9}@{HuittInfoMpEco}Écosystème :@{H}@{T13}@{FFFF}%ecosystem\n @{FFF9}@{HuittInfoMpFam}Famille :@{H}@{T13}@{FFFF}%family\n @{FFF9}@{HuittInfoMpColor}Couleur :@{H}@{T13}@{FFFF}%mpcolor\n @{FFFF}%desc\n @@ -10334,7 +10334,7 @@ uihelpItemMPCraft [@{FFF9}Peut servir à la création d'objets :\n // HASH_VALUE 14FEA68DBA9776FB // INDEX 2477 -uihelpItemMPNoCraft [@{FFF9}Ceci est un objet de mission. Vous ne pouvez pas l'utiliser dans le cadre d'un Artisanat.@{FFFF}\n +uihelpItemMPNoCraft [@{FFF9}Ceci est un objet de mission. Vous ne pouvez pas l'utiliser dans le cadre d'un artisanat.@{FFFF}\n ] // HASH_VALUE 3BFD23539F5DEDFE @@ -10352,7 +10352,7 @@ iompfUnknown [] // HASH_VALUE 8ED7187C1D73FF4A // INDEX 2481 -iompfCommon [Toutes les Races] +iompfCommon [Toutes les races] // HASH_VALUE 32470394DCB80797 // INDEX 2482 @@ -10391,12 +10391,12 @@ uihelpItemShieldFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}%orig @{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n %cansell@{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T12}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n \n - @{FFF9}@{HuittInfoShieldCat}Categorie :@{H}@{T12}@{FFFF}%cat\n - @{FFF9}@{HuittInfoDodgeMod}Modif. d'Esquive :@{H}@{T18}@{FFFF}%dodge\n - @{FFF9}@{HuittInfoParryMod}Modif. de Parade :@{H}@{T18}@{FFFF}%parry\n - @{FFF9}@{HuittInfoMalus}Pénalité de l'Action :@{H}@{T18}@{FFFF}+%actmalus\n + @{FFF9}@{HuittInfoShieldCat}Catégorie :@{H}@{T12}@{FFFF}%cat\n + @{FFF9}@{HuittInfoDodgeMod}Modification d'Esquive :@{H}@{T18}@{FFFF}%dodge\n + @{FFF9}@{HuittInfoParryMod}Modification de Parade :@{H}@{T18}@{FFFF}%parry\n + @{FFF9}@{HuittInfoMalus}Pénalité de l'action :@{H}@{T18}@{FFFF}+%actmalus\n @{FFF9}@{HuittInfoArmorProtection}Protection :@{H}@{T12}@{FFFF}%protect%\n - @{FFF9} @{HuittInfoArmorSlash}Max / Cp Tranchant :@{H}@{T12}@{FFFF}%p_slash\n + @{FFF9} @{HuittInfoArmorSlash}Max / Cp tranchant :@{H}@{T12}@{FFFF}%p_slash\n @{FFF9} @{HuittInfoArmorBlunt}Max / Cp Contondant :@{H}@{T12}@{FFFF}%p_blunt\n @{FFF9} @{HuittInfoArmorPierc}Max / Cp Perforant :@{H}@{T12}@{FFFF}%p_pierce\n %buffs%special_effects%desc%custom_text] @@ -10408,10 +10408,10 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF @{FFF9}@{HuittInfoWeight}Poids :@{H}@{T14}@{FFFF}%weight Kg\n @{FFF9}@{HuittInfoBulk}Volume :@{H}@{T14}@{FFFF}%bulk\n @{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T14}@{FFFF}%hp / %hpmax\n - @{FFF9}@{HuittToolCraftType}Type d'Outil :@{H}@{T14}@{FFFF}%tool\n + @{FFF9}@{HuittToolCraftType}Type d'outil :@{H}@{T14}@{FFFF}%tool\n %cansell\n @{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n - %buffs\n + %buffs\n %special_effects\n \n @{FFFF}%desc%custom_text] @@ -10439,8 +10439,8 @@ uihelpItemTamingToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T12}@{FFFF}% @{FFF9}@{HuittInfoHP}Points de Vie :@{H}@{T12}@{FFFF}%hp / %hpmax\n @{FFF9}@{HuittInfoItemSkill}Compétence :@{H}@{T12}@{FFFF}%skill\n %cansell\n - @{FFF9}Portée Commande :@{T12}@{FFFF}%cmdrange\n - @{FFF9}Animaux de Bât Max :@{T12}@{FFFF}%maxpacker\n + @{FFF9}Portée de la commande :@{T12}@{FFFF}%cmdrange\n + @{FFF9}Max. Animaux de bât :@{T12}@{FFFF}%maxpacker\n \n @{FFFF}%desc%custom_text] @@ -10462,9 +10462,9 @@ uihelpItemCrystalSpell [Cet objet peut servir à\n \n Placez l'arme à enchanter dans votre main droite.\n \n - Puis faites un clic-droit sur le cristal, et choisissez "ENCHANTER MAIN DROITE".\n + Puis faites un clic droit sur le cristal, et choisissez "Enchanter l'arme de la main droite".\n \n - Attention ! Appliquer un sort cristallisé supprime l'enchantement précédent et vide la charge en sève actuelle.\n + Attention ! Appliquer un sort cristallisé supprime l'enchantement précédent.\n \n %cansell%enchantment%custom_text] @@ -10474,36 +10474,28 @@ uihelpItemChargeSpell [@{FFF9}Charge en Sève :@{T12}@{FFFF}%quality\n @{FFF9}@{HuittInfoBulk}Volume :@{H}@{T12}@{FFFF}%bulk\n \n Cet objet peut servir à\n - recharger la sève d'une arme enchantée.\n + recharger la Sève d'une arme enchantée.\n \n Placez l'arme à recharger dans votre main droite.\n \n - Puis faites un clic-droit sur la charge, et choisissez "RECHARGER MAIN DROITE".\n + Puis faites un clic droit sur la charge, et choisissez "Recharger l'arme de la main droite".\n \n - La Charge en Sève courante et maximum d'un objet peut être consultée avec un clic-droit sur l'objet puis en sélectionnant 'info'.\n + La charge en Sève courante et maximum d'un objet peut être consultée avec un clic droit sur l'objet puis en sélectionnant 'info'.\n %cansell%custom_text] // HELP - ITEM - animals // ************** -/* OLD VALUE : [This item represent one -of your animal. -You can give or sell an animal through this item, but only if your animal's inventory is empty! -%cansell%desc%custom_text] */ -/* OLD VALUE : [Cet objet représente un - de vos animaux. - Vous pouvez donner ou vendre un animal via cet objet, mais seulement si l'inventaire de votre animal est vide ! -%cansell%desc%custom_text] */ // HASH_VALUE E83415184D022FA7 // INDEX 2496 -uihelpItemAnimal [Cet objet représente \n +uihelpItemAnimal [Cet objet représente\n votre animal n°#%petnumber.\n \n Vous pouvez donner ou vendre un animal via cet objet, mais seulement si l'inventaire de votre animal est vide !%cansell%desc%custom_text] // HASH_VALUE CB10EC5C14C1477D // INDEX 2497 -uihelpItemTeleport [Pour l'utiliser, faites un clic-droit et choisissez\n - "UTILISER TELEPORTEUR"\n +uihelpItemTeleport [Pour l'utiliser, faites un clic droit et choisissez\n + "Utiliser le téléporteur"\n \n \n %cansell%desc%custom_text] @@ -10518,7 +10510,7 @@ uihelpBrickFormat [@{FFF9}Niveau :@{T8}@{FFFF}%lvl\n // HASH_VALUE E9693C64187AA7CC // INDEX 2499 -uihelpBrickMagicResist [@{FFF9}Domaine de Magie :\n +uihelpBrickMagicResist [@{FFF9}Domaine de la magie :\n @{T4}@{FFFF}%t\n ] @@ -10541,7 +10533,7 @@ uihelpBrickFaberFormat [@{FFF9}Niveau :@{T8}@{FFFF}%lvl\n %ks@{FFF9}Compétence :@{T8}@{FFFF} %skill\n %ks@{FFF9}%hcost:@{T8}@{FFFF}%cost\n \n - @{FFF9}Type d'Outil :@{T8}@{FFFF}%tool\n + @{FFF9}Type d'outil :@{T8}@{FFFF}%tool\n @{FFF9}Parties de l'objet requises :@{FFFF}\n %mpinfo@{FFF9}Objets spécifiques requis :@{FFFF}\n %mpformula\n @@ -10557,11 +10549,11 @@ uihelpMpNone [@{T4}Aucun\n uihelpAuraDisabled [\n \n Cette aura est désactivée.\n - Vous devez être en dehors de la zone, où vous devez attendre un peu avant que cette aura agisse à nouveau.] + Vous devez être en dehors de la zone, ou vous devez attendre un peu avant que cette aura agisse à nouveau.] // HASH_VALUE 5072B2C842D8F4AE // INDEX 2506 -uittAuraDisabled [ - Aura Désactivée] +uittAuraDisabled [ - Aura désactivée] // HASH_VALUE 41CC871412930664 // INDEX 2507 @@ -10576,8 +10568,8 @@ uihelpPhraseCombatFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n \n %compostartCes caractéristiques dépendent de l'arme équipée.\n @{FFF9}@{HuittActionSuccessRateSF}Réussite :@{H}@{T16}@{FFFF}%success%\n - @{FFF9}Endurance Consommée :@{T16}@{FFFF}%energy_cost\n - @{FFF9}Vie Consommée :@{T16}@{FFFF}%hp_cost\n + @{FFF9}Endurance consommée :@{T16}@{FFFF}%energy_cost\n + @{FFF9}Vie consommée :@{T16}@{FFFF}%hp_cost\n @{FFFF}%desc%req] // HASH_VALUE 6D6328B568C27DD6 @@ -10585,18 +10577,18 @@ uihelpPhraseCombatFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n uihelpPhraseMagicFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n - @{FFF9}@{HuittActionSpellLevel}Niveau du Sort :@{H}@{T12}@{FFFF}%mglvl\n + @{FFF9}@{HuittActionSpellLevel}Niveau du sort :@{H}@{T12}@{FFFF}%mglvl\n %magicresist\n %compostart@{FFF9}@{HuittActionSuccessRateSM}Réussite :@{H}@{T12}@{FFFF}%success%\n @{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration secondes\n - @{FFF9}Sève Consommée :@{T12}@{FFFF}%energy_cost\n - @{FFF9}Vie Consommée :@{T12}@{FFFF}%hp_cost\n + @{FFF9}Sève consommée :@{T12}@{FFFF}%energy_cost\n + @{FFF9}Vie consommée :@{T12}@{FFFF}%hp_cost\n @{FFF9}Portée :@{T12}@{FFFF}%range\n @{FFFF}%desc%req] // HASH_VALUE E9693C64187AA7CC // INDEX 2510 -uihelpPhraseMagicResist [@{FFF9}Domaine de Magie :\n +uihelpPhraseMagicResist [@{FFF9}Domaine de la magie :\n @{T4}@{FFFF}%t\n ] @@ -10615,23 +10607,23 @@ uihelpPhraseCraftFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n %compostart@{FFF9}@{HuittActionSuccessRateSC}Réussite :@{H}@{T12}@{FFFF}dépend de l'objet réellement créé (voir artisanat)\n - @{FFF9}Temps d'Incantation :@{T12}@{FFFF}%duration secondes\n - @{FFF9}Concentration Consommée :@{T12}@{FFFF}%energy_cost\n + @{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration secondes\n + @{FFF9}Concentration consommée :@{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE B5EEF9CDEFE4BF3A // INDEX 2514 uihelpPhraseForageExtractionFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n - @{FFF9}Credit :@{T12}@{FFFF}%credit\n + @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n - %compostart%suc_forage@{FFF9}Temps d'Incantation :@{T12}@{FFFF}%duration seconds\n - @{FFF9}Concentration Consommée :@{T12}@{FFFF}%energy_cost\n + %compostart%suc_forage@{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration seconds\n + @{FFF9}Concentration consommée :@{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE E1F8D905BBCF29E1 // INDEX 2515 -uihelpPhraseForageSuccessAll [@{FFF9}@{HuittActionSuccessRateSH}Réussite@{H} (Désert / Forêts / Jungle / Lacs / Primes Racines) :\n +uihelpPhraseForageSuccessAll [@{FFF9}@{HuittActionSuccessRateSH}Réussite@{H} (Désert / Forêt / Jungle / Lacs / Primes Racines) :\n @{T4}@{FFFF}%suc_desert%@{FFF9} / @{FFFF}%suc_forest%@{FFF9} / @{FFFF}%suc_jungle%@{FFF9} / @{FFFF}%suc_lake%@{FFF9} / @{FFFF}%suc_prime%\n ] @@ -10666,9 +10658,9 @@ uihelpPhraseOtherFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}Taux de Réussite :@{T12}@{FFFF}%success%\n - @{FFF9}Temps d'Incantation :@{T12}@{FFFF}%duration secondes\n - @{FFF9}Concentration Consommée :@{T12}@{FFFF}%energy_cost\n + %compostart@{FFF9}Taux de réussite :@{T12}@{FFFF}%success%\n + @{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration secondes\n + @{FFF9}Concentration consommée :@{T12}@{FFFF}%energy_cost\n @{FFFF}%desc%req] // HASH_VALUE 7BF23D9209DAD4A2 @@ -10677,7 +10669,7 @@ uihelpPhraseSpecialPowerFormat [@{FFF9}Action :@{T12}@{FFFF}%name\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n - %compostart@{FFF9}Portée:@{T12}@{FFFF}%range\n + %compostart@{FFF9}Portée :@{T12}@{FFFF}%range\n @{FFFF}%desc%req] // HASH_VALUE 54284AA3C257DE53 @@ -10688,10 +10680,10 @@ uihelpPhraseEnchantmentFormat [\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n - @{FFF9}Les actions sur les objets enchantés sont toujours un succès\n - @{FFF9}Temps d'Incantation :@{T12}@{FFFF}%duration secondes\n - @{FFF9}Sève Consommée :@{T12}@{FFFF}%energy_cost\n - @{FFF9}Vie Consommée :@{T12}@{FFFF}%hp_cost\n + @{FFF9}Les actions sur les objets enchantés sont toujours réussies.\n + @{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration secondes\n + @{FFF9}Sève consommée :@{T12}@{FFFF}%energy_cost\n + @{FFF9}Vie consommée :@{T12}@{FFFF}%hp_cost\n @{FFF9}Portée :@{T12}@{FFFF}%range\n ] @@ -10702,18 +10694,18 @@ uihelpPhraseCrystalSpellFormat [@{FFFF}--- Enchantement ---\n @{FFF9}Coût :@{T12}@{FFFF}%cost\n @{FFF9}Crédit :@{T12}@{FFFF}%credit\n \n - @{FFF9}Les actions sur les objets enchantés sont toujours un succès\n - @{FFF9}Temps d'Incantation :@{T12}@{FFFF}%duration secondes\n - @{FFF9}Sève Consommée :@{T12}@{FFFF}%energy_cost\n - @{FFF9}Vie Consommée :@{T12}@{FFFF}%hp_cost\n + @{FFF9}Les actions à partir d'objets enchantés sont toujours réussies.\n + @{FFF9}Temps d'incantation :@{T12}@{FFFF}%duration secondes\n + @{FFF9}Sève consommée :@{T12}@{FFFF}%energy_cost\n + @{FFF9}Vie consommée :@{T12}@{FFFF}%hp_cost\n @{FFF9}Portée :@{T12}@{FFFF}%range\n ] // HASH_VALUE 9719881D178D7D81 // INDEX 2525 uihelpPhraseRequirementHeader [\n - @{FFFF}--- Requirements ---\n - @{FFF9}@{HuittActionSkillPoint}Coût en Points de Compétences :@{H}@{T12}@{FFFF}%sp / %basesp\n + @{FFFF}--- Prérequis---\n + @{FFF9}@{HuittActionSkillPoint}Coût en points de compétences :@{H}@{T12}@{FFFF}%sp / %basesp\n @{FFF9}@{HuittActionSkillReq}Compétences requises :@{H}\n ] @@ -10724,7 +10716,7 @@ uihelpPhraseRequirementLine [@{T4}@{FFF9}Compétence @{FFFF}%s@{FFF9} de niveau // HASH_VALUE 03436449B0FD3CA9 // INDEX 2527 -uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Skill @{F80F}%s@{F80B} de niveau @{F80F}%d\n +uihelpPhraseRequirementNotMetLine [@{T4}@{F80B}Compétence @{F80F}%s@{F80B} de niveau @{F80F}%d\n ] // HASH_VALUE C4646B55D3A3471E @@ -10753,22 +10745,22 @@ uihelpPhraseCharacteristic [@{FFFF}Ceci est une mise à niveau qui augmente cert // INDEX 2532 uihelpPhraseProcEnchantment [@{FFFF}Avec cette action, vous pouvez utiliser l'enchantement de l'objet dans votre main droite.\n \n - Si l'objet dans votre main droite n'est pas enchanté, cette action ne peut pas être executée.\n + Si l'objet dans votre main droite n'est pas enchanté, cette action ne peut pas être exécutée.\n ] // HASH_VALUE 0B663B02619E27B2 // INDEX 2533 uihelpPactFormat [@{FFF9}Niveau :@{T12}@{FFFF}%lvl\n - @{FFF9}Points de vie consommés :@{T12}@{FFFF}%hp\n + @{FFF9}Points de Vie consommés :@{T12}@{FFFF}%hp\n @{FFF9}Endurance consommée :@{T12}@{FFFF}%sta\n @{FFF9}Sève consommée :@{T12}@{FFFF}%sap\n - @{FFF9}Compétences consommés :@{T12}@{FFFF}%skill\n + @{FFF9}Compétences consommées :@{T12}@{FFFF}%skill\n ] // HASH_VALUE A3640C075B010074 // INDEX 2534 uihelpOBFormat_Empty [@{FFFF}Ceci est une zone constructible.\n - En construisant cet espace le bâtiment actuel sera détruit.\n + En construisant à cet emplacement, le bâtiment actuel sera détruit.\n En revanche, il vous sera possible d'en fabriquer un nouveau.\n \n @{FFF9}Temps de construction : @{T12}@{FFFF}%costtime\n @@ -10777,7 +10769,7 @@ uihelpOBFormat_Empty [@{FFFF}Ceci est une zone constructible.\n // HASH_VALUE A2A17E19C1AD5601 // INDEX 2535 -uihelpOBFormat_TownHall [@{FFFF}Ceci est le hall d'avant-poste.\n +uihelpOBFormat_TownHall [@{FFFF}Ceci est le hall de l'avant-poste.\n Ce bâtiment donne accès à l'inventaire de la guilde lorsque l'on se trouve à proximité.\n Il est automatiquement acquis lorsque l'on gagne l'avant-poste.\n ] @@ -10794,11 +10786,11 @@ uihelpOBFormat_Driller [@{FFFF}%name\n @{FFF9}Coût d'installation : @{T12}@{FFFF}%costdapper\n \n @{FFFF}--- Matières extraites ---\n - @{FFF9}Cette foreuse extrait principalement des Matières de niveau @{FFFF}%lvl] + @{FFF9}Cette foreuse extrait principalement des matières de niveau @{FFFF}%lvl] // HASH_VALUE 91F02F314780B0F7 // INDEX 2537 -uihelpTitleInfo [INFOS JOUEUR] +uihelpTitleInfo [Infos du joueur] // HASH_VALUE DCA8B0599A987B59 // INDEX 2538 @@ -10806,12 +10798,12 @@ uiTitleCantObtain [Vous ne pouvez pas obtenir ce titre.] // HASH_VALUE 75276CBE949A8C0C // INDEX 2539 -uiTitleSkillNoNeed [Pas de compétences requises pour obtenir ce titre.\n +uiTitleSkillNoNeed [Aucune compétence requise pour obtenir ce titre.\n ] // HASH_VALUE 77C78094F0880DD9 // INDEX 2540 -uiTitleBrickNoNeed [Pas de briques requises pour obtenir ce titre\n +uiTitleBrickNoNeed [Aucune brique requise pour obtenir ce titre\n ] // HASH_VALUE DEF51475829BA943 @@ -10822,12 +10814,12 @@ uihelpTitleFormat [@{FFF9}Nom :@{T12}@{FFFF}%name\n // HASH_VALUE A28115BA4B573F5A // INDEX 2542 -uiTitleSkillHeader [@{FFF9} Compétences Requises :\n +uiTitleSkillHeader [@{FFF9} Compétences requises :\n ] // HASH_VALUE E581150DC7384752 // INDEX 2543 -uiTitleBrickHeader [@{FFF9} Briques Requises :\n +uiTitleBrickHeader [@{FFF9} Briques requises :\n ] // HASH_VALUE 70D824BC70D824BC @@ -10836,7 +10828,7 @@ uiTitleSkillOr [ou] // HASH_VALUE 9E013B7C8DF84F42 // INDEX 2545 -uihelpToolType [Type d'Outil : ] +uihelpToolType [Type d'outil : ] // HASH_VALUE 9C798F5A891A8A7B // INDEX 2546 @@ -10856,11 +10848,11 @@ FairlyEasy [Assez facile] // HASH_VALUE 2C16E37ED4598C95 // INDEX 2550 -Average [Difficulté moyenne] +Average [Moyennement difficile] // HASH_VALUE ABA9B892A4389366 // INDEX 2551 -QuiteDifficult [Assez Difficile] +QuiteDifficult [Assez difficile] // HASH_VALUE 9D873899AA89649E // INDEX 2552 @@ -10900,43 +10892,43 @@ Cheater [Ce n'est pas bien de tricher...] // HASH_VALUE 0E13C83F8B030431 // INDEX 2561 -uiSet [REGLER] +uiSet [Régler] // HASH_VALUE F0223D05D05A5A86 // INDEX 2562 uiForce [@{FFFE}Force :@{FFFF} donne une indication générale des capacités de la cible.\n La @{FFFE}couleur de fond@{FFFF} indique le niveau moyen de la cible.\n Les @{FFFE}étoiles blanches@{FFFF} précédées d'un chiffre sont une indication plus précise de la puissance de la cible.\n - Les @{FFFE}étoiles noires@{FFFF} sont réservées aux Créatures Nommées (@{FFFE}1 étoile@{FFFF}) ou aux Boss (@{FFFE}2 étoiles@{FFFF})\n - @{FFFE}Clic-droit@{FFFF} et sélectionnez @{FFFE}Aide@{FFFF} pour plus d'informations...] + Les @{FFFE}étoiles noires@{FFFF} sont réservées aux Nommés (@{FFFE}1 étoile@{FFFF}) ou aux Rois (@{FFFE}2 étoiles@{FFFF})\n + @{FFFE}Clic droit@{FFFF} et sélectionnez @{FFFE}Aide@{FFFF} pour plus d'informations...] // HASH_VALUE 4814440444105450 // INDEX 2563 -uiAttitude [ATTITUDE] +uiAttitude [Attitude] ? // HASH_VALUE 8ABC2C448E7E044D // INDEX 2564 -uiProgressionTitle [MA PROGRESSION] +uiProgressionTitle [Ma progression] ? // HASH_VALUE 8D21782307A23445 // INDEX 2565 -uiOpacity [OPACITE] +uiOpacity [Opacité] // HASH_VALUE 8E5160388660241A // INDEX 2566 -uimChooseUIAlpha [OPACITE DE LA FENETRE] +uimChooseUIAlpha [OPACITÉ DE LA FENÊTRE] // HASH_VALUE 7DDE1B28C3BC5303 // INDEX 2567 -uimLockUnlock [VERROUILLER / DEVERROUILLER] +uimLockUnlock [VERROUILLER / DÉVERROUILLER] // HASH_VALUE 81AFD8300470172B // INDEX 2568 -uiUserAlpha [UTILISER LES REGLAGES GENERAUX] +uiUserAlpha [UTILISER LES RÉGLAGES GÉNÉRAUX] // HASH_VALUE BF00CC2C89721F32 // INDEX 2569 -uiLocalAlpha [REGLAGES LOCAUX] +uiLocalAlpha [RÉGLAGES LOCAUX] // HASH_VALUE 4B51A82B88B1BC25 // INDEX 2570 @@ -10944,31 +10936,31 @@ uiConnectionTitle [CONNEXION] // HASH_VALUE CBF1D0370C82A023 // INDEX 2571 -uiUpload [ENVOI] +uiUpload [Envoi] // HASH_VALUE 4CD4F4104450F430 // INDEX 2572 -uiDownload [TELECHARGEMENT] +uiDownload [Téléchargement] // HASH_VALUE 4490944044909440 // INDEX 2573 -uiPing [PING] +uiPing [Ping] // HASH_VALUE CE91FF3688AFE0F9 // INDEX 2574 -uiPacketLost [PERTE DE PAQUETS] +uiPacketLost [Perte de paquets] // HASH_VALUE 4F91783F8E6EAC31 // INDEX 2575 -uiServerState [ETAT DU SERVEUR] +uiServerState [État du serveur] // HASH_VALUE 52A5C487E5078496 // INDEX 2576 -uiServerState0 [Non Initialisé] +uiServerState0 [Non initialisé] // HASH_VALUE D768E838B0460B89 // INDEX 2577 -uiServerState1 [Non Connecté] +uiServerState1 [Non connecté] // HASH_VALUE E71CE84A271CCC6E // INDEX 2578 @@ -11008,503 +11000,503 @@ uiGlobalSettingsTitle [CONFIGURATION] // HASH_VALUE 0D93EA4AA0A3F23C // INDEX 2587 -fct_steward [ (Régisseur)] +fct_steward [Régisseur] // HASH_VALUE 64168A06A47834E0 // INDEX 2588 -_Davae_citizen [ (Citoyen de Davae)] +_Davae_citizen [Citoyen de Davae] // HASH_VALUE 64622DCEA5D9C4B4 // INDEX 2589 -_Avalae_citizen [ (Citoyen d'Avalae)] +_Avalae_citizen [Citoyen d'Avalae] // HASH_VALUE 0804696F658A989B // INDEX 2590 -_Yrkanis_citizen [ (Citoyen d'Yrkanis)] +_Yrkanis_citizen [Citoyen d'Yrkanis] // HASH_VALUE 64568A06A47834DC // INDEX 2591 -_Natae_citizen [ (Citoyen de Natae)] +_Natae_citizen [Citoyen de Natae] // HASH_VALUE 4213921329B54F93 // INDEX 2592 -fct_k_pactgiver [ (donneur de pacte Kami)] +fct_k_pactgiver [Donneur de pacte Kami] // HASH_VALUE E929C25827ED8F5F // INDEX 2593 -fct_kv_pactgiver [ (donneur de pacte karavan)] +fct_kv_pactgiver [Donneur de pacte karavan] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2594 -fct_kitin_mg_1 [ (observateur de la menace kitin)] +fct_kitin_mg_1 [Observateur de la menace kitine] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2595 -fct_kitin_mg_2 [ (observateur de la menace kitin)] +fct_kitin_mg_2 [Observateur de la menace kitine] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2596 -fct_kitin_mg_3 [ (observateur de la menace kitin)] +fct_kitin_mg_3 [Observateur de la menace kitine] // HASH_VALUE EAA9BF1D0A7CF8A3 // INDEX 2597 -fct_kitin_mg_4 [ (observateur de la menace kitin)] +fct_kitin_mg_4 [Observateur de la menace kitine] // HASH_VALUE 5D04EE05DF563349 // INDEX 2598 -fct_bg [ (Garde du Corps)] +fct_bg [Garde du Corps] // HASH_VALUE 87558E59A8B03B62 // INDEX 2599 -fct_kami_adept [ (Expert Kami)] +fct_kami_adept [Expert Kami] // HASH_VALUE 66B6271BC1B1C3AF // INDEX 2600 -fct_larmor_merchant [ (Marchand d'armures légères)] +fct_larmor_merchant [Marchand d'armures légères] // HASH_VALUE 27058EC55BF7CC98 // INDEX 2601 -fct_marmor_merchant [ (Marchand d'armures moyennes)] +fct_marmor_merchant [Marchand d'armures moyennes] // HASH_VALUE E436171BC1010FB7 // INDEX 2602 -fct_harmor_merchant [ (Marchand d'armures lourdes)] +fct_harmor_merchant [Marchand d'armures lourdes] // HASH_VALUE 61DF52249C5960AA // INDEX 2603 -fct_ctool_merchant [ (Marchand d'outils de création)] +fct_ctool_merchant [Marchand d'outils de création] // HASH_VALUE E6D74FDA42C4AFB0 // INDEX 2604 -fct_ttool_merchant [ (Marchand d'outils de dressage)] +fct_ttool_merchant [Marchand d'outils de dressage] // HASH_VALUE A58589195DF51CB4 // INDEX 2605 -fct_htool_merchant [ (Marchand d'outils de récolte)] +fct_htool_merchant [Marchand d'outils de récolte] // HASH_VALUE 1B8F8A2027A8A084 // INDEX 2606 -fct_shield_merchant [ (Marchand de boucliers)] +fct_shield_merchant [Marchand de boucliers] // HASH_VALUE EA94D20A4A92EC9C // INDEX 2607 -fct_ammo_merchant [ (Marchand de munitions)] +fct_ammo_merchant [Marchand de munitions] // HASH_VALUE E6969EFCB5F5ACAC // INDEX 2608 -fct_rangeweapon_merchant [ (Marchand d'armes de portée)] +fct_rangeweapon_merchant [Marchand d'armes de tir] // HASH_VALUE E8F49EFCB5F59CA8 // INDEX 2609 -fct_meleeweapon_merchant [ (Marchand d'armes de mêlée)] +fct_meleeweapon_merchant [Marchand d'armes de mêlée] // HASH_VALUE A053522DA0845A42 // INDEX 2610 -fct_stableboy_merchant [ (Garçon d'étable)] +fct_stableboy_merchant [Palefrenier] // HASH_VALUE 24A79E1955F16AB0 // INDEX 2611 -fct_rm_merchant [ (Marchand de matières premières)] +fct_rm_merchant [Marchand de matières premières] // HASH_VALUE 5FA36AD6DB1898A7 // INDEX 2612 -fct_jewel_merchant [ (Marchand de bijoux)] +fct_jewel_merchant [Marchand de bijoux] // HASH_VALUE EAF6D20A4A92D4A0 // INDEX 2613 -fct_tool_merchant [ (Marchand d'outils)] +fct_tool_merchant [Marchand d'outils] // HASH_VALUE DAE3DB4397468A5E // INDEX 2614 -fct_plarmor_merchant [ (Marchand de composition d'armures légères)] +fct_plarmor_merchant [Marchand de composition d'armures légères] // HASH_VALUE D9C72F149A028369 // INDEX 2615 -fct_pmarmor_merchant [ (Marchand de composition d'armures moyennes)] +fct_pmarmor_merchant [Marchand de composition d'armures moyennes] // HASH_VALUE D9A3DB439656C258 // INDEX 2616 -fct_pharmor_merchant [ (Marchand de composition d'armures lourdes)] +fct_pharmor_merchant [Marchand de composition d'armures lourdes] // HASH_VALUE AD16BB14C9849673 // INDEX 2617 -fct_parmor_merchant [ (Marchand de composition d'armures)] +fct_parmor_merchant [Marchand de composition d'armures] // HASH_VALUE EF628F410865AF64 // INDEX 2618 -fct_pctool_merchant [ (Marchand de composition d'outils de création)] +fct_pctool_merchant [Marchand de composition d'outils de création] // HASH_VALUE D884E30266668E5E // INDEX 2619 -fct_pttool_merchant [ (Marchand de composition d'outils de dressage)] +fct_pttool_merchant [Marchand de composition d'outils de dressage] // HASH_VALUE 58972A68DA019F77 // INDEX 2620 -fct_phtool_merchant [ (Marchand de composition d'outils de récolte)] +fct_phtool_merchant [Marchand de composition d'outils de récolte] // HASH_VALUE 08D767639CC17755 // INDEX 2621 -fct_ptool_merchant [ (Marchand de composition d'outils)] +fct_ptool_merchant [Marchand de composition d'outils] // HASH_VALUE 2407BBDA827497AA // INDEX 2622 -fct_pshield_merchant [ (Marchand de composition de boucliers)] +fct_pshield_merchant [Marchand de composition de boucliers] // HASH_VALUE 88D65F61D7C18353 // INDEX 2623 -fct_pammo_merchant [ (Marchand de composition de munitions)] +fct_pammo_merchant [Marchand de composition de munitions] // HASH_VALUE 99073F4B88016B73 // INDEX 2624 -fct_prangeweapon_merchant [ (Marchand de composition d'armes de tir)] +fct_prangeweapon_merchant [Marchand de composition d'armes de tir] // HASH_VALUE 9AB63F4B47016371 // INDEX 2625 -fct_pmeleeweapon_merchant [ (Marchand de composition d'armes de mêlée)] +fct_pmeleeweapon_merchant [Marchand de composition d'armes de mêlée] // HASH_VALUE D7183F68D87F466E // INDEX 2626 -fct_prm_merchant [ (Marchand de composition de matières premières)] +fct_prm_merchant [Marchand de composition de matières premières] // HASH_VALUE ABF6872799C5DB77 // INDEX 2627 -fct_consumable_merchant [ (Marchand de consommables)] +fct_consumable_merchant [Marchand de consommables] // HASH_VALUE E847871DC9236E77 // INDEX 2628 -fct_pjewel_merchant [ (Marchand de composition de bijoux)] +fct_pjewel_merchant [Marchand de composition de bijoux] // HASH_VALUE E9D6A719718673A9 // INDEX 2629 -fct_mf_welcomer [ (Hôte des Guildes de Combattants de Mêlée)] +fct_mf_welcomer [Hôte des guildes de combattants de mêlée] // HASH_VALUE E827A71971867BAB // INDEX 2630 -fct_rf_welcomer [ (Hôte des Guildes de Combattants à Distance)] +fct_rf_welcomer [Hôte des guildes de combattants à distance] // HASH_VALUE E5869740FE90EF5E // INDEX 2631 -fct_mh_welcomer [ (Hôte des Guildes de Guérisseurs)] +fct_mh_welcomer [Hôte des guildes de guérisseurs] // HASH_VALUE 63D6D73AFE90EF5E // INDEX 2632 -fct_mb_welcomer [ (Hôte des Guildes de Buffers)] +fct_mb_welcomer [Hôte des guildes de buffers] // HASH_VALUE 22B7D339FE90D35C // INDEX 2633 -fct_ma_welcomer [ (Hôte des Guildes d'Attaquants)] +fct_ma_welcomer [Hôte des guildes d'attaquants] // HASH_VALUE 6D170EC55FD5489B // INDEX 2634 -fct_t_welcomer [ (Hôte des Guildes de Marchands)] +fct_t_welcomer [Hôte des guildes de marchands] // HASH_VALUE C1B47E5DEEF85C4D // INDEX 2635 -fct_h_welcomer [ (Hôte des Guildes de Rangers)] +fct_h_welcomer [Hôte des guildes de foreurs] // HASH_VALUE 21D0352ED869DCBE // INDEX 2636 -fct_f_welcomer [ (Hôte des Guildes d'Artisans)] +fct_f_welcomer [Hôte des guildes d'artisans] // HASH_VALUE 211292E01638C8B0 // INDEX 2637 -fct_welcomer [ (Hôte des Guildes)] +fct_welcomer [Hôte des guildes] // HASH_VALUE DF64230F2604FF5D // INDEX 2638 -fct_p_caretaker [ (Gardien d'Immeuble d'Homins)] +fct_p_caretaker [Gardien d'immeuble d'homins] // HASH_VALUE 9BE5764058579B6F // INDEX 2639 -fct_g_caretaker [ (Gardien d'Immeuble de Guildes)] +fct_g_caretaker [Gardien d'immeuble de guildes] // HASH_VALUE 52D66A1D52E95F6F // INDEX 2640 -fct_caretaker [ (Gardien)] +fct_caretaker [Gardien] // HASH_VALUE 2A36AB0EBCC52A6D // INDEX 2641 -fct_mf_chief [ (Chef des Guildes de Combattants de Mêlée)] +fct_mf_chief [Chef des guildes de combattants de mêlée] // HASH_VALUE 2987AB0EFDC5326F // INDEX 2642 -fct_rf_chief [ (Chef des Guildes de Combattants à Distance)] +fct_rf_chief [Chef des guildes de combattants à distance] // HASH_VALUE D6D76F418962BF0C // INDEX 2643 -fct_mh_chief [ (Chef des Guildes de Guérisseurs)] +fct_mh_chief [Chef des guildes de guérisseurs] // HASH_VALUE 5427AF3B8962BF0C // INDEX 2644 -fct_mb_chief [ (Chef des Guildes de Buffers)] +fct_mb_chief [Chef des guildes de buffers] // HASH_VALUE 1308AB3A8962A30A // INDEX 2645 -fct_ma_chief [ (Chef des Guildes d'Attaquants)] +fct_ma_chief [Chef des guildes d'attaquants] // HASH_VALUE 68F80BF9925C8FA4 // INDEX 2646 -fct_t_chief [ (Chef des Guildes de Marchands)] +fct_t_chief [Chef des guildes de marchands] // HASH_VALUE CBF33521ECA9087B // INDEX 2647 -fct_h_chief [ (Chef de Guildes de Récolteurs)] +fct_h_chief [Chef de guildes de récolteurs] // HASH_VALUE 2FC5BA220325ECAB // INDEX 2648 -fct_f_chief [ (Chef des Guildes d'Artisans)] +fct_f_chief [Chef des guildes d'artisans] // HASH_VALUE 05B081696A69B075 // INDEX 2649 -fct_mission_officer [ (Officier de Missions)] +fct_mission_officer [Officier de missions] // HASH_VALUE 77058565AB28A39E // INDEX 2650 -fct_mv_guard [ (Garde d'Yrkanis)] +fct_mv_guard [Garde d'Yrkanis] // HASH_VALUE 5A975C179A4874A6 // INDEX 2651 -fct_mv_guardchief [ (Chef des gardes d'Yrkanis)] +fct_mv_guardchief [Chef des gardes d'Yrkanis] // HASH_VALUE 6AB4402626389CAA // INDEX 2652 -fct_ma_guard [ (Garde de Natae)] +fct_ma_guard [Garde de Natae] // HASH_VALUE 66374644E3D58EA0 // INDEX 2653 -fct_ma_guardchief [ (Chef des gardes de Natae)] +fct_ma_guardchief [Chef des gardes de Natae] // HASH_VALUE 6A74402626389CAE // INDEX 2654 -fct_mb_guard [ (Garde de Davae)] +fct_mb_guard [Garde de Davae] // HASH_VALUE 66B7463AE3D58EA2 // INDEX 2655 -fct_mb_guardchief [ (Chef des gardes de Davae)] +fct_mb_guardchief [Chef des gardes de Davae] // HASH_VALUE CECF89D5661990B3 // INDEX 2656 -fct_mc_guard [ (Garde d'Avalae)] +fct_mc_guard [Garde d'Avalae] // HASH_VALUE 2803FF8F432554A7 // INDEX 2657 -fct_mc_guardchief [ (Chef des gardes d'Avalae)] +fct_mc_guardchief [Chef des gardes d'Avalae] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2658 -fct_mf_guard [ (Garde de frontières)] +fct_mf_guard [Garde-frontières] // HASH_VALUE 1E1AF84D55D0B764 // INDEX 2659 -fct_tax_collector [(Percepteur des impôts)] +fct_tax_collector [Percepteur des impôts] // HASH_VALUE 1055235F1E037B40 // INDEX 2660 -fct_tribe_chief [(Chef de Tribu)] +fct_tribe_chief [Chef de tribu] // HASH_VALUE FA3A7D18EA290C3D // INDEX 2661 -fct_barman [ (Barman)] +fct_barman [Barman] // HASH_VALUE 60508080289CF4E4 // INDEX 2662 -fct_mayor [ (Maire] +fct_mayor [Maire] // HASH_VALUE 982391679B0BB8AC // INDEX 2663 -fct_amayor [ (Assistant du Maire)] +fct_amayor [Assistant du Maire] // HASH_VALUE 24876B47741546A0 // INDEX 2664 -fct_natae_chief [ (Chef du village de Natae)] +fct_natae_chief [Chef du village de Natae] // HASH_VALUE 24076B3D741546A2 // INDEX 2665 -fct_davae_chief [ (Chef du village de Davae)] +fct_davae_chief [Chef du village de Davae] // HASH_VALUE 6A970B88C274549E // INDEX 2666 -fct_avalae_chief [ (Chef du village d'Avalae)] +fct_avalae_chief [Chef du village d'Avalae] // HASH_VALUE C77392162DB55467 // INDEX 2667 -fct_counselor [ (Conseiller du Roi)] +fct_counselor [Conseiller du Roi] // HASH_VALUE DC51994A56FAC49D // INDEX 2668 -fct_cutthroat [ (Egorgeur Matis)] +fct_cutthroat [Égorgeur matis] // HASH_VALUE A65857CB3771739D // INDEX 2669 -fct_bandit_chief [ (chef des bandits)] +fct_bandit_chief [Chef des bandits] // HASH_VALUE 9798965A86668796 // INDEX 2670 -fct_mv_intendant [ (Intendant d'Yrkanis)] +fct_mv_intendant [Intendant d'Yrkanis] // HASH_VALUE 06155E68D5B43A7B // INDEX 2671 -fct_ma_intendant [ (Intendant de Natae)] +fct_ma_intendant [Intendant de Natae] // HASH_VALUE 06755E6AD5143A7D // INDEX 2672 -fct_mb_intendant [ (Intendant de Davae)] +fct_mb_intendant [Intendant de Davae] // HASH_VALUE 64C277214C259E5D // INDEX 2673 -fct_mc_intendant [ (Intendant d'Avalae)] +fct_mc_intendant [Intendant d'Avalae] // HASH_VALUE 0854320F29F56048 // INDEX 2674 -fct_zv_intendant [ (Intendant de Zora)] +fct_zv_intendant [Intendant de Zora] // HASH_VALUE 47D762C7840B9677 // INDEX 2675 -fct_za_intendant [ (Intendant de Jen-Laï)] +fct_za_intendant [Intendant de Jen-Laï] // HASH_VALUE 4807724A4673B26E // INDEX 2676 -fct_zb_intendant [ (Intendant de Min-Cho)] +fct_zb_intendant [Intendant de Min-Cho] // HASH_VALUE C9CF8A454673B2EF // INDEX 2677 -fct_zc_intendant [ (Intendant de Hoï-Cho)] +fct_zc_intendant [Intendant de Hoï-Cho] // HASH_VALUE 5CE27D50855AA7A4 // INDEX 2678 -fct_fv_intendant [ (Intendant de Pyr)] +fct_fv_intendant [Intendant de Pyr] // HASH_VALUE 646487139405BA6F // INDEX 2679 -fct_fa_intendant [ (Intendant de Thesos)] +fct_fa_intendant [Intendant de Thesos] // HASH_VALUE 0C059666DBA47279 // INDEX 2680 -fct_fb_intendant [ (Intendant de Dyron)] +fct_fb_intendant [Intendant de Dyron] // HASH_VALUE 92946A2A95E7CBA6 // INDEX 2681 -fct_tv_intendant [ (Intendant de Fairhaven)] +fct_tv_intendant [Intendant de Fairhaven] // HASH_VALUE 66A3862464849C62 // INDEX 2682 -fct_ta_intendant [ (Intendant de Windermeer)] +fct_ta_intendant [Intendant de Windermeer] // HASH_VALUE 22D28619E4660476 // INDEX 2683 -fct_tb_intendant [ (Intendant de Crystabell)] +fct_tb_intendant [Intendant de Crystabell] // HASH_VALUE 2A33F31998D44061 // INDEX 2684 -fct_tc_intendant [ (Intendant d'Avendale)] +fct_tc_intendant [Intendant d'Avendale] // HASH_VALUE 6B087BCFF63D56A9 // INDEX 2685 -fct_zv_guard [ (Garde de Zora)] +fct_zv_guard [Garde de Zora] // HASH_VALUE 9568AB17A76C1680 // INDEX 2686 -fct_zv_guardchief [ (Chef des Gardes de Zora)] +fct_zv_guardchief [Chef des gardes de Zora] // HASH_VALUE 34DB65BF9C369E92 // INDEX 2687 -fct_za_guard [ (Garde de Jen-Laï)] +fct_za_guard [Garde de Jen-Laï] // HASH_VALUE D4B55C939604D2AC // INDEX 2688 -fct_za_guardchief [ (Chef des gardes de Jen-Laï)] +fct_za_guardchief [Chef des gardes de Jen-Laï] // HASH_VALUE 350381365EA6AE95 // INDEX 2689 -fct_zb_guard [ (Garde de Min-Cho)] +fct_zb_guard [Garde de Min-Cho] // HASH_VALUE D6155C131AE4D2AC // INDEX 2690 -fct_zb_guardchief [ (Chef des gardes de Min-Cho)] +fct_zb_guardchief [Chef des gardes de Min-Cho] // HASH_VALUE B6B381365EBEC611 // INDEX 2691 -fct_zc_guard [ (Garde de Hoï-Cho)] +fct_zc_guard [Garde de Hoï-Cho] // HASH_VALUE D8755C131AE4D2AE // INDEX 2692 -fct_zc_guardchief [ (Chef des gardes de Hoï-Cho)] +fct_zc_guardchief [Chef des gardes de Hoï-Cho] // HASH_VALUE 0D882338CDB46069 // INDEX 2693 -fct_fv_guard [ (Garde de Pyr)] +fct_fv_guard [Garde de Pyr] // HASH_VALUE 4CB8A6621C88915D // INDEX 2694 -fct_fv_guardchief [ (Chef des gardes de Pyr)] +fct_fv_guardchief [Chef des gardes de Pyr] // HASH_VALUE 9A23A721D76B0325 // INDEX 2695 -fct_fv_rookieguard [ (Garde de Pyr débutant)] +fct_fv_rookieguard [Garde de Pyr débutant] // HASH_VALUE A6534B8FC6E6A8B2 // INDEX 2696 -fct_fa_guardchief [ (Chef des gardes de Thesos)] +fct_fa_guardchief [Chef des gardes de Thesos] // HASH_VALUE 100089E36C6ABCA9 // INDEX 2697 -fct_fa_guard [ (Garde de Thesos)] +fct_fa_guard [Garde de Thesos] // HASH_VALUE EF77A63AE365C6A7 // INDEX 2698 -fct_fb_guardchief [ (Chef des gardes de Dyron)] +fct_fb_guardchief [Chef des gardes de Dyron] // HASH_VALUE 7674402626580CA6 // INDEX 2699 -fct_fb_guard [ (Garde de Dyron)] +fct_fb_guard [Garde de Dyron] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2700 -fct_ff_guard [ (Garde de frontières)] +fct_ff_guard [Garde-frontières] // HASH_VALUE C316C760D6467E72 // INDEX 2701 -fct_tv_guard [ (Garde de Fairhaven)] +fct_tv_guard [Garde de Fairhaven] // HASH_VALUE 3392A25DAA286F85 // INDEX 2702 -fct_tv_guardchief [ (Chef des gardes de Fairhaven)] +fct_tv_guardchief [Chef des gardes de Fairhaven] // HASH_VALUE 6838736BA3309330 // INDEX 2703 -fct_ta_guard [ (Garde de Windermeer)] +fct_ta_guard [Garde de Windermeer] // HASH_VALUE 178453676A7448DD // INDEX 2704 -fct_ta_guardchief [ (Chef des gardes de Windermeer)] +fct_ta_guardchief [Chef des gardes de Windermeer] // HASH_VALUE ED589F691C21A32A // INDEX 2705 -fct_tc_guard [ (Garde de Crystabell)] +fct_tc_guard [Garde de Crystabell] // HASH_VALUE D8B3535CE9F634E8 // INDEX 2706 -fct_tc_guardchief [ (Chef des gardes de Crystabell)] +fct_tc_guardchief [Chef des gardes de Crystabell] // HASH_VALUE 9C2E576C113BF712 // INDEX 2707 -fct_tb_guard [ (Garde d'Avendale)] +fct_tb_guard [Garde d'Avendale] // HASH_VALUE A10A462762D99063 // INDEX 2708 -fct_tb_guardchief [ (Chef des gardes d'Avendale)] +fct_tb_guardchief [Chef des gardes d'Avendale] // HASH_VALUE 0E0F7E172C6AD0BD // INDEX 2709 -fct_zf_guard [ (Garde de Frontières)] +fct_zf_guard [Garde-frontières] // HASH_VALUE 9BA7D7FC59FF6259 // INDEX 2710 -fct_stablegirl_merchant [ (Fille d'étable)] +fct_stablegirl_merchant [Palefrenière] // HASH_VALUE 06829E5717637E38 // INDEX 2711 -fct_barmaid [ (Barmaid)] +fct_barmaid [Serveuse] // HASH_VALUE 0000000000000000 // INDEX 2712 @@ -11512,335 +11504,335 @@ fct_civil [] // HASH_VALUE D4170FFC3E4B5915 // INDEX 2713 -fct_sage [ (Sage)] +fct_sage [Sage] // HASH_VALUE 5E955E0E9EA8574F // INDEX 2714 -fct_craftsman [ (Artisan)] +fct_craftsman [Artisan] // HASH_VALUE DA64EF481C755776 // INDEX 2715 -fct_supplier [ (Fournisseur)] +fct_supplier [Fournisseur] // HASH_VALUE 899C8D20ADDA0073 // INDEX 2716 -fct_hunter [ (Chasseur)] +fct_hunter [Chasseur] // HASH_VALUE ABF96FCBB611A3AD // INDEX 2717 -fct_hunter_chief [ (Chef des Chasseurs)] +fct_hunter_chief [Chef des chasseurs] // HASH_VALUE FA3A95262BD8D839 // INDEX 2718 -fct_bandit [ (Bandit)] +fct_bandit [Bandit] // HASH_VALUE 60588080289CF4D0 // INDEX 2719 -fct_actor [ (acteur)] +fct_actor [Acteur] // HASH_VALUE 08A5DA6C5AB59A68 // INDEX 2720 -fct_actress [ (actrice)] +fct_actress [Actrice] // HASH_VALUE 55F8874091CE1E1F // INDEX 2721 -fct_kami_master [ (Maître Kami)] +fct_kami_master [Maître Kami] // HASH_VALUE 03904976632A4872 // INDEX 2722 -fct_karavan_officer [ (Officier Karavan)] +fct_karavan_officer [Officier Karavan] // HASH_VALUE 9BB2924395F7AB84 // INDEX 2723 -fct_h_hairdresser [ (Coiffeur pour Hommes)] +fct_h_hairdresser [Coiffeur pour homins] // HASH_VALUE C9184F485B478339 // INDEX 2724 -fct_f_hairdresser [ (Coiffeur pour Femmes)] +fct_f_hairdresser [Coiffeur pour homines] // HASH_VALUE 2816633087EF3E65 // INDEX 2725 -fct_h_tattooer [ (Tatoueur pour Hommes)] +fct_h_tattooer [Tatoueur pour homins] // HASH_VALUE EA54F6BD9888C4BF // INDEX 2726 -fct_f_tattooer [ (Tatoueur pour Femmes)] +fct_f_tattooer [Tatoueur pour homines] // HASH_VALUE 93D5536A24E46F62 // INDEX 2727 -fct_newb_welcomer [(Hôte d'Accueil)] +fct_newb_welcomer [Hôte d'accueil] // HASH_VALUE 69E95FCF74F097A3 // INDEX 2728 -fct_newb_a [ (Garde de Stalli)] +fct_newb_a [Garde de Stalli] // HASH_VALUE A804478F441580A7 // INDEX 2729 -fct_newb_a_chief [ (Chef des gardes de Stalli)] +fct_newb_a_chief [Chef des gardes de Stalli] // HASH_VALUE 1AA7FB2A4AB25957 // INDEX 2730 -fct_newb_b [ (Garde de Borea)] +fct_newb_b [Garde de Borea] // HASH_VALUE C9B69F6299868A5D // INDEX 2731 -fct_newb_b_chief [ (Chef des gardes de Borea)] +fct_newb_b_chief [Chef des gardes de Borea] // HASH_VALUE 2AE74BCF7240ABBD // INDEX 2732 -fct_newb_c [ (Garde de Nistia)] +fct_newb_c [Garde de Nistia] // HASH_VALUE A5D8AF112090626F // INDEX 2733 -fct_newb_c_chief [ (Chef des gardes de Nistia)] +fct_newb_c_chief [Chef des gardes de Nistia] // HASH_VALUE 7036401E4818DCA8 // INDEX 2734 -fct_newb_d [ (Garde de Rosilio)] +fct_newb_d [Garde de Rosilio] // HASH_VALUE EB687E447404B7A6 // INDEX 2735 -fct_newb_d_chief [ (Chef des gardes de Rosilio)] +fct_newb_d_chief [Chef des gardes de Rosilio] // HASH_VALUE DB46E335C9E27D4E // INDEX 2736 -fct_newb_e [ (Garde de Miani)] +fct_newb_e [Garde de Miani] // HASH_VALUE 48E6C35118B6AE4C // INDEX 2737 -fct_newb_e_chief [ (Chef des gardes de Miani)] +fct_newb_e_chief [Chef des gardes de Miani] // HASH_VALUE 479857CFF54E1AF2 // INDEX 2738 -fct_newb_za [ (Garde de Qaï-Lo)] +fct_newb_za [Garde de Qaï-Lo] // HASH_VALUE 5C94A10964BE45F9 // INDEX 2739 -fct_newb_za_chief [ (Chef des gardes de Qaï-Lo)] +fct_newb_za_chief [Chef des gardes de Qaï-Lo] // HASH_VALUE CDDE76202594C7AF // INDEX 2740 -fct_newb_zc [ (Garde de Nen-Xing)] +fct_newb_zc [Garde de Nen-Xing] // HASH_VALUE 27C203D616D43375 // INDEX 2741 -fct_newb_zc_chief [ (Chef des gardes de Nen-Xing)] +fct_newb_zc_chief [Chef des gardes de Nen-Xing] // HASH_VALUE 46A29942DF58AF8E // INDEX 2742 -fct_newb_zb [ (Garde de Sheng-Wo)] +fct_newb_zb [Garde de Sheng-Wo] // HASH_VALUE 569661FB7C68DC9A // INDEX 2743 -fct_newb_zb_chief [ (Chef des gardes de Sheng-Wo)] +fct_newb_zb_chief [Chef des gardes de Sheng-Wo] // HASH_VALUE 0723A2359E77AE95 // INDEX 2744 -fct_newb_ze [ (Garde de Yin-Piang)] +fct_newb_ze [Garde de Yin-Piang] // HASH_VALUE D6D679059A86D2AC // INDEX 2745 -fct_newb_ze_chief [ (Chef des gardes de Yin-Piang)] +fct_newb_ze_chief [Chef des gardes de Yin-Piang] // HASH_VALUE 7054401C4ED6FAA0 // INDEX 2746 -fct_newb_zd [ (Garde de Koï-Zun)] +fct_newb_zd [Garde de Koï-Zun] // HASH_VALUE DCBE7E3C77D3F610 // INDEX 2747 -fct_newb_zd_chief [ (Chef des gardes de Koï-Zun)] +fct_newb_zd_chief [Chef des gardes de Koï-Zun] // HASH_VALUE 9CE6D329C8C3995E // INDEX 2748 -fct_newb_fa [ (Garde d'Aegus)] +fct_newb_fa [Garde d'Aegus] // HASH_VALUE 47C7DF571797CA52 // INDEX 2749 -fct_newb_fa_chief [ (Chef des gardes d'Aegus)] +fct_newb_fa_chief [Chef des gardes d'Aegus] // HASH_VALUE 6C564030485A0C98 // INDEX 2750 -fct_newb_fc [ (Garde de Sekovix)] +fct_newb_fc [Garde de Sekovix] // HASH_VALUE EAF7564E7436CFA8 // INDEX 2751 -fct_newb_fc_chief [ (Chef des gardes de Sekovix)] +fct_newb_fc_chief [Chef des gardes de Sekovix] // HASH_VALUE A5373FCFB570A7A8 // INDEX 2752 -fct_newb_fb [ (Garde de Kaemon)] +fct_newb_fb [Garde de Kaemon] // HASH_VALUE 24377709A2F0466E // INDEX 2753 -fct_newb_fb_chief [ (Chef des gardes de Kaemon)] +fct_newb_fb_chief [Chef des gardes de Kaemon] // HASH_VALUE 6AD440264E38BC9A // INDEX 2754 -fct_newb_fe [ (Garde de Galemus)] +fct_newb_fe [Garde de Galemus] // HASH_VALUE 6746463D7755D7A0 // INDEX 2755 -fct_newb_fe_chief [ (Chef des gardes de Galemus)] +fct_newb_fe_chief [Chef des gardes de Galemus] // HASH_VALUE 6CF853CFB570D3C7 // INDEX 2756 -fct_newb_fd [ (Garde de Phyxon)] +fct_newb_fd [Garde de Phyxon] // HASH_VALUE E639C710E4F07282 // INDEX 2757 -fct_newb_fd_chief [ (Chef des gardes de Phyxon)] +fct_newb_fd_chief [Chef des gardes de Phyxon] // HASH_VALUE 5AC3CF66535B081F // INDEX 2758 -fct_newb_ta [ (Garde d'Aubermouth)] +fct_newb_ta [Garde d'Aubermouth] // HASH_VALUE 9FDF862AE82A605F // INDEX 2759 -fct_newb_ta_chief [ (Chef des gardes d'Aubermouth)] +fct_newb_ta_chief [Chef des gardes d'Aubermouth] // HASH_VALUE C96E821A2739D0AF // INDEX 2760 -fct_newb_tb [ (Garde de Barkdell)] +fct_newb_tb [Garde de Barkdell] // HASH_VALUE 27C2E7D495555CB7 // INDEX 2761 -fct_newb_tb_chief [ (Chef des gardes de Barkdell)] +fct_newb_tb_chief [Chef des gardes de Barkdell] // HASH_VALUE CE9FB621290AC0AD // INDEX 2762 -fct_newb_tc [ (Garde d'Hobwelly)] +fct_newb_tc [Garde d'Hobwelly] // HASH_VALUE A60233D457D590B3 // INDEX 2763 -fct_newb_tc_chief [ (Chef des gardes d'Hobwelly)] +fct_newb_tc_chief [Chef des gardes d'Hobwelly] // HASH_VALUE 0EDF962C6EBAC8B3 // INDEX 2764 -fct_newb_td [ (Garde de Waverton)] +fct_newb_td [Garde de Waverton] // HASH_VALUE 281343D719277CB5 // INDEX 2765 -fct_newb_td_chief [ (Chef des gardes de Waverton)] +fct_newb_td_chief [Chef des gardes de Waverton] // HASH_VALUE 477396642B389787 // INDEX 2766 -fct_newb_te [ (Garde de Dingleton)] +fct_newb_te [Garde de Dingleton] // HASH_VALUE D6A47D189808A4AC // INDEX 2767 -fct_newb_te_chief [ (Chef des gardes de Dingleton)] +fct_newb_te_chief [Chef des gardes de Dingleton] // HASH_VALUE 2392DEAB33A0A7BB // INDEX 2768 -fct_registar [ (Clerc de Guildes)] +fct_registar [Clerc de guildes] // HASH_VALUE D92FF3609A5A5C6F // INDEX 2769 -fct_ins_f [ (Instructeur en combat)] +fct_ins_f [Instructeur en combat] // HASH_VALUE D79FAF619AC97C6F // INDEX 2770 -fct_ins_m [ (Instructeur en magie)] +fct_ins_m [Instructeur en magie] // HASH_VALUE AF36C2635FE2AF71 // INDEX 2771 -fct_ins_r [ (Instructeur en artisanat)] +fct_ins_r [Instructeur en artisanat] // HASH_VALUE 1A889F22A8B8AB22 // INDEX 2772 -fct_ins_h [ (Instructeur en récolte)] +fct_ins_h [Instructeur en récolte] // HASH_VALUE E6B6AF4287FA7BB7 // INDEX 2773 -fct_mf_rolemaster [ (Maître de rôle des Guildes de Combattants de Mêlée)] +fct_mf_rolemaster [Maître de rôle des guildes de combattants de mêlée)] // HASH_VALUE E507AF4287FA83B9 // INDEX 2774 -fct_rf_rolemaster [ (Maître de rôle des Guildes de Combattants à Distance)] +fct_rf_rolemaster [Maître de rôle des guildes de combattants à distance] // HASH_VALUE 1830A669575AF065 // INDEX 2775 -fct_c_rolemaster [ (Maître de rôle des Guildes de Combattants)] +fct_c_rolemaster [Maître de rôle des guildes de combattants] // HASH_VALUE 68C68F423E55CC60 // INDEX 2776 -fct_mh_rolemaster [ (Maître de rôle des Guildes de Guérisseurs)] +fct_mh_rolemaster [Maître de rôle des guildes de guérisseurs] // HASH_VALUE E616CF3C3E55CC60 // INDEX 2777 -fct_mb_rolemaster [ (Maître de rôle des Guildes de Buffers)] +fct_mb_rolemaster [Maître de rôle des guildes de buffers] // HASH_VALUE A5F7CB3B3E55B05E // INDEX 2778 -fct_ma_rolemaster [ (Maître de rôle des Guildes d'Attaquants)] +fct_ma_rolemaster [Maître de rôle des guildes d'attaquants] // HASH_VALUE 1EC28AFC5749939F // INDEX 2779 -fct_m_rolemaster [ (Maître de rôle des Guildes Magiques)] +fct_m_rolemaster [Maître de rôle des guildes de mages] // HASH_VALUE 5BF41221AAB5B882 // INDEX 2780 -fct_t_rolemaster [ (Maître de rôle des Guildes de Marchands)] +fct_t_rolemaster [Maître de rôle des guildes de marchands] // HASH_VALUE D728866B6144C34E // INDEX 2781 -fct_h_rolemaster [ (Maitre de rôle des Guildes de Récolteurs)] +fct_h_rolemaster [Maître de rôle des guildes de récolteurs] // HASH_VALUE 5AE0A6659ADBE072 // INDEX 2782 -fct_f_rolemaster [ (Maître de rôle des Guildes d'Artisans)] +fct_f_rolemaster [Maître de rôle des guildes d'zrtisans] // HASH_VALUE 08D2597826B9B462 // INDEX 2783 -fct_f_trainer [ (Entraîneur en Combat)] +fct_f_trainer [Entraîneur en combat] // HASH_VALUE CDFEAF4F6A27DF6F // INDEX 2784 -fct_m_trainer [ (Entraîneur en Magie)] +fct_m_trainer [Entraîneur en magie] // HASH_VALUE 4AA25978A559D059 // INDEX 2785 -fct_c_trainer [ (Entraîneur en Artisanat)] +fct_c_trainer [Entraîneur en artisanat] // HASH_VALUE 8628A3749617D75A // INDEX 2786 -fct_h_trainer [ (Entraîneur en Récolte)] +fct_h_trainer [Entraîneur en récolte] // HASH_VALUE 6B52890604FB88A5 // INDEX 2787 -fct_f_guild_trainer [ (Entraîneur de Guildes de Combattants)] +fct_f_guild_trainer [Entraîneur de guildes de combattants] // HASH_VALUE D47F2ACAE7E8A0A6 // INDEX 2788 -fct_m_guild_trainer [ (Entraîneur de Guildes de Magiciens)] +fct_m_guild_trainer [Entraîneur de guildes de Mages] // HASH_VALUE EFF2890604FB7899 // INDEX 2789 -fct_c_guild_trainer [ (Entraîneur de Guildes d'Artisans)] +fct_c_guild_trainer [Entraîneur de guildes d'artisans] // HASH_VALUE 06F2596AEDF9D862 // INDEX 2790 -fct_h_guild_trainer [ (Entraîneur de Guildes de Récolteurs)] +fct_h_guild_trainer [Entraîneur de guildes de récolteurs] // HASH_VALUE 92A3BB3F1CA44375 // INDEX 2791 -fct_guild_we [ (Hôte d'accueil)] +fct_guild_we [Hôte d'accueil] // HASH_VALUE 9990F75DD8FB5C65 // INDEX 2792 -fct_guild_rm_craft [ (Maître de rôle en Artisanat)] +fct_guild_rm_craft [Maître de rôle en artisanat] // HASH_VALUE 57C0F75F596A706B // INDEX 2793 -fct_guild_rm_fight [ (Maître de rôle en Combat)] +fct_guild_rm_fight [Maître de rôle en combat] // HASH_VALUE 5530B36059D9906B // INDEX 2794 -fct_guild_rm_magic [ (Maître de rôle en Magie)] +fct_guild_rm_magic [Maître de rôle en magie] // HASH_VALUE 2DB8689FE4A880AB // INDEX 2795 -fct_scout [Eclaireur] +fct_scout [Éclaireur] // HASH_VALUE 6846DC84A887D085 // INDEX 2796 @@ -11848,7 +11840,7 @@ fct_ambassador [Ambassadeur] // HASH_VALUE 709CF40C6C5824BC // INDEX 2797 -fct_corporal [Caporal-Chef] +fct_corporal [Caporal-chef] // HASH_VALUE EAD99091A2F96C9A // INDEX 2798 @@ -11860,15 +11852,15 @@ fct_captain [Capitaine] // HASH_VALUE 6AC6AB8468E4DC72 // INDEX 2800 -fct_city_welcomer [Hôte des cités] +fct_city_welcomer [Hôte de la cité] // HASH_VALUE E618745A4858A4A0 // INDEX 2801 -fct_village_welcomer [Hôte des villages] +fct_village_welcomer [Hôte du village] // HASH_VALUE ECA6935855599CB4 // INDEX 2802 -fct_foreman_apprentice [Apprenti Contremaître] +fct_foreman_apprentice [Apprenti contremaître] // HASH_VALUE A769D08C61671482 // INDEX 2803 @@ -11876,7 +11868,7 @@ fct_foreman [Contremaître] // HASH_VALUE 6A8AA87894458B86 // INDEX 2804 -fct_foreman_master [Maître Contremaître] +fct_foreman_master [Maître contremaître] // HASH_VALUE A8C8806C26D5C489 // INDEX 2805 @@ -11908,15 +11900,15 @@ fct_karavan_welcomer [Hôte de la Karavan] // HASH_VALUE E788ACA123151358 // INDEX 2812 -fct_local_messenger [Messager Local] +fct_local_messenger [Messager local] // HASH_VALUE 6118738930E86479 // INDEX 2813 -fct_frontiers_messenger [Messager des Frontières] +fct_frontiers_messenger [Messager des frontières] // HASH_VALUE A793A038A979CCAD // INDEX 2814 -fct_outlands_messenger [Messager des Terres Lointaines] +fct_outlands_messenger [Messager des terres lointaines] // HASH_VALUE 2548048CA9B908B6 // INDEX 2815 @@ -11928,47 +11920,47 @@ fct_prospector [Prospecteur] // HASH_VALUE 973894986516A775 // INDEX 2817 -fct_tribe_welcomer [Hôte des Tribus] +fct_tribe_welcomer [Hôte de la tribu] // HASH_VALUE 5618A88BAC36DB70 // INDEX 2818 -fct_local_supplier [Fournisseur Local] +fct_local_supplier [Fournisseur local] // HASH_VALUE 9CC6DB836C6AF4A6 // INDEX 2819 -fct_frontiers_supplier [Fournisseur des Frontières] +fct_frontiers_supplier [Fournisseur des frontières] // HASH_VALUE B12ADF54A888B0AD // INDEX 2820 -fct_outlands_supplier [Fournisseur des Terres Lointaines] +fct_outlands_supplier [Fournisseur des terres lointaines] // HASH_VALUE 2C1B0C8B0C83F8B5 // INDEX 2821 -fct_outpost_steward [Régisseur de l'Avant-poste] +fct_outpost_steward [Régisseur de l'avant-poste] // HASH_VALUE E3A4FC8FAF5722B2 // INDEX 2822 -fct_outpost_steward_tribe [Régisseur de l'Avant-poste des Tribus] +fct_outpost_steward_tribe [Régisseur de l'avant-poste de la tribu] // HASH_VALUE 294AD8790B64FCAA // INDEX 2823 -fct_outpost_officer [Officier de l'Avant-poste] +fct_outpost_officer [Officier de l'avant-poste] // HASH_VALUE A0C4C4902B1622C0 // INDEX 2824 -fct_outpost_officer_tribe [Officier de l'Avant-poste des Tribus] +fct_outpost_officer_tribe [Officier de l'avant-poste de la tribu] // HASH_VALUE B053DCD1E8FD3C1C // INDEX 2825 -welcome_phrase [Je vous souhaite la bienvenue jeune homin.\n +welcome_phrase [Je vous souhaite la bienvenue, jeune homin.\n Vous avez fait preuve d'un grand courage en entreprenant ce voyage périlleux pour répondre à notre appel et participer à la reconstruction de notre grand Royaume Matis...{break}\n Nous saluons votre courage et vous accueillons parmi nous.\n - Il est maintenant de mon devoir de vous parler de cet endroit. Vous êtes sur une petite île, non loin des terres Matis.\n + Il est maintenant de mon devoir de vous parler de cet endroit. Vous êtes sur une petite île, non loin des terres matis.\n Nous avons cinq petits avant-postes sur cette île, et vous êtes sur l'un d'eux.\n - Chacun de ces avant-postes dispose d'Officiers de Missions, de Maîtres, de Marchands et de Gardes.\n + Chacun de ces avant-postes dispose d'officiers de missions, de maîtres, de marchands et de gardes.\n Nous avons la chance d'avoir la présence d'un certain nombre de représentants de la Karavan.\n Avant de partir pour l'un de nos villages, je vous recommande d'améliorer vos compétences et votre équipement.\n - Si vous voulez en savoir davantage, vous devriez rencontrer nos Maîtres.\n + Si vous voulez en savoir davantage, vous devriez rencontrer nos maîtres.\n Ils se trouvent dans ce bâtiment, vous pouvez les rencontrer ou simplement sortir en utilisant l'ascenseur à votre droite derrière vous.] // HASH_VALUE 8D55FA233A55F62F @@ -11977,7 +11969,7 @@ msgCantUseItem [&CHK&Impossible d'utiliser l'objet] // HASH_VALUE FFC356400C128F30 // INDEX 2827 -msgCantBuild [&CHK&Impossible de constuire l'objet] +msgCantBuild [&CHK&Impossible de construire l'objet] // HASH_VALUE C5C3335B8582FA57 // INDEX 2828 @@ -11985,11 +11977,11 @@ msgCantUseBuiltItem [&CHK&Impossible d'utiliser l'objet construit] // HASH_VALUE DBEE187F4177BB42 // INDEX 2829 -msgCantPutItemInBag [&CHK&Il n'est pas possible de mettre l'objet dans le sac. Sac plein.] +msgCantPutItemInBag [&CHK&Impossible de mettre l'objet dans le sac : sac plein] // HASH_VALUE 1FDA9BE2E90C44B0 // INDEX 2830 -msgCantFightSwim [&CHK&Impossible d'Engager un Combat en nageant] +msgCantFightSwim [&CHK&Impossible d'engager un combat en nageant] // HASH_VALUE E98B63E2109C58CC // INDEX 2831 @@ -12025,19 +12017,19 @@ msgUserIsStanding [&SYS&Vous êtes debout.] // HASH_VALUE 312F1AA8FDEFD53C // INDEX 2839 -msgPermanentlyBanned [&BC&Vous êtes bannis de Ryzom de manière permanente.] +msgPermanentlyBanned [&BC&Vous êtes banni(e) de Ryzom de manière définitive.] // HASH_VALUE 3911721FF5C10731 // INDEX 2840 -uiCantUseItem [Vous n'avez pas la compétence pour l'utiliser.] +uiCantUseItem [Vous n'avez pas la compétence pour utiliser cet objet.] // HASH_VALUE 45B15625FAA23625 // INDEX 2841 -uiCantUseBuiltItem [IMPOSSIBLE D'UTILISER UN OBJET CONSTRUIT] +uiCantUseBuiltItem [Impossible d'utiliser l'objet fabriqué] // HASH_VALUE A2506C1850F0A23A // INDEX 2842 -uiCantBuildItem [IMPOSSIBLE DE CONSTRUIRE L'OBJET] +uiCantBuildItem [Impossible de fabriquer l'objet] // HASH_VALUE C7C5908EE2C4720F // INDEX 2843 @@ -12069,7 +12061,7 @@ uiBotChatTimeSecond [ s.] // HASH_VALUE 4D1843DD6B043B40 // INDEX 2850 -uiBotChatResaleTimeLeft [Temps de Revente Restant : %d jours, %h heures.] +uiBotChatResaleTimeLeft [Temps de revente restant : %d jours, %h heures] // HASH_VALUE 06A4172916D08F05 // INDEX 2851 @@ -12093,7 +12085,7 @@ uiBotChatItem [Objet : ] // HASH_VALUE D5F4435F97D33E8B // INDEX 2856 -uiBotChatFaberPlan [Plan d'Artisan : ] +uiBotChatFaberPlan [Plan d'artisanat : ] // HASH_VALUE 6C58444C208C14E8 // INDEX 2857 @@ -12113,27 +12105,27 @@ uiConfirmCloseBCReward [Il reste des objets, fermer tout de même ?] // HASH_VALUE 59C8DC83EF5544B3 // INDEX 2861 -FlowerMaster [Maître des Fleurs] +FlowerMaster [Maître des fleurs] // HASH_VALUE 19C9A478D5475375 // INDEX 2862 -SapMaster [Maître de la Sève] +SapMaster [Maître de la sève] // HASH_VALUE D679948F26347490 // INDEX 2863 -uiMasterFilter [Maître des Filtres] +uiMasterFilter [Maître des philtres] // HASH_VALUE 4E73BC40CA131C2E // INDEX 2864 -uiSay [DIRE] +uiSay [Dire] // HASH_VALUE 4F02FC440EF2144B // INDEX 2865 -uiShout [CRIER] +uiShout [Crier] // HASH_VALUE 4EE1131549BE1308 // INDEX 2866 -uimToggleChatEBVis [AFFICHER/CACHER L'ENTREE DU CHAT] +uimToggleChatEBVis [Afficher / Cacher l'entrée du chat] // HASH_VALUE 74AF7A81D97452AE // INDEX 2867 @@ -12141,7 +12133,7 @@ uiRenamePartyChat [Veuillez renommer cette session anonyme en utilisant /name !] // HASH_VALUE 579BABAAD536705D // INDEX 2868 -uiAnomymousPCAlreadyCreated [Une session de chat anonyme est déjà ouverte ! Veuillez la renommée en utilisant /name avant d'en créer une nouvelle.] +uiAnomymousPCAlreadyCreated [Une session de chat anonyme est déjà ouverte ! Veuillez la renommer en utilisant /name avant d'en créer une nouvelle.] // HASH_VALUE 3E013627BDCA4051 // INDEX 2869 @@ -12181,7 +12173,7 @@ uiRemovePartyChatCmd [ un élément requis : le nom de // HASH_VALUE 4130B94CC59767F3 // INDEX 2878 -uiAddPartyChatCmd [ un élément requis : le nom de la session de chat à joindre.] +uiAddPartyChatCmd [ un élément requis : le nom de la session de chat à rejoindre.] // HASH_VALUE 85106EC49E173C2A // INDEX 2879 @@ -12201,11 +12193,11 @@ uiRestore [Restaurer] // HASH_VALUE 24E2D7E89F86DC5A // INDEX 2883 -uiAddMacro [Créer Nouvelle Macro >] +uiAddMacro [Créer une nouvelle macro >] // HASH_VALUE D1A754921F221749 // INDEX 2884 -uittNewMacro [Nouvelle Macro] +uittNewMacro [NOUVELLE MACRO] // HASH_VALUE C1A1D432071E1709 // INDEX 2885 @@ -12213,11 +12205,11 @@ uiNewMacro [NOUVELLE MACRO] // HASH_VALUE C92190F849FED400 // INDEX 2886 -uiEditMacro [EDITER MACRO] +uiEditMacro [ÉDITER LA MACRO] // HASH_VALUE 4CD034244CD03424 // INDEX 2887 -uiMacroIcon [ICONE] +uiMacroIcon [ICÔNE] // HASH_VALUE 4450143844501438 // INDEX 2888 @@ -12241,23 +12233,23 @@ uiMacroAddCmd [AJOUTER COMMANDE] // HASH_VALUE CA50172746A07002 // INDEX 2893 -uiIconCreation [CREATION D'ICONE] +uiIconCreation [Création d'icône] // HASH_VALUE 8830B4260BC08C1A // INDEX 2894 -uiIconBack [ARRIERE-PLAN] +uiIconBack [Arrière-plan] // HASH_VALUE 8A61EC2A0DF1AC2D // INDEX 2895 -uiIconFore [PREMIER PLAN] +uiIconFore [Premier plan] // HASH_VALUE 8D03BC398E42C835 // INDEX 2896 -uiIconPat [PLAN] +uiIconPat [Plan] // HASH_VALUE 5414545054145450 // INDEX 2897 -uiIconTxt [TEXTE] +uiIconTxt [Texte] // HASH_VALUE 4B32BC34CA510C2E // INDEX 2898 @@ -12269,31 +12261,31 @@ uiAddCommand [AJOUTER COMMANDE >] // HASH_VALUE 54B04C504408F4B2 // INDEX 2900 -uiAddKeys [Créer Nouvelle Touche >] +uiAddKeys [Créer nouvelle touche >] // HASH_VALUE C6A2742E45F1BC29 // INDEX 2901 -uiJauges [INDICATEUR] +uiJauges [Indicateur] // HASH_VALUE 4C52AC444652AC32 // INDEX 2902 -uiLaboratory [LABORATOIRE] +uiLaboratory [Laboratoire] // HASH_VALUE 405024504490942C // INDEX 2903 -uiTrackingTitle [PISTAGE] +uiTrackingTitle [Pistage] // HASH_VALUE 459398270FB0E032 // INDEX 2904 -uiCommunication [INTERACTION] +uiCommunication [Interaction] // HASH_VALUE 8BA1A0350FF00030 // INDEX 2905 -uiOrientation [ORIENTATION] +uiOrientation [Orientation] // HASH_VALUE 07E3783F8603C430 // INDEX 2906 -uiTargetTitle [CIBLE] +uiTargetTitle [Cible] // HASH_VALUE 27E9787FA607C490 // INDEX 2907 @@ -12301,19 +12293,19 @@ uiTarget [Cible] // HASH_VALUE 88C1902A3A9EEBF8 // INDEX 2908 -uiMainChatTitle [CHAT PRINCIPAL] +uiMainChatTitle [Chat principal] // HASH_VALUE 5490F40C50143404 // INDEX 2909 -uiContactListTitle [CONTACTS] +uiContactListTitle [Contacts] // HASH_VALUE 0B62D02D40411433 // INDEX 2910 -uiWinDisplay [AFFICHAGES DES FENETRES] +uiWinDisplay [Affichage des fenêtres] // HASH_VALUE 895E94333E311F1D // INDEX 2911 -uiDebugConsole [DEBOGAGE CONSOLE] +uiDebugConsole [Console de débogage] // HASH_VALUE CCE0F01B0EC0B018 // INDEX 2912 @@ -12349,7 +12341,7 @@ uiFrozenSkill [Gelé] // HASH_VALUE A7F65A607EA47B98 // INDEX 2920 -uiInitHelp1 [Ces boutons représentent vos 4 bureaux virtuels.] +uiInitHelp1 [Ces boutons représentent vos quatre bureaux virtuels.] // HASH_VALUE C494ACDDCE7EE794 // INDEX 2921 @@ -12357,7 +12349,7 @@ uiInitHelp2 [Vous pouvez passer de l'un à l'autre en cliquant sur ces boutons o // HASH_VALUE B0921BE50D3DDE9C // INDEX 2922 -uiInitHelp3 [En gardant le bouton appuyé, vous affichez le menu de la fenêtre principale qui vous permet d'afficher/cacher la fenêtre sur le bureau en cours.] +uiInitHelp3 [En gardant le bouton appuyé, vous affichez le menu de la fenêtre principale qui vous permet d'afficher / cacher la fenêtre sur le bureau en cours.] // HASH_VALUE 39ACC5456D3C6BC1 // INDEX 2923 @@ -12369,23 +12361,23 @@ uiInitHelp5 [Ou utiliser cette petite barre de fenêtres.] // HASH_VALUE D7EB9100DC7B5BD4 // INDEX 2925 -uiInitHelp6 [Maintenant, vous pouvez personnaliser vos 4 bureaux.] +uiInitHelp6 [Maintenant, vous pouvez personnaliser vos quatre bureaux.] // HASH_VALUE 8EE3BC39CBA3F82E // INDEX 2926 -uiPetTitle [ANIMAL DOMESTIQUE] +uiPetTitle [Animal domestique] // HASH_VALUE 9EE93C79E3A7788E // INDEX 2927 -uiPet [Animal Domestique] +uiPet [Animal domestique] // HASH_VALUE 62C7348CE738649D // INDEX 2928 -Undefined [Non Défini] +Undefined [Non défini] // HASH_VALUE 2144C475DBD09C8D // INDEX 2929 -uiToggleNames [Act/Désact Noms] +uiToggleNames [Act/Désact noms] // HASH_VALUE EA39D0158B86C4B0 // INDEX 2930 @@ -12413,7 +12405,7 @@ region_upperbog [Marais Supérieur] // HASH_VALUE EEF7FF4010F278B8 // INDEX 2936 -region_hereticshovel [Masure d'Hérétique] +region_hereticshovel [Masure de l'Hérétique] // HASH_VALUE 2BFA2C144E17C8B4 // INDEX 2937 @@ -12437,7 +12429,7 @@ place_avalae [Avalae] // HASH_VALUE E877E882E0A70C75 // INDEX 2942 -place_arena [Arena] +place_arena [Arène] // HASH_VALUE AD27F873AF46CC8C // INDEX 2943 @@ -12497,107 +12489,107 @@ place_hoi_cho [Hoï-Cho] // HASH_VALUE 0D11630A7F4E0FD7 // INDEX 2957 -uiLocationTitle [OU SOUHAITEZ-VOUS VOUS RENDRE ?] +uiLocationTitle [Où souhaitez-vous vous rendre ?] // HASH_VALUE 4B31842EC711BC30 // INDEX 2958 -uiLocDest1Fyros [AEGUS] +uiLocDest1Fyros [Aegus] // HASH_VALUE 8950782A86B0AC2E // INDEX 2959 -uiLocDest2Fyros [KAEMON] +uiLocDest2Fyros [Kaemon] // HASH_VALUE D0A1D832CAC2E84A // INDEX 2960 -uiLocDest3Fyros [SEKOVIX] +uiLocDest3Fyros [Sekovix] // HASH_VALUE D123DC48CD93F447 // INDEX 2961 -uiLocDest4Fyros [PHYXON] +uiLocDest4Fyros [Phyxon] // HASH_VALUE CD4180198581C43C // INDEX 2962 -uiLocDest5Fyros [GALEMUS] +uiLocDest5Fyros [Galemus] // HASH_VALUE 8D21F8338F42CC2C // INDEX 2963 -uiLocDest1Matis [STALLI] +uiLocDest1Matis [Stalli] // HASH_VALUE 089194174851601A // INDEX 2964 -uiLocDest2Matis [BOREA] +uiLocDest2Matis [Borea] // HASH_VALUE CCE2A03809918033 // INDEX 2965 -uiLocDest3Matis [NISTIA] +uiLocDest3Matis [Nistia] // HASH_VALUE 8A21E03D8D42E836 // INDEX 2966 -uiLocDest4Matis [ROSILIO] +uiLocDest4Matis [Rosilio] // HASH_VALUE 8760842D8810B825 // INDEX 2967 -uiLocDest5Matis [MIANI] +uiLocDest5Matis [Miani] // HASH_VALUE 0D7100364E51C029 // INDEX 2968 -uiLocDest1Tryker [AUBERMOUTH] +uiLocDest1Tryker [Aubermouth] // HASH_VALUE 489414084C105410 // INDEX 2969 -uiLocDest2Tryker [BARKDELL] +uiLocDest2Tryker [Barkdell] // HASH_VALUE 5490F4205810C414 // INDEX 2970 -uiLocDest3Tryker [HOBWELLY] +uiLocDest3Tryker [Hobwelly] // HASH_VALUE 4494145C4CD04448 // INDEX 2971 -uiLocDest4Tryker [WAVERTON] +uiLocDest4Tryker [Waverton] // HASH_VALUE C7A0AC354CD19C2A // INDEX 2972 -uiLocDest5Tryker [DINGLETON] +uiLocDest5Tryker [Dingleton] // HASH_VALUE B901FB37BE823332 // INDEX 2973 -uiLocDest1Zorai [QAÏ-LO] +uiLocDest1Zorai [Qaï-Lo] // HASH_VALUE 4C50844C4CD4D01C // INDEX 2974 -uiLocDest2Zorai [SHENG-WO] +uiLocDest2Zorai [Sheng-Wo] // HASH_VALUE 2C90543444909460 // INDEX 2975 -uiLocDest3Zorai [NEN-XING] +uiLocDest3Zorai [Nen-Xing] // HASH_VALUE C9607F104220F848 // INDEX 2976 -uiLocDest4Zorai [KOÏ-ZUN] +uiLocDest4Zorai [Koï-Zun] // HASH_VALUE 8681E02F497F5314 // INDEX 2977 -uiLocDest5Zorai [YIN-PIANG] +uiLocDest5Zorai [Yin-Piang] // HASH_VALUE 46C2B42F0AD2C01E // INDEX 2978 -uiBotChatTrade [ECHANGE] +uiBotChatTrade [Échange] // HASH_VALUE 4E10ACC6C6EC744C // INDEX 2979 -uiBotMissionChoice [CHOISIR UNE MISSION] +uiBotMissionChoice [Choisir une mission] // HASH_VALUE 7B60EF008C420004 // INDEX 2980 -uiBotChatOffer [FAITES VOTRE OFFRE] +uiBotChatOffer [Faites votre offre.] // HASH_VALUE 0234404D03E43C4D // INDEX 2981 -uiBotChatReward [RECOMPENSE] +uiBotChatReward [Récompense] // HASH_VALUE C2AE4C03832E2831 // INDEX 2982 -uiBotManageJob [GERER TRAVAIL] +uiBotManageJob [Gérer le travail] // HASH_VALUE D7DA0861C574E469 // INDEX 2983 @@ -12605,7 +12597,7 @@ uiConfirmFreezeJob [Bloquer ce travail ?] // HASH_VALUE 84C16007F93DF8FC // INDEX 2984 -uiBotChatSelectJob [CHOISISSEZ UN TRAVAIL A ACTIVER] +uiBotChatSelectJob [Choisissez un travail à activer.] // HASH_VALUE 73A634607114247F // INDEX 2985 @@ -12613,15 +12605,15 @@ uiJobFreezeTime [Bloqué] // HASH_VALUE DCF3184561338491 // INDEX 2986 -uittSelectJob [Choisissez un Travail] +uittSelectJob [Choisissez un travail.] // HASH_VALUE 69D8B846D708DA5B // INDEX 2987 -uiConfirmUnfreezeJob [Confirmer déblocage du travail ?] +uiConfirmUnfreezeJob [Confirmez-vous le déblocage du travail ?] // HASH_VALUE 6D671643D664CC58 // INDEX 2988 -uiConfirmSwapJob [Confimer échange du travail ?] +uiConfirmSwapJob [Vous confirmer le changement de travail ?] // HASH_VALUE DB123FD2AD2687D6 // INDEX 2989 @@ -12629,11 +12621,11 @@ uiEmptyJob [- Pas de travail activé -] // HASH_VALUE 9A74CC6F132098A0 // INDEX 2990 -uiBotCreateGuild [Créer une Guilde] +uiBotCreateGuild [Créer une guilde] // HASH_VALUE 4C1054504C105450 // INDEX 2991 -uiTell [MESSAGE PRIVE] +uiTell [Message privé] // HASH_VALUE D6D28F5A4D442F0C // INDEX 2992 @@ -12649,7 +12641,7 @@ uiHide [Cacher] // HASH_VALUE 2944C475EBD09C8D // INDEX 2995 -uiInvertNames [Act/Désact Noms] +uiInvertNames [Act/Désact noms] // HASH_VALUE 738710663076287B // INDEX 2996 @@ -12657,7 +12649,7 @@ uiPlayer [Joueur] // HASH_VALUE D36A9C4B6C15C7A4 // INDEX 2997 -uiBonusMalus [Bonus/Malus] +uiBonusMalus [Bonus / Malus] // HASH_VALUE EB27288CA3A73480 // INDEX 2998 @@ -12673,11 +12665,11 @@ uiBotChat [Chat] // HASH_VALUE EFF60854AE541872 // INDEX 3001 -uiCompas [Compas] +uiCompas [Radar] // HASH_VALUE 6629889323B92489 // INDEX 3002 -uiTaskbar [Barre de Tâches] +uiTaskbar [Barre de tâches] // HASH_VALUE 6E75B78D0F95A822 // INDEX 3003 @@ -12685,7 +12677,7 @@ uiShowOnPress [Appuyer pour afficher] // HASH_VALUE 8E253FF3DA307775 // INDEX 3004 -uiLightOnOff [Lumière On / Off] +uiLightOnOff [Lumière activée / désactivée] // HASH_VALUE 7458840C7458840C // INDEX 3005 @@ -12705,11 +12697,11 @@ uiAction [Action] // HASH_VALUE F3F9507E34F72090 // INDEX 3009 -uiSystem [Systeme] +uiSystem [Système] // HASH_VALUE 5792CC5059228F88 // INDEX 3010 -uiLog [Chat log activé/désactivé] +uiLog [Chat log activé / désactivé] // HASH_VALUE C2B80C8260EC9A9A // INDEX 3011 @@ -12733,15 +12725,15 @@ uiMagic [Magie] // HASH_VALUE A7C70F63EAD50A8F // INDEX 3016 -uiFaberCreate [Artisan en Création] +uiFaberCreate [Création] // HASH_VALUE A7070F6EA7060A9A // INDEX 3017 -uiFaberRepair [Artisan en Réparation] +uiFaberRepair [Réparation] // HASH_VALUE 64572F6464562A90 // INDEX 3018 -uiFaberRefine [Artisan en Peaufinement] +uiFaberRefine [Amélioration] // HASH_VALUE 6C58F40C64D82494 // INDEX 3019 @@ -12757,7 +12749,7 @@ uiTracking [Pistage] // HASH_VALUE 33B8407C33D73C9E // INDEX 3022 -uiStatus [Etat] +uiStatus [État] // HASH_VALUE EC27D87BABC6F894 // INDEX 3023 @@ -12781,11 +12773,11 @@ uiSets [Réglages] // HASH_VALUE 0FB5382F51126383 // INDEX 3028 -uiSetInUse [Réglage en Utilisation] +uiSetInUse [Ensemble en cours d'utilisation] // HASH_VALUE 2018C404701C544C // INDEX 3029 -uiAllSets [Tous les Régl.] +uiAllSets [Tous les ensembles] // HASH_VALUE CE79CC3B1AC2E070 // INDEX 3030 @@ -12797,11 +12789,11 @@ uiSteed [Monture] // HASH_VALUE CB720C430F71F837 // INDEX 3032 -uiInventory [INVENTAIRE] +uiInventory [Inventaire] // HASH_VALUE 4894F45C50D0844C // INDEX 3033 -uiWorkshop [ATELIER] +uiWorkshop [Atelier] // HASH_VALUE 2D06909A22476C99 // INDEX 3034 @@ -12861,7 +12853,7 @@ uiMainChat [Chat principal] // HASH_VALUE E717CFA1A2646464 // INDEX 3048 -uiSystemInfo [Infos Systemes] +uiSystemInfo [Infos système] // HASH_VALUE 248798130F85DCC4 // INDEX 3049 @@ -12869,15 +12861,15 @@ uiAroundMe [Alentours] // HASH_VALUE 1E25A87BD7E7A45D // INDEX 3050 -uiTellWinAct [Fenêtre de Conversation] +uiTellWinAct [Fenêtre de conversation] // HASH_VALUE 21F83C914A92C753 // INDEX 3051 -uiTeamChat [Chat de l'Equipe] +uiTeamChat [Chat de l'équipe] // HASH_VALUE 6909C46F6B06949A // INDEX 3052 -uiTeamList [Equipe] +uiTeamList [Équipe] // HASH_VALUE 7498F40C701C3484 // INDEX 3053 @@ -12905,47 +12897,47 @@ uiGlobalSettings [Configuration] // HASH_VALUE DC65D87AD7C76461 // INDEX 3059 -uiNextSheath [Gaine Suivante] +uiNextSheath [Étui suivant] // HASH_VALUE A8994C35941904AD // INDEX 3060 -uiPrevSheath [Gaine Précédente] +uiPrevSheath [Étui précédent] // HASH_VALUE 649CF434649CF434 // INDEX 3061 -uiMovement [Se Deplacer] +uiMovement [Se déplacer] // HASH_VALUE EADBE89EE5C7307D // INDEX 3062 -uiMoveForward [En Avant] +uiMoveForward [En avant] // HASH_VALUE 68D81408649C14DC // INDEX 3063 -uiMoveBackward [En Arrière] +uiMoveBackward [En arrière] // HASH_VALUE A90A90930D023375 // INDEX 3064 -uiMoveTurnLeft [Tourner à Gauche] +uiMoveTurnLeft [Tourner à gauche] // HASH_VALUE EE888C456504A84E // INDEX 3065 -uiMoveTurnRight [Tourner à Droite] +uiMoveTurnRight [Tourner à droite] // HASH_VALUE DE986F8F62A36060 // INDEX 3066 -uiMoveStrafeLeft [Déplacement Latéral à Gauche] +uiMoveStrafeLeft [Déplacement latéral à gauche] // HASH_VALUE 61D6D4759DB19888 // INDEX 3067 -uiMoveStrafeRight [Déplacement Latéral à Droite] +uiMoveStrafeRight [Déplacement latéral à droite] // HASH_VALUE 5303A795A3B70431 // INDEX 3068 -uiMoveLookUp [Regarder en Haut] +uiMoveLookUp [Regarder en haut] // HASH_VALUE A39684A0D1F2FB69 // INDEX 3069 -uiMoveLookDown [Regarder en Bas] +uiMoveLookDown [Regarder en bas] // HASH_VALUE 3CC62B48DD82B359 // INDEX 3070 @@ -12953,7 +12945,7 @@ uiMoveToggleSitStand [S'asseoir / Se lever] // HASH_VALUE A568387950836B78 // INDEX 3071 -uiMoveToggleAutoWalk [Marche Auto.] +uiMoveToggleAutoWalk [Marche auto] // HASH_VALUE 97468744C572825B // INDEX 3072 @@ -12965,23 +12957,23 @@ uiMountUnmount [Monter / Descendre] // HASH_VALUE 5867A88E5B940877 // INDEX 3074 -uiToggleCamera [Changement de Caméra] +uiToggleCamera [Changer de caméra] // HASH_VALUE 8B235C8E26F81F44 // INDEX 3075 -uiNoTarget [Aucune Cible] +uiNoTarget [Aucune cible] // HASH_VALUE E8FA0A846C92ECB2 // INDEX 3076 -uiTargetCmd [Cibler une entité.] +uiTargetCmd [Cibler une entité] // HASH_VALUE 6E0914F3103796B9 // INDEX 3077 -uiTargetCmdEntity [Nom de l'entité à cibler.] +uiTargetCmdEntity [Nom de l'entité à cibler] // HASH_VALUE 2B29F0307EE6BC9A // INDEX 3078 -uiTargetTeammateCmd [Cibler le Joueur de l'Equipe #] +uiTargetTeammateCmd [Cibler le coéquipier # dans l'équipe] // HASH_VALUE 29E6FC6EEEF4F085 // INDEX 3079 @@ -12989,63 +12981,63 @@ uiTargetTeammateCmdI [Numéro] // HASH_VALUE 42A740FFAFE6FCAA // INDEX 3080 -uiAssistCmd [Cibler la cible actuelle de l'entité.] +uiAssistCmd [Cibler la cible actuelle de la cible] // HASH_VALUE AE2AC8F31037CEBB // INDEX 3081 -uiAssistCmdEntity [Nom de l'entité à aider.] +uiAssistCmdEntity [Nom de l'entité à aider] // HASH_VALUE D6625803A8C6E8AF // INDEX 3082 -uiAssistTargetCmd [Cibler la cible de la cible actuelle.] +uiAssistTargetCmd [Cibler la cible de la cible actuelle] // HASH_VALUE E692146868D074C6 // INDEX 3083 -uiTargetErrorCmd [Entité non trouvée.] +uiTargetErrorCmd [Entité non trouvée] // HASH_VALUE 5B36487A56279C4B // INDEX 3084 -uiSelfTarget [Me Cibler] +uiSelfTarget [Me cibler] // HASH_VALUE 1437F48B9A94408A // INDEX 3085 -uiToggleCombat [Act/Désact Combat] +uiToggleCombat [Act/Désact. combat] // HASH_VALUE 52489FA01FB5D48B // INDEX 3086 -uiSetDesktop [Régler Bureau] +uiSetDesktop [Régler le bureau] // HASH_VALUE 711AB86450AA2CD4 // INDEX 3087 -uiCopyToDesktop [Copier le Présent Bureau sur le Bureau] +uiCopyToDesktop [Copier le bureau actuel sur le bureau] // HASH_VALUE E9AAA07298669B8D // INDEX 3088 -uiDesktopNumber [Numéro du Bureau] +uiDesktopNumber [Numéro du bureau] // HASH_VALUE C919D86B5D29A46C // INDEX 3089 -uiRunShortcut [Exe. Raccourci] +uiRunShortcut [Exécuter le raccourci] // HASH_VALUE AC4A6C2913FAC09E // INDEX 3090 -uiShortcutNumber [Numéro du Raccourci] +uiShortcutNumber [Numéro du raccourci] // HASH_VALUE 644957718CE6209A // INDEX 3091 -uiSelectShortcutBar [Choisir la Barre de Raccourci] +uiSelectShortcutBar [Choisir la barre de raccourcis] // HASH_VALUE 147A14389DFC083E // INDEX 3092 -uiShortcutBarNumber [Numéro de la Barre de Raccourci] +uiShortcutBarNumber [Numéro de la barre de raccourcis] // HASH_VALUE 6889B89AE6E9AC99 // INDEX 3093 -uiScreenShot [Capture d'Ecran] +uiScreenShot [Capture d'écran (TGA)] // HASH_VALUE 57841C546889047B // INDEX 3094 -uiScreenShotJPG [Capture d'Ecran JPG] +uiScreenShotJPG [Capture d'écran (JPEG)] // HASH_VALUE 74DC545074DC5450 // INDEX 3095 @@ -13057,23 +13049,23 @@ uiLight [Lumière] // HASH_VALUE ABE76848A5B2283E // INDEX 3097 -uiFreeMouse [Souris Libre] +uiFreeMouse [Souris libre] // HASH_VALUE A9070F3B21451361 // INDEX 3098 -uiCloseHelp [Fermer Toutes les Aides] +uiCloseHelp [Fermer toutes les aides] // HASH_VALUE 93A810995EB5EC4B // INDEX 3099 -uiToggleMovieRecorder [Act/Désact Enregistreur] +uiToggleMovieRecorder [Act/Désact. l'enregistreur] // HASH_VALUE E2A6E8741AA13883 // INDEX 3100 -uiReplayMovie [Rejouer le Film] +uiReplayMovie [Rejouer le film] // HASH_VALUE A728284BA194E452 // INDEX 3101 -uiSaveMovie [Sauvegarder le Film] +uiSaveMovie [Sauvegarder le film] // HASH_VALUE 2BA95B8969E746B0 // INDEX 3102 @@ -13085,23 +13077,23 @@ uiReplyTellerOnce [Répondre à un message privé] // HASH_VALUE 0E1FA83BBFE124FD // INDEX 3104 -uiTellWindow [Fenêtre du Cont.] +uiTellWindow [Fenêtre du message] // HASH_VALUE 07AE900FC85F7C34 // INDEX 3105 -uimFreezeJob [BLOQUER TRAVAIL] +uimFreezeJob [Bloquer le travail] // HASH_VALUE 5050744C40D0A480 // INDEX 3106 -uimSwapJob [ECHANGER LES TRAVAUX] +uimSwapJob [Échanger les travaux] // HASH_VALUE 4DD49B892BA74023 // INDEX 3107 -uiCameraUp [Déplacer Caméra vers le Haut] +uiCameraUp [Déplacer la caméra vers le haut] // HASH_VALUE C2FA0C64EC1A94C8 // INDEX 3108 -uiCameraDown [Déplacer Caméra vers le Bas] +uiCameraDown [Déplacer la caméra vers le bas] // HASH_VALUE A4E6033B27D46469 // INDEX 3109 @@ -13117,7 +13109,7 @@ uiCameraTurnCenter [Recentrer la caméra derrière le joueur] // HASH_VALUE 2CA4D39D65B41417 // INDEX 3112 -uiCycleTell [Parcourir les Derniers Contacts] +uiCycleTell [Parcourir les derniers contacts] // HASH_VALUE 81C8A43925626C7A // INDEX 3113 @@ -13133,7 +13125,7 @@ uiTellCmdMsg [Message] // HASH_VALUE 6CA69F2A1A48B6A8 // INDEX 3116 -uiEnterTellCmd [Entrer en mode CONVERSER avec un joueur.] +uiEnterTellCmd [Entrer en mode Discussion avec un joueur] // HASH_VALUE 5539D484CDD40467 // INDEX 3117 @@ -13141,7 +13133,7 @@ uiTalkCmd [Parler à quelqu'un] // HASH_VALUE ECA9A7F2A6195B10 // INDEX 3118 -uiTalkCmdMode [Mode utilisé pour converser] +uiTalkCmdMode [Mode utilisé pour discuter] // HASH_VALUE 5E793C80E2179C8E // INDEX 3119 @@ -13157,7 +13149,7 @@ uiTalkCmdModeShout [Crier] // HASH_VALUE 6C5854506C585450 // INDEX 3122 -uiTalkCmdModeTeam [Equipe] +uiTalkCmdModeTeam [Équipe] // HASH_VALUE EB27288CA3A73480 // INDEX 3123 @@ -13185,15 +13177,15 @@ uiTalkCmdMsg [Message] // HASH_VALUE 2CB3D832864946B2 // INDEX 3129 -uiEnterTalkCmd [Entrer en mode PARLER.] +uiEnterTalkCmd [Entrer en mode Parler] // HASH_VALUE 41F97062092C55F4 // INDEX 3130 -uiEditExpandOrCycleTell [Etendre la dernière cmd / Cycle aux Contacts] +uiEditExpandOrCycleTell [Étendre la dernière commande / cycle aux contacts] // HASH_VALUE 578F4F0AEE340406 // INDEX 3131 -uiDragToInventory [Glisser-Déposer des Objets dans votre inventaire] +uiDragToInventory [Glisser-déposer des objets dans votre inventaire] // HASH_VALUE AD99AC92E328ACB0 // INDEX 3132 @@ -13229,31 +13221,31 @@ uiTogglePopupPopinWindow [Ouvrir / Fermer] // HASH_VALUE E8982C846052A4C0 // INDEX 3140 -uiToggleInventory [Act/Désact Inventaire] +uiToggleInventory [Act/Désact l'inventaire] // HASH_VALUE D67740F4A74949CB // INDEX 3141 -uiCantAddYourSelfInContactList [Impossible de vous ajouter à la liste de contacts.] +uiCantAddYourSelfInContactList [Impossible de vous ajouter à la liste des contacts] // HASH_VALUE FED1A006BE4F7621 // INDEX 3142 -uimGcmAddToFriendList [AJOUTER A LA LISTE D'AMIS] +uimGcmAddToFriendList [Ajouter à la liste d'amis] // HASH_VALUE 0211F31D4D3E1408 // INDEX 3143 -uiJoinTeamProposal [REJOINDRE L'EQUIPE] +uiJoinTeamProposal [Rejoindre l'équipe] // HASH_VALUE C2B2DC544C104A32 // INDEX 3144 -uiTradeInvitation [INVITATION A ECHANGER] +uiTradeInvitation [Invitation à échanger] // HASH_VALUE BC2E04E942E18037 // INDEX 3145 -uiCreateNewPartyChat [CREER NOUV. SESSION DE CHAT] +uiCreateNewPartyChat [Créer nouv. session de chat] // HASH_VALUE 4C50840C38105438 // INDEX 3146 -uiChannel [CANAL :] +uiChannel [Canal :] // HASH_VALUE 205CF4E46C1854D0 // INDEX 3147 @@ -13281,11 +13273,11 @@ uiBotTalk [Conversation avec un PNJ ] // HASH_VALUE 88C1902A3A9EEBF8 // INDEX 3153 -uimwChat [CHAT PRINCIPAL] +uimwChat [Chat principal] // HASH_VALUE 09F20444412EEBF3 // INDEX 3154 -uimwTeam [LISTE DE L'EQUIPE] +uimwTeam [Liste de l'équipe] // HASH_VALUE 7458E45464DC2494 // INDEX 3155 @@ -13301,16 +13293,16 @@ uittPeopleAdd [Ami] // HASH_VALUE 0391446EE27600AF // INDEX 3158 -uiPeopleAddContact [Ajouter contact à la liste] +uiPeopleAddContact [Ajouter un contact à la liste] // HASH_VALUE 6E0E284EC3C94BD5 // INDEX 3159 uiCongifExplanation [Sélectionnez le type de configuration en utilisant l'explorateur sur la gauche\n \n - -La Résolution Vidéo est modifiée uniquement si vous cliquez sur "APPLIQUER".\n - -La Résolution de la Texture sera modifiée lors de la prochaine partie.\n + - La Résolution vidéo est modifiée uniquement si vous cliquez sur "APPLIQUER".\n + - La Résolution de la texture sera modifiée lors de la prochaine partie.\n \n - -Les boutons "ANNULER" et "FERMER" annuleront uniquement les changements qui n'ont pas été appliqués.] + - Les boutons "ANNULER" et "FERMER" annuleront uniquement les changements qui n'ont pas été appliqués.] // HASH_VALUE 6458C4186458C418 // INDEX 3160 @@ -13326,7 +13318,7 @@ uiGuildDescription [Description] // HASH_VALUE D5358054D8C61C58 // INDEX 3163 -uiGuildBlasonDesign [Conception du Drapeau] +uiGuildBlasonDesign [Conception du blason] // HASH_VALUE 68D8140868D81408 // INDEX 3164 @@ -13334,11 +13326,11 @@ uiGuildBlasonBack [Retour] // HASH_VALUE 9B44B4889EA2FBF2 // INDEX 3165 -uiGuildBlasonColor1 [Definir Couleur 1] +uiGuildBlasonColor1 [Définir la couleur 1] // HASH_VALUE DB44B4889EA2FFF2 // INDEX 3166 -uiGuildBlasonColor2 [Definir Couleur 2] +uiGuildBlasonColor2 [Définir la couleur 2] // HASH_VALUE A9D704826F36D09E // INDEX 3167 @@ -13346,7 +13338,7 @@ uiGuildBlasonFore [Symbole] // HASH_VALUE D768E89626E570A7 // INDEX 3168 -uiNegativeSymbol [Inverser Symbole] +uiNegativeSymbol [Inverser le symbole] // HASH_VALUE E17363860BC7CB30 // INDEX 3169 @@ -13358,11 +13350,11 @@ uiGuildBlasonC2 [Couleur 2] // HASH_VALUE 1398E4361C42C837 // INDEX 3171 -uittGuildFlagBack [Définir Image de Fond du Drapeau] +uittGuildFlagBack [Définir l'image de fond du blason] // HASH_VALUE 13E6E43FE0F39F8E // INDEX 3172 -uittGuildFlagFore [Définir Symbole du Drapeau] +uittGuildFlagFore [Définir le symbole du blason] // HASH_VALUE 9CC834756265708C // INDEX 3173 @@ -13370,7 +13362,7 @@ uiConnectionTitle_short [Net] // HASH_VALUE 4BFF883E7D125F2C // INDEX 3174 -uimwWindowsBar [BARRE DES FENETRES] +uimwWindowsBar [Barre des fenêtres] // HASH_VALUE DBB57F3B17C36E07 // INDEX 3175 @@ -13378,71 +13370,71 @@ uiTestDialogue [Test !] // HASH_VALUE 46C2B42F0AD2C01E // INDEX 3176 -uimGcmTrade [ECHANGE] +uimGcmTrade [Échange] // HASH_VALUE CE21DB2F0C424631 // INDEX 3177 -uimGcmLearnSkills [APPRENDRE DES COMPETENCES] +uimGcmLearnSkills [Apprendre des compétences] // HASH_VALUE 50D494345090F424 // INDEX 3178 -uimGcmMissions [MISSIONS] +uimGcmMissions [Missions] // HASH_VALUE 826ECC2F031C9840 // INDEX 3179 -uimGcmCreateGuild [CREER UNE GUILDE] +uimGcmCreateGuild [Créer une guilde] // HASH_VALUE FE111FEDCAC2CCFF // INDEX 3180 -uimGcmTeleport [CONCLURE UN PACTE] +uimGcmTeleport [Acheter un pacte] // HASH_VALUE 3DF1C72C7C118CFE // INDEX 3181 -uimGcmFaction [ACHETER DES OBJETS DE FACTION] +uimGcmFaction [Acheter des objets de faction] // HASH_VALUE 33F3380C7E93200D // INDEX 3182 -uimGcmCosmetic [ACHAT DE COSMETIQUES] +uimGcmCosmetic [Acheter des cosmétiques] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3183 -uimGcmGuildOptions [COMMERCE DES BATIMENTS] +uimGcmGuildOptions [Commerce de bâtiments] // HASH_VALUE 0641DCFD4E9EAC18 // INDEX 3184 -uimGcmOutpostBuilding [COMMERCE DES BATIMENTS] +uimGcmOutpostBuilding [Commerce de bâtiments] // HASH_VALUE 0962902D7F701700 // INDEX 3185 -uimGcmGuildRoleMaster [APPRENDRE ACTION GUILDE] +uimGcmGuildRoleMaster [Apprendre une action de guilde] // HASH_VALUE 415057160AB19C2D // INDEX 3186 -uimGcmAvailableMissions [MISSIONS DISPONIBLES] +uimGcmAvailableMissions [Missions disponibles] // HASH_VALUE D2F0E4C6C892BC38 // INDEX 3187 -uimGcmContinueMissions [POURSUIVRE LA MISSION] +uimGcmContinueMissions [Poursuivre la mission] // HASH_VALUE 4942BC30CBDEB408 // INDEX 3188 -uimGcmFinishMissions [TERMINER LA MISSION] +uimGcmFinishMissions [Terminer la mission] // HASH_VALUE 0A921F2CFDB22B1D // INDEX 3189 -uimGcmTradePact [PACTE D'ECHANGE] +uimGcmTradePact [Pacte d'échange] // HASH_VALUE 4C10544C4C10544C // INDEX 3190 -uiSell [VENDRE] +uiSell [Vendre] // HASH_VALUE 8AF12B307EE12331 // INDEX 3191 -uiQuickhelpTitle [AIDE RAPIDE] +uiQuickhelpTitle [Aide rapide] // HASH_VALUE 8AF12B307EE12331 // INDEX 3192 -uimQuickHelp [AIDE RAPIDE] +uimQuickHelp [Aide rapide] // HASH_VALUE 4CB444E94F019BA7 // INDEX 3193 @@ -13450,31 +13442,31 @@ uiInitHelp [Cliquez sur moi pour obtenir de l'aide !] // HASH_VALUE D0E6969DE07E6459 // INDEX 3194 -uiQH_1 [Se Déplacer] +uiQH_1 [Comment se déplacer] // HASH_VALUE 11347452A6235354 // INDEX 3195 -uiQH_2 [Utiliser les Fenêtres] +uiQH_2 [Comment utiliser les fenêtres] // HASH_VALUE BE76D44D4701D459 // INDEX 3196 -uiQH_3 [Se Battre] +uiQH_3 [Comment se battre] // HASH_VALUE 4E634F46D9006F93 // INDEX 3197 -uiQH_4 [Faire de la Magie] +uiQH_4 [Comment faire de la magie] // HASH_VALUE 8745D732E1C59BA3 // INDEX 3198 -uiQH_5 [Connaître Votre Position] +uiQH_5 [Comment connaître votre position] // HASH_VALUE C52A9867D7FF9F80 // INDEX 3199 -uiQH_6 [Changer de Profession] +uiQH_6 [Comment changer de profession] // HASH_VALUE FECA58451AB22090 // INDEX 3200 -uiQH_7 [Trouver Votre Instructeur] +uiQH_7 [Comment trouver votre instructeur] // HASH_VALUE 6818540868185408 // INDEX 3201 @@ -13482,31 +13474,31 @@ uiBulkTitle [Volume] // HASH_VALUE E6E73C38AB06C7B5 // INDEX 3202 -uiPreview [Liste Détaillée] +uiPreview [Liste détaillée] // HASH_VALUE 80A0F4028EC11734 // INDEX 3203 -uiGuildForumTitle [FORUM DE LA GUILDE] +uiGuildForumTitle [Forum de la guilde] // HASH_VALUE 80A0F4028EC11734 // INDEX 3204 -uimwGuildForum [FORUM DE LA GUILDE] +uimwGuildForum [Forum de la guilde] // HASH_VALUE 9D39ACA4E686FBD7 // INDEX 3205 -uiExpandWindows [Afficher / Cacher les Boutons du Bureau] +uiExpandWindows [Afficher / Cacher les boutons du bureau] // HASH_VALUE D46D58FC6B8D9ADD // INDEX 3206 -uiDisconnected [Déconnexion. Serveur en panne ou problème de réseau.] +uiDisconnected [Déconnexion : serveur en panne ou problème de réseau] // HASH_VALUE 8C7064230801D836 // INDEX 3207 -uiMailboxTitle [MESSAGERIE] +uiMailboxTitle [Messagerie] // HASH_VALUE 8C7064230801D836 // INDEX 3208 -uimwMailbox [MESSAGERIE] +uimwMailbox [Messagerie] // HASH_VALUE AE4860992787689C // INDEX 3209 @@ -13518,11 +13510,11 @@ uimCompassMissions [Missions] // HASH_VALUE E976503860C21845 // INDEX 3211 -uimCompassLandMarks [REPERES] +uimCompassLandMarks [Repères] // HASH_VALUE 6C5854506C585450 // INDEX 3212 -uimCompassTeam [Equipe] +uimCompassTeam [Équipe] // HASH_VALUE 6C56D84CACD4D06C // INDEX 3213 @@ -13562,31 +13554,31 @@ uiWebForward [Transférer] // HASH_VALUE 4CD87F8B6133D48C // INDEX 3222 -uiWebNewMessage [Nouveau Message] +uiWebNewMessage [Nouveau message] // HASH_VALUE D1E7008A66446B50 // INDEX 3223 -uiWebNewTopic [Nouveau Sujet] +uiWebNewTopic [Nouveau sujet] // HASH_VALUE 20DC543874DCF440 // INDEX 3224 -uiWebNewPost [Nouveau Post] +uiWebNewPost [Nouveau post] // HASH_VALUE 6619703A8CA05CBD // INDEX 3225 -uiWebDelMessage [Supprimer les Messages Sélectionnés] +uiWebDelMessage [Supprimer les messages sélectionnés] // HASH_VALUE 63BA7C88E162F43F // INDEX 3226 -uiWebDelMess [Supprimer le Message] +uiWebDelMess [Supprimer le message] // HASH_VALUE E46A986950E2446B // INDEX 3227 -uiWebDelTopic [Supprimer les Sujets Sélectionnés] +uiWebDelTopic [Supprimer les sujets sélectionnés] // HASH_VALUE 56A9D45E5064D0AE // INDEX 3228 -uiWebDelPost [Supprimer les Posts Sélectionnés] +uiWebDelPost [Supprimer les posts sélectionnés] // HASH_VALUE 9B1710751F660483 // INDEX 3229 @@ -13594,19 +13586,19 @@ uiWebIG [Web] // HASH_VALUE D310CC1C52CDC429 // INDEX 3230 -uiBubbleBR [EN BAS A DROITE] +uiBubbleBR [En bas à droite] // HASH_VALUE 04830037C92F2F11 // INDEX 3231 -uiBubbleTR [EN HAUT A DROITE] +uiBubbleTR [En haut à droite] // HASH_VALUE 494227284ABF0804 // INDEX 3232 -uiBubbleBL [EN BAS A GAUCHE] +uiBubbleBL [En bas à gauche] // HASH_VALUE 2014F45054905430 // INDEX 3233 -uiBubbleTL [EN HAUT A DROITE] +uiBubbleTL [En haut à droite] // HASH_VALUE B54C279E920E61A6 // INDEX 3234 @@ -13614,7 +13606,7 @@ uiTryton1 [Depuis plusieurs siècles, je voyage parmi les couloirs trop paisible // HASH_VALUE DF28A0BE35A6586F // INDEX 3235 -uiTryton2 [Mêmes unies, les puissantes forces atysiennes des Kamis et de la Karavan se retrouvèrent impuissantes face aux attaques des Kitins au cours de cette année maudite. Des populations entières disparurent. Lorsque j'apprenais ces terribles nouvelles, je prêtais immédiatement main forte pour sauver les derniers survivants, dont beaucoup s'était dispersé ou enfui vers des régions reculées.] +uiTryton2 [Mêmes unies, les puissantes forces atysiennes des Kamis et de la Karavan se retrouvèrent impuissantes face aux attaques des Kitins au cours de cette année maudite. Des populations entières disparurent. Lorsque j'apprenais ces terribles nouvelles, je prêtais immédiatement main forte pour sauver les derniers survivants, dont beaucoup s'était dispersés ou enfuis vers des régions reculées.] // HASH_VALUE D14C39293E363403 // INDEX 3236 @@ -13622,8 +13614,8 @@ uiTryton3 [Trois générations se sont succédées depuis, refermant les blessur // HASH_VALUE D2B7A4B2A89F084D // INDEX 3237 -uiTryton4 [Ceci est mon seul espoir, dans l'union nous serons mieux armés pour repousser le mal qui avance. J'entends déjà le grondement menaçant de l'Ennemi qui un jour, hélas, fera trembler les entrailles de la planète verte.\n - Mais j'ai encore foi en ceci, le Nouveau Commencement de l'Humanité\n +uiTryton4 [Ceci est mon seul espoir, dans l'union nous serons mieux armés pour repousser le mal qui avance. J'entends déjà le grondement menaçant de l'ennemi qui un jour, hélas, fera trembler les entrailles de la planète verte.\n + Mais j'ai encore foi en ceci, le Nouveau Commencement de l'Hominité\n \n E. Tryton] @@ -13637,7 +13629,7 @@ uiBackTryton [Précédent] // HASH_VALUE EED8605365B3504E // INDEX 3240 -uiSkipTryton [Passer l'Intro] +uiSkipTryton [Passer l'intro] // HASH_VALUE A8882C8D23B73899 // INDEX 3241 @@ -13669,23 +13661,23 @@ uiSumWish [Concentration] // HASH_VALUE A9E67B6812F42C12 // INDEX 3248 -uiReplayIntro [Retour à l'Intro] +uiReplayIntro [Retour à l'intro] // HASH_VALUE DC17578B6122345C // INDEX 3249 -uiSelPos [Nouvelle Terre] +uiSelPos [Sélection jusqu'à la position] // HASH_VALUE C4B25C1BC4C1A41B // INDEX 3250 -uiCaracsTable [CARACTERISTIQUES] +uiCaracsTable [Caractéristiques] // HASH_VALUE CC71B03A08B2F02C // INDEX 3251 -uiScoreTable [SCORES] +uiScoreTable [Points] // HASH_VALUE CC21D83B8BC2F834 // INDEX 3252 -uiSkillTable [COMPETENCES] +uiSkillTable [Compétences] // HASH_VALUE 8F81DBE56B758057 // INDEX 3253 @@ -13693,23 +13685,23 @@ uiSkillTable2 [(cliquez sur une compétence pour filtrer les actions)] // HASH_VALUE 819E3F26766C6A23 // INDEX 3254 -uiGuildTeam [GUILDE & EQUIPE] +uiGuildTeam [Guilde & équipe] // HASH_VALUE 89F2C402CD7FF42F // INDEX 3255 -uiPhraseBookTitle [ACTIONS] +uiPhraseBookTitle [Actions] // HASH_VALUE 95F6F07B1EE6C88F // INDEX 3256 -uimPhraseDel [Supprimer Action] +uimPhraseDel [Supprimer action] // HASH_VALUE 18C5AC5819673456 // INDEX 3257 -uimPhraseEdit [Editer Action] +uimPhraseEdit [Éditer action] // HASH_VALUE 5698807293B65B75 // INDEX 3258 -uimPhraseNew [Nouvelle Action] +uimPhraseNew [Nouvelle action] // HASH_VALUE EBD6449961176891 // INDEX 3259 @@ -13717,19 +13709,19 @@ uimPhraseInfos [Infos] // HASH_VALUE 5698807293B65B75 // INDEX 3260 -uittCreatePhrase [Nouvelle Action] +uittCreatePhrase [Nouvelle action] // HASH_VALUE E6E73C38AB06C7B5 // INDEX 3261 -uiPhraseDisplayTextList [Liste Détaillée] +uiPhraseDisplayTextList [Liste détaillée] // HASH_VALUE A5F81C808F522778 // INDEX 3262 -uiPhraseAutoFold [Déplier Auto] +uiPhraseAutoFold [Déplier auto] // HASH_VALUE 2CE6AB7E6BB47E97 // INDEX 3263 -uiPhraseSkillFilter [Filtre des Compétences] +uiPhraseSkillFilter [Filtre des compétences] // HASH_VALUE ACB9C0819FC81891 // INDEX 3264 @@ -13741,15 +13733,15 @@ uitabPhraseUpgrades [Amélioration] // HASH_VALUE F9F0C824C02FC419 // INDEX 3266 -uiPhraseCreate [CREER UNE NOUVELLE ACTION] +uiPhraseCreate [Créer une nouvelle action] // HASH_VALUE 08BFAC180161B4F6 // INDEX 3267 -uiPhraseEdit [EDITER ACTION] +uiPhraseEdit [Éditer action] // HASH_VALUE DA3778AF23D56C97 // INDEX 3268 -uimPhraseRemoveOptionalBrick [Enlever Brique] +uimPhraseRemoveOptionalBrick [Enlever brique] // HASH_VALUE 6CD834246CD83424 // INDEX 3269 @@ -13765,35 +13757,35 @@ uiPhraseCOMPOSITION [Composition] // HASH_VALUE 4490641438D4440C // INDEX 3272 -uiPhraseMANDATORIES [EFFETS :] +uiPhraseMANDATORIES [Effets :] // HASH_VALUE 4450240C38D44424 // INDEX 3273 -uiPhraseCREDITS [CREDITS :] +uiPhraseCREDITS [Crédits :] // HASH_VALUE 6D5AB093DE93EB3D // INDEX 3274 -uiPhraseRESTRICTION [Compatibilité des Armes : ] +uiPhraseRESTRICTION [Comptabilité des armes : ] // HASH_VALUE 1697B07397958B63 // INDEX 3275 -uittPhraseEditNewOptional [Ajouter Option] +uittPhraseEditNewOptional [Ajouter option] // HASH_VALUE 5746BC52D6E4AB51 // INDEX 3276 -uittPhraseEditNewCredit [Ajouter Crédit] +uittPhraseEditNewCredit [AAjouter crédit] // HASH_VALUE F9D59C404BD6CC4E // INDEX 3277 -uiPhraseEditNewOptional [Ajouter Option >] +uiPhraseEditNewOptional [Ajouter option >] // HASH_VALUE B8E4BC2EC9F4F430 // INDEX 3278 -uiPhraseEditNewCredit [Ajouter Crédit >] +uiPhraseEditNewCredit [Ajouter crédit >] // HASH_VALUE E8542A626A7A4AC4 // INDEX 3279 -uittPhraseEditValidate [Apprendre l'Action] +uittPhraseEditValidate [Apprendre l'action] // HASH_VALUE 241A5F576D349B5D // INDEX 3280 @@ -13801,15 +13793,15 @@ uittPhraseFaberBuild [Fabriquer l'objet] // HASH_VALUE D927CC98DE53D30A // INDEX 3281 -uiPhraseEditCost [Coût de l'Action : ] +uiPhraseEditCost [Coût de l'action : ] // HASH_VALUE 681A4466B04A0CC6 // INDEX 3282 -uiPhraseEditCredit [Crédit de l'Action: ] +uiPhraseEditCredit [Crédit de l'action : ] // HASH_VALUE EE49DC130DB704B3 // INDEX 3283 -uittMemoryPhrase [Mémoriser l'Action] +uittMemoryPhrase [Mémoriser l'action] // HASH_VALUE 1860C614E07EC90E // INDEX 3284 @@ -13818,7 +13810,7 @@ uittExecutingPhrase [Action en cours.\n // HASH_VALUE E22AEC25E2D95CF7 // INDEX 3285 -uittNextExecutingPhrase [Action Suivante] +uittNextExecutingPhrase [Action suivante] // HASH_VALUE A300F8875985E0A0 // INDEX 3286 @@ -13846,11 +13838,11 @@ uittSelectPlan [Choisissez le plan de l'objet à créer.] // HASH_VALUE 404B14A424E099BC // INDEX 3292 -uiTextHelpSelectMp [Sélectionnez les MP pour chaque emplacement] +uiTextHelpSelectMp [Sélectionnez les MP pour chaque emplacement.] // HASH_VALUE 14A4182DE5D57B58 // INDEX 3293 -uittSelectMp [Cliquez pour Ajouter une Mat. Première.] +uittSelectMp [Cliquez pour ajouter une matière première.] // HASH_VALUE 7BB65DCA8D1ED22C // INDEX 3294 @@ -13878,7 +13870,7 @@ uiFaberItemResultHeader [Aperçu] // HASH_VALUE EF07504A6243603A // INDEX 3300 -uittFaberItemResult [Objet Créé] +uittFaberItemResult [Objet créé] // HASH_VALUE 691ADC89EBA8ECAB // INDEX 3301 @@ -13886,11 +13878,11 @@ uiSpecialPowerFilter [Pouvoirs] // HASH_VALUE 0BA7BB7F6053B08F // INDEX 3302 -uiPhraseNoFilter [Toutes les Actions] +uiPhraseNoFilter [Toutes les actions] // HASH_VALUE DDF9DFF2DBD7A039 // INDEX 3303 -uiFaberStatGrayed [Pour les bijoux seules les 3 meilleures protections magiques et les 3 meilleures résistances sont prises en compte.\n +uiFaberStatGrayed [Pour les bijoux, seules les 3 meilleures protections magiques et les 3 meilleures résistances sont prises en compte.\n Celle-ci n'en fait pas partie.] // HASH_VALUE FE4F223A1E32EE4D @@ -13912,35 +13904,35 @@ uiLearnFrom [Acheter à ] // HASH_VALUE CBA3183290322845 // INDEX 3308 -uiBuy [ACHETER] +uiBuy [Acheter] // HASH_VALUE 441054505494F440 // INDEX 3309 -uiTeleport [TELEPORTER] +uiTeleport [Téléporter] // HASH_VALUE C85184314810C82D // INDEX 3310 -uiLearn [APPRENDRE] +uiLearn [Apprendre] // HASH_VALUE FE111FEDCAC2CCFF // INDEX 3311 -uiBotChatTeleport [CONCLURE UN PACTE] +uiBotChatTeleport [Acheter un pacte] // HASH_VALUE 46D0D4D2C8704A4E // INDEX 3312 -uiBotChatFaction [OBJETS DE FACTION] +uiBotChatFaction [Objets de faction] // HASH_VALUE 4CD4F40C40504414 // INDEX 3313 -uiBotChatCosmetic [COSMETIQUES] +uiBotChatCosmetic [Cosmétiques] // HASH_VALUE 4C50540844909410 // INDEX 3314 -uiBotChatGuildOptions [BATIMENTS] +uiBotChatGuildOptions [Bâtiments] // HASH_VALUE C03FB834CDA1E31E // INDEX 3315 -uiBotChatGuildRoleMaster [MAITRE DE ROLE DE LA GUILDE] +uiBotChatGuildRoleMaster [Maître de rôle de la guilde] // HASH_VALUE 7038904D65E4A053 // INDEX 3316 @@ -13952,55 +13944,55 @@ uittGuildMoney [Argent de votre guilde] // HASH_VALUE B68EBC2A5690E428 // INDEX 3318 -uiNotEnoughMoney [PAS ASSEZ D'ARGENT] +uiNotEnoughMoney [Pas assez d'argent] // HASH_VALUE 002F1B3942E01029 // INDEX 3319 -uiNotEnoughFP_Kami [NOMBRE DE POINTS KAMI INSUFFISANT] +uiNotEnoughFP_Kami [Nombre de points Kami insuffisant] // HASH_VALUE 033DD029D2D0BCF5 // INDEX 3320 -uiNotEnoughFP_Karavan [NOMBRE DE POINTS KARAVAN INSUFFISANT] +uiNotEnoughFP_Karavan [Nombre de points Karavan insuffisant] // HASH_VALUE 3C3DF0048D72103A // INDEX 3321 -uiNotEnoughFP_Fyros [NOMBRE DE POINTS FYROS INSUFFISANT] +uiNotEnoughFP_Fyros [Nombre de points Fyros insuffisant] // HASH_VALUE FE3DF0048D121822 // INDEX 3322 -uiNotEnoughFP_Matis [NOMBRE DE POINTS MATIS INSUFFISANT] +uiNotEnoughFP_Matis [Nombre de points Matis insuffisant] // HASH_VALUE F8911B35CFE11025 // INDEX 3323 -uiNotEnoughFP_Tryker [NOMBRE DE POINTS TRYKER INSUFFISANT] +uiNotEnoughFP_Tryker [Nombre de points Tryker insuffisant] // HASH_VALUE 413DF0040B921030 // INDEX 3324 -uiNotEnoughFP_Zorai [NOMBRE DE POINTS ZORAÏ INSUFFISANT] +uiNotEnoughFP_Zorai [Nombre de points Zoraï insuffisant] // HASH_VALUE 2305A9CA4F208DA5 // INDEX 3325 -uittNotEnoughFP_Kami [Vous n'avez pas assez de points de faction Kami pour acheter cet article] +uittNotEnoughFP_Kami [Vous n'avez pas assez de points de faction Kami pour acheter cet article.] // HASH_VALUE 500FDEFB919544B2 // INDEX 3326 -uittNotEnoughFP_Karavan [Vous n'avez pas assez de points de faction Karavan pour acheter cet article] +uittNotEnoughFP_Karavan [Vous n'avez pas assez de points de faction Karavan pour acheter cet article.] // HASH_VALUE 809AC123953E61F0 // INDEX 3327 -uittNotEnoughFP_Fyros [Vous n'avez pas assez de points de faction Fyros pour acheter cet article] +uittNotEnoughFP_Fyros [Vous n'avez pas assez de points de nation Fyros pour acheter cet article.] // HASH_VALUE 809AA9258FAE61F0 // INDEX 3328 -uittNotEnoughFP_Matis [Vous n'avez pas assez de points de faction Matis pour acheter cet article] +uittNotEnoughFP_Matis [Vous n'avez pas assez de points de nation Matis pour acheter cet article.] // HASH_VALUE 95B9022B88728E5E // INDEX 3329 -uittNotEnoughFP_Tryker [Vous n'avez pas assez de points de faction Tryker pour acheter cet article] +uittNotEnoughFP_Tryker [Vous n'avez pas assez de points de nation Tryker pour acheter cet article.] // HASH_VALUE 80F98923127F61F0 // INDEX 3330 -uittNotEnoughFP_Zorai [Vous n'avez pas assez de points de faction Zoraï pour acheter cet article] +uittNotEnoughFP_Zorai [Vous n'avez pas assez de points de nation Zoraï pour acheter cet article.] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3331 @@ -14008,19 +14000,19 @@ uiBadPrice [???] // HASH_VALUE F9E1842984B1D438 // INDEX 3332 -uiBadQuantity [MAUVAISE QUANTITE] +uiBadQuantity [Quantité erronée] // HASH_VALUE BD031737C100B723 // INDEX 3333 -uiPriceNotReceived [PRIX NON RECU] +uiPriceNotReceived [Prix non reçu] // HASH_VALUE B614AA16B8B27A44 // INDEX 3334 -uiWontBuyThis [JE N'ACHETERAI PAS CELA] +uiWontBuyThis [Je n'achèterai pas cela.] // HASH_VALUE BFD1AC31C12FB428 // INDEX 3335 -uiWaitingChoiceFromServer [ATTENTE DU CHOIX DU SERVEUR] +uiWaitingChoiceFromServer [Attente du choix du serveur] // HASH_VALUE 3CCCF0FC3CCCF0FC // INDEX 3336 @@ -14044,15 +14036,15 @@ uiAcceptDM [Accepter] // HASH_VALUE 50D494345090F424 // INDEX 3341 -uiBotChatMissions [MISSIONS] +uiBotChatMissions [Missions] // HASH_VALUE 6AB894E6D6F0ECAC // INDEX 3342 -uiSelectMission [Choisir une Mission] +uiSelectMission [Choisir une mission] // HASH_VALUE 66DAB454440814BE // INDEX 3343 -uiAcceptMission [Accepter une Mission ?] +uiAcceptMission [Accepter cette mission ?] // HASH_VALUE 70DC543870DC5438 // INDEX 3344 @@ -14064,7 +14056,7 @@ uiBotChatMissionEnd [] // HASH_VALUE C9621033C25EA82E // INDEX 3346 -uiBotChatDynamicMission [MISSION DYNAMIQUE] +uiBotChatDynamicMission [Mission dynamique] // HASH_VALUE 0AF2802B07C1BC1F // INDEX 3347 @@ -14076,23 +14068,23 @@ uiMap [Carte] // HASH_VALUE 48327C47C6837C4B // INDEX 3349 -uiRemove [SUPPRIMER] +uiRemove [Supprimer] // HASH_VALUE 42C1443F4302443A // INDEX 3350 -uiRename [RENOMMER] +uiRename [Renommer] // HASH_VALUE 04D370123E71CC24 // INDEX 3351 -uiCreateUserLM [MARQUER CET EMPLACEMENT] +uiCreateUserLM [Marquer cet emplacement] // HASH_VALUE 8B04AC48FE634E3B // INDEX 3352 -uiCreateUserLMAtUserPos [MARQUER VOTRE POSITION] +uiCreateUserLMAtUserPos [Marquer votre position] // HASH_VALUE 086F0F3E7E60DC28 // INDEX 3353 -uiTargetLM [CIBLE SUR LE COMPAS] +uiTargetLM [Cible sur le radar] // HASH_VALUE 97E36AD243CC8A55 // INDEX 3354 @@ -14112,11 +14104,11 @@ uiStartPoint [Point de départ] // HASH_VALUE 9CF4EF6E6B2463BE // INDEX 3358 -uiCreateNewLandMark [Créer un nouveau point de repères] +uiCreateNewLandMark [Créer un nouveau point de repère] // HASH_VALUE 50D22A22CEAC5C0C // INDEX 3359 -uitCenter [CENTRER SUR LE JOUEUR] +uitCenter [Centrer sur vous-même] // HASH_VALUE 6458143864581438 // INDEX 3360 @@ -14124,19 +14116,19 @@ uiNameLandMark [Nom] // HASH_VALUE CF3C040A4EED1F17 // INDEX 3361 -uiMenuCenter [CENTRER LA CARTE SUR LE JOUEUR] +uiMenuCenter [Centrer la carte sur vous-même] // HASH_VALUE E53254296572F077 // INDEX 3362 -uittCenter [Centrer la Carte] +uittCenter [Centrer la carte] // HASH_VALUE C6A0A426C54074EC // INDEX 3363 -uiBotChatZCCharges [CHARGES DE LA ZONE] +uiBotChatZCCharges [Charges de la zone] // HASH_VALUE 65D79781DAF70B76 // INDEX 3364 -uiSelectZCCharge [Postuler pour une Charge de Zone] +uiSelectZCCharge [Postuler pour une charge de la zone] // HASH_VALUE A5C893945DB84B65 // INDEX 3365 @@ -14144,31 +14136,31 @@ uiAcceptZCCharge [Postuler ?] // HASH_VALUE 4AC1C418CD11BCE6 // INDEX 3366 -uiBotChatRMBuy [MAITRES DE ROLES] +uiBotChatRMBuy [Maîtres de rôles] // HASH_VALUE C146248FE5A5D70F // INDEX 3367 -uiSelectRMBuy [Engager un Maître de Rôle] +uiSelectRMBuy [Engager un Maître de rôle] // HASH_VALUE 9AD8930618396C59 // INDEX 3368 -uiAcceptRMBuy [Engager un Maître de Rôle ?] +uiAcceptRMBuy [Engager un Maître de rôle ?] // HASH_VALUE 4AC1C418CD11BCE6 // INDEX 3369 -uiBotChatRMUpgrade [MAITRES DE ROLE] +uiBotChatRMUpgrade [Maîtres de rôle] // HASH_VALUE 29289369C861805F // INDEX 3370 -uiSelectRMUpgrade [Mettre à niveau un Maître de Rôle] +uiSelectRMUpgrade [Mettre à niveau un Maître de rôle] // HASH_VALUE 56A9988DD86964E0 // INDEX 3371 -uiAcceptRMUpgrade [Mettre à niveau un Maître de Rôle ?] +uiAcceptRMUpgrade [Mettre à niveau un Maître de rôle ?] // HASH_VALUE 4A42C82AC7808C2E // INDEX 3372 -uiBotChatBuilding [BATIMENTS] +uiBotChatBuilding [Bâtiments] // HASH_VALUE 2B976B1B4D25A09D // INDEX 3373 @@ -14180,19 +14172,19 @@ uiAcceptBuilding [Bâtiment ?] // HASH_VALUE 0A8FFE0384D1EEF4 // INDEX 3375 -uiGuildXP [GUILDE XP :] +uiGuildXP [Expérience de la guilde :] // HASH_VALUE FF8F13094B10182E // INDEX 3376 -uiNotEnoughGuildMoney [PAS ASSEZ D'ARGENT DANS LA GUILDE] +uiNotEnoughGuildMoney [Pas assez d'argent dans la guilde] // HASH_VALUE 3DA1FC030C2E2F31 // INDEX 3377 -uiNotEnoughGuildXP [PAS ASSEZ DE XP DANS LA GUILDE] +uiNotEnoughGuildXP [Pas assez d'expérience dans la guilde] // HASH_VALUE 2C58584B68037853 // INDEX 3378 -uiUnitValue [Valeur Unitaire] +uiUnitValue [Valeur unitaire] // HASH_VALUE 6C585444781C94D0 // INDEX 3379 @@ -14204,19 +14196,19 @@ uiPrice [Prix] // HASH_VALUE 68582B3B23474C99 // INDEX 3381 -uiImmediatePrice [Prix Immédiat] +uiImmediatePrice [Prix immédiat] // HASH_VALUE 5FDEEE55DE504FCF // INDEX 3382 -uittPriceWithFameEqual [Le prix varie selon votre renommée] +uittPriceWithFameEqual [Le prix varie selon votre renommée.] // HASH_VALUE AAC268F338260ED5 // INDEX 3383 -uittPriceWithFameDiff [Ce prix est en fonction de votre renommée (La valeur réelle est différente)] +uittPriceWithFameDiff [Ce prix dépend de votre renommée (la valeur réelle est différente).] // HASH_VALUE 1DA66482D971649C // INDEX 3384 -uiResaleHeader [Prix de Revente] +uiResaleHeader [Prix de revente] // HASH_VALUE 1328C87D6145E89A // INDEX 3385 @@ -14224,7 +14216,7 @@ uiResaleMargin [Marge] // HASH_VALUE D898448E6738D304 // INDEX 3386 -uiUnitResalePrice [Prix de Revente Unitaire] +uiUnitResalePrice [Prix de revente unitaire] // HASH_VALUE 6DCA54230E540360 // INDEX 3387 @@ -14232,59 +14224,59 @@ uiBonusOnResale [Bonus à la revente] // HASH_VALUE 21A13B506058CDDD // INDEX 3388 -uiCantResaleCauseDamaged [Cet objet ne sera pas revendu car il est abimé] +uiCantResaleCauseDamaged [Cet objet ne sera pas revendu car il est abîmé.] // HASH_VALUE 40C8C7E3624E3D9E // INDEX 3389 -uiCantResaleCauseTooLate [Cet objet ne sera pas revendu car la date de revente a expiré] +uiCantResaleCauseTooLate [Cet objet ne sera pas revendu car le délai de revente a expiré.] // HASH_VALUE 56D6CC789DE5C884 // INDEX 3390 -uiResaleButton [Revente Autorisée] +uiResaleButton [Revente autorisée] // HASH_VALUE 388C341C42D27448 // INDEX 3391 -uiBadResalePrice [MAUVAIS PRIX DE REVENTE] +uiBadResalePrice [Mauvais prix de revente] // HASH_VALUE C6B04C30523074E8 // INDEX 3392 -uiSellImmediately [VENDRE IMMEDIATEMENT] +uiSellImmediately [Vendre immédiatement] // HASH_VALUE F781CAC6C0AB8C6D // INDEX 3393 -uittDirectSellButton [Vendre maintenant au Prix immédiat (Shift + ENTREE)] +uittDirectSellButton [Vendre maintenant au Prix immédiat (Shift + Entrée)] // HASH_VALUE BD02703DFB63DB3E // INDEX 3394 -uiLetResell [LAISSER REVENDRE] +uiLetResell [Laisser revendre] // HASH_VALUE BB4B5813A5CE33B5 // INDEX 3395 -uittResellButton [Permettre la revente de l'objet (ENTREE)] +uittResellButton [Permettre la revente de l'objet (Entrée)] // HASH_VALUE 1D29B058C74AC86D // INDEX 3396 -uitabBuyResale [Vente des Joueurs] +uitabBuyResale [Ventes des joueurs] // HASH_VALUE 20D004386418144C // INDEX 3397 -uitabBuyNpc [Vente des PNJ] +uitabBuyNpc [Ventes des PNJ] // HASH_VALUE C759B86976C77464 // INDEX 3398 -uitabBuyResaleAndNpc [Vente Joueur et PNJ] +uitabBuyResaleAndNpc [Ventes joueurs et PNJ] // HASH_VALUE 2A38688B4F746B76 // INDEX 3399 -uitabBuyPlayer [Vos Ventes] +uitabBuyPlayer [Vos ventes] // HASH_VALUE 5014544844945424 // INDEX 3400 -uiRetire [REPRENDRE] +uiRetire [Reprendre] // HASH_VALUE 23773888D2031766 // INDEX 3401 -uiItemSold [Objet Vendu] +uiItemSold [Objet vendu] // HASH_VALUE 8F4EA6230895FC49 // INDEX 3402 @@ -14304,11 +14296,11 @@ uiItemCannotUseColor [@{F80B}] // HASH_VALUE B9F4528B1814D624 // INDEX 3406 -uiUnitFPPrice [P.F. %fac Unitaire] +uiUnitFPPrice [P.F. %fac unitaire] // HASH_VALUE 8B81A201CF47631A // INDEX 3407 -uiTotalFPPrice [P.F. %fac Total] +uiTotalFPPrice [P.F. %fac total] // HASH_VALUE 5A19375067E44357 // INDEX 3408 @@ -14316,15 +14308,15 @@ uiTipsTitle [Astuces ] // HASH_VALUE DB59503A8BD2A84D // INDEX 3409 -uiTipsEnd [Appuyez sur les flèches du Haut et du Bas pour naviguer dans les astuces.] +uiTipsEnd [Appuyez sur les flèches du haut et du bas pour naviguer dans les astuces.] // HASH_VALUE 9A983F205D463162 // INDEX 3410 -uiTipsTeleport [Téléportation vers %s : Jour %d à %d heures. Nous sommes %s et %s.] +uiTipsTeleport [Téléportation vers %s : jour %d à %d heures. Nous sommes %s et %s.] // HASH_VALUE A8B4501E4B0EFB14 // INDEX 3411 -uiTips0 [Au lieu de glisser et déposer vos objets dans un emplacement Set/Armure ou Bijoux,\n +uiTips0 [Au lieu de glisser et déposer vos objets dans un emplacement Set / Armure ou Bijoux,\n vous pouvez directement cliquer sur ces ports pour sélectionner l'objet dans dans votre sac.] // HASH_VALUE F3ACC78FDE5A8928 @@ -14333,16 +14325,16 @@ uiTips1 [Pour apprendre à utiliser le jeu, cliquez simplement sur le bouton "?" // HASH_VALUE 7DA5956B2703DF0F // INDEX 3413 -uiTips2 [Un clic-droit sur une fenêtre permet de la verrouiller/déverrouiller et de régler son opacité.] +uiTips2 [Un clic droit sur une fenêtre permet de la verrouiller / déverrouiller et de régler son opacité.] // HASH_VALUE C29310531817450A // INDEX 3414 -uiTips3 [Un clic-droit sur la fenêtre du Chat Principal vous permet de filtrer les messages.] +uiTips3 [Un clic droit sur la fenêtre du Chat principal vous permet de filtrer les messages.] // HASH_VALUE 91F397CE6119F537 // INDEX 3415 -uiTips4 [Appuyez sur "F1","F2","F3" ou "F4" pour changer le bureau virtuel\n - Maintenez appuyé "F1", "F2", "F3" ou "F4" pour afficher l'interface de sélection des fenêtres] +uiTips4 [Appuyez sur "F1","F2","F3" ou "F4" pour changer le bureau virtuel.\n + Maintenez appuyé "F1", "F2", "F3" ou "F4" pour afficher l'interface de sélection des fenêtres.] // HASH_VALUE E5268485CCD1CC36 // INDEX 3416 @@ -14351,7 +14343,7 @@ uiTips5 [Appuyez sur "1", "2" ... "9" pour exécuter vos raccourcis.\n // HASH_VALUE D6C92F4F40F51EDB // INDEX 3417 -uiTips6 [Un clique-droit sur une icône de capacité ou de sort ouvre une fenêtre d'infos.] +uiTips6 [Un clic-droit sur une icône de capacité ou de sort ouvre une fenêtre d'infos.] // HASH_VALUE C1D870338976C95D // INDEX 3418 @@ -14360,22 +14352,22 @@ uiTips7 [Appuyez sur ALT + "1", "2" ... "0" pour envoyer des phrases de chat pr // HASH_VALUE 3F29F08463053AD7 // INDEX 3419 -uiTips8 [Appuyez sur "ENTREE" pour activer la boîte de chat] +uiTips8 [Appuyez sur "Entrée" pour activer la saisie dans le chat.] // HASH_VALUE 93E22466151B6E36 // INDEX 3420 -uiTips9 [Appuyez sur "P" pour afficher ou cacher la fenêtre de caractéristiques du joueur\n - Appuyez sur "I" pour afficher ou cacher l'inventaire du joueur] +uiTips9 [Appuyez sur "P" pour afficher ou cacher la fenêtre de caractéristiques du personnage.\n + Appuyez sur "I" pour afficher ou cacher l'inventaire du personnage.] // HASH_VALUE B88D154573D2DDB5 // INDEX 3421 -uiTips10 [Appuyez sur "CTRL - R" pour répondre à la dernier réponse.\n - Appuyez sur CTRL + "R" pour chater avec le dernier joueur qui a parlé.] +uiTips10 [Appuyez sur "Ctrl - R" pour répondre à l'avant-dernier joueur qui vous a parlé.\n + Appuyez sur CTRL + "R" pour discuter avec le dernier joueur qui vous a parlé.] // HASH_VALUE 7850A32BC35E7EE6 // INDEX 3422 -uiTips11 [Appuyez sur la BARRE D'ESPACE pour choisir un ennemi face à vous. Répétez pour changer d'ennemi.\n - Appuyez sur CTRL + BARRE D'ESPACE pour choisir un ami face à vous.] +uiTips11 [Appuyez sur la barre d'espace pour sélectionner l'ennemi le plus directement en face de vous.\n + Appuyez sur Ctrl + Barre d'espace pour choisir un ami en face de vous.] // HASH_VALUE 8A801482C5765C81 // INDEX 3423 @@ -14387,18 +14379,18 @@ uiTips13 [Appuyez sur F12 pour désélectionner votre cible.] // HASH_VALUE 0CA778F4EC0B94DC // INDEX 3425 -uiTips14 [Appuyez sur ECHAP pour fermer la dernière fenêtre d'informations ouverte.\n - Appuyez sur MAJ + ECHAP pour fermer toutes les fenêtres d'informations à la fois.] +uiTips14 [Appuyez sur Echap pour fermer la dernière fenêtre d'informations ouverte.\n + Appuyez sur Maj + Echap pour fermer toutes les fenêtres d'informations à la fois.] // HASH_VALUE 6759A83D7C98A60A // INDEX 3426 uiTips15 [Appuyez sur X pour afficher ou cacher le chat principal.\n - Appuyez sur W pour afficher ou cacher les informations systèmes.] + Appuyez sur W pour afficher ou cacher les informations système.] // HASH_VALUE 9F538781E3CDB90A // INDEX 3427 uiTips16 [Appuyez sur M pour afficher ou cacher la carte.\n - Vous pouvez placer des repères sur la carte et les cibler avec le compas.] + Vous pouvez placer des drapeaux de repérage sur la carte et les cibler avec le radar.] // HASH_VALUE 28F6D4546B54E872 // INDEX 3428 @@ -14414,7 +14406,7 @@ Dodge [Esquive] // HASH_VALUE A7323C8FD5E8F394 // INDEX 3431 -MagicDefense [Défense Magique] +MagicDefense [Défense magique] // HASH_VALUE 6C77A78BD888CF81 // INDEX 3432 @@ -14430,7 +14422,7 @@ Bowgun [Arbalète] // HASH_VALUE 645734912E1B10BF // INDEX 3435 -Bowpistol [Pistolet-Arbalète] +Bowpistol [Pistolet-arbalète] // HASH_VALUE 6818BC6AE9B59C96 // INDEX 3436 @@ -14446,7 +14438,7 @@ Curse [Malédiction] // HASH_VALUE 6C5C14307058848C // INDEX 3439 -Launcher [Lance-Grenades] +Launcher [Lance-grenades] // HASH_VALUE 64D8143464D81434 // INDEX 3440 @@ -14462,7 +14454,7 @@ Staff [Bâton] // HASH_VALUE A6687C952DDAE4BE // INDEX 3443 -Wrestling [Catch] +Wrestling [Lutte] // HASH_VALUE A6B356145C69F8B7 // INDEX 3444 @@ -14470,7 +14462,7 @@ uiShowing [Performance : ] // HASH_VALUE CD72133B8DE36634 // INDEX 3445 -uiSkillPoints [POINTS DE COMPETENCE] +uiSkillPoints [POINTS DE COMPÉTENCE] // HASH_VALUE 96976B67D6854695 // INDEX 3446 @@ -14490,27 +14482,27 @@ uiSkillPoints3 [Récolte] // HASH_VALUE 7A6F23377F011333 // INDEX 3450 -uiSkillPointsBold0 [POINTS DE COMPETENCE DU COMBAT :] +uiSkillPointsBold0 [Points de compétence en combat :] // HASH_VALUE BA6F032DBF01F329 // INDEX 3451 -uiSkillPointsBold1 [POINTS DE COMPETENCE DE LA MAGIE :] +uiSkillPointsBold1 [Points de compétence en magie :] // HASH_VALUE F90F4734FEA13730 // INDEX 3452 -uiSkillPointsBold2 [POINTS DE COMPETENCE DE L'ARTISANAT :] +uiSkillPointsBold2 [Points de compétence en artisanat :] // HASH_VALUE 5052C436FD033505 // INDEX 3453 -uiSkillPointsBold3 [POINTS DE COMPETENCE DE LA RECOLTE :] +uiSkillPointsBold3 [Points de compétence en récolte :] // HASH_VALUE 0B8188367CE31F2C // INDEX 3454 -uimGcmTradePhase [DEVELOPPER DES COMPETENCES] +uimGcmTradePhase [Développer des compétences] // HASH_VALUE 7F3DF004CC42EC2C // INDEX 3455 -uiNotEnoughSkillPoints [PAS ASSEZ DE PTS DE COMPETENCES] +uiNotEnoughSkillPoints [Pas assez de points de compétences] // HASH_VALUE 5010042050100420 // INDEX 3456 @@ -14518,19 +14510,19 @@ uiHP [Vie] // HASH_VALUE 81CF12CA2FCAC592 // INDEX 3457 -uittHP [Affichez les points de vie au-dessus du personnage] +uittHP [Affichez les points de Vie au-dessus du personnage.] // HASH_VALUE 4C5054504C505450 // INDEX 3458 -uiTeam [EQUIPE] +uiTeam [Équipe] // HASH_VALUE 29827894D3D81B9C // INDEX 3459 -uiDebugCommand [Débogage commande] +uiDebugCommand [Commande de débogage] // HASH_VALUE 68E20B3AA5B3A783 // INDEX 3460 -uiDebugShowTimedFXs [Debug Show Timed FXs] +uiDebugShowTimedFXs [Débogage de la durée des effets spéciaux] // HASH_VALUE AAD72C8F5DB8407E // INDEX 3461 @@ -14558,11 +14550,11 @@ uiTargetTwoPoint [Cible :] // HASH_VALUE 1DB76F86E0E26861 // INDEX 3467 -uittActionIcon [Icône d'Action] +uittActionIcon [Icône d'action] // HASH_VALUE 9D776784A1C2585F // INDEX 3468 -uittActionName [Nom de l'Action] +uittActionName [Nom de l'action] // HASH_VALUE 6B98909065484495 // INDEX 3469 @@ -14570,67 +14562,67 @@ uiPhraseTotal [Total] // HASH_VALUE 174BEC861F672037 // INDEX 3470 -uiBalanceCost [Sort Impossible] +uiBalanceCost [Sort impossible] // HASH_VALUE 52D01470EE5C8CB0 // INDEX 3471 -uiBalanceCred [Bonus de Difficulté] +uiBalanceCred [Bonus de difficulté] // HASH_VALUE 67672C79A0B7E88C // INDEX 3472 -uiBalanceEqual [Equilibre] +uiBalanceEqual [Équilibre] // HASH_VALUE F1F8A77003958E6B // INDEX 3473 -uiEnterDontQuitCB ["entrée" ne fait pas sortir du chat] +uiEnterDontQuitCB ["Entrée" ne fait pas sortir du chat] // HASH_VALUE 2496548ED4145771 // INDEX 3474 -uiFontSize [Taille de la Police] +uiFontSize [Taille de la police] // HASH_VALUE 5008E4244490540C // INDEX 3475 -uigcInSceneInterface [EN SCENE] +uigcInSceneInterface [EN SCÈNE] // HASH_VALUE 5050345450503454 // INDEX 3476 -uigcInSceneInterfaceUser [UTILISATEUR] +uigcInSceneInterfaceUser [Utilisateur] // HASH_VALUE C910BC26C852C02B // INDEX 3477 -uigcInSceneInterfaceFriend [AMIS] +uigcInSceneInterfaceFriend [Amis] // HASH_VALUE CA10A82588C1B026 // INDEX 3478 -uigcInSceneInterfaceEnemy [ENNEMIS] +uigcInSceneInterfaceEnemy [Ennemis] // HASH_VALUE C990F32F48EEE007 // INDEX 3479 -uigcInSceneChatMessages [MESSAGES DU CHAT] +uigcInSceneChatMessages [Messages du chat] // HASH_VALUE AF57B35FF2F65E7C // INDEX 3480 -uiGuildSymbol [Symbole de la Guilde] +uiGuildSymbol [Blason de la guilde] // HASH_VALUE B6DF6D302E3B10CD // INDEX 3481 -uittGuildSymbol [Afficher le symbole de la guilde au-dessus du personnage] +uittGuildSymbol [Afficher le blason de la guilde au-dessus du personnage] // HASH_VALUE 87D19512706F54B9 // INDEX 3482 -uittName [Afficher le nom du personnage au-dessus du personnage] +uittName [Afficher le nom du personnage au dessus de lui] // HASH_VALUE 6B18F73DDF27A4A4 // INDEX 3483 -uiTitle [Titre du Personnage] +uiTitle [Titre du personnage] // HASH_VALUE A1FCE2C344AB41D9 // INDEX 3484 -uittTitle [Afficher le titre du personnage au-dessus du personnage] +uittTitle [Afficher le titre du personnage au-dessus de lui] // HASH_VALUE 29C46F66D8349B81 // INDEX 3485 -uigcGuildName [Nom de la Guilde] +uigcGuildName [Nom de la guilde] // HASH_VALUE 31003C9AABDB00C6 // INDEX 3486 @@ -14638,27 +14630,27 @@ uittGuildName [Afficher le nom de la guilde au-dessus du personnage] // HASH_VALUE E5D3F77B6BE94CA8 // INDEX 3487 -uiSTA [Endurance du Personnage] +uiSTA [Endurance du personnage] // HASH_VALUE 5A6D8F2D9E50FAF9 // INDEX 3488 -uittSTA [Afficher la barre d'Endurance du personnage au-dessus du personnage] +uittSTA [Afficher la barre d'endurance du personnage au-dessus de lui] // HASH_VALUE 1C591877A0875485 // INDEX 3489 -uiSAP [Sève] +uiSAP [Sève du personnage] // HASH_VALUE DF3C16CBBFAB2ADA // INDEX 3490 -uittSAP [Afficher la barre de sève du personnage au-dessus du personnage] +uittSAP [Afficher la barre de Sève du personnage au-dessus de lui]] // HASH_VALUE A797BF3DDF08009C // INDEX 3491 -uiFOC [Concentration du Personnage] +uiFOC [Concentration du personnage] // HASH_VALUE DFBD9AD6A191CEEC // INDEX 3492 -uittFocus [Afficher la barre de concentration du personnage au-dessus du personnage] +uittFocus [Afficher la barre de Concentration du personnage au-dessus de lui] // HASH_VALUE 698737366867538A // INDEX 3493 @@ -14666,7 +14658,7 @@ uiActionBar [Barre d'actions] // HASH_VALUE 8910F18A4A05D53C // INDEX 3494 -uittActionBar [Afficher la barre d'action du personnage au-dessus du personnage] +uittActionBar [Afficher la barre d'action du personnage au-dessus de lui] // HASH_VALUE 6CD8F430509C0480 // INDEX 3495 @@ -14674,7 +14666,7 @@ uiPvpLogo [Logo PvP] // HASH_VALUE 0CD7A5C8761B7DD6 // INDEX 3496 -uittPvpLogo [Afficher le logo pvp au-dessus du personnage] +uittPvpLogo [Afficher le logo PvP au-dessus du personnage] // HASH_VALUE 98AA0081EE42D4A6 // INDEX 3497 @@ -14690,15 +14682,15 @@ uiMiniMissionIcon [Version miniature des icônes] // HASH_VALUE 83767BD6624A20D3 // INDEX 3500 -uittMiniMissionIcon [Afficher des petites icônes plutot que les grandes sur le radar] +uittMiniMissionIcon [Afficher de petites icônes plutôt que les grandes sur le radar] // HASH_VALUE 8D23FC32CE322841 // INDEX 3501 -uigcEntityColor [ENTITE] +uigcEntityColor [Entité] // HASH_VALUE 9928088F26F55C9E // INDEX 3502 -uiEntityColors [Couleurs de l'entité] +uiEntityColors [Couleurs des entités] // HASH_VALUE 7058345470583454 // INDEX 3503 @@ -14714,7 +14706,7 @@ uiPlayerColor [Joueurs] // HASH_VALUE 440B7957C5FC1EE4 // INDEX 3506 -uittPlayerColor [Couleur utilisée pour l'affichage des personnages du joueur] +uittPlayerColor [Couleur utilisée pour l'affichage des personnages joueurs] // HASH_VALUE 0A51C82F8B019431 // INDEX 3507 @@ -14730,7 +14722,7 @@ uiFaunaColor [Faune] // HASH_VALUE 46EB2403E9D949BB // INDEX 3510 -uittFaunaColor [Couleur utilisée pour l'affichage des personnages robots] +uittFaunaColor [Couleur utilisée pour l'affichage des animaux] // HASH_VALUE 27E9787FA607C490 // INDEX 3511 @@ -14738,23 +14730,23 @@ uiTargetColor [Cible] // HASH_VALUE 005BE5058A70A23E // INDEX 3512 -uittTargetColor [Couleur utilisée pour l'affichage du personnage cible] +uittTargetColor [Couleur utilisée pour l'affichage de l'entité ciblée] // HASH_VALUE EDA9742AEDE994F6 // INDEX 3513 -uiGroupColor [Coéquipiers] +uiGroupColor [Co-équipiers] // HASH_VALUE 1FE862514031BA9A // INDEX 3514 -uittGroupColor [Couleur utilisée pour l'affichage des personnages des coéquipiers] +uittGroupColor [Couleur utilisée pour l'affichage des co-équipiers] // HASH_VALUE 6F62BC92149903A5 // INDEX 3515 -uiGuildRadarColor [Membres d'une Guilde] +uiGuildRadarColor [Membres de votre guilde] // HASH_VALUE B952164AC7FF839C // INDEX 3516 -uittGuildRadarColor [Couleur utilisée pour afficher les personnages membres d'une guilde] +uittGuildRadarColor [Couleur utilisée pour afficher les personnages membres de votre guilde] // HASH_VALUE F007989E26687CA4 // INDEX 3517 @@ -14766,11 +14758,11 @@ uittMountColor [Couleur utilisée pour l'affichage de votre monture] // HASH_VALUE AAC7F48E1DD73C8A // INDEX 3519 -uiBeastColor [Bêtes] +uiBeastColor [Mektoubs de bât] // HASH_VALUE E090D8032E6B05BF // INDEX 3520 -uittBeastColor [Couleur utilisée pour l'affichage de vos bêtes] +uittBeastColor [Couleur utilisée pour l'affichage de vos mektoubs de bât] // HASH_VALUE A90AE8A9A8B96C8E // INDEX 3521 @@ -14778,7 +14770,7 @@ uiSourceColor [Sources] // HASH_VALUE 2490A5F5E95B55C9 // INDEX 3522 -uittSourceColor [Couleur utilisée pour l'affichage des Sources] +uittSourceColor [Couleur utilisée pour l'affichage des sources] // HASH_VALUE A6F6F880DBE7047C // INDEX 3523 @@ -14786,7 +14778,7 @@ uiDeadColor [Morts] // HASH_VALUE 20C5A07C2BD731C9 // INDEX 3524 -uittDeadColor [Couleur utilisée pour afficher les Morts] +uittDeadColor [Couleur utilisée pour afficher les morts] // HASH_VALUE 11688377AAF37CA5 // INDEX 3525 @@ -14830,19 +14822,19 @@ uittPvpNeutralColor [Couleur utilisée pour afficher les neutres en mode PvP] // HASH_VALUE 9E95234B4E265B9B // INDEX 3535 -uiUserIS [Interface Utilisateur En Scène] +uiUserIS [Informations sur l'utilisateur en scène] // HASH_VALUE 8F56B017D498748D // INDEX 3536 -uiFriendIS [Interface Ami En Scène] +uiFriendIS [Informations sur l'ami en scène] // HASH_VALUE 9D4058205D049499 // INDEX 3537 -uiEnemyIS [Interface Ennemi En Scène] +uiEnemyIS [Informations sur l'ennemi en scène] // HASH_VALUE 5ED4E0FC1D5077AA // INDEX 3538 -uiChatIS [Messages du Chat En Scène] +uiChatIS [Messages du Chat en scène] // HASH_VALUE D9C89F96E5D5B865 // INDEX 3539 @@ -14870,7 +14862,7 @@ uittEnemyMessages [Afficher les messages des ennemis sur le chat au-dessus du pe // HASH_VALUE B3026E4335D2A536 // INDEX 3545 -uiNewTitleBold [VOUS OBTENEZ UN NOUVEAU TITRE : ] +uiNewTitleBold [Vous obtenez un nouveau titre : ] // HASH_VALUE E8C62C801EB7048D // INDEX 3546 @@ -14890,7 +14882,7 @@ uiRadar [Radar] // HASH_VALUE 90A8F442AEC797B4 // INDEX 3550 -uiGuildForum [Forum de la Guilde] +uiGuildForum [Forum de la guilde] // HASH_VALUE CDBAC82A5AE85366 // INDEX 3551 @@ -14898,7 +14890,7 @@ uiDragRewardToInventory [Glisser et déposer des objets] // HASH_VALUE E4B4E4982957003E // INDEX 3552 -uiTalkMem [Propos Enr.] +uiTalkMem [Propos enr.] // HASH_VALUE 66FAB49864B7FC7A // INDEX 3553 @@ -14930,11 +14922,11 @@ uiTalkMemMsg05 [Aide-moi] // HASH_VALUE 5514175957B45C52 // INDEX 3560 -uiTalkMemMsg06 [J'ai besoin de soins] +uiTalkMemMsg06 [J'ai besoin de soins !] // HASH_VALUE 6B948F45CE207BA4 // INDEX 3561 -uiTalkMemMsg07 [Je cherche un membre de l'équipe] +uiTalkMemMsg07 [Je cherche un membre de l'équipe.] // HASH_VALUE 2CD854202CD85420 // INDEX 3562 @@ -14962,11 +14954,11 @@ uiTalkMemMsg13 [En chemin] // HASH_VALUE 6818002470583480 // INDEX 3568 -uiTalkMemMsg14 [Oui Sire] +uiTalkMemMsg14 [Oui, Sire.] // HASH_VALUE 6CC7BC8C5D10001D // INDEX 3569 -uiTalkMemMsg15 [Arrête de me parler] +uiTalkMemMsg15 [Arrête de me parler !] // HASH_VALUE D918B039A7B23F8C // INDEX 3570 @@ -14978,11 +14970,11 @@ uiTalkMemMsg17 [T'es fou ?] // HASH_VALUE 60A6147960A61479 // INDEX 3572 -uiTalkMemMsg18 [Aahahahaha] +uiTalkMemMsg18 [Ahahahaha] // HASH_VALUE F3B08357711CE844 // INDEX 3573 -uiTalkMemMsg19 [C'est ainsi] +uiTalkMemMsg19 [C'est ainsi !] // HASH_VALUE 6C58D4B46C58D4B4 // INDEX 3574 @@ -14994,7 +14986,7 @@ uiKilometerUnit [km] // HASH_VALUE 2153CFA6E122739E // INDEX 3576 -uiRunWalk [Courir/Marcher] +uiRunWalk [Courir / Marcher] // HASH_VALUE 72AA14965B18AB9D // INDEX 3577 @@ -15006,7 +14998,7 @@ uiBugReport [Rapport d'erreurs] // HASH_VALUE EEDC945260921CA4 // INDEX 3579 -uiActionShortcuts [Raccourcis des Actions] +uiActionShortcuts [Raccourcis des actions] // HASH_VALUE 95A8BC735636B37A // INDEX 3580 @@ -15014,51 +15006,51 @@ uiSetNumber [Ce chiffre] // HASH_VALUE F35954A5EA082E2B // INDEX 3581 -uiShowContextHelp [Affichage de l'Aide Contextuelle] +uiShowContextHelp [Affichage de l'aide contextuelle] // HASH_VALUE 4D81A81DC741EF03 // INDEX 3582 -uiFameCiv [RENOMMEE CIVILISATION] +uiFameCiv [Renommée Civilisations] // HASH_VALUE 0940EF1EC0B01B21 // INDEX 3583 -uiFameGuild [RENOMMEE GUILDE] +uiFameGuild [Renommée de la guilde] // HASH_VALUE C82280108AC04732 // INDEX 3584 -uiFamePerso [RENOMMEE PERSONNELLE] +uiFamePerso [Renommée personnelle] // HASH_VALUE C4C0EF2347AE9CFA // INDEX 3585 -uiFameRecalc [RENOMMEE GLOBALE] +uiFameRecalc [Renommée globale] // HASH_VALUE E8CBD85FC6F3F4AD // INDEX 3586 -uihelpMission [Détails des Missions] +uihelpMission [Détails des missions] // HASH_VALUE ABE830356F5884FB // INDEX 3587 -uihelpZCCharge [Détails de la Zone] +uihelpZCCharge [Détails de la zone] // HASH_VALUE 125B887C4DB54438 // INDEX 3588 -uihelpRMBuy [Détails du Maître de Rôle] +uihelpRMBuy [Détails du Maître de rôle] // HASH_VALUE FD7A9490D8293C28 // INDEX 3589 -uihelpRMUpgrade [Détails des Mises à Niveau du Maître de Rôle] +uihelpRMUpgrade [Détails des mises à niveau du Maître de rôle] // HASH_VALUE 70D8CCC46A58948A // INDEX 3590 -uihelpBuilding [Détails du Bâtiment] +uihelpBuilding [Détails du bâtiment] // HASH_VALUE 28493049B158CC0E // INDEX 3591 -uihelpZCRequirement [Détails des Besoins de la Zone] +uihelpZCRequirement [Détail des besoins de la zone] // HASH_VALUE 709858306AF9303B // INDEX 3592 -uihelpBuildingRequirement [Détails des Besoins en Bâtiment] +uihelpBuildingRequirement [Détails des besoins en bâtiments] // HASH_VALUE 70D8CCC46A58948A // INDEX 3593 @@ -15066,31 +15058,31 @@ uihelpOutpostBuilding [Détails du bâtiment] // HASH_VALUE CC325C42C310CCFC // INDEX 3594 -uimGcmZoneCharge [REVOIR LES CHARGES] +uimGcmZoneCharge [Revoir les charges] // HASH_VALUE 4BE0AC063D40DB1A // INDEX 3595 -uimGcmCancelZoneCharge [ABANDONNER LA CHARGE] +uimGcmCancelZoneCharge [Abandonner la charge] // HASH_VALUE 3E00DC18D0704716 // INDEX 3596 -uimGcmChooseBuilding [CONSTRUIRE UN BATIMENT] +uimGcmChooseBuilding [Construire un bâtiment] // HASH_VALUE 5092D40CB2F2C42C // INDEX 3597 -uimGcmDestroyBuilding [DETRUIRE UN BATIMENT] +uimGcmDestroyBuilding [Détruire un bâtiment] // HASH_VALUE 8D6F6030F9D11F0C // INDEX 3598 -uimGcmDeclareWar [DECLARER LA GUERRE] +uimGcmDeclareWar [Déclarer la guerre] // HASH_VALUE 85E0F4043E61CC3A // INDEX 3599 -uimGcmBuyRM [ENGAGER UN MAITRE DE ROLE] +uimGcmBuyRM [Engager un Maître de rôle] // HASH_VALUE CE5FA83F34E19400 // INDEX 3600 -uimGcmUpgradeRM [METTRE A NIVEAU UN MAITRE DE ROLE] +uimGcmUpgradeRM [Mettre à niveau un Maître de rôle] // HASH_VALUE 8B464C1CFF4C1E26 // INDEX 3601 @@ -15111,7 +15103,7 @@ uiQReplaceAppartment [Acheter cet appartement détruira l'ancien et tous les obj // HASH_VALUE 997945DC8DF6E070 // INDEX 3605 -uiDayBeforeNextZCDistrib [Jour(s) Restant avant la Prochaine Attribution de Charge : ] +uiDayBeforeNextZCDistrib [Jour(s) restants avant la prochaine attribution de charge : ] // HASH_VALUE E108509750242758 // INDEX 3606 @@ -15119,7 +15111,7 @@ uiRearView [Regarder derrière soi] // HASH_VALUE 69787898652874A0 // INDEX 3607 -uiDecline [décliner] +uiDecline [Décliner] // HASH_VALUE 9E2B48D12EB5C377 // INDEX 3608 @@ -15151,11 +15143,11 @@ uiFrontSelectionType [Type] // HASH_VALUE E918BC86E058408B // INDEX 3615 -uiFrontSelectionFriend [Ami face à vous] +uiFrontSelectionFriend [Ami devant vous] // HASH_VALUE 6498E414705894B4 // INDEX 3616 -uiFrontSelectionEnnemy [Ennemi face à vous] +uiFrontSelectionEnnemy [Ennemi devant vous] // HASH_VALUE 9370C2C7FDD63E88 // INDEX 3617 @@ -15163,7 +15155,7 @@ uiTeamSelectNotInVision [Ce membre de l'équipe se trouve trop loin pour être c // HASH_VALUE E889A092E3370883 // INDEX 3618 -Refugee [Refugie] +Refugee [Réfugié] // HASH_VALUE 2BE64C8EA2363C8C // INDEX 3619 @@ -15175,179 +15167,179 @@ Novice_Artisan [Artisan Débutant] // HASH_VALUE A9BAD097A6637840 // INDEX 3621 -Novice_Warrior [Guerrier Débutant] +Novice_Warrior [Guerrier débutant] // HASH_VALUE 669C0C5E5CB0CCAC // INDEX 3622 -Novice_Harvester [Récolteur Débutant] +Novice_Harvester [Récolteur débutant] // HASH_VALUE 64C9D88519A05392 // INDEX 3623 -Novice_Magician [Magicien Débutant] +Novice_Magician [Mage débutant] // HASH_VALUE 9652D84697EAD0BA // INDEX 3624 -Artisan_Apprentice [Apprenti Artisan ] +Artisan_Apprentice [Apprenti artisan] // HASH_VALUE 5D32A46A15BC009F // INDEX 3625 -Warrior_Apprentice [Apprenti Guerrier ] +Warrior_Apprentice [Apprenti guerrier] // HASH_VALUE 19E9BC392E79C442 // INDEX 3626 -Magician_Apprentice [Apprenti Magicien ] +Magician_Apprentice [Apprenti mage] // HASH_VALUE 6A4B6C4A616072C4 // INDEX 3627 -Fyros_Artisan_Apprentice [Apprenti Artisan Fyros ] +Fyros_Artisan_Apprentice [Apprenti artisan fyros] // HASH_VALUE 6AEA2851616072BE // INDEX 3628 -Matis_Artisan_Apprentice [Apprenti Artisan Matis ] +Matis_Artisan_Apprentice [Apprenti artisan matis] // HASH_VALUE AB99DB9B14F000AD // INDEX 3629 -Tryker_Artisan_Apprentice [Apprenti Artisan Tryker ] +Tryker_Artisan_Apprentice [Apprenti artisan tryker] // HASH_VALUE E7AA945E61604AAC // INDEX 3630 -Zorai_Artisan_Apprentice [Apprenti Artisan Zoraï ] +Zorai_Artisan_Apprentice [Apprenti artisan zoraï] // HASH_VALUE EA085C4FA2C13AB0 // INDEX 3631 -Melee_Warrior_Apprentice [Apprenti Guerrier de Mêlee ] +Melee_Warrior_Apprentice [Apprenti combattant de mêlée] // HASH_VALUE 2CF9FF48E1D4F0AE // INDEX 3632 -Sniper_Apprentice [Apprenti Sniper ] +Sniper_Apprentice [Apprenti tireur] // HASH_VALUE AACB5069AD7225CC // INDEX 3633 -Fyros_Armorer_Apprentice [Apprenti Armurier Fyros] +Fyros_Armorer_Apprentice [Apprenti fabricant d'armures fyros] // HASH_VALUE AA6A2873279225CC // INDEX 3634 -Fyros_Jeweler_Apprentice [Apprenti Bijoutier Fyros] +Fyros_Jeweler_Apprentice [Apprenti bijoutier fyros] // HASH_VALUE 9EB51889A809A768 // INDEX 3635 -Fyros_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes Fyros] +Fyros_Weapon_Smith_Apprentice [Apprenti fabricant d'armes fyros] // HASH_VALUE E2CB1C3DF20697CD // INDEX 3636 -Fyros_Munitioner_Apprentice [Apprenti Forgeron de Munitions Fyros] +Fyros_Munitioner_Apprentice [Apprenti fabricant de munitions fyros] // HASH_VALUE 30C7BB58C778C7B3 // INDEX 3637 -Fyros_Gun_Smith_Apprentice [Apprenti Forgeron/Armes à Feu Fyros] +Fyros_Gun_Smith_Apprentice [Apprenti fabricant d'armes à feu fyros] // HASH_VALUE 1C85EC9169C9A768 // INDEX 3638 -Fyros_Shield_Smith_Apprentice [Apprenti Forgeron/Boucliers Fyros] +Fyros_Shield_Smith_Apprentice [Apprenti fabricant de boucliers fyros] // HASH_VALUE A80B9077AD7225CC // INDEX 3639 -Matis_Armorer_Apprentice [Apprenti Armurier Matis] +Matis_Armorer_Apprentice [Apprenti fabricant d'armures matis] // HASH_VALUE A8AA6881279225CC // INDEX 3640 -Matis_Jeweler_Apprentice [Apprenti Bijoutier Matis] +Matis_Jeweler_Apprentice [Apprenti bijoutier matis] // HASH_VALUE 1DD5B8902988C368 // INDEX 3641 -Matis_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes Matis] +Matis_Weapon_Smith_Apprentice [Apprenti fabricant d'armes matis] // HASH_VALUE 23EBBC44F2A69FB5 // INDEX 3642 -Matis_Munitioner_Apprentice [Apprenti-Forgeron de Munitions Matis] +Matis_Munitioner_Apprentice [Apprenti fabricant de munitions matis] // HASH_VALUE A9575B5FC778AFB5 // INDEX 3643 -Matis_Gun_Smith_Apprentice [Apprenti Forgeron/Armes à Feu Matis] +Matis_Gun_Smith_Apprentice [Apprenti fabricant d'armes à feu matis] // HASH_VALUE 9BA58C98EA48C368 // INDEX 3644 -Matis_Shield_Smith_Apprentice [Apprenti Forgeron/Boucliers Matis] +Matis_Shield_Smith_Apprentice [Apprenti fabricant de boucliers matis] // HASH_VALUE 2DDB909B80C1F8A3 // INDEX 3645 -Tryker_Armorer_Apprentice [Apprenti Armurier Tryker] +Tryker_Armorer_Apprentice [Apprenti fabricant d'armures trykers] // HASH_VALUE AC3BB88EC2C1F8A3 // INDEX 3646 -Tryker_Jeweler_Apprentice [Apprenti Bijoutier Tryker] +Tryker_Jeweler_Apprentice [Apprenti bijoutier tryker] // HASH_VALUE 176BD88768839F77 // INDEX 3647 -Tryker_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes Tryker] +Tryker_Weapon_Smith_Apprentice [Apprenti fabricant d'armes trykers] // HASH_VALUE 6C77A7AF21D51892 // INDEX 3648 -Tryker_Munitioner_Apprentice [Apprenti Forgeron de Munitions Tryker] +Tryker_Munitioner_Apprentice [Apprenti fabricant de munitions trykers] // HASH_VALUE DFF6145261E5E8B6 // INDEX 3649 -Tryker_Gun_Smith_Apprentice [Apprenti Forgeron/Armes à Feu Tryker] +Tryker_Gun_Smith_Apprentice [Apprenti fabricant d'armes à feu trykers] // HASH_VALUE 57BAF88A67839F6D // INDEX 3650 -Tryker_Shield_Smith_Apprentice [Apprenti Forgeron/Boucliers Tryker] +Tryker_Shield_Smith_Apprentice [Apprenti fabricant de boucliers trykers] // HASH_VALUE A4CB0091AD7225B8 // INDEX 3651 -Zorai_Armorer_Apprentice [Apprenti Armurier Zoraï] +Zorai_Armorer_Apprentice [Apprenti fabricant d'armures zoraïs] // HASH_VALUE A46AD89B279225B8 // INDEX 3652 -Zorai_Jeweler_Apprentice [Apprenti Bijoutier Zoraï] +Zorai_Jeweler_Apprentice [Apprenti bijoutier zoraï] // HASH_VALUE 1BB5F09DA868F75E // INDEX 3653 -Zorai_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes Zoraï] +Zorai_Weapon_Smith_Apprentice [Apprenti fabricant d'armes zoraïs] // HASH_VALUE 64CBF451702697B9 // INDEX 3654 -Zorai_Munitioner_Apprentice [Apprenti Forgeron de Munitions Zoraï] +Zorai_Munitioner_Apprentice [Apprenti fabricant de munitions zoraïs] // HASH_VALUE 2A08936CC7D78FA9 // INDEX 3655 -Zorai_Gun_Smith_Apprentice [Apprenti Forgeron/Armes à Feu Zoraï] +Zorai_Gun_Smith_Apprentice [Apprenti fabricant d'armes à feu zoraïs] // HASH_VALUE 9985C4A56928F75E // INDEX 3656 -Zorai_Shield_Smith_Apprentice [Apprenti Forgeron/Boucliers Zoraï] +Zorai_Shield_Smith_Apprentice [Apprenti fabricant de boucliers zoraïs] // HASH_VALUE 6232BC93D54813A4 // INDEX 3657 -Melee_Warrior [Guerrier de Mêlée] +Melee_Warrior [Guerrier de mêlée] // HASH_VALUE 1B5484851A5603AE // INDEX 3658 -Range_Fighter [Combattant à Distance] +Range_Fighter [Tireur] // HASH_VALUE 1C12FC82D82807BB // INDEX 3659 -Light_Armsman [Maître d'Armes Légères] +Light_Armsman [Maîtres d'armes légères] // HASH_VALUE 9E72008C57382FBA // INDEX 3660 -Heavy_Armsman [Maître d'Armes Lourdes] +Heavy_Armsman [Maîtres d'armes lourdes] // HASH_VALUE AE56185DB0E4FC77 // INDEX 3661 -Gunman [Maître d'Armes à Feu] +Gunman [Maîtres d'armes à feu] // HASH_VALUE 32B65F77F2144AA8 // INDEX 3662 -Heavy_Gunman [Maître d'Armes à Feu Lourdes] +Heavy_Gunman [Maîtres en maniement d'armes à feu lourdes] // HASH_VALUE E9BA5C0C8A96609F // INDEX 3663 -Advanced_Gunman [Initié en Armes à Feu] +Advanced_Gunman [Initié en maniement d'armes à feu] // HASH_VALUE 61C92437E022F7B6 // INDEX 3664 -Advanced_Heavy_Gunman [Initié en Armes à Feu Lourdes] +Advanced_Heavy_Gunman [Initié en maniement d'armes à feu lourdes] // HASH_VALUE 6BC7C87D28E7A083 // INDEX 3665 @@ -15379,7 +15371,7 @@ Bowman [Archer] // HASH_VALUE B0665F80EE744AB1 // INDEX 3672 -Heavy_Bowman [Archer Lourd] +Heavy_Bowman [Archer lourd] // HASH_VALUE 67F9448CA8590CBF // INDEX 3673 @@ -15387,11 +15379,11 @@ Pistoleer [Pistolier] // HASH_VALUE 6BA7BC5E9B98D3AB // INDEX 3674 -Heavy_Artilleryman [Artilleur Lourd] +Heavy_Artilleryman [Artilleur lourd] // HASH_VALUE 9F8AD881AD37DCB5 // INDEX 3675 -Crossbowman [Archer Croisé] +Crossbowman [Arbalétrier] // HASH_VALUE EBFAF8672D09E092 // INDEX 3676 @@ -15403,7 +15395,7 @@ Rifleman [Fusilier] // HASH_VALUE A7785C76DC06F889 // INDEX 3678 -Maceman [Expert en Massues] +Maceman [Expert en maniement de massues] // HASH_VALUE 6FE93C8DA6F83890 // INDEX 3679 @@ -15411,7 +15403,7 @@ Brute [Brute] // HASH_VALUE 6458E42C6C58D494 // INDEX 3680 -Knifeman [Expert en Couteaux] +Knifeman [Expert en maniement de couteaux] // HASH_VALUE 6058044C6C58D4C8 // INDEX 3681 @@ -15419,7 +15411,7 @@ Spearman [Hastaire] // HASH_VALUE 6FD6304832940868 // INDEX 3682 -Axeman [Expert en Haches] +Axeman [Expert en maniement de haches] // HASH_VALUE 2888688FA87AE4BC // INDEX 3683 @@ -15427,7 +15419,7 @@ Swordsman [Epéiste] // HASH_VALUE A142C88256173BA9 // INDEX 3684 -Heavy_Maceman [Expert en Massues Lourdes] +Heavy_Maceman [Expert en maniement de massues lourdes] // HASH_VALUE A7F89C89A137248C // INDEX 3685 @@ -15435,107 +15427,107 @@ Pikeman [Piquier] // HASH_VALUE F356936E7454B29F // INDEX 3686 -Heavy_Axeman [Expert en Haches Lourdes] +Heavy_Axeman [Expert en maniement de haches lourdes] // HASH_VALUE 32FA748E23163F74 // INDEX 3687 -Heavy_Swordsman [Expert en Epées Lourdes] +Heavy_Swordsman [Expert en maniement d'épées lourdes] // HASH_VALUE D508B09163E58C88 // INDEX 3688 -Master_Bowman [Archer Maitre] +Master_Bowman [Maître archer] // HASH_VALUE 27080F9150D67847 // INDEX 3689 -Master_Heavy_Bowman [Archer Lourd Maître] +Master_Heavy_Bowman [Maître archer lourd] // HASH_VALUE F0FCA46C60B0BCA2 // INDEX 3690 -Master_Pistoleer [Tireur Maître] +Master_Pistoleer [Maître pistolier] // HASH_VALUE B07AF0898F26486B // INDEX 3691 -Master_Heavy_Artilleryman [Artilleur Lourd Maître] +Master_Heavy_Artilleryman [Maître artilleur lourd] // HASH_VALUE 2C690840A2F524AD // INDEX 3692 -Master_Crossbowman [Fantassin à Arc Maître] +Master_Crossbowman [Maître arbalétrier] // HASH_VALUE 27C75B9E2236D0A6 // INDEX 3693 -Master_Artilleryman [Artilleur Maître] +Master_Artilleryman [Maître artilleur] // HASH_VALUE ECFA3C6C38D09CA4 // INDEX 3694 -Master_Rifleman [Fusilier Maître ] +Master_Rifleman [Maître fusilier] // HASH_VALUE AFF99886A0233C33 // INDEX 3695 -Master_Maceman [Expert en Massues Maître] +Master_Maceman [Maître en maniement de massues] // HASH_VALUE 23B7A8719682EC89 // INDEX 3696 -Master_Brute [Brute Maître] +Master_Brute [Maître brute] // HASH_VALUE 2A3A9085187087A5 // INDEX 3697 -Master_Knifeman [Expert en Couteaux Maître] +Master_Knifeman [Maître en maniement de couteaux] // HASH_VALUE 6DBB6C839BF187A5 // INDEX 3698 -Master_Spearman [Hastaire Maître] +Master_Spearman [Maître hastaire] // HASH_VALUE D508689A23C4B087 // INDEX 3699 -Master_Axeman [Expert en Haches Maître] +Master_Axeman [Maître en maniement de haches] // HASH_VALUE 6CBC8488DE30FCB0 // INDEX 3700 -Master_Swordsman [Epéiste Maître] +Master_Swordsman [Maître épéiste] // HASH_VALUE 28B6887C65B60844 // INDEX 3701 -Master_Heavy_Maceman [Expert en Massues Lourdes Maître] +Master_Heavy_Maceman [Maître en maniement de massues lourdes] // HASH_VALUE AFF9B88E63A34833 // INDEX 3702 -Master_Pikeman [Piquier Maître] +Master_Pikeman [Maître piquier] // HASH_VALUE 27080F910F677454 // INDEX 3703 -Master_Heavy_Axeman [Expert en Haches Lourdes Maître] +Master_Heavy_Axeman [Maître en maniement de haches lourdes] // HASH_VALUE 722B6C979DA3F013 // INDEX 3704 -Master_Heavy_Swordsman [Epéiste Lourd Maître] +Master_Heavy_Swordsman [Maître épéiste lourd] // HASH_VALUE 80EA8C8397C1F860 // INDEX 3705 -Master_Hand_To_Hand_Fighter [Maître en Combat à Mains Nues] +Master_Hand_To_Hand_Fighter [Maître en combats à mains nues] // HASH_VALUE D6182C18135874D0 // INDEX 3706 -Hand_To_Hand_Fighter [Combattant à Mains Nues] +Hand_To_Hand_Fighter [Combattant à mains nues] // HASH_VALUE E173B0825A06F7AF // INDEX 3707 -Close_Fighter [Combattant au contact] +Close_Fighter [Combattant rapproché] // HASH_VALUE 2899C040936E7CAB // INDEX 3708 -Advanced_Close_Fighter [Initié en Combat au contact] +Advanced_Close_Fighter [Initié en combat rapproché] // HASH_VALUE 12D4A7732D288C88 // INDEX 3709 -Defensive_Magician [Magicien Défensif] +Defensive_Magician [Magicien défensif] // HASH_VALUE 5284AB7E2D288C88 // INDEX 3710 -Offensive_Magician [Magicien Offensif] +Offensive_Magician [Magicien offensif] // HASH_VALUE EE49808FE0BA1C5C // INDEX 3711 -Elementalist_Apprentice [Apprenti Elémentaliste] +Elementalist_Apprentice [Apprenti élémentaliste] // HASH_VALUE 6457689DA9B9C0A8 // INDEX 3712 @@ -15575,11 +15567,11 @@ Master_Of_Life [Maître de la Vie] // HASH_VALUE 173453796B290487 // INDEX 3721 -Celestial_Guardian [Gardien Céleste] +Celestial_Guardian [Gardien céleste] // HASH_VALUE A4844B6153C45375 // INDEX 3722 -Black_Mage [Mage Noir] +Black_Mage [Mage noir] // HASH_VALUE DF72C08965EAEC61 // INDEX 3723 @@ -15603,7 +15595,7 @@ Warlock [Sorcier] // HASH_VALUE 68D8240464D814B4 // INDEX 3728 -Archmage [Mage-Archer] +Archmage [Archimage] // HASH_VALUE AC285B765873C43B // INDEX 3729 @@ -15611,11 +15603,11 @@ Master_Of_Pain [Maître de la Souffrance] // HASH_VALUE 5917AF7EA19238B1 // INDEX 3730 -Avatar_Of_Destruction [Avatar de Destruction] +Avatar_Of_Destruction [Avatar de la Destruction] // HASH_VALUE 2B2AC05B281BC87B // INDEX 3731 -Elementalist [Elémentaliste] +Elementalist [Élémentaliste] // HASH_VALUE 5D575491EA48789C // INDEX 3732 @@ -15623,15 +15615,15 @@ Alchemist [Alchimiste] // HASH_VALUE 20D70C7C2408B0A6 // INDEX 3733 -Biomancer [Biomanceur] +Biomancer [Biomancien] // HASH_VALUE 18C58F386D241C82 // INDEX 3734 -Master_Of_Energies [Maître des Energies] +Master_Of_Energies [Maître des Énergies] // HASH_VALUE D875D47059086861 // INDEX 3735 -Chosen_Of_Atys [Elu d'Atys] +Chosen_Of_Atys [Élu d'Atys] // HASH_VALUE ADE34C43D7F7AAAF // INDEX 3736 @@ -15639,7 +15631,7 @@ FBT [Ancien d'Atys] // HASH_VALUE 16873039E203738F // INDEX 3737 -SGM [Maître de Jeu Senior] +SGM [Maître de Jeu sénior] // HASH_VALUE 9A36347595278047 // INDEX 3738 @@ -15647,7 +15639,7 @@ GM [Maître de Jeu] // HASH_VALUE DE14988A5530CCA6 // INDEX 3739 -SG [Guide Senior] +SG [Guide sénior] // HASH_VALUE 29A72C85A1B71879 // INDEX 3740 @@ -15655,35 +15647,35 @@ G [Guide] // HASH_VALUE 2F059F5756EBD4B4 // INDEX 3741 -Armorer_Apprentice [Apprenti Armurier] +Armorer_Apprentice [Apprenti fabricant d'armures] // HASH_VALUE 6A366B60568AACB8 // INDEX 3742 -Jeweler_Apprentice [Apprenti Bijoutier] +Jeweler_Apprentice [Apprenti bijoutier] // HASH_VALUE 1C54C89027C8C35A // INDEX 3743 -Melee_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes de Mêlée] +Melee_Weapon_Smith_Apprentice [Apprenti fabricant d'armes de mêlée] // HASH_VALUE 9C74B895A788D75A // INDEX 3744 -Range_Weapon_Smith_Apprentice [Apprenti Forgeron/Armes de Portée] +Range_Weapon_Smith_Apprentice [Apprenti fabricant d'armes de portée] // HASH_VALUE 9FC3009098F72FBE // INDEX 3745 -Heavy_Armorer [Armurier Lourd] +Heavy_Armorer [Fabricant d'armures lourdes] // HASH_VALUE 1D63FC8619E707BF // INDEX 3746 -Light_Armorer [Armurier Léger] +Light_Armorer [Fabricant d'armures légères] // HASH_VALUE EDE9B8925E431847 // INDEX 3747 -Medium_Armorer [Armurier Moyen] +Medium_Armorer [Fabricant d'armures moyennes] // HASH_VALUE A075787F1BE16898 // INDEX 3748 -Shield_Smith [Forgeron de Boucliers] +Shield_Smith [Fabricant de boucliers] // HASH_VALUE 69E9B88B21981C8D // INDEX 3749 @@ -15691,147 +15683,147 @@ Jeweler [Bijoutier] // HASH_VALUE 69A68C798FA31B60 // INDEX 3750 -Melee_Weapon_Smith [Forgeron d'Armes de Mêlée] +Melee_Weapon_Smith [Fabricant d'armes de mêlée] // HASH_VALUE 8E25BC6AE8653A8E // INDEX 3751 -Melee_Heavy_Weapon_Smith [Forgeron d'Armes de Mêlée Lourdes] +Melee_Heavy_Weapon_Smith [Fabricant d'armes de mêlée lourdes] // HASH_VALUE 8ED58470EAE53A8E // INDEX 3752 -Melee_Light_Weapon_Smith [Forgeron d'Armes de Mêlée Légères] +Melee_Light_Weapon_Smith [Fabricant d'armes de mêlée légères] // HASH_VALUE E8177C7E8FA32362 // INDEX 3753 -Range_Weapon_Smith [Forgeron d'Armes de Tir] +Range_Weapon_Smith [Fabricant d'armes de tir] // HASH_VALUE 8E659C74E8653A8E // INDEX 3754 -Range_Heavy_Weapon_Smith [Forgeron d'Armes de Tir Lourdes] +Range_Heavy_Weapon_Smith [Fabricant d'armes de tir lourdes] // HASH_VALUE 2499EC49946ECCAE // INDEX 3755 -Advanced_Heavy_Armorer [Armurier Lourd Avancé] +Advanced_Heavy_Armorer [Fabricant d'armures lourdes avancé] // HASH_VALUE A5D9FC49956EB8A0 // INDEX 3756 -Advanced_Light_Armorer [Armurier Léger Avancé] +Advanced_Light_Armorer [Fabricant d'armures légères avancé] // HASH_VALUE E7A9680679998CAC // INDEX 3757 -Advanced_Medium_Armorer [Armurier Moyen Avancé] +Advanced_Medium_Armorer [Fabricant d'armures moyennes avancé] // HASH_VALUE 28B94C15D817C39F // INDEX 3758 -Advanced_Shield_Smith [Forgeron Avancé/Boucliers] +Advanced_Shield_Smith [Fabricant de boucliers avancé] // HASH_VALUE 6A7A74C26A587CA6 // INDEX 3759 -Advanced_Jeweler [Bijoutier Avancé] +Advanced_Jeweler [Bijoutier avancé] // HASH_VALUE 9E4A1C2FE4A37BA5 // INDEX 3760 -Advanced_Melee_Weapon_Smith [Forgeron Avancé/Armes de Mêlée] +Advanced_Melee_Weapon_Smith [Fabricant d'armes de mêlée avancé] // HASH_VALUE D90A089EA0443446 // INDEX 3761 -Advanced_Melee_Heavy_Weapon_Smith [Forgeron Avancé/Armes de Mêlée Lourdes] +Advanced_Melee_Heavy_Weapon_Smith [Fabricant d'armes de mêlée lourdes avancé] // HASH_VALUE 982920A2A1443446 // INDEX 3762 -Advanced_Melee_Light_Weapon_Smith [Forgeron Avancé/Armes de Mêlée Légères] +Advanced_Melee_Light_Weapon_Smith [Fabricant d'armes de mêlée légères avancé] // HASH_VALUE 1E0A302FE4A37BA7 // INDEX 3763 -Advanced_Range_Weapon_Smith [Forgeron Avancé/Armes de Tir] +Advanced_Range_Weapon_Smith [Fabricant d'armes de tir avancé] // HASH_VALUE 59CA1C9EA0443448 // INDEX 3764 -Advanced_Range_Heavy_Weapon_Smith [Forgeron Avancé/Armes de Portée Lourdes] +Advanced_Range_Heavy_Weapon_Smith [Fabricant d'armes de portée lourdes avancé] // HASH_VALUE 65C6008B24973C3C // INDEX 3765 -Expert_Heavy_Armorer [Expert-Armurier Lourd] +Expert_Heavy_Armorer [Fabricant d'armures lourdes expert] // HASH_VALUE 25E5188FE4B65440 // INDEX 3766 -Expert_Light_Armorer [Expert-Armurier Léger] +Expert_Light_Armorer [Fabricant d'armures légères expert] // HASH_VALUE 170BF87C65E3FB9E // INDEX 3767 -Expert_Medium_Armorer [Expert-Armurier Moyen] +Expert_Medium_Armorer [Fabricant d'armures moyennes expert] // HASH_VALUE DF18D78AE453A7B7 // INDEX 3768 -Expert_Shield_Smith [Expert-Forgeron/Boucliers] +Expert_Shield_Smith [Fabricant de boucliers expert] // HASH_VALUE 2DDA047FE6B3A43C // INDEX 3769 -Expert_Jeweler [Expert-Bijoutier] +Expert_Jeweler [Bijoutier expert] // HASH_VALUE D6CA6482D035AC4A // INDEX 3770 -Expert_Melee_Weapon_Smith [Expert-Forgeron/Armes de Mêlée] +Expert_Melee_Weapon_Smith [Fabricant d'armes de mêlée expert] // HASH_VALUE E294F78ED7E54860 // INDEX 3771 -Expert_Melee_Heavy_Weapon_Smith [Expert-Forgeron/Armes de Mêlée Lourdes] +Expert_Melee_Heavy_Weapon_Smith [Fabricant d'armes de mêlée lourdes expert] // HASH_VALUE E294E38058255860 // INDEX 3772 -Expert_Melee_Light_Weapon_Smith [Expert-Forgeron/Armes de Mêlée Légères] +Expert_Melee_Light_Weapon_Smith [Fabricant d'armes de mêlée légères expert] // HASH_VALUE D6EA6C7E1135AC4A // INDEX 3773 -Expert_Range_Weapon_Smith [Expert-Forgeron/Armes de Tir] +Expert_Range_Weapon_Smith [Fabricant d'armes de tir expert] // HASH_VALUE E2B4FF8A18E54860 // INDEX 3774 -Expert_Range_Heavy_Weapon_Smith [Expert-Forgeron/Armes de Tir Lourdes] +Expert_Range_Heavy_Weapon_Smith [Fabricant d'armes de tir lourdes expert] // HASH_VALUE 2EA7A3A1EA2552A0 // INDEX 3775 -Heavy_Armorer_Master [Maître-Armurier Lourd] +Heavy_Armorer_Master [Maître fabricant d'armures lourdes] // HASH_VALUE AB07B3A06785629F // INDEX 3776 -Light_Armorer_Master [Maître-Armurier Léger] +Light_Armorer_Master [Maître fabricant d'armures légères] // HASH_VALUE 5759EC8997307C8D // INDEX 3777 -Medium_Armorer_Master [Maître-Armurier Moyen] +Medium_Armorer_Master [Maître fabricant d'armures moyennes] // HASH_VALUE A2395B98D3F43C5D // INDEX 3778 -Shield_Smith_Master [Maître-Forgeron/Boucliers] +Shield_Smith_Master [Maître fabricant de boucliers] // HASH_VALUE 6BCA80811216738D // INDEX 3779 -Jeweler_Master [Maître-Bijoutier] +Jeweler_Master [Maître bijoutier] // HASH_VALUE 62142C94E1942F4B // INDEX 3780 -Melee_Weapon_Smith_Master [Maître-Forgeron/Armes de Mêlée] +Melee_Weapon_Smith_Master [Maître fabricant d'armes de mêlée] // HASH_VALUE 11755C3DE2084F9D // INDEX 3781 -Melee_Heavy_Weapon_Smith_Master [Maître-Forgeron/Armes de Mêlée Lourdes] +Melee_Heavy_Weapon_Smith_Master [Maître fabricant d'armes de mêlée lourdes] // HASH_VALUE 11252443E3484F9D // INDEX 3782 -Melee_Light_Weapon_Smith_Master [Maître-Forgeron/Armes de Mêlée Légères] +Melee_Light_Weapon_Smith_Master [Maître fabricant d'armes de mêlée légères] // HASH_VALUE 62F43099E1942F4D // INDEX 3783 -Range_Weapon_Smith_Master [Maître-Forgeron/Armes de Tir] +Range_Weapon_Smith_Master [Maître fabricant d'armes de ir] // HASH_VALUE 91954C4223084F9D // INDEX 3784 -Range_Heavy_Weapon_Smith_Master [Maître-Forgeron/Armes de Tir Lourdes] +Range_Heavy_Weapon_Smith_Master [Maître fabricant d'armes de tir lourdes] // HASH_VALUE EBA6935C563A9CAE // INDEX 3785 -Forager_Apprentice [Apprenti Foreur] +Forager_Apprentice [Apprenti foreur] // HASH_VALUE 2609A88860A83484 // INDEX 3786 @@ -15843,7 +15835,7 @@ Desert_Forager [Foreur du Désert] // HASH_VALUE EBCAB8886183703E // INDEX 3788 -Forest_Forager [Foreur des Forêts] +Forest_Forager [Foreur de la Forêt] // HASH_VALUE A718D88863824C3B // INDEX 3789 @@ -15859,95 +15851,95 @@ Prime_Roots_Forager [Foreur des Primes Racines] // HASH_VALUE 27FA380B790A809D // INDEX 3792 -Advanced_Desert_Forager [Foreur Avancé du Désert] +Advanced_Desert_Forager [Foreur avancé du Désert] // HASH_VALUE E79A400B790A849D // INDEX 3793 -Advanced_Forest_Forager [Foreur Avancé des Forêts] +Advanced_Forest_Forager [Foreur avancé de la Forêt] // HASH_VALUE E6FB500B7919689F // INDEX 3794 -Advanced_Jungle_Forager [Foreur Avancé de la Jungle] +Advanced_Jungle_Forager [Foreur avancé de la Jungle] // HASH_VALUE A8274738674998B6 // INDEX 3795 -Advanced_Lacustre_Forager [Foreur Avancé/Lacs] +Advanced_Lacustre_Forager [Foreur avancé des Lacs] // HASH_VALUE 2A2B2C31A1B5CC3C // INDEX 3796 -Advanced_Prime_Roots_Forager [Foreur Avancé des Primes Racines] +Advanced_Prime_Roots_Forager [Foreur avancé des Primes Racines] // HASH_VALUE 561AFC816124FB9C // INDEX 3797 -Expert_Desert_Forager [Foreur Expert du Désert] +Expert_Desert_Forager [Foreur expert du Désert] // HASH_VALUE 961AF88BE114239E // INDEX 3798 -Expert_Forest_Forager [Foreur Expert des Forêts] +Expert_Forest_Forager [Foreur expert de la Forêt] // HASH_VALUE D53AE89162D33B93 // INDEX 3799 -Expert_Jungle_Forager [Foreur Expert de la Jungle] +Expert_Jungle_Forager [Foreur expert de la Jungle] // HASH_VALUE 29DBEC64C443AFC1 // INDEX 3800 -Expert_Lacustre_Forager [Expert-Foreur/Lacs] +Expert_Lacustre_Forager [Foreur expert des Lacs] // HASH_VALUE 61331C90E5357871 // INDEX 3801 -Expert_Prime_Roots_Forager [Foreur Expert des Primes Racines] +Expert_Prime_Roots_Forager [Foreur expert des Primes Racines] // HASH_VALUE 1A2A6C9821B3138F // INDEX 3802 -Master_Desert_Forager [Maître Foreur du Désert] +Master_Desert_Forager [Maître foreur du Désert] // HASH_VALUE 5A2A68A2A1A33B91 // INDEX 3803 -Master_Forest_Forager [Maître Foreur des Forêts] +Master_Forest_Forager [Maître foreur de la Forêt] // HASH_VALUE 994A58A822625386 // INDEX 3804 -Master_Jungle_Forager [Maître Foreur de la Jungle] +Master_Jungle_Forager [Maître foreur de la Jungle] // HASH_VALUE AAFC9C55C643A7B2 // INDEX 3805 -Master_Lacustre_Forager [Maître-Foreur/Lacs] +Master_Lacustre_Forager [Maître foreur des Lacs] // HASH_VALUE 5FE3C0986464AC67 // INDEX 3806 -Master_Prime_Roots_Forager [Maître Foreur des Primes Racines] +Master_Prime_Roots_Forager [Maître foreur des Primes Racines] // HASH_VALUE 33681C99F1A8509A // INDEX 3807 -uiCloudy [Le temps est nuageux] +uiCloudy [le temps est nuageux.] // HASH_VALUE 7058149870581498 // INDEX 3808 -uiFair [il fait Beau] +uiFair [il fait beau.] // HASH_VALUE B1EA0CC3AE3A10CD // INDEX 3809 -uiMisty [le temps est brumeux] +uiMisty [le temps est brumeux.] // HASH_VALUE ABB9D8BAE96AECC2 // INDEX 3810 -uiRainy [il pleut] +uiRainy [il pleut.] // HASH_VALUE 27BA7BB76EE4E87C // INDEX 3811 -uiSandThundery [il y a de l'Orage de Sciure dans l'air] +uiSandThundery [il y a de l'orage de sciure dans l'air.] // HASH_VALUE 098C40BE9CDC5CBF // INDEX 3812 -uiSapThundery [il y a de l'Orage de Sève dans l'air] +uiSapThundery [il y a de l'orage de sève dans l'air.] // HASH_VALUE B18A28D12FAA48D2 // INDEX 3813 -uiSnowy [il neige] +uiSnowy [il neige.] // HASH_VALUE 6C5C84D0789C5490 // INDEX 3814 -uiThundery [le temps est orageux] +uiThundery [le temps est orageux.] // HASH_VALUE 68585420781C9490 // INDEX 3815 @@ -15979,7 +15971,7 @@ uiContinentLePaysMalade [le Pays Malade] // HASH_VALUE 36B0D4B26CBA046A // INDEX 3822 -uiContinentTryker [l'Aeden Aqueous] +uiContinentTryker [Aeden Aqueous] // HASH_VALUE 9799B886D6679F82 // INDEX 3823 @@ -15987,7 +15979,7 @@ uiContinentLesFalaises [les Sommets Verdoyants] // HASH_VALUE 4D85B0BC6A78FB44 // INDEX 3824 -uiContinentLesIlesVivantes [les Iles Vivantes] +uiContinentLesIlesVivantes [les Îles Vivantes] // HASH_VALUE D8E98BABE3D6E895 // INDEX 3825 @@ -16011,19 +16003,19 @@ uiAndTheWeatherIs [ et ] // HASH_VALUE A96BC4C66B7BA0C1 // INDEX 3830 -uiSeason0 [au Printemps] +uiSeason0 [au printemps] // HASH_VALUE AF3928B8B19A1CAA // INDEX 3831 -uiSeason1 [en Eté] +uiSeason1 [en été] // HASH_VALUE B27A38A3B2491CAF // INDEX 3832 -uiSeason2 [en Automne] +uiSeason2 [en automne] // HASH_VALUE 3099E4C16D2A08AF // INDEX 3833 -uiSeason3 [en Hiver] +uiSeason3 [en hiver] // HASH_VALUE 194ECD02D7D4B358 // INDEX 3834 @@ -16031,7 +16023,7 @@ uiCommandWrongArgumentCount [Mauvais compte des éléments dans la commande.] // HASH_VALUE 62C7348CE738649D // INDEX 3835 -mpfam0 [Non Définies] +mpfam0 [Non définies] // HASH_VALUE DBD84B79A622146A // INDEX 3836 @@ -16039,7 +16031,7 @@ mpfam1 [Bois d'Abhaya] // HASH_VALUE EA38A42848D814AE // INDEX 3837 -mpfam2 [Faction d'Adelina] +mpfam2 [Éclat d'Adelina] // HASH_VALUE A038738E22A26858 // INDEX 3838 @@ -16055,7 +16047,7 @@ mpfam5 [Pollen d'Amelina] // HASH_VALUE 0D693828A7E5837E // INDEX 3841 -mpfam6 [Fibre d'Anete] +mpfam6 [Fibre d'Anète] // HASH_VALUE 25676C2BA817BFA1 // INDEX 3842 @@ -16067,7 +16059,7 @@ mpfam8 [Ongle d'Arma] // HASH_VALUE A7D7503F22F3303C // INDEX 3844 -mpfam9 [Epine d'Arma] +mpfam9 [Épine dorsale d'Arma] // HASH_VALUE A958BB719B07C86F // INDEX 3845 @@ -16087,7 +16079,7 @@ mpfam13 [Ambre de Batoo] // HASH_VALUE 96CA782BC4CBAC4E // INDEX 3849 -mpfam14 [Ecorce de Beckers] +mpfam14 [Écorce de Beckers] // HASH_VALUE 6636EC341AE20035 // INDEX 3850 @@ -16099,7 +16091,7 @@ mpfam16 [Grosse Carapace] // HASH_VALUE 6EE88C751AA9F065 // INDEX 3852 -mpfam17 [Carapace Apre] +mpfam17 [Carapace Âpre] // HASH_VALUE 2C15B35F9924B37B // INDEX 3853 @@ -16175,7 +16167,7 @@ mpfam37 [Fibre de Dzao] // HASH_VALUE AC16C35F6C548A7B // INDEX 3871 -mpfam38 [Coton d'Enola] +mpfam38 [Coton d'Énola] // HASH_VALUE 6CD85414609894B4 // INDEX 3872 @@ -16203,7 +16195,7 @@ mpfam44 [Peau de Gingo] // HASH_VALUE AD78643FA6C3F48A // INDEX 3878 -mpfam45 [Lin Glorieux] +mpfam45 [Lin Magnifique] // HASH_VALUE EBB78035E4234845 // INDEX 3879 @@ -16211,7 +16203,7 @@ mpfam46 [Résine de Colle] // HASH_VALUE A0C640624FE373AB // INDEX 3880 -mpfam47 [Bourgean de Goari] +mpfam47 [Sphère de Goari] // HASH_VALUE CEF8842D6A265797 // INDEX 3881 @@ -16243,7 +16235,7 @@ mpfam54 [Griffe d'Igara] // HASH_VALUE EB68986D5AD9D862 // INDEX 3888 -mpfam56 [Carapace d'Insectes] +mpfam56 [Carapace d'Insecte] // HASH_VALUE CCEA1034AD84A38D // INDEX 3889 @@ -16263,7 +16255,7 @@ mpfam60 [Griffe d'Izam] // HASH_VALUE 6C58A4246C580480 // INDEX 3893 -mpfam61 [Saillon d'Izam] +mpfam61 [Éperon d'Izam] // HASH_VALUE E50998501C93A478 // INDEX 3894 @@ -16347,7 +16339,7 @@ mpfam81 [Peau de Lumper] // HASH_VALUE 6594186D1DC00C86 // INDEX 3914 -mpfam82 [Epine de Lumper] +mpfam82 [Épine de Lumper] // HASH_VALUE A8CAFC925F72DFAE // INDEX 3915 @@ -16423,7 +16415,7 @@ mpfam100 [Noeud de Bois de Patee] // HASH_VALUE 29D8FC482726FFB0 // INDEX 3933 -mpfam101 [Ecorce de Perfling] +mpfam101 [Écorce de Perfling] // HASH_VALUE 8EC840899C12BF2A // INDEX 3934 @@ -16467,7 +16459,7 @@ mpfam114 [Ambre de Satilish] // HASH_VALUE 591A5868C5D98C84 // INDEX 3944 -mpfam115 [Graines de Saurona] +mpfam115 [Graine de Saurona] // HASH_VALUE 21294F9CA5435866 // INDEX 3945 @@ -16499,11 +16491,11 @@ mpfam122 [Carapace de Sliders] // HASH_VALUE D1A97C39ADE757A0 // INDEX 3952 -mpfam123 [Carapace Intelligente] +mpfam123 [Carapace intelligente] // HASH_VALUE 9248688C9C12F73F // INDEX 3953 -mpfam124 [Ambre de Soo] +mpfam124 [Ambre Soo] // HASH_VALUE EBF84847E6530C92 // INDEX 3954 @@ -16511,7 +16503,7 @@ mpfam125 [Carapace de Splinter] // HASH_VALUE 9757F08F5F76288C // INDEX 3955 -mpfam126 [Eponge de Subera] +mpfam126 [Éponge de Subera] // HASH_VALUE 1658A0A11FA55080 // INDEX 3956 @@ -16679,83 +16671,83 @@ mpfam173 [Pistil de Shooki] // HASH_VALUE E7A477625674777B // INDEX 3997 -mpfam174 [Feuille Verte] +mpfam174 [Feuille verte] // HASH_VALUE DB16C470CC62C74A // INDEX 3998 -mpfam175 [Feuille Morte] +mpfam175 [Feuille morte] // HASH_VALUE DB1AC859C649C470 // INDEX 3999 -mpfam176 [Feuille Pourrissante] +mpfam176 [Feuille pourrissante] // HASH_VALUE 5118843E69F76395 // INDEX 4000 -mpfam177 [Résine Fraîche] +mpfam177 [Résine fraîche] // HASH_VALUE 13E8388E23B4435D // INDEX 4001 -mpfam178 [Résine Sèche] +mpfam178 [Résine sèche] // HASH_VALUE 6C2597745BB5A782 // INDEX 4002 -mpfam179 [Bois Frais] +mpfam179 [Bois frais] // HASH_VALUE 205C241064D8F45C // INDEX 4003 -mpfam180 [Bois Sec] +mpfam180 [Bois sec] // HASH_VALUE 5BFAF0644629EC7B // INDEX 4004 -mpfam181 [Bois Pourrissant] +mpfam181 [Bois pourrissant] // HASH_VALUE CA5A2CC86C5A2476 // INDEX 4005 -mpfam182 [Sciure de Bois Sec] +mpfam182 [Sciure de bois sec] // HASH_VALUE A323A78BEF084B68 // INDEX 4006 -mpfam183 [Sciure de Bois Humide] +mpfam183 [Sciure de bois humide] // HASH_VALUE A2A24B89E116E752 // INDEX 4007 -mpfam184 [Petite Feuille de Roseau] +mpfam184 [Petite feuille de Roseau] // HASH_VALUE 9E635F761DA5E74B // INDEX 4008 -mpfam185 [Grande Feuille de Roseau] +mpfam185 [Grande feuille de Roseau] // HASH_VALUE 24C23B79DD55E75A // INDEX 4009 -mpfam186 [Feuille de Roseau Géante] +mpfam186 [Feuille de Roseau géante] // HASH_VALUE D24880432C365F9F // INDEX 4010 -mpfam187 [Petite Epine] +mpfam187 [Petite épine] // HASH_VALUE CFE93C4D6775A38C // INDEX 4011 -mpfam188 [Grande Epine] +mpfam188 [Grande épine] // HASH_VALUE 4FC978372D955FA3 // INDEX 4012 -mpfam189 [Epine Géante] +mpfam189 [Épine géante] // HASH_VALUE AA057B62D864C385 // INDEX 4013 -mpfam190 [Ecorce Fraîche] +mpfam190 [Écorce fraîche] // HASH_VALUE 205C2410689C1408 // INDEX 4014 -mpfam191 [Ecorce Sèche] +mpfam191 [Écorce sèche] // HASH_VALUE 13793C8EE5A5835E // INDEX 4015 -mpfam192 [Paille Sèche] +mpfam192 [Paille sèche] // HASH_VALUE ED777839E4637032 // INDEX 4016 -mpfam193 [Paille Humide] +mpfam193 [Paille humide] // HASH_VALUE 74DC541074DC5410 // INDEX 4017 @@ -16763,275 +16755,275 @@ mpfam194 [Poussière] // HASH_VALUE 1329387DDC222351 // INDEX 4018 -mpfam195 [Fibre Sèche] +mpfam195 [Fibre sèche] // HASH_VALUE A806F0329DB22836 // INDEX 4019 -mpfam196 [Fibre Humide] +mpfam196 [Fibre humide] // HASH_VALUE 2A78D0715898EC6F // INDEX 4020 -mpfam197 [Fibre Pourrissante] +mpfam197 [Fibre pourrissante] // HASH_VALUE 7027C4708E536359 // INDEX 4021 -mpfam198 [Petite Carapace de Nacre] +mpfam198 [Petite carapace nacrée] // HASH_VALUE 2BC794698EE34F63 // INDEX 4022 -mpfam199 [Grande Carapace de Nacre] +mpfam199 [Grande carapace nacrée] // HASH_VALUE EF66B4648ED46B61 // INDEX 4023 -mpfam200 [Carapace de Nacre Géante] +mpfam200 [Carapace nacrée géante] // HASH_VALUE 4FF870356B164B9B // INDEX 4024 -mpfam201 [Petite Perle] +mpfam201 [Petite perle] // HASH_VALUE 4C992C3FA6558F88 // INDEX 4025 -mpfam202 [Grande Perle] +mpfam202 [Grande perle] // HASH_VALUE CC7968296C754B9F // INDEX 4026 -mpfam203 [Perle Géante] +mpfam203 [Perle géante] // HASH_VALUE 6B965F7ED0259064 // INDEX 4027 -mpfam204 [Ecaille de Poisson Argenté] +mpfam204 [Écaille de poisson argentée] // HASH_VALUE 56794C5B0C34283C // INDEX 4028 -mpfam205 [Ecaille de Poisson Doré] +mpfam205 [Écaille de poisson dorée] // HASH_VALUE 2B4ACC88D92183B2 // INDEX 4029 -mpfam206 [Parasite Vivant] +mpfam206 [Parasite vivant] // HASH_VALUE E7F5777D62A56858 // INDEX 4030 -mpfam207 [Parasite Mort] +mpfam207 [Parasite mort] // HASH_VALUE 6888388E1EAE7EBD // INDEX 4031 -mpfam208 [Petite Toile d'Araignée] +mpfam208 [Petite toile d'araignée] // HASH_VALUE 6AD9EC871EAE62B1 // INDEX 4032 -mpfam209 [Grande Toile d'Araignée] +mpfam209 [Grande toile d'araignée] // HASH_VALUE A748789751A34B6E // INDEX 4033 -mpfam210 [Soie de Ver] +mpfam210 [Soie de ver] // HASH_VALUE E3D7839764136861 // INDEX 4034 -mpfam211 [Soie d'Araignée] +mpfam211 [Soie d'araignée] // HASH_VALUE 2054B895E3A416BC // INDEX 4035 -mpfam212 [Petit Abdomen de Luciole] +mpfam212 [Petit abdomen de luciole] // HASH_VALUE DE656C8927E4FAB5 // INDEX 4036 -mpfam213 [Grand Abdomen de Luciole] +mpfam213 [Grand abdomen de luciole] // HASH_VALUE 1827CC99DC778685 // INDEX 4037 -mpfam214 [Aile de Papillon Rouge] +mpfam214 [Aile de papillon rouge] // HASH_VALUE 2BB6BF805A67CB8F // INDEX 4038 -mpfam215 [Aile de Papillon Vert] +mpfam215 [Aile de papillon vert] // HASH_VALUE 9F3BD46115158C5D // INDEX 4039 -mpfam216 [Aile de Papillon Bleu] +mpfam216 [Aile de papillon bleu] // HASH_VALUE 171A805A2665B08A // INDEX 4040 -mpfam217 [Aile de Papillon Jaune] +mpfam217 [Aile de papillon jaune] // HASH_VALUE 626848764F3483B2 // INDEX 4041 -mpfam218 [Cire Fraîche] +mpfam218 [Cire fraîche] // HASH_VALUE 53248B4F13894074 // INDEX 4042 -mpfam219 [Cire Sèche] +mpfam219 [Cire sèche] // HASH_VALUE F106085C54425752 // INDEX 4043 -mpfam220 [Pétale de Fleur Frais] +mpfam220 [Pétale de fleur frais] // HASH_VALUE 6E26085A54021F52 // INDEX 4044 -mpfam221 [Pétale de Fleur Sec] +mpfam221 [Pétale de fleur sec] // HASH_VALUE A267686E10B267A6 // INDEX 4045 -mpfam222 [Petit Bourgeon] +mpfam222 [Petit bourgeon] // HASH_VALUE E0471C674EF27B9F // INDEX 4046 -mpfam223 [Grand Bourgeon] +mpfam223 [Grand bourgeon] // HASH_VALUE 2FC5D36E5B14E386 // INDEX 4047 -mpfam224 [Mousse Fraîche] +mpfam224 [Mousse fraîche] // HASH_VALUE 205C241070DCF434 // INDEX 4048 -mpfam225 [Mousse Sèche] +mpfam225 [Mousse sèche] // HASH_VALUE 6BA9848A20A40760 // INDEX 4049 -mpfam226 [Pissenlit Frais] +mpfam226 [Pissenlit frais] // HASH_VALUE E7089488A084075C // INDEX 4050 -mpfam227 [Pisselit Séché] +mpfam227 [Pissenlit séché] // HASH_VALUE A232183FE6C8B0A1 // INDEX 4051 -mpfam228 [Pissenlit Florissant] +mpfam228 [Pissenlit en fleur] // HASH_VALUE 27134B89E1861365 // INDEX 4052 -mpfam229 [Petite Tige de Roseau] +mpfam229 [Petite tige de Roseau] // HASH_VALUE 23D45F761D15135E // INDEX 4053 -mpfam230 [Grand Tige de Roseau] +mpfam230 [Grande tige de Roseau] // HASH_VALUE C8582C6AECB47A76 // INDEX 4054 -mpfam231 [Terre Meuble Fraîche] +mpfam231 [Terre meuble fraîche] // HASH_VALUE C2D82C66ECB47A6E // INDEX 4055 -mpfam232 [Terre Meuble Sèche] +mpfam232 [Terre meuble sèche] // HASH_VALUE 2C66EC58D0B28398 // INDEX 4056 -mpfam233 [Sève Modifiée Fraîche] +mpfam233 [Sève modifiée fraîche] // HASH_VALUE A986EC56D0724B98 // INDEX 4057 -mpfam234 [Sève Modifiée Sèche] +mpfam234 [Sève modifiée sèche] // HASH_VALUE E8F814599A97AB5E // INDEX 4058 -mpfam235 [Petit Fossile d'Insecte] +mpfam235 [Petit fossile d'insecte] // HASH_VALUE E509E452D847EF4B // INDEX 4059 -mpfam236 [Grand Fossile d'Insecte] +mpfam236 [Grand fossile d'insecte] // HASH_VALUE 19A8D06DDA666E87 // INDEX 4060 -mpfam237 [Petit Fossile de Plante] +mpfam237 [Petit fossile de plante] // HASH_VALUE D448A066DAF65A91 // INDEX 4061 -mpfam238 [Grand Fossile de Plante] +mpfam238 [Grand fossile de plante] // HASH_VALUE 4F686B8463F3BC8A // INDEX 4062 -mpfam239 [Pigment Rouge] +mpfam239 [Pigment rouge] // HASH_VALUE A422088114E8CFB0 // INDEX 4063 -mpfam240 [Pigment Vert] +mpfam240 [Pigment vert] // HASH_VALUE A82A38112869C8EF // INDEX 4064 -mpfam241 [Pigment Bleue] +mpfam241 [Pigment bleu] // HASH_VALUE 6E78789B61F38456 // INDEX 4065 -mpfam242 [Pigment Jaune] +mpfam242 [Pigment jaune] // HASH_VALUE A292E47A1357B3A9 // INDEX 4066 -mpfam243 [Pigment Noir] +mpfam243 [Pigment noir] // HASH_VALUE 22A41F89225293B3 // INDEX 4067 -mpfam244 [Reste de Goo Fraîche] +mpfam244 [Reste de Goo fraîche]) // HASH_VALUE A0E41787225283A1 // INDEX 4068 -mpfam245 [Reste de Goo Sèche] +mpfam245 [Reste de goo sèche] // HASH_VALUE 59F9C499ED56BF7B // INDEX 4069 -mpfam246 [Petit Champignon] +mpfam246 [Petit champignon] // HASH_VALUE 179A80A3A8F68F6D // INDEX 4070 -mpfam247 [Grand Champignon] +mpfam247 [Grand champignon] // HASH_VALUE E067CB9362928BBE // INDEX 4071 -mpfam248 [Larve d'Insecte Vivant] +mpfam248 [Larve d'insecte vivante] // HASH_VALUE 2CF6A766A9D45E88 // INDEX 4072 -mpfam249 [Céréale Fraîche] +mpfam249 [Céréale fraîche] // HASH_VALUE 2676A75E26145E7E // INDEX 4073 -mpfam250 [Céréale Sèche] +mpfam250 [Céréale séchée] // HASH_VALUE 96E9C87DB0B75BF0 // INDEX 4074 -mpfam251 [Larve d'Insecte Mort] +mpfam251 [Larve d'insecte morte] // HASH_VALUE A2973C664DE267A6 // INDEX 4075 -mpfam252 [Petit Oeuf] +mpfam252 [Petit œuf] // HASH_VALUE E077F05F8B227B9F // INDEX 4076 -mpfam253 [Gros Oeuf] +mpfam253 [Gros œuf] // HASH_VALUE 10694C39EA05B787 // INDEX 4077 -mpfam254 [Miel Frais] +mpfam254 [Miel frais] // HASH_VALUE 0D69143BE904C783 // INDEX 4078 -mpfam255 [Miel Séché] +mpfam255 [Miel séché] // HASH_VALUE 6B196021D546EBAD // INDEX 4079 -mpfam256 [Plante Aromatique Poivrée] +mpfam256 [Plante aromatique poivrée] // HASH_VALUE AEA67BA7A5C283A4 // INDEX 4080 -mpfam257 [Plante Aromatique Epicée] +mpfam257 [Plante aromatique épicée] // HASH_VALUE 185AA878D0C4408E // INDEX 4081 -mpfam258 [Plante Aromatique Amère] +mpfam258 [Plante aromatique amère] // HASH_VALUE D8B0B4647038929A // INDEX 4082 -mpfam259 [Baies Sauvages Fraîches] +mpfam259 [Baie sauvage fraîche] // HASH_VALUE D230B46070389292 // INDEX 4083 -mpfam260 [Baies Sauvages Séchées] +mpfam260 [Baie sauvage séchée] // HASH_VALUE 544A24496CB69F88 // INDEX 4084 -mpfam261 [Petit Fruit] +mpfam261 [Petit fruit] // HASH_VALUE 51EBE053A7F5E375 // INDEX 4085 -mpfam262 [Gros Fruit] +mpfam262 [Gros fruit] // HASH_VALUE 5FA894564A18D478 // INDEX 4086 @@ -17163,7 +17155,7 @@ mpfam294 [Sang de Cray] // HASH_VALUE 1E7594509851946A // INDEX 4118 -mpfam295 [Cheveux de Gibbaï] +mpfam295 [Poils de Gibbaï] // HASH_VALUE EAB7BC6F1959B07C // INDEX 4119 @@ -17207,15 +17199,15 @@ mpfam307 [Cheveux de Cute] // HASH_VALUE 96D8B4E86B08308C // INDEX 4129 -mpfam308 [Viande Contaminée par la Goo] +mpfam308 [Viande contaminée par la Goo] // HASH_VALUE DAE7CC7418A48A7E // INDEX 4130 -mpfam309 [Cocon de Kitin Frais] +mpfam309 [Cocon frais de Kitin] // HASH_VALUE C6F4627AEA7AC45C // INDEX 4131 -mpfam310 [Vieux Cocon de Kitin] +mpfam310 [Vieux cocon de Kitin] // HASH_VALUE 642A6F7062184A93 // INDEX 4132 @@ -17887,7 +17879,7 @@ mpfam481 [Mâchoire de Kinrey] // HASH_VALUE A9F9808499C1EFB1 // INDEX 4299 -mpfam482 [Ligamentde Kinrey] +mpfam482 [Ligament de Kinrey] // HASH_VALUE A49693955D133457 // INDEX 4300 @@ -17939,11 +17931,11 @@ mpfam496 [Dard de Kipee] // HASH_VALUE 1D577F809EC2305B // INDEX 4312 -mpfam497 [Ecorce d'Adriel] +mpfam497 [Écorce d'Adriel] // HASH_VALUE DFA748640F5243A2 // INDEX 4313 -mpfam498 [Oeil d'Arana] +mpfam498 [Œil d'Arana] // HASH_VALUE AAA47F599724B36C // INDEX 4314 @@ -17959,7 +17951,7 @@ mpfam501 [Dent d'Arana] // HASH_VALUE 60582404645C5480 // INDEX 4317 -mpfam502 [Oeil d'Arma] +mpfam502 [Œil d'Arma] // HASH_VALUE 9FF72C8310030760 // INDEX 4318 @@ -17975,7 +17967,7 @@ mpfam505 [Dent d'Arma] // HASH_VALUE 5A34B83C99B32893 // INDEX 4321 -mpfam506 [Oeil de Bawaab] +mpfam506 [Œil de Bawaab] // HASH_VALUE 1228887126F4AC9B // INDEX 4322 @@ -17987,7 +17979,7 @@ mpfam508 [Dent de Bawaab] // HASH_VALUE 5FB640658F825BA5 // INDEX 4324 -mpfam509 [Oeil de Bodoc] +mpfam509 [Œil de Bodoc] // HASH_VALUE EB27D35369E69674 // INDEX 4325 @@ -17999,7 +17991,7 @@ mpfam511 [Dent de Bodoc] // HASH_VALUE 60830C3D6112B489 // INDEX 4327 -mpfam512 [Oeil de Bolobi] +mpfam512 [Œil de Bolobi] // HASH_VALUE EB89A08721425C29 // INDEX 4328 @@ -18019,7 +18011,7 @@ mpfam516 [Dent de Bolobi] // HASH_VALUE 58F6D8661C458FBC // INDEX 4332 -mpfam517 [Oeil de Capryni] +mpfam517 [Œil de Capryni] // HASH_VALUE DB3A705247C9A488 // INDEX 4333 @@ -18091,11 +18083,11 @@ mpfam534 [Résine de Dung] // HASH_VALUE E23714698C1373AA // INDEX 4350 -mpfam535 [Sève d'Enola] +mpfam535 [Sève d'Énola] // HASH_VALUE 6293304FE403DC98 // INDEX 4351 -mpfam536 [Oeil de Frippo] +mpfam536 [Œil de Frippo] // HASH_VALUE AD3AB0882352803B // INDEX 4352 @@ -18123,7 +18115,7 @@ mpfam542 [Ligament de Gingo] // HASH_VALUE 22A6506A50B293B2 // INDEX 4358 -mpfam543 [Oeil de Gnoof] +mpfam543 [Œil de Gnoof] // HASH_VALUE EB359F695805AF85 // INDEX 4359 @@ -18139,11 +18131,11 @@ mpfam546 [Bassin de Gnoof] // HASH_VALUE 2C67AB69EDB67288 // INDEX 4362 -mpfam547 [Torse de Gnoof] +mpfam547 [Trompe de Gnoof] // HASH_VALUE 9508A07FE8445769 // INDEX 4363 -mpfam548 [Mâchoire de Goari] +mpfam548 [Mandibule de Goari] // HASH_VALUE 6DDAA08BDDE54361 // INDEX 4364 @@ -18159,7 +18151,7 @@ mpfam551 [Queue de Goari] // HASH_VALUE 5F33244E60829490 // INDEX 4367 -mpfam552 [Oeil de Gubani] +mpfam552 [Œil de Gubani] // HASH_VALUE 5D277F7D2642346C // INDEX 4368 @@ -18175,7 +18167,7 @@ mpfam555 [Bassin de Gubani] // HASH_VALUE 2A07933FA89864A3 // INDEX 4371 -mpfam556 [Mâchoire de Horncher] +mpfam556 [Mandibule de Horncher] // HASH_VALUE 22038C3C69FA7CAC // INDEX 4372 @@ -18271,7 +18263,7 @@ mpfam579 [Peau de Jugula] // HASH_VALUE 5168448423943F72 // INDEX 4395 -mpfam580 [Mâchoire de Kiban] +mpfam580 [Mandibule de Kiban] // HASH_VALUE 6AD98C895D254366 // INDEX 4396 @@ -18291,7 +18283,7 @@ mpfam584 [Sécrétion de Kidinak] // HASH_VALUE E2985430C2DA3CA2 // INDEX 4400 -mpfam585 [Mâchoire de Kincher] +mpfam585 [Mandibule de Kincher] // HASH_VALUE E708B42CD95A9CA2 // INDEX 4401 @@ -18311,7 +18303,7 @@ mpfam589 [Queue de Kinrey] // HASH_VALUE 52B9549224753F69 // INDEX 4405 -mpfam590 [Mâchoire de Kipee] +mpfam590 [Mandibule de Kipee] // HASH_VALUE 29FAC4895D25435D // INDEX 4406 @@ -18323,7 +18315,7 @@ mpfam592 [Queue de Kipee] // HASH_VALUE E4DA5430C2B8B4B8 // INDEX 4408 -mpfam593 [Mâchoire de Kipesta] +mpfam593 [Mandibule de Kipesta] // HASH_VALUE A698E0719B2AE06A // INDEX 4409 @@ -18343,7 +18335,7 @@ mpfam597 [Griffe de Kipucka] // HASH_VALUE ECDA5430C2B86C98 // INDEX 4413 -mpfam598 [Mâchoire de Kipucka] +mpfam598 [Mandibule de Kipucka] // HASH_VALUE ED29B42C95A9A0AF // INDEX 4414 @@ -18351,7 +18343,7 @@ mpfam599 [Sécrétion de Kipucka] // HASH_VALUE E81A5430C2B8B4B8 // INDEX 4415 -mpfam600 [Mâchoire de Kirosta] +mpfam600 [Mandibule de Kirosta] // HASH_VALUE EB49B42C953A04B9 // INDEX 4416 @@ -18371,11 +18363,11 @@ mpfam604 [Sécrétion de Kizarak] // HASH_VALUE D39A545C83A93483 // INDEX 4420 -mpfam605 [Queueu de Kizarak] +mpfam605 [Queue de Kizarak] // HASH_VALUE 2579D883D7E08FA1 // INDEX 4421 -mpfam606 [Mâchoire de Kizoar] +mpfam606 [Mandibule de Kizoar] // HASH_VALUE A516A85F9E71CC75 // INDEX 4422 @@ -18395,7 +18387,7 @@ mpfam610 [Huile de Koorin] // HASH_VALUE 2333484A66F2F497 // INDEX 4426 -mpfam611 [Oeil de Lumper] +mpfam611 [Œil de Lumper] // HASH_VALUE DB28E88AA8755095 // INDEX 4427 @@ -18403,7 +18395,7 @@ mpfam612 [Bassin de Lumper] // HASH_VALUE 5454A45798142BB2 // INDEX 4428 -mpfam613 [Oeil de Madakam] +mpfam613 [Œil de Madakam] // HASH_VALUE 69B9305FC6D39899 // INDEX 4429 @@ -18423,7 +18415,7 @@ mpfam617 [Dent de Madakam] // HASH_VALUE 1E04D4729A9597AF // INDEX 4433 -mpfam618 [Oeil de Mektoub] +mpfam618 [Œil de Mektoub] // HASH_VALUE 5D2884574898C479 // INDEX 4434 @@ -18435,11 +18427,11 @@ mpfam620 [Bassin de Mektoub] // HASH_VALUE DFA4C8471E23809A // INDEX 4436 -mpfam621 [Oeil de Messab] +mpfam621 [Œil de Messab] // HASH_VALUE 5EA8838BA4422C73 // INDEX 4437 -mpfam623 [Ecorce de Mitexi] +mpfam623 [Écorce de Mitexi] // HASH_VALUE EDB68C3BE6227845 // INDEX 4438 @@ -18463,11 +18455,11 @@ mpfam628 [Peau de Najab] // HASH_VALUE 6173677495675441 // INDEX 4443 -mpfam629 [Noeud en bois de Nita] +mpfam629 [Nœud de bois de Nita] // HASH_VALUE 6207388D8CC2FB5D // INDEX 4444 -mpfam630 [Ecorce de Oath] +mpfam630 [Écorce d'Oath] // HASH_VALUE 273720858C035F74 // INDEX 4445 @@ -18483,7 +18475,7 @@ mpfam634 [Carapace d'Ocyx] // HASH_VALUE 677940252A79583A // INDEX 4448 -mpfam635 [Oeil de Ploderos] +mpfam635 [Œil de Ploderos] // HASH_VALUE 69D84C3D2D471BB5 // INDEX 4449 @@ -18511,7 +18503,7 @@ mpfam641 [Ligament de Ragus] // HASH_VALUE 1EF5E04CE0748C9F // INDEX 4455 -mpfam642 [Oeil de Raspal] +mpfam642 [Œil de Raspal] // HASH_VALUE A5686B9CDEE4844B // INDEX 4456 @@ -18531,7 +18523,7 @@ mpfam646 [Dent de Raspal] // HASH_VALUE 1CA4085A5F0384A8 // INDEX 4460 -mpfam647 [Oeil de Rendor] +mpfam647 [Œil de Rendor] // HASH_VALUE 23F74B9D6223885D // INDEX 4461 @@ -18551,11 +18543,11 @@ mpfam651 [Dent de Rendor] // HASH_VALUE C0DA94845C90BC84 // INDEX 4465 -mpfam652 [Noeud en bois de Scrath] +mpfam652 [Noeud de bois de Scrath] // HASH_VALUE DFE4EC4DA063888E // INDEX 4466 -mpfam653 [Oeil de Shalah] +mpfam653 [Œil de Shalah] // HASH_VALUE E3477787A0B32C52 // INDEX 4467 @@ -18591,11 +18583,11 @@ mpfam661 [Mousse de Stinga] // HASH_VALUE A8034F882306036C // INDEX 4475 -mpfam662 [Noeud en bois de Tansy] +mpfam662 [Noeud de bois de Tansy] // HASH_VALUE 5CB4F45F5D4464AC // INDEX 4476 -mpfam663 [Oeil de Timari] +mpfam663 [Œil de Timari] // HASH_VALUE 1FA74F8BE3734464 // INDEX 4477 @@ -18643,7 +18635,7 @@ mpfam674 [Peau de Vorax] // HASH_VALUE 1DE40C511E63809E // INDEX 4488 -mpfam675 [Oeil de Wombai] +mpfam675 [Œil de Wombai] // HASH_VALUE D548C08766D42091 // INDEX 4489 @@ -18651,15 +18643,15 @@ mpfam676 [Bassin de Wombai] // HASH_VALUE 5D94C47F99C0AC89 // INDEX 4490 -mpfam677 [Epine de Wombai] +mpfam677 [Épine de Wombai] // HASH_VALUE 53C7C48E6565548D // INDEX 4491 -mpfam678 [Torse de Wombai] +mpfam678 [Trompe de Wombai] // HASH_VALUE 6112477993B7344C // INDEX 4492 -mpfam679 [Noeud en bois de Yana] +mpfam679 [Noeud de bois de Yana] // HASH_VALUE E3C7208A49A3E759 // INDEX 4493 @@ -18695,11 +18687,11 @@ mpfam687 [Peau de Yetin] // HASH_VALUE 6C985464645C5480 // INDEX 4501 -mpfam688 [Oeil de Yubo] +mpfam688 [Œil de Yubo] // HASH_VALUE AAF87C462728D80D // INDEX 4502 -mpfam689 [peau de Yubo] +mpfam689 [Peau de Yubo] // HASH_VALUE 26D8908F4DF2FF66 // INDEX 4503 @@ -18735,51 +18727,51 @@ mpfam697 [Atrium] // HASH_VALUE C4DC3462EE367A72 // INDEX 4511 -mpfam698 [Bon de Commande Matis] +mpfam698 [Bon de commande matis] // HASH_VALUE C69CF454EE367A72 // INDEX 4512 -mpfam699 [Bon de Commande Fyros] +mpfam699 [Bon de commande tyros] // HASH_VALUE C09CA47CEE367A5E // INDEX 4513 -mpfam700 [Bon de Commande Zoraï] +mpfam700 [Bon de commande zoraï] // HASH_VALUE 2D5A74825283F762 // INDEX 4514 -mpfam701 [Bon de Commande Tryker] +mpfam701 [Bon de commande tryker] // HASH_VALUE 127B5C8E20709F99 // INDEX 4515 -mpfam702 [Pack Militaire Matis] +mpfam702 [Paquetage militaire matis] // HASH_VALUE 935BD48526009F99 // INDEX 4516 -mpfam703 [Pack Militaire Fyros] +mpfam703 [Paquetage militaire fyros] // HASH_VALUE 10BA7499A3419F8F // INDEX 4517 -mpfam704 [Pack Militaire Zoraï] +mpfam704 [Paquetage militaire zoraï] // HASH_VALUE 2A19E47FCAC3AF99 // INDEX 4518 -mpfam705 [Pack Militaire Tryker] +mpfam705 [Paquetage militaire tryker] // HASH_VALUE 9A3924A3A2D35B50 // INDEX 4519 -mpfam706 [Signe Royal Matis] +mpfam706 [Signe royal matis] // HASH_VALUE 2B38A798A5E4AB8A // INDEX 4520 -mpfam707 [Signe Impérial Fyros] +mpfam707 [Signe impérial fyros] // HASH_VALUE 677857586645DB59 // INDEX 4521 -mpfam708 [Signe Zoraï de Cho] +mpfam708 [Signe théocratique zoraï] // HASH_VALUE AAE8BF99DAE2AFA3 // INDEX 4522 -mpfam709 [Signe de la Fédération Tryker] +mpfam709 [Signe fédéral tryker] // HASH_VALUE 20D8F41C749C1440 // INDEX 4523 @@ -18791,7 +18783,7 @@ mpfam711 [Nodule de Goo] // HASH_VALUE 2C44639BDEB5B06A // INDEX 4525 -mpfam712 [Nano-Bâtisseur] +mpfam712 [Nano-bâtisseur] // HASH_VALUE D4B0AC68EA988C02 // INDEX 4526 @@ -18807,7 +18799,7 @@ mpfam715 [Cristal de Sève] // HASH_VALUE A3070C5ECDD2AFB4 // INDEX 4529 -mpfam716 [Oeuf de Kitin] +mpfam716 [Œuf de Kirin] // HASH_VALUE A3548C5F1D90C493 // INDEX 4530 @@ -18851,375 +18843,375 @@ mpfam726 [Bois d'Almati] // HASH_VALUE EADA64586EB8A428 // INDEX 4540 -mpfam727 [Sève Cristallisée] +mpfam727 [Sève cristallisée] // HASH_VALUE 2DC70065510A8863 // INDEX 4541 -mpfam728 [Ambre Stellaire] +mpfam728 [Ambre extraordinaire] // HASH_VALUE D738546990748C76 // INDEX 4542 -mpfam729 [Carapace d'Aelius Raffinée] +mpfam729 [Carapace d'Aelius raffinée] // HASH_VALUE 57088C6650748C76 // INDEX 4543 -mpfam730 [Résine d'Aelius Raffinée] +mpfam730 [Résine d'Aelius raffinée] // HASH_VALUE 98747867D574ACAD // INDEX 4544 -mpfam731 [Bois d'Aelius Raffiné] +mpfam731 [Bois d'Aelius raffiné] // HASH_VALUE 57B864784C649481 // INDEX 4545 -mpfam732 [Fibre d'Olkern Raffinée] +mpfam732 [Fibre d'Olkern raffinée] // HASH_VALUE 56F8A8744F649481 // INDEX 4546 -mpfam733 [Résine d'Olkern Raffinée] +mpfam733 [Résine d'Olkern raffinée] // HASH_VALUE 1AD4A067CF3494B1 // INDEX 4547 -mpfam734 [Écorce d'Olkern Raffinée] +mpfam734 [Écorce d'Olkern raffinée] // HASH_VALUE D54870698E848075 // INDEX 4548 -mpfam735 [Carapace d'Almati Raffinée] +mpfam735 [Carapace d'Almati raffinée] // HASH_VALUE 5518A8664E848075 // INDEX 4549 -mpfam736 [Résine d'Almati Raffinée] +mpfam736 [Résine d'Almati raffinée] // HASH_VALUE 14E898543ED48C9E // INDEX 4550 -mpfam737 [Boucle d'Almati Raffinée] +mpfam737 [Boucle d'Almati raffinée] // HASH_VALUE 9684946795F488B3 // INDEX 4551 -mpfam738 [Bois d'Almati Raffiné] +mpfam738 [Bois d'Almati raffiné] // HASH_VALUE A9B9DC504768FC70 // INDEX 4552 -mpfam739 [Sève Cristallisée Raffinée] +mpfam739 [Sève cristallisée raffinée] // HASH_VALUE E738D44F020AB06C // INDEX 4553 -mpfam740 [Ambre Stellaire Raffiné] +mpfam740 [Ambre extraordinaire raffiné] // HASH_VALUE 2848681E7CD8B4A0 // INDEX 4554 -mpfam741 [Ronce de Tekorn Modifiée] +mpfam741 [Ronce de Tekorn modifiée] // HASH_VALUE 8EB8403764263B83 // INDEX 4555 -mpfam742 [Liane de Maga Modifiée] +mpfam742 [Liane de Maga modifiée] // HASH_VALUE 29090C1D4C22A099 // INDEX 4556 -mpfam743 [Lichen d'Armilo Modifié] +mpfam743 [Lichen d'Armilo modifié] // HASH_VALUE E84AB8FC0F78A4A3 // INDEX 4557 -mpfam744 [Filament de Greslin Modifié] +mpfam744 [Filament de Greslin modifié] // HASH_VALUE 4F74B8A22528649E // INDEX 4558 -mpfam745 [Ronce de Tekorn Purifiée] +mpfam745 [Ronce de Tekorn purifiée] // HASH_VALUE 1469405666F83484 // INDEX 4559 -mpfam746 [Liane de Maga Purifiée] +mpfam746 [Liane de Maga purifiée] // HASH_VALUE 11C6689EE3289479 // INDEX 4560 -mpfam747 [Lichen d'Armilo Purifié] +mpfam747 [Lichen d'Armilo purifié] // HASH_VALUE C758A09EE619E472 // INDEX 4561 -mpfam748 [Filament de Greslin Purifié] +mpfam748 [Filament de Greslin purifié] // HASH_VALUE E52860481EF4483C // INDEX 4562 -mpfam749 [Suc de Vedice Modifié] +mpfam749 [Suc de Vedice modifié] // HASH_VALUE 0E591C45E1447486 // INDEX 4563 -mpfam750 [Racine de Cheng Modifiée] +mpfam750 [Racine de Cheng modifiée] // HASH_VALUE 664AC8F3A61A3035 // INDEX 4564 -mpfam751 [Gomme de Rubbarn Modifiée] +mpfam751 [Gomme de Rubbarn modifiée] // HASH_VALUE 29E834214D63ACA2 // INDEX 4565 -mpfam752 [Pollen d'Egiros Modifié] +mpfam752 [Pollen d'Egiros modifié] // HASH_VALUE 4E96D47763E88497 // INDEX 4566 -mpfam753 [Suc de Vedice Purifié] +mpfam753 [Suc de Vedice purifié] // HASH_VALUE 97F88F9DA9D89C7B // INDEX 4567 -mpfam754 [Racine de Cheng Purifiée] +mpfam754 [Racine de Cheng purifiée] // HASH_VALUE 03E9FC9A2148DC68 // INDEX 4568 -mpfam755 [Gomme de Rubbarn Purifiée] +mpfam755 [Gomme de Rubbarn purifiée] // HASH_VALUE 12C678A125288C83 // INDEX 4569 -mpfam756 [Pollen d'Egiros Purifié] +mpfam756 [Pollen d'Egiros purifié] // HASH_VALUE 708ADF59E705B4AF // INDEX 4570 -mpfam757 [Peau de Jugula Corrompu] +mpfam757 [Peau de Jugula corrompu] // HASH_VALUE E71AE39D59FAC472 // INDEX 4571 -mpfam758 [Fourrure de Gingo Corrompu] +mpfam758 [Fourrure de Gingo corrompu] // HASH_VALUE 699AABAFD61AC79D // INDEX 4572 -mpfam759 [Peau d'Igara Corrompu] +mpfam759 [Peau d'Igara corrompu] // HASH_VALUE 30578BA266CA0CCD // INDEX 4573 -mpfam760 [Mousse de Psykopla Corrompu] +mpfam760 [Mousse de Psykopla corrompu] // HASH_VALUE EE2BDF59EC5568BA // INDEX 4574 -mpfam761 [Peau de Torbak Corrompu] +mpfam761 [Peau de Torbak corrompu]] // HASH_VALUE 2E7ADF592D95A8B3 // INDEX 4575 -mpfam762 [Soie de Kinrey Corrompu] +mpfam762 [Soie de Kinrey corrompu] // HASH_VALUE AD7A869A56F9C0AB // INDEX 4576 -mpfam763 [Feuille de Cratcha Corrompu] +mpfam763 [Feuille de Cratcha corrompu] // HASH_VALUE 2E7ADF596B559CBF // INDEX 4577 -mpfam764 [Soie de Kizoar Corrompu] +mpfam764 [Soie de Kizoar corrompu] // HASH_VALUE 46B83C9CF0D85AAE // INDEX 4578 -mpfam765 [Peau du grand mugul] +mpfam765 [Peau du Grand Mugul] // HASH_VALUE 6A6B869A59FA98BC // INDEX 4579 -mpfam766 [Sac de Kipesta Corrompu] +mpfam766 [Poche de Kipesta corrompu] // HASH_VALUE EA69E39956DBE466 // INDEX 4580 -mpfam767 [Bourgeon de Jubla Corrompu] +mpfam767 [Bourgeon de Jubla corrompu] // HASH_VALUE 2949529C262B9CC7 // INDEX 4581 -mpfam768 [Carapace de Kincher Corrompu] +mpfam768 [CCarapace de Kincher corrompu] // HASH_VALUE 6E6A8697245934BA // INDEX 4582 -mpfam769 [Chair de Kipucka Corrompu] +mpfam769 [Chair de Kipucka corrompu] // HASH_VALUE 703B86A1A2F9F0B2 // INDEX 4583 -mpfam770 [Dard de Kidinak Corrompu] +mpfam770 [Dard de Kidinak corrompu] // HASH_VALUE 6BDAABA94459E8AF // INDEX 4584 -mpfam771 [Pince de Goari Corrompu] +mpfam771 [Pince de Goari corrompu] // HASH_VALUE EBDBD7595AA99CCF // INDEX 4585 -mpfam772 [Dent de Varinx Corrompu] +mpfam772 [Dent de Varinx corrompu] // HASH_VALUE 703B8697244920BE // INDEX 4586 -mpfam773 [Dard de Kipucka Corrompu] +mpfam773 [Dard de Kipucka corrompu] // HASH_VALUE 6C92E4BC68184AC4 // INDEX 4587 -mpfam774 [Dard de Boss Kitin] +mpfam774 [Dard de Reine Kitin] // HASH_VALUE 6EFBCF9722F5CCB2 // INDEX 4588 -mpfam775 [Carapace de Yelk Corrompu] +mpfam775 [Carapace de Yelk corrompu] // HASH_VALUE 6B3AB3592D95A8AC // INDEX 4589 -mpfam776 [Tête de Kinrey Corrompu] +mpfam776 [Tête de Kinrey corrompu] // HASH_VALUE 6BBA86AB954974B8 // INDEX 4590 -mpfam777 [Tête de Kincher Corrompu] +mpfam777 [Tête de Kincher corrompu] // HASH_VALUE 685B93A15AEBE876 // INDEX 4591 -mpfam778 [Mâchoire de Vorax Corrompu] +mpfam778 [Mâchoire de Vorax corrompu] // HASH_VALUE 256AC7A6A7963869 // INDEX 4592 -mpfam779 [Os d'Yber Corrompu] +mpfam779 [Os d'Yber corrompu] // HASH_VALUE 29E9529E651AC0B9 // INDEX 4593 -mpfam780 [Mâchoire de Kidinak Corrompu] +mpfam780 [Mandibule de Kidinak corrompu] // HASH_VALUE 6BEC935996EAACC9 // INDEX 4594 -mpfam781 [Crête de Timari Corrompu] +mpfam781 [Crête de Timari corrompu] // HASH_VALUE 68EA83B0557A83A6 // INDEX 4595 -mpfam782 [Queue de Najab Corrompu] +mpfam782 [Queue de Najab corrompu] // HASH_VALUE 2E4BCFAD9976B4A9 // INDEX 4596 -mpfam783 [Dent de Ragus Corrompu] +mpfam783 [Dent de Ragus corrompu] // HASH_VALUE 29E952942A6BB0C5 // INDEX 4597 -mpfam784 [Mâchoire de Kipesta Corrompu] +mpfam784 [Mâchoire de Kipesta corrompu] // HASH_VALUE EAC9529C26ACD0C8 // INDEX 4598 -mpfam785 [Carapace de Clopper Corrompu] +mpfam785 [Carapace de Clopper corrompu] // HASH_VALUE 6C7BD359D8D9B0D1 // INDEX 4599 -mpfam786 [Dard de Kizoar Corrompu] +mpfam786 [Dard de Kizoar corrompu] // HASH_VALUE 29F9939C2897FC65 // INDEX 4600 -mpfam787 [Tête de Cray Corrompu] +mpfam787 [Tête de Cray corrompu] // HASH_VALUE E84ACBA1E9B6ABAE // INDEX 4601 -mpfam789 [Résine sombre Corrompue] +mpfam789 [Résine sombre corrompue] // HASH_VALUE 304AEF59AAC57CA7 // INDEX 4602 -mpfam790 [Bois brillant Corrompu] +mpfam790 [Bois brillant corrompu] // HASH_VALUE 281B839E568BD79D // INDEX 4603 -mpfam791 [Ecorce lourde Corrompue] +mpfam791 [Écorce lourde corrompue] // HASH_VALUE 2E4AB3AC188680AD // INDEX 4604 -mpfam792 [Carapace légère Corrompue] +mpfam792 [Carapace légère corrompue] // HASH_VALUE 2C9BC79A1AF56CB5 // INDEX 4605 -mpfam793 [Ambre épaisse Corrompue] +mpfam793 [Ambre épaisse corrompue] // HASH_VALUE E509CBA62F86C876 // INDEX 4606 -mpfam794 [Bois sombre Corrompu] +mpfam794 [Bois sombre corrompu] // HASH_VALUE 2ED79BA5D4D9D8C5 // INDEX 4607 -mpfam795 [Huile instable Corrompue] +mpfam795 [Huile instable corrompue] // HASH_VALUE ED8BC79AD98584B8 // INDEX 4608 -mpfam796 [Ambre solide Corrompue] +mpfam796 [Ambre solide corrompue] // HASH_VALUE AA75A3B56CE5C71D // INDEX 4609 -mpfam797 [mp kitiniere deposit 01] +mpfam797 [Dépôt 01 de MP de kitinière] // HASH_VALUE AA75A3B56CF5C71D // INDEX 4610 -mpfam798 [mp kitiniere deposit 02] +mpfam798 [Dépôt 02 de MP de kitinière] // HASH_VALUE AA75A3B56C05C71D // INDEX 4611 -mpfam799 [mp kitiniere deposit 03] +mpfam799 [Dépôt 03 de MP de kitinière] // HASH_VALUE AA75A3B56C15C71D // INDEX 4612 -mpfam800 [mp kitiniere deposit 04] +mpfam800 [Dépôt 04 de MP de kitinière] // HASH_VALUE AA75A3B56C25C71D // INDEX 4613 -mpfam801 [mp kitiniere deposit 05] +mpfam801 [Dépôt 05 de MP de kitinière] // HASH_VALUE C6EA4BA6B0A5D860 // INDEX 4614 -mpfam802 [peau souple de la reine] +mpfam802 [Peau souple de la Reine] // HASH_VALUE 25C83B586A74EC52 // INDEX 4615 -mpfam803 [ecailles fines de la reine] +mpfam803 [Écailles fines de la Reine] // HASH_VALUE 2A35ACA4862B7BA0 // INDEX 4616 -mpfam804 [petites griffes de la reine] +mpfam804 [Petites griffes de la Reine] // HASH_VALUE 1929B86068082E69 // INDEX 4617 -mpfam805 [cuir flexible de la reine] +mpfam805 [Cuir flexible de la Reine] // HASH_VALUE 2C986ABBD896981A // INDEX 4618 -mpfam806 [cuir brut de la reine] +mpfam806 [Cuir brut de la Reine] // HASH_VALUE A7D852AF16A4AC13 // INDEX 4619 -mpfam807 [soie fine de la reine] +mpfam807 [Soie fine de la Reine] // HASH_VALUE 94E88C0AAEC454A6 // INDEX 4620 -mpfam808 [ecailles rigides de la reine] +mpfam808 [Écailles rigides de la Reine] // HASH_VALUE AF657CB5114A84C5 // INDEX 4621 -mpfam809 [peau épaisse de la reine] +mpfam809 [Peau épaisse de la Reine] // HASH_VALUE 12F85B64EDB48CB3 // INDEX 4622 -mpfam810 [ligaments denses de la reine] +mpfam810 [Ligaments denses de la Reine] // HASH_VALUE E884345C19592FAC // INDEX 4623 -mpfam811 [griffes puissantes de la reine] +mpfam811 [Griffes puissantes de la Reine] // HASH_VALUE A775CCC79128C8C5 // INDEX 4624 -mpfam812 [soie robuste de la reine] +mpfam812 [Soie robuste de la Reine] // HASH_VALUE 5419434D2638A463 // INDEX 4625 -mpfam813 [carapace la reine] +mpfam813 [Carapace de la Reine] // HASH_VALUE AF657CB5114A84C5 // INDEX 4626 -mpfam814 [peau épaisse de la reine] +mpfam814 [Peau épaisse de la Reine] // HASH_VALUE DBB5789F9C74AC9C // INDEX 4627 -mpfam815 [cristal de maraudeur] +mpfam815 [Cristal de Maraudeur] // HASH_VALUE EE30BC8EC2B8CCBA // INDEX 4628 -mpfam816 [cristal de lixie] +mpfam816 [Cristal de Lixie] // HASH_VALUE 1A157C565679C4C3 // INDEX 4629 -mpfam817 [cristal de sirgio] +mpfam817 [Cristal de Sirgio] // HASH_VALUE EB35EC50D9D887A8 // INDEX 4630 -mpfam818 [cristal de pen] +mpfam818 [Cristal de Pei] // HASH_VALUE 996ABCA5556957BF // INDEX 4631 -mpfam819 [cristal des maraudeurs] +mpfam819 [Cristal des Maraudeurs] // HASH_VALUE 62C7348CE738649D // INDEX 4632 -mpgroup0 [Non Défini] +mpgroup0 [Non défini] // HASH_VALUE 1C591877A0875485 // INDEX 4633 @@ -19235,7 +19227,7 @@ mpgroup3 [Boucle] // HASH_VALUE 689C1408689C1408 // INDEX 4636 -mpgroup5 [Ecorce] +mpgroup5 [Écorce] // HASH_VALUE E7761086DC471C7F // INDEX 4637 @@ -19263,7 +19255,7 @@ mpgroup22 [Aliment] // HASH_VALUE 70F0646EEE3AA4A2 // INDEX 4643 -mpgroup23 [Plante aggressive] +mpgroup23 [Plante agressive] // HASH_VALUE EAD6088161260884 // INDEX 4644 @@ -19283,7 +19275,7 @@ mpgroup27 [Créature] // HASH_VALUE 1B098C73E74680A2 // INDEX 4648 -mpgroup28 [Pelage] +mpgroup28 [Fourrure] // HASH_VALUE 5856546C62D45494 // INDEX 4649 @@ -19323,7 +19315,7 @@ mpgroup37 [Papier] // HASH_VALUE 68D8144068D81440 // INDEX 4658 -mpgroup38 [Pack] +mpgroup38 [Paquet] // HASH_VALUE A947749623D75C92 // INDEX 4659 @@ -19335,15 +19327,15 @@ mpgroup40 [Avant-poste] // HASH_VALUE 2F48C366D8E8DC9B // INDEX 4661 -mpgroup41 [Lande Corrompue] +mpgroup41 [Lande corrompue] // HASH_VALUE ABE9B0A7EA68D4B4 // INDEX 4662 -mpgroup42 [kitiniere] +mpgroup42 [Kitinière] // HASH_VALUE 533988971905B457 // INDEX 4663 -mpSource [Source de Matières Premières] +mpSource [Source de matières premières] // HASH_VALUE 209854486418F434 // INDEX 4664 @@ -19383,15 +19375,15 @@ uittInvSlots [@{6F6F}Emplacements @{FFFF}utilisés / maximum] // HASH_VALUE 0746E4996B666A49 // INDEX 4673 -uiBotChatSkillPointCost [Points de Compétences : ] +uiBotChatSkillPointCost [Points de compétences : ] // HASH_VALUE 993AC4412A485333 // INDEX 4674 -uiBotChatSkillPointCostNotReceived [Coût en Point de Comp. non reçu.] +uiBotChatSkillPointCostNotReceived [Coût en points de comp. non reçus] // HASH_VALUE 6BC7037FE6E85069 // INDEX 4675 -uittForageTime [Temps d'Extraction Disponible] +uittForageTime [Temps restant pour l'extraction] // HASH_VALUE 6BBAD4ABE2843044 // INDEX 4676 @@ -19403,7 +19395,7 @@ uittForageLife [Vie de la Source] // HASH_VALUE E295EB9AA4E7D8A0 // INDEX 4678 -uittForageDanger [Risque d'Extraction] +uittForageDanger [Risque pendant l'extraction] // HASH_VALUE E1496390D590684D // INDEX 4679 @@ -19419,15 +19411,15 @@ uiForageToolMissing [Vous n'avez pas d'outil d'extraction.] // HASH_VALUE BD75E475F0864D50 // INDEX 4682 -uiExtractionPhraseMissing [Vous n'avez pas d'expression en mémoire pour l'extraction.] +uiExtractionPhraseMissing [Vous n'avez pas d'action d'extraction dans votre barre d'actions.] // HASH_VALUE 28897B5DEC77428A // INDEX 4683 -uimEnterStable [Entrer dans l'Etable] +uimEnterStable [Entrer dans l'étable] // HASH_VALUE B027335E30461E77 // INDEX 4684 -uimLeaveStable [Sortir de l'Etable] +uimLeaveStable [Sortir de l'étable] // HASH_VALUE AA489885A0C73C81 // INDEX 4685 @@ -19439,7 +19431,7 @@ uiAnimalsTitle [ANIMAUX] // HASH_VALUE BAC7944ECF89AE06 // INDEX 4687 -uittSatiety [Rouge : Vie / Orange : Volume / Blanc : Satiété. Si cette barre tombe à zéro, l'animal a faim.] +uittSatiety [Rouge : vie / Orange : volume / Blanc : satiété. Si cette barre tombe à zéro, l'animal a faim.] // HASH_VALUE 2EE6A09C38655ED5 // INDEX 4688 @@ -19553,87 +19545,87 @@ uiPABagTitleMount3 [MONTURE 4] // HASH_VALUE BAAEC025887F6AE3 // INDEX 4714 -uiPABagTitleDemon0 [DEMON 1] +uiPABagTitleDemon0 [DÉMON 1] // HASH_VALUE FAAEC025888F6EE4 // INDEX 4715 -uiPABagTitleDemon1 [DEMON 2] +uiPABagTitleDemon1 [DÉMON 2] // HASH_VALUE 3AAEC025889F72E5 // INDEX 4716 -uiPABagTitleDemon2 [DEMON 3] +uiPABagTitleDemon2 [DÉMON 3] // HASH_VALUE 7BAEC02588AF76E6 // INDEX 4717 -uiPABagTitleDemon3 [DEMON 4] +uiPABagTitleDemon3 [DÉMON 4] // HASH_VALUE E6E73C38AB06C7B5 // INDEX 4718 -uiAnimalDetailedList [Liste Détaillée] +uiAnimalDetailedList [Liste détaillée] // HASH_VALUE 87C857A09C006C51 // INDEX 4719 -uiAnimalInStable [Votre animal est dans une étable] +uiAnimalInStable [Votre animal est dans une étable.] // HASH_VALUE 8521C8AAAA534058 // INDEX 4720 -uiAnimalTooFar [Votre animal est trop loin] +uiAnimalTooFar [Votre animal est trop loin.] // HASH_VALUE 48D0144030082414 // INDEX 4721 -uimMtPaPacker0 [MEKTOUB 1] +uimMtPaPacker0 [Mekboub 1] // HASH_VALUE 48D0144030082414 // INDEX 4722 -uimMtPaPacker1 [MEKTOUB 2] +uimMtPaPacker1 [Mekboub 2] // HASH_VALUE 48D0144030082414 // INDEX 4723 -uimMtPaPacker2 [MEKTOUB 3] +uimMtPaPacker2 [Mekboub 3] // HASH_VALUE 48D0144034082414 // INDEX 4724 -uimMtPaPacker3 [MEKTOUB 4] +uimMtPaPacker3 [Mekboub 4] // HASH_VALUE FC801C3F0E30B6F2 // INDEX 4725 -uimMtPaMount0 [MONTURE 1] +uimMtPaMount0 [Monture 1] // HASH_VALUE 3C801C3F0E40BAF3 // INDEX 4726 -uimMtPaMount1 [MONTURE 2] +uimMtPaMount1 [Monture 2] // HASH_VALUE 7C801C3F0E50BEF4 // INDEX 4727 -uimMtPaMount2 [MONTURE 3] +uimMtPaMount2 [Monture 3] // HASH_VALUE BD801C3F0E60C2F5 // INDEX 4728 -uimMtPaMount3 [MONTURE 4] +uimMtPaMount3 [Monture 4] // HASH_VALUE BAAEC025887F6AE3 // INDEX 4729 -uimMtPaDemon0 [DEMON 1] +uimMtPaDemon0 [Démon 1] // HASH_VALUE FAAEC025888F6EE4 // INDEX 4730 -uimMtPaDemon1 [DEMON 2] +uimMtPaDemon1 [Démon 2] // HASH_VALUE 3AAEC025889F72E5 // INDEX 4731 -uimMtPaDemon2 [DEMON 3] +uimMtPaDemon2 [Démon 3] // HASH_VALUE 7BAEC02588AF76E6 // INDEX 4732 -uimMtPaDemon3 [DEMON 4] +uimMtPaDemon3 [Démon 4] // HASH_VALUE CB21A82C8BA1B420 // INDEX 4733 -uimMtGuild [GUILDE] +uimMtGuild [Guilde] // HASH_VALUE 4CD0F4484CD0F448 // INDEX 4734 -uimMtRoom [PIECE] +uimMtRoom [Pièce] // HASH_VALUE E8284490A3184481 // INDEX 4735 @@ -19657,39 +19649,39 @@ uittLmPA3 [Mektoub 4] // HASH_VALUE 1B739F2919A2CAF5 // INDEX 4740 -uittLMTeam0 [Equipe 0] +uittLMTeam0 [Équipe 0] // HASH_VALUE 5B73A32959A2D2F5 // INDEX 4741 -uittLMTeam1 [Equipe 1] +uittLMTeam1 [Équipe 1] // HASH_VALUE 9B73A72999A2DAF5 // INDEX 4742 -uittLMTeam2 [Equipe 2] +uittLMTeam2 [Équipe 2] // HASH_VALUE DB73AB29D9A2E2F5 // INDEX 4743 -uittLMTeam3 [Equipe 3] +uittLMTeam3 [Équipe 3] // HASH_VALUE 1C73AF291AA2EAF5 // INDEX 4744 -uittLMTeam4 [Equipe 4] +uittLMTeam4 [Équipe 4] // HASH_VALUE 5C73B3295AA2F2F5 // INDEX 4745 -uittLMTeam5 [Equipe 5] +uittLMTeam5 [Équipe 4] // HASH_VALUE 9C73B7299AA2FAF5 // INDEX 4746 -uittLMTeam6 [Equipe 6] +uittLMTeam6 [Équipe 6] // HASH_VALUE DC73BB29DAA202F5 // INDEX 4747 -uittLMTeam7 [Equipe 7] +uittLMTeam7 [Équipe 7] // HASH_VALUE CBD0C4394911E831 // INDEX 4748 -uiCP_Infos [INFOS] +uiCP_Infos [Infos] // HASH_VALUE C6F18C2E86B2601C // INDEX 4749 @@ -19701,11 +19693,11 @@ uiCP_title2 [DESTINATION] // HASH_VALUE 8931D8390A61A419 // INDEX 4751 -uiCP_selection [SELECTION] +uiCP_selection [SÉLECTION] // HASH_VALUE 4050240C4CD09450 // INDEX 4752 -uiCP_creation [CREATION] +uiCP_creation [CRÉATION] // HASH_VALUE 908237408323573D // INDEX 4753 @@ -19721,11 +19713,11 @@ uiCharSel_Del [SUPPRIMER] // HASH_VALUE 4CDEF4FCC8CFC021 // INDEX 4756 -uiCharSel_CreateNew [CREER NOUVEAU] +uiCharSel_CreateNew [CRÉER NOUVEAU] // HASH_VALUE C5E150410422803E // INDEX 4757 -uiCharSel_CreateRan [ALEATOIRE] +uiCharSel_CreateRan [Aléatoire] // HASH_VALUE 5450544454505444 // INDEX 4758 @@ -19737,15 +19729,15 @@ uiCharSel_DelChar [Souhaitez-vous vraiment supprimer ce personnage ?] // HASH_VALUE 4411542844915438 // INDEX 4760 -uiCP_Delete_yes [SUPPRIMER] +uiCP_Delete_yes [OUI] // HASH_VALUE 0350481983A0741B // INDEX 4761 -uiCP_Delete_no [ANNULER] +uiCP_Delete_no [NON] // HASH_VALUE 4770882B09C3F034 // INDEX 4762 -uiCP_Menu_1 [CIVILISATIONS] +uiCP_Menu_1 [CIVILISATION] // HASH_VALUE 0F93D8438C432435 // INDEX 4763 @@ -19765,39 +19757,39 @@ uiCP_Menu_5 [ACTIONS] // HASH_VALUE 911214414E53083A // INDEX 4767 -uiCP_Specie_Fyros [FYROS] +uiCP_Specie_Fyros [Fyros] // HASH_VALUE 8BC1D82A0A62AC3D // INDEX 4768 -uiCP_Specie_Matis [MATIS] +uiCP_Specie_Matis [Matis] // HASH_VALUE CCC308468E730837 // INDEX 4769 -uiCP_Specie_Tryker [TRYKER] +uiCP_Specie_Tryker [Tryker] // HASH_VALUE 09D214334D52D036 // INDEX 4770 -uiCP_Specie_Zorai [ZORAÏ] +uiCP_Specie_Zorai [Zoraï] // HASH_VALUE 4410143444101434 // INDEX 4771 -uiCP_Sex_Male [HOMME] +uiCP_Sex_Male [Homin] // HASH_VALUE 42D044254360442B // INDEX 4772 -uiCP_Sex_Female [FEMME] +uiCP_Sex_Female [Homine] // HASH_VALUE 1053D0430C430C3D // INDEX 4773 -uiCP_Result [RESULTAT] +uiCP_Result [Résultat] // HASH_VALUE 64CA8C8CC4D27CB0 // INDEX 4774 -uiCP_BP1 [Spécialisation: ] +uiCP_BP1 [Spécialisation : ] // HASH_VALUE CA52A40E2CF4D41C // INDEX 4775 -uiCP_BP_Des [DETAILS DU CONTENU :] +uiCP_BP_Des [DÉTAILS DU CONTENU] ? // HASH_VALUE 4971BF2A0BB15634 // INDEX 4776 @@ -19837,125 +19829,125 @@ uiCP_Pack [CONTENU DU PACK D'ACTIONS :] // HASH_VALUE C881A032CB318823 // INDEX 4785 -uiCP_Refugee [REFUGIE] +uiCP_Refugee [Réfugié(e)] // HASH_VALUE 4C71D03587DFB4F6 // INDEX 4786 -uiCP_Fight1 [COMBATTANT DEBUTANT] +uiCP_Fight1 [Combattant débutant] // HASH_VALUE 8A4FC41DCBB1B8FE // INDEX 4787 -uiCP_Fight2 [APPRENTI-COMBATTANT] +uiCP_Fight2 [Apprenti combattant] // HASH_VALUE 44C1D825099ED312 // INDEX 4788 -uiCP_Magic1 [MAGICIEN DEBUTANT] +uiCP_Magic1 [Magie débutant] // HASH_VALUE 077FAC1BC3D2171B // INDEX 4789 -uiCP_Magic2 [APPRENTI-MAGICIEN] +uiCP_Magic2 [Apprenti mage] // HASH_VALUE 0801C8344A3FB4F6 // INDEX 4790 -uiCP_Forage1 [FOREUR DEBUTANT] +uiCP_Forage1 [Foreur débutant] // HASH_VALUE 8A4FC41D4AA1E404 // INDEX 4791 -uiCP_Forage2 [APPRENTI-FOREUR] +uiCP_Forage2 [Apprenti foreur] // HASH_VALUE 4C51B83C4570A8F6 // INDEX 4792 -uiCP_Craft1 [ARTISAN DEBUTANT] +uiCP_Craft1 [Artisan débutant] // HASH_VALUE C94FC41D4A229407 // INDEX 4793 -uiCP_Craft2 [APPRENTI-ARTISAN] +uiCP_Craft2 [Apprenti artisan] // HASH_VALUE 4AF0AC2BC6B1B029 // INDEX 4794 -uiCP_JOB1 [COMBAT] +uiCP_JOB1 [Combat] // HASH_VALUE 43F0641AC6906C20 // INDEX 4795 -uiCP_JOB2 [MAGIE] +uiCP_JOB2 [Magie] // HASH_VALUE C422942547616C26 // INDEX 4796 -uiCP_JOB3 [EXTRACTION] +uiCP_JOB3 [Extraction] // HASH_VALUE 8AD1AC2F45B2C01E // INDEX 4797 -uiCP_JOB4 [ARTISANAT] +uiCP_JOB4 [Artisanat] // HASH_VALUE 49697FD959E95C22 // INDEX 4798 -uiCP_Res_F [- Spécialisation Combat] +uiCP_Res_F [- Spécialisation en combat] // HASH_VALUE 25201B0C55244C2F // INDEX 4799 -uiCP_Res_M [- Spécialisation Magie] +uiCP_Res_M [- Spécialisation en magie] // HASH_VALUE 8A698BD959F87421 // INDEX 4800 -uiCP_Res_G [- Spécialisation Forage] +uiCP_Res_G [- Spécialisation en forage] // HASH_VALUE 9965FB1A6640C019 // INDEX 4801 -uiCP_Res_C [- Spécialisation Artisanat] +uiCP_Res_C [- Spécialisation en artisanat] // HASH_VALUE 2E07FBEF9EC2E674 // INDEX 4802 uiCP_Job_F1 [1- Dague\n - 2- Action Attaque Précise 1] + 2 - Action Attaque précise 1] // HASH_VALUE 40E73E605EC2B540 // INDEX 4803 -uiCP_Job_M1 [1- Amplificateur Magique lvl 10\n - 2- Action Dégât d'Acide 1] +uiCP_Job_M1 [1 - Amplificateur magique de niveau 10\n + 2 - Action Dégât d'Acide 1] // HASH_VALUE 5A7A17E4438FD999 // INDEX 4804 -uiCP_Job_G1 [1- Outil d'Extraction\n - 2- Action Extraction de Base] +uiCP_Job_G1 [1 - Pioche\n + 2 - Action Extraction de base] // HASH_VALUE 6BF722C24BAB80F0 // INDEX 4805 -uiCP_Job_C1 [1- Outil de Création d'Armure\n - 2- 50 Matières Premières Génériques de qualité 10\n - 3- 1ère Action pour Créer une Armure de votre Race\n - 4- Plan de Création de Bottes] +uiCP_Job_C1 [1 - Outil de création d'armure\n + 2 - 50 Matières premières génériques de qualité 10\n + 3 - 1e action pour créer une armure de votre race\n + 4 - Plan de création de bottes] // HASH_VALUE AE336402F917F9B6 // INDEX 4806 uiCP_Job_F2 [1- Dague\n - 2- Action Attaque Précise 1\n - 3- Action Coup Puissant 1] + 2 - Action Attaque précise 1\n + 3 - Action Coup puissant 1] // HASH_VALUE ED1E72C4E8AFEB0A // INDEX 4807 -uiCP_Job_M2 [1- Amplificateur Magique lvl 10\n - 2- Action Dégât d'Acide 1\n - 3- Action Peur 1] +uiCP_Job_M2 [1 - Amplificateur magique de niveau 10\n + 2 - Action Dégât d'Acide 1\n + 3 - Action Peur 1] // HASH_VALUE A99CAAD8499430C9 // INDEX 4808 -uiCP_Job_G2 [1- Outil d'Extraction\n - 2- Action Extraction de Base\n - 3- Action Prospection de Base] +uiCP_Job_G2 [1 - Pioche\n + 2 - Action Extraction de base\n + 3 - Action Prospection de base] // HASH_VALUE 886490FD3F0A7D2F // INDEX 4809 -uiCP_Job_C2 [1- Outil de Création d'Armure\n - 2- 100 Matières Premières Génériques de qualité 10\n - 3- 1ère Action pour Créer une Armure de votre Race\n - 4- Plan de Création de Bottes\n - 5- Plan de Création de Gants] +uiCP_Job_C2 [1 - Outil de Création d'armure\n + 2 - 100 Matières premières génériques de qualité 10\n + 3 - 1e action pour créer une armure de votre race\n + 4 - Plan de création de bottes\n + 5 - Plan de création de gants] // HASH_VALUE 4630296EDB43AACF // INDEX 4810 uiCP_Name_Enter [Saisissez un nom.\n \n - Chaque personnage dans Ryzom a un nom unique. Ce nom vous permet de reconnaître les joueurs avec lesquels vous jouez ou discutez. Vous serez amenés à saisir votre nom ici jusqu'à ce que vous choisissiez un nom qui est disponible sur le serveur que vous avez sélectionné. Votre nom doit être composé d'un seul mot utilisant les lettres de A à Z, sans accents, espaces, chiffres ou caractères spéciaux, qui sont interdits.\n + Chaque personnage dans Ryzom a un nom unique. Ce nom vous permet de reconnaître les personnages avec lesquels vous jouez ou discutez. Saisissez votre nom ici. S'il est déjà utilisé sur le serveur, vous devrez en choisir un autre. Votre nom doit être composé d'un seul mot utilisant les lettres de A à Z, sans accent, espace, chiffre ou caractère spécial, qui sont interdits.\n ] // HASH_VALUE 0350481983A0741B @@ -19968,7 +19960,7 @@ uiCP_Name_Submit [VALIDER] // HASH_VALUE D2D9AC68D669F823 // INDEX 4813 -uiCP_Name_Invalid [Nom Entré Non Valide] +uiCP_Name_Invalid [Nom entré non valide] // HASH_VALUE 0000000000000000 // INDEX 4814 @@ -19976,11 +19968,11 @@ uiLocation_ [] // HASH_VALUE 5850C44054D0E480 // INDEX 4815 -uiLocation_Play [JOUER MAINTENANT] +uiLocation_Play [Jouer maintenant] // HASH_VALUE 1281FCF6912F10F6 // INDEX 4816 -uiLocation_Back [JOUER PLUS TARD] +uiLocation_Back [Jouer plus tard] // HASH_VALUE E0F51B6868143202 // INDEX 4817 @@ -20017,55 +20009,55 @@ uitabPacker3 [Mektoub 4] // HASH_VALUE 0B2190278A40A02A // INDEX 4825 -uiInfos_Close [FERMER] +uiInfos_Close [Fermer] // HASH_VALUE 220A13D6592A98DD // INDEX 4826 -uiCharSel_Infos1 [Infos Sélection Personnage - Non Vide] +uiCharSel_Infos1 [Infos de sélection du personnage - non vide] // HASH_VALUE 05035E0A6EEA905B // INDEX 4827 -uiCharSel_Infos2 [Infos Sélection Personnage - Vide] +uiCharSel_Infos2 [Infos de sélection du personnage - vide] // HASH_VALUE 2759803D28F2E89E // INDEX 4828 -uiLocation_Infos [Infos Destination] +uiLocation_Infos [Infos destination] // HASH_VALUE 9575E0651BAA9CB0 // INDEX 4829 -uiAppear_Infos1 [Description de la Civilisation] +uiAppear_Infos1 [Description de la civilisation] // HASH_VALUE EAF7E034151CDF60 // INDEX 4830 -uiAppear_Infos2 [Infos Aspect - Sexe] +uiAppear_Infos2 [Infos aspect - sexe] // HASH_VALUE 202A6B904A91FB57 // INDEX 4831 -uiAppear_Infos3 [Infos Aspect - Corps] +uiAppear_Infos3 [Infos aspect - corps] // HASH_VALUE 20E967824B91FB57 // INDEX 4832 -uiAppear_Infos4 [Infos Aspect - Visage] +uiAppear_Infos4 [Infos aspect - visage] // HASH_VALUE ACA9C0825FFEEF0F // INDEX 4833 -uiAppear_Infos5 [Infos Aspect - Actions] +uiAppear_Infos5 [Infos aspect - actions] // HASH_VALUE 4402F8023CD1EC0F // INDEX 4834 -uiWebOnQuit [REPONDRE AU QUESTIONNAIRE] +uiWebOnQuit [Répondre au questionnaire] // HASH_VALUE E1C9F277D15BECEE // INDEX 4835 uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n \n - Vérité, honneur et discipline sont les valeurs prisées par tous les Fyros de souche ! Nous sommes les champions du désert et nous respectons un code strict de l'honneur. Nous sommes les guerriers du savoir et nous avons fait serment de poursuivre à jamais notre quête de la vérité derrière le Dragon du Mythe. Ni les Lois de Jena ni les interdictions de la Karavan ne nous empêcherons de creuser dans les entrailles d'Atys, desquelles nous avons déjà tiré de nombreuses reliques aussi mystérieuses que maléfiques.\n + Vérité, honneur et discipline sont les valeurs prisées par tous les Fyros de souche ! Nous sommes les champions du Désert et nous respectons un code strict de l'honneur. Nous sommes les guerriers du savoir et nous avons fait serment de poursuivre à jamais notre quête de la vérité derrière le Dragon du Mythe. Ni les Lois de Jena ni les interdictions de la Karavan ne nous empêcherons de creuser dans les entrailles d'Atys, desquelles nous avons déjà tiré de nombreuses reliques aussi mystérieuses que maléfiques.\n \n - Nous sommes les gardiens des régions les plus fertiles. En effet personne d'autres que nous n'a eu assez de courage pour reconstruire ses villes dans le désert ardent où le Dragon risque de refaire surface.\n + Nous sommes les gardiens des régions les plus fertiles. En effet personne d'autres que nous n'a eu assez de courage pour reconstruire ses villes dans le Désert Ardent où le Dragon risque de refaire surface.\n \n Du haut de ces dunes hostiles, nous allons rebâtir notre nouvel Empire, le rendre plus fort et forger notre alliance avec les Kamis dont nous utilisons fièrement la magie. Nous aspirons également à développer davantage nos connaissances sur la fabrication d'outils et d'armes forgés par le feu pour accompagner notre quête de la vérité.\n \n - Si tu es vif et juste, rejoins nos rangs homin. Un Empire t'attend !\n + Si tu es vif et juste, rejoins nos rangs, homin ! Un Empire t'attend !\n \n Maintenant, si tu as des questions...\n \n @@ -20074,13 +20066,13 @@ uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n Tu es un jeune réfugié homin. Tu as courageusement entrepris le long et périlleux voyage depuis les terres d'antan pour atteindre ces nouvelles terres sur lesquelles nous avons commencé à reconstruire notre nouvel Empire. Lorsque tu te seras suffisamment entraîné, tu pourras utiliser tes compétences à bon escient auprès de notre Empereur et nous aider à rebâtir notre civilisation.\n \n Qui sont mes ancêtres ?\n - Par l'épée et par le feu, nos ancêtres ont forgé le plus puissant empire de l'histoire. Honore leur mémoire tant que l'air emplira tes poumons ! Mais le fruit de leur travail a été détruit par les grandes invasions de kitins. Tes parents, et leurs parents, ont eu beaucoup de chance d'échapper au massacre. Durant de nombreuses années, ils ont lutté pour survivre dans les régions sauvages d'Atys où tu as été élevé. Ils ont fait preuve d'un grand courage en te poussant à prendre la longue route menant à ton peuple. Maintenant que tu nous as trouvé, tu dois te montrer digne de leur courage. Il a fallu quarante quatre années de sang et de sueur pour rebâtir les fondations de notre nouvel Empire, ta génération doit maintenant l'élever au plus haut.\n + Par l'épée et par le feu, nos ancêtres ont forgé le plus puissant Empire de l'histoire. Honore leur mémoire tant que l'air emplira tes poumons ! Mais le fruit de leur travail a été détruit par les grandes invasions de kitins. Tes parents, et leurs parents, ont eu beaucoup de chance d'échapper au massacre. Durant de nombreuses années, ils ont lutté pour survivre dans les régions sauvages d'Atys où tu as été élevé. Ils ont fait preuve d'un grand courage en te poussant à prendre la longue route menant à ton peuple. Maintenant que tu nous as trouvé, tu dois te montrer digne de leur courage. Il a fallu quarante quatre années de sang et de sueur pour rebâtir les fondations de notre nouvel Empire, ta génération doit maintenant l'élever au plus haut.\n \n Qui est notre chef ?\n - Dexton est notre Empereur devant la loi, tu lui dois allégeance. Ses ordres ne peuvent être débattus que dans les hautes sphères. A moins d'avoir atteint un certain rang, tu ne les contesteras pas, ne l'oublie jamais, jeune homin ! Tu répondras aux ordres impériaux avec succès ou tu périras en essayant, à moins que tu ne ternisses volontairement le nom de tes ancêtres. Dexton s'est entouré des meilleurs pour le conseiller, Abycus Zekops et Kyla Dyntheus sont ses sénateurs.\n + Lykos est notre Empereur devant la loi, tu lui dois allégeance. Ses ordres ne peuvent être débattus que dans les hautes sphères. A moins d'avoir atteint un certain rang, tu ne les contesteras pas, ne l'oublie jamais, jeune homin ! Tu répondras aux ordres impériaux avec succès ou tu périras en essayant, à moins que tu ne ternisses volontairement le nom de tes ancêtres. Lykos s'est entouré des meilleurs pour le conseiller, Dios Apotheps, Lyan Cexius et Ibiphan Dynix sont ses sénateurs.\n \n En quoi croyons-nous ?\n - Nous croyons en l'énergie d'Atys, l'énergie qui emplit chaque être doté d'une vie et d'une conscience. Selon les Zoraïs, les Kamis sont une manifestation de cette grande énergie créatrice du monde qu'ils nomment Ma-duk. Même si nous refusons d'adhérer aveuglément à leurs enseignements, au cours de ces dernières années nous nous sommes rapprochés des Kamis pour échapper aux sanctions de la Karavan sur l'exploration minière et souterraine. Aux Kamis, nous devons tout du moins notre loyauté à défaut de notre foi.\n + Nous croyons en l'énergie d'Atys, l'énergie qui emplit chaque être doté d'une vie et d'une conscience. Selon les Zoraïs, les Kamis sont une manifestation de cette grande énergie créatrice du monde qu'ils nomment Ma-Duk. Même si nous refusons d'adhérer aveuglément à leurs enseignements, au cours de ces dernières années nous nous sommes rapprochés des Kamis pour échapper aux sanctions de la Karavan sur l'exploration minière et souterraine. Aux Kamis, nous devons tout du moins notre loyauté à défaut de notre foi.\n \n Quelles sont nos valeurs ?\n Ta vie doit reposer sur les quatre piliers qui maintiennent notre Empire :\n @@ -20089,7 +20081,7 @@ uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n L'Honneur est le second pilier.\n Laisse-toi guider par l'honneur en toute situation. Ne te laisse pas envahir par des sentiments inutiles, aussi élevé le gain potentiel soit-il. Et souviens-toi, une mort honorable vaut bien mieux qu'une existence vile.\n La Discipline est le troisième pilier.\n - L'empire fyros existe grâce à la chaîne d'allégeance qui nous relie à l'Empereur, du plus jeune novice au général le plus récompensé. Tout un chacun doit faire preuve d'allégeance à un commandement supérieur. Il suffit d'un Fyros indiscipliné pour rompre le lien et ainsi menacer l'Empire tout entier.\n + L'empire fyros existe grâce à la chaîne d'allégeance qui nous relie à l'Empereur, du plus jeune novice au Général le plus récompensé. Tout un chacun doit faire preuve d'allégeance à un commandement supérieur. Il suffit d'un Fyros indiscipliné pour rompre le lien et ainsi menacer l'Empire tout entier.\n La Justice est le quatrième pilier.\n L'Empereur est notre chef suprême, même s'il est soumis aux lois décrétées par nos ancêtres. Du plus puissant au plus humble, nous respectons les lois sans détour. En vérité, ce n'est pas le Chef Impérial mais les Lois Impériales qui dictent notre conduite.\n \n @@ -20110,23 +20102,23 @@ uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n \n Qui sont nos amis ?\n Depuis le Traité de Paix signé à Fairhaven, nous sommes en paix avec les autres peuples homins. Néanmoins, de nombreuses cicatrices font foi de l'instabilité passée, et nos relations varient selon les civilisations.\n - Les Zoraïs : Au cours des années, les Zoraïs ont fait preuve une fois de plus de leur loyauté et de leur amitié à l'égard de notre peuple. Qui plus est, nous tenons tous deux les Kamis dans notre coeur et partageons une aversion profonde pour la Karavan.\n - Les Trykers : Nous ne comptons plus les fois où nous avons essayé de prendre les Trykers sous notre aile protectrice, mais ils se montrent trop chaotiques et frivoles pour une amitié durable. Aujourd'hui plus que jamais nous devons prendre garde à ses petits homins capricieux car ils se sont rangés aux côtés des Matis. Ils vénèrent tous deux la déesse de la Karavan.\n - Les Matis : Les Matis sont nos ennemis jurés. Ils sont indignes de confiance. Nous n'adhérons pas à leur sens de la justice qui s'articule autour de la monarchie et des Lois de Jena. Même en ces temps de paix, nous devons rester vigilants de crainte qu'ils se liguent contre nous.\n - Parmi les tribus amies, citons Les Saigneurs de Racines, Les Kitiniers, Les Pyromanciennes, Les Veilleurs, Les Chasseurs de Frahars, Les Dresseurs d'Eau, Les Premiers Déserteurs, Les Mercenaires Ecarlates, Les Puisatiers, La Sève Sacrée.\n + Les Zoraïs : au cours des années, les Zoraïs ont fait preuve une fois de plus de leur loyauté et de leur amitié à l'égard de notre peuple. Qui plus est, nous tenons tous deux les Kamis dans notre coeur et partageons une aversion profonde pour la Karavan.\n + Les Trykers : nous ne comptons plus les fois où nous avons essayé de prendre les Trykers sous notre aile protectrice, mais ils se montrent trop chaotiques et frivoles pour une amitié durable. Aujourd'hui plus que jamais nous devons prendre garde à ses petits homins capricieux car ils se sont rangés aux côtés des Matis. Ils vénèrent tous deux la déesse de la Karavan.\n + Les Matis : les Matis sont nos ennemis jurés. Ils sont indignes de confiance. Nous n'adhérons pas à leur sens de la justice qui s'articule autour de la monarchie et des Lois de Jena. Même en ces temps de paix, nous devons rester vigilants de crainte qu'ils se liguent contre nous.\n + Parmi les tribus amies, citons Les Saigneurs de Racines, Les Kitiniers, Les Pyromanciennes, Les Veilleurs, Les Chasseurs de Frahars, Les Dresseurs d'Eau, Les Premiers Déserteurs, Les Mercenaires Écarlates, Les Puisatiers, La Sève Sacrée.\n \n Qui sont nos ennemis ?\n - - La Karavan : Elle s'oppose à nos recherches sur la vérité. Elle est indigne de confiance.\n - - Les Kitins : Ces gigantesques insectes ont massacré des milliers de Fyros et dévasté notre grand Empire sur les terres d'antan.\n - - Le Dragon du mythe : Depuis des siècles, nous recherchons la vérité derrière le Dragon de la légende. Ce sont nos excavations dans les entrailles d'Atys, où il se dit que le dragon repose, qui ont entraîné en premier lieu le châtiment de la Karavan. Nous creuserons jusqu'à ce que lumière soit faite sur la vérité.\n - - Parmi les tribus ennemies, citons Les Sèves Sèches, Les Cancrelats, Les Chlorogoos, Les Sans Loi, Les Ecorchés, Les Renégats, Les Frères de la Lagune, Les Tuteurs, Les Dryades.\n + - La Karavan : elle s'oppose à nos recherches sur la vérité. Elle est indigne de confiance.\n + - Les Kitins : ces gigantesques insectes ont massacré des milliers de Fyros et dévasté notre grand Empire sur les terres d'antan.\n + - Le Dragon du mythe : depuis des siècles, nous recherchons la vérité derrière le Dragon de la légende. Ce sont nos excavations dans les entrailles d'Atys, où il se dit que le Dragon repose, qui ont entraîné en premier lieu le châtiment de la Karavan. Nous creuserons jusqu'à ce que lumière soit faite sur la vérité.\n + - Parmi les tribus ennemies, citons Les Sèves Sèches, Les Cancrelats, Les Chlorogoos, Les Sans Loi, Les Écorchés, Les Renégats, Les Frères de la Lagune, Les Tuteurs, Les Dryades.\n - Les bandits : sois prudent, les terres regorgent de hors-la-loi, de voleurs et d'égorgeurs.\n - - La faune prédatrice : Le royaume animal est composé de nombreux prédateurs. Fais bien attention, ils apprécient la chair homin !\n + - La faune prédatrice : le royaume animal est composé de nombreux prédateurs. Fais bien attention, ils apprécient la chair homin !\n Comment puis-je aider mon peuple ?\n - Nous avons besoin d'artisans, de récolteurs, de magiciens et de guerriers pour maintenir et renforcer notre civilisation.\n + Nous avons besoin d'artisans, de récolteurs, de mages et de guerriers pour maintenir et renforcer notre civilisation.\n - Atys est une planète dangereuse, nous avons besoin de guerriers pour défendre nos territoires et conquérir de nouvelles terres pour nous y installer.\n - Nous recherchons des artisans pour produire les objets et les armes du quotidien ; des récolteurs pour réunir les matières premières nécessaires aux aliments et à la fabrication.\n - - Nous recherchons des magiciens pour enchanter des objets créés, protéger les récolteurs, guérir les guerriers au combat et les aider à combattre.\n + - Nous recherchons des mages pour enchanter des objets créés, protéger les récolteurs, guérir les guerriers au combat et les aider à combattre.\n \n Que puis-je attendre de mon peuple ?\n - Des entraînements auprès d'entraîneurs chevronnés.\n @@ -20134,7 +20126,7 @@ uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n - Tes contributions au bien-être de notre peuple et tes actes de bravoure seront récompensés.\n \n Quelle est notre nouvelle terre ?\n - Notre peuple s'est installé sur les terres désertiques en 2483 après être remonté à la surface des Primes Racines sur les nouvelles terres. Le désert est la région la plus rude de toute mais elle représente un défi égal à notre courage et aux valeurs de notre peuple. Depuis 2487, un flux constant de réfugiés nous a rejoint de la route des terres d'antan, la route même que tu as courageusement suivie.\n + Notre peuple s'est installé sur les terres désertiques en 2483 après être remonté à la surface des Primes Racines sur les nouvelles terres. Le Désert est la région la plus rude de toute mais elle représente un défi égal à notre courage et aux valeurs de notre peuple. Depuis 2487, un flux constant de réfugiés nous a rejoint de la route des terres d'antan, la route même que tu as courageusement suivie.\n \n Que puis-je attendre d'Atys, notre monde ?\n Atys abonde de matières premières, jeune homin, tant que tu respectes l'environnement tu pourras tirer profit des bienfaits en son sein. Lorsque tu te seras familiarisé avec le monde, tu apprendras à apprivoiser les étendues sauvages et à conquérir de nouvelles terres.] @@ -20160,26 +20152,26 @@ uiAppear_Infos_Matis [LA CIVILISATION MATIS\n Vous êtes un jeune réfugié homin. Vous avez entrepris le long et dangereux voyage depuis les terres d'antan pour atteindre ces nouvelles terres sur lesquelles nous avons établi notre nouveau domaine. Après une période d'entraînement, en tant que fidèle sujet du roi, vous pourrez mettre en pratique vos compétences et nous aider à reconstruire notre Royaume.\n \n Qui sont mes ancêtres ?\n - Vos aïeux ont bâti le plus éclatant des royaumes d'Atys. Malheureusement, en 2481, la grande nation de Matia a été détruite par les kitins durant un terrible essaim. Vos grands-parents ont réussi à s'enfuir dans les forêts, là où vos parents puis vous-même avez connu une vie difficile sous la menace constante d'une attaque kitin. Pour votre bien, vos parents vous ont poussé à prendre la grande route pour rejoindre votre peuple. Après un périple de plusieurs années, vous nous avez trouvé. Entre-temps, le territoire a été sécurisé et le royaume a pris forme. Votre génération doit maintenant raviver notre gloire passée et faire renaître notre civilisation majestueuse.\n + Vos aïeux ont bâti le plus éclatant des royaumes d'Atys. Malheureusement, en 2481, la grande nation de Matia a été détruite par les kitins durant un terrible essaim. Vos grands-parents ont réussi à s'enfuir dans les forêts, là où vos parents puis vous-même avez connu une vie difficile sous la menace constante d'une attaque kitin. Pour votre bien, vos parents vous ont poussé à prendre la grande route pour rejoindre votre peuple. Après un périple de plusieurs années, vous nous avez trouvés. Entre-temps, le territoire a été sécurisé et le Royaume a pris forme. Votre génération doit maintenant raviver notre gloire passée et faire renaître notre civilisation majestueuse.\n \n Qui est notre chef ?\n - Le Roi Yrkanis. C'est notre souverain suprême après Jena. Vous lui devez une loyauté absolue. Défier son autorité revient à s'opposer à Jena, un acte d'hérésie signant votre mort. Si votre honneur est tel que l'on vous assigne une mission royale, il vous faut la réussir avec dignité, sauf si vous défiez volontairement son autorité divine. Battez-vous pour mériter sa confiance et vous aussi pourrez monter en grade. Rodi di Varello et Girini di Antorello sont les fidèles ducs qui le conseillent.\n + Le Roi Stevano. C'est notre souverain suprême après Jena. Vous lui devez une loyauté absolue. Défier son autorité revient à s'opposer à Jena, un acte d'hérésie signant votre mort. Si votre honneur est tel que l'on vous assigne une mission royale, il vous faut la réussir avec dignité, sauf si vous défiez volontairement son autorité divine. Battez-vous pour mériter sa confiance et vous aussi pourrez monter en grade. Rodi di Varello et Girini di Antorello sont les fidèles ducs qui le conseillent.\n \n En quoi avons-nous foi ?\n Jena est notre Déesse, nous devons respecter ses Lois comme le prêchent ses disciples fidèles de la Karavan. Ils nous surveillent de peur que nous ne nous écartions du droit chemin. Ils nous autorisent à faire des offrandes et à rendre des services à Jena pour préparer l'avenir dans un monde d'abondance. Rappelez-vous, jeune homin, que la Karavan est investie d'un grand pouvoir qu'elle peut partager uniquement avec les fidèles. Il est de votre devoir de chercher les faveurs de Jena par le biais d'échanges avec ses disciples, ainsi vous pourrez apprendre à utiliser leur technologie..\n \n Quelles sont nos valeurs ?\n - Pour devenir un vrai Matis, vous devez construire votre vie autour de trois grandes valeurs :\n - - Loyauté au Roi et à Jena : Le roi est investi du droit divin, ses ennemis sont vos ennemis, en défendant notre religion, vous défendez notre royaume. De même, en désobéissant au roi et à sa cour, vous manquez de respect à Jena et êtes donc coupable d'hérésie.\n - - Accomplissement esthétique : Notre culture ne possède que ce qu'il y a de mieux, nous honorons notre déesse en faisant de ce qui nous entoure une merveille car elle nous a rendu noble.\n - - Compétition : Nous pensons que chaque Matis doit trouver sa vraie place dans la société. La compétition renforce notre caractère, fait ressortir la force de nos faiblesses. Quand les Matis se battent, c'est pour gagner !\n + Pour devenir un vrai Matis, vous devez construire votre vie autour de trois grandes valeurs :\n + - Loyauté au Roi et à Jena : le roi est investi du droit divin, ses ennemis sont vos ennemis, en défendant notre religion, vous défendez notre royaume. De même, en désobéissant au roi et à sa cour, vous manquez de respect à Jena et êtes donc coupable d'hérésie.\n + - Accomplissement esthétique : notre culture ne possède que ce qu'il y a de mieux, nous honorons notre déesse en faisant de ce qui nous entoure une merveille car elle nous a rendu noble.\n + - Compétition : nous pensons que chaque Matis doit trouver sa vraie place dans la société. La compétition renforce notre caractère, fait ressortir la force de nos faiblesses. Quand les Matis se battent, c'est pour gagner !\n \n Quels sont les interdits ?\n - Il est strictement interdit d'approcher les Kamis (sauf si la Karavan l'ordonne). Ce sont des démons maléfiques qui s'opposent à la Karavan.\n - Ne jamais enfreindre les Lois de Jena.\n - - Ne jamais errer sous la surface d'Atys, vous risqueriez de réveiller le redoutable dragon de l'apocalypse.\n + - Ne jamais errer sous la surface d'Atys, vous risqueriez de réveiller le redoutable Dragon de l'apocalypse.\n - Ne jamais réaliser de missions pour les tribus ennemies.\n - - Il est interdit de répandre le feu du dragon sur les terres. Il dévore les arbres et nous prive des essences nécessaires à nos créations.\n + - Il est interdit de répandre le feu du Dragon sur les terres. Il dévore les arbres et nous prive des essences nécessaires à nos créations.\n \n Quels sont nos objectifs ?\n Après être remontés à la surface des Primes Racines, il a fallu apprivoiser cette terre et la rendre noble. Nos villes et installations sculptées dans les arbres sont la preuve vivante de notre succès. Maintenant nous devons :\n @@ -20189,23 +20181,23 @@ uiAppear_Infos_Matis [LA CIVILISATION MATIS\n \n Qui sont nos amis ?\n Depuis la signature du Traité de Paix à Fairhaven en 2515, nous sommes en paix avec les autres peuples homins. Mais dix ans de paix ne parviendront jamais à guérir les blessures de l'infamie passée. C'est pourquoi nos relations varient selon les peuples.\n - Les Trykers : Le passé nous a appris que l'on ne peut pas apprivoiser les Trykers, qu'ils vendraient leur âme aux démons simplement pour conserver leur mode de vie. Ainsi soit-il, au nom de Jena nous avons appris à devenir des amis indulgents plutôt que de les voir aux côtés des infidèles. Grâce à Jena, notre amitié n'a jamais été aussi forte, même si leur ferveur laisse encore beaucoup à désirer.\n - Les Zoraïs : Ils sont infidèles et leur paganisme doit être contenu. Il faut admettre que c'est un guerrier zoraï qui a sauvé notre roi. Avec tout le respect que nous leur devons, nombre d'entre nous sommes contrariés par cette « dette » envers les Zoraïs qui ternit notre crédibilité aux yeux de la Karavan. Il serait préférable que cela ne se reproduise pas à l'avenir.\n - Les Fyros : Les Fyros sont nos ennemis jurés et, au cours des 44 dernières années, ils se sont rapprochés de ces horribles Kamis. Nous ne devons jamais oublier que, par le passé, ils ont réussi à rallier les Trykers à leurs côtés et contre nous. Mais les Fyros préfèrent aujourd'hui s'allier aux Zoraïs car ils chérissent le même démon, les Kamis. Néanmoins, nous devons faire preuve de vigilance et nous assurer qu'ils n'essaient pas de convertir les Trykers avec leurs propos blasphématoires.\n + Les Trykers : le passé nous a appris que l'on ne peut pas apprivoiser les Trykers, qu'ils vendraient leur âme aux démons simplement pour conserver leur mode de vie. Ainsi soit-il, au nom de Jena nous avons appris à devenir des amis indulgents plutôt que de les voir aux côtés des infidèles. Grâce à Jena, notre amitié n'a jamais été aussi forte, même si leur ferveur laisse encore beaucoup à désirer.\n + Les Zoraïs : ils sont infidèles et leur paganisme doit être contenu. Il faut admettre que c'est un guerrier zoraï qui a sauvé notre roi. Avec tout le respect que nous leur devons, nombre d'entre nous sommes contrariés par cette « dette » envers les Zoraïs qui ternit notre crédibilité aux yeux de la Karavan. Il serait préférable que cela ne se reproduise pas à l'avenir.\n + Les Fyros : les Fyros sont nos ennemis jurés et, au cours des 44 dernières années, ils se sont rapprochés de ces horribles Kamis. Nous ne devons jamais oublier que, par le passé, ils ont réussi à rallier les Trykers à leurs côtés et contre nous. Mais les Fyros préfèrent aujourd'hui s'allier aux Zoraïs car ils chérissent le même démon, les Kamis. Néanmoins, nous devons faire preuve de vigilance et nous assurer qu'ils n'essaient pas de convertir les Trykers avec leurs propos blasphématoires.\n Parmi les tribus amicales, citons Les Percécorces, Les Chasseurs de Frahars, Les Sculpteurs de Vase, Les Renégats, Les Esclavagistes, Les Iconodoules, Les Amazones Matis, La Graine Verte, Les Esclaves de la Sève, Les Matis Arides, Les Matisagoo, La Kuilde.\n \n Qui sont nos ennemis ?\n - - Les Kamis : Ils nous empêchent de ramener l'ordre et la beauté sur les terres de Jena. Ils sont maléfiques et doivent être éradiqués.\n + - Les Kamis : ils nous empêchent de ramener l'ordre et la beauté sur les terres de Jena. Ils sont maléfiques et doivent être éradiqués.\n - Les Kitins : ces insectes gigantesques ont massacré des milliers de Matis et dévasté notre royaume majestueux sur les terres d'antan.\n - - Parmi les tribus ennemies, citons Les Sèves Sèches, Les Cancrelats, Les Chlorogoos, Les Sans Loi, Les Ecorchés, Les Frères de la Lagune, Les Tuteurs, Les Dryades, Les Premiers Déserteurs, Les Mercenaires Ecarlates, Les Pillards du Désert.\n - - Les bandits : Prenez garde aux hors-la-loi, voleurs et égorgeurs qui rodent dans les forêts à la recherche d'une proie facile.\n - - La faune prédatrice : Les animaux sauvages peuvent être féroces, nombreux sont ceux qui attaqueront les homins à vue !\n + - Parmi les tribus ennemies, citons Les Sèves Sèches, Les Cancrelats, Les Chlorogoos, Les Sans Loi, Les Écorchés, Les Frères de la Lagune, Les Tuteurs, Les Dryades, Les Premiers Déserteurs, Les Mercenaires Ecarlates, Les Pillards du Désert.\n + - Les bandits : prenez garde aux hors-la-loi, voleurs et égorgeurs qui rodent dans les forêts à la recherche d'une proie facile.\n + - La faune prédatrice : les animaux sauvages peuvent être féroces, nombreux sont ceux qui attaqueront les homins à vue !\n \n Comment puis-je aider mon peuple ?\n - Nous manquons d'artisans, de récolteurs, de magiciens et de guerriers capables de développer nos capacités afin de rester en tête de la compétition.\n + Nous manquons d'artisans, de récolteurs, de mages et de guerriers capables de développer nos capacités afin de rester en tête de la compétition.\n - Nous avons besoin de guerriers pour défendre notre territoire et établir de nouveaux espaces de vie.\n - Nous recherchons des artisans talentueux pour créer les objets et les armes du quotidien ; et des récolteurs pour réunir les matières premières nécessaires aux aliments et à la fabrication.\n - - Nous avons besoin de magiciens pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et tenir l'ennemi en échec.\n + - Nous avons besoin de mages pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et tenir l'ennemi en échec.\n \n Que puis-je attendre de mon peuple ?\n - Des entraînements auprès d'entraîneurs chevronnés.\n @@ -20224,7 +20216,7 @@ uiAppear_Infos_Tryker [LA CIVILISATION TRYKER\n \n Nous les Trykers, nous croyons aux vertus de la liberté, de l'égalité et du partage. Nous pensons que tous les homins sont égaux et doivent vivre comme ils l'entendent. Nous encourageons les qualités de l'individu et non simplement celles du groupe dans son ensemble. Après tout, notre chère Déesse Jena a donné naissance aux homins un par un, pas par douzaines ! En favorisant le développement et le bonheur individuels, le groupe harmonieux et solidaire suit le cours naturel des ruisseaux qui s'unissent pour former une rivière !\n \n - Les Trykers sont de grands voyageurs et explorateurs mais aussi des spécialistes de la technologie éolienne. Depuis le Grand Essaim de kitins qui a détruit nos îles sur les terres d'antan, nous avons installé nos foyers dans la région des lacs et avons établi les bases de notre nouvelle Fédération.\n + Les Trykers sont de grands voyageurs et explorateurs mais aussi des spécialistes de la technologie éolienne. Depuis le Grand Essaim de kitins qui a détruit nos îles sur les terres d'antan, nous avons installé nos foyers dans la région des Lacs et avons établi les bases de notre nouvelle Fédération.\n \n Si vous croyez à un monde sans tyrannie ni intolérance, sans maître ni esclave, venez nous aider à le construire !!\n \n @@ -20238,23 +20230,23 @@ uiAppear_Infos_Tryker [LA CIVILISATION TRYKER\n Tes aïeux ont bâti la plus magnifique des cites îles sur les anciennes terres de Trykoth où ils vivaient aussi libres que le vent. Mais il y a trois générations de cela les kitins sont apparus pour apporter mort et destruction sur les terres. Tes grands-parents se sont enfuis dans les collines, là où tes parents puis toi-même avez été élevés dans la peur constante d'une attaque kitin. C'est une bonne chose que tes parents t'aient encouragé à quitter cette vie sans issue pour suivre la grande route et nous rejoindre ici sur la nouvelle terre promise. Enfin, tu nous as trouvé, une nouvelle vie peut commencer pour toi.\n \n Qui est notre chef ?\n - Denen Toen est notre chef. C'est le Gouverneur de la fédération "Nouvelle Trykoth". Son honnêteté est à toute épreuve, et si tu veux une réponse franche, adresse-toi à lui. Les valeurs trykers sont très importantes pour notre Gouverneur et elles vivent en son coeur. Tiens-toi à ses côtés, jeune Tryker, notre indépendance repose sur notre solidarité ! Ses mains droites sont ses députés, Shinder Salan et Tedan Keper, ce sont des homins d'expérience qui le conseillent. Si jamais tu as l'honneur de réaliser une mission pour le conseil, mets-y le paquet, on ne sait jamais, notre liberté pourrait en dépendre.\n + Ailan Mac'Kean est notre chef. C'est le Gouverneur de la Fédération "Nouvelle Trykoth". Son honnêteté est à toute épreuve, et si tu veux une réponse franche, adresse-toi à elle. Les valeurs trykers sont très importantes pour notre Gouverneur et elles vivent en son coeur. Tiens-toi à ses côtés, jeune Tryker, notre indépendance repose sur notre solidarité ! Ses mains droites sont ses députés, Shaley Nara et Denen Toen, ce sont des homins d'expérience qui le conseillent. Si jamais tu as l'honneur de réaliser une mission pour le conseil, mets-y le paquet, on ne sait jamais, notre liberté pourrait en dépendre.\n \n En quoi avons-nous foi ?\n Jena est notre Déesse, c'est la Mère de la Création. Notre vie s'articule surtout autour de son culte. Il y a Thanksgiving, par exemple, qui tombe lors du solstice d'hiver pour symboliser le retour de la lumière après les années sombres qui ont suivi le Grand Essaim. Afin que cela ne se reproduise jamais, nous devons respecter ses Lois transmises par ses disciples fidèles, la Karavan. Ils nous surveillent et nous protègent de l'influence des Kamis. Souviens-toi jeune homin, tant que tu fais ce que l'on te dit et que tu ne les contraries pas, tu pourras apprendre à maîtriser leur technologie. Au fait, garde-le pour toi mais il paraît qu'Elias n'est autre que le mari de Jena, il est donc le Saint Père, mais n'en parle pas à la Karavan !\n \n Qu'est-ce qui compte le plus pour nous ?\n Pour être un vrai Tryker, tu dois vivre selon les vertus de la liberté, de l'égalité et du partage :\n - - La Liberté : Dis-toi que tous les homins sont responsables et libres de leurs actes. Un homin qui viole la liberté d'un autre ira à l'encontre des Droits de l'Homin, qui soit dit en passant, ont d'abord été établis par le conseil tryker.\n - - L'Egalité : Chaque homin dispose des mêmes droits : d'aller et de venir, de s'instruire, de récolter les ressources naturelles, de choisir son propre destin, tant qu'il n'empiète pas sur d'autres droits d'homin.\n - - Le Partage : Nous pensons que notre force repose sur notre solidarité et que cette solidarité est née du partage. Si nous parvenions à persuader tous les enfants de Jena d'être comme nous les Trykers, le monde serait bien plus sûr !\n + - La Liberté : dis-toi que tous les homins sont responsables et libres de leurs actes. Un homin qui viole la liberté d'un autre ira à l'encontre des Droits de l'Homin, qui soit dit en passant, ont d'abord été établis par le conseil tryker.\n + - L'Égalité : chaque homin dispose des mêmes droits : d'aller et de venir, de s'instruire, de récolter les ressources naturelles, de choisir son propre destin, tant qu'il n'empiète pas sur d'autres droits d'homin.\n + - Le Partage : nous pensons que notre force repose sur notre solidarité et que cette solidarité est née du partage. Si nous parvenions à persuader tous les enfants de Jena d'être comme nous les Trykers, le monde serait bien plus sûr !\n \n Quels sont les interdits ?\n - Tu ne dois jamais faire de pactes ou réaliser de missions pour les Kamis. Ce sont des démons maléfiques qui prendront possession de ton âme.\n - N'enfreins jamais les Lois de Jena.\n - Ne réalise jamais de missions pour les tribus ennemies.\n - - Si tu t'aventures sous la surface d'Atys, prends garde de ne pas réveiller le terrifiant dragon de l'apocalypse.\n - - Il est interdit de répandre le feu du dragon sur les terres. Cela les rend stériles.\n + - Si tu t'aventures sous la surface d'Atys, prends garde de ne pas réveiller le terrifiant Dragon de l'apocalypse.\n + - Il est interdit de répandre le feu du Dragon sur les terres. Cela les rend stériles.\n \n Quels sont nos objectifs ?\n Depuis notre remontée à la surface des Primes Racines, nous avons posé les fondements de notre future civilisation sans tyrannie ni intolérance, où tous les enfants de Jena peuvent vivre librement. Nous devons désormais :\n @@ -20264,24 +20256,24 @@ uiAppear_Infos_Tryker [LA CIVILISATION TRYKER\n \n Qui sont nos amis ?\n Depuis la signature du Traité de Paix à Fairhaven en 2515, nous sommes en paix avec les autres peuples homins. Mais cela n'empêche pas d'avoir des préférences.\n - Les Matis : Malgré les disputes et les incompréhensions du passé, les Matis respectent désormais notre liberté de pensée et notre droit de reconstruire notre société comme nous l'entendons. Après tout, ce qui compte vraiment c'est notre foi commune en Jena. Grâce à Jena, notre amitié n'a jamais été aussi forte, tout particulièrement depuis que les Matis ont ratifié les Droits de l'Homin. En plus, les Matis nous doivent en quelque sorte leur liberté après la dictature de Jinovitch. Non seulement le Conseil Tryker a donné asile politique à Sa Seigneurie Yrkanis à Fairhaven, mais en plus Still Wyler -notre ancien gouverneur- l'a escorté jusqu'aux terres matis pour empêcher Jinovitch d'accéder au trône.\n - Les Fyros : Les Fyros étaient autrefois des alliés qui exploitaient notre besoin de protection en nous demandant de fournir les villes fyros avec des marchandises à bas prix. Depuis que nous avons appris à nous battre seuls, nous n'avons plus besoin de la protection condescendante des Fyros, tout particulièrement depuis que nous entretenons des relations fraternelles avec les Matis. En plus, les Fyros se sont rapprochés des Kamis.\n - Les Zoraïs : Les Zoraïs sont indignes de confiance, ils enfreignent ouvertement les Lois de Jena en vénérant les Kamis. Qui plus est, durant le Grand Essaim sur les terres d'antan, les Zoraïs ont refusé de nous laisser franchir leur grand mur et ont laissé des milliers de Trykers périr dans les griffes des kitins. Plus récemment, les Zoraïs ont instauré l'esclavagisme sur les nouvelles terres.\n - Parmi les tribus amicales, nous avons Les Chasseurs de Frahars, Les Sculpteurs de Vase, Les Corsaires, Les Déferlants, Les Trafiquants des Ombres, La Graine Verte, Les Mercenaires Ecarlates, Les Embourbés, Les Puisatiers, La Kuilde.\n + Les Matis : malgré les disputes et les incompréhensions du passé, les Matis respectent désormais notre liberté de pensée et notre droit de reconstruire notre société comme nous l'entendons. Après tout, ce qui compte vraiment c'est notre foi commune en Jena. Grâce à Jena, notre amitié n'a jamais été aussi forte, tout particulièrement depuis que les Matis ont ratifié les Droits de l'Homin. En plus, les Matis nous doivent en quelque sorte leur liberté après la dictature de Jinovitch. Non seulement le Conseil Tryker a donné asile politique à Sa Seigneurie Yrkanis à Fairhaven, mais en plus Still Wyler - notre ancien gouverneur - l'a escorté jusqu'aux terres matis pour empêcher Jinovitch d'accéder au trône.\n + Les Fyros : les Fyros étaient autrefois des alliés qui exploitaient notre besoin de protection en nous demandant de fournir les villes fyros avec des marchandises à bas prix. Depuis que nous avons appris à nous battre seuls, nous n'avons plus besoin de la protection condescendante des Fyros, tout particulièrement depuis que nous entretenons des relations fraternelles avec les Matis. En plus, les Fyros se sont rapprochés des Kamis.\n + Les Zoraïs : les Zoraïs sont indignes de confiance, ils enfreignent ouvertement les Lois de Jena en vénérant les Kamis. Qui plus est, durant le Grand Essaim sur les terres d'antan, les Zoraïs ont refusé de nous laisser franchir leur grand mur et ont laissé des milliers de Trykers périr dans les griffes des kitins. Plus récemment, les Zoraïs ont instauré l'esclavagisme sur les nouvelles terres.\n + Parmi les tribus amicales, nous avons Les Chasseurs de Frahars, Les Sculpteurs de Vase, Les Corsaires, Les Déferlants, Les Trafiquants des Ombres, La Graine Verte, Les Mercenaires Écarlates, Les Embourbés, Les Puisatiers, La Kuilde.\n \n Qui sont nos ennemis ?\n - Les Kamis sont un fléau maléfique, ils essaient de perturber notre esprit avec leur magie pour en prendre possession. Il faut les éliminer.\n - - Les Kitins : Ces insectes gigantesques ont massacré des milliers de Trykers et dévasté nos merveilleuses cités flottantes sur les terres de Trykoth.\n - - Personne n'a jamais vu le dragon, mais nous savons qu'il sommeille au plus profond des entrailles d'Atys. Nous ne pouvons pas y faire grand-chose... autant ne pas y penser.\n + - Les Kitins : ces insectes gigantesques ont massacré des milliers de Trykers et dévasté nos merveilleuses cités flottantes sur les terres de Trykoth.\n + - Personne n'a jamais vu le Dragon, mais nous savons qu'il sommeille au plus profond des entrailles d'Atys. Nous ne pouvons pas y faire grand-chose... autant ne pas y penser.\n - Parmi les tribus ennemies, nous avons Les Sèves Sèches, Les Chlorogoos, Les Sans Loi, Les Frères de la Lagune, Les Esclavagistes, Les Tuteurs, Les Dryades, Les Pillards du Désert, Les Matisagoo.\n - - Les bandits : Prends garde aux hors-la-loi, aux voleurs et aux égorgeurs, ils sont de partout.\n - - La faune prédatrice : Il y a pas mal d'animaux plutôt méchants sur Atys, regarde où tu mets les pieds si tu ne veux pas leur servir de repas !\n + - Les bandits : prends garde aux hors-la-loi, aux voleurs et aux égorgeurs, ils sont de partout.\n + - La faune prédatrice : il y a pas mal d'animaux plutôt méchants sur Atys, regarde où tu mets les pieds si tu ne veux pas leur servir de repas !\n \n Comment puis-je aider mon peuple ?\n - C'est très simple : si tu es un artisan, un récolteur, un magicien ou un guerrier, nous avons besoin de toi !\n + C'est très simple : si tu es un artisan, un récolteur, un mage ou un guerrier, nous avons besoin de toi !\n - Nous avons besoin de guerriers pour défendre nos droits territoriaux et subvenir à notre besoin de croissance.\n - Nous recherchons des artisans compétents et capables de créer les objets et les armes du quotidien ; des récolteurs pour réunir les matières premières nécessaires aux aliments et à la fabrication.\n - - Nous avons besoin de magiciens pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et garder l'ennemi sous contrôle.\n + - Nous avons besoin de mages pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et garder l'ennemi sous contrôle.\n \n Que puis-je attendre de mon peuple ?\n - Des entraînements auprès d'entraîneurs chevronnés.\n @@ -20302,7 +20294,7 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n \n Nous avons soif de connaissances alors que d'autres ont soif de richesses. Nous avons été les premiers à poser par écrit la langue qui nous permettrait de perpétuer le savoir des anciens. Notre société s'est organisée autour de splendides cités temples où de grandes cérémonies étaient orchestrées pour parer au cancer dévorant la flore, que les Kamis ne parvenaient pas à repousser\n \n - Depuis l'essaim dévastateur de kitins, nous avons une fois de plus demandé à nous installer au milieu de la jungle enchanteresse où la pollution de la Goo sévit.\n + Depuis l'essaim dévastateur de kitins, nous avons une fois de plus demandé à nous installer au milieu de la Jungle enchanteresse où la pollution de la Goo sévit.\n \n Nous cherchons désormais à faire renaître la splendeur de notre ancienne dynastie et à l'illuminer à nouveau tel un phare de sagesse. Nous rêvons de partager notre conscience spirituelle avec le reste du monde afin que l'hominité connaisse une plénitude éternelle.\n \n @@ -20314,23 +20306,23 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n Qui suis-je ?\n Vous êtes un jeune réfugié homin. Vous avez sagement répondu à l'appel de votre peuple et avez entrepris le long et périlleux voyage depuis les terres d'antan. Depuis plusieurs décennies maintenant nous rebâtissons les fondations de notre société sur ces nouvelles terres d'abondance, nous avons besoin de votre aide. Après une période d'entraînement, vous pourrez faire preuve de vos compétences pour nous aider à reconstruire notre civilisation.\n \n - Qui sont mes ancêtres\n + Qui sont mes ancêtres ?\n Vos aïeux ont construit une société organisée autour de cités temples magnétiques où de grandes cérémonies prenaient place à des fins d'illumination spirituelle. Votre génération se doit de raviver cette flamme et de faire briller à nouveau notre civilisation en tant le vrai chef spirituel. Vous avez été élevé dans les régions sauvages où vos parents avaient pris refuge lors du massacre kitin de 2481. Vos parents ont agi sagement en vous poussant à quitter votre vie de malheur et à suivre la grande route menant au reste de votre peuple. Vous avez voyagé durant de nombreuses années mais vous avez fini par nous trouver. Votre nouvelle vie ne fait que commencer.\n \n Qui est notre chef ?\n - Mabreka, le Grand Sage, est notre chef spirituel. Où il va, nous le suivons. Son aura brille telle un phare dans la nuit et guide nos esprits. Suivez sa lumière et vous aussi resplendirez parmi votre peuple. C'est un grand honneur d'être choisi pour réaliser une mission à sa demande, l'issue sera signe de votre valeur. Cuan Sa-Ki et Shon Wo-Can sont les grands gourous qui, ayant obtenu le mérite suprême, lui font part des orientations à prendre.\n + Mabreka, le Grand Sage, est notre chef spirituel. Où il va, nous le suivons. Son aura brille telle un phare dans la nuit et guide nos esprits. Suivez sa lumière et vous aussi resplendirez parmi votre peuple. C'est un grand honneur d'être choisi pour réaliser une mission à sa demande, l'issue sera signe de votre valeur. Les Sages Saison, Sens et Supplice sont les grands gourous qui, ayant obtenu le mérite suprême, lui font part des orientations à prendre.\n \n En quoi avons-nous foi ?\n Nous vouons un culte à l'énergie de la vie supérieure qui a créé Atys, il s'agit de Ma-Duk. Ma-Duk manifeste sa présence sur Atys grâce aux Kamis qui surveillent sa création. Souvenez-vous homin, les Kamis doivent être protégés, c'est par eux que vous obtiendrez le mérite pour accéder à l'illumination ultime. Faites-leur des offrandes et rendez-leur des faveurs quand vous le pouvez, et alors ils vous feront part de leur magie.\n \n Quelles sont nos valeurs ?\n Afin de renaître complètement en tant que vrai Zoraï, vous devez organiser votre nouvelle vie autour des principales pierres angulaires, à savoir la sagesse, l'accomplissement spirituel et le respect de la nature.\n - - La sagesse : Afin de servir au mieux les Kamis, vous devez apprendre à vous connaître, à connaître votre peuple et Atys. En acquérant des connaissances, vous apprendrez également à défendre Atys, les Kamis et votre peuple contre les actes de barbarie.\n - - L'accomplissement spirituel : Vous devez devenir méritant pour que votre âme atteigne l'illumination. Pour cela, vous devez non seulement renforcer vos relations individuelles avec les Kamis mais également répandre la parole des Kamis sur l'illumination aux autres homins afin qu'ils partagent également cette plénitude ultime.\n - - Le respect de la nature : Notre culture repose sur un profond respect de la nature. Vous devez la protéger contre la surexploitation et le feu, et à tous prix contre la goo que les Kamis ne parviennent pas à repousser.\n + - La sagesse : afin de servir au mieux les Kamis, vous devez apprendre à vous connaître, à connaître votre peuple et Atys. En acquérant des connaissances, vous apprendrez également à défendre Atys, les Kamis et votre peuple contre les actes de barbarie.\n + - L'accomplissement spirituel : vous devez devenir méritant pour que votre âme atteigne l'illumination. Pour cela, vous devez non seulement renforcer vos relations individuelles avec les Kamis mais également répandre la parole des Kamis sur l'illumination aux autres homins afin qu'ils partagent également cette plénitude ultime.\n + - Le respect de la nature : notre culture repose sur un profond respect de la nature. Vous devez la protéger contre la surexploitation et le feu, et à tous prix contre la Goo que les Kamis ne parviennent pas à repousser.\n \n Quels sont les interdits ?\n - - Vous ne devez jamais faire d'échanges avec la Karavan. C'est l'ennemie des Kamis et elle essaie de nous empêcher d'éradiquer la goo. En réunissant des matières premières pour la Karavan, vous serez coupable de viol de la planète que nous devons chérir. La Karavan est responsable de l'épuisement progressif des ressources et des dégâts de l'environnement.\n + - Vous ne devez jamais faire d'échanges avec la Karavan. C'est l'ennemie des Kamis et elle essaie de nous empêcher d'éradiquer la Goo. En réunissant des matières premières pour la Karavan, vous serez coupable de viol de la planète que nous devons chérir. La Karavan est responsable de l'épuisement progressif des ressources et des dégâts de l'environnement.\n - Ne jamais se moquer ou s'opposer aux Kamis. Les Kamis agissent pour le bien d'Atys.\n - Il est interdit de répandre le feu sur les terres. Il épuise la terre de ses richesses et la rend stérile.\n - Ne jamais réaliser de missions pour les tribus ennemies.\n @@ -20344,24 +20336,24 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n \n Qui sont nos amis ?\n Depuis la signature du Traité de Paix à Fairhaven en 2515, nous sommes en paix avec les autres peuples homins. Mais dix ans de paix ne parviendront jamais à effacer les nombreuses années de barbarie qui était monnaie courante sur les autres territoires homins. Qui plus est, nous trouvons que certains homins font preuve de plus de mérite que d'autres.\n - Les Fyros : Les Fyros sont d'impertinents mais courageux guerriers qui récemment se sont montrés dignes de notre confiance. Ils font de bons progrès dans leur développement spirituel et ont clairement choisi la voie des Kamis.\n - Les Trykers : L'esprit des Trykers n'a pas suffisamment évolué pour pouvoir accepter l'illumination des Kamis. Ils n'ont que peu d'intérêts spirituellement. Il se dit qu'ils auraient non seulement accueilli les Kamis avec frivolité par le passé, mais qu'ils vénèrent la Karavan, hostile aux Kamis.\n - Les Matis : Nous devons essayer de libérer les Matis de l'influence de la Karavan et les encourager à suivre le mode de vie des Kamis. D'ailleurs, en 2509, le roi matis actuel, Yrkanis, a pris refuge à Zora et a aidé à élever une armée pour destituer le monarque ultra-karavan et instaurer un gouvernement plus tolérant. Ceci a marqué le premier pas pour attirer les Matis dans le monde des Kamis. Mais des rumeurs courent que l'opposition grandit contre Yrkanis au sein même de son royaume. Nous devons rester vigilants !\n + Les Fyros : les Fyros sont d'impertinents mais courageux guerriers qui récemment se sont montrés dignes de notre confiance. Ils font de bons progrès dans leur développement spirituel et ont clairement choisi la voie des Kamis.\n + Les Trykers : l'esprit des Trykers n'a pas suffisamment évolué pour pouvoir accepter l'illumination des Kamis. Ils n'ont que peu d'intérêts spirituellement. Il se dit qu'ils auraient non seulement accueilli les Kamis avec frivolité par le passé, mais qu'ils vénèrent la Karavan, hostile aux Kamis.\n + Les Matis : nous devons essayer de libérer les Matis de l'influence de la Karavan et les encourager à suivre le mode de vie des Kamis. D'ailleurs, en 2509, l'ancien roi matis, Yrkanis, a pris refuge à Zora et a aidé à élever une armée pour destituer le monarque ultra-karavan et instaurer un gouvernement plus tolérant. Ceci a marqué le premier pas pour attirer les Matis dans le monde des Kamis. Mais des rumeurs courent que l'opposition a grandi contre Yrkanis au sein même de son royaume. Nous devons rester vigilants !\n Parmi les tribus amicales, citons les Percécorces, Les Sauvages, Les Déferlants, Les Iconodoules, Les Tuteurs, Les Amazones Matis, Les Embourbés, Les Puisatiers, La Sève Sacrée, Les Frères des Plantes.\n \n Qui sont nos ennemis ?\n - - La Karavan : Elle est hostile aux Kamis et elle a réussi à imposer une adhésion aveugle des esprits les plus faibles à leur déesse Jena. Nos aïeux, et plus récemment, les Fyros ont réussi à se détacher de leur emprise. Nous devons aider les autres peuples à faire de même.\n - - Les Kitins : Ces insectes gigantesques ont massacré des milliers de Zoraïs et dévasté notre dynastie sur les terres d'antan.\n - - La goo offense les Kamis car elle est le cancer de notre planète et doit être éradiquée.\n - - Parmi les tribus ennemies, citons Les Cancrelats, Les Chlorogoos, les Sans Loi, les Ecorchés, les Frères de la Lagune, les Maîtres de la goo, les Antekamis, les Illuminés, Les Pillards du Désert, Les Matisagoo.\n - - Les bandits : Prenez garde aux hors-la-loi, aux voleurs et aux égorgeurs, jeune homin. Ils n'épargneront pas votre vie s'ils peuvent en tirer un bon prix.\n - - La faune prédatrice : La jungle abrite de nombreux animaux sauvages, nombre d'entre eux attaqueront les homins à vue\n + - La Karavan : elle est hostile aux Kamis et elle a réussi à imposer une adhésion aveugle des esprits les plus faibles à leur déesse Jena. Nos aïeux, et plus récemment, les Fyros ont réussi à se détacher de leur emprise. Nous devons aider les autres peuples à faire de même.\n + - Les Kitins : ces insectes gigantesques ont massacré des milliers de Zoraïs et dévasté notre dynastie sur les terres d'antan.\n + - La Goo offense les Kamis car elle est le cancer de notre planète et doit être éradiquée.\n + - Parmi les tribus ennemies, citons Les Cancrelats, Les Chlorogoos, les Sans Loi, les Écorchés, les Frères de la Lagune, les Maîtres de la goo, les Antekamis, les Illuminés, Les Pillards du Désert, Les Matisagoo.\n + - Les bandits : prenez garde aux hors-la-loi, aux voleurs et aux égorgeurs, jeune homin. Ils n'épargneront pas votre vie s'ils peuvent en tirer un bon prix.\n + - La faune prédatrice : la jungle abrite de nombreux animaux sauvages, nombre d'entre eux attaqueront les homins à vue\n \n Comment puis-je aider mon peuple\n - Afin de construire nos cités temples et de jouer notre rôle de chef spirituel d'Atys, nous devons être assez forts pour résister à l'opposition. Pour cela nous devons recruter des artisans, des récolteurs, des magiciens et des guerriers.\n + Afin de construire nos cités temples et de jouer notre rôle de chef spirituel d'Atys, nous devons être assez forts pour résister à l'opposition. Pour cela nous devons recruter des artisans, des récolteurs, des mages et des guerriers.\n - Nous avons besoin de guerriers pour défendre notre territoire et établir de nouveaux autels voués au culte des Kamis.\n - Nous recherchons des artisans pour créer les objets et les armes du quotidien ; et des récolteurs pour réunir les matières premières nécessaires aux aliments et à la fabrication.\n - - Nous avons besoin de magiciens pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et garder les ennemis sous contrôle.\n + - Nous avons besoin de mages pour enchanter les objets créés, protéger les récolteurs, guérir les guerriers au combat et garder les ennemis sous contrôle.\n \n Que puis-je attendre de mon peuple ?\n - Des entraînements auprès d'entraîneurs chevronnés.\n @@ -20369,7 +20361,7 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n - Vos contributions au bien-être de notre peuple et vos actes nobles seront récompensés.\n \n Quelle est notre nouvelle terre ?\n - Après la remontée à la surface des Primes Racines sur les nouvelles terres en 2483, nous avons pris le contrôle de nouveaux sites au milieu de la jungle où les Kamis ont le plus besoin de nous. La jungle est la partie la plus enchanteresse d'Atys mais a besoin de nombreux soins pour le rester car la goo sévit en ces lieux. Depuis 2487, un flux constant de réfugiés nous a rejoint de la route des terres d'antan, la même route que vous avez courageusement suivie, homin.\n + Après la remontée à la surface des Primes Racines sur les nouvelles terres en 2483, nous avons pris le contrôle de nouveaux sites au milieu de la jungle où les Kamis ont le plus besoin de nous. La Jungle est la partie la plus enchanteresse d'Atys mais a besoin de nombreux soins pour le rester car la Goo sévit en ces lieux. Depuis 2487, un flux constant de réfugiés nous a rejoint de la route des terres d'antan, la même route que vous avez courageusement suivie, homin.\n \n Que puis-je attendre d'Atys, notre monde ?\n Atys abonde de richesses naturelles, jeune homin, vous pourrez en profiter pour approfondir votre évolution à condition de respecter l'environnement. Dans le cas contraire, les Kamis vous tomberont dessus comme la foudre !\n @@ -20377,11 +20369,11 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n // HASH_VALUE A9780C8C4F136771 // INDEX 4839 -uiTaskbarTextMode [Mode Texte] +uiTaskbarTextMode [Mode texte] // HASH_VALUE A016D8814FB22B60 // INDEX 4840 -uiTaskbarIconMode [Mode Icône] +uiTaskbarIconMode [Mode icône] // HASH_VALUE 64DC5448485400D0 // INDEX 4841 @@ -20389,39 +20381,39 @@ uiTaskbarResetUI [Réinitialiser IU] // HASH_VALUE 89A15C25C5626816 // INDEX 4842 -uimTouchpad [PAD] +uimTouchpad [Pad] // HASH_VALUE 9023144851D43C48 // INDEX 4843 -uimCustomer [ASSISTANCE] +uimCustomer [Assistance] // HASH_VALUE 89A15C25C5626816 // INDEX 4844 -uiMilko [PAD] +uiMilko [Pad] // HASH_VALUE 8CB1C02187C29831 // INDEX 4845 -uiMK_Actions [ACTIONS] +uiMK_Actions [Actions] // HASH_VALUE 5190081E8FF0201E // INDEX 4846 -uiMK_Emotes [EMOTES] +uiMK_Emotes [Emotes] // HASH_VALUE 4450141C4450141C // INDEX 4847 -uiMK_Game [JEU] +uiMK_Game [Jeu] // HASH_VALUE 8D91AC32CB222C50 // INDEX 4848 -uiMK_Wins [FENETRES] +uiMK_Wins [Fenêtres] // HASH_VALUE 38F2F4504ACEA432 // INDEX 4849 -uiMK_Move [S'ARRETER/AVANCER] +uiMK_Move [S'arrêter / Avancer] // HASH_VALUE 50D0444C50D0444C // INDEX 4850 -uiMK_Move_1 [STOP] +uiMK_Move_1 [Stop] // HASH_VALUE 4494F4344494F434 // INDEX 4851 @@ -21398,7 +21390,7 @@ gn_bandit_enchantedisle_1 [Les Déchireurs de Tyler] // HASH_VALUE 95B29031A7E64F7D // INDEX 5083 -gn_bandit_enchantedisle_2 [Les Magiciens de la Malice] +gn_bandit_enchantedisle_2 [Les Mages de la Malice] // HASH_VALUE EED8D41EC8381CB0 // INDEX 5084 @@ -21906,11 +21898,11 @@ gn_class_apprentice_trader [Apprenti Négociant] // HASH_VALUE 258BD0976128D8A2 // INDEX 5210 -gn_class_arcane_apprentice [Magicien d'Elite Initié] +gn_class_arcane_apprentice [Mage d'Elite Initié] // HASH_VALUE 24E91888A93924B0 // INDEX 5211 -gn_class_arcane_master [Magicien d'Elite Chevronné] +gn_class_arcane_master [Mage d'Elite Chevronné] // HASH_VALUE 242A1893E18B1897 // INDEX 5212 @@ -21942,11 +21934,11 @@ gn_class_captain [Maître-Tireur Initié] // HASH_VALUE A479B088AAC964A6 // INDEX 5219 -gn_class_charm_adept [Puissant Magicien Novice] +gn_class_charm_adept [Puissant Mage Novice] // HASH_VALUE 73A954A3F5E930AD // INDEX 5220 -gn_class_charm_expert [Puissant Magicien Initié] +gn_class_charm_expert [Puissant Mage Initié] // HASH_VALUE 2B78B894AA58949A // INDEX 5221 @@ -21954,7 +21946,7 @@ gn_class_cleric [Tireur d'Elite Chevronné] // HASH_VALUE 6898F48C705824D4 // INDEX 5222 -gn_class_conjurer [Grand Magicien Chevronné] +gn_class_conjurer [Grand Mage Chevronné] // HASH_VALUE 2A59DCB0EA2ADCB3 // INDEX 5223 @@ -22006,7 +21998,7 @@ gn_class_life_surgeon [Guérisseur d'Elite Initié] // HASH_VALUE 68D814B46C58948C // INDEX 5235 -gn_class_magician [Maître-Magicien Chevronné] +gn_class_magician [Maître-Mage Chevronné] // HASH_VALUE 6988ACAF28B9C0B8 // INDEX 5236 @@ -22022,11 +22014,11 @@ gn_class_milician [Gouverneur] // HASH_VALUE 6B1AD0A3EE18F4A7 // INDEX 5239 -gn_class_mystical_adept [Maître-Magicien Novice] +gn_class_mystical_adept [Maître-Mage Novice] // HASH_VALUE EC0C28AAABF9ACA3 // INDEX 5240 -gn_class_mystical_expert [Maître-Magicien Initié] +gn_class_mystical_expert [Maître-Mage Initié] // HASH_VALUE 6B88D0A32B48B89A // INDEX 5241 @@ -22082,19 +22074,19 @@ gn_class_soldier [Guerrier Régulier Chevronné] // HASH_VALUE 609CF4CC70582494 // INDEX 5254 -gn_class_sorcerer [Magicien d'Elite Novice] +gn_class_sorcerer [Mage d'Elite Novice] // HASH_VALUE 6B7B90B0688AD8AC // INDEX 5255 -gn_class_sorcery_apprentice [Grand Magicien Novice] +gn_class_sorcery_apprentice [Grand Mage Novice] // HASH_VALUE 2D0AA0C5E2CBCCB6 // INDEX 5256 -gn_class_sorcery_master [Grand Magicien Initié] +gn_class_sorcery_master [Grand Mage Initié] // HASH_VALUE EC7A8CAF6C5AB8A2 // INDEX 5257 -gn_class_spellcaster [Grand Magicien Novice] +gn_class_spellcaster [Grand Mage Novice] // HASH_VALUE ABEB78A92649B4C9 // INDEX 5258 @@ -22134,7 +22126,7 @@ gn_class_warchief [Maître-Guerrier Chevronné] // HASH_VALUE A819BCB6EC6A9CB4 // INDEX 5267 -gn_class_warlock [Puissant Magicien Chevronné] +gn_class_warlock [Puissant Mage Chevronné] // HASH_VALUE AB0ABCB6ECFABCBC // INDEX 5268 @@ -22214,7 +22206,7 @@ gn_matis_voluteer [Volontaire Matis] // HASH_VALUE E9DAB4A4ABF9A4A1 // INDEX 5287 -gn_mystical__adept [Maître-Magicien Novice] +gn_mystical__adept [Maître-Mage Novice] // HASH_VALUE 691AC8A6AC9AE4A9 // INDEX 5288 @@ -22654,7 +22646,7 @@ uiResistsTable [RESISTANCES] uittMagicResistTable [Les sorts des créatures et des joueurs peuvent être complètement @{6F6F}résistés@{FFFF}.\n Le @{6F6F}pourcentage de chance@{FFFF} de résistance dépend:\n @{T4}- de la @{6F6F}puissance@{FFFF} du sort lancé si c'est un sort d'Affliction\n - @{T4}- du @{6F6F}niveau de compétence@{FFFF} du magicien si c'est un sort Elémentaire\n + @{T4}- du @{6F6F}niveau de compétence@{FFFF} du Mage si c'est un sort Elémentaire\n @{T4}- de votre @{6F6F}score de résistance@{FFFF} dans le @{6F6F}domaine de magie@{FFFF} du sort lancé\n @{T0}Votre @{6F6F}score de résistance@{FFFF} est la somme:\n @{T4}- du maximum entre vos niveaux de compétences en @{6F6F}Combat, Magie et Forage/2@{FFFF}\n @@ -23506,7 +23498,7 @@ uiItemSpecialEffectFlyingTextISE_FIGHT_ADD_CRITICAL [] // HASH_VALUE 8505579616AE5A58 // INDEX 5590 -uiItemSpecialEffectFlyingTextISE_FIGHT_VAMPIRISM [Vol de vie : %param] +uiItemSpecialEffectFlyingTextISE_FIGHT_VAMPIRISM [Vol de Vie : %param] // HASH_VALUE 6379AC9CDC28F869 // INDEX 5591 @@ -23542,7 +23534,7 @@ uihelpItemConsumableFormat [@{FFF9}Consommation :@{T21}@{FFFF}%consumption_time // HASH_VALUE 3AE04726A243C91F // INDEX 5598 -uiItemConsumableEffectDownCharac [Donne un malus de @{F22F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF} \n +uiItemConsumableEffectDownCharac [Donne un malus de @{F22F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF}\n pendant %minutes min et %secondes sec.] // HASH_VALUE 356C7F1BA243C933 @@ -23833,7 +23825,7 @@ uiMk_action2_0 [Assis] // HASH_VALUE 4A87BCEC6F2D6E60 // INDEX 5668 uiMk_action2_0_tt [Vous êtes @{6F6F}Assis@{FFFF}.\n - En étant assis, votre vie, Endurance, sève et concentration se régénèrent 2 fois plus vite.\n + En étant assis, votre Vie, Endurance, Sève et Concentration se régénèrent 2 fois plus vite.\n Cliquez pour vous lever] // HASH_VALUE 2CE7B85FAA05F490 @@ -23843,7 +23835,7 @@ uiMk_action2_1 [Debout] // HASH_VALUE C3B320EC18D4D541 // INDEX 5670 uiMk_action2_1_tt [Vous êtes @{6F6F}Debout@{FFFF}.\n - Cliquez pour vous asseoir et ainsi régénérer 2 fois plus vite votre vie, Endurance, sève et concentration] + Cliquez pour vous asseoir et ainsi régénérer 2 fois plus vite votre Vie, Endurance, Sève et Concentration] // HASH_VALUE 61A82C74E1553C8F // INDEX 5671 @@ -24047,13 +24039,13 @@ uittIdentityInfo [Permet de connaître tout ce qui a été nécessaire pour déb // HASH_VALUE CC9875537F4EABA4 // INDEX 5718 -uittIdentityHP [@{6F6F}Points de vie @{FFFF}: %n\n - Lorsque vos points de vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.] +uittIdentityHP [@{6F6F}Points de Vie @{FFFF}: %n\n + Lorsque vos points de Vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.] // HASH_VALUE E62E03C44CC6CCDF // INDEX 5719 -uittIdentitySap [@{6F6F}Points de sève @{FFFF}: %n\n - Lorsque votre niveau de sève est faible, vous ne pouvez pas jeter de sorts.] +uittIdentitySap [@{6F6F}Points de Sève @{FFFF}: %n\n + Lorsque votre niveau de Sève est faible, vous ne pouvez pas jeter de sorts.] // HASH_VALUE 96475BB346DF4BF2 // INDEX 5720 @@ -24062,18 +24054,18 @@ uittIdentitySta [@{6F6F}Points d'Endurance @{FFFF}: %n\n // HASH_VALUE 5429E1693D81762D // INDEX 5721 -uittIdentityFoc [@{6F6F}Points de concentration @{FFFF}: %n\n - Lorsque votre niveau de concentration est faible, vous ne pouvez plus réaliser d'actions de forage.] +uittIdentityFoc [@{6F6F}Points de Concentration @{FFFF}: %n\n + Lorsque votre niveau de Concentration est faible, vous ne pouvez plus réaliser d'actions de forage.] // HASH_VALUE 98A8D5EC1A1065BF // INDEX 5722 uittIdentityHPReg [@{6F6F}Régénération HP @{FFFF}: %n\n - Points de vie régénérés en 10 secondes.] + Points de Vie régénérés en 10 secondes.] // HASH_VALUE 0DA80D1162D9EB76 // INDEX 5723 uittIdentitySapReg [@{6F6F}Régénération Sap @{FFFF}: %n\n - Points de sève régénérés en 10 secondes.] + Points de Sève régénérés en 10 secondes.] // HASH_VALUE CBC3826C632A9CB8 // INDEX 5724 @@ -24083,7 +24075,7 @@ uittIdentityStaReg [@{6F6F}Régénération Endurance @{FFFF}: %n\n // HASH_VALUE 5D4AE956019C7A23 // INDEX 5725 uittIdentityFocReg [@{6F6F}Régénération Concentration @{FFFF}: %n\n - Points de concentration régénérés en 10 secondes.] + Points de Concentration régénérés en 10 secondes.] // HASH_VALUE 45CB3DCB2618D3E3 // INDEX 5726 @@ -24171,23 +24163,23 @@ uittGaugesActionBar [Indique la progression de l'@{6F6F}action @{FFFF}en cours d // HASH_VALUE 4D1DFC058F6A8F05 // INDEX 5746 -uittGaugesHP [@{6F6F}Points de vie@{FFFF}:\n - Lorsque vos points de vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.] +uittGaugesHP [@{6F6F}Points de Vie@{FFFF}:\n + Lorsque vos points de Vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.] // HASH_VALUE 3218DC16D5185B23 // INDEX 5747 -uittGaugesSap [@{6F6F}Points de sève@{FFFF}:\n - Lorsque votre niveau de sève est faible, vous ne pouvez pas jeter de sorts.] +uittGaugesSap [@{6F6F}Points de Sève@{FFFF}:\n + Lorsque votre niveau de Sève est faible, vous ne pouvez pas jeter de sorts.] // HASH_VALUE BCFAB72720F87E38 // INDEX 5748 uittGaugesSta [@{6F6F}Points d'Endurance@{FFFF}:\n - Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.] + Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre endurance.] // HASH_VALUE 21A49D1370B3A93A // INDEX 5749 -uittGaugesFoc [@{6F6F}Points de concentration@{FFFF}:\n - Lorsque votre niveau de concentration est faible, vous ne pouvez plus réaliser d'actions de forage.] +uittGaugesFoc [@{6F6F}Points de Concentration@{FFFF}:\n + Lorsque votre niveau de Concentration est faible, vous ne pouvez plus réaliser d'actions de forage.] // HASH_VALUE 1AC7CE1C76B16FB8 // INDEX 5750 @@ -24263,11 +24255,11 @@ uittChatSysInfo [@{6F6F}Informations Système\n // INDEX 5764 uittCompassRange [@{6F6F}Portée\n @{FFFF}Distance de la zone visible sur le Radar.\n - Utilisez la molette de la souris sur la fenêtre du @{6F6F}compas @{FFFF}ou faites un clic-droit et choisissez @{6F6F}Zoom Avant @{FFFF}ou @{6F6F}Zoom Arrière @{FFFF}pour modifier la valeur de la @{6F6F}portée@{FFFF}.] + Utilisez la molette de la souris sur la fenêtre du @{6F6F}radar @{FFFF}ou faites un clic-droit et choisissez @{6F6F}Zoom Avant @{FFFF}ou @{6F6F}Zoom Arrière @{FFFF}pour modifier la valeur de la @{6F6F}portée@{FFFF}.] // HASH_VALUE 70874AF6596CE72C // INDEX 5765 -uittCompassDistance [@{6F6F}Distance @{FFFF}vous séparant de l'objet sélectionné sur le compas.] +uittCompassDistance [@{6F6F}Distance @{FFFF}vous séparant de l'objet sélectionné sur le radar.] // HASH_VALUE E78C50DD64F5F5B7 // INDEX 5766 @@ -24313,8 +24305,8 @@ uittGuildMemberOffline [Non connecté] // HASH_VALUE 2E70DEE13D796052 // INDEX 5776 -uittTargetHp [@{6F6F}Points de vie @{FFFF}de la cible.\n - La cible meurt lorsque ses @{6F6F}points de vie @{FFFF}tombent à 0.] +uittTargetHp [@{6F6F}Points de Vie @{FFFF}de la cible.\n + La cible meurt lorsque ses @{6F6F}points de Vie @{FFFF}tombent à 0.] // HASH_VALUE 9E118F8DA4E4C858 // INDEX 5777 @@ -24404,17 +24396,17 @@ uittInfoArmorProtection [@{6F6F}Protection @{FFFF}:\n // HASH_VALUE D0A9618CFFCA51BE // INDEX 5795 uittInfoArmorSlash [@{6F6F}Max vs Coup Tranchant @{FFFF}:\n - Points de vie max. absorbés pour un coup "tranchant".] + Points de Vie max. absorbés pour un coup "tranchant".] // HASH_VALUE CDBA2D92024ABDBD // INDEX 5796 uittInfoArmorPierc [@{6F6F}Max vs Coup Perforant @{FFFF}:\n - Points de vie max. absorbés pour un coup "perforant".] + Points de Vie max. absorbés pour un coup "perforant".] // HASH_VALUE 4FB40368338D138F // INDEX 5797 uittInfoArmorBlunt [@{6F6F}Max vs Coup Contondant @{FFFF}:\n - Points de vie max. absorbés pour un coup "contondant".] + Points de Vie max. absorbés pour un coup "contondant".] // HASH_VALUE 3AB07105106EBD5F // INDEX 5798 @@ -25738,7 +25730,7 @@ uiR2EDRingSkills [Stats Avancées] // HASH_VALUE 2CD4FB8A6DF7CB69 // INDEX 6106 -uiR2EDEcosystemPointsTitle [Connaissance d'Atys] +uiR2EDEcosystemPointsTitle [CONNAISSANCE D'ATYS] // HASH_VALUE 6879AC7F1E76E886 // INDEX 6107 @@ -26871,11 +26863,11 @@ uiEchelon [Echelon : ] /* OLD VALUE : [Show Clock in Compass] */ // HASH_VALUE 2E428F9A99366770 // INDEX 6376 -uiShowClock [Afficher l'heure au-dessus du compas] +uiShowClock [Afficher l'heure au-dessus du radar] // HASH_VALUE E80563EA6265AD11 // INDEX 6377 -uittShowClock [Si coché, affiche l'heure courante au-dessus du compas] +uittShowClock [Si coché, affiche l'heure courante au-dessus du radar] // HASH_VALUE 5B008CB3BFE212C7 // INDEX 6378 @@ -27228,7 +27220,7 @@ uiShowClock12h [Utiliser le système horaire sur 12 heures] // HASH_VALUE BCF4DB5845BC4EDA // INDEX 6464 -uittShowClock12h [Si coché, utilise le système horaire sur 12 heures dans le compas et les messages du chat.] +uittShowClock12h [Si coché, utilise le système horaire sur 12 heures dans le radar et les messages du chat.] // HASH_VALUE 68F99C8C69A81273 // INDEX 6465 From 05d06ae70241b53b53a21ba84287e0b764bff8b3 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 19:41:49 +0100 Subject: [PATCH 090/184] Fixed: Memory leak --- code/ryzom/client/src/cdb_synchronised.cpp | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/code/ryzom/client/src/cdb_synchronised.cpp b/code/ryzom/client/src/cdb_synchronised.cpp index d5239ce0d..40aa11316 100644 --- a/code/ryzom/client/src/cdb_synchronised.cpp +++ b/code/ryzom/client/src/cdb_synchronised.cpp @@ -132,18 +132,26 @@ void CCDBSynchronised::read( const string &fileName ) // value token = strtok(buffer," \t"); - if( token == NULL ) continue; - sint64 value; - fromString((const char*)token, value); - // property name - token = strtok(NULL," \n"); - if( token == NULL ) continue; - string propName(token); + if (token) + { + sint64 value; + fromString((const char*)token, value); - // set the value of the property - ICDBNode::CTextId txtId(propName); - _Database->setProp(txtId,value); + // property name + token = strtok(NULL," \n"); + + if (token) + { + string propName(token); + + // set the value of the property + ICDBNode::CTextId txtId(propName); + _Database->setProp(txtId, value); + } + } + + delete [] buffer; } f.close(); @@ -177,7 +185,6 @@ void CCDBSynchronised::write( const string &fileName ) { nlwarning(" can't write %s : the database has not been initialized",fileName.c_str()); } - } // write // From 4345f54db758dc8cc175b39513dc277f83bd25d7 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 23 Feb 2016 19:42:15 +0100 Subject: [PATCH 091/184] Changed: Minor changes --- code/ryzom/client/src/cdb_synchronised.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/code/ryzom/client/src/cdb_synchronised.cpp b/code/ryzom/client/src/cdb_synchronised.cpp index 40aa11316..3d102071b 100644 --- a/code/ryzom/client/src/cdb_synchronised.cpp +++ b/code/ryzom/client/src/cdb_synchronised.cpp @@ -155,7 +155,6 @@ void CCDBSynchronised::read( const string &fileName ) } f.close(); - } // read // @@ -168,7 +167,7 @@ void CCDBSynchronised::write( const string &fileName ) { bool res = false; - if( _Database != 0 ) + if (_Database != 0) { FILE * f = nlfopen(fileName, "w"); if (f) @@ -292,11 +291,9 @@ string CCDBSynchronised::getString( uint32 id ) { return (*itStr).second; } - else - { - nlwarning(" string with id %d was not found",id); - return ""; - } + + nlwarning(" string with id %d was not found",id); + return ""; } // getString // From 17f0547bd924f720a530aa6f178af92d7cf237ff Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 24 Feb 2016 12:22:33 +0100 Subject: [PATCH 092/184] Fixed: Typos in french translations --- code/ryzom/tools/translation/translated/fr.uxt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 5182bd842..49db63f47 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -10904,11 +10904,11 @@ uiForce [@{FFFE}Force :@{FFFF} donne une indication générale des capacités de // HASH_VALUE 4814440444105450 // INDEX 2563 -uiAttitude [Attitude] ? +uiAttitude [Attitude] // HASH_VALUE 8ABC2C448E7E044D // INDEX 2564 -uiProgressionTitle [Ma progression] ? +uiProgressionTitle [Ma progression] // HASH_VALUE 8D21782307A23445 // INDEX 2565 @@ -14642,7 +14642,7 @@ uiSAP [Sève du personnage] // HASH_VALUE DF3C16CBBFAB2ADA // INDEX 3490 -uittSAP [Afficher la barre de Sève du personnage au-dessus de lui]] +uittSAP [Afficher la barre de Sève du personnage au-dessus de lui] // HASH_VALUE A797BF3DDF08009C // INDEX 3491 @@ -16951,7 +16951,7 @@ mpfam243 [Pigment noir] // HASH_VALUE 22A41F89225293B3 // INDEX 4067 -mpfam244 [Reste de Goo fraîche]) +mpfam244 [Reste de Goo fraîche] // HASH_VALUE A0E41787225283A1 // INDEX 4068 @@ -18979,7 +18979,7 @@ mpfam760 [Mousse de Psykopla corrompu] // HASH_VALUE EE2BDF59EC5568BA // INDEX 4574 -mpfam761 [Peau de Torbak corrompu]] +mpfam761 [Peau de Torbak corrompu] // HASH_VALUE 2E7ADF592D95A8B3 // INDEX 4575 @@ -19789,7 +19789,7 @@ uiCP_BP1 [Spécialisation : ] // HASH_VALUE CA52A40E2CF4D41C // INDEX 4775 -uiCP_BP_Des [DÉTAILS DU CONTENU] ? +uiCP_BP_Des [DÉTAILS DU CONTENU] // HASH_VALUE 4971BF2A0BB15634 // INDEX 4776 From d0d8cfaf9b3907ad0e996d559d48b7955d1c05d4 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:32:45 +0100 Subject: [PATCH 093/184] Fixed: Wrong patch categories --- code/ryzom/client/src/login_patch.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 0d0209427..e3474ed7d 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -167,18 +167,18 @@ CPatchManager::CPatchManager() : State("t_state"), DataScanState("t_data_scan_st ForceRemovePatchCategories.push_back("main_exedll_linux64"); ForceRemovePatchCategories.push_back("main_exedll_osx"); #elif defined(NL_OS_WIN32) - ForceRemovePatchCategories.push_back("main_exedll_win34"); + ForceRemovePatchCategories.push_back("main_exedll_win64"); ForceRemovePatchCategories.push_back("main_exedll_linux32"); ForceRemovePatchCategories.push_back("main_exedll_linux64"); ForceRemovePatchCategories.push_back("main_exedll_osx"); #elif defined(NL_OS_APPLE) ForceRemovePatchCategories.push_back("main_exedll_win32"); - ForceRemovePatchCategories.push_back("main_exedll_win34"); + ForceRemovePatchCategories.push_back("main_exedll_win64"); ForceRemovePatchCategories.push_back("main_exedll_linux32"); ForceRemovePatchCategories.push_back("main_exedll_linux64"); #elif defined(NL_OS_UNIX) && defined(_LP64) ForceRemovePatchCategories.push_back("main_exedll_win32"); - ForceRemovePatchCategories.push_back("main_exedll_win34"); + ForceRemovePatchCategories.push_back("main_exedll_win64"); ForceRemovePatchCategories.push_back("main_exedll_linux32"); ForceRemovePatchCategories.push_back("main_exedll_osx"); #else From 7b67b6ad7cc9963db75eb3926ded4a4006c3e81a Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:33:59 +0100 Subject: [PATCH 094/184] Fixed: Use export under UNIX to make variables available in upgd_nl.sh too --- code/ryzom/client/src/login_patch.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index e3474ed7d..70f45aeff 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -919,12 +919,13 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool contentPrefix += "set LOGIN=%4\n"; contentPrefix += "set PASSWORD=%5\n"; contentPrefix += "set SHARDID=%6\n"; - contentPrefix += toString("set UPGRADE_FILE=\"%%ROOTPATH%%\\%s\"\n", UpgradeBatchFilename.c_str()); #else contentPrefix += "#!/bin/sh\n"; - contentPrefix += "RYZOM_CLIENT=\"$1\"\n"; - contentPrefix += "UNPACKPATH=\"$2\"\n"; - contentPrefix += "ROOTPATH=\"$3\"\n"; + contentPrefix += "export RYZOM_CLIENT=$1\n"; + contentPrefix += "export UNPACKPATH=$2\n"; + contentPrefix += "export ROOTPATH=$3\n"; + contentPrefix += toString("export UPGRADE_FILE=$ROOTPATH/%s\n", UpgradeBatchFilename.c_str()); + contentPrefix += "\n"; contentPrefix += "LOGIN=$4\n"; contentPrefix += "PASSWORD=$5\n"; contentPrefix += "SHARDID=$6\n"; From 24cfa76e6bffbf984773625e78d986a544365be0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:34:50 +0100 Subject: [PATCH 095/184] Fixed: Use / instead of \ under UNIX --- code/ryzom/client/src/login_patch.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 70f45aeff..70bb3d73c 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -826,8 +826,8 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool content += toString("move %s %s\n", realSrcPath.c_str(), realDstPath.c_str()); #else // use DSTPATH and SRCPATH variables and append filenames - string realDstPath = toString("\"$ROOTPATH\\%s\"", batchRelativeDstPath.c_str()); - string realSrcPath = toString("\"$UNPACKPATH\\%s\"", FileName.c_str()); + string realDstPath = toString("\"$ROOTPATH/%s\"", batchRelativeDstPath.c_str()); + string realSrcPath = toString("\"$UNPACKPATH/%s\"", FileName.c_str()); content += toString("rm -rf %s\n", realDstPath.c_str()); content += toString("mv %s %s\n", realSrcPath.c_str(), realDstPath.c_str()); @@ -929,7 +929,6 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool contentPrefix += "LOGIN=$4\n"; contentPrefix += "PASSWORD=$5\n"; contentPrefix += "SHARDID=$6\n"; - contentPrefix += toString("UPGRADE_FILE=\"$ROOTPATH\\%s\"\n", UpgradeBatchFilename.c_str()); #endif contentPrefix += "\n"; From 00f7b0851e353f4c1698bb319fb08986bd39f29f Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:35:59 +0100 Subject: [PATCH 096/184] Changed: Improve formatting of UNIX script --- code/ryzom/client/src/login_patch.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 70bb3d73c..c4a11a22a 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -916,6 +916,8 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool contentPrefix += "set RYZOM_CLIENT=\"%1\"\n"; contentPrefix += "set UNPACKPATH=\"%2\"\n"; contentPrefix += "set ROOTPATH=\"%3\"\n"; + contentPrefix += toString("set UPGRADE_FILE=\"%%ROOTPATH%%\\%s\"\n", UpgradeBatchFilename.c_str()); + contentPrefix += "\n"; contentPrefix += "set LOGIN=%4\n"; contentPrefix += "set PASSWORD=%5\n"; contentPrefix += "set SHARDID=%6\n"; @@ -960,15 +962,15 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool } // launch upgrade script if present (it'll execute additional steps like moving or deleting files) - contentSuffix += "if [ -e \"$UPGRADE_FILE\" ]; then chmod +x \"$UPGRADE_FILE\" && \"$UPGRADE_FILE\"; fi\n"; + contentSuffix += "if [ -e \"$UPGRADE_FILE\" ]; then chmod +x \"$UPGRADE_FILE\" && \"$UPGRADE_FILE\"; fi\n\n"; // be sure file is executable - contentSuffix += "chmod +x \"$RYZOM_CLIENT\"\n"; + contentSuffix += "chmod +x \"$RYZOM_CLIENT\"\n\n"; if (wantRyzomRestart) { // change to previous client directory - contentSuffix += "cd \"$ROOTPATH\"\n"; + contentSuffix += "cd \"$ROOTPATH\"\n\n"; // launch new client contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str()); From bc2c147722631de5f9d554e671277f6088e8fc1a Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:37:43 +0100 Subject: [PATCH 097/184] Changed: New functions to convert arguments string from/to an array of strings --- code/nel/include/nel/misc/common.h | 4 ++ code/nel/src/misc/cmd_args.cpp | 35 ++----------- code/nel/src/misc/common.cpp | 79 ++++++++++++++++++++++++++---- 3 files changed, 77 insertions(+), 41 deletions(-) diff --git a/code/nel/include/nel/misc/common.h b/code/nel/include/nel/misc/common.h index dd1c80fb3..a654b703e 100644 --- a/code/nel/include/nel/misc/common.h +++ b/code/nel/include/nel/misc/common.h @@ -378,6 +378,10 @@ std::string getCommandOutput(const std::string &command); /// Authorized characters in names are A-Z, a-z, 0-9 and _ std::string expandEnvironmentVariables(const std::string &s); +/// Functions to convert a string with arguments to array or array to string (will espace strings with spaces) +bool explodeArguments(const std::string &str, std::vector &args); +std::string joinArguments(const std::vector &args); + /// This function kills a program using his pid (on unix, it uses the kill() POSIX function) bool killProgram(uint32 pid); diff --git a/code/nel/src/misc/cmd_args.cpp b/code/nel/src/misc/cmd_args.cpp index 647bac008..65aae5769 100644 --- a/code/nel/src/misc/cmd_args.cpp +++ b/code/nel/src/misc/cmd_args.cpp @@ -202,42 +202,13 @@ bool CCmdArgs::parse(const std::string &args) wchar_t str[4096]; uint len = GetModuleFileNameW(NULL, str, 4096); + // first argument should be full path to executable if (len && len < 4096) argv.push_back(wideToUtf8(str)); #endif - std::string::size_type pos1 = 0, pos2 = 0; - - do - { - // Look for the first non space character - pos1 = args.find_first_not_of (" ", pos2); - if(pos1 == std::string::npos) break; - - // Look for the first space or " - pos2 = args.find_first_of (" \"", pos1); - if(pos2 != std::string::npos) - { - // " ? - if(args[pos2] == '"') - { - // Look for the final \" - pos2 = args.find_first_of ("\"", pos2+1); - if(pos2 != std::string::npos) - { - // Look for the first space - pos2 = args.find_first_of (" ", pos2+1); - } - } - } - - // Compute the size of the string to extract - std::string::difference_type length = (pos2 != std::string::npos) ? pos2-pos1 : std::string::npos; - - std::string tmp = args.substr (pos1, length); - argv.push_back (tmp); - } - while(pos2 != std::string::npos); + // convert string with arguments to array + explodeArguments(args, argv); return parse(argv); } diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index c71688174..1050db638 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -851,15 +851,7 @@ bool launchProgram(const std::string &programName, const std::string &arguments, // convert one arg into several args vector args; - string::size_type pos1 = 0, pos2 = 0; - do - { - pos1 = arguments.find_first_not_of (" ", pos2); - if (pos1 == string::npos) break; - pos2 = arguments.find_first_of (" ", pos1); - args.push_back (arguments.substr (pos1, pos2-pos1)); - } - while (pos2 != string::npos); + explodeArguments(arguments, args); // Store the size of each arg vector argv(args.size()+2); @@ -1039,6 +1031,75 @@ std::string expandEnvironmentVariables(const std::string &s) return ret; } +bool explodeArguments(const std::string &str, std::vector &args) +{ + if (str.empty()) return false; + + std::string::size_type pos1 = 0, pos2 = 0; + + do + { + // Look for the first non space character + pos1 = str.find_first_not_of (" ", pos2); + if (pos1 == std::string::npos) break; + + // Look for the first space or " + pos2 = str.find_first_of (" \"", pos1); + if (pos2 != std::string::npos) + { + // " ? + if (str[pos2] == '"') + { + // Look for the final \" + pos2 = str.find_first_of ("\"", pos2+1); + if (pos2 != std::string::npos) + { + // Look for the first space + pos2 = str.find_first_of (" ", pos2+1); + } + } + } + + // Compute the size of the string to extract + std::string::difference_type length = (pos2 != std::string::npos) ? pos2-pos1 : std::string::npos; + + std::string tmp = str.substr (pos1, length); + + // remove escape " from argument + if (tmp.length() > 1 && tmp[0] == '"' && tmp[tmp.length()-1] == '"') tmp = tmp.substr(1, tmp.length()-2); + + args.push_back (tmp); + } + while(pos2 != std::string::npos); + + return true; +} + +std::string joinArguments(const std::vector &args) +{ + std::string res; + + for(uint i = 0, len = (uint)args.size(); i < len; ++i) + { + const std::string &arg = args[i]; + + // prepend space + if (!res.empty()) res += " "; + + // escape only if spaces or empty argument + if (arg.empty() || arg.find(' ') != std::string::npos) + { + res += "\"" + arg + "\""; + } + else + { + res += arg; + } + } + + return res; +} + /* * Display the bits (with 0 and 1) composing a byte (from right to left) */ From 1704030c383c8e7d5794c21273b4e89ec8322f82 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 18:38:58 +0100 Subject: [PATCH 098/184] Changed: New functions launchProgramArray to pass an array of strings as arguments (easier to escape) --- code/nel/include/nel/misc/common.h | 3 + code/nel/src/misc/common.cpp | 105 ++++++++++++++++++++++++++ code/ryzom/client/src/login_patch.cpp | 21 ++++-- 3 files changed, 121 insertions(+), 8 deletions(-) diff --git a/code/nel/include/nel/misc/common.h b/code/nel/include/nel/misc/common.h index a654b703e..4ddc88076 100644 --- a/code/nel/include/nel/misc/common.h +++ b/code/nel/include/nel/misc/common.h @@ -366,6 +366,9 @@ std::string formatThousands(const std::string& s); /// The program will be launched in the current directory bool launchProgram (const std::string &programName, const std::string &arguments, bool log = true); +/// Same but with an array of strings for arguments +bool launchProgramArray (const std::string &programName, const std::vector &arguments, bool log = true); + /// This function executes a program and wait for result (used for example for crash report). /// The program will be launched in the current directory sint launchProgramAndWaitForResult (const std::string &programName, const std::string &arguments, bool log = true); diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index 1050db638..424a1de20 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -831,6 +831,7 @@ bool launchProgram(const std::string &programName, const std::string &arguments, #endif static bool firstLaunchProgram = true; + if (firstLaunchProgram) { // The aim of this is to avoid defunct process. @@ -896,6 +897,110 @@ bool launchProgram(const std::string &programName, const std::string &arguments, return false; } +bool launchProgramArray (const std::string &programName, const std::vector &arguments, bool log) +{ +#ifdef NL_OS_WINDOWS + PROCESS_INFORMATION pi; + + std::string argumentsJoined = joinArguments(arguments); + + if (!createProcess(programName, argumentsJoined, log, pi)) return false; + + //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + return true; +#else + +#ifdef NL_OS_MAC + // special OS X case with bundles + if (toLower(programName).find(".app") != std::string::npos) + { + // we need to open bundles with "open" command + std::string command = NLMISC::toString("open \"%s\"", programName.c_str()); + + // append arguments if any + if (!arguments.empty()) + { + command += NLMISC::toString(" --args %s", joinArguments(arguments).c_str()); + } + + int res = system(command.c_str()); + + if (!res) return true; + + if (log) + { + nlwarning ("LAUNCH: Failed launched '%s' with arg '%s' return code %d", programName.c_str(), arguments.c_str(), res); + } + + return false; + } +#endif + + static bool firstLaunchProgram = true; + + if (firstLaunchProgram) + { + // The aim of this is to avoid defunct process. + // + // From "man signal": + //------ + // According to POSIX (3.3.1.3) it is unspecified what happens when SIGCHLD is set to SIG_IGN. Here + // the BSD and SYSV behaviours differ, causing BSD software that sets the action for SIGCHLD to + // SIG_IGN to fail on Linux. + //------ + // + // But it works fine on my GNU/Linux so I do this because it's easier :) and I don't know exactly + // what to do to be portable. + signal(SIGCHLD, SIG_IGN); + + firstLaunchProgram = false; + } + + // Store the size of each arg + vector argv(arguments.size()+2); + uint i = 0; + argv[i] = (char *)programName.c_str(); + for (; i < arguments.size(); i++) + { + argv[i+1] = (char *) arguments[i].c_str(); + } + argv[i+1] = NULL; + + int status = vfork (); + ///////////////////////////////////////////////////////// + /// WARNING : NO MORE INSTRUCTION AFTER VFORK ! + /// READ VFORK manual + ///////////////////////////////////////////////////////// + if (status == -1) + { + char *err = strerror (errno); + if (log) + nlwarning("LAUNCH: Failed launched '%s' with arg '%s' err %d: '%s'", programName.c_str(), arguments.c_str(), errno, err); + } + else if (status == 0) + { + // Exec (the only allowed instruction after vfork) + status = execvp(programName.c_str(), &argv.front()); + + if (status == -1) + { + perror("Failed launched"); + _exit(EXIT_FAILURE); + } + } + else + { + //nldebug("LAUNCH: Successful launch '%s' with arg '%s'", programName.c_str(), arguments.c_str()); + + return true; + } +#endif + + return false; +} + sint launchProgramAndWaitForResult(const std::string &programName, const std::string &arguments, bool log) { #ifdef NL_OS_WINDOWS diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index c4a11a22a..8208d6e28 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1022,32 +1022,37 @@ void CPatchManager::executeBatchFile() // make script executable CFile::setRWAccess(batchFilename); - std::string arguments; + std::vector arguments; // 3 first parameters are Ryzom client full path, patch directory full path and client root directory full path #ifdef NL_OS_WINDOWS - arguments += "\"" + CPath::standardizeDosPath(RyzomFilename) + "\" \"" + CPath::standardizeDosPath(ClientPatchPath) + "\" \"" + CPath::standardizeDosPath(ClientRootPath) + "\""; + arguments.push_back(CPath::standardizeDosPath(RyzomFilename)); + arguments.push_back(CPath::standardizeDosPath(ClientPatchPath)); + arguments.push_back(CPath::standardizeDosPath(ClientRootPath)); #else - arguments += "\"" + RyzomFilename + "\" \"" + ClientPatchPath + "\" " + ClientRootPath + "\""; + arguments.push_back(RyzomFilename); + arguments.push_back(ClientPatchPath); + arguments.push_back(ClientRootPath); #endif - // append login, password and shard + // append login, password and shard if (!LoginLogin.empty()) { - arguments += " " + LoginLogin; + arguments.push_back(LoginLogin); if (!LoginPassword.empty()) { - arguments += " " + LoginPassword; + arguments.push_back(LoginPassword); if (!r2Mode) { - arguments += " " + toString(LoginShardId); + arguments.push_back(toString(LoginShardId)); } } } - if (!launchProgram(batchFilename, arguments, false)) + // launchProgram with array of strings as argument will escape arguments with spaces + if (!launchProgramArray(batchFilename, arguments, false)) { // error occurs during the launch string str = toString("Can't execute '%s': code=%d %s (error code 30)", batchFilename.c_str(), errno, strerror(errno)); From 11447db5734e0bae6928e8102fd47546f91f7230 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 27 Feb 2016 19:22:23 +0100 Subject: [PATCH 099/184] Fixed: Compilation --- code/nel/src/misc/common.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index 424a1de20..55b8e0d62 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -977,7 +977,7 @@ bool launchProgramArray (const std::string &programName, const std::vector Date: Sun, 28 Feb 2016 12:45:31 +0100 Subject: [PATCH 100/184] Fixed: Compilation under OS X --- code/nel/src/misc/common.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index 55b8e0d62..d902cf47b 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -919,10 +919,12 @@ bool launchProgramArray (const std::string &programName, const std::vector Date: Sun, 28 Feb 2016 16:36:46 +0100 Subject: [PATCH 101/184] Added: Scripts launched after patch --- code/ryzom/client/macosx/upgd_nl.sh | 38 +++++++++++++++++++++++++++++ code/ryzom/client/unix/upgd_nl.sh | 15 ++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 code/ryzom/client/macosx/upgd_nl.sh create mode 100644 code/ryzom/client/unix/upgd_nl.sh diff --git a/code/ryzom/client/macosx/upgd_nl.sh b/code/ryzom/client/macosx/upgd_nl.sh new file mode 100644 index 000000000..046034027 --- /dev/null +++ b/code/ryzom/client/macosx/upgd_nl.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +if [ -z "$ROOTPATH" ] +then + echo "upgd_nl.sh can only be launched from updt_nl.sh" + exit 1 +fi + +# determine directory where all files reside +CONTENTSPATH=$(dirname $ROOTPATH) +MACOSPATH=$(dirname $RYZOM_CLIENT) +SIGNPATH=$CONTENTSPATH/_CodeSignature + +# all files of original Bundle are in the same directory +# we have to copy them to the right location + +# client_default.cfg and ryzom.icns are already in the right location + +# PkgInfo usually doesn't change so don't copy it + +# Info.plist contains updated version +cp -p $ROOTPATH/Info.plist $CONTENTSPATH + +cp -p $ROOTPATH/CodeResources $SIGNPATH + +# executable flag for all executables +chmod +x $ROOTPATH/Ryzom +chmod +x $ROOTPATH/CrashReport +chmod +x $ROOTPATH/RyzomClientPatcher +chmod +x $ROOTPATH/RyzomConfiguration + +# copy all binaries in MacOS directory +cp -p $ROOTPATH/Ryzom $MACOSPATH +cp -p $ROOTPATH/CrashReport $MACOSPATH +cp -p $ROOTPATH/RyzomClientPatcher $MACOSPATH +cp -p $ROOTPATH/RyzomConfiguration $MACOSPATH + +exit 0 diff --git a/code/ryzom/client/unix/upgd_nl.sh b/code/ryzom/client/unix/upgd_nl.sh new file mode 100644 index 000000000..a1af6867e --- /dev/null +++ b/code/ryzom/client/unix/upgd_nl.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +if [ -z "$ROOTPATH" ] +then + echo "upgd_nl.sh can only be launched from updt_nl.sh" + exit 1 +fi + +# executable flag for all executables +chmod +x $ROOTPATH/ryzom_client +chmod +x $ROOTPATH/crash_report +chmod +x $ROOTPATH/ryzom_client_patcher +chmod +x $ROOTPATH/ryzom_configuration + +exit 0 From f0794ee67277cbad3490a8da57dd6314603219bf Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 28 Feb 2016 16:38:12 +0100 Subject: [PATCH 102/184] Fixed: Wrong check for OS X --- code/ryzom/client/src/login_patch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 8208d6e28..bd806e8bf 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -171,7 +171,7 @@ CPatchManager::CPatchManager() : State("t_state"), DataScanState("t_data_scan_st ForceRemovePatchCategories.push_back("main_exedll_linux32"); ForceRemovePatchCategories.push_back("main_exedll_linux64"); ForceRemovePatchCategories.push_back("main_exedll_osx"); -#elif defined(NL_OS_APPLE) +#elif defined(NL_OS_MAC) ForceRemovePatchCategories.push_back("main_exedll_win32"); ForceRemovePatchCategories.push_back("main_exedll_win64"); ForceRemovePatchCategories.push_back("main_exedll_linux32"); From 14d90e4292ed46bd1898402293fa2321e4d105e3 Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 28 Feb 2016 16:41:53 +0100 Subject: [PATCH 103/184] Changed: Delete updt_nl.bat/sh only when patch enabled and after determining ClientRootPath --- code/ryzom/client/src/client.cpp | 18 ------------------ code/ryzom/client/src/login_patch.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 63392dd15..e4a77b3c6 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -275,20 +275,6 @@ int main(int argc, char **argv) pump (); - // Delete the .bat file because it s not useful anymore - if (NLMISC::CFile::fileExists("updt_nl.bat")) - NLMISC::CFile::deleteFile("updt_nl.bat"); - if (NLMISC::CFile::fileExists("bug_report.exe")) - NLMISC::CFile::deleteFile("bug_report.exe"); - if (NLMISC::CFile::fileExists("bug_report_r.exe")) - NLMISC::CFile::deleteFile("bug_report_r.exe"); - if (NLMISC::CFile::fileExists("bug_report_rd.exe")) - NLMISC::CFile::deleteFile("bug_report_rd.exe"); - if (NLMISC::CFile::fileExists("bug_report_df.exe")) - NLMISC::CFile::deleteFile("bug_report_df.exe"); - if (NLMISC::CFile::fileExists("bug_report_d.exe")) - NLMISC::CFile::deleteFile("bug_report_d.exe"); - // Delete all the .ttf file in the /data directory { vector files; @@ -303,10 +289,6 @@ int main(int argc, char **argv) #else // TODO for Linux : splashscreen - - // Delete the .sh file because it s not useful anymore - if (NLMISC::CFile::fileExists("updt_nl.sh")) - NLMISC::CFile::deleteFile("updt_nl.sh"); #endif // initialize patch manager and set the ryzom full path, before it's used diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index bd806e8bf..20bfcbed0 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -195,6 +195,12 @@ void CPatchManager::setClientRootPath(const std::string& clientRootPath) ClientRootPath = CPath::standardizePath(clientRootPath); ClientPatchPath = CPath::standardizePath(ClientRootPath + "unpack"); + // Delete the .sh file because it's not useful anymore + std::string fullUpdateBatchFilename = ClientRootPath + UpdateBatchFilename; + + if (NLMISC::CFile::fileExists(fullUpdateBatchFilename)) + NLMISC::CFile::deleteFile(fullUpdateBatchFilename); + WritableClientDataPath = CPath::standardizePath(ClientRootPath + "data"); #ifdef NL_OS_MAC From 589e3202661b7a5aa8f91311ff965b937d0691f5 Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 28 Feb 2016 16:44:08 +0100 Subject: [PATCH 104/184] Fixed: Only use "open" if extension is app --- code/nel/src/misc/common.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index d902cf47b..5954ac9c9 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -806,7 +806,7 @@ bool launchProgram(const std::string &programName, const std::string &arguments, #ifdef NL_OS_MAC // special OS X case with bundles - if (toLower(programName).find(".app") != std::string::npos) + if (toLower(CFile::getExtension(programName)) == ".app") { // we need to open bundles with "open" command std::string command = NLMISC::toString("open \"%s\"", programName.c_str()); @@ -914,7 +914,7 @@ bool launchProgramArray (const std::string &programName, const std::vector Date: Sun, 28 Feb 2016 18:56:19 +0100 Subject: [PATCH 105/184] Changed: Try to load Steam DLL using absolute path --- code/ryzom/client/src/steam_client.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/src/steam_client.cpp b/code/ryzom/client/src/steam_client.cpp index 5e954a94b..03ed261d0 100644 --- a/code/ryzom/client/src/steam_client.cpp +++ b/code/ryzom/client/src/steam_client.cpp @@ -22,6 +22,8 @@ #include "steam_client.h" +#include "nel/misc/cmd_args.h" + #include // prototypes definitions for Steam API functions we'll call @@ -148,6 +150,8 @@ protected: func_t m_Func; }; +extern NLMISC::CCmdArgs Args; + // listener called by Steam when AuthSessionTicket is available class CAuthSessionTicketListener { @@ -297,7 +301,7 @@ bool CSteamClient::init() #endif // try to load library - _Handle = NLMISC::nlLoadLibrary(filename); + _Handle = NLMISC::nlLoadLibrary(Args.getProgramPath() + filename); if (!_Handle) { From cf4e747182584e67c8016298d404a3d76ec42403 Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 28 Feb 2016 18:58:10 +0100 Subject: [PATCH 106/184] Changed: Updated translations --- .../ryzom/tools/translation/translated/fr.uxt | 1109 ++++++++--------- 1 file changed, 544 insertions(+), 565 deletions(-) diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 49db63f47..660bc0a30 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -6863,7 +6863,6 @@ uimRemoveUserChat [SUP. L'UTILISATEUR DU CHAT] // INDEX 1651 uimDismiss [Rejeter] -/* OLD VALUE : [SELECT. LE SUCCESSEUR] */ // HASH_VALUE FC04F8070EF2373C // INDEX 1652 uimSetSuccesor [Passer successeur] @@ -7929,8 +7928,6 @@ uiKeyPA1 [PA1] // INDEX 1916 uiKeyOEM_CLEAR [OEM Clear] -/* OLD VALUE : [,] */ -/* OLD VALUE : [,] */ // HASH_VALUE C9D084204910841E // INDEX 1917 uiKeyCOMMA [Virgule] @@ -20057,7 +20054,7 @@ uiAppear_Infos_Fyros [LA CIVILISATION FYROS\n \n Du haut de ces dunes hostiles, nous allons rebâtir notre nouvel Empire, le rendre plus fort et forger notre alliance avec les Kamis dont nous utilisons fièrement la magie. Nous aspirons également à développer davantage nos connaissances sur la fabrication d'outils et d'armes forgés par le feu pour accompagner notre quête de la vérité.\n \n - Si tu es vif et juste, rejoins nos rangs, homin ! Un Empire t'attend !\n + Si tu es vif et juste, rejoins nos rangs, homin ! Un Empire t'attend !\n \n Maintenant, si tu as des questions...\n \n @@ -20334,7 +20331,7 @@ uiAppear_Infos_Zorai [LA CIVILISATION ZORAÏ\n - former des guildes puissantes capables de libérer l'hominité de l'influence de la Karavan. Alors, nous pourrons joindre nos forces dans notre croisade contre la goo et rendre ce monde meilleur\n - retrouver les connaissances perdues durant le Grand Essaim. Si vous découvrez ce savoir, vous pourrez alors ouvrir les portes secrètes de notre passé.\n \n - Qui sont nos amis ?\n + Qui sont nos amis ?\n Depuis la signature du Traité de Paix à Fairhaven en 2515, nous sommes en paix avec les autres peuples homins. Mais dix ans de paix ne parviendront jamais à effacer les nombreuses années de barbarie qui était monnaie courante sur les autres territoires homins. Qui plus est, nous trouvons que certains homins font preuve de plus de mérite que d'autres.\n Les Fyros : les Fyros sont d'impertinents mais courageux guerriers qui récemment se sont montrés dignes de notre confiance. Ils font de bons progrès dans leur développement spirituel et ont clairement choisi la voie des Kamis.\n Les Trykers : l'esprit des Trykers n'a pas suffisamment évolué pour pouvoir accepter l'illumination des Kamis. Ils n'ont que peu d'intérêts spirituellement. Il se dit qu'ils auraient non seulement accueilli les Kamis avec frivolité par le passé, mais qu'ils vénèrent la Karavan, hostile aux Kamis.\n @@ -20417,119 +20414,119 @@ uiMK_Move_1 [Stop] // HASH_VALUE 4494F4344494F434 // INDEX 4851 -uiMK_Move_0 [SE DEPLACER] +uiMK_Move_0 [Se déplacer] // HASH_VALUE C4B08450D22CC4F6 // INDEX 4852 -uiMK_Sit [SE LEVER / S'ASSEOIR] +uiMK_Sit [Se lever / S'asseoir] // HASH_VALUE 0972B439CCD2E826 // INDEX 4853 -uiMK_Sit_1 [SE LEVER] +uiMK_Sit_1 [Se lever] // HASH_VALUE 0F53E8438D431439 // INDEX 4854 -uiMK_Sit_0 [S'ASSEOIR] +uiMK_Sit_0 [S'asseoir] // HASH_VALUE 438EB8300DA02338 // INDEX 4855 -uiMK_Run [MARCHER/COURIR] +uiMK_Run [Marcher / Courir] // HASH_VALUE 209054484410F434 // INDEX 4856 -uiMK_Run_1 [COURIR] +uiMK_Run_1 [Courir] // HASH_VALUE 0AA1882F3F7E13F8 // INDEX 4857 -uiMK_Run_0 [MARCHER] +uiMK_Run_0 [Marcher] // HASH_VALUE 85E0C04ACCAE6E1D // INDEX 4858 -uiMK_Attack [ATTAQUER/DESENGAGER] +uiMK_Attack [Attaquer / Désengager] // HASH_VALUE 87D2D4194CA1B01B // INDEX 4859 -uiMK_Attack_0 [ATTAQUER] +uiMK_Attack_0 [Attaquer] // HASH_VALUE 8861681185C0B82F // INDEX 4860 -uiMK_Attack_1 [DEGAGER] +uiMK_Attack_1 [Dégager] // HASH_VALUE 0621C4150ACC8809 // INDEX 4861 -uiMK_Defense [ESQUIVE/PARADE] +uiMK_Defense [Esquive / Parade] // HASH_VALUE C8A00F1A7FB0EF11 // INDEX 4862 -uiMK_Defense_0 [ESQUIVER] +uiMK_Defense_0 [Esquiver] // HASH_VALUE 0842D73ABF93E33F // INDEX 4863 -uiMK_Defense_1 [PARER] +uiMK_Defense_1 [Parer] // HASH_VALUE C9B200431063D41D // INDEX 4864 -uiMK_Action_1 [EXTRAIRE] +uiMK_Action_1 [Extraire] // HASH_VALUE C1113B1888ADC029 // INDEX 4865 -uiMK_Kick [INVITER/EJECTER/QUITTER] +uiMK_Kick [Inviter / Exclure / Quitter] // HASH_VALUE 88A3AC3CC9D28847 // INDEX 4866 -uiMK_Kick_0 [INVITER] +uiMK_Kick_0 [Inviter] // HASH_VALUE 48D0942C48D0942C // INDEX 4867 -uiMK_Kick_1 [SHOOTER] +uiMK_Kick_1 [Exclure] // HASH_VALUE 84518022C7518017 // INDEX 4868 -uiMK_Action_2 [SE SEPARER] +uiMK_Action_2 [Quitter] // HASH_VALUE C2BFE32C4A11E417 // INDEX 4869 -uiMK_Action_3 [PARLER A] +uiMK_Action_3 [Parler à] // HASH_VALUE 5010542050105420 // INDEX 4870 -uiMK_Game_1 [AIDE] +uiMK_Game_1 [Aide] // HASH_VALUE 8D91AC32CB222C50 // INDEX 4871 -uiMK_Game_2 [FENETRE] +uiMK_Game_2 [Fenêtre] // HASH_VALUE F23D53330BCFE2D7 // INDEX 4872 -uiMK_MoreWin [PLUS...] +uiMK_MoreWin [Plus...] // HASH_VALUE BA44D73E928F5459 // INDEX 4873 -uiMK_Game_3 [1ER BUREAU] +uiMK_Game_3 [1er bureau] // HASH_VALUE FA43C32F519F1454 // INDEX 4874 -uiMK_Game_4 [2EME BUREAU] +uiMK_Game_4 [2e bureau] // HASH_VALUE 3A43D33052AF1458 // INDEX 4875 -uiMK_Game_5 [3EME BUREAU] +uiMK_Game_5 [3e bureau] // HASH_VALUE 7B83DB35D3BF245A // INDEX 4876 -uiMK_Game_6 [4EME BUREAU] +uiMK_Game_6 [4e bureau] // HASH_VALUE 1052E4247CCF1312 // INDEX 4877 -uiMK_Game_7 [QUITTER RYZOM] +uiMK_Game_7 [Quitter Ryzom] // HASH_VALUE 48209C2B05607C06 // INDEX 4878 -uiMK_Game_8 [CONFIGURER RYZOM] +uiMK_Game_8 [Configurer Ryzom] // HASH_VALUE 48D454105014F450 // INDEX 4879 -uiMK_Game_Desk [BUREAU] +uiMK_Game_Desk [Bureau] // HASH_VALUE E3194849B0B6D7C1 // INDEX 4880 @@ -20541,7 +20538,7 @@ uiConfigLanguage [Langue :] // HASH_VALUE EDAC6DAA6E2B04C3 // INDEX 4882 -uiConfigSaveConfig [Sauvegarder le fichier config en quittant le jeu] +uiConfigSaveConfig [Sauvegarder le fichier de configuration en quittant le jeu] // HASH_VALUE 609C4404645834B8 // INDEX 4883 @@ -20597,11 +20594,11 @@ uiConfigDisplay [Affichage] // HASH_VALUE E99BD8768C14E8A2 // INDEX 4896 -uiConfigDisplayDetails [Détails Affichage] +uiConfigDisplayDetails [Détails de l'affichage] // HASH_VALUE E83C6C4A42DA24B4 // INDEX 4897 -uiConfigDisplayAdvanced [Affichage Avancé] +uiConfigDisplayAdvanced [Affichage avancé] // HASH_VALUE 28FAB79D68B7C4B1 // INDEX 4898 @@ -20637,15 +20634,15 @@ uiConfigSuper [Fort] // HASH_VALUE C837A3C7FBEEC2B6 // INDEX 4906 -uiConfigTexturePoor [Faible (32 Mo VRAM)] +uiConfigTexturePoor [Faible (32 Mio VRAM)] // HASH_VALUE B5404B29006E0324 // INDEX 4907 -uiConfigTextureNormal [Normale (64 Mo VRAM)] +uiConfigTextureNormal [Normale (64 Mio VRAM)] // HASH_VALUE 0B1D5ADBC3411D30 // INDEX 4908 -uiConfigTextureSuper [Haute (128 Mo VRAM)] +uiConfigTextureSuper [Haute (128 Mio VRAM)] // HASH_VALUE 701C9488701C9488 // INDEX 4909 @@ -20665,7 +20662,7 @@ uiConfigDriver [Pilote] // HASH_VALUE 66A22AF0BCD16D2F // INDEX 4913 -uiConfigOpenGLOrD3D [Spécifiez si Ryzom doit être exécuté en OpenGL ou en Direct3D :] +uiConfigOpenGLOrD3D [Précisez si Ryzom doit être exécuté en OpenGL ou en Direct3D :] // HASH_VALUE E59A7CA362496CA1 // INDEX 4914 @@ -20673,11 +20670,11 @@ uiConfigParameters [Paramètres] // HASH_VALUE B667779A902D697B // INDEX 4915 -uiConfigWindowedOrFullscreen [Spécifiez si Ryzom doit être exécuté en mode plein écran ou fenêtre :] +uiConfigWindowedOrFullscreen [Précisez si Ryzom doit être exécuté en mode plein écran ou fenêtré :] // HASH_VALUE 24998B8634D89666 // INDEX 4916 -uiConfigVideoMode [Spécifiez un mode vidéo :] +uiConfigVideoMode [Précisez un mode vidéo :] // HASH_VALUE CD15A89865F46A19 // INDEX 4917 @@ -20697,11 +20694,11 @@ uiConfigPositionY [PositionY :] // HASH_VALUE 6CA7B090A988CC8A // INDEX 4921 -uiConfigFullscreen [Plein Ecran] +uiConfigFullscreen [Plein écran] // HASH_VALUE 6498945C645874BC // INDEX 4922 -uiConfigWindowed [FENETRE] +uiConfigWindowed [Fenêtré] // HASH_VALUE 65146C4AE6B2DC42 // INDEX 4923 @@ -20709,7 +20706,7 @@ uiConfigOpenGL [OpenGL] // HASH_VALUE 649C941064CC448C // INDEX 4924 -uiConfigDirect3D [Direct3d] +uiConfigDirect3D [Direct3D] // HASH_VALUE 6C1C54046C1C5404 // INDEX 4925 @@ -20721,7 +20718,7 @@ uiConfigLandscape [Paysage] // HASH_VALUE 6C59D70C97545BA6 // INDEX 4927 -uiConfigLOD [Niveau de détails :] +uiConfigLOD [Niveau de détail :] // HASH_VALUE EBB8908AE7A7C477 // INDEX 4928 @@ -20729,7 +20726,7 @@ uiConfigCharacters [Personnages] // HASH_VALUE 5890841858908418 // INDEX 4929 -uiConfigFX [Effets Spéciaux] +uiConfigFX [Effets spéciaux] // HASH_VALUE 741C5450705824D4 // INDEX 4930 @@ -20753,7 +20750,7 @@ uiConfigExtensions [Extensions : ] // HASH_VALUE 288AD44467A43899 // INDEX 4935 -uiConfigActivateSound [Activer Son] +uiConfigActivateSound [Activer le son] // HASH_VALUE 0D55D094EAE9EE4B // INDEX 4936 @@ -20769,11 +20766,11 @@ uiConfigEnableFMod [Utiliser le mode FMod] // HASH_VALUE DB2A146EDB66686E // INDEX 4939 -uiConfigSoundForceSoftware [Software Sound (peut augmenter fps)] +uiConfigSoundForceSoftware [Son du jeu logiciel (peut augmenter les FPS)] // HASH_VALUE DC49E89266A3DF8D // INDEX 4940 -uiConfigAboutRyzomConfiguration [A Propos de la Configuration de Ryzom] +uiConfigAboutRyzomConfiguration [À propos de la configuration de Ryzom] // HASH_VALUE C409F89268049668 // INDEX 4941 @@ -20793,11 +20790,11 @@ uiConfigDriverDesc [Pilote : ] // HASH_VALUE 2D1B383F3B11D4B3 // INDEX 4945 -uiConfigDriverVersion [Version du Driver : ] +uiConfigDriverVersion [Version du pilote :] // HASH_VALUE 0D6DFF5F9B2A41C0 // INDEX 4946 -uiConfigAdvancedComment [Modifiez ces réglages uniquement si vous rencontrez des problèmes en lançant le jeu] +uiConfigAdvancedComment [Modifiez ces réglages uniquement si vous rencontrez des problèmes en lançant le jeu.] // HASH_VALUE A27AB48484F9DCB2 // INDEX 4947 @@ -20817,59 +20814,59 @@ uiConfigDisableTextureShader [Désactiver pixel shaders] // HASH_VALUE 1E744C742153FB35 // INDEX 4951 -uiConfigMenuAbout [&A Propos de la Configuration de Ryzom...] +uiConfigMenuAbout [&À propos de la configuration de Ryzom...] // HASH_VALUE ACF4870B9739D8B6 // INDEX 4952 -uiConfigSystemInfoPhyMem [Mémoire Physique : ] +uiConfigSystemInfoPhyMem [Mémoire physique : ] // HASH_VALUE A675CE4A2AAA0464 // INDEX 4953 -uiConfigSystemInfoOS [Système d'Exploitation : ] +uiConfigSystemInfoOS [Système d'exploitation : ] // HASH_VALUE 2C8182153860C10C // INDEX 4954 -uiConfigSystemInfoCPU [Unité Centrale : ] +uiConfigSystemInfoCPU [Unité centrale : ] // HASH_VALUE 9528689EE50379E9 // INDEX 4955 -uiConfigSystemInfoVideo [Matériel Vidéo : ] +uiConfigSystemInfoVideo [Matériel vidéo : ] // HASH_VALUE 6BE8B49B27C5D2CF // INDEX 4956 -uiConfigSystemInfoVideoDriver [Version du driver vidéo : ] +uiConfigSystemInfoVideoDriver [Version du pilote vidéo : ] // HASH_VALUE 40D4943440D49434 // INDEX 4957 -uiCaracMisc [DIVERS] +uiCaracMisc [Divers] // HASH_VALUE 1099CF8010269298 // INDEX 4958 -uiTotalMalus [Pénalité Totale ] +uiTotalMalus [Pénalité totale ] // HASH_VALUE C9B2BB39E243FB2A // INDEX 4959 -uiBagBulk [Volume du Sac ] +uiBagBulk [Volume du sac ] // HASH_VALUE A283A38D94F8EF4A // INDEX 4960 -uiWeightSpeedFactor [Facteur de Vitesse ] +uiWeightSpeedFactor [Facteur de vitesse ] // HASH_VALUE 8773A9CCE8467FD9 // INDEX 4961 -uiUpdateDisplayDriversNotUpToDate [Vos drivers vidéos ne sont pas à jour.] +uiUpdateDisplayDriversNotUpToDate [Vos pilotes vidéo ne sont pas à jour.] // HASH_VALUE CECEB1E9359CF0EA // INDEX 4962 -uiUpdateDisplayDrivers [Souhaitez-vous mettre à niveau vos drivers ?] +uiUpdateDisplayDrivers [Souhaitez-vous mettre à niveau vos pilotes ?] // HASH_VALUE 2F4B742C5031D0AB // INDEX 4963 -uiUpdateDisplayDriversCurrent [Version actuelle du driver : ] +uiUpdateDisplayDriversCurrent [Version actuelle du pilote : ] // HASH_VALUE 0E80AC8A6A399056 // INDEX 4964 -uiUpdateDisplayDriversRecommanded [Version recommandée du driver : ] +uiUpdateDisplayDriversRecommanded [Version recommandée du pilote : ] // HASH_VALUE A2A356D00D65D0A6 // INDEX 4965 @@ -20897,11 +20894,11 @@ uiPhraseSectionFmt [Niveau Requis %min-%max:] // HASH_VALUE EA668B7899D6738D // INDEX 4971 -uiSkillTree [Arbre de Compétences] +uiSkillTree [Arbre de compétences] // HASH_VALUE DD459C779E500F5D // INDEX 4972 -uiMessageOfTheDay [Vivez votre Propre Réalité] +uiMessageOfTheDay [Vivez votre propre réalité.] // HASH_VALUE E1595C8AE4B79496 // INDEX 4973 @@ -20926,11 +20923,11 @@ uiSendingStatReport [Envoi d'un rapport de statistiques...] // HASH_VALUE 1C094C26DDE12379 // INDEX 4978 -uiDeathXPMalus [Pénalité XP de Décés] +uiDeathXPMalus [Pénalité XP de décès] // HASH_VALUE EB5A047893A4ECAD // INDEX 4979 -uittPhraseCombatRestrictOK [Action Compatible] +uittPhraseCombatRestrictOK [Action compatible] // HASH_VALUE 5555406D1084B091 // INDEX 4980 @@ -20938,7 +20935,7 @@ uittPhraseCombatRestrictKO [Action NON compatible] // HASH_VALUE 721C44C672FAE4BE // INDEX 4981 -uiCSBase [Assistance Clientèle] +uiCSBase [Assistance clientèle] // HASH_VALUE 7458244074582440 // INDEX 4982 @@ -20974,19 +20971,19 @@ uittBrowseHome [Afficher la page de départ] // HASH_VALUE 0917B47E1C101853 // INDEX 4990 -uiawrSF [Toute arme et combat rapproché] +uiawrSF [Toutes armes et combat rapproché] // HASH_VALUE A6F76B60A6A65678 // INDEX 4991 -uiawrSFM [Toute Arme de Mêlée] +uiawrSFM [Toutes armes de mêlée] // HASH_VALUE 56946E6A4EC4A41A // INDEX 4992 -uiawrSFM1 [Armes de Mêlée à 1 Main] +uiawrSFM1 [Armes de mêlée à une main] // HASH_VALUE 5C6EAE708EA50454 // INDEX 4993 -uiawrSFM1B [Armes de Mêlée Contondantes à 1 Main] +uiawrSFM1B [Armes de mêlée contondantes à une main] // HASH_VALUE 64D8143464D81434 // INDEX 4994 @@ -20994,7 +20991,7 @@ uiawrSFM1BM [Massue] // HASH_VALUE 25E74C2B2577EBA1 // INDEX 4995 -uiawrSFM1BME [Massue Electrique] +uiawrSFM1BME [Massue électrique] // HASH_VALUE 64D8143464D81434 // INDEX 4996 @@ -21010,7 +21007,7 @@ uiawrSFM1BSM [Bâton] // HASH_VALUE 24676B48CD714A6D // INDEX 4999 -uiawrSFM1P [Armes de Mêlée Perforantes à 1 Main] +uiawrSFM1P [Armes de mêlée perforantes à une main] // HASH_VALUE 69A86C96A1B95C8B // INDEX 5000 @@ -21018,11 +21015,11 @@ uiawrSFM1PS [Lance] // HASH_VALUE 69BA203A9F42D083 // INDEX 5001 -uiawrSFM1PSE [Lance Electrique] +uiawrSFM1PSE [Lance électrique] // HASH_VALUE 24E67C769E817498 // INDEX 5002 -uiawrSFM1PSL [Lance Vivante] +uiawrSFM1PSL [Lance vivante] // HASH_VALUE 69A86C96A1B95C8B // INDEX 5003 @@ -21030,7 +21027,7 @@ uiawrSFM1PSM [Lance] // HASH_VALUE 66775B4B8D714A6D // INDEX 5004 -uiawrSFM1S [Armes de Mêlée Tranchantes à 1 Main] +uiawrSFM1S [Armes de mêlée tranchantes à une main] // HASH_VALUE 17475C5FE5051096 // INDEX 5005 @@ -21038,7 +21035,7 @@ uiawrSFM1SA [Hache] // HASH_VALUE 16150C63DD9497BD // INDEX 5006 -uiawrSFM1SAB [Hache Ardente] +uiawrSFM1SAB [Hache ardente] // HASH_VALUE 17475C5FE5051096 // INDEX 5007 @@ -21046,39 +21043,39 @@ uiawrSFM1SAM [Hache] // HASH_VALUE 6DC978A028E88498 // INDEX 5008 -uiawrSFM1SS [Epée] +uiawrSFM1SS [Épée] // HASH_VALUE 6DC978A028E88498 // INDEX 5009 -uiawrSFM1SSM [Epée] +uiawrSFM1SSM [Épée] // HASH_VALUE A1F764931B927CAA // INDEX 5010 -uiawrSFM1SSW [Epée Ondulante] +uiawrSFM1SSW [Épée ondulante] // HASH_VALUE 96946E6B4EC4A41A // INDEX 5011 -uiawrSFM2 [Armes de Mêlée à 2 Mains] +uiawrSFM2 [Armes de mêlée à deux mains] // HASH_VALUE 5C6EB2718EA50454 // INDEX 5012 -uiawrSFM2B [Armes de Mêlée Contondantes à 2 Mains] +uiawrSFM2B [Armes de mêlée contondantes à deux mains] // HASH_VALUE 5594123FCE517C11 // INDEX 5013 -uiawrSFM2BM [Massue à 2 Mains] +uiawrSFM2BM [Massue à deux mains] // HASH_VALUE 1FF22B59CEF24B7E // INDEX 5014 -uiawrSFM2BME [Massue Electrique à 2 Mains] +uiawrSFM2BME [Massue électrique à deux mains] // HASH_VALUE 5594123FCE517C11 // INDEX 5015 -uiawrSFM2BMM [Massue à 2 Mains] +uiawrSFM2BMM [Massue à deux mains] // HASH_VALUE 24676B49CD714A6E // INDEX 5016 -uiawrSFM2P [Armes de Mêlée Perforantes à 2 Mains] +uiawrSFM2P [Armes de mêlée perforantes à deux mains] // HASH_VALUE 64D8944064D89440 // INDEX 5017 @@ -21086,7 +21083,7 @@ uiawrSFM2PP [Pique] // HASH_VALUE A0A87792E3F24C62 // INDEX 5018 -uiawrSFM2PPL [Pique Vivante] +uiawrSFM2PPL [Pique vivante] // HASH_VALUE 64D8944064D89440 // INDEX 5019 @@ -21094,47 +21091,47 @@ uiawrSFM2PPM [Pique] // HASH_VALUE 66775B4C8D714A6E // INDEX 5020 -uiawrSFM2S [Armes de Mêlée Tranchantes à 2 Mains] +uiawrSFM2S [Armes de mêlée tranchantes à deux mains] // HASH_VALUE 0930AB38C98F2B60 // INDEX 5021 -uiawrSFM2SA [Hache à 2 mains] +uiawrSFM2SA [Hache à deux mains] // HASH_VALUE 56E4E73FD2D05892 // INDEX 5022 -uiawrSFM2SAB [Hache Ardente à 2 Mains] +uiawrSFM2SAB [Hache ardente à deux mains] // HASH_VALUE 0930AB38C98F2B60 // INDEX 5023 -uiawrSFM2SAM [Hache à 2 Mains] +uiawrSFM2SAM [Hache à deux mains] // HASH_VALUE 9D314E4919AF5F85 // INDEX 5024 -uiawrSFM2SS [Epée à 2 Mains] +uiawrSFM2SS [Épée à deux mains] // HASH_VALUE 5B93978C166E7783 // INDEX 5025 -uiawrSFM2SSB [Epée Ardente à 2 Mains] +uiawrSFM2SSB [Épée ardente à deux mains] // HASH_VALUE D924A26E6433D76B // INDEX 5026 -uiawrSFM2SSL [Epée Vivante à 2 Mains] +uiawrSFM2SSL [Épée vivante à deux mains] // HASH_VALUE 9D314E4919AF5F85 // INDEX 5027 -uiawrSFM2SSM [Epée à 2 Mains] +uiawrSFM2SSM [Épée à deux mains] // HASH_VALUE D7D5A2662633D76B // INDEX 5028 -uiawrSFM2SSW [Epée Ondulante à 2 Mains] +uiawrSFM2SSW [Épée ondulante à 2 mains] // HASH_VALUE B0366B58AF743A7A // INDEX 5029 -uiawrSFMC [Combat Rapproché] +uiawrSFMC [Combat rapproché] // HASH_VALUE B0366B58AF743A7A // INDEX 5030 -uiawrSFMCA [Combat Rapproché] +uiawrSFMCA [Combat rapproché] // HASH_VALUE A68670542554B475 // INDEX 5031 @@ -21142,7 +21139,7 @@ uiawrSFMCAD [Dague] // HASH_VALUE 1517C47B60F4F89A // INDEX 5032 -uiawrSFMCADL [Dague Vivante] +uiawrSFMCADL [Dague vivante] // HASH_VALUE A68670542554B475 // INDEX 5033 @@ -21150,7 +21147,7 @@ uiawrSFMCADM [Dague] // HASH_VALUE 13C8A4866074249A // INDEX 5034 -uiawrSFMCADW [Dague Vndulante] +uiawrSFMCADW [Dague ondulante] // HASH_VALUE 53A860F842B8ACD0 // INDEX 5035 @@ -21162,27 +21159,27 @@ uiawrSFMCAHM [Lutte] // HASH_VALUE A6374B6A26C6467D // INDEX 5037 -uiawrSFR [Arme à Projectile] +uiawrSFR [Arme de tir] // HASH_VALUE 550576668FC4AC1C // INDEX 5038 -uiawrSFR1 [Arme à Projectile à 1 Main] +uiawrSFR1 [Armes de tir à une main] // HASH_VALUE 550576668FC4AC1C // INDEX 5039 -uiawrSFR1A [Arme à Projectile à 1 Main] +uiawrSFR1A [Armes de tir à une main] // HASH_VALUE 645734912E1B10BF // INDEX 5040 -uiawrSFR1AB [Pistolet-Arbalète] +uiawrSFR1AB [Pistolet-arbalète] // HASH_VALUE 645734912E1B10BF // INDEX 5041 -uiawrSFR1ABM [Pistolet-Arbalète] +uiawrSFR1ABM [Pistolet-arbalète] // HASH_VALUE 68DCC48C56F0DCC2 // INDEX 5042 -uiawrSFR1ABW [Pistolet-Arbalète Ondulant] +uiawrSFR1ABW [Pistolet-arbalète ondulant] // HASH_VALUE AF69CC82EC37D8A1 // INDEX 5043 @@ -21190,7 +21187,7 @@ uiawrSFR1AP [Pistolet] // HASH_VALUE 97E8DC8DA7B518A0 // INDEX 5044 -uiawrSFR1APL [Pistolet Vivant] +uiawrSFR1APL [Pistolet vivant] // HASH_VALUE AF69CC82EC37D8A1 // INDEX 5045 @@ -21198,11 +21195,11 @@ uiawrSFR1APM [Pistolet] // HASH_VALUE 950576678FC4AC1C // INDEX 5046 -uiawrSFR2 [Arme à Projectile à 2 Mains] +uiawrSFR2 [Armes de tir à deux mains] // HASH_VALUE 950576678FC4AC1C // INDEX 5047 -uiawrSFR2A [Arme à Projectile à 2 Mains] +uiawrSFR2A [Armes de tir à deux mains] // HASH_VALUE ED3BD051AD4B807C // INDEX 5048 @@ -21210,7 +21207,7 @@ uiawrSFR2AA [Mitrailleuse] // HASH_VALUE 1A3A044F193BE858 // INDEX 5049 -uiawrSFR2AAB [Mitrailleuse Ardente] +uiawrSFR2AAB [Mitrailleuse ardente] // HASH_VALUE ED3BD051AD4B807C // INDEX 5050 @@ -21218,31 +21215,31 @@ uiawrSFR2AAM [Mitrailleuse] // HASH_VALUE 70DCF408641864A4 // INDEX 5051 -uiawrSFR2AB [Fusil-Arbalète] +uiawrSFR2AB [Fusil-arbalète] // HASH_VALUE E9364F2DE6B908C0 // INDEX 5052 -uiawrSFR2ABE [Fusil-Arbalète Electrique] +uiawrSFR2ABE [Fusil-arbalète électrique] // HASH_VALUE 70DCF408641864A4 // INDEX 5053 -uiawrSFR2ABM [Fusil-Arbalète] +uiawrSFR2ABM [Fusil-arbalète] // HASH_VALUE 6C5C14307058848C // INDEX 5054 -uiawrSFR2AL [Lance-Grenades] +uiawrSFR2AL [Lance-grenades] // HASH_VALUE 6CFCB41C4898B498 // INDEX 5055 -uiawrSFR2ALB [Lance-Grenades Ardent] +uiawrSFR2ALB [Lance-grenades ardent] // HASH_VALUE E6F6773AA579E0BA // INDEX 5056 -uiawrSFR2ALE [Lance-Grenades Electrique] +uiawrSFR2ALE [Lance-grenades électrique] // HASH_VALUE 6C5C14307058848C // INDEX 5057 -uiawrSFR2ALM [Lance-Grenades] +uiawrSFR2ALM [Lance-grenades] // HASH_VALUE 67E71C8CA2773489 // INDEX 5058 @@ -21250,7 +21247,7 @@ uiawrSFR2AR [Fusil] // HASH_VALUE A196806FDB317891 // INDEX 5059 -uiawrSFR2ARL [Fusil Vivant] +uiawrSFR2ARL [Fusil vivant] // HASH_VALUE 67E71C8CA2773489 // INDEX 5060 @@ -21258,23 +21255,23 @@ uiawrSFR2ARM [Fusil] // HASH_VALUE 98A54E854608B892 // INDEX 5061 -uiawrSFM1B_SFM2B [Toute Arme de Mêlée Contondante] +uiawrSFM1B_SFM2B [Toutes armes de mêlée contondantes] // HASH_VALUE AA7710DDEB75E0B9 // INDEX 5062 -uiawrSFM1S_SFM2S [Toute Arme de Mêlée Tranchante] +uiawrSFM1S_SFM2S [Toutes armes de mêlée tranchantes] // HASH_VALUE 132F51BD4FD588F5 // INDEX 5063 -uiawrSFM1P_SFM2P_SFMCAD [Toute Arme de Mêlée Perforante] +uiawrSFM1P_SFM2P_SFMCAD [Toutes armes de mêlée perforantes] // HASH_VALUE 4B8CF1AD0EA6A417 // INDEX 5064 -uiawrSFM1_SFM2_SFMCAD_SFR1_SFR2 [Toute Arme, sauf combat rapproché] +uiawrSFM1_SFM2_SFMCAD_SFR1_SFR2 [Toutes armes, sauf combat rapproché] // HASH_VALUE 97E83B1DA08643BD // INDEX 5065 -uiPhraseWRHeader [Utilisable seulement: ] +uiPhraseWRHeader [Utilisable seulement : ] // HASH_VALUE 200800B0200800B0 // INDEX 5066 @@ -21296,11 +21293,11 @@ uiEulaDecline [JE REFUSE] // INDEX 5070 uiEulaContent [LICENCE RYZOM\n \n - AVIS À L'UTILISATEUR : CE DOCUMENT EST UN CONTRAT. AVANT DE CLIQUER SUR LE BOUTON « J'ACCEPTE » CI-DESSOUS ET D'ACHEVER LA PROCÉDURE D'INSTALLATION OU D'ENREGISTREMENT, VEUILLEZ LE LIRE ATTENTIVEMENT. EN CLIQUANT SUR LE BOUTON « J'ACCEPTE », VOUS ACCEPTEZ LES TERMES DU PRÉSENT CONTRAT ET LES OBLIGATIONS QU'IL CONTIENT. SI VOUS NE SOUHAITEZ PAS DEVENIR PARTIE AU PRÉSENT CONTRAT OU ÊTRE LIÉ PAR L'ENSEMBLE DE SES STIPULATIONS, CLIQUEZ SUR LE BOUTON « ANNULER » ET VEUILLEZ NE PAS INSTALLER (OU VEUILLEZ DÉSINSTALLER, SELON LE CAS) LE LOGICIEL, ET NE PAS L'UTILISER. SI VOUS CLIQUEZ SUR LE BOUTON « ANNULER », ET SI VOUS ÊTES L'ACHETEUR D'ORIGINE DU JEU SUR CD-ROM, NOUS VOUS CONSEILLONS DE CONTACTER LE DETAILLANT QUI VOUS A VENDU LE JEU POUR OBTENIR UN REMBOURSEMENT, CONFORMÉMENT À SA POLITIQUE DE RETOURS. EN AUCUN CAS VOUS NE POURREZ OBTENIR UN REMBOURSEMENT DE L'ABONNEMENT EVENTUELLEMENT PAYÉ OU INCLUS DANS LE PRIX DE VENTE DU CD-ROM SI VOUS CLIQUEZ SUR LE BOUTON « ANNULER ». En cas de difficultés relatives à la présente Licence, veuillez contacter le service clients Ryzom à l'adresse suivante support@ryzom.com\n + AVIS À L'UTILISATEUR : CE DOCUMENT EST UN CONTRAT. AVANT DE CLIQUER SUR LE BOUTON « J'ACCEPTE » CI-DESSOUS ET D'ACHEVER LA PROCÉDURE D'INSTALLATION OU D'ENREGISTREMENT, VEUILLEZ LE LIRE ATTENTIVEMENT. EN CLIQUANT SUR LE BOUTON « J'ACCEPTE », VOUS ACCEPTEZ LES TERMES DU PRÉSENT CONTRAT ET LES OBLIGATIONS QU'IL CONTIENT. SI VOUS NE SOUHAITEZ PAS DEVENIR PARTIE AU PRÉSENT CONTRAT OU ÊTRE LIÉ PAR L'ENSEMBLE DE SES STIPULATIONS, CLIQUEZ SUR LE BOUTON « ANNULER » ET VEUILLEZ NE PAS INSTALLER (OU VEUILLEZ DÉSINSTALLER, SELON LE CAS) LE LOGICIEL, ET NE PAS L'UTILISER. SI VOUS CLIQUEZ SUR LE BOUTON « ANNULER », ET SI VOUS ÊTES L'ACHETEUR D'ORIGINE DU JEU SUR CD-ROM, NOUS VOUS CONSEILLONS DE CONTACTER LE DETAILLANT QUI VOUS A VENDU LE JEU POUR OBTENIR UN REMBOURSEMENT, CONFORMÉMENT À SA POLITIQUE DE RETOURS. EN AUCUN CAS VOUS NE POURREZ OBTENIR UN REMBOURSEMENT DE L'ABONNEMENT ÉVENTUELLEMENT PAYÉ OU INCLUS DANS LE PRIX DE VENTE DU CD-ROM SI VOUS CLIQUEZ SUR LE BOUTON « ANNULER ». En cas de difficultés relatives à la présente Licence, veuillez contacter le service clients Ryzom à l'adresse suivante support@ryzom.com\n \n 1. OBJET. La présente Licence Ryzom (ci-après le « Contrat ») constitue un contrat entre vous et Winch Gate Property Limited (ci-après « Winch Gate » ou « nous »). Il a pour objet de définir les conditions auxquelles Winch Gate concède à l'utilisateur autorisé (tel que défini à l'article 2 ci-après) les services suivants relatifs au jeu massivement multijoueur en ligne Ryzom (ci-après « Ryzom » ou le « Jeu » ou « Ryzom Ring » ), consistant dans l'ouverture et le maintien d'un compte permettant, par l'intermédiaire de l'Internet, de jouer au Jeu, et dans la concession d'une licence d'utilisation du Jeu.\n \n - 2. UTILISATEURS AUTORISÉS. Seules les personnes physiques d'âge adulte peuvent ouvrir un compte leur permettant de jouer à Ryzom, pour leur propre usage ou pour celui de l'un de leurs enfants mineur. Si vous êtes mineur, vos parents doivent s'inscrire eux-mêmes et accepter le présent Contrat. Aux fins du présent Contrat, un « mineur » est une personne qui n'a pas atteint l'âge de la majorité légale dans le pays où elle réside. Les seuls utilisateurs autorisés à jouer à Ryzom sont les utilisateurs qui (a) ont acheté ou autrement obtenu de manière légitime le CD-Rom original du Jeu (ci-après le « CD-Rom »), (b) sont titulaires d'un compte d'accès et d'un abonnement en cours, et (c) disposent d'une connexion à Internet. Les utilisateurs autorisés sont ci-après dénommés les « Utilisateurs ».\n + 2. UTILISATEURS AUTORISÉS. Seules les personnes physiques d'âge adulte peuvent ouvrir un compte leur permettant de jouer à Ryzom, pour leur propre usage ou pour celui de l'un de leurs enfants mineurs. Si vous êtes mineur, vos parents doivent s'inscrire eux-mêmes et accepter le présent Contrat. Aux fins du présent Contrat, un « mineur » est une personne qui n'a pas atteint l'âge de la majorité légale dans le pays où elle réside. Les seuls utilisateurs autorisés à jouer à Ryzom sont les utilisateurs qui (a) ont acheté ou autrement obtenu de manière légitime le CD-Rom original du Jeu (ci-après le « CD-Rom »), (b) sont titulaires d'un compte d'accès et d'un abonnement en cours, et (c) disposent d'une connexion à Internet. Les utilisateurs autorisés sont ci-après dénommés les « Utilisateurs ».\n \n 3. ENREGISTREMENT ET OUVERTURE D'UN COMPTE. Le présent Contrat vous permet de créer, par la procédure d'enregistrement qui vous est proposée, un (1) compte permettant de jouer à Ryzom et/ou Ryzom Ring par l'intermédiaire de l'Internet. La connexion à l'Internet n'est pas fournie par Winch Gate, et l'Utilisateur est seul responsable du paiement de tous frais permettant d'obtenir, de maintenir et d'utiliser cette connexion. L'enregistrement nécessite la communication d'informations à Winch Gate, notamment relatives à votre identité et au moyen de paiement utilisé. Vous garantissez que l'ensemble des informations que vous serez amené à fournir au cours de la procédure d'enregistrement sont exactes et véridiques, et vous vous engagez à informer Winch Gate de tout changement relatif à ces informations en utilisant les moyens de mise à jour qui vous sont offerts dans le cadre de l'utilisation de votre compte.\n \n @@ -21308,9 +21305,9 @@ uiEulaContent [LICENCE RYZOM\n \n 5. IDENTIFIANT ET MOT DE PASSE. Pour obtenir un compte, vous devrez choisir un identifiant de connexion et un mot de passe, qui vous permettront par la suite d'accéder à ce compte. Cet identifiant et ce mot de passe sont strictement personnels et ne peuvent être utilisés par un tiers. De même, vous ne pouvez utiliser vous-même l'identifiant et le mot de passe d'un autre joueur. Vous êtes pleinement responsable du choix de vos identifiant et mot de passe, du maintien de leur confidentialité, et de l'usage qui pourrait en être fait par un tiers. Winch Gate décline toute responsabilité pour tout dommage causé à votre compte par l'utilisation non autorisée de votre identifiant ou mot de passe. En cas de perte l'attribution d'un nouvel identifiant ou d'un nouveau mot de passe pourra être facturée.\n \n - 6. ABONNEMENT ET FACTURATION. Les tarifs d'abonnement en vigueur sont indiqués sur le site www.ryzom.com et lors de la procédure d'enregistrement. Ces tarifs pourront être modifiés à tout moment par Winch Gate, sous réserve d'en informer au préalable l'Utilisateur par une notice sur le site Internet de Winch Gate à l'adresse www.ryzom.com, ou lors de la connexion de l'Utilisateur à son compte ou par un message email adressé à ce dernier. La modification du tarif applicable ne prendra effet qu'à compter du prochain renouvellement de la période d'abonnement. Les prix d'abonnement sont indiqués en euros dans les pays de la zone euro, en livre sterling au Royaume-Uni et en dollars pour les Etats Unis. Le tarif correspond à une durée d'abonnement précise (1 mois, 3 mois, 6 mois,...). L'abonnement est renouvelé tacitement par périodes identiques, sauf résiliation de l'Utilisateur adressée à Winch Gate dans les conditions décrites à l'article 18 ci-après. Le paiement de l'abonnement permet à l'Utilisateur d'accéder à Ryzom de manière illimitée pendant la période d'abonnement et ses éventuels renouvellements. Ce paiement n'inclut pas le prix d'achat de Ryzom sur CD-Rom et les coûts associés à la connexion à Internet nécessaire pour souscrire l'abonnement et jouer à Ryzom. Sauf opération commerciale particulière, le premier mois d'abonnement est inclus dans le prix d'achat du CD-Rom de Ryzom vendu dans le commerce. L'abonnement et ses renouvellements éventuels sont payés d'avance et ne sont pas remboursables. L'abonnement est payé par carte bancaire ou par tout autre moyen accepté par Winch Gate, selon les procédures indiquées sur le site de Winch Gate. Le prix de l'abonnement sera prélevé automatiquement sur votre carte bancaire lors de l'abonnement initial (s'il n'est pas compris dans le prix de vente d'un CD-Rom de Ryzom) ou à la date de chaque renouvellement. Winch Gate se réserve le droit de fermer immédiatement le compte d'un Utilisateur en cas d'impossibilité de traiter sa carte bancaire ou son moyen de paiement accepté à une date de renouvellement.\n + 6. ABONNEMENT ET FACTURATION. Les tarifs d'abonnement en vigueur sont indiqués sur le site www.ryzom.com et lors de la procédure d'enregistrement. Ces tarifs pourront être modifiés à tout moment par Winch Gate, sous réserve d'en informer au préalable l'Utilisateur par une notice sur le site Internet de Winch Gate à l'adresse www.ryzom.com, ou lors de la connexion de l'Utilisateur à son compte ou par un courriel adressé à ce dernier. La modification du tarif applicable ne prendra effet qu'à compter du prochain renouvellement de la période d'abonnement. Les prix d'abonnement sont indiqués en euros dans les pays de la zone euro, en livre sterling au Royaume-Uni et en dollars pour les États Unis. Le tarif correspond à une durée d'abonnement précise (1 mois, 3 mois, 6 mois,...). L'abonnement est renouvelé tacitement par périodes identiques, sauf résiliation de l'Utilisateur adressée à Winch Gate dans les conditions décrites à l'article 18 ci-après. Le paiement de l'abonnement permet à l'Utilisateur d'accéder à Ryzom de manière illimitée pendant la période d'abonnement et ses éventuels renouvellements. Ce paiement n'inclut pas le prix d'achat de Ryzom sur CD-Rom et les coûts associés à la connexion à Internet nécessaire pour souscrire l'abonnement et jouer à Ryzom. Sauf opération commerciale particulière, le premier mois d'abonnement est inclus dans le prix d'achat du CD-Rom de Ryzom vendu dans le commerce. L'abonnement et ses renouvellements éventuels sont payés d'avance et ne sont pas remboursables. L'abonnement est payé par carte bancaire ou par tout autre moyen accepté par Winch Gate, selon les procédures indiquées sur le site de Winch Gate. Le prix de l'abonnement sera prélevé automatiquement sur votre carte bancaire lors de l'abonnement initial (s'il n'est pas compris dans le prix de vente d'un CD-Rom de Ryzom) ou à la date de chaque renouvellement. Winch Gate se réserve le droit de fermer immédiatement le compte d'un Utilisateur en cas d'impossibilité de traiter sa carte bancaire ou son moyen de paiement accepté à une date de renouvellement.\n \n - 7. SECURISATION DES PAIEMENTS. : La sécurisation des paiements par carte bancaire est assurée par le système de paiement fourni par la société Bibit Global Payment Services (www.bibit.com), prestataire spécialisé dans la sécurisation des paiements en ligne. Les informations relatives à votre carte bancaire (nom, type de carte, numéro et date d'expiration) sont transmises cryptées sous protocole SSL directement au serveur de la société BIBIT, qui valide le paiement auprès des Institutions Bancaires. Les informations bancaires fournies seront utilisées à seule fin de procéder au traitement et à la facturation de votre paiement.\n + 7. SÉCURISATION DES PAIEMENTS. La sécurisation des paiements par carte bancaire est assurée par le système de paiement fourni par la société Wordpay (http://www.worldpay.com/), prestataire spécialisé dans la sécurisation des paiements en ligne. Les informations relatives à votre carte bancaire (nom, type de carte, numéro et date d'expiration) sont transmises cryptées sous protocole SSL directement au serveur de la société Wordpay, qui valide le paiement auprès des Institutions Bancaires. Les informations bancaires fournies seront utilisées à seule fin de procéder au traitement et à la facturation de votre paiement.\n \n 8. LICENCE D'UTILISATION DE RYZOM. Le présent Contrat concède à l'Utilisateur un droit limité, non exclusif et révocable d'accéder, au travers d'un compte valide, au serveur du Jeu pour utiliser le Jeu conformément à sa destination et aux conditions des présentes, à l'exclusion de tout autre droit. Le présent Contrat vous autorise à installer et à utiliser une copie du Logiciel présent sur le CD-Rom sur un (1) seul ordinateur. Le Logiciel est « utilisé » sur un ordinateur lorsqu'il est chargé dans la mémoire temporaire (mémoire RAM) ou installé dans la mémoire permanente (par exemple, disque dur, CD-Rom ou autre unité de mémoire). Le logiciel ne peut être partagé ou utilisé concurremment sur différents ordinateurs. En cas d'installation sur un réseau, vous devez obtenir une licence pour chaque ordinateur sur lequel le Jeu est utilisé. Vous pouvez effectuer une (1) copie de sauvegarde ou d'archivage uniquement du CD-Rom, à l'exclusion de toute autre copie, de tout ou partie du CD-Rom ou du Jeu. Sous réserve des restrictions stipulées au présent Contrat, Winch Gate accorde à l'Utilisateur une licence non-exclusive et révocable d'utiliser le Jeu uniquement dans le but de jouer à Ryzom et/ou Ryzom Ring dans des conditions légitimes par l'intermédiaire d'un compte autorisé et entièrement payé ou dans le cadre d'une période d'essai valide. Toutes les autres utilisations du compte ou du Jeu sont interdites. En particulier, vous ne pouvez en aucun cas procéder à l'ingénierie inverse, décompiler ou désassembler le ou les logiciels constituant le Jeu. Vous ne pouvez non plus transférer tout ou partie du Jeu à un tiers. Vous ne pouvez louer, prêter ou vendre le Jeu. Tous les droits qui ne sont pas expressément accordés à l'Utilisateur par le présent Contrat sont réservés à Winch Gate.\n \n @@ -21318,31 +21315,31 @@ uiEulaContent [LICENCE RYZOM\n \n 10. VERSIONS ULTÉRIEURES – AMÉLIORATIONS. Ni ce Contrat ni votre compte ne vous donnent droit à une quelconque version ultérieure ou extension de Ryzom et/ou Ryzom Ring. Si Winch Gate peut mettre à jour ou améliorer le Jeu, Winch Gate n'a aucune obligation de vous fournir cette mise à jour ou amélioration. La fourniture gratuite par Winch Gate d'une mise à jour ou d'une amélioration ne vous donne aucun droit sur des mises à jour ou améliorations ultérieures.\n \n - 11. PROPRIÉTÉ DU JEU ET DE SES ÉLÉMENTS. Winch Gate est propriétaire exclusif de Ryzom et/ou Ryzom Ring, de l'ensemble des éléments propriétaires destinés à le faire fonctionner, et de l'ensemble des droits de propriété intellectuelle relatifs à ces éléments. Vous reconnaissez que Ryzom et son contenu sont protégés par copyright et par d'autres droits de propriété intellectuelle détenus par Winch Gate ou ses fournisseurs, et que vous ne bénéficiez d'aucun droit au delà des droits limités de licence vous sont expressément concédés aux termes de l'article 7 des présentes. Winch Gate est également propriétaire exclusif du compte de l'Utilisateur et des éléments créés ou utilisés par l'Utilisateur au travers de son compte, comprenant notamment les personnages, leur apparence, leurs caractéristiques, leur histoire, les objets créés ou fabriqués, les guildes, groupes et titres. L'Utilisateur concède également à Winch Gate le droit d'utiliser l'information transmise au serveur au moyen du compte (à l'exception des données personnelles et des messages adressés aux autres Utilisateurs) comme bon lui semble, y compris pour un usage commercial.\n + 11. PROPRIÉTÉ DU JEU ET DE SES ÉLÉMENTS. Winch Gate est propriétaire exclusif de Ryzom et/ou Ryzom Ring, de l'ensemble des éléments propriétaires destinés à le faire fonctionner, et de l'ensemble des droits de propriété intellectuelle relatifs à ces éléments. Vous reconnaissez que Ryzom et son contenu sont protégés par copyright et par d'autres droits de propriété intellectuelle détenus par Winch Gate ou ses fournisseurs, et que vous ne bénéficiez d'aucun droit au delà des droits limités de licence qui vous sont expressément concédés aux termes de l'article 7 des présentes. Winch Gate est également propriétaire exclusif du compte de l'Utilisateur et des éléments créés ou utilisés par l'Utilisateur au travers de son compte, comprenant notamment les personnages, leur apparence, leurs caractéristiques, leur histoire, les objets créés ou fabriqués, les guildes, groupes et titres. L'Utilisateur concède également à Winch Gate le droit d'utiliser l'information transmise au serveur au moyen du compte (à l'exception des données personnelles et des messages adressés aux autres Utilisateurs) comme bon lui semble, y compris pour un usage commercial.\n \n 12. INFORMATIONS ET DONNÉES TRANSMISES PAR L'UTILISATEUR. Les informations et données communiquées ou transmises par l'Utilisateur dans le cadre de l'utilisation de Ryzom ne doivent pas (a) violer les droits de tiers, y compris leurs droits de propriété intellectuelle, leur droit à l'image et leur droit à la vie privée; (b) violer une loi ou une réglementation quelconque; (c) contenir des propos diffamatoires, indécents, obscènes ou autrement préjudiciables aux mineurs; et (d) contenir des virus, chevaux de Troie, codes invalidants, vers, bombes logiques, ou autres instructions, programmes ou sous-programmes d'ordinateur destinés à causer ou qui causent des dommages aux données ou des interventions non autorisées sur les logiciels ou les serveurs de Ryzom et/ou Ryzom Ring. Nous pourrons prendre toute mesure en urgence sur votre compte (y compris la suspension ou l'annulation de celui-ci) si nous pensons (à notre seule discrétion) que cette utilisation contrevient aux interdictions ci-dessus.\n \n - 13. RÈGLES DE CONDUITE. Vous reconnaissez que le bon fonctionnement et le succès d'un Jeu de rôle en ligne comme Ryzom et/ou Ryzom Ring résulte d'un équilibre délicat que Winch Gate se doit de préserver. En conséquence, il est strictement interdit à l'Utilisateur : (a) d'utiliser un logiciel ou une méthode quelconque pour modifier le contenu ou les fonctionnalités du Jeu ; (b) de provoquer une surcharge du serveur ; (c) d'utiliser tout procédé facilitant la saisie de toute instruction à une cadence accélérée en comparaison avec le déroulement ordinaire de Jeu ; (d) de modifier l'interface utilisateur ou tout autre élément pour obtenir des objets, points d'expérience, devises, attributs de caractère, rangs, etc., ne résultant pas d'une utilisation normale du Jeu ; (e) d'acheter, de vendre ou de transférer des personnages ou des attributs de personnages du Jeu. En outre, l'Utilisateur doit à tout moment respecter le Code de conduite, les Politiques de Courtoisie et la Charte de nommage de Ryzom présents sur son site à l'adresse www.ryzom.com, dont le contenu est incorporé aux présentes par référence. Nous pourrons prendre toute mesure en urgence sur votre compte (y compris la suspension ou l'annulation de celui-ci) si nous pensons (à notre seule discrétion) que cette utilisation contrevient aux interdictions ci-dessus.\n + 13. RÈGLES DE CONDUITE. Vous reconnaissez que le bon fonctionnement et le succès d'un Jeu de rôle en ligne comme Ryzom et/ou Ryzom Ring résultent d'un équilibre délicat que Winch Gate se doit de préserver. En conséquence, il est strictement interdit à l'Utilisateur : (a) d'utiliser un logiciel ou une méthode quelconque pour modifier le contenu ou les fonctionnalités du Jeu ; (b) de provoquer une surcharge du serveur ; (c) d'utiliser tout procédé facilitant la saisie de toute instruction à une cadence accélérée en comparaison avec le déroulement ordinaire de Jeu ; (d) de modifier l'interface utilisateur ou tout autre élément pour obtenir des objets, points d'expérience, devises, attributs de caractère, rangs, etc., ne résultant pas d'une utilisation normale du Jeu ; (e) d'acheter, de vendre ou de transférer des personnages ou des attributs de personnages du Jeu. En outre, l'Utilisateur doit à tout moment respecter le Code de conduite, les Politiques de Courtoisie et la Charte de nommage de Ryzom présents sur son site à l'adresse www.ryzom.com, dont le contenu est incorporé aux présentes par référence. Nous pourrons prendre toute mesure en urgence sur votre compte (y compris la suspension ou l'annulation de celui-ci) si nous pensons (à notre seule discrétion) que cette utilisation contrevient aux interdictions ci-dessus.\n \n 14. INFORMATIONS PERSONNELLES / UTILISATEUR. Les engagements de Winch Gate concernant les données personnelles sont contenues dans la politique de protection des données personnelles présente sur le site Internet de Winch Gate à l'adresse www.ryzom.com, qui sont intégrées au présent Contrat par référence. Winch Gate n'est pas en mesure de s'assurer que les informations personnelles communiquées par l'Utilisateur à un autre Utilisateur dans le cadre du Jeu ne seront pas révélées aux tiers. Afin de permettre la mise à jour / patching du Jeu, vous autorisez Winch Gate (a) à extraire des données de profil de votre matériel informatique ; (b) à extraire de votre ordinateur l'information relative à la localisation du Jeu dans votre système de fichiers et à vos droits d'accès ; et (c) à télécharger des éléments du Jeu et des éléments nécessaires à son installation sur votre ordinateur utilisant votre compte.\n \n 15. GARANTIE / LIMITATION DE RESPONSABILITÉ. Le CD-Rom, le Jeu et les services associés sont fournis « tels quels » par Winch Gate, sans autre garantie que les garanties légales d'ordre public minimum applicables au présent Contrat. Toute autre garantie, légale ou conventionnelle, est expressément exclue. Winch Gate produira ses meilleurs efforts afin de rendre le compte de l'Utilisateur accessible de manière permanente, sous réserve des interruptions dues à des interventions techniques et de maintenance. Cependant, Winch Gate ne saurait garantir un fonctionnement continu et sans erreur de ses services ou du Jeu, ni l'accès permanent des Utilisateurs à leur compte. En tout état de cause, la responsabilité de Winch Gate ne saurait être engagée en cas de dommages causés aux matériels et aux logiciels de l'Utilisateur lors de l'Utilisation du Jeu. A ce titre, il est rappelé aux Utilisateurs la nécessité de maintenir une configuration matérielle et logicielle correcte et conforme aux préconisations de Winch Gate, de procéder aux mises à jours régulières de leurs logiciels et à des sauvegardes régulières de leurs fichiers importants. Winch Gate ne saurait non plus être responsable du contenu des échanges entre joueurs et du comportement de ceux-ci. Si la responsabilité de Winch Gate venait à être engagée à un titre quelconque, cette responsabilité ne saurait être supérieure au montant cumulé des abonnements payés par l'Utilisateur.\n \n - 16. CESSATION DE L'EXPLOITATION DU JEU PAR WINCH GATE. Winch Gate ne donne aucune garantie à l'Utilisateur sur la durée d'exploitation du Jeu. Winch Gate se réserve le droit de cesser de proposer le Jeu et de maintenir ses services, à sa seule discrétion, notamment lorsque le nombre d'Utilisateurs deviendra ou s'il demeure insuffisant, sous réserve d'en avertir l'Utilisateur au moyen d'une mention lors de l'accès au Jeu, sur son site Internet à l'adresse www.ryzom.com ou par un message email. Les comptes d'exploitation seront alors définitivement fermés.\n + 16. CESSATION DE L'EXPLOITATION DU JEU PAR WINCH GATE. Winch Gate ne donne aucune garantie à l'Utilisateur sur la durée d'exploitation du Jeu. Winch Gate se réserve le droit de cesser de proposer le Jeu et de maintenir ses services, à sa seule discrétion, notamment lorsque le nombre d'Utilisateurs deviendra ou s'il demeure insuffisant, sous réserve d'en avertir l'Utilisateur au moyen d'une mention lors de l'accès au Jeu, sur son site Internet à l'adresse www.ryzom.com ou par un courriel. Les comptes d'exploitation seront alors définitivement fermés.\n \n - 17. RÉSILIATION PAR WINCH GATE. Winch Gate pourra résilier le présent Contrat et fermer sans préavis le compte de l'Utilisateur, immédiatement et sans sommation ni préavis, en cas de manquement, par l'Utilisateur, à l'une quelconque des ses obligations au terme du présent Contrat et ou de non respect par l'Utilisateur des conditions imposées par l'un des documents auxquels ce Contrat fait référence. Dans cette hypothèse, aucun remboursement ne sera dû à l'Utilisateur sur la partie de l'abonnement correspondant aux jours restant à courir jusqu'à la date expiration normale de la période d'abonnement en cours.\n + 17. RÉSILIATION PAR WINCH GATE. Winch Gate pourra résilier le présent Contrat et fermer sans préavis le compte de l'Utilisateur, immédiatement et sans sommation ni préavis, en cas de manquement, par l'Utilisateur, à l'une quelconque des ses obligations au terme du présent Contrat et ou de non respect par l'Utilisateur des conditions imposées par l'un des documents auxquels ce Contrat fait référence. Dans cette hypothèse, aucun remboursement ne sera dû à l'Utilisateur sur la partie de l'abonnement correspondant aux jours restant à courir jusqu'à la date d'expiration normale de la période d'abonnement en cours.\n \n - 18. RÉSILIATION PAR L'UTILISATEUR. L'Utilisateur peut mettre fin au présent Contrat et clôturer son compte à tout moment, sur notification adressée Winch Gate, par courrier ou dans les conditions indiquées lors de l'accès au compte. La résiliation prendra effet à l'expiration de la période d'abonnement en cours. Les sommes payées en contrepartie de l'abonnement en cours ne pourront être restituées, même si l'Utilisateur n'utilise pas son compte jusqu'à la date de résiliation.\n + 18. RÉSILIATION PAR L'UTILISATEUR. L'Utilisateur peut mettre fin au présent Contrat et clôturer son compte à tout moment, sur notification adressée Winch Gate, par courriel ou dans les conditions indiquées lors de l'accès au compte. La résiliation prendra effet à l'expiration de la période d'abonnement en cours. Les sommes payées en contrepartie de l'abonnement en cours ne pourront être restituées, même si l'Utilisateur n'utilise pas son compte jusqu'à la date de résiliation.\n \n 19. MODIFICATIONS DE LA LICENCE. Winch Gate se réserve le droit de modifier les termes du présent Contrat à tout moment. L'Utilisateur sera informé des modifications éventuelles apportées au Contrat lors de l'accès à son compte suivant ce changement. L'accès au Jeu vaudra alors acceptation des conditions du Contrat modifié, qui s'appliqueront immédiatement.\n \n - 20. PRÉCAUTIONS A PRENDRE / ÉPILEPSIE. Winch Gate vous rappelle qu'il est nécessaire d'éviter de jouer si vous êtes fatigué ou si vous manquez de sommeil. Assurez-vous que vous jouez dans une pièce bien éclairée en modérant la luminosité de votre écran. Lorsque vous utilisez un jeu vidéo susceptible d'être connecté à un écran, jouez à bonne distance de cet écran de télévision et aussi loin que le permet le cordon de raccordement. En cours d'utilisation, faites des pauses de dix à quinze minutes toutes les heures. De même, nous attirons votre attention sur le fait que certaines personnes sont susceptibles de faire des crises d'épilepsie comportant, le cas échéant, des pertes de conscience à la vue, notamment, de certains types de stimulations lumineuses fortes : succession rapide d'images ou répétition de figures géométriques simples, d'éclairs ou d'explosions. Ces personnes s'exposent à des crises lorsqu'elles jouent à certains jeux vidéo comportant de telles stimulations, alors même qu'elles n'ont pas d'antécédent médical ou n'ont jamais été sujettes elles-mêmes à des crises d'épilepsie. Si vous-même ou un membre de votre famille avez déjà présenté des symptômes liés à l'épilepsie (crise ou perte de conscience) en présence de stimulations lumineuses, consultez votre médecin avant toute utilisation. Les parents se doivent également d'être particulièrement attentifs à leurs enfants lorsqu'ils jouent avec des jeux vidéo. Si vous-même ou votre enfant présentez un des symptômes suivants : vertige, trouble de la vision, contraction des yeux ou des muscles, trouble de l'orientation, mouvement involontaire ou convulsion, perte momentanée de conscience, il faut cesser immédiatement de jouer et consulter un médecin.\n + 20. PRÉCAUTIONS À PRENDRE / ÉPILEPSIE. Winch Gate vous rappelle qu'il est nécessaire d'éviter de jouer si vous êtes fatigué ou si vous manquez de sommeil. Assurez-vous que vous jouez dans une pièce bien éclairée en modérant la luminosité de votre écran. Lorsque vous utilisez un jeu vidéo susceptible d'être connecté à un écran, jouez à bonne distance de cet écran de télévision et aussi loin que le permet le cordon de raccordement. En cours d'utilisation, faites des pauses de dix à quinze minutes toutes les heures. De même, nous attirons votre attention sur le fait que certaines personnes sont susceptibles de faire des crises d'épilepsie comportant, le cas échéant, des pertes de conscience à la vue, notamment, de certains types de stimulations lumineuses fortes : succession rapide d'images ou répétition de figures géométriques simples, d'éclairs ou d'explosions. Ces personnes s'exposent à des crises lorsqu'elles jouent à certains jeux vidéo comportant de telles stimulations, alors même qu'elles n'ont pas d'antécédent médical ou n'ont jamais été sujettes elles-mêmes à des crises d'épilepsie. Si vous-même ou un membre de votre famille avez déjà présenté des symptômes liés à l'épilepsie (crise ou perte de conscience) en présence de stimulations lumineuses, consultez votre médecin avant toute utilisation. Les parents se doivent également d'être particulièrement attentifs à leurs enfants lorsqu'ils jouent avec des jeux vidéo. Si vous-même ou votre enfant présentez un des symptômes suivants : vertige, trouble de la vision, contraction des yeux ou des muscles, trouble de l'orientation, mouvement involontaire ou convulsion, perte momentanée de conscience, il faut cesser immédiatement de jouer et consulter un médecin.\n \n - 21. LOI APPLICABLE / DIVERS. Le présent Contrat est régi par la loi française. L'application de la Convention des Nations Unies sur les contrats internationaux de vente de marchandises est expressément écartée. Tout litige relatif au présent Contrat sera soumis à la compétence exclusive des tribunaux compétents de Paris. Si l'une des clauses du présent Contrat venait à être jugée nulle ou non opposable à l'Utilisateur, cette nullité ou non opposabilité n'affecterait pas la validité ou l'opposabilité des autres clauses du Contrat. Le présent Contrat ne peut être cédé ni transféré par l'Utilisateur.] + 21. LOI APPLICABLE / DIVERS. Le présent Contrat est régi par la loi française. L'application de la Convention des Nations Unies sur les contrats internationaux de vente de marchandises est expressément écartée. Tout litige relatif au présent Contrat sera soumis à la compétence exclusive des tribunaux compétents de Paris. Si l'une des clauses du présent Contrat venait à être jugée nulle ou non opposable à l'Utilisateur, cette nullité ou non opposabilité n'affecterait pas la validité ou l'opposabilité des autres clauses du Contrat. Le présent Contrat ne peut être cédé ni transféré par l'Utilisateur.] // HASH_VALUE AC59689FA8799CBD // INDEX 5071 -gn_apprentice_tracer [Apprenti Pisteur] +gn_apprentice_tracer [Apprenti pisteur] // HASH_VALUE 2672E092177803B5 // INDEX 5072 @@ -21350,15 +21347,15 @@ gn_bandit_bountybeaches_1 [Blood Rooters] // HASH_VALUE E63C84606052F4B8 // INDEX 5073 -gn_bandit_bountybeaches_2 [Les Arracheurs de Prime] +gn_bandit_bountybeaches_2 [Bounty Snatchers] // HASH_VALUE ED861C40AA77E7AB // INDEX 5074 -gn_bandit_bountybeaches_3 [Les Cinq Infames] +gn_bandit_bountybeaches_3 [Infamous Five] // HASH_VALUE 9F23682B98B59AB9 // INDEX 5075 -gn_bandit_citiesofintuition_1 [Oiseaux de l'Augure] +gn_bandit_citiesofintuition_1 [Birds of Omen] // HASH_VALUE 6BD87C4AA2C4284D // INDEX 5076 @@ -21366,11 +21363,11 @@ gn_bandit_citiesofintuition_2 [Zora Kovans] // HASH_VALUE AF1AD81CD639B371 // INDEX 5077 -gn_bandit_citiesofintuition_3 [Les Yeux de l'Intuition] +gn_bandit_citiesofintuition_3 [Eyes of Intuition] // HASH_VALUE 16395C93E3F7777B // INDEX 5078 -gn_bandit_dunesofexil_1 [Les Ravageurs de la Crête] +gn_bandit_dunesofexil_1 [Ridge Ravagers] // HASH_VALUE A65978A1ABC900A7 // INDEX 5079 @@ -21378,55 +21375,55 @@ gn_bandit_dunesofexil_2 [Waylayers] // HASH_VALUE E56308821B37D3C5 // INDEX 5080 -gn_bandit_dunesofexil_3 [Les Dragons de Dyron] +gn_bandit_dunesofexil_3 [Dyron Dragons] // HASH_VALUE 1ECBC08CAB0624AC // INDEX 5081 -gn_bandit_dunesofexil_4 [Les Incendiaires] +gn_bandit_dunesofexil_4 [Firebooters] // HASH_VALUE 6A2AFC880FB5FF70 // INDEX 5082 -gn_bandit_enchantedisle_1 [Les Déchireurs de Tyler] +gn_bandit_enchantedisle_1 [Tyler's Rippers] // HASH_VALUE 95B29031A7E64F7D // INDEX 5083 -gn_bandit_enchantedisle_2 [Les Mages de la Malice] +gn_bandit_enchantedisle_2 [Magicians of Malice] // HASH_VALUE EED8D41EC8381CB0 // INDEX 5084 -gn_bandit_enchantedisle_3 [Les Mektoubs Ruant] +gn_bandit_enchantedisle_3 [Bucking Mektoubs] // HASH_VALUE 6769D09862E65F65 // INDEX 5085 -gn_bandit_fleetinggarden_1 [Les Ravisseurs Verts] +gn_bandit_fleetinggarden_1 [Green Ravishers] // HASH_VALUE 24D70C2D6A56DB9D // INDEX 5086 -gn_bandit_fleetinggarden_2 [Les Yeux Mortifiés] +gn_bandit_fleetinggarden_2 [Deadened Eyes] // HASH_VALUE 68C593852434AC6E // INDEX 5087 -gn_bandit_fleetinggarden_3 [Les Haut Observateurs] +gn_bandit_fleetinggarden_3 [High Watchers] // HASH_VALUE 2BD9403A60A2C08C // INDEX 5088 -gn_bandit_fleetinggarden_4 [Les Seigneurs Fugaces] +gn_bandit_fleetinggarden_4 [Fleeting Lords] // HASH_VALUE 2739BC2F27292CFC // INDEX 5089 -gn_bandit_fleetinggarden_5 [Les Accrocs de la Graine] +gn_bandit_fleetinggarden_5 [Seed Addicts] // HASH_VALUE 063A8F8219C7DB8F // INDEX 5090 -gn_bandit_forbidden_depths_1 [Empaleurs d'Eva] +gn_bandit_forbidden_depths_1 [Eva's Empalers] // HASH_VALUE A949788B21C8949D // INDEX 5091 -gn_bandit_forbidden_depths_2 [Trancheurs] +gn_bandit_forbidden_depths_2 [Slicers] // HASH_VALUE 6C79584A81B3D8BA // INDEX 5092 -gn_bandit_forbidden_depths_3 [Les Bandits Bestiaux] +gn_bandit_forbidden_depths_3 [Beastie Bandits] // HASH_VALUE A9A98C7B9F526045 // INDEX 5093 @@ -21442,27 +21439,27 @@ gn_bandit_frahartowers_2 [Stunning Stavons] // HASH_VALUE 33C7FB6E5C934C49 // INDEX 5096 -gn_bandit_frahartowers_3 [Les Epées de la Furie] +gn_bandit_frahartowers_3 [Swords of Fury] // HASH_VALUE EBFA848D9E426839 // INDEX 5097 -gn_bandit_frahartowers_4 [Les Crameurs de Frahar] +gn_bandit_frahartowers_4 [Frahar Blazers] // HASH_VALUE D93A7879E914AB70 // INDEX 5098 -gn_bandit_gate_of_obscurity_1 [Les Brise-Coeurs] +gn_bandit_gate_of_obscurity_1 [Heart Breakers] // HASH_VALUE 1463EC3DAD085B94 // INDEX 5099 -gn_bandit_gate_of_obscurity_2 [Marchands de Terreur] +gn_bandit_gate_of_obscurity_2 [Merchants of Terror] // HASH_VALUE AE8A98ABDF84404D // INDEX 5100 -gn_bandit_gate_of_obscurity_3 [Chasseurs de la Vallée] +gn_bandit_gate_of_obscurity_3 [Valley Busters] // HASH_VALUE A9B95471C7B5FCA8 // INDEX 5101 -gn_bandit_gate_of_obscurity_4 [Les Glandeurs Écarlates] +gn_bandit_gate_of_obscurity_4 [Scarlet Loafers] // HASH_VALUE 63967C621638B460 // INDEX 5102 @@ -21470,7 +21467,7 @@ gn_bandit_groveofconfusion_1 [Madding Maids] // HASH_VALUE 6B52B0A3DCD83FC0 // INDEX 5103 -gn_bandit_groveofconfusion_2 [Les Tyrans du Bosquet] +gn_bandit_groveofconfusion_2 [Grove Tyrants] // HASH_VALUE 68B8FCE66A788CB8 // INDEX 5104 @@ -21478,7 +21475,7 @@ gn_bandit_groveofconfusion_3 [Slashing Slathes] // HASH_VALUE 18F79C9A64447C95 // INDEX 5105 -gn_bandit_groveofumbra_1 [Les Reines Tueuses] +gn_bandit_groveofumbra_1 [Killer Queens] // HASH_VALUE 298AB8A8E154504A // INDEX 5106 @@ -21894,31 +21891,31 @@ gn_bandit_windsofmuse_4 [Wicked Winds of the West] // HASH_VALUE AC59689FE9899CBD // INDEX 5209 -gn_class_apprentice_trader [Apprenti Négociant] +gn_class_apprentice_trader [Apprenti négociant] // HASH_VALUE 258BD0976128D8A2 // INDEX 5210 -gn_class_arcane_apprentice [Mage d'Elite Initié] +gn_class_arcane_apprentice [Mage d'élite initié] // HASH_VALUE 24E91888A93924B0 // INDEX 5211 -gn_class_arcane_master [Mage d'Elite Chevronné] +gn_class_arcane_master [Mage d'élite chevronné] // HASH_VALUE 242A1893E18B1897 // INDEX 5212 -gn_class_archery_lord [Grand Tireur Chevronné] +gn_class_archery_lord [Grand tireur chevronné] // HASH_VALUE 6F19C0A4E5B9D8A4 // INDEX 5213 -gn_class_archery_master [Grand Tireur Initié] +gn_class_archery_master [Grand tireur initié] // HASH_VALUE 6C1978AA67E924B5 // INDEX 5214 -gn_class_archery_recruit [Grand Tireur Novice] +gn_class_archery_recruit [Grand tireur novice] // HASH_VALUE 60DC34846C5834CC // INDEX 5215 -gn_class_assassin [Puissant Tireur Novice] +gn_class_assassin [Puissant tireur novice] // HASH_VALUE EAA8A0992A7AE8B3 // INDEX 5216 @@ -21926,59 +21923,59 @@ gn_class_bodyguard [Escorteur] // HASH_VALUE 2C6AE8A0AC19E4A3 // INDEX 5217 -gn_class_bowmen [Tireur Régulier Novice] +gn_class_bowmen [Tireur moyen novice] // HASH_VALUE 6AFA9CA86939709B // INDEX 5218 -gn_class_captain [Maître-Tireur Initié] +gn_class_captain [Maître-tireur Initié] // HASH_VALUE A479B088AAC964A6 // INDEX 5219 -gn_class_charm_adept [Puissant Mage Novice] +gn_class_charm_adept [Puissant mage novice] // HASH_VALUE 73A954A3F5E930AD // INDEX 5220 -gn_class_charm_expert [Puissant Mage Initié] +gn_class_charm_expert [Puissant mage initié] // HASH_VALUE 2B78B894AA58949A // INDEX 5221 -gn_class_cleric [Tireur d'Elite Chevronné] +gn_class_cleric [Tireur d'élite chevronné] // HASH_VALUE 6898F48C705824D4 // INDEX 5222 -gn_class_conjurer [Grand Mage Chevronné] +gn_class_conjurer [Grand mage chevronné] // HASH_VALUE 2A59DCB0EA2ADCB3 // INDEX 5223 -gn_class_conscript [Guerrier Régulier Novice] +gn_class_conscript [Guerrier régulier novice] // HASH_VALUE 2CAAC0966798C0A4 // INDEX 5224 -gn_class_cure_adept [Maître-Tireur Novice] +gn_class_cure_adept [Maître-tireur novice] // HASH_VALUE E36A149FEC69F0BE // INDEX 5225 -gn_class_cure_expert [Maître-Tireur Chevronné] +gn_class_cure_expert [Maître-tireur chevronné] // HASH_VALUE A97A84B669E9149A // INDEX 5226 -gn_class_cure_master [Maître-Tireur Initié] +gn_class_cure_master [Maître-tireur initié] // HASH_VALUE EBF980AAEB08ACA7 // INDEX 5227 -gn_class_elite [Tireur d'Elite Novice] +gn_class_elite [Tireur d'élite novice] // HASH_VALUE 27984CAD2AD83CBD // INDEX 5228 -gn_class_executionner [Puissant Tireur Initié] +gn_class_executionner [Puissant tireur initié] // HASH_VALUE ED8B28ACB2DA18B9 // INDEX 5229 -gn_class_expert [Guerrier d'Elite Initié] +gn_class_expert [Guerrier d'élite initié] // HASH_VALUE 2C99B49EE6999CB1 // INDEX 5230 -gn_class_fighter [Puissant Tireur Initié] +gn_class_fighter [Puissant tireur initié] // HASH_VALUE 2609A8A868AAB4A4 // INDEX 5231 @@ -21986,27 +21983,27 @@ gn_class_forager [Récolteur] // HASH_VALUE 2CB9689367A9EC9F // INDEX 5232 -gn_class_healing_apprentice [Guérisseur Régulier Novice] +gn_class_healing_apprentice [Guérisseur régulier novice] // HASH_VALUE 6AD8BCAA28D870B4 // INDEX 5233 -gn_class_legionnaire [Puissant Tireur Novice] +gn_class_legionnaire [Puissant tireur novice] // HASH_VALUE E919AC9E2C0AD491 // INDEX 5234 -gn_class_life_surgeon [Guérisseur d'Elite Initié] +gn_class_life_surgeon [Guérisseur d'élite initié] // HASH_VALUE 68D814B46C58948C // INDEX 5235 -gn_class_magician [Maître-Mage Chevronné] +gn_class_magician [Maître-mage chevronné] // HASH_VALUE 6988ACAF28B9C0B8 // INDEX 5236 -gn_class_major [Maître-Guerrier Novice] +gn_class_major [Maître-guerrier novice] // HASH_VALUE A408689E27A87C9D // INDEX 5237 -gn_class_medic [Grand Guérisseur Initié] +gn_class_medic [Grand guérisseur initié] // HASH_VALUE 681894B46C58948C // INDEX 5238 @@ -22014,11 +22011,11 @@ gn_class_milician [Gouverneur] // HASH_VALUE 6B1AD0A3EE18F4A7 // INDEX 5239 -gn_class_mystical_adept [Maître-Mage Novice] +gn_class_mystical_adept [Maître-mage novice] // HASH_VALUE EC0C28AAABF9ACA3 // INDEX 5240 -gn_class_mystical_expert [Maître-Mage Initié] +gn_class_mystical_expert [Maître-mage initié] // HASH_VALUE 6B88D0A32B48B89A // INDEX 5241 @@ -22026,79 +22023,79 @@ gn_class_noble [Compagnon] // HASH_VALUE 6B6AF8BCAEDB00BF // INDEX 5242 -gn_class_priest [Guérisseur d'Elite Novice] +gn_class_priest [Guérisseur d'élite novice] // HASH_VALUE 6B5ACCC1AF1AF0AA // INDEX 5243 -gn_class_private [Grand Guerrier Initié] +gn_class_private [Grand guerrier initié] // HASH_VALUE A73918B4687A1CA9 // INDEX 5244 -gn_class_professional [Puissant Tireur Chevronné] +gn_class_professional [Puissant tireur chevronné] // HASH_VALUE A5C968A4E6099897 // INDEX 5245 -gn_class_range_adept [Tireur Régulier Chevronné] +gn_class_range_adept [Tireur régulier chevronné] // HASH_VALUE A6F858BC25E850AF // INDEX 5246 -gn_class_range_master [Tireur Chevronné d'Elite] +gn_class_range_master [Tireur chevronné d'élite] // HASH_VALUE 704AC0AC69FAD4C4 // INDEX 5247 -gn_class_recruit [Guerrier Régulier Initié] +gn_class_recruit [Guerrier régulier initié] // HASH_VALUE E77BC0ADB0D8D4B4 // INDEX 5248 -gn_class_ritual_master [Grand Guérisseur Chevronné] +gn_class_ritual_master [Grand guérisseur chevronné] // HASH_VALUE EAD990B1AAFBECBA // INDEX 5249 -gn_class_sergent [Puissant Guerrier Chevronné] +gn_class_sergent [Puissant guerrier chevronné] // HASH_VALUE 6B79B0A82A9AC896 // INDEX 5250 -gn_class_shaman [Grand Guérisseur Novice] +gn_class_shaman [Grand guérisseur novice] // HASH_VALUE E84A98AD270878C9 // INDEX 5251 -gn_class_shooting_elite [Tireur d'Elite Novice] +gn_class_shooting_elite [Tireur d'élite novice] // HASH_VALUE 2CB9B4B3E979ACAE // INDEX 5252 -gn_class_shooting_lord [Tireur d'Elite Initié] +gn_class_shooting_lord [Tireur d'élite initié] // HASH_VALUE 68F8A4B2EB1AE8B3 // INDEX 5253 -gn_class_soldier [Guerrier Régulier Chevronné] +gn_class_soldier [Guerrier régulier chevronné] // HASH_VALUE 609CF4CC70582494 // INDEX 5254 -gn_class_sorcerer [Mage d'Elite Novice] +gn_class_sorcerer [Mage d'élite novice] // HASH_VALUE 6B7B90B0688AD8AC // INDEX 5255 -gn_class_sorcery_apprentice [Grand Mage Novice] +gn_class_sorcery_apprentice [Grand mage novice] // HASH_VALUE 2D0AA0C5E2CBCCB6 // INDEX 5256 -gn_class_sorcery_master [Grand Mage Initié] +gn_class_sorcery_master [Grand mage initié] // HASH_VALUE EC7A8CAF6C5AB8A2 // INDEX 5257 -gn_class_spellcaster [Grand Mage Novice] +gn_class_spellcaster [Grand mage novice] // HASH_VALUE ABEB78A92649B4C9 // INDEX 5258 -gn_class_throwing_adept [Maître-Tireur Novice] +gn_class_throwing_adept [Maître-tireur novice] // HASH_VALUE 2DABE0A0E7EAF8B7 // INDEX 5259 -gn_class_throwing_expert [Maître-Tireur Initié] +gn_class_throwing_expert [Maître-tireur initié] // HASH_VALUE B16AA4A8E7CABCB9 // INDEX 5260 -gn_class_throwing_master [Maître-Tireur Chevronné] +gn_class_throwing_master [Maître-tireur chevronné] // HASH_VALUE 6AC9ECAEEDFAEC9F // INDEX 5261 @@ -22110,35 +22107,35 @@ gn_class_traveler [Voyageur] // HASH_VALUE A52A949DEEC974B7 // INDEX 5263 -gn_class_treat_adept [Puissant Guérisseur Initié] +gn_class_treat_adept [Puissant guérisseur initié] // HASH_VALUE E65824C8EA9844D0 // INDEX 5264 -gn_class_treat_apprentice [Puissant Guérisseur Novice] +gn_class_treat_apprentice [Puissant guérisseur novice] // HASH_VALUE EC4904C46F8BF8BB // INDEX 5265 -gn_class_trooper [Grand Guerrier Novice] +gn_class_trooper [Grand guerrier novice] // HASH_VALUE 609C14DC645894A0 // INDEX 5266 -gn_class_warchief [Maître-Guerrier Chevronné] +gn_class_warchief [Maître-guerrier chevronné] // HASH_VALUE A819BCB6EC6A9CB4 // INDEX 5267 -gn_class_warlock [Puissant Mage Chevronné] +gn_class_warlock [Puissant mage chevronné] // HASH_VALUE AB0ABCB6ECFABCBC // INDEX 5268 -gn_class_warlord [Guerrier d'Elite Chevronné] +gn_class_warlord [Guerrier d'élite chevronné] // HASH_VALUE 2CDBC0C2AA6AD0A1 // INDEX 5269 -gn_class_warmaster [Maître en Guerre] +gn_class_warmaster [Maître en guerre] // HASH_VALUE 6DDABCBC6DDBE8C1 // INDEX 5270 -gn_class_warrior [Grand Guerrier Chevronné] +gn_class_warrior [Grand guerrier chevronné] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5271 @@ -22150,7 +22147,7 @@ gn_forager [Récolteur] // HASH_VALUE 6A0A88B22A29CC9E // INDEX 5273 -gn_fraharhunters_guards_w_10 [Puissant Garde] +gn_fraharhunters_guards_w_10 [Puissant garde] // HASH_VALUE 679AC8ACEB39C0A2 // INDEX 5274 @@ -22206,11 +22203,11 @@ gn_matis_voluteer [Volontaire Matis] // HASH_VALUE E9DAB4A4ABF9A4A1 // INDEX 5287 -gn_mystical__adept [Maître-Mage Novice] +gn_mystical__adept [Maître-mage novice] // HASH_VALUE 691AC8A6AC9AE4A9 // INDEX 5288 -gn_professionnal [Puissant Tireur Chevronné] +gn_professionnal [Puissant tireur chevronné] // HASH_VALUE CE745F72D2D39772 // INDEX 5289 @@ -22226,11 +22223,11 @@ gn_zorai_voluteer_f [Volontaire Zoraï] // HASH_VALUE 10F0B412CEB0AC10 // INDEX 5292 -uimwEncyclopedia [ENCYCLOPEDIE] +uimwEncyclopedia [ENCYCLOPÉDIE] // HASH_VALUE 10F0B412CEB0AC10 // INDEX 5293 -uiEncyclopedia [ENCYCLOPEDIE] +uiEncyclopedia [ENCYCLOPÉDIE] // HASH_VALUE A79A55E425442C20 // INDEX 5294 @@ -22243,11 +22240,11 @@ uiThemeProgression [Progression :] // HASH_VALUE 4B51742F48D0C025 // INDEX 5296 -uiEncyAlbum [ALBUM] +uiEncyAlbum [Album] // HASH_VALUE 07F19C2ECB71BC2B // INDEX 5297 -uiEncyTheme [THEME] +uiEncyTheme [Thème] // HASH_VALUE 8BB4C8540F91521F // INDEX 5298 @@ -22255,31 +22252,31 @@ uiRite [RITE : Rite donnée par PNJ...] // HASH_VALUE 26EF7898DE522F7E // INDEX 5299 -uiTask1 [Tâche de Rituel 1: Tâche donnée par PNJ...] +uiTask1 [Tâche du rituel 1: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F7F // INDEX 5300 -uiTask2 [Tâche de Rituel 2: Tâche donnée par PNJ...] +uiTask2 [Tâche du rituel 2: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F80 // INDEX 5301 -uiTask3 [Tâche de Rituel 3: Tâche donnée par PNJ...] +uiTask3 [Tâche du rituel 3: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F81 // INDEX 5302 -uiTask4 [Tâche de Rituel 4: Tâche donnée par PNJ...] +uiTask4 [Tâche du rituel 4: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F82 // INDEX 5303 -uiTask5 [Tâche de Rituel 5: Tâche donnée par PNJ...] +uiTask5 [Tâche du rituel 5: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F83 // INDEX 5304 -uiTask6 [Tâche de Rituel 6: Tâche donnée par PNJ...] +uiTask6 [Tâche du rituel 6: Tâche donnée par PNJ...] // HASH_VALUE 26EF7898DE522F84 // INDEX 5305 -uiTask7 [Tâche de Rituel 7: Tâche donnée par PNJ...] +uiTask7 [Tâche du rituel 7: Tâche donnée par PNJ...] // HASH_VALUE 245AACCC6BFBC0BE // INDEX 5306 @@ -22317,19 +22314,19 @@ uiQuitNow [Quitter Maintenant] // HASH_VALUE 76FA8CC65B825C6E // INDEX 5314 uiPayingAccount [Pour une durée limitée, la licence de Ryzom est gratuite !\n - Abonnez-vous aujourd'hui pour avoir un accès complet à Ryzom et ne payez que l'abonnement mensuel. ] + Abonnez-vous aujourd'hui pour avoir un accès complet à Ryzom et ne payez que l'abonnement mensuel.] // HASH_VALUE 4D9FFC178C00FC3E // INDEX 5315 -uiTitlePayingAccount [INSCRIVEZ VOUS MAINTENANT] +uiTitlePayingAccount [INSCRIVEZ-VOUS MAINTENANT] // HASH_VALUE C43073118362DC40 // INDEX 5316 -uiNotYet [PAS ENCORE] +uiNotYet [Pas encore] // HASH_VALUE 8DFFDC2E3FB20B25 // INDEX 5317 -uiUpgradeNow [S'INSCRIRE] +uiUpgradeNow [S'inscrire] // HASH_VALUE DA87076E9EF62683 // INDEX 5318 @@ -22345,7 +22342,7 @@ uiBCFilterClass [Classe :] // HASH_VALUE 4621C87908F5289B // INDEX 5321 -uiBCMPItemPart [Partie de l'objet/M.P. :] +uiBCMPItemPart [Partie de l'objet / M.P. :] // HASH_VALUE 22D7CB47A983BF33 // INDEX 5322 @@ -22357,23 +22354,23 @@ uiBCNoItemTypeFilter [Tous] // HASH_VALUE A0D45B8193642864 // INDEX 5324 -uiBCTitleFilterPrice [Filtre/Fourchette de Prix :] +uiBCTitleFilterPrice [Filtre / Fourchette de prix :] // HASH_VALUE 9688AC88DEA05C72 // INDEX 5325 -uiBCTitleFilterQuality [Filtre/Ecarts de Qualité :] +uiBCTitleFilterQuality [Filtre / Écarts de qualité :] // HASH_VALUE A2043B7B4F45685C // INDEX 5326 -uiBCTitleFilterClass [Choisir la Classe :] +uiBCTitleFilterClass [Choisir la classe :] // HASH_VALUE DA580C3F5CE42F9C // INDEX 5327 -uiBCTitleMPItemPart [Filtre/Partie de l'Objet] +uiBCTitleMPItemPart [Filtre / Partie de l'objet] // HASH_VALUE DA580C3F98C48FA0 // INDEX 5328 -uiBCTitleMPItemType [Choisir l'Objet] +uiBCTitleMPItemType [Choisir l'objet] // HASH_VALUE 3898943438989434 // INDEX 5329 @@ -22385,7 +22382,7 @@ uiBCFilterMax [Max :] // HASH_VALUE 3D76CF43DE2EDEDE // INDEX 5331 -uittBCNoItemPartFilter [Afficher toutes les Matières Premières sans Filtre/Partie de l'Objet.] +uittBCNoItemPartFilter [Afficher toutes les matières premières sans filtre / partie de l'objet.] // HASH_VALUE AB087C9022F9449E // INDEX 5332 @@ -22393,15 +22390,15 @@ uiBCFilterReset [Défaut] // HASH_VALUE 1E03F6C436507FA0 // INDEX 5333 -uiBCFilterClass0 [de Base (1)] +uiBCFilterClass0 [de base (1)] // HASH_VALUE 64989418288C8080 // INDEX 5334 -uiBCFilterClass1 [Fin(e) (2)] +uiBCFilterClass1 [fin(e) (2)] // HASH_VALUE C85F7AF9D7627F48 // INDEX 5335 -uiBCFilterClass2 [de Choix (3)] +uiBCFilterClass2 [de choix (3)] // HASH_VALUE DDD2B65298A52C66 // INDEX 5336 @@ -22421,16 +22418,16 @@ uiBCDestroy [Détruire] // HASH_VALUE 7366E11A67CF8728 // INDEX 5340 -uiBCAutoReset [Réinitialiser les Filtres à l'ouverture] +uiBCAutoReset [Réinitialiser les filtres à l'ouverture] // HASH_VALUE C22FCC4FDB97D70B // INDEX 5341 uittBCAutoReset [Si coché, tous les @{6F6F}filtres@{FFFF} seront réinitialisés à l'ouverture de cette fenêtre.\n - Décochez cette option pour conserver les filtres de @{6F6F}Prix@{FFFF}, @{6F6F}Qualité@{FFFF} et @{6F6F}Classe@{FFFF} entre deux ouvertures de cette fenêtre.] + Décochez cette option pour conserver les filtres de @{6F6F}prix@{FFFF}, @{6F6F}qualité@{FFFF} et @{6F6F}classe@{FFFF} entre deux ouvertures de cette fenêtre.] // HASH_VALUE 72D8400F70580435 // INDEX 5342 -uiCriticalHit [Coup Critique] +uiCriticalHit [Coup critique] // HASH_VALUE 619924766177348A // INDEX 5343 @@ -22442,11 +22439,11 @@ uiDodge [Esquive] // HASH_VALUE AC4BD4932308449E // INDEX 5345 -uiResist [Resiste] +uiResist [Résiste] // HASH_VALUE 6D98289465A75487 // INDEX 5346 -uiEvade [Evite] +uiEvade [Évite] // HASH_VALUE 558610745735209D // INDEX 5347 @@ -22454,7 +22451,7 @@ uiInterrupt [Interrompu !] // HASH_VALUE 811450759C22A6E9 // INDEX 5348 -uiFailure [Echec !] +uiFailure [Échec !] // HASH_VALUE 74582440705CF4A4 // INDEX 5349 @@ -22490,23 +22487,23 @@ uiPlaylistTitle [PLAYLIST] // HASH_VALUE 1673A06395223B35 // INDEX 5357 -uimwMP3Player [LECTEUR MP3] +uimwMP3Player [Lecteur MP3] // HASH_VALUE E75984886189248F // INDEX 5358 -uimwBGDownloader [FENÊTRE DE MISE À JOUR] +uimwBGDownloader [Fenêtre de mise à jour] // HASH_VALUE CA92A4228801E834 // INDEX 5359 -uimwCosmetics [COSMETIQUES] +uimwCosmetics [Cosmétiques] // HASH_VALUE 9759D85E1014FC38 // INDEX 5360 -uiCosmColor [Changer de Couleur de Cheveux] +uiCosmColor [Changer de couleur de cheveux] // HASH_VALUE 2624A84EA0109C72 // INDEX 5361 -uiCosmTatoo [Changer de Tatouages] +uiCosmTatoo [Changer de tatouages] // HASH_VALUE 5ECD741E95F7341E // INDEX 5362 @@ -22518,11 +22515,11 @@ uittNotEnoughGuildMoney [Votre guilde ne dispose pas de suffisamment d'argent po // HASH_VALUE 9EA0F87CB6A59313 // INDEX 5364 -uittNotEnoughGuildXP [Vous n'avez pas assez d'XP de Guilde pour acheter cela.] +uittNotEnoughGuildXP [Vous n'avez pas assez d'expérience de guilde pour acheter cela.] // HASH_VALUE 53D9C9F44CDBDCD8 // INDEX 5365 -uittNotEnoughSkillPoints [Vous n'avez pas assez de Points de Compétences pour acheter cette action.] +uittNotEnoughSkillPoints [Vous n'avez pas assez de points de compétences pour acheter cette action.] // HASH_VALUE 54D3D13C71366CC4 // INDEX 5366 @@ -22534,7 +22531,7 @@ uittBadQuantity [Vous avez saisi une quantité erronée.] // HASH_VALUE FEF9AE3B63185136 // INDEX 5368 -uittBadResalePrice [Vous avez saisi un prix de revente erroné. Le prix à la revente doit être au moins égal au "Prix de Base".] +uittBadResalePrice [Vous avez saisi un prix de revente erroné. Le prix à la revente doit être au moins égal au "prix de base".] // HASH_VALUE C61CAA56C8BA7AC4 // INDEX 5369 @@ -22562,7 +22559,7 @@ uiMagicProtectTable [PROTECTIONS] // HASH_VALUE 276E3F52A73FB865 // INDEX 5375 -uittMagicProtectTable [Les @{6F6F}protections magiques@{FFFF} absorbent un pourcentage des dommages magiques subis. Le montant d'absorption dépend:\n +uittMagicProtectTable [Les @{6F6F}protections magiques@{FFFF} absorbent un pourcentage des dommages magiques subis. Le montant d'absorption dépend :\n @{T4}- du @{6F6F}type de dégat@{FFFF} magique subi\n @{T4}- des caractéristiques de protections magiques des @{6F6F}bijoux@{FFFF} portés\n @{T4}- de la somme de @{6F6F}qualité@{FFFF} des bijoux portés\n @@ -22634,22 +22631,22 @@ uittProtect_MaxReached [(maximum)] // HASH_VALUE BE3C7E33592B3BA4 // INDEX 5392 -uittProtect_MaxAbsorb [Maximum des Dommages Magiques absorbés.\n +uittProtect_MaxAbsorb [Maximum des dommages magiques absorbés.\n Somme de @{6F6F}qualité des bijoux@{FFFF} + @{6F6F}level max@{FFFF} du personnage.] // HASH_VALUE 0F43D4330BE3FC4C // INDEX 5393 -uiResistsTable [RESISTANCES] +uiResistsTable [RÉSISTANCES] // HASH_VALUE 3B5AB94F4DCF2CF8 // INDEX 5394 -uittMagicResistTable [Les sorts des créatures et des joueurs peuvent être complètement @{6F6F}résistés@{FFFF}.\n - Le @{6F6F}pourcentage de chance@{FFFF} de résistance dépend:\n +uittMagicResistTable [Les sorts des créatures et des personnages peuvent être complètement @{6F6F}résistés@{FFFF}.\n + Le @{6F6F}pourcentage de chance@{FFFF} de résistance dépend :\n @{T4}- de la @{6F6F}puissance@{FFFF} du sort lancé si c'est un sort d'Affliction\n - @{T4}- du @{6F6F}niveau de compétence@{FFFF} du Mage si c'est un sort Elémentaire\n + @{T4}- du @{6F6F}niveau de compétence@{FFFF} du mage si c'est un sort élémentaire\n @{T4}- de votre @{6F6F}score de résistance@{FFFF} dans le @{6F6F}domaine de magie@{FFFF} du sort lancé\n - @{T0}Votre @{6F6F}score de résistance@{FFFF} est la somme:\n - @{T4}- du maximum entre vos niveaux de compétences en @{6F6F}Combat, Magie et Forage/2@{FFFF}\n + @{T0}Votre @{6F6F}score de résistance@{FFFF} est la somme :\n + @{T4}- du maximum entre vos niveaux de compétences en @{6F6F}combat, magie et forage/2@{FFFF}\n @{T4}- des bonus de @{6F6F}résistance des bijoux@{FFFF} dans le domaine de magie concerné\n @{T4}- d'un bonus dépendant de @{6F6F}votre race@{FFFF} (ex: +10 en Désert pour les Fyros)\n @{T4}- d'un malus dépendant de @{6F6F}l'écosystème@{FFFF} dans lequel vous vous trouvez (ex: -10 en Désert si vous êtes dans le désert)] @@ -22676,10 +22673,10 @@ uiResist_PrimRoot [Domaine des Prime Racines] // HASH_VALUE 0B3B8D626ED819EA // INDEX 5400 -uittResist_Desert [Résistance contre les sorts du domaine de magie du Désert: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chances de résister un sort de @{6F6F}Magie Elémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chances de résister un sort de @{6F6F}Magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n - @{T0}Ce Domaine regroupe les types de magie suivant :\n +uittResist_Desert [Résistance contre les sorts du domaine de magie du Désert : @{6F6F}%v@{FFFF} %max\n + @{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n + @{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n + @{T0}Ce domaine regroupe les types de magie suivant :\n @{T4}- @{6F6F}Feu@{FFFF}\n @{T4}- @{6F6F}Aveuglement@{FFFF}\n @{T4}- @{6F6F}Folie@{FFFF}\n @@ -22687,45 +22684,45 @@ uittResist_Desert [Résistance contre les sorts du domaine de magie du Désert: // HASH_VALUE 59EA33B883AB2026 // INDEX 5401 -uittResist_Forest [Résistance contre les sorts du domaine de magie de la Forêt: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chances de résister un sort de @{6F6F}Magie Elémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chances de résister un sort de @{6F6F}Magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n - @{T0}Ce Domaine regroupe les types de magie suivant :\n +uittResist_Forest [Résistance contre les sorts du domaine de magie de la Forêt : @{6F6F}%v@{FFFF} %max\n + @{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n + @{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n + @{T0}Ce domaine regroupe les types de magie suivant :\n @{T4}- @{6F6F}Poison@{FFFF}\n @{T4}- @{6F6F}Sommeil@{FFFF}\n - @{T4}- @{6F6F}Ralentissement du Mouvement@{FFFF}\n + @{T4}- @{6F6F}Ralentissement du mouvement@{FFFF}\n ] // HASH_VALUE C9600D6865D27D73 // INDEX 5402 -uittResist_Lacustre [Résistance contre les sorts du domaine de magie des Lacs: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chances de résister un sort de @{6F6F}Magie Elémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chances de résister un sort de @{6F6F}Magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n - @{T0}Ce Domaine regroupe les types de magie suivant :\n +uittResist_Lacustre [Résistance contre les sorts du domaine de magie des Lacs : @{6F6F}%v@{FFFF} %max\n + @{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n + @{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n + @{T0}Ce domaine regroupe les types de magie suivant :\n @{T4}- @{6F6F}Froid@{FFFF}\n @{T4}- @{6F6F}Onde de Choc@{FFFF}\n - @{T4}- @{6F6F}Assommer@{FFFF}\n + @{T4}- @{6F6F}Étourdissement@{FFFF}\n ] // HASH_VALUE 6D27C3213D0933D9 // INDEX 5403 -uittResist_Jungle [Résistance contre les sorts du domaine de magie de la Jungle: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chances de résister un sort de @{6F6F}Magie Elémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chances de résister un sort de @{6F6F}Magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n - @{T0}Ce Domaine regroupe les types de magie suivant :\n - @{T4}- @{6F6F}Electricité@{FFFF}\n +uittResist_Jungle [Résistance contre les sorts du domaine de magie de la Jungle : @{6F6F}%v@{FFFF} %max\n + @{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF} : @{6F6F}%emr%@{FFFF}\n + @{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF} : @{6F6F}%amr%@{FFFF}\n + @{T0}Ce domaine regroupe les types de magie suivant :\n + @{T4}- @{6F6F}Électricité@{FFFF}\n @{T4}- @{6F6F}Enracinement@{FFFF}\n - @{T4}- @{6F6F}Ralentissement des Attaques@{FFFF}\n + @{T4}- @{6F6F}Ralentissement des attaques@{FFFF}\n ] // HASH_VALUE C84D03E6ED023088 // INDEX 5404 -uittResist_PrimRoot [Résistance contre les sorts du domaine de magie des Prime Racines: @{6F6F}%v@{FFFF} %max\n - @{T4}- Chances de résister un sort de @{6F6F}Magie Elémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n - @{T4}- Chances de résister un sort de @{6F6F}Magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n - @{T0}Ce Domaine regroupe les types de magie suivant :\n +uittResist_PrimRoot [Résistance contre les sorts du domaine de magie des Prime Racines : @{6F6F}%v@{FFFF} %max\n + @{T4}- Chances de résister un sort de @{6F6F}magie élémentaire@{FFFF} de niveau @{6F6F}%eml@{FFFF}: @{6F6F}%emr%@{FFFF}\n + @{T4}- Chances de résister un sort de @{6F6F}magie d'Affliction@{FFFF} de niveau @{6F6F}%aml@{FFFF}: @{6F6F}%amr%@{FFFF}\n + @{T0}Ce domaine regroupe les types de magie suivant :\n @{T4}- @{6F6F}Acide@{FFFF}\n - @{T4}- @{6F6F}Pourrissement@{FFFF}\n + @{T4}- @{6F6F}Pourriture@{FFFF}\n @{T4}- @{6F6F}Peur@{FFFF}\n ] @@ -22779,47 +22776,47 @@ uiResValue [1024x768] // HASH_VALUE CEA2083E8EF12841 // INDEX 5417 -uiLodValueLow [FAIBLE] +uiLodValueLow [Faible] // HASH_VALUE 48B184334741A43B // INDEX 5418 -uiLodValueMedium [MOYEN] +uiLodValueMedium [Moyen] // HASH_VALUE 8C42E02F0C01D422 // INDEX 5419 -uiLodValueNormal [NORMAL] +uiLodValueNormal [Normal] // HASH_VALUE 48D0942048D09420 // INDEX 5420 -uiLodValueHigh [ELEVE] +uiLodValueHigh [Élevé] // HASH_VALUE D292302812911034 // INDEX 5421 -uiLodValueCustom [PERSONNALISE] +uiLodValueCustom [Personnalisé] // HASH_VALUE 7B81DC2B096FAAF3 // INDEX 5422 -uiNPCGiver [INITIATEUR : ] +uiNPCGiver [Initiateur : ] // HASH_VALUE CB0D1F3A39613BDC // INDEX 5423 -uiENDesc [TACHE : ] +uiENDesc [Tâche : ] // HASH_VALUE 9340C82653FDD415 // INDEX 5424 -uiENRequired [TACHES RITUELLES] +uiENRequired [Tâches rituelles] // HASH_VALUE 4414944844149448 // INDEX 5425 -uiENRite [RITE] +uiENRite [Rite] // HASH_VALUE 8263473683720A41 // INDEX 5426 -uiENGiver [INITIATEUR :] +uiENGiver [Initiateur :] // HASH_VALUE 03E25BFA0890530C // INDEX 5427 -uiENName [TACHE :] +uiENName [Tâche :] // HASH_VALUE 63086880A6083480 // INDEX 5428 @@ -22831,7 +22828,7 @@ uiMissionOr [ou ] // HASH_VALUE 62F5049CECE91B4A // INDEX 5430 -uiMissionPrereq [Pré requis :] +uiMissionPrereq [Pré-requis :] // HASH_VALUE 55F70330EE7AE893 // INDEX 5431 @@ -22847,7 +22844,7 @@ uittMissionWake [Réveil] // HASH_VALUE 3C41102C8F6F3328 // INDEX 5434 -uiEnterCrZoneProposal [SAISIR PROPOSITION ZONE CRITIQUE] +uiEnterCrZoneProposal [Saisir proposition zone critique] // HASH_VALUE 74582440705CF4A4 // INDEX 5435 @@ -22859,11 +22856,11 @@ uiMFNext [Suiv.] // HASH_VALUE 1BA94F762BB2AC62 // INDEX 5437 -uiMFDeleteMailTitle [Effacer message] +uiMFDeleteMailTitle [Effacer le message] // HASH_VALUE 8F75FC2F68F786B0 // INDEX 5438 -uiMFEraseMail [Effacer message ?] +uiMFEraseMail [Effacer le message ?] // HASH_VALUE 79152CAEF0165762 // INDEX 5439 @@ -22883,7 +22880,7 @@ uiMFPosts [Posts] // HASH_VALUE 645854A2D3445F68 // INDEX 5443 -uiMFLastPost [Dernier Post] +uiMFLastPost [Dernier post] // HASH_VALUE 1BBA906147D99875 // INDEX 5444 @@ -22903,7 +22900,7 @@ uiMFMessage [Message] // HASH_VALUE 2C96489E60277C92 // INDEX 5448 -uiMFInbox [Boîte de Réception] +uiMFInbox [Boîte de réception] // HASH_VALUE 6CD824186CD82418 // INDEX 5449 @@ -22983,7 +22980,7 @@ uiMonth07 [Juillet] // HASH_VALUE 3437505C34D54C8E // INDEX 5468 -uiMonth08 [Aout] +uiMonth08 [Août] // HASH_VALUE 66B9408CA599DCAE // INDEX 5469 @@ -23037,14 +23034,6 @@ uiCancelCreateAccount [Retour à la page d'accueil] // INDEX 5481 uiSubmitNewAccount [Soumettre] -/* OLD VALUE : [Congratulations! -You have succeeded in creating a Ryzom account -A confirmation e-mail has been sent to you at the following address: -] */ -/* OLD VALUE : [Félicitations ! -Vous venez de créer un compte Ryzom. -Un e-mail de confirmation vous a été envoyé à l'adresse suivante : -] */ // HASH_VALUE 0A7AAE591216F54A // INDEX 5482 uiSubmitSucces1 [Félicitations !\n @@ -23053,12 +23042,6 @@ uiSubmitSucces1 [Félicitations !\n Un e-mail vous a été envoyé à l'adresse suivante :\n ] -/* OLD VALUE : [ -Please click on the link that it contains to activate your new account. -You must activate your account before you can log in.] */ -/* OLD VALUE : [ -Cliquez s'il vous plaît sur le lien qu'il contient afin d'activer votre compte. -L'activation du compte est nécessaire avant de pouvoir vous connecter.] */ // HASH_VALUE 3B64D40332050146 // INDEX 5483 uiSubmitSucces2 [\n @@ -23080,19 +23063,19 @@ uiAcceptTermsOfUse2 [conditions d'utilisation.] // HASH_VALUE 0CC17829C1F0B028 // INDEX 5487 -uiUpgradeAccount [CONVERTIR UN COMPTE] +uiUpgradeAccount [Convertir un compte] // HASH_VALUE 8211AB263A80B327 // INDEX 5488 -uiScanData [VERIFIER DONNEES] +uiScanData [Vérifier les données] // HASH_VALUE 0350481983A0741B // INDEX 5489 -uiCancelScanData [ANNULER] +uiCancelScanData [Annuler] // HASH_VALUE 0B2190278A40A02A // INDEX 5490 -uiCloseScanData [FERMER] +uiCloseScanData [Fermer] // HASH_VALUE C3480F9CE5F4FC70 // INDEX 5491 @@ -23101,11 +23084,11 @@ uiCancelingScanData [Annulation du scan des données. Veuillez patienter...] // HASH_VALUE 661A66B087AD7306 // INDEX 5492 uiScanDataSucess [Scan des données négatif, pas de fichiers corrompus.\n - Appuyez sur 'Fermer'] + Appuyez sur 'Fermer'.] // HASH_VALUE 721E5E1A9456EFBF // INDEX 5493 -uiScanDataErrors [Scan des données : %d fichiers corrompus. Ils seront rechargés lors du prochain patch. Appuyez sur 'Fermer'] +uiScanDataErrors [Scan des données : %d fichiers corrompus. Ils seront rechargés lors du prochain patch. Appuyez sur 'Fermer'.] // HASH_VALUE E75AB8609366163E // INDEX 5494 @@ -23113,7 +23096,7 @@ uiErrDataScanning [Erreur : échec scan des données] // HASH_VALUE 018EA0EB4810CBE0 // INDEX 5495 -uiOnDataScanning [VERIFICATION DE TOUS LES FICHIERS...] +uiOnDataScanning [Vérification de tous les fichiers...] // HASH_VALUE D706BA911951BA99 // INDEX 5496 @@ -23253,23 +23236,23 @@ uiTextCommandFT4 [ FT FT Extrait des chroniques d'Erlan] // HASH_VALUE 24B816A0C9599FAC // INDEX 5529 -uiLoadingString0 [Votre horoscope prédit une rencontre passionnée avec un kirosta] +uiLoadingString0 [Votre horoscope prédit une rencontre passionnée avec un kirosta.] // HASH_VALUE E98900FFF775E4A4 // INDEX 5530 -uiLoadingString1 [En attente de la fin de la grève des yubos] +uiLoadingString1 [En attente de la fin de la grève des yubos...] // HASH_VALUE EC380C7826B0E2B8 // INDEX 5531 -uiLoadingString2 [En attente de la fin de la pause des pnjs] +uiLoadingString2 [En attente de la fin de la pause des PNJ...] // HASH_VALUE 982918929DE29270 // INDEX 5532 -uiLoadingString3 [En attente de la libération des yubos] +uiLoadingString3 [En attente de la libération des yubos...] // HASH_VALUE A9A928B20D40C067 // INDEX 5533 -uiLoadingString4 [Défense de nourrir les animaux] +uiLoadingString4 [Défense de nourrir les animaux !] // HASH_VALUE 57987089DF3E8526 // INDEX 5534 @@ -23277,7 +23260,7 @@ uiLoadingString5 [Un yubo est monté dans le téléporteur avec vous !] // HASH_VALUE DDCF5B28C4882657 // INDEX 5535 -uiLoadingString6 [Where am I ?] +uiLoadingString6 [Où suis-je ?] // HASH_VALUE C3845961575BCF17 // INDEX 5536 @@ -23301,27 +23284,27 @@ uiLoadingString11 [Reconstruction de votre structure à partir de votre ADN] // HASH_VALUE D3A4AE55153998BE // INDEX 5541 -uiLoadingString12 [Mise à jour de l'IA fyros... impossible donnée inexistante] +uiLoadingString12 [Mise à jour de l'IA fyros... impossible. Données inexistantes.] // HASH_VALUE A235B485FD91F379 // INDEX 5542 -uiLoadingString13 [Bienvenue chez vous] +uiLoadingString13 [Bienvenue chez vous !] // HASH_VALUE 2C7660055814BCAD // INDEX 5543 -uiLoadingString14 [Maquillage des pnjs] +uiLoadingString14 [Maquillage des PNJ] // HASH_VALUE DA2580B0E74AB8DE // INDEX 5544 -uiLoadingString15 [Félicitations, vous avez été élu homin le plus sympathique d'Atys] +uiLoadingString15 [Félicitations, vous avez été élu homin le plus sympathique d'Atys !] // HASH_VALUE 9F5A8863CDA463CB // INDEX 5545 -uiLoadingString16 [Donnez un dapper au premier homin que vous verrez et vous aurez de la chance toute la journée] +uiLoadingString16 [Donnez un dapper au premier homin que vous verrez et vous aurez de la chance toute la journée !] // HASH_VALUE 4A93117E839C41A5 // INDEX 5546 -uiLoadingString17 [Félicitation, vous avez été élu pour nourrir les kitins] +uiLoadingString17 [Félicitation, vous avez été élu pour nourrir les kitins !] // HASH_VALUE 0D16EA857967AA4C // INDEX 5547 @@ -23329,15 +23312,15 @@ uiLoadingString18 [Avez-vous nourri les kitins ? Nous non plus...] // HASH_VALUE C8D5F76A5807BF6E // INDEX 5548 -uiLoadingString19 [PATIENTEZ. Nous prévenons les frahars de votre arrivée] +uiLoadingString19 [PATIENTEZ. Nous prévenons les frahars de votre arrivée.] // HASH_VALUE 47BCE034A35B081F // INDEX 5549 -uiLoadingString20 [N'oubliez pas vos lunettes de soleil si vous allez à Fairhaven] +uiLoadingString20 [N'oubliez pas vos lunettes de soleil si vous allez à Fairhaven !] // HASH_VALUE 86E4AC9E5A742C23 // INDEX 5550 -uiLoadingString21 [N'oubliez pas de boire si vous allez dans le désert Fyros] +uiLoadingString21 [N'oubliez pas de boire si vous allez dans le désert Fyros !] // HASH_VALUE CD0616F57A127246 // INDEX 5551 @@ -23345,11 +23328,11 @@ uiLoadingString22 [En train de dompter un kirosta] // HASH_VALUE 8CC27B9A2CA9589B // INDEX 5552 -uiLoadingString23 [Aux armes les Yubos !] +uiLoadingString23 [Aux armes les yubos !] // HASH_VALUE E9B90C41F6A1E0AA // INDEX 5553 -uiLoadingString24 [Tiens, j'ai vu passer une fripouille de frippo] +uiLoadingString24 [Tiens, j'ai vu passer une fripouille de frippo !] // HASH_VALUE 7218245C26B0E2B8 // INDEX 5554 @@ -23357,11 +23340,11 @@ uiLoadingString25 [Ils sont revenus !] // HASH_VALUE 4BB6F756D6E77479 // INDEX 5555 -uiLoadingString26 [Aujourd'hui il y a au menu... de l'homin] +uiLoadingString26 [Aujourd'hui il y a au menu... de l'homin...] // HASH_VALUE D955C83AACB50070 // INDEX 5556 -uiLoadingString27 [Erreurs de téléportation... ajout d'ADN yubo à votre homin] +uiLoadingString27 [Erreurs de téléportation... ajout d'ADN yubo à votre homin !] // HASH_VALUE 2D5ACC1B8911C2AB // INDEX 5557 @@ -23373,11 +23356,11 @@ uiLoadingString29 [Un steak de yubo ne doit pas rester plus de trois jours dans // HASH_VALUE 9A769398D849FB83 // INDEX 5559 -uiLoadingString30 [Veuillez patienter pendant que nous donnons à manger aux varinx, merci] +uiLoadingString30 [Veuillez patienter pendant que nous donnons à manger aux varinx, merci.] // HASH_VALUE 6CB8DCBA26B0E2B8 // INDEX 5560 -uiLoadingString31 [L'équipe de CSR vous remercie et vous souhaite une bonne journée sur Atys !] +uiLoadingString31 [L'équipe de Support vous remercie et vous souhaite une bonne journée sur Atys !] // HASH_VALUE 2844727AEC68D05A // INDEX 5561 @@ -23385,7 +23368,7 @@ uiLoadingString32 [Relève des gardes aux portes des villes] // HASH_VALUE A6A94808F765ACA5 // INDEX 5562 -uiLoadingString33 [Veuillez patienter, un yubo manque à l'appel] +uiLoadingString33 [Veuillez patienter, un yubo manque à l'appel !] // HASH_VALUE D83B54B9E988EF1F // INDEX 5563 @@ -23425,7 +23408,7 @@ uiLoadingString42 [Vérification de votre permis de séjour sur Atys] // HASH_VALUE DCBA205296141008 // INDEX 5572 -uiLoadingString43 [Changement des piles pour les bâtons des CSR] +uiLoadingString43 [Changement des piles pour les bâtons du Support] // HASH_VALUE 76760A7A4CF0DACE // INDEX 5573 @@ -23482,7 +23465,7 @@ uiItemTextMessageFromCrafter [@{FFF9}Message de l'artisan :\n // HASH_VALUE 6C7960A2E8888C99 // INDEX 5586 -uimItemTextEdit [Ecrire] +uimItemTextEdit [Écrire] // HASH_VALUE 6458544864585448 // INDEX 5587 @@ -23498,7 +23481,7 @@ uiItemSpecialEffectFlyingTextISE_FIGHT_ADD_CRITICAL [] // HASH_VALUE 8505579616AE5A58 // INDEX 5590 -uiItemSpecialEffectFlyingTextISE_FIGHT_VAMPIRISM [Vol de Vie : %param] +uiItemSpecialEffectFlyingTextISE_FIGHT_VAMPIRISM [Vol de vie : %param] // HASH_VALUE 6379AC9CDC28F869 // INDEX 5591 @@ -23506,7 +23489,7 @@ uiItemSpecialEffectFlyingTextISE_MAGIC_DIVINE_INTERVENTION [Intervention divine] // HASH_VALUE 925B3FA2A9D34096 // INDEX 5592 -uiItemSpecialEffectFlyingTextISE_MAGIC_SHOOT_AGAIN [Incantation Rapide] +uiItemSpecialEffectFlyingTextISE_MAGIC_SHOOT_AGAIN [Incantation rapide] // HASH_VALUE A953283819AADEBA // INDEX 5593 @@ -23527,84 +23510,84 @@ uiItemSpecialEffectFlyingTextISE_FORAGE_NO_RISK [Source sans risque] // HASH_VALUE ADCF037D8B34A964 // INDEX 5597 uihelpItemConsumableFormat [@{FFF9}Consommation :@{T21}@{FFFF}%consumption_time sec\n - @{FFF9}Réutilisable après:@{T21}@{FFFF}%overdose_timer_min min %overdose_timer_sec\n + @{FFF9}réutilisable après :@{T21}@{FFFF}%overdose_timer_min min %overdose_timer_sec\n \n \n @{FFFF}%consumable_effects%custom_text] // HASH_VALUE 3AE04726A243C91F // INDEX 5598 -uiItemConsumableEffectDownCharac [Donne un malus de @{F22F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF}\n +uiItemConsumableEffectDownCharac [Donne un malus de @{F22F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF} \n pendant %minutes min et %secondes sec.] // HASH_VALUE 356C7F1BA243C933 // INDEX 5599 -uiItemConsumableEffectUpCharac [Donne un bonus de @{2F2F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF}\n +uiItemConsumableEffectUpCharac [Donne un bonus de @{2F2F}%bonus@{FFFF} sur @{FF2F}%charac@{FFFF}\n pendant %minutes min et %secondes sec.] // HASH_VALUE DF3EF99A20B4695F // INDEX 5600 -uiItemConsumableEffectModDefenseSuccess [Modifie vos compétences de Défense de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModDefenseSuccess [Modifie vos compétences de défense de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 3506E5DDEF147CED // INDEX 5601 -uiItemConsumableEffectModDodgeSuccess [Modifie votre compétence d'Esquive de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModDodgeSuccess [Modifie votre compétence d'esquive de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE ECEAE5CBEDE43CCA // INDEX 5602 -uiItemConsumableEffectModParrySuccess [Modifie votre compétence de Parade de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModParrySuccess [Modifie votre compétence de parade de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 2A117FFC8275CB18 // INDEX 5603 -uiItemConsumableEffectModMeleeSuccess [Modifie votre compétence de Combat au Corps à Corps de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModMeleeSuccess [Modifie votre compétence de combat au corps à corps de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 6FFDDC9A005FC218 // INDEX 5604 -uiItemConsumableEffectModRangeSuccess [Modifie votre compétence de Combat à Distance de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModRangeSuccess [Modifie votre compétence de combat à distance de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 6BB2E2D5DACC1DF2 // INDEX 5605 -uiItemConsumableEffectModMagicSuccess [Modifie votre compétence de Magie de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModMagicSuccess [Modifie votre compétence de magie de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 0643269EF329F766 // INDEX 5606 -uiItemConsumableEffectModCraftSuccess [Modifie votre compétence d'Artisanat de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModCraftSuccess [Modifie votre compétence d'artisanat de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 623EF99BA0545D5F // INDEX 5607 -uiItemConsumableEffectModForageSuccess [Modifie vos compétences de Récolte de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModForageSuccess [Modifie vos compétences de récolte de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE FC96A365A5108A74 // INDEX 5608 -uiItemConsumableEffectModDesertForageSuccess [Modifie votre compétence de Récolte dans le Désert de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModDesertForageSuccess [Modifie votre compétence de récolte dans le Désert de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE C615071883CB86AB // INDEX 5609 -uiItemConsumableEffectModForestForageSuccess [Modifie votre compétence de Récolte en Forêt de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModForestForageSuccess [Modifie votre compétence de récolte en Forêt de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE F29FFCD29327D7E5 // INDEX 5610 -uiItemConsumableEffectModLacustreForageSuccess [Modifie votre compétence de Récolte en Milieu Lacustre de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModLacustreForageSuccess [Modifie votre compétence de récolte dans les Lacs de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE FC56675F25BFB89A // INDEX 5611 -uiItemConsumableEffectModJungleForageSuccess [Modifie votre compétence de Récolte dans la jungle de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModJungleForageSuccess [Modifie votre compétence de Récolte dans la Jungle de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 646834C54196B1B1 // INDEX 5612 -uiItemConsumableEffectModPrimaryRootForageSuccess [Modifie votre compétence de Récolte dans les Prime-Racines de %modifier point(s) pendant %minutes min et %secondes sec.] +uiItemConsumableEffectModPrimaryRootForageSuccess [Modifie votre compétence de récolte dans les Prime Racines de %modifier point(s) pendant %minutes min et %secondes sec.] // HASH_VALUE 789B903E4FE50883 // INDEX 5613 uiItemConsumableEffectStaminaAura [@{2F2F}Aura d'Endurance@{FFFF} de @{2F2F}%modifier@{FFFF}\n %minutes:%secondes min sur %radius m\n - Désactivations : Cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.] + Désactivations : cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.] // HASH_VALUE 659C9459CECD5FFB // INDEX 5614 uiItemConsumableEffectSapAura [@{2F2F}Aura de Sève@{FFFF} de @{2F2F}%modifier@{FFFF}\n %minutes:%secondes min sur %radius m\n - Désactivations : Cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.] + Désactivations : cibles = %targetDisableTime sec, Joueur = %userDisableTime sec.] // HASH_VALUE 1B38899A63140B67 // INDEX 5615 @@ -23614,55 +23597,55 @@ uiItemConsumableEffectLifeAura [@{2F2F}Aura de Vie@{FFFF} de @{2F2F}%modifier@{F // HASH_VALUE EE240287D7904157 // INDEX 5616 -uittModMeleeSuccess [Votre compétence de combat au corps à corps est modifiée de %modifier point(s)] +uittModMeleeSuccess [Votre compétence de combat au corps à corps est modifiée de %modifier point(s).] // HASH_VALUE F927C8F48B446158 // INDEX 5617 -uittModRangeSuccess [Votre compétence de combat à distance est modifiée de %modifier point(s)] +uittModRangeSuccess [Votre compétence de combat à distance est modifiée de %modifier point(s).] // HASH_VALUE 17F5479C9E396272 // INDEX 5618 -uittModCraftSuccess [Votre compétence d'artisanat est modifiée de %modifier point(s)] +uittModCraftSuccess [Votre compétence d'artisanat est modifiée de %modifier point(s).] // HASH_VALUE C2693FC917B27331 // INDEX 5619 -uittModDefenseSuccess [Vos compétences de défense sont modifiées de %modifier point(s)] +uittModDefenseSuccess [Vos compétences de défense sont modifiées de %modifier point(s).] // HASH_VALUE C5C94000A557F4CF // INDEX 5620 -uittModDodgeSuccess [Votre compétence d'esquive est modifiée de %modifier point(s)] +uittModDodgeSuccess [Votre compétence d'esquive est modifiée de %modifier point(s).] // HASH_VALUE 74AD40EEA327B4CC // INDEX 5621 -uittModParrySuccess [Votre compétence de parade est modifiée de %modifier point(s)] +uittModParrySuccess [Votre compétence de parade est modifiée de %modifier point(s).] // HASH_VALUE 45693FCA97526731 // INDEX 5622 -uittModForageSuccess [Vos compétences de récolte sont modifiées de %modifier point(s)] +uittModForageSuccess [Vos compétences de récolte sont modifiées de %modifier point(s).] // HASH_VALUE 8459FE885B530296 // INDEX 5623 -uittModDesertForageSuccess [Votre compétence de récolte dans le désert est modifiée de %modifier point(s)] +uittModDesertForageSuccess [Votre compétence de récolte dans le Désert est modifiée de %modifier point(s).] // HASH_VALUE B4136B89CDB38542 // INDEX 5624 -uittModForestForageSuccess [Votre compétence de récolte dans la forêt est modifiée de %modifier point(s)] +uittModForestForageSuccess [Votre compétence de récolte dans la Forêt est modifiée de %modifier point(s).] // HASH_VALUE 56F25CAD75DC4A2F // INDEX 5625 -uittModLacustreForageSuccess [Votre compétence de récolte en milieu lacustre est modifiée de %modifier point(s)] +uittModLacustreForageSuccess [Votre compétence de récolte dans les Lacs est modifiée de %modifier point(s).] // HASH_VALUE 8419C282DB02309C // INDEX 5626 -uittModJungleForageSuccess [Votre compétence de récolte dans la jungle est modifiée de %modifier point(s)] +uittModJungleForageSuccess [Votre compétence de récolte dans la Jungle est modifiée de %modifier point(s).] // HASH_VALUE 7ACE5BA9F4C7F607 // INDEX 5627 -uittModPrimaryRootForageSuccess [Votre compétence de récolte dans les primes racines est modifiée de %modifier point(s)] +uittModPrimaryRootForageSuccess [Votre compétence de récolte dans les Primes Racines est modifiée de %modifier point(s).] // HASH_VALUE 68D0B43C68D0B43C // INDEX 5628 -uiOnMainlandValidation [Ok] +uiOnMainlandValidation [OK] // HASH_VALUE 4FB1FC250E00142E // INDEX 5629 @@ -23670,7 +23653,7 @@ uiOnMainland [CONTINENTS] // HASH_VALUE 2E24187EE0E9ABAF // INDEX 5630 -uiCP_Choose_Mainland [Choisissez un Continent] +uiCP_Choose_Mainland [Choisissez un continent] // HASH_VALUE 48D0B43C48D0B43C // INDEX 5631 @@ -23678,7 +23661,7 @@ uiCP_Mainland_Ok [OK] // HASH_VALUE 0350481983A0741B // INDEX 5632 -uiCP_Mainland_Cancel [ANNULER] +uiCP_Mainland_Cancel [Annuler] // HASH_VALUE 1636774FAB85CC9C // INDEX 5633 @@ -23686,7 +23669,7 @@ uittReturnToMainland [Retourner sur le continent] // HASH_VALUE 4A1048FB7FE2F436 // INDEX 5634 -uiLaunchEditor [EDITER UN SCENARIO] +uiLaunchEditor [Editer un scénario] // HASH_VALUE B6FEB3B3BA628ED1 // INDEX 5635 @@ -23742,7 +23725,7 @@ uiScenarioOrient_Other [Autre] // HASH_VALUE 84260386980486C9 // INDEX 5648 -uiFilterScenarioText [Sélectionner les critères pour filtrer l'ensemble de fenêtres auxquelles vous avez accès] +uiFilterScenarioText [Sélectionnez les critères pour filtrer l'ensemble de fenêtres auxquelles vous avez accès.] // HASH_VALUE 5F846F74039950A4 // INDEX 5649 @@ -23806,8 +23789,8 @@ uiMk_action1_0 [Se déplacer] // HASH_VALUE DFB12FA7A8399F58 // INDEX 5664 -uiMk_action1_0_tt [Cliquez pour @{6F6F}Avancer@{FFFF}.\n - Vous pouvez aussi maintenir les 2 boutons de la souris enfoncés pour avancer.] +uiMk_action1_0_tt [Cliquez pour @{6F6F}avancer@{FFFF}.\n + Vous pouvez aussi maintenir les deux boutons de la souris enfoncés pour avancer.] // HASH_VALUE 70D8444C70D8444C // INDEX 5665 @@ -23815,8 +23798,8 @@ uiMk_action1_1 [Stop] // HASH_VALUE 8DECD25E643E5382 // INDEX 5666 -uiMk_action1_1_tt [Cliquez pour vous @{6F6F}Arrêter@{FFFF}.\n - Vous pouvez aussi cliquer et relâcher les 2 boutons de la souris.] +uiMk_action1_1_tt [Cliquez pour vous @{6F6F}arrêter@{FFFF}.\n + Vous pouvez aussi cliquer et relâcher les deux boutons de la souris.] // HASH_VALUE EE186C9062B94490 // INDEX 5667 @@ -23824,9 +23807,9 @@ uiMk_action2_0 [Assis] // HASH_VALUE 4A87BCEC6F2D6E60 // INDEX 5668 -uiMk_action2_0_tt [Vous êtes @{6F6F}Assis@{FFFF}.\n - En étant assis, votre Vie, Endurance, Sève et Concentration se régénèrent 2 fois plus vite.\n - Cliquez pour vous lever] +uiMk_action2_0_tt [Vous êtes @{6F6F}assis@{FFFF}.\n + En étant assis, votre Vie, Endurance, Sève et Concentration se régénèrent deux fois plus vite.\n + Cliquez pour vous lever.] // HASH_VALUE 2CE7B85FAA05F490 // INDEX 5669 @@ -23834,8 +23817,8 @@ uiMk_action2_1 [Debout] // HASH_VALUE C3B320EC18D4D541 // INDEX 5670 -uiMk_action2_1_tt [Vous êtes @{6F6F}Debout@{FFFF}.\n - Cliquez pour vous asseoir et ainsi régénérer 2 fois plus vite votre Vie, Endurance, Sève et Concentration] +uiMk_action2_1_tt [Vous êtes @{6F6F}debout@{FFFF}.\n + Cliquez pour vous asseoir et ainsi régénérer deux fois plus vite votre Vie, Endurance, Sève et Concentration.] // HASH_VALUE 61A82C74E1553C8F // INDEX 5671 @@ -23843,8 +23826,8 @@ uiMk_action3_0 [Marche] // HASH_VALUE 7A3F1E4BFA7531B4 // INDEX 5672 -uiMk_action3_0_tt [Vous êtes en mode @{6F6F}Marche@{FFFF}.\n - Cliquez pour courir] +uiMk_action3_0_tt [Vous êtes en mode @{6F6F}marche@{FFFF}.\n + Cliquez pour courir.] // HASH_VALUE 6C19D86EABF6B09E // INDEX 5673 @@ -23852,8 +23835,8 @@ uiMk_action3_1 [Course] // HASH_VALUE D74EF23C399585C3 // INDEX 5674 -uiMk_action3_1_tt [Vous êtes en mode @{6F6F}Course@{FFFF}.\n - Cliquez pour marcher] +uiMk_action3_1_tt [Vous êtes en mode @{6F6F}course@{FFFF}.\n + Cliquez pour marcher.] // HASH_VALUE AD6B0C9EE6F85089 // INDEX 5675 @@ -23861,9 +23844,9 @@ uiMk_action4_0 [Esquive] // HASH_VALUE 39FA40D13D91D381 // INDEX 5676 -uiMk_action4_0_tt [Vous êtes en mode @{6F6F}Esquive@{FFFF}.\n - Vos chances d'esquiver dépendent de votre score d'esquive et en particulier de votre équipement (voir fenêtre @{6F6F}Identité@{FFFF}).\n - Cliquez pour passer en mode Parade] +uiMk_action4_0_tt [Vous êtes en mode @{6F6F}esquive@{FFFF}.\n + Vos chances d'esquiver dépendent de votre score d'esquive et en particulier de votre équipement (voir fenêtre @{6F6F}identité@{FFFF}).\n + Cliquez pour passer en mode parade.] // HASH_VALUE 619924766177348A // INDEX 5677 @@ -23871,9 +23854,9 @@ uiMk_action4_1 [Parade] // HASH_VALUE 90DC71A86F7FFD98 // INDEX 5678 -uiMk_action4_1_tt [Vous êtes en mode @{6F6F}Parade@{FFFF}.\n - Vos chances de parer dépendent de votre score de parade et en particulier de votre équipement (voir fenêtre @{6F6F}Identité@{FFFF}).\n - Cliquez pour passer en mode Esquive] +uiMk_action4_1_tt [Vous êtes en mode @{6F6F}parade@{FFFF}.\n + Vos chances de parer dépendent de votre score de parade et en particulier de votre équipement (voir fenêtre @{6F6F}identité@{FFFF}).\n + Cliquez pour passer en mode esquive.] // HASH_VALUE 601C4404705854C4 // INDEX 5679 @@ -23881,8 +23864,8 @@ uiMk_action5_0 [Attaquer] // HASH_VALUE 54FC5F595D478E32 // INDEX 5680 -uiMk_action5_0_tt [Cliquez pour @{6F6F}Attaquer@{FFFF} la cible sélectionnée.\n - Vous pouvez aussi utiliser une des actions de combat de la barre d'action située en haut de l'écran (par défaut)] +uiMk_action5_0_tt [Cliquez pour @{6F6F}attaquer@{FFFF} la cible sélectionnée.\n + Vous pouvez aussi utiliser une des actions de combat de la barre d'action située en haut de l'écran (par défaut).] // HASH_VALUE 48E7AA788577A28A // INDEX 5681 @@ -23890,7 +23873,7 @@ uiMk_action5_1 [Désengager] // HASH_VALUE C2B68950DFDA59AB // INDEX 5682 -uiMk_action5_1_tt [Cliquez pour vous @{6F6F}Désengager@{FFFF}] +uiMk_action5_1_tt [Cliquez pour vous @{6F6F}désengager@{FFFF}.] // HASH_VALUE 701C8414649C9484 // INDEX 5683 @@ -23898,8 +23881,8 @@ uiMk_action6 [Extraire] // HASH_VALUE 4194992211935C5F // INDEX 5684 -uiMk_action6_tt [Cliquez pour @{6F6F}Extraire@{FFFF} la source sélectionnée.\n - Vous pouvez aussi utiliser une des actions d'extraction de la barre d'action située en haut de l'écran (par défaut)] +uiMk_action6_tt [Cliquez pour @{6F6F}extraire@{FFFF} la source sélectionnée.\n + Vous pouvez aussi utiliser une des actions d'extraction de la barre d'action située en haut de l'écran (par défaut).] // HASH_VALUE 6C9A0896E4083C94 // INDEX 5685 @@ -23907,8 +23890,8 @@ uiMk_action7 [Inviter] // HASH_VALUE 6F417F62E8F510BE // INDEX 5686 -uiMk_action7_tt [Cliquez pour @{6F6F}Inviter@{FFFF} le joueur sélectionné.\n - Vous pouvez aussi l'inviter via le menu contextuel (bouton droit sur l'écran)] +uiMk_action7_tt [Cliquez pour @{6F6F}inviter@{FFFF} le joueur sélectionné.\n + Vous pouvez aussi l'inviter via le menu contextuel (bouton droit sur l'écran).] // HASH_VALUE 6DA3E802EDEBECC1 // INDEX 5687 @@ -23916,8 +23899,8 @@ uiMk_action8 [Se séparer] // HASH_VALUE D30B28A72E50A43F // INDEX 5688 -uiMk_action8_tt [Cliquez pour @{6F6F}Quitter@{FFFF} votre équipe.\n - Vous pouvez aussi quitter votre équipe via le menu contextuel (bouton droit sur l'écran)] +uiMk_action8_tt [Cliquez pour @{6F6F}quitter@{FFFF} votre équipe.\n + Vous pouvez aussi quitter votre équipe via le menu contextuel (bouton droit sur l'écran).] // HASH_VALUE 6C9C1440E0082494 // INDEX 5689 @@ -23925,8 +23908,8 @@ uiMk_action9 [Parler à] // HASH_VALUE 46BCF3453997A04A // INDEX 5690 -uiMk_action9_tt [Cliquez pour @{6F6F}Parler@{FFFF} au joueur sélectionné.\n - Vous pouvez aussi lui parler via le menu contextuel (bouton droit sur l'écran)] +uiMk_action9_tt [Cliquez pour @{6F6F}parler@{FFFF} au joueur sélectionné.\n + Vous pouvez aussi lui parler via le menu contextuel (bouton droit sur l'écran).] // HASH_VALUE 7498F40C701C3484 // INDEX 5691 @@ -23954,7 +23937,7 @@ uiMk_interaction5b [Web] // HASH_VALUE 6909C46F6B06949A // INDEX 5697 -uiMk_interaction6 [Equipe] +uiMk_interaction6 [Équipe] // HASH_VALUE 2ED99885A017748F // INDEX 5698 @@ -24002,7 +23985,7 @@ uiWelcomeTitle [Bienvenue sur Atys !] // HASH_VALUE 56E429B73958EE09 // INDEX 5709 -uiWelcomeIntro [Une planète organique en évolution constante telle une plante titanesque profitant de la lumière de son soleil palpitant.] +uiWelcomeIntro [Une planète organique en évolution constante, telle une plante titanesque profitant de la lumière de son soleil palpitant.] // HASH_VALUE 5D3AA67CC8B6D41D // INDEX 5710 @@ -24010,7 +23993,7 @@ uiWelcomeMoveTitle [Déplacement] // HASH_VALUE D4C71AF9D6A92989 // INDEX 5711 -uiWelcomeMove [Pour vous déplacer, utilisez les flèches du clavier, ou appuyez sur les 2 boutons de la souris en même temps.] +uiWelcomeMove [Pour vous déplacer, utilisez les flèches du clavier, ou appuyez sur les deux boutons de la souris en même temps.] // HASH_VALUE D0571F855967D681 // INDEX 5712 @@ -24018,11 +24001,11 @@ uiWelcomeWhatTitle [Que faire ?] // HASH_VALUE D44A5D740D58483D // INDEX 5713 -uiWelcomeWhat [Suivez les instructions de votre journal de mission situé à gauche de l'écran] +uiWelcomeWhat [Suivez les instructions de votre journal de mission situé à gauche de l'écran.] // HASH_VALUE 1C18B394DC469279 // INDEX 5714 -uiWelcomeCSTitle [Contacter l'Assistance Clientèle] +uiWelcomeCSTitle [Contacter l'assistance clientèle] // HASH_VALUE E909ADF967AF3768 // INDEX 5715 @@ -24059,12 +24042,12 @@ uittIdentityFoc [@{6F6F}Points de Concentration @{FFFF}: %n\n // HASH_VALUE 98A8D5EC1A1065BF // INDEX 5722 -uittIdentityHPReg [@{6F6F}Régénération HP @{FFFF}: %n\n +uittIdentityHPReg [@{6F6F}Régénération Vie @{FFFF}: %n\n Points de Vie régénérés en 10 secondes.] // HASH_VALUE 0DA80D1162D9EB76 // INDEX 5723 -uittIdentitySapReg [@{6F6F}Régénération Sap @{FFFF}: %n\n +uittIdentitySapReg [@{6F6F}Régénération Sève @{FFFF}: %n\n Points de Sève régénérés en 10 secondes.] // HASH_VALUE CBC3826C632A9CB8 @@ -24079,7 +24062,7 @@ uittIdentityFocReg [@{6F6F}Régénération Concentration @{FFFF}: %n\n // HASH_VALUE 45CB3DCB2618D3E3 // INDEX 5726 -uittIdentityCons [Détermine la valeur maximum de vos @{6F6F}Points de Vie@{FFFF}.] +uittIdentityCons [Détermine la valeur maximum de vos @{6F6F}points de Vie@{FFFF}.] // HASH_VALUE 0AF967701E2A651C // INDEX 5727 @@ -24095,7 +24078,7 @@ uittIdentityDex [Détermine la valeur maximum de votre @{6F6F}Concentration@{FFF // HASH_VALUE 697AE7D97DF4582E // INDEX 5730 -uittIdentityMeta [Détermine le taux de @{6F6F}régénération @{FFFF}de vos @{6F6F}Points de Vie@{FFFF}.] +uittIdentityMeta [Détermine le taux de @{6F6F}régénération @{FFFF}de vos @{6F6F}points de Vie@{FFFF}.] // HASH_VALUE 618C7912422282D3 // INDEX 5731 @@ -24111,25 +24094,25 @@ uittIdentityWill [Détermine le taux de @{6F6F}régénération @{FFFF}de votre @ // HASH_VALUE 42260C22B0E4EADA // INDEX 5734 -uittIdentitySkillFight [Points destinés à l'apprentissage auprès des Entraîneurs en @{6F6F}Combat @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}Combat@{FFFF}.] +uittIdentitySkillFight [Points destinés à l'apprentissage auprès des entraîneurs en @{6F6F}combat @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}combat@{FFFF}.] // HASH_VALUE E50736A49821FBE0 // INDEX 5735 -uittIdentitySkillMagic [Points destinés à l'apprentissage auprès des Entraîneurs en @{6F6F}Magie @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}Magie@{FFFF}.] +uittIdentitySkillMagic [Points destinés à l'apprentissage auprès des entraîneurs en @{6F6F}magie @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}magie@{FFFF}.] // HASH_VALUE 2DDB84478A798721 // INDEX 5736 -uittIdentitySkillCraft [Points destinés à l'apprentissage auprès des Entraîneurs en @{6F6F}Artisanat @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}Artisanat@{FFFF}.] +uittIdentitySkillCraft [Points destinés à l'apprentissage auprès des entraîneurs en @{6F6F}artisanat @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}artisanat@{FFFF}.] // HASH_VALUE FB2D95494A554AA9 // INDEX 5737 -uittIdentitySkillHarvest [Points destinés à l'apprentissage auprès des Entraîneurs en @{6F6F}Récolte @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}Récolte@{FFFF}.] +uittIdentitySkillHarvest [Points destinés à l'apprentissage auprès des entraîneurs en @{6F6F}récolte @{FFFF}(PNJ). Vous obtenez des points parallèlement à la progression de vos compétences en @{6F6F}récolte@{FFFF}.] // HASH_VALUE 28E872070328510A // INDEX 5738 uittIdentityTotalMalus [Reflète la pénalité totale des actions que vous subissez lorsque vous jetez un sort ou réalisez des actions de forage ou de création.\n Un @{6F6F}malus élevé @{FFFF}implique un coût en énergie élevé, un temps d'incantation long et une portée d'action réduite.\n - Ce total dépend des propriétés du @{6F6F}Malus sur les Actions @{FFFF}concernant les vêtements et l'armure que vous portez et les objets que vous avez en main.] + Ce total dépend des propriétés du @{6F6F}malus sur les actions @{FFFF}concernant les vêtements et l'armure que vous portez et les objets que vous avez en main.] // HASH_VALUE A95088E49CCB1C0F // INDEX 5739 @@ -24142,12 +24125,12 @@ uittIdentitySpeedFactor [Reflète l'impact des objets que vous transportez dans // HASH_VALUE 8272D64679BD9704 // INDEX 5741 uittIdentityDodge [@{6F6F}Esquive@{FFFF}: %n\n - Chances d'esquiver un coup porté par un ennemi de niveau @{6F6F}%l @{FFFF}: @{6F6F}%p@{FFFF}%.] + Chances d'esquiver un coup porté par un ennemi de niveau @{6F6F}%l @{FFFF} : @{6F6F}%p@{FFFF}%.] // HASH_VALUE 7E36CADC9DBA9B29 // INDEX 5742 uittIdentityParry [@{6F6F}Parade@{FFFF}: %n\n - Chances de parrer un coup porté par un ennemi de niveau @{6F6F}%l @{FFFF}: @{6F6F}%p@{FFFF}%.] + Chances de parer un coup porté par un ennemi de niveau @{6F6F}%l @{FFFF} : @{6F6F}%p@{FFFF}%.] // HASH_VALUE 6B1A85A1D4FFAC37 // INDEX 5743 @@ -24163,18 +24146,18 @@ uittGaugesActionBar [Indique la progression de l'@{6F6F}action @{FFFF}en cours d // HASH_VALUE 4D1DFC058F6A8F05 // INDEX 5746 -uittGaugesHP [@{6F6F}Points de Vie@{FFFF}:\n +uittGaugesHP [@{6F6F}Points de vie@{FFFF}:\n Lorsque vos points de Vie tombent à 0, vous sombrez dans le coma et, si vous n'êtes pas rapidement soigné par vos amis, vous mourez.] // HASH_VALUE 3218DC16D5185B23 // INDEX 5747 -uittGaugesSap [@{6F6F}Points de Sève@{FFFF}:\n +uittGaugesSap [@{6F6F}Points de sève@{FFFF}:\n Lorsque votre niveau de Sève est faible, vous ne pouvez pas jeter de sorts.] // HASH_VALUE BCFAB72720F87E38 // INDEX 5748 uittGaugesSta [@{6F6F}Points d'Endurance@{FFFF}:\n - Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre endurance.] + Lorsque votre niveau d'Endurance est faible, vous ne pouvez plus réaliser de coups spéciaux et devez vous contenter de l'attaque par défaut jusqu'à la régénération de votre Endurance.] // HASH_VALUE 21A49D1370B3A93A // INDEX 5749 @@ -24237,7 +24220,7 @@ uittChatGuild [@{6F6F}Guilde\n // HASH_VALUE 1250E12BAD86C0D5 // INDEX 5761 -uittChatTeam [@{6F6F}Equipe\n +uittChatTeam [@{6F6F}Équipe\n @{FFFF}Clic-droit pour séparer.] // HASH_VALUE 76AFA0DE40C6CEC0 @@ -24248,14 +24231,14 @@ uittChatYubo [@{6F6F}Chat du Support\n // HASH_VALUE 3E6C1A6BDD69D5F5 // INDEX 5763 uittChatSysInfo [@{6F6F}Informations Système\n - @{FFFF}Affiche les messages de combat et les informations du sytème.\n + @{FFFF}Affiche les messages de combat et les informations du système.\n Clic-droit pour séparer.] // HASH_VALUE C5D74B8FF574901A // INDEX 5764 uittCompassRange [@{6F6F}Portée\n - @{FFFF}Distance de la zone visible sur le Radar.\n - Utilisez la molette de la souris sur la fenêtre du @{6F6F}radar @{FFFF}ou faites un clic-droit et choisissez @{6F6F}Zoom Avant @{FFFF}ou @{6F6F}Zoom Arrière @{FFFF}pour modifier la valeur de la @{6F6F}portée@{FFFF}.] + @{FFFF}Distance de la zone visible sur le radar.\n + Utilisez la molette de la souris sur la fenêtre du @{6F6F}radar @{FFFF}ou faites un clic-droit et choisissez @{6F6F}zoom avant @{FFFF}ou @{6F6F}zoom arrière @{FFFF}pour modifier la valeur de la @{6F6F}portée@{FFFF}.] // HASH_VALUE 70874AF6596CE72C // INDEX 5765 @@ -24271,9 +24254,9 @@ uittPhraseUpgrades [@{6F6F}Améliorations @{FFFF}d'actions ou de caractéristiqu // HASH_VALUE 33E06D99C6DEE206 // INDEX 5768 -uittPhraseXPMalus [@{6F6F}Pénalité XP de Décés\n - @{FFFF}Quand vous mourrez, cette pénalité augmente.\n - Les prochains gain d'XP seront utilisés pour rembourser cette dette.] +uittPhraseXPMalus [@{6F6F}Pénalité XP de décès\n + @{FFFF}Quand vous mourez, cette pénalité augmente.\n + Les prochains gains d'expérience seront utilisés pour rembourser cette dette.] // HASH_VALUE 29532B61D5EBA4EA // INDEX 5769 @@ -24322,7 +24305,7 @@ uittTargetBoss [Boss de niveau @{6F6F}%n] // HASH_VALUE 23163435076A9E73 // INDEX 5780 -uittTargetGuardBoss [Garde ou Boss de niveau @{6F6F}%n] +uittTargetGuardBoss [Garde ou boss de niveau @{6F6F}%n] // HASH_VALUE 2C802BB94A366E80 // INDEX 5781 @@ -24335,7 +24318,7 @@ uittInfoBulk [@{6F6F}Volume @{FFFF}:\n // HASH_VALUE 8268E616D14643F5 // INDEX 5783 -uittInfoHP [@{6F6F}Points de Vie @{FFFF}:\n +uittInfoHP [@{6F6F}Points de vie @{FFFF}:\n Cette valeur se dégradera avec l'utilisation de l'objet. Quand elle atteint 0, l'objet est détruit.] // HASH_VALUE 2ABB2BD8C07878B9 @@ -24345,18 +24328,18 @@ uittInfoWeight [@{6F6F}Poids @{FFFF}:\n // HASH_VALUE 6819F591D97250CB // INDEX 5785 -uittInfoMalus [@{6F6F}Malus sur les Actions @{FFFF}:\n - Pénalité ajoutée par cet objet au @{6F6F}Malus Total @{FFFF}(voir fenêtre d'Identité).] +uittInfoMalus [@{6F6F}Malus sur les actions @{FFFF}:\n + Pénalité ajoutée par cet objet au @{6F6F}malus total @{FFFF}(voir fenêtre d'Identité).] // HASH_VALUE 9C3F914AF05FB96E // INDEX 5786 uittInfoDodgeMod [@{6F6F}Modificateur d'Esquive @{FFFF}:\n - Bonus ou Malus sur votre @{6F6F}Esquive@{FFFF} quand vous portez cet objet.] + Bonus ou malus sur votre @{6F6F}Esquive@{FFFF} quand vous portez cet objet.] // HASH_VALUE 8E26E14159EBEFDD // INDEX 5787 uittInfoParryMod [@{6F6F}Modificateur de Parade @{FFFF}:\n - Bonus ou Malus sur votre @{6F6F}Parade@{FFFF} quand vous portez cet objet.] + Bonus ou malus sur votre @{6F6F}Parade@{FFFF} quand vous portez cet objet.] // HASH_VALUE 9C4DB1F11B930922 // INDEX 5788 @@ -24371,7 +24354,7 @@ uittInfoResist [@{6F6F}Résistances @{FFFF}:\n // HASH_VALUE 0B893FA30FAEEEE3 // INDEX 5790 uittInfoOrigin [@{6F6F}Origine @{FFFF}:\n - Affecte le look de l'objet.] + Affecte le visuel de l'objet.] // HASH_VALUE 6FF94D091FEA4384 // INDEX 5791 @@ -24395,28 +24378,28 @@ uittInfoArmorProtection [@{6F6F}Protection @{FFFF}:\n // HASH_VALUE D0A9618CFFCA51BE // INDEX 5795 -uittInfoArmorSlash [@{6F6F}Max vs Coup Tranchant @{FFFF}:\n - Points de Vie max. absorbés pour un coup "tranchant".] +uittInfoArmorSlash [@{6F6F}Max vs coup tranchant @{FFFF}:\n + Points de Vie maximum absorbés pour un coup tranchant.] // HASH_VALUE CDBA2D92024ABDBD // INDEX 5796 -uittInfoArmorPierc [@{6F6F}Max vs Coup Perforant @{FFFF}:\n - Points de Vie max. absorbés pour un coup "perforant".] +uittInfoArmorPierc [@{6F6F}Max vs coup perforant @{FFFF}:\n + Points de Vie maximum absorbés pour un coup perforant.] // HASH_VALUE 4FB40368338D138F // INDEX 5797 -uittInfoArmorBlunt [@{6F6F}Max vs Coup Contondant @{FFFF}:\n - Points de Vie max. absorbés pour un coup "contondant".] +uittInfoArmorBlunt [@{6F6F}Max vs coup contondant @{FFFF}:\n + Points de Vie maximum absorbés pour un coup contondant.] // HASH_VALUE 3AB07105106EBD5F // INDEX 5798 -uittInfoArmorType [@{6F6F}Type d'Armure @{FFFF}:\n +uittInfoArmorType [@{6F6F}Type d'armure @{FFFF}:\n Le type d'armure affecte en général le malus d'action. Les armures moyennes et lourdes apportent des bonus de vie supplémentaires.] // HASH_VALUE 49163199A15FAAAA // INDEX 5799 uittInfoShieldCat [@{6F6F}Catégorie @{FFFF}:\n - Les Boucliers offrent une protection supplémentaire aux armures.\n + Les boucliers offrent une protection supplémentaire aux armures.\n Les @{6F6F}petits boucliers@{FFFF} protègent les mains et parfois le torse et les bras.\n Les @{6F6F}grands boucliers@{FFFF} protègent les mains, le torse, les bras, et parfois les jambes.] @@ -24435,23 +24418,23 @@ uittInfoWeaponSapLoad [@{6F6F}Charge en Sève @{FFFF}:\n // INDEX 5802 uittInfoWeaponDamage [@{6F6F}Dégâts @{FFFF}:\n @{AAAF}Dégâts courants (Dégâts maximum)@{FFFF}\n - Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la Qualité de l'arme.] + Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la qualité de l'arme.] // HASH_VALUE FB28E0E2E5C62D91 // INDEX 5803 -uittInfoWeaponHitMin [@{6F6F}Coup/Minute @{FFFF}:\n +uittInfoWeaponHitMin [@{6F6F}Coup / minute @{FFFF}:\n Vitesse d'attaque de cette arme.] // HASH_VALUE 02C5B6C0F2D11F57 // INDEX 5804 uittInfoWeaponRDamage [@{6F6F}Dégâts @{FFFF}:\n - @{AAAF}Dégâts courants (Dégâts maximum)@{FFFF}\n + @{AAAF}Dégâts courants (dégâts maximum)@{FFFF}\n Bonus ajouté aux dégâts des munitions.\n - Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la Qualité de l'arme.] + Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la qualité de l'arme.] // HASH_VALUE 17BD73E2E6753A6B // INDEX 5805 -uittInfoWeaponRHitMin [@{6F6F}Coup/Minute @{FFFF}:\n +uittInfoWeaponRHitMin [@{6F6F}Coup / minute @{FFFF}:\n Cadence de tir de cette arme.] // HASH_VALUE E496FD3F3619A785 @@ -24467,34 +24450,34 @@ uittInfoWeaponRange [@{6F6F}Portée @{FFFF}:\n // HASH_VALUE E4727E065EB26399 // INDEX 5808 uittInfoTargetDodgeMod [@{6F6F}Modificateur d'Esquive de la cible @{FFFF}:\n - Bonus ou Malus sur l'@{6F6F}Esquive@{FFFF} de votre ennemi quand vous utilisez cet objet.] + Bonus ou malus sur l'@{6F6F}Esquive@{FFFF} de votre ennemi quand vous utilisez cet objet.] // HASH_VALUE 5A1646B333ED1B97 // INDEX 5809 uittInfoTargetParryMod [@{6F6F}Modificateur de Parade de la cible @{FFFF}:\n - Bonus ou Malus sur la @{6F6F}Parade@{FFFF} de votre ennemi quand vous utilisez cet objet.] + Bonus ou malus sur la @{6F6F}Parade@{FFFF} de votre ennemi quand vous utilisez cet objet.] // HASH_VALUE 300D28760EFEB41F // INDEX 5810 -uittInfoDamageType [@{6F6F}Type de Dégâts @{FFFF}:\n +uittInfoDamageType [@{6F6F}Type de dégâts @{FFFF}:\n Certains ennemis sont plus vulnérables à certains types de dégâts que d'autres.] // HASH_VALUE F927F89F9EA3745B // INDEX 5811 uittInfoAmmoMagazine [@{6F6F}Chargeur @{FFFF}:\n - @{AAAF}Quantité courante / Quantité maximum@{FFFF}\n + @{AAAF}Quantité courante / quantité maximale@{FFFF}\n Nombre de munitions dont vous disposez.\n - Placez ces munitions dans votre main gauche pour les utilisez.] + Placez ces munitions dans votre main gauche pour les utiliser.] // HASH_VALUE 4F7EBFFA6574C836 // INDEX 5812 uittInfoAmmoDamage [@{6F6F}Dégâts @{FFFF}:\n - @{AAAF}Dégats courants (Dégats maximum)@{FFFF}\n - Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la Qualité de ces munitions.] + @{AAAF}Dégats courants (dégâts maximum)@{FFFF}\n + Vous infligez les dégats maximum si votre niveau de compétence est supérieur ou égal à la qualité de ces munitions.] // HASH_VALUE FA24F13E9941458E // INDEX 5813 -uittInfoAmmoHitMin [@{6F6F}Coup/Minute @{FFFF}:\n +uittInfoAmmoHitMin [@{6F6F}Coup / minute @{FFFF}:\n Modificateur de la cadence de tir de ces munitions.] // HASH_VALUE 6EFE5CC17212A5D8 @@ -24509,7 +24492,7 @@ uittInfoMpQuality [@{6F6F}Qualité @{FFFF}:\n // HASH_VALUE 4F90998FB193490C // INDEX 5816 -uittInfoMpEco [@{6F6F}Ecosystème @{FFFF}:\n +uittInfoMpEco [@{6F6F}Écosystème @{FFFF}:\n Lieu où cette matière peut être trouvée.] // HASH_VALUE 9681BD4E9A352FDF @@ -24550,26 +24533,26 @@ uittActionSuccessRateSH [@{6F6F}Taux de réussite @{FFFF}:\n // HASH_VALUE 6272716CB11A7CC9 // INDEX 5824 -uittActionSkillPoint [@{6F6F}Points de Compétence @{FFFF}:\n - @{AAAF}Points manquants / Coût total\n - @{FFFF}Quand vous maîtrisez toutes les briques d'une action, le premier chiffre est 0 et l'action est dégrisée dans la fenêtre de Progression des Actions.] +uittActionSkillPoint [@{6F6F}Points de compétence @{FFFF}:\n + @{AAAF}Points manquants / coût total\n + @{FFFF}Quand vous maîtrisez toutes les briques d'une action, le premier chiffre est 0 et l'action est dégrisée dans la fenêtre de progression des actions.] // HASH_VALUE E7774044D26B5A5A // INDEX 5825 uittActionSkillReq [@{6F6F}Compétences requises @{FFFF}:\n Indique précisément les compétences à développer et le niveau à atteindre dans ces compétences.\n - Les prérequis non remplis sont en @{F80F}Orange@{FFFF}.] + Les prérequis non remplis sont en @{F80F}orange@{FFFF}.] // HASH_VALUE 0F626E17850BE478 // INDEX 5826 -uittActionStanzaReq [@{6F6F}Brique requises @{FFFF}:\n +uittActionStanzaReq [@{6F6F}Briques requises @{FFFF}:\n Vous devez connaître les briques qui suivent avant de pouvoir apprendre cette action.\n - Les prérequis non remplis sont en @{F80F}Orange@{FFFF}.] + Les prérequis non remplis sont en @{F80F}orange@{FFFF}.] // HASH_VALUE 25ED5B9582ABCB37 // INDEX 5827 uittToolCraftType [@{6F6F}Type d'outil @{FFFF}:\n - Avant de vous lancer dans l'Artisanat, vous devez équiper l'outil de création approprié dans votre main droite.] + Avant de vous lancer dans l'artisanat, vous devez équiper l'outil de création approprié dans votre main droite.] // HASH_VALUE 28CCB0FDC1AA7305 // INDEX 5828 @@ -24591,11 +24574,11 @@ uimChatTab [Onglets] // HASH_VALUE 9E5240C6E7967FBD // INDEX 5832 -uiDefaultChatInput [** Appuyez sur ENTREE pour discuter **] +uiDefaultChatInput [** Appuyez sur ENTRÉE pour discuter **] // HASH_VALUE 6CF5C7605795B386 // INDEX 5833 -uimQuickChat [Chat Rapide] +uimQuickChat [Chat rapide] // HASH_VALUE 6A389AE8C238BCB6 // INDEX 5834 @@ -24607,7 +24590,7 @@ uiR2EDRingWindow [Ring] // HASH_VALUE 6A68FC298FF8D0AA // INDEX 5836 -uiR2EDScoresWindow [Scores du scenario] +uiR2EDScoresWindow [Scores du scénario] // HASH_VALUE 64D0D4D8EE7A9CAE // INDEX 5837 @@ -24619,7 +24602,7 @@ uiR2EDHomeButton [HOME] // HASH_VALUE D4CD14EFCFC47DD6 // INDEX 5839 -uiUniverseChanelWarningContent [Attention ! Le canal Univers est particulièrement destiné aux joueurs qui demandent de l'aide sur le jeu et à ceux qui les renseignent. Les messages intempestifs ou abus dans ce canal pourront être sanctionnés par les MJs.] +uiUniverseChanelWarningContent [Attention ! Le canal Univers est particulièrement destiné aux joueurs qui demandent de l'aide sur le jeu et à ceux qui les renseignent. Les messages intempestifs ou abus dans ce canal pourront être sanctionnés par les membres du Support.] // HASH_VALUE 091458309CC6A08A // INDEX 5840 @@ -24627,7 +24610,7 @@ uiUniverseChanelWarningAvoid [Ne plus afficher ce message.] // HASH_VALUE 6E75FF30933AF805 // INDEX 5841 -uittBonusMalusWindow [Fenêtre des Buff / Debuff] +uittBonusMalusWindow [Fenêtre des buff / debuff] // HASH_VALUE 4F1BFC426F18DFC5 // INDEX 5842 @@ -24635,7 +24618,7 @@ uiR2EntryPoint [Point d'entrée] // HASH_VALUE 9E56F43342EE765D // INDEX 5843 -uiDockUndockChat [Attacher / Détacher Chat] +uiDockUndockChat [Attacher / détacher le chat] // HASH_VALUE 469C21A66AD69D1C // INDEX 5844 @@ -24651,7 +24634,7 @@ uiCP_Keyset_Cancel [ANNULER] // HASH_VALUE 6C58344C6C582484 // INDEX 5847 -uiR2EDScenario [Scenario] +uiR2EDScenario [Scénario] // HASH_VALUE AF4A109463D63890 // INDEX 5848 @@ -24671,15 +24654,15 @@ uiR2EDScenarioControl [Options de listage] // HASH_VALUE 868FD42B47CEB434 // INDEX 5852 -uiR2EDAccessFilterForPlayers [FILTRE D'ACCES POUR LES JOUEURS] +uiR2EDAccessFilterForPlayers [Filtre d'accès pour les joueurs] // HASH_VALUE B4141C30522C5450 // INDEX 5853 -uiR2EDInviteTeam [INVITEZ VOTRE EQUIPE] +uiR2EDInviteTeam [Inviter votre équipe] // HASH_VALUE 8AC0A00847A0C403 // INDEX 5854 -uiR2EDScenarioInformation [INFORMATION SUR LE SCENARIO] +uiR2EDScenarioInformation [Informations sur le scénario] // HASH_VALUE 64D8144864D81448 // INDEX 5855 @@ -24719,7 +24702,7 @@ uiR2EDReligionNeutral [Neutre] // HASH_VALUE 1DE507916ADADC61 // INDEX 5864 -uiR2EDNonGuildPlayers [Joueurs sans guilde] +uiR2EDNonGuildPlayers [Personnages sans guilde] // HASH_VALUE 7058844C38083490 // INDEX 5865 @@ -24735,11 +24718,11 @@ uiR2EDGlobalAccess [Autoriser les nouveaux] // HASH_VALUE 48D0140848D01408 // INDEX 5868 -uiR2EDChooseScenario [ARRIERE] +uiR2EDChooseScenario [Arrière] // HASH_VALUE 28C8604E28C84F9A // INDEX 5869 -uiR2EDScenarioName [Nom du scenario] +uiR2EDScenarioName [Nom du scénario] // HASH_VALUE 27237849D7E8B394 // INDEX 5870 @@ -24783,11 +24766,11 @@ uiR2EDDeutsch [Allemand] // HASH_VALUE DF061C871F86E477 // INDEX 5880 -uiR2EDAutoInvite [Invitation Auto] +uiR2EDAutoInvite [Invitation automatique] // HASH_VALUE DBFAB22C8879A626 // INDEX 5881 -uiCP_KeysetName_ [Déplacement avec les flèches] +uiCP_KeysetName_ [Déplacement avec les flèches.] // HASH_VALUE 0ACCC21F27279934 // INDEX 5882 @@ -24799,7 +24782,7 @@ uiCP_KeysetName_bi_zqsd [Déplacement avec 'ZQSD'] // HASH_VALUE 9EDFCAA7C6EC9CCE // INDEX 5884 -uiCP_KeysetTooltip_bi_zqsd [Déplacer votre avatar avec les touches @{6F6F}ZQSD@{FFFF} à la façon des 'First Person Shooters'. Ceci convient pour les claviers français et belges.] +uiCP_KeysetTooltip_bi_zqsd [Déplacer votre avatar avec les touches @{6F6F}ZQSD@{FFFF} à la façon des 'First person shooters'. Ceci convient pour les claviers français et belges.] // HASH_VALUE CB89BDB29DF40C78 // INDEX 5885 @@ -24807,21 +24790,21 @@ uiCP_KeysetName_bi_wasd [Déplacement avec 'WASD'] // HASH_VALUE 792BC77DB79CF13B // INDEX 5886 -uiCP_KeysetTooltip_bi_wasd [Déplacer votre avatar avec les touches @{6F6F}WASD@{FFFF} à la façon des 'First Person Shooters'. Ceci convient pour les claviers americains, anglais, ou allemand.] +uiCP_KeysetTooltip_bi_wasd [Déplacer votre avatar avec les touches @{6F6F}WASD@{FFFF} à la façon des 'First person shooters'. Ceci convient pour les claviers américains, anglais, ou allemands.] // HASH_VALUE 2FC0531D290A6BEE // INDEX 5887 -uiCP_KeysetImport_Game [Importer la configuration clavier de ce personnage\n +uiCP_KeysetImport_Game [Importer la configuration clavier de ce personnag.e\n @{6F6F}GAME ONLY] // HASH_VALUE 03EF5FEFEAFCA743 // INDEX 5888 -uiCP_KeysetImport_Editor [Importer la configuration clavier de ce personnage\n +uiCP_KeysetImport_Editor [Importer la configuration clavier de ce personnage.\n @{6F6F}EDITOR ONLY] // HASH_VALUE 816F37EFDF2FA842 // INDEX 5889 -uiCP_KeysetImport_Game_Editor [Importer la configuration clavier de ce personnage\n +uiCP_KeysetImport_Game_Editor [Importer la configuration clavier de ce personnage.\n @{6F6F}GAME & EDITOR] // HASH_VALUE 6DA79C9DA4787894 @@ -24842,7 +24825,7 @@ uiRAP_Level [Difficulté] // HASH_VALUE 6AFAE414CE78CCAA // INDEX 5894 -uiRAP_Flags [Invité/Animateur] +uiRAP_Flags [Invité / Animateur] // HASH_VALUE 641C9450641C9450 // INDEX 5895 @@ -24850,23 +24833,23 @@ uiRAP_ScenarioType [Type] // HASH_VALUE 0FB5574DA6521B85 // INDEX 5896 -uiRAP_PlayerCount [Nb. de joueurs] +uiRAP_PlayerCount [Nombre de joueurs] // HASH_VALUE 4C50F4284C50F428 // INDEX 5897 -uiRAP_Join [REJOINDRE] +uiRAP_Join [Rejoindre] // HASH_VALUE 4C1054504C105450 // INDEX 5898 -uiRAP_Tell [MESSAGE PRIVE] +uiRAP_Tell [Message privé] // HASH_VALUE 7EC22B2B77811F2D // INDEX 5899 -uiRAP_AskForInvite [DEMANDER UNE INVITATION] +uiRAP_AskForInvite [Demander une invitation] // HASH_VALUE 80D0B02A4B42D821 // INDEX 5900 -uiRAP_NewDestination [NOUVEAU SCENARIO] +uiRAP_NewDestination [Nouveau scénario] // HASH_VALUE D428978759DA5BBE // INDEX 5901 @@ -24894,7 +24877,7 @@ uiRAP_OwnerRRPRating [Points Ring du propriétaire] // HASH_VALUE 25672C2765A76835 // INDEX 5907 -uiRAP_ScenarioRRPRating [Scenario RRP] +uiRAP_ScenarioRRPRating [Scénario RRP] // HASH_VALUE 1A877C6FE605609E // INDEX 5908 @@ -24930,7 +24913,7 @@ uiRAP_NoSessionFound [Aucun scénario trouvé] // HASH_VALUE DB69BDD240B51037 // INDEX 5916 -uiRAP_NotInvited [Pour rejoindre ce scénario, vous devez être invité par son propriétaire. Cliquez sur le bouton 'DEMANDER UNE INVITATION' pour le contacter.] +uiRAP_NotInvited [Pour rejoindre ce scénario, vous devez être invité par son propriétaire. Cliquez sur le bouton 'Demander une invitation' pour le contacter.] // HASH_VALUE E8E8B47569658C8A // INDEX 5917 @@ -24958,11 +24941,11 @@ uiRAP_Level5 [Maître] // HASH_VALUE B1AC34FA292C2E15 // INDEX 5923 -uiRAP_HowToBeInvited [Vous n'êtes pas invité à ce scénario Ring. En double cliquant dessus ou en le sélectionnant et en cliquant sur le bouton @{6F6F}'DEMANDER UNE INVITATION'@{FFFF} en bas à droite de cette fenêtre, vous enverrez une demande d'invitation au propriétaire du scénario.] +uiRAP_HowToBeInvited [Vous n'êtes pas invité à ce scénario Ring. En double cliquant dessus ou en le sélectionnant et en cliquant sur le bouton @{6F6F}'Demander une invitation'@{FFFF} en bas à droite de cette fenêtre, vous enverrez une demande d'invitation au propriétaire du scénario.] // HASH_VALUE 29037B25BC79BCE8 // INDEX 5924 -uiRAP_HowToJoin [Vous êtes invité à ce scénario Ring. Vous pouvez le rejoindre en double cliquant dessus ou en le sélectionnant et cliquant sur le bouton @{6F6F}'rejoindre'@{FFFF} en bas à droite de cette fenêtre.] +uiRAP_HowToJoin [Vous êtes invité à ce scénario Ring. Vous pouvez le rejoindre en double cliquant dessus ou en le sélectionnant et cliquant sur le bouton @{6F6F}'Rejoindre'@{FFFF} en bas à droite de cette fenêtre.] // HASH_VALUE 9D9520606CDA74AA // INDEX 5925 @@ -25010,8 +24993,8 @@ uiRAP_EnlargeTooltip [Elargir les colonnes pour que leur contenu soit entièreme // HASH_VALUE 1F4DC91D2FC75906 // INDEX 5936 -uiRAP_FlagsTooltip [Une @{6F6F}VALIDATION@{FFFF} est indiquée quand l'hébergeur du scénario vous a invité à le rejoindre.\n - Un @{6F6F}OEIL@{FFFF} indique que l'hébergeur est présent dans le scénario. Cliquez pour trier par ce critère.] +uiRAP_FlagsTooltip [Une @{6F6F}validation@{FFFF} est indiquée quand l'hébergeur du scénario vous a invité à le rejoindre.\n + Un @{6F6F}oeil@{FFFF} indique que l'hébergeur est présent dans le scénario. Cliquez pour trier par ce critère.] // HASH_VALUE 7DACB1DE78A79DE0 // INDEX 5937 @@ -25054,7 +25037,7 @@ uiRAP_ScenarioTypeTooltip [Le genre de scénario selon l'auteur. Cliquez pour tr // HASH_VALUE 425165B00E6543E3 // INDEX 5945 -uiRAP_AuthorRRPRatingTooltip [Reward Points of the scenario's author] +uiRAP_AuthorRRPRatingTooltip [Points de récompenses de l'auteur du scénario] // HASH_VALUE 81F06DBE0E657AE6 // INDEX 5946 @@ -25066,23 +25049,23 @@ uiRAP_ScenarioRRPRatingTooltip [Points de récompense de ce scénario] // HASH_VALUE 1FCE9DCFE7D94BC5 // INDEX 5948 -uiRAP_RateFunTooltip [Note moyenne pour le @{6F6F}divertissement@{FFFF} apporté par ce scénario donnée par les joueurs.] +uiRAP_RateFunTooltip [Note moyenne donnée par les joueurs pour le @{6F6F}divertissement@{FFFF} apporté par ce scénario.] // HASH_VALUE 1B6F8628496B75B6 // INDEX 5949 -uiRAP_RateDifficultyTooltip [Note moyenne pour la @{6F6F}difficulté@{FFFF} de ce scénario donnée par les joueurs.] +uiRAP_RateDifficultyTooltip [Note moyenne donnée par les joueurs pour la @{6F6F}difficulté@{FFFF} de ce scénario.] // HASH_VALUE AEBE4A5E6AABD012 // INDEX 5950 -uiRAP_RateAccessibilityTooltip [Note moyenne pour l'@{6F6F}accessibilité@{FFFF} de ce scénario donnée par les joueurs.] +uiRAP_RateAccessibilityTooltip [Note moyenne donnée par les joueurs pour l'@{6F6F}accessibilité@{FFFF} de ce scénario.] // HASH_VALUE 77B4423604F01431 // INDEX 5951 -uiRAP_RateOriginalityTooltip [Note moyenne pour l'@{6F6F}originalité@{FFFF} de ce scénario donnée par les joueurs.] +uiRAP_RateOriginalityTooltip [Note moyenne donnée par les joueurs pour l'@{6F6F}originalité@{FFFF} de ce scénario.] // HASH_VALUE 3A66C9B848AD4C51 // INDEX 5952 -uiRAP_RateDirectionTooltip [Note moyenne pour la @{6F6F}clarté des consignes@{FFFF} de ce scénario donnée par les joueurs.] +uiRAP_RateDirectionTooltip [Note moyenne donnée par les joueurs pour la @{6F6F}clarté des consignes@{FFFF} de ce scénario.] // HASH_VALUE 2A922083176AD879 // INDEX 5953 @@ -25102,7 +25085,7 @@ uiRAP_ST_2 [Raconte une histoire] // HASH_VALUE 70FBD89DA638889D // INDEX 5957 -uiRAP_ST_3 [Mistère] +uiRAP_ST_3 [Mystère] // HASH_VALUE A21548239C517C02 // INDEX 5958 @@ -25110,7 +25093,7 @@ uiRAP_ST_4 [Hack'n'Slash] // HASH_VALUE 56A8D07F6E67BB8D // INDEX 5959 -uiRAP_ST_5 [Entrainement de guilde] +uiRAP_ST_5 [Entraînement de guilde] // HASH_VALUE 2C17789A63E86C8E // INDEX 5960 @@ -25118,7 +25101,7 @@ uiRAP_ST_6 [Autre] // HASH_VALUE F6A0687DF032C854 // INDEX 5961 -uiCP_InRingSession [Le scénario du Ring lancé par ce personnage est toujours en cours. Cliquez sur @{6F6F}'Reprendre Scénario' @{FFFF}pour continuer] +uiCP_InRingSession [Le scénario du Ring lancé par ce personnage est toujours en cours. Cliquez sur @{6F6F}'Reprendre le scénario' @{FFFF}pour continuer.] // HASH_VALUE AC8AB07F995277AD // INDEX 5962 @@ -25150,7 +25133,7 @@ uiInviteToRingSession [Inviter] // HASH_VALUE 2E70FEF04CCFE0DF // INDEX 5969 -uiInviteToRingSessionTooltip [Invitez ce personnage dans ce Scénario du Ring, en lui permettant de le rejoindre à l'aide d'un @{6F6F}Terminal Ring@{FFFF}.] +uiInviteToRingSessionTooltip [Invitez ce personnage dans ce scénario du Ring, en lui permettant de le rejoindre à l'aide d'un @{6F6F}terminal Ring@{FFFF}.] // HASH_VALUE A13B79A707E6A00D // INDEX 5970 @@ -25222,7 +25205,7 @@ uiRAP_CharFlagsTooltip [Un oeil indique que le joueur est connecté à ce scéna // HASH_VALUE C1F77B1087622C01 // INDEX 5987 -uiRAP_CharNameTooltip [Nom du joueur qui a été invité. Vous pouvez envoyer un @{6F6F}message privé@{FFFF} à ce joueur, @{6F6F}l'éjecter@{FFFF} ou @{6F6F}aller à@{FFFF} sa position, en utilisant le clic-droit, ou le bouton en bas à droite de la fenêtre. Cliquez pour trier avec ce critère.] +uiRAP_CharNameTooltip [Nom du joueur qui a été invité. Vous pouvez envoyer un @{6F6F}message privé@{FFFF} à ce joueur, @{6F6F}l'éjecter@{FFFF} ou @{6F6F}aller à@{FFFF} sa position, en utilisant le clic-droit, ou le bouton en bas à droite de la fenêtre. Cliquez pour trier avec ce critère.] // HASH_VALUE 87FE819401AF7A96 // INDEX 5988 @@ -25230,7 +25213,7 @@ uiRAP_CharGuildTooltip [Nom de la guilde du joueur s'il en a une. Cliquez pour t // HASH_VALUE 11682E61448D7B0D // INDEX 5989 -uiRAP_CharRaceTooltip [Ethnie. Cliquez pour trier avec ce critère.] +uiRAP_CharRaceTooltip [Race. Cliquez pour trier avec ce critère.] // HASH_VALUE DF37145D4FE4767E // INDEX 5990 @@ -25246,15 +25229,15 @@ uiRAP_CharLevelTooltip [Compétence de combat / magie la plus forte. Cliquez pou // HASH_VALUE C7CC9091D253FCB1 // INDEX 5993 -uiRAP_TellSentTo [Demande d'invitation envoyée à:] +uiRAP_TellSentTo [Demande d'invitation envoyée à :] // HASH_VALUE 73CC6FBBDB9441B6 // INDEX 5994 -uiRingInviteNotification [Vous avez été invité à rejoindre un scénario Ring. Si vous sélectionnez le scénario à un terminal Ring, vous pourrez le rejoindre directement.] +uiRingInviteNotification [Vous avez été invité(e) à rejoindre un scénario Ring. Si vous sélectionnez le scénario à un terminal Ring, vous pourrez le rejoindre directement.] // HASH_VALUE DB910EA8014D380B // INDEX 5995 -uiRingInvitationSent [est invité à rejoindre ce Scénario du Ring] +uiRingInvitationSent [est invité(e) à rejoindre ce Scénario du Ring.] // HASH_VALUE DBF99B6AEE7A6879 // INDEX 5996 @@ -25270,72 +25253,72 @@ uiRingPlotItemEmpty [ - ] // HASH_VALUE E7B77016F0413C53 // INDEX 5999 -uiRingAutoInviteToggle [Quand @{6F6F}décochée@{FFFF}, les joueurs devront demander une invitation pour rejoindre ce scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingAutoInviteToggle [Quand @{6F6F}décochée@{FFFF}, les joueurs devront demander une invitation pour rejoindre ce scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 7F3877CFCE661A29 // INDEX 6000 -uiRingGlobalAccessToggle [Quand @{6F6F}décochée@{FFFF}, seuls les joueurs invités verront votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingGlobalAccessToggle [Quand @{6F6F}décochée@{FFFF}, seuls les joueurs invités verront votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE BADC46EEDC730E8E // INDEX 6001 -uiRingFilterFyros [Quand @{6F6F}décochée@{FFFF} les joueurs Fyros qui n'ont pas été invité ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterFyros [Quand @{6F6F}décochée@{FFFF} les joueurs Fyros qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE BADC2EF0D6E30E8E // INDEX 6002 -uiRingFilterMatis [Quand @{6F6F}décochée@{FFFF} les joueurs Matis qui n'ont pas été invité ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterMatis [Quand @{6F6F}décochée@{FFFF} les joueurs Matis qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE BA3B0EEE59B40E8E // INDEX 6003 -uiRingFilterZorai [Quand @{6F6F}décochée@{FFFF} les joueurs Zoraï qui n'ont pas été invité ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterZorai [Quand @{6F6F}décochée@{FFFF} les joueurs Zoraïs qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE D2E7A5B1A79E23DD // INDEX 6004 -uiRingFilterTryker [Quand @{6F6F}décochée@{FFFF} les joueurs Trykers qui n'ont pas été invité ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterTryker [Quand @{6F6F}décochée@{FFFF} les joueurs Trykers qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE C95390E570D1BC39 // INDEX 6005 -uiRingFilterGuild [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et qui ne font pas partie de votre guilde ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.\n +uiRingFilterGuild [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et qui ne font pas partie de votre guilde ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.\n Cette option sera sans effet si vous n'avez pas de guilde.] // HASH_VALUE AD832E7F8FBC8C6A // INDEX 6006 -uiRingFilterCombatLevel0 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat ne dépasse pas @{6F6F}20@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel0 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat ne dépasse pas @{6F6F}20@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 74E8F3F8129FE704 // INDEX 6007 -uiRingFilterCombatLevel1 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat est entre @{6F6F}21@{FFFF} et @{6F6F}50@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel1 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat est entre @{6F6F}21@{FFFF} et @{6F6F}50@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 2C9DED97CB154CDD // INDEX 6008 -uiRingFilterCombatLevel2 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat est entre @{6F6F}51@{FFFF} et @{6F6F}100@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel2 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat est entre @{6F6F}51@{FFFF} et @{6F6F}100@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 71D2AB828CA0D2C2 // INDEX 6009 -uiRingFilterCombatLevel3 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat est entre @{6F6F}101@{FFFF} et @{6F6F}150@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel3 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat est entre @{6F6F}101@{FFFF} et @{6F6F}150@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 30E2AB828CA0E6C2 // INDEX 6010 -uiRingFilterCombatLevel4 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat est entre @{6F6F}151@{FFFF} et @{6F6F}200@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel4 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat est entre @{6F6F}151@{FFFF} et @{6F6F}200@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE 71E2AB828CA0D2C3 // INDEX 6011 -uiRingFilterCombatLevel5 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invité et dont la plus forte compétence de combat est entre @{6F6F}201@{FFFF} et @{6F6F}250@{FFFF} ne verront pas votre scénario aux @{6F6F}Terminaux Ring @{FFFF}.] +uiRingFilterCombatLevel5 [Quand @{6F6F}décochée@{FFFF} les joueurs que vous n'avez pas invités et dont la plus forte compétence de combat est entre @{6F6F}201@{FFFF} et @{6F6F}250@{FFFF} ne verront pas votre scénario aux @{6F6F}terminaux Ring @{FFFF}.] // HASH_VALUE C926ECD900DFDE26 // INDEX 6012 -uiRingFilterReligionKami [Quand @{6F6F}décochée@{FFFF}, les joueurs avec une allégeance Kami ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterReligionKami [Quand @{6F6F}décochée@{FFFF}, les joueurs avec une allégeance Kami ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE 3DAAD1B84B617D5A // INDEX 6013 -uiRingFilterReligionKaravan [Quand @{6F6F}décochée@{FFFF}, les joueurs avec une allégeance Karavan ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterReligionKaravan [Quand @{6F6F}décochée@{FFFF}, les joueurs avec une allégeance Karavan ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE 671857FABB67D633 // INDEX 6014 -uiRingFilterReligionNeutral [Quand @{6F6F}décochée@{FFFF}, les joueurs sans allégeance ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterReligionNeutral [Quand @{6F6F}décochée@{FFFF}, les joueurs sans allégeance ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE 2F3592532EC842F6 // INDEX 6015 -uiRingFilterShard [Quand @{6F6F}décochée@{FFFF}, les joueurs de ce shard qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}Terminaux Ring@{FFFF}.] +uiRingFilterShard [Quand @{6F6F}décochée@{FFFF}, les joueurs de ce serveur qui n'ont pas été invités ne verront pas votre scénario aux @{6F6F}terminaux Ring@{FFFF}.] // HASH_VALUE F259DC5CF2CACC81 // INDEX 6016 @@ -25371,15 +25354,15 @@ uiRAP_Invite [INVITER] // HASH_VALUE BA6859E05968167A // INDEX 6024 -uiRAP_InvitedAndConnected [The charcater who you have just invited to join this scenario is currently connected. By clicking on the name and using either the right mouse button or the @{6F6F}'ASK FOR INVITE'@{FFFF} button and the bottom right of the window, you can talk to the character ; with the @{6F6F}'kick'@{FFFF} button, you can expel them ; with the @{6F6F}'teleport to'@{FFFF} button, you can teleport yourself to their current position.] +uiRAP_InvitedAndConnected [Le personnage que vous avez invité est connecté actuellement. En cliquant sur le nom et en utilisant soit le bouton droit de votre souris soit le bouton @{6F6F}'Demander une invitation'@{FFFF}en bas à droite de la fenêtre, vous pouvez parler avec le personnage; avec le bouton @{6F6F}'Éjecter'@{FFFF} vous pouvez le chasser du scénario; avec le bouton @{6F6F}'Aller à'@{FFFF} vous vous téléportez directement à sa position.] // HASH_VALUE 509F0C9B906C3F52 // INDEX 6025 -uiRAP_InvitedAndNotConnected [Le personnage que vous avez invité n'estpas connecté actuellement. En cliquant sur le nom et en utilisant soit le bouton droit de votre souris soit le bouton @{6F6F}'Demander une invitation'@{FFFF}en bas à droite de la fenêtre, vous pouvez parler avec le personnage; avec le bouton @{6F6F}'Ejecter'@{FFFF} vous pouvez le chasser du scénario; avec le bouton @{6F6F}'Aller à'@{FFFF} vous vous téléportez directement à leur position.] +uiRAP_InvitedAndNotConnected [Le personnage que vous avez invité n'est pas connecté actuellement. En cliquant sur le nom et en utilisant soit le bouton droit de votre souris soit le bouton @{6F6F}'Demander une invitation'@{FFFF}en bas à droite de la fenêtre, vous pouvez parler avec le personnage; avec le bouton @{6F6F}'Éjecter'@{FFFF} vous pouvez le chasser du scénario; avec le bouton @{6F6F}'Aller à'@{FFFF} vous vous téléportez directement à sa position.] // HASH_VALUE 48D0942C48D0942C // INDEX 6026 -uiRAP_Kick [EJECTER] +uiRAP_Kick [Éjecter] // HASH_VALUE EA58480EC9612117 // INDEX 6027 @@ -25387,7 +25370,7 @@ uiRAP_MenuCharTell [Envoyez un message privé à ] // HASH_VALUE 1436DF3FDE82FF39 // INDEX 6028 -uiRAP_MenuKick [Ejecter ] +uiRAP_MenuKick [Éjecter ] // HASH_VALUE D7A9B8389B0AE054 // INDEX 6029 @@ -25395,7 +25378,7 @@ uiRAP_MenuTeleportTo [Aller à ] // HASH_VALUE 1438989724F33B43 // INDEX 6030 -uiRAP_MenuUnkick [Unkick ] +uiRAP_MenuUnkick [Réintégrer ] // HASH_VALUE 76E0307605C6680D // INDEX 6031 @@ -25415,7 +25398,7 @@ uiRAP_TeleportTo [Aller à] // HASH_VALUE 09F1C4384A92B826 // INDEX 6035 -uiRAP_Unkick [UNKICK] +uiRAP_Unkick [Réintégrer] // HASH_VALUE 6935CC97E49977BA // INDEX 6036 @@ -25475,7 +25458,7 @@ uiR2EDEditScenario [Reprendre] // HASH_VALUE 67B87B8127D566A3 // INDEX 6050 -uiR2EDNewScenario [Nouveau scenario] +uiR2EDNewScenario [Nouveau scénario] // HASH_VALUE F008FB192E1DB51E // INDEX 6051 @@ -26311,7 +26294,7 @@ uiBGD_Quit [Quitter] // HASH_VALUE F686610840B57FC7 // INDEX 6245 -uiBGD_ChoosePackage [Sélectionner l'installation désirée : ] +uiBGD_ChoosePackage [Sélectionner l'installation désirée : ] // HASH_VALUE F1F783BFC21EFB8D // INDEX 6246 @@ -26860,7 +26843,6 @@ uittShowTimesInChat [Si coché, affiche l'heure dans les fenêtres de discussion // INDEX 6375 uiEchelon [Echelon : ] -/* OLD VALUE : [Show Clock in Compass] */ // HASH_VALUE 2E428F9A99366770 // INDEX 6376 uiShowClock [Afficher l'heure au-dessus du radar] @@ -26943,7 +26925,6 @@ uiRaceBold [RACE : ] uittFilterTP [Filtre @{6F6F}Pactes de Téléportation\n @{FFFF}Effectuez un clic-droit pour ne sélectionner que les @{6F6F}Pactes de Téléportation@{FFFF}.] -/* OLD VALUE : [Show Online/Offline Notifications] */ // HASH_VALUE 08D8B8FE2B893831 // INDEX 6396 uiShowOnlineOfflineNotifications [Notifications de Connexions/Déconnexions] @@ -26952,12 +26933,10 @@ uiShowOnlineOfflineNotifications [Notifications de Connexions/Déconnexions] // INDEX 6397 uittShowOnlineOfflineNotifications [Afficher les notifications de Connexions/Déconnexions pour les amis ou membre de la guilde.] -/* OLD VALUE : [&ISE&%s has come online.] */ // HASH_VALUE C5878CD4F49A9E18 // INDEX 6398 uiPlayerOnline [&ISE&%s est en ligne.] -/* OLD VALUE : [&ISE&%s has gone offline.] */ // HASH_VALUE C666FFDC96558E3E // INDEX 6399 uiPlayerOffline [&ISE&%s a quitté le jeu.] From cd9d2cdd5d0f6f93c1593e244212dd3734cf539b Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 29 Feb 2016 09:32:27 +0100 Subject: [PATCH 107/184] Fixed: Escape paths with quotes under OS X --- code/ryzom/client/macosx/upgd_nl.sh | 30 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/code/ryzom/client/macosx/upgd_nl.sh b/code/ryzom/client/macosx/upgd_nl.sh index 046034027..c0da04a5a 100644 --- a/code/ryzom/client/macosx/upgd_nl.sh +++ b/code/ryzom/client/macosx/upgd_nl.sh @@ -7,8 +7,8 @@ then fi # determine directory where all files reside -CONTENTSPATH=$(dirname $ROOTPATH) -MACOSPATH=$(dirname $RYZOM_CLIENT) +CONTENTSPATH=$(dirname "$ROOTPATH") +MACOSPATH=$(dirname "$RYZOM_CLIENT") SIGNPATH=$CONTENTSPATH/_CodeSignature # all files of original Bundle are in the same directory @@ -19,20 +19,26 @@ SIGNPATH=$CONTENTSPATH/_CodeSignature # PkgInfo usually doesn't change so don't copy it # Info.plist contains updated version -cp -p $ROOTPATH/Info.plist $CONTENTSPATH +cp -p "$ROOTPATH/Info.plist" "$CONTENTSPATH" -cp -p $ROOTPATH/CodeResources $SIGNPATH +cp -p "$ROOTPATH/CodeResources" "$SIGNPATH" # executable flag for all executables -chmod +x $ROOTPATH/Ryzom -chmod +x $ROOTPATH/CrashReport -chmod +x $ROOTPATH/RyzomClientPatcher -chmod +x $ROOTPATH/RyzomConfiguration +chmod +x "$ROOTPATH/Ryzom" +chmod +x "$ROOTPATH/CrashReport" +chmod +x "$ROOTPATH/RyzomClientPatcher" +chmod +x "$ROOTPATH/RyzomConfiguration" + +# remove previous executables +rm -f "$MACOSPATH/Ryzom" +rm -f "$MACOSPATH/CrashReport" +rm -f "$MACOSPATH/RyzomClientPatcher" +rm -f "$MACOSPATH/RyzomConfiguration" # copy all binaries in MacOS directory -cp -p $ROOTPATH/Ryzom $MACOSPATH -cp -p $ROOTPATH/CrashReport $MACOSPATH -cp -p $ROOTPATH/RyzomClientPatcher $MACOSPATH -cp -p $ROOTPATH/RyzomConfiguration $MACOSPATH +cp -p "$ROOTPATH/Ryzom" "$MACOSPATH" +cp -p "$ROOTPATH/CrashReport" "$MACOSPATH" +cp -p "$ROOTPATH/RyzomClientPatcher" "$MACOSPATH" +cp -p "$ROOTPATH/RyzomConfiguration" "$MACOSPATH" exit 0 From b88f2e9e19f33eb6168a3d2bdfe981cd0b8c084d Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 1 Mar 2016 13:45:45 +0100 Subject: [PATCH 108/184] Fixed: Loading PEM file --- code/ryzom/client/src/http_client_curl.cpp | 60 ++++++++++++++++------ 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/code/ryzom/client/src/http_client_curl.cpp b/code/ryzom/client/src/http_client_curl.cpp index ecbfd065b..0c433a598 100644 --- a/code/ryzom/client/src/http_client_curl.cpp +++ b/code/ryzom/client/src/http_client_curl.cpp @@ -61,21 +61,31 @@ bool CCurlHttpClient::authenticate(const std::string &user, const std::string &p const char *CAFilename = "ssl_ca_cert.pem"; // this is the certificate "Thawte Server CA" +// *************************************************************************** static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm) { + // look for certificate in search paths string path = CPath::lookup(CAFilename); nldebug("Cert path '%s'", path.c_str()); + if (path.empty()) + { + nlwarning("Unable to find %s", CAFilename); + return CURLE_SSL_CACERT; + } + CIFile file; - if (!file.open(CAFilename)) + // open certificate + if (!file.open(path)) { - nlwarning("Unable to open %s", CAFilename); + nlwarning("Unable to open %s", path.c_str()); return CURLE_SSL_CACERT; } CURLcode res = CURLE_OK; + // load certificate content into memory std::vector buffer(file.getFileSize()); file.serialBuffer(&buffer[0], file.getFileSize()); @@ -84,25 +94,33 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm) if (bio) { + // get a pointer to the X509 certificate store (which may be empty!) + X509_STORE *store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx); + // use it to read the PEM formatted certificate from memory into an X509 // structure that SSL can use - X509 *cert = NULL; - PEM_read_bio_X509(bio, &cert, 0, NULL); + STACK_OF(X509_INFO) *info = PEM_X509_INFO_read_bio(bio, NULL, NULL, NULL); - if (cert) + if (info) { - // get a pointer to the X509 certificate store (which may be empty!) - X509_STORE *store = SSL_CTX_get_cert_store((SSL_CTX *)sslctx); - - // add our certificate to this store - if (X509_STORE_add_cert(store, cert) == 0) + // iterate over all entries from the PEM file, add them to the x509_store one by one + for (sint i = 0; i < sk_X509_INFO_num(info); ++i) { - nlwarning("Error adding certificate"); - res = CURLE_SSL_CACERT; + X509_INFO *itmp = sk_X509_INFO_value(info, i); + + if (itmp->x509) + { + // add our certificate to this store + if (X509_STORE_add_cert(store, itmp->x509) == 0) + { + nlwarning("Error adding certificate"); + res = CURLE_SSL_CACERT; + } + } } - // decrease reference counts - X509_free(cert); + // cleanup + sk_X509_INFO_pop_free(info, X509_INFO_free); } else { @@ -113,9 +131,14 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm) // decrease reference counts BIO_free(bio); } + else + { + nlwarning("Unable to allocate BIO buffer for certificates"); + res = CURLE_SSL_CACERT; + } // all set to go - return CURLE_OK ; + return res; } // *************************************************************************** @@ -125,7 +148,10 @@ bool CCurlHttpClient::verifyServer(bool verify) curl_easy_setopt(_Curl, CURLOPT_SSL_VERIFYPEER, verify ? 1 : 0); curl_easy_setopt(_Curl, CURLOPT_SSLCERTTYPE, "PEM"); // would allow to provide the CA in memory instead of using CURLOPT_CAINFO, but needs to include and link OpenSSL - curl_easy_setopt(_Curl, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function); + if (curl_easy_setopt(_Curl, CURLOPT_SSL_CTX_FUNCTION, *sslctx_function) == CURLE_NOT_BUILT_IN) + { + nlwarning("Unable to support CURLOPT_SSL_CTX_FUNCTION, curl not compiled with OpenSSL ?"); + } // don't use that anymore, because CA can't be loaded from BNP and doesn't support UTF-8 under Windows // curl_easy_setopt(_Curl, CURLOPT_CAINFO, path.c_str()); curl_easy_setopt(_Curl, CURLOPT_CAPATH, NULL); @@ -181,7 +207,7 @@ bool CCurlHttpClient::sendRequest(const std::string& methodWB, const std::string curl_easy_getinfo(_Curl, CURLINFO_RESPONSE_CODE, &r); if (verbose) { - nldebug("%u", r); + nldebug("%u", (uint)r); } return true; From b3ddafef295cc9e3cb542f1fb2b395427ed0b591 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 1 Mar 2016 13:46:04 +0100 Subject: [PATCH 109/184] Changed: Escape Linux upgrade script as well --- code/ryzom/client/unix/upgd_nl.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/ryzom/client/unix/upgd_nl.sh b/code/ryzom/client/unix/upgd_nl.sh index a1af6867e..6c44db85b 100644 --- a/code/ryzom/client/unix/upgd_nl.sh +++ b/code/ryzom/client/unix/upgd_nl.sh @@ -7,9 +7,9 @@ then fi # executable flag for all executables -chmod +x $ROOTPATH/ryzom_client -chmod +x $ROOTPATH/crash_report -chmod +x $ROOTPATH/ryzom_client_patcher -chmod +x $ROOTPATH/ryzom_configuration +chmod +x "$ROOTPATH/ryzom_client" +chmod +x "$ROOTPATH/crash_report" +chmod +x "$ROOTPATH/ryzom_client_patcher" +chmod +x "$ROOTPATH/ryzom_configuration" exit 0 From 00e6ff45ea0824c33cb31a204a3128082d569df0 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 1 Mar 2016 14:01:47 +0100 Subject: [PATCH 110/184] Fixed: Missing translation for bytes in patcher --- code/ryzom/tools/client/client_patcher/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/code/ryzom/tools/client/client_patcher/main.cpp b/code/ryzom/tools/client/client_patcher/main.cpp index 7575e8fe8..f03943345 100644 --- a/code/ryzom/tools/client/client_patcher/main.cpp +++ b/code/ryzom/tools/client/client_patcher/main.cpp @@ -137,6 +137,7 @@ struct CClientPatcherTranslations : public NLMISC::CI18N::ILoadProxy "TheSagaOfRyzom [Ryzom]\n" "uiErrPatchApply [Error: Patch process ended but the patch has not been successfully applied.]\n" "uiErrChecking [Error: Patch files failed - checking.]\n" + "uiByte [B]\n" "uiKb [KiB]\n" "uiMb [MiB]\n" "uiLoginGetFile [Getting File:]\n" From 3b9da62b2e44f685e94aa5ccda27c3371b3dbe2e Mon Sep 17 00:00:00 2001 From: Nimetu Date: Tue, 1 Mar 2016 22:30:05 +0200 Subject: [PATCH 111/184] Added: Horizontal mode to second action bar --- .../data/gamedev/interfaces_v3/inventory.xml | 245 +++++++++++++++++- 1 file changed, 242 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml b/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml index 83a8dc089..9c4b259da 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/inventory.xml @@ -1314,6 +1314,188 @@ params="value=add(@UI:PHRASE:SELECT_MEMORY,-1)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1501,9 +1683,66 @@ tooltip="uittHandSet" tooltip_parent="win" /> + + + + + + + From 8c4b7b2e55dc66019726f4643bc19abf138e5a92 Mon Sep 17 00:00:00 2001 From: Nimetu Date: Tue, 1 Mar 2016 22:39:14 +0200 Subject: [PATCH 112/184] Changed: Update translations --- code/ryzom/tools/translation/work/wk.uxt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index a0dedb755..13375e113 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -13478,3 +13478,5 @@ uiCP_Name_Policy [Naming policy] uiCP_FirstName [First name] // first name uiCP_LastName [Last name] +uiHorizontal [Horizontal] +uiVertical [Vertical] From 14f1fa63fef2efcfd782574a2cdcc707b74381cf Mon Sep 17 00:00:00 2001 From: Nimetu Date: Wed, 2 Mar 2016 23:58:48 +0200 Subject: [PATCH 113/184] Added: Possibility to set text as grayed in combo box --- code/nel/include/nel/gui/dbgroup_combo_box.h | 3 +++ code/nel/src/gui/dbgroup_combo_box.cpp | 25 +++++++++++++++++++- code/nel/src/gui/group_html.cpp | 5 ++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/code/nel/include/nel/gui/dbgroup_combo_box.h b/code/nel/include/nel/gui/dbgroup_combo_box.h index e7be1de4b..1aac8bb1f 100644 --- a/code/nel/include/nel/gui/dbgroup_combo_box.h +++ b/code/nel/include/nel/gui/dbgroup_combo_box.h @@ -63,6 +63,8 @@ namespace NLGUI uint getTextId(uint i) const; uint getTextPos(uint nId) const; const ucstring &getTexture(uint i) const; + void setGrayed(uint i, bool g); + const bool getGrayed(uint i) const; void removeText(uint nPos); uint getNumTexts() const {return (uint)_Texts.size();} void sortText(); @@ -132,6 +134,7 @@ namespace NLGUI sint32 _NotLinkedToDBSelection; std::vector > _Texts; std::vector _Textures; + std::vector _Grayed; // Action Handler called on combo click std::string _AHOnSelectStart; diff --git a/code/nel/src/gui/dbgroup_combo_box.cpp b/code/nel/src/gui/dbgroup_combo_box.cpp index dd30957b8..572d69ad4 100644 --- a/code/nel/src/gui/dbgroup_combo_box.cpp +++ b/code/nel/src/gui/dbgroup_combo_box.cpp @@ -262,6 +262,7 @@ namespace NLGUI dirt(); _Texts.clear(); _Textures.clear(); + _Grayed.clear(); } // *************************************************************************** @@ -270,6 +271,7 @@ namespace NLGUI dirt(); _Texts.push_back(make_pair((uint)_Texts.size(), text)); _Textures.push_back(std::string()); + _Grayed.push_back(false); } // *************************************************************************** @@ -292,9 +294,11 @@ namespace NLGUI { _Texts[t+1] = _Texts[t]; _Textures[t+1] = _Textures[t]; + _Grayed[t+1] = _Grayed[t]; } _Texts[i] = make_pair(i, text); _Textures[i] = std::string(); + _Grayed[i] = false; } else if(i==_Texts.size()) addText(text); @@ -308,6 +312,24 @@ namespace NLGUI _Textures[i]= texture; } + // *************************************************************************** + void CDBGroupComboBox::setGrayed(uint i, bool g) + { + dirt(); + if(i<_Grayed.size()) + _Grayed[i] = g; + } + + // *************************************************************************** + const bool CDBGroupComboBox::getGrayed(uint i) const + { + if(i<_Grayed.size()) + return _Grayed[i]; + else + return false; + } + + // *************************************************************************** void CDBGroupComboBox::removeText(uint nPos) { @@ -316,6 +338,7 @@ namespace NLGUI { _Texts.erase( _Texts.begin()+nPos ); _Textures.erase( _Textures.begin()+nPos ); + _Grayed.erase ( _Grayed.begin()+nPos ); } } @@ -365,7 +388,6 @@ namespace NLGUI return null; } - // *************************************************************************** void CDBGroupComboBox::setSelection(sint32 val) { @@ -619,6 +641,7 @@ namespace NLGUI } groupMenu->addLine(getText(i), "combo_box_select_end", toString(i), "", std::string(), getTexture(i).toString(), checkable); + groupMenu->setGrayedLine(i, getGrayed(i)); } diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index 3b2cfa877..7ae9870e5 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -2309,7 +2309,12 @@ namespace NLGUI CDBGroupComboBox *cb = _Forms.back().Entries.back().ComboBox; if (cb) { + uint lineIndex = cb->getNumTexts(); cb->addText(_SelectOptionStr); + if (_Forms.back().Entries.back().sbOptionDisabled == lineIndex) + { + cb->setGrayed(lineIndex, true); + } } else { From 9fb8340a9760f3ba12109a348b8da8ac352264bf Mon Sep 17 00:00:00 2001 From: kervala Date: Thu, 3 Mar 2016 20:50:20 +0100 Subject: [PATCH 114/184] Lua 5.3 support for Fedora 22+, fixes #262 --- code/CMakeModules/FindLuabind.cmake | 68 ++++++++++++++++++----------- 1 file changed, 43 insertions(+), 25 deletions(-) diff --git a/code/CMakeModules/FindLuabind.cmake b/code/CMakeModules/FindLuabind.cmake index 6795a5089..e98c84f54 100644 --- a/code/CMakeModules/FindLuabind.cmake +++ b/code/CMakeModules/FindLuabind.cmake @@ -9,38 +9,56 @@ MACRO(FIND_CORRECT_LUA_VERSION) IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so") INCLUDE(CheckDepends) - SET(LUA52_LIBRARY "liblua5.2") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) - + # check for Lua 5.3 + SET(LUA53_LIBRARY "liblua5.3") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + IF(NOT LUALIB_FOUND) - # fedora (v20) - SET(LUA52_LIBRARY "liblua-5.2") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) - ENDIF(NOT LUALIB_FOUND) + # fedora (v22+) + SET(LUA53_LIBRARY "liblua-5.3") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + ENDIF() IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.2") - FIND_PACKAGE(Lua52 REQUIRED) - ELSE(LUALIB_FOUND) - SET(LUA51_LIBRARY "liblua5.1") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA51_LIBRARY LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.3") + FIND_PACKAGE(Lua53 REQUIRED) + ELSE() + # check for Lua 5.2 + SET(LUA52_LIBRARY "liblua5.2") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) + + IF(NOT LUALIB_FOUND) + # fedora (v20) + SET(LUA52_LIBRARY "liblua-5.2") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) + ENDIF() IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.1") - FIND_PACKAGE(Lua51 REQUIRED) - ELSE(LUALIB_FOUND) - SET(LUA50_LIBRARY "liblua5.0") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.2") + FIND_PACKAGE(Lua52 REQUIRED) + ELSE() + # check for Lua 5.1 + SET(LUA51_LIBRARY "liblua5.1") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA51_LIBRARY LUALIB_FOUND) IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.0") - FIND_PACKAGE(Lua50 REQUIRED) - ELSE(LUALIB_FOUND) - MESSAGE(FATAL_ERROR "Can't determine Lua version used by Luabind") - ENDIF(LUALIB_FOUND) - ENDIF(LUALIB_FOUND) - ENDIF(LUALIB_FOUND) - ELSE(LUABIND_LIBRARY_RELEASE MATCHES "\\.so") + MESSAGE(STATUS "Luabind is using Lua 5.1") + FIND_PACKAGE(Lua51 REQUIRED) + ELSE() + # check for Lua 5.0 + SET(LUA50_LIBRARY "liblua5.0") + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND) + + IF(LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.0") + FIND_PACKAGE(Lua50 REQUIRED) + ELSE() + MESSAGE(FATAL_ERROR "Can't determine Lua version used by Luabind") + ENDIF() + ENDIF() + ENDIF() + ENDIF() + ELSE() # TODO: find a way to detect Lua version IF(WITH_LUA53) FIND_PACKAGE(Lua53 REQUIRED) From ca833bd3e579b8e94fe74ccdf02c271f5ace7f26 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 11:29:06 +0100 Subject: [PATCH 115/184] Changed: Random names generator updated by Osquallo --- .../gamedev/interfaces_v3/names_fyros.lua | 4 +- .../gamedev/interfaces_v3/names_matis.lua | 6 +- .../gamedev/interfaces_v3/names_tryker.lua | 4 +- .../gamedev/interfaces_v3/names_zorai.lua | 6 +- .../gamedev/interfaces_v3/out_v2_appear.lua | 175 +++++++++--------- .../gamedev/interfaces_v3/out_v2_appear.xml | 11 +- 6 files changed, 105 insertions(+), 101 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua index fdcca3944..239e5b924 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua @@ -1,4 +1,4 @@ -fyrosGivenNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" +fyrosLastNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" , "Abycakos", "Abycala", "Abycalaus", "Abycalion", "Abycallo", "Abycalus", "Abycamus", "Abycan", "Abycanix", "Abycaon", "Abycaps" , "Abycarius", "Abycaron", "Abycaros", "Abycarus", "Abycaseus", "Abycasse", "Abycatheus", "Abycathus", "Abycatis", "Abycaton", "Abycaxius" , "Abycus", "Abydix", "Abydon", "Abydos", "Abygrian", "Abygribus", "Abygricaon", "Abygricus", "Abygridix", "Abygridon", "Abygridos" @@ -286,7 +286,7 @@ fyrosGivenNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abyca , "Zenathus", "Zenatis", "Zenaton", "Zenaxius", "Zenbus", "Zencaon", "Zencus", "Zendix", "Zendon", "Zendos", "Zenion", "Zenix", "Zenkos", "Zenla", "Zenlaus", "Zenlion", "Zenllo", "Zenlus", "Zenmus", "Zenn", "Zennix", "Zenps", "Zenrius", "Zenron", "Zenros", "Zenrus", "Zenseus", "Zensse", "Zentheus" , "Zenthus", "Zentis", "Zenton", "Zenxius", "Zeperian", "Zeperibus", "Zepericaon", "Zepericus", "Zeperidix", "Zeperidon", "Zeperidos", "Zeperiion", "Zeperikos", "Zeperila", "Zeperilaus", "Zeperilion", "Zeperillo", "Zeperilus", "Zeperimus", "Zeperin", "Zeperinix", "Zeperips", "Zeperirius", "Zeperiron", "Zeperiros", "Zeperirus", "Zeperiseus", "Zeperisse", "Zeperitheus", "Zeperithus", "Zeperitis", "Zeperiton", "Zeperixius", "Zephaan", "Zephabus", "Zephacaon", "Zephacus", "Zephadix", "Zephadon", "Zephados", "Zephaion", "Zephakos", "Zephala", "Zephalaus", "Zephalion", "Zephallo", "Zephalus", "Zephamus", "Zephan", "Zephanix", "Zephaps", "Zepharius", "Zepharon", "Zepharos", "Zepharus", "Zephaseus", "Zephasse", "Zephatheus", "Zephathus", "Zephatis", "Zephaton", "Zephaxius", "Zephoan", "Zephobus", "Zephocaon", "Zephocus", "Zephodix", "Zephodon", "Zephodos", "Zephoion", "Zephokos", "Zephola", "Zepholaus", "Zepholion", "Zephollo", "Zepholus", "Zephomus", "Zephon", "Zephonix", "Zephops", "Zephorius", "Zephoron", "Zephoros", "Zephorus", "Zephoseus", "Zephosse", "Zephotheus", "Zephothus", "Zephotis", "Zephoton", "Zephoxius", "Zephyan", "Zephybus", "Zephycaon", "Zephycus", "Zephydix", "Zephydon", "Zephydos", "Zephyion", "Zephykos", "Zephyla", "Zephylaus", "Zephylion", "Zephyllo", "Zephylus", "Zephymus", "Zephyn", "Zephynix", "Zephyps", "Zephyrius", "Zephyron", "Zephyros", "Zephyrus", "Zephyseus", "Zephysse", "Zephytheus", "Zephythus", "Zephytis", "Zephyton", "Zephyxius", "Zeps", "Zeraan", "Zerabus", "Zeracaon", "Zeracus", "Zeradix", "Zeradon", "Zerados", "Zeraion", "Zerakos", "Zerala", "Zeralaus", "Zeralion", "Zerallo", "Zeralus", "Zeramus", "Zeran", "Zeranix", "Zeraps", "Zerarius", "Zeraron", "Zeraros", "Zerarus", "Zeraseus", "Zerasse", "Zeratheus", "Zerathus", "Zeratis", "Zeraton", "Zeraxius", "Zerian", "Zeribus", "Zericaon", "Zericus", "Zeridix", "Zeridon", "Zeridos", "Zeriion", "Zerikos", "Zerila", "Zerilaus", "Zerilion", "Zerillo", "Zerilus", "Zerimus", "Zerin", "Zerinix", "Zerips", "Zeririus", "Zeriron", "Zeriros", "Zerirus", "Zeriseus", "Zerisse", "Zeritheus", "Zerithus", "Zeritis", "Zeriton", "Zerius", "Zerixius", "Zeron", "Zeros", "Zerus", "Zeryaan", "Zeryabus", "Zeryacaon", "Zeryacus", "Zeryadix", "Zeryadon", "Zeryados", "Zeryaion", "Zeryakos", "Zeryala", "Zeryalaus", "Zeryalion", "Zeryallo", "Zeryalus", "Zeryamus", "Zeryan", "Zeryanix", "Zeryaps", "Zeryarius", "Zeryaron", "Zeryaros", "Zeryarus", "Zeryaseus", "Zeryasse", "Zeryatheus", "Zeryathus", "Zeryatis", "Zeryaton", "Zeryaxius", "Zeseus", "Zesse", "Zessean", "Zessebus", "Zessecaon", "Zessecus", "Zessedix", "Zessedon", "Zessedos", "Zesseion", "Zessekos", "Zessela", "Zesselaus", "Zesselion", "Zessello", "Zesselus", "Zessemus", "Zessen", "Zessenix", "Zesseps", "Zesserius", "Zesseron", "Zesseros", "Zesserus", "Zesseseus", "Zessesse", "Zessetheus", "Zessethus", "Zessetis", "Zesseton", "Zessexius", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"} -fyrosSurnames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" +fyrosFirstNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" , "Abyllo", "Abylus", "Abymus", "Abyn", "Abynix", "Abyps", "Abyrius", "Abyron", "Abyros", "Abyrus", "Abyseus", "Abysse", "Abytheus", "Abythus" , "Abytis", "Abyton", "Abyxius", "Aean", "Aebus", "Aecaon", "Aecus", "Aedix", "Aedon", "Aedos", "Aeion", "Aekos", "Aela", "Aelaus", "Aelion" , "Aello", "Aelus", "Aemus", "Aen", "Aenix", "Aeps", "Aerius", "Aeron", "Aeros", "Aerus", "Aeseus", "Aesse", "Aetheus", "Aethus", "Aetis" diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua index ad6cf5007..81b6dba29 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua @@ -1,3 +1,3 @@ -matisSurnames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} -matisFemaleNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} -matisMaleNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisFirstNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} +matisFemaleLastNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisMaleLastNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua index ac278cbdb..b52dfbefc 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua @@ -1,3 +1,3 @@ -trykerGivenNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} +trykerLastNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} -trykerSurnames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file +trykerFirstNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua index 0c6b0fa1e..cadc728d7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua @@ -1,5 +1,5 @@ -zoraiGivenNameOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} +zoraiLastNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} -zoraiGivenNameTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} +zoraiLastNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} -zoraiSurnames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} +zoraiFirstNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index c5b630849..5045e072f 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -13,94 +13,86 @@ end -- Name generator. --nb noms: --- matis: male 621 - female 621 - surname 621 --- fyros: given name 14269, surname 841 --- zorai: given name one 318, given name two 644, surname 1287 --- tryker: given name 4500, surname 4335 +-- matis: male 621 - female 621 - FirstName 621 +-- fyros: given name 14269, FirstName 841 +-- zorai: given name one 318, given name two 644, FirstName 1287 +-- tryker: given name 4500, FirstName 4335 -function outgame:getFyrosName() - local nameResult = ""; - local fullnameResult = ""; +-- Fyros +function outgame:getFyrosLastName() + local nbFyrosLastNames = 0; + for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end - local nbFyrosGivenNames = 0; - for _ in pairs(fyrosGivenNames) do nbFyrosGivenNames = nbFyrosGivenNames + 1 end - local givenName = fyrosGivenNames[math.random(nbFyrosGivenNames)]; + return fyrosLastNames[math.random(nbFyrosLastNames)] +end +function outgame:getFyrosFirstName() + local nbFyrosFirstNames = 0; + for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end - local nbFyrosSurnames = 0; - for _ in pairs(fyrosSurnames) do nbFyrosSurnames = nbFyrosSurnames + 1 end - local surname = fyrosSurnames[math.random(nbFyrosSurnames)]; - fullnameResult = givenName .. " " .. surname; - nameResult = surname; - return fullnameResult, nameResult + return fyrosFirstNames[math.random(nbFyrosFirstNames)] end -function outgame:getMatisName(sex) - local nameResult = ""; - local fullnameResult = ""; +-- Matis +function outgame:getMatisLastName(sex) local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); if sex ~= nil then - dbNameSex = sex + dbNameSex = sex; end + local LastName = "" if tonumber( dbNameSex )== 1 then - local nbMatisMaleNames = 0; - for _ in pairs(matisMaleNames) do nbMatisMaleNames = nbMatisMaleNames + 1 end - givenName = matisMaleNames[math.random(nbMatisMaleNames)]; + local nbMatisMaleLastNames = 0; + for _ in pairs(matisMaleLastNames) do nbMatisMaleLastNames = nbMatisMaleLastNames + 1 end + LastName = matisMaleLastNames[math.random(nbMatisMaleLastNames)]; else - local nbMatisFemaleNames = 0; - for _ in pairs(matisFemaleNames) do nbMatisFemaleNames = nbMatisFemaleNames + 1 end - givenName = matisFemaleNames[math.random(nbMatisFemaleNames)]; + local nbMatisFemaleLastNames = 0; + for _ in pairs(matisFemaleLastNames) do nbMatisFemaleLastNames = nbMatisFemaleLastNames + 1 end + LastName = matisFemaleLastNames[math.random(nbMatisFemaleLastNames)]; end - local nbMatisSurnames = 0; - for _ in pairs(matisSurnames) do nbMatisSurnames = nbMatisSurnames + 1 end - local surname = matisSurnames[math.random(nbMatisSurnames)]; - fullnameResult = givenName .. " " .. surname; - nameResult = givenName; - - return fullnameResult, nameResult + return LastName; end -function outgame:getTrykerName() - local nameResult = ""; - local fullnameResult = ""; +function outgame:getMatisFirstName() - local nbTrykerGivenNames = 0; - for _ in pairs(trykerGivenNames) do nbTrykerGivenNames = nbTrykerGivenNames + 1 end - local givenName = trykerGivenNames[math.random(nbTrykerGivenNames)]; + local nbMatisFirstNames = 0; + for _ in pairs(matisFirstNames) do nbMatisFirstNames = nbMatisFirstNames + 1 end - local nbTrykerSurnames = 0; - for _ in pairs(trykerSurnames) do nbTrykerSurnames = nbTrykerSurnames + 1 end - local surname = trykerSurnames[math.random(nbTrykerSurnames)]; - - fullnameResult = surname .. " " .. givenName; - nameResult = givenName; - - return fullnameResult, nameResult + return matisFirstNames[math.random(nbMatisFirstNames)] end +-- Tryker +function outgame:getTrykerLastName() + local nbTrykerLastNames = 0; + for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end -function outgame:getZoraiName() - local nameResult = ""; - local fullnameResult = ""; + return trykerLastNames[math.random(nbTrykerLastNames)] +end +function outgame:getTrykerFirstName() + local nbTrykerFirstNames = 0; + for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end - local nbGivenNameOne = 0; - for _ in pairs(zoraiGivenNameOne) do nbGivenNameOne = nbGivenNameOne + 1 end - local givenNameOne = zoraiGivenNameOne[math.random(nbGivenNameOne)]; + return trykerFirstNames[math.random(nbTrykerFirstNames)] +end - local nbGivenNameTwo = 0; - for _ in pairs(zoraiGivenNameTwo) do nbGivenNameTwo = nbGivenNameTwo + 1 end - local givenNameTwo = zoraiGivenNameTwo[math.random(nbGivenNameTwo)]; +-- Zora +function outgame:getZoraiLastName() + local nbLastNamesOne = 0; + for _ in pairs(zoraiLastNamesOne) do nbLastNamesOne = nbLastNamesOne + 1 end + local lastNameOne = zoraiLastNamesOne[math.random(nbLastNamesOne)]; - local nbSurnames = 0; - for _ in pairs(zoraiSurnames) do nbSurnames = nbSurnames + 1 end - local surname = zoraiSurnames[math.random(nbSurnames)]; + local nbLastNamesTwo = 0; + for _ in pairs(zoraiLastNamesTwo) do nbLastNamesTwo = nbLastNamesTwo + 1 end + local lastNameTwo = zoraiLastNamesTwo[math.random(nbLastNamesTwo)]; - fullnameResult = surname .. " " .. givenNameOne .. "-" .. givenNameTwo; - nameResult = givenNameOne .. givenNameTwo; + return lastNameOne .. "-" .. lastNameTwo +end +function outgame:getZoraiFirstName() + local nbFirstNames = 0; + for _ in pairs(zoraiFirstNames) do nbFirstNames = nbFirstNames + 1 end - return fullnameResult, nameResult + return zoraiFirstNames[math.random(nbFirstNames)] end function outgame:procGenerateName() @@ -115,59 +107,70 @@ function outgame:procGenerateName() -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. -- fy ma try zo --> - local givenName = ""; + local lastName = "test" + local firstName = "test2" if tonumber( dbNameRace ) == 1 then -- Fyros - fullnameResult, nameResult = self:getFyrosName() + lastName = self:getFyrosLastName() + firstName = self:getFyrosFirstName() + fullnameResult = lastName .. " " .. firstName + nameResult = lastName elseif tonumber( dbNameRace ) == 2 then -- Matis - fullnameResult, nameResult = self:getMatisName() + lastName = self:getMatisLastName() + firstName = self:getMatisFirstName() + fullnameResult = lastName .. " " .. firstName + nameResult = lastName elseif tonumber( dbNameRace ) == 3 then -- Tryker - fullnameResult, nameResult = self:getTrykerName() + lastName = self:getTrykerLastName() + firstName = self:getTrykerFirstName() + fullnameResult = firstName .. " " .. lastName + nameResult = lastName elseif tonumber( dbNameRace ) == 4 then -- Zorai - fullnameResult, nameResult = self:getZoraiName() + lastName = self:getZoraiLastName() + firstName = self:getZoraiFirstName() + fullnameResult = firstName .. " " .. lastName + nameResult = lastName elseif tonumber( dbNameRace ) == 5 then -- Maraudeurs - tempResult_1 = ""; - tempResult_2 = ""; + -- lastName if tonumber(dbNameSubRace) == 1 then -- Fyros - fullnameResult, tempResult_1 = self:getFyrosName() + lastName = self:getFyrosLastName() elseif tonumber( dbNameSubRace ) == 2 then -- Matis F - fullnameResult, tempResult_1 = self:getMatisName(2) + lastName = self:getMatisLastName(2) elseif tonumber( dbNameSubRace ) == 3 then -- Matis M - fullnameResult, tempResult_1 = self:getMatisName(1) + lastName = self:getMatisLastName(1) elseif tonumber( dbNameSubRace ) == 4 then -- Tryker - fullnameResult, tempResult_1 = self:getTrykerName() + lastName = self:getTrykerLastName() elseif tonumber( dbNameSubRace ) == 5 then -- Zorai - fullnameResult, tempResult_1 = self:getZoraiName() + lastName = self:getZoraiLastName() end + -- firstName if tonumber(dbNameSubRace2) == 1 then -- Fyros - fullnameResult, tempResult_2 = self:getFyrosName() + firstName = self:getFyrosFirstName() elseif tonumber( dbNameSubRace2 ) == 2 then - -- Matis F - fullnameResult, tempResult_2 = self:getMatisName(2) + -- Matis + firstName = self:getMatisFirstName() + firstName = self:getMatisFirstName() elseif tonumber( dbNameSubRace2 ) == 3 then - -- Matis M - fullnameResult, tempResult_2 = self:getMatisName(1) - elseif tonumber( dbNameSubRace2 ) == 4 then -- Tryker - fullnameResult, tempResult_2 = self:getTrykerName() - elseif tonumber( dbNameSubRace2 ) == 5 then + firstName = self:getTrykerFirstName() + elseif tonumber( dbNameSubRace2 ) == 4 then -- Zorai - fullnameResult, tempResult_2 = self:getZoraiName() + firstName = self:getZoraiFirstName() end - fullnameResult = tempResult_1 .. " " .. tempResult_2 - nameResult = tempResult_2 + fullnameResult = lastName .. " " .. firstName + nameResult = lastName end uiNameFull.hardtext = fullnameResult; @@ -241,7 +244,7 @@ function outgame:procUpdateNameSubRaceLabel() uiNameSubRaceText.hardtext= tostring(nameSubRaceType[tonumber(dbNameSubRace)]); end function outgame:procUpdateNameSubRace2Label() - local nameSubRace2Type = { "Fyros", matisF, matisM, "Tryker", "Zora" } + local nameSubRace2Type = { "Fyros", "Matis", "Tryker", "Zora" } local uiNameSubRace2Text = getUI("ui:outgame:appear_name:name_sub_race2_slider:name_race"); local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index a2646ad62..afe180d79 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -1361,7 +1361,7 @@ id="but_next" posref="TR TR" x="0" y="-6" onclick_l="proc" params_l="proc_appear_name_sub_race_add_one" /> - + - + @@ -1412,7 +1412,8 @@ + tx_topright="" tx_middle="slider_m.tga" tx_bottomleft="" + onscroll="proc" params="proc_appear_name_sex_label_change" /> @@ -1666,7 +1667,7 @@ - + From 51b3de86fdc2f0acd65425d27de6cb6da71f04ed Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 11:50:38 +0100 Subject: [PATCH 116/184] Improved Luabind CMake module, fixes #263 --- code/CMakeModules/FindLuabind.cmake | 82 ++++++++++++++++------------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/code/CMakeModules/FindLuabind.cmake b/code/CMakeModules/FindLuabind.cmake index e98c84f54..4219c56ed 100644 --- a/code/CMakeModules/FindLuabind.cmake +++ b/code/CMakeModules/FindLuabind.cmake @@ -10,53 +10,61 @@ MACRO(FIND_CORRECT_LUA_VERSION) INCLUDE(CheckDepends) # check for Lua 5.3 - SET(LUA53_LIBRARY "liblua5.3") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3) + + FOREACH(_LIB ${LUA53_LIBRARIES}) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + IF(LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.3") + FIND_PACKAGE(Lua53 REQUIRED) + BREAK() + ENDIF() + ENDFOREACH() IF(NOT LUALIB_FOUND) - # fedora (v22+) - SET(LUA53_LIBRARY "liblua-5.3") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + # check for Lua 5.2 + SET(LUA52_LIBRARIES liblua5.2 liblua-5.2 liblua.so.5.2) + + FOREACH(_LIB ${LUA52_LIBRARIES}) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) + IF(LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.2") + FIND_PACKAGE(Lua52 REQUIRED) + BREAK() + ENDIF() + ENDFOREACH() ENDIF() - IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.3") - FIND_PACKAGE(Lua53 REQUIRED) - ELSE() - # check for Lua 5.2 - SET(LUA52_LIBRARY "liblua5.2") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) + IF(NOT LUALIB_FOUND) + # check for Lua 5.1 + SET(LUA51_LIBRARIES liblua5.1 liblua-5.1 liblua.so.5.1) - IF(NOT LUALIB_FOUND) - # fedora (v20) - SET(LUA52_LIBRARY "liblua-5.2") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) - ENDIF() - - IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.2") - FIND_PACKAGE(Lua52 REQUIRED) - ELSE() - # check for Lua 5.1 - SET(LUA51_LIBRARY "liblua5.1") + FOREACH(_LIB ${LUA51_LIBRARIES}) CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA51_LIBRARY LUALIB_FOUND) - IF(LUALIB_FOUND) MESSAGE(STATUS "Luabind is using Lua 5.1") FIND_PACKAGE(Lua51 REQUIRED) - ELSE() - # check for Lua 5.0 - SET(LUA50_LIBRARY "liblua5.0") - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND) - - IF(LUALIB_FOUND) - MESSAGE(STATUS "Luabind is using Lua 5.0") - FIND_PACKAGE(Lua50 REQUIRED) - ELSE() - MESSAGE(FATAL_ERROR "Can't determine Lua version used by Luabind") - ENDIF() + BREAK() ENDIF() - ENDIF() + ENDFOREACH() + ENDIF() + + IF(NOT LUALIB_FOUND) + # check for Lua 5.0 + SET(LUA50_LIBRARIES liblua5.0 liblua-5.0 liblua.so.5.0) + + FOREACH(_LIB ${LUA50_LIBRARIES}) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND) + IF(LUALIB_FOUND) + MESSAGE(STATUS "Luabind is using Lua 5.0") + FIND_PACKAGE(Lua50 REQUIRED) + BREAK() + ENDIF() + ENDFOREACH() + ENDIF() + + IF(NOT LUALIB_FOUND) + MESSAGE(FATAL_ERROR "Can't determine Lua version used by Luabind") ENDIF() ELSE() # TODO: find a way to detect Lua version From 6f0febcf9229c33c770cff884bbd7fc6faa19fb9 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 12:42:32 +0100 Subject: [PATCH 117/184] Changed: Better warning --- code/ryzom/client/src/http_client_curl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/src/http_client_curl.cpp b/code/ryzom/client/src/http_client_curl.cpp index 0c433a598..4190de8e8 100644 --- a/code/ryzom/client/src/http_client_curl.cpp +++ b/code/ryzom/client/src/http_client_curl.cpp @@ -124,7 +124,7 @@ static CURLcode sslctx_function(CURL *curl, void *sslctx, void *parm) } else { - nlwarning("PEM_read_bio_X509 failed..."); + nlwarning("Unable to read PEM info"); res = CURLE_SSL_CACERT; } From 8ae3b5284664eb7210ced9e528058fa295f5958b Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 12:45:49 +0100 Subject: [PATCH 118/184] Changed: Temporarily disable Spanish and Russian translations (not yet ready) --- code/nel/src/misc/i18n.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 427c102da..e493b67a0 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -57,14 +57,14 @@ void CI18N::initLanguages() _LanguageCodes.push_back("en"); _LanguageCodes.push_back("fr"); _LanguageCodes.push_back("de"); - _LanguageCodes.push_back("ru"); - _LanguageCodes.push_back("es"); +// _LanguageCodes.push_back("ru"); +// _LanguageCodes.push_back("es"); _LanguageNames.push_back(ucstring("English")); _LanguageNames.push_back(ucstring("French")); _LanguageNames.push_back(ucstring("German")); - _LanguageNames.push_back(ucstring("Russian")); - _LanguageNames.push_back(ucstring("Spanish")); +// _LanguageNames.push_back(ucstring("Russian")); +// _LanguageNames.push_back(ucstring("Spanish")); _LanguagesNamesLoaded = true; } From 4f4c0235a47e263dec6fc03e78a917d54756ecd8 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 18:43:25 +0100 Subject: [PATCH 119/184] Improved Luabind CMake module, fixes #262 and fixes #263 --- code/CMakeModules/FindLuabind.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/CMakeModules/FindLuabind.cmake b/code/CMakeModules/FindLuabind.cmake index 4219c56ed..64fd5e1cf 100644 --- a/code/CMakeModules/FindLuabind.cmake +++ b/code/CMakeModules/FindLuabind.cmake @@ -13,7 +13,7 @@ MACRO(FIND_CORRECT_LUA_VERSION) SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3) FOREACH(_LIB ${LUA53_LIBRARIES}) - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA53_LIBRARY LUALIB_FOUND) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND) IF(LUALIB_FOUND) MESSAGE(STATUS "Luabind is using Lua 5.3") FIND_PACKAGE(Lua53 REQUIRED) @@ -26,7 +26,7 @@ MACRO(FIND_CORRECT_LUA_VERSION) SET(LUA52_LIBRARIES liblua5.2 liblua-5.2 liblua.so.5.2) FOREACH(_LIB ${LUA52_LIBRARIES}) - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA52_LIBRARY LUALIB_FOUND) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND) IF(LUALIB_FOUND) MESSAGE(STATUS "Luabind is using Lua 5.2") FIND_PACKAGE(Lua52 REQUIRED) @@ -40,7 +40,7 @@ MACRO(FIND_CORRECT_LUA_VERSION) SET(LUA51_LIBRARIES liblua5.1 liblua-5.1 liblua.so.5.1) FOREACH(_LIB ${LUA51_LIBRARIES}) - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA51_LIBRARY LUALIB_FOUND) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND) IF(LUALIB_FOUND) MESSAGE(STATUS "Luabind is using Lua 5.1") FIND_PACKAGE(Lua51 REQUIRED) @@ -54,7 +54,7 @@ MACRO(FIND_CORRECT_LUA_VERSION) SET(LUA50_LIBRARIES liblua5.0 liblua-5.0 liblua.so.5.0) FOREACH(_LIB ${LUA50_LIBRARIES}) - CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE LUA50_LIBRARY LUALIB_FOUND) + CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND) IF(LUALIB_FOUND) MESSAGE(STATUS "Luabind is using Lua 5.0") FIND_PACKAGE(Lua50 REQUIRED) From fcc53e3093e350742fedeee8969aaa2861ec6839 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 5 Mar 2016 19:30:35 +0100 Subject: [PATCH 120/184] Changed: Updated translations --- .../translated/career_words_fr.txt | Bin 1492 -> 1502 bytes .../translated/characteristic_words_fr.txt | Bin 700 -> 700 bytes .../classificationtype_words_fr.txt | Bin 3192 -> 3192 bytes .../translated/damagetype_words_fr.txt | Bin 1106 -> 1106 bytes .../ryzom/tools/translation/translated/de.uxt | 2 +- .../ryzom/tools/translation/translated/en.uxt | 4 +- .../ryzom/tools/translation/translated/es.uxt | 20 + .../translated/faction_words_de.txt | Bin 11960 -> 12184 bytes .../translated/faction_words_en.txt | Bin 9420 -> 9424 bytes .../ryzom/tools/translation/translated/fr.uxt | 394 +++++++++--------- .../translation/translated/item_words_de.txt | Bin 2790406 -> 3002840 bytes .../translation/translated/job_words_fr.txt | Bin 5830 -> 5930 bytes .../translation/translated/skill_words_de.txt | Bin 247746 -> 247754 bytes 13 files changed, 220 insertions(+), 200 deletions(-) diff --git a/code/ryzom/tools/translation/translated/career_words_fr.txt b/code/ryzom/tools/translation/translated/career_words_fr.txt index 9d9d9dc89b69b911bf55f28b9c4a0e1998e900db..4fc3b27d6bdf345bc645cccc2e7b84a91175bd8d 100644 GIT binary patch delta 119 zcmcb@eUE#>74}?)R}47}FDLUdN>2P@!yL?Fq@l+B;dkOqXQ40#O2 z44DjRlUtcgF~s(=if?|vG=-7(B||bpKG3`ppoY@P)hvqaP?5=v%!-@$v4}AO0FE~z AyZ`_I delta 113 zcmcb|eT93%6?R{SR}47}FDLUdN>2P@!{|HNkg=4}W%6>yL?Fq@lr5OTkjkLIkj_vF tq>F$sb#gP4DOA)QNpvHN_~r*plNi|(8S;S2QzzH6D8ksA*RmKg0sv4_9=`wp diff --git a/code/ryzom/tools/translation/translated/characteristic_words_fr.txt b/code/ryzom/tools/translation/translated/characteristic_words_fr.txt index 606a81c76be8ba525bc78b2b21082341ec61de89..6e924c2288bef8855e78f3b9c6a7ac70b49932b0 100644 GIT binary patch delta 13 UcmdnPx`%ax1QX-Q$&yTq0U$~QXaE2J delta 13 UcmdnPx`%ax1QVm{WJ#vQ03EgibjGQ*qoG888R92fQrHx@)?R4 zvVmkS5T=5~%7DB)pxTQv%9C%f9h_Jj7$@^6@k|bomfEbrXTUgFfr||+8^yl|Xo$e%EBs2EodkX{0tIz8 z#|YIRRBRLG+x$XU1un3ePjnsABO1UPgQJA7-J= zUu0OAfogarACT9Ye1S=5vzfvb#>w{-5!&pgl*TxjONooI80Ol|CzN-wO`f2x RG&dK1;kk61m`6ILJWFGcolQ*!7Y<|Oj zj(PGSA(_c9xVKEs<58G+L1^nn%m|UQ}1V}4vw$q7X1^`$iKwAI+ diff --git a/code/ryzom/tools/translation/translated/faction_words_en.txt b/code/ryzom/tools/translation/translated/faction_words_en.txt index be74c5800003e655c4522f1ab10d19d7b376b83e..b54fe1b95a49fde8d04e45910b528056d891c807 100644 GIT binary patch delta 21 bcmX@(dBJnT4q?W;&D({0S%H+ZWG6QOXR-)7 delta 25 fcmccMdB$_Y4&liHJZzf}2)D5U862AfBpbK^g*ph% diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 660bc0a30..44048189d 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -10408,7 +10408,7 @@ uihelpItemCraftingToolFormat [@{FFF9}@{HuittInfoOrigin}Origine :@{H}@{T14}@{FFFF @{FFF9}@{HuittToolCraftType}Type d'outil :@{H}@{T14}@{FFFF}%tool\n %cansell\n @{FFF9}@{HuittInfoRequirement}Prérequis :@{H}@{T14}@{FFFF}%caracreq@{FFFF}%skillreq@{FFFF}%skillreq2\n - %buffs\n + %buffs\n %special_effects\n \n @{FFFF}%desc%custom_text] @@ -19895,7 +19895,7 @@ uiCP_Res_C [- Spécialisation en artisanat] // HASH_VALUE 2E07FBEF9EC2E674 // INDEX 4802 uiCP_Job_F1 [1- Dague\n - 2 - Action Attaque précise 1] + 2 - Action Attaque précise 1] // HASH_VALUE 40E73E605EC2B540 // INDEX 4803 @@ -19911,7 +19911,7 @@ uiCP_Job_G1 [1 - Pioche\n // INDEX 4805 uiCP_Job_C1 [1 - Outil de création d'armure\n 2 - 50 Matières premières génériques de qualité 10\n - 3 - 1e action pour créer une armure de votre race\n + 3 - 1ère action pour créer une armure de votre race\n 4 - Plan de création de bottes] // HASH_VALUE AE336402F917F9B6 @@ -19936,7 +19936,7 @@ uiCP_Job_G2 [1 - Pioche\n // INDEX 4809 uiCP_Job_C2 [1 - Outil de Création d'armure\n 2 - 100 Matières premières génériques de qualité 10\n - 3 - 1e action pour créer une armure de votre race\n + 3 - 1ère action pour créer une armure de votre race\n 4 - Plan de création de bottes\n 5 - Plan de création de gants] @@ -21903,7 +21903,7 @@ gn_class_arcane_master [Mage d'élite chevronné] // HASH_VALUE 242A1893E18B1897 // INDEX 5212 -gn_class_archery_lord [Grand tireur chevronné] +gn_class_archery_lord [Grand tireur chevronné] // HASH_VALUE 6F19C0A4E5B9D8A4 // INDEX 5213 @@ -25466,7 +25466,7 @@ uiR2EDNewScenarioWarning [Cliquez sur OK pour réinitialiser l'éditeur et crée // HASH_VALUE B6A20AC0306A751A // INDEX 6052 -uiNoAvailableMissions [Le journal des missions n'est pas disponible dans le Ring] +uiNoAvailableMissions [Le journal des missions n'est pas disponible dans le Ring.] // HASH_VALUE D82A99D541A5B0A0 // INDEX 6053 @@ -25512,15 +25512,15 @@ uiRingWarningNewcomer [Vous ne pouvez pas inviter ce joueur car l'un de vous deu // HASH_VALUE 0FDAAC9109769FFD // INDEX 6061 -uiRingWarningBanishedPlayer [Vous avez été bani, et donc avez perdu la possibilité de lancer un scénario.] +uiRingWarningBanishedPlayer [Vous avez été banni, et donc avez perdu la possibilité de lancer un scénario.] // HASH_VALUE 7484A535D707EA06 // INDEX 6062 -uiRingLaunchScenarioError [Une erreur est survenue comme vous tentiez de lancer votre scénario.] +uiRingLaunchScenarioError [Une erreur est survenue quand vous tentiez de lancer votre scénario.] // HASH_VALUE D34A4A98246E6F7A // INDEX 6063 -uiRingUpdateScenarioFiltersError [Une erreur est survenue comme vous tentiez de mettre vos filtres de scénario à jour.] +uiRingUpdateScenarioFiltersError [Une erreur est survenue quand vous tentiez de mettre vos filtres de scénario à jour.] // HASH_VALUE 2A62ABF263466CB3 // INDEX 6064 @@ -25529,7 +25529,7 @@ uiRingChooseScenario [Sélectionnez un scénario.] // HASH_VALUE 50A91151AFCA7798 // INDEX 6065 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Name [@{6F6F}Nom du fichier\n - @{FFFF}Nom du fichier du scénario ring à charger.] + @{FFFF}Nom du fichier du scénario Ring à charger.] // HASH_VALUE 59BE229752871595 // INDEX 6066 @@ -25544,7 +25544,7 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Description [@{6F6F}Description\ // HASH_VALUE B347D4DBDA147171 // INDEX 6068 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Rules [@{6F6F}Maîtrise\n - @{FFFF} Animé signifie que vous serez l'Animateur dans ce scénario.\n + @{FFFF} Animé signifie que vous serez l'animateur dans ce scénario.\n Autonome signifie que vous participerez à ce scénario comme un joueur.] // HASH_VALUE FC2BD65951F97767 @@ -25559,22 +25559,22 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Language [@{6F6F}Langage\n // HASH_VALUE 66CEF50ED8DC276E // INDEX 6071 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RingPointsLevel [@{6F6F}Prérecquis\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RingPointsLevel [@{6F6F}Prérequis\n @{FFFF} Indique si vous pouvez ou non charger ce scénario. Vous ne pouvez charger que les scénarii dont vous avez accès au contenu. Vous pouvez gagner du contenu additionnel en explorant le continent.] // HASH_VALUE 2F284F3398091766 // INDEX 6072 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Author [@{6F6F}Auteur\n - @{FFFF} Auteur du scénario sélectionné. Entre crochets est la note donnée au scénario par son propre auteur.] + @{FFFF} Auteur du scénario sélectionné. Le nombre entre crochets est la note donnée au scénario par son propre auteur.] // HASH_VALUE 7D5B350CB5DF616F // INDEX 6073 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_NewbieTreeInfo [@{6F6F}Scenarii de la Zone de Départ\n - @{FFFF} M'ECRIRE] +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_NewbieTreeInfo [@{6F6F}Scenarii de la zone de départ\n + @{FFFF} M'ÉCRIRE] // HASH_VALUE F0009604F468F22A // INDEX 6074 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Fun [@{6F6F}Note de Divertissement\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Fun [@{6F6F}Note de divertissement\n @{FFFF} Note le divertissement apporté par le scénario sélectionné.] // HASH_VALUE 5CC60FE247B6E541 @@ -25584,7 +25584,7 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Difficulty [@{6F6F}Note de diffi // HASH_VALUE C3A8D93AB4BF2DF7 // INDEX 6076 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Accessibility [@{6F6F}Note d'Accessibilité\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Accessibility [@{6F6F}Note d'accessibilité\n @{FFFF} Note l'accessibilité du scénario sélectionné.] // HASH_VALUE E63CECE3EAA44809 @@ -25594,7 +25594,7 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Originality [@{6F6F}Note d'origi // HASH_VALUE EAB3000597E79860 // INDEX 6078 -uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Direction [@{6F6F}Direction Rating\n +uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Direction [@{6F6F}Note de clarté de consignes\n @{FFFF} Note la clarté des consignes du scénario sélectionné.] // HASH_VALUE F9C96D1B8F3186FB @@ -25605,10 +25605,10 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_RRPTotal [@{6F6F}Total des point // HASH_VALUE DEB31F903CC13218 // INDEX 6080 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_TreeInfo [@{6F6F}Exemples de Winch Gate\n - @{FFFF}Exemples de scenarii fournis avec Ryzom pour faire la démonstration de quelques unes des possibilités du Ring.\n - @{6F6F}Scenarii pioniers\n + @{FFFF}Exemples de scenarii fournis avec Ryzom pour faire la démonstration de quelques-unes des possibilités du Ring.\n + @{6F6F}Scenarii pionniers\n @{FFFF}Fournis par d'autres joueurs et le support client, ils n'ont pas été validés par Winch Gate. Visitez le site ryzom.com pour plus de détails.\n - @{6F6F}Mes Fichiers\n + @{6F6F}Mes fichiers\n @{FFFF}Les fichiers qui sont dans le répertoire 'My_scenarios' sur votre ordinateur.] // HASH_VALUE 26367F872144C855 @@ -25649,7 +25649,7 @@ uiR2EDProp_LoadScenario_Name [Nom du fichier] // HASH_VALUE 1A877C6FE605609E // INDEX 6090 -uiR2EDProp_LoadScenario_FunRating [Fun] +uiR2EDProp_LoadScenario_FunRating [Amusement] // HASH_VALUE 6C48C896E697B087 // INDEX 6091 @@ -25665,7 +25665,7 @@ uiR2EDProp_LoadScenario_OriginalityRating [Originalité] // HASH_VALUE 60E72C8A2A69BCA3 // INDEX 6094 -uiR2EDProp_LoadScenario_DirectionRating [Direction] +uiR2EDProp_LoadScenario_DirectionRating [Clarté des consignes] // HASH_VALUE 95B6849CA6A3979B // INDEX 6095 @@ -25677,11 +25677,11 @@ uiR2EDLoadScenario_InvalidFileName [Nom de fichier incorrect] // HASH_VALUE E082DD6A29896311 // INDEX 6097 -uiR2EDLoadScenario_Yes [Votre connaissance d'Atys est suffisante] +uiR2EDLoadScenario_Yes [Votre connaissance d'Atys est suffisante.] // HASH_VALUE 18577D9A4E0EA0E9 // INDEX 6098 -uiR2EDLoadScenario_No [Votre connaissance d'Atys n'est PAS suffisante] +uiR2EDLoadScenario_No [Votre connaissance d'Atys n'est PAS suffisante.] // HASH_VALUE AAC8204867A84443 // INDEX 6099 @@ -25713,7 +25713,7 @@ uiR2EDRingSkills [Stats Avancées] // HASH_VALUE 2CD4FB8A6DF7CB69 // INDEX 6106 -uiR2EDEcosystemPointsTitle [CONNAISSANCE D'ATYS] +uiR2EDEcosystemPointsTitle [Connaissance d'Atys] // HASH_VALUE 6879AC7F1E76E886 // INDEX 6107 @@ -25799,38 +25799,38 @@ uiR2EDRrpsLevel250 [Maître] // HASH_VALUE 118869B320D7EDCD // INDEX 6126 -uiR2EDRrpsLevel20Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Débutant@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Débutant'\n +uiR2EDRrpsLevel20Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau débutant@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'débutant'\n ] // HASH_VALUE EF966A1FB8731D23 // INDEX 6127 -uiR2EDRrpsLevel50Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Apprenti@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Maître' (Utilisant des compétences de niveau 21 minimum)\n +uiR2EDRrpsLevel50Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau apprenti@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'apprenti' (Utilisant des compétences de niveau 21 minimum)\n ] // HASH_VALUE 5B2F7EAB79E12023 // INDEX 6128 -uiR2EDRrpsLevel100Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Confirmé@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Confirmé' (Utilisant des compétences de niveau 51 minimum)\n +uiR2EDRrpsLevel100Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau confirmé@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'confirmé' (Utilisant des compétences de niveau 51 minimum)\n ] // HASH_VALUE BB8E4159D1270158 // INDEX 6129 -uiR2EDRrpsLevel150Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Avancé@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Avancé' (Utilisant des compétences de niveau 101 minimum)\n +uiR2EDRrpsLevel150Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau avancé@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'avancé' (Utilisant des compétences de niveau 101 minimum)\n ] // HASH_VALUE 867F514CB2A03C2D // INDEX 6130 -uiR2EDRrpsLevel200Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Expert@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Expert' (Utilisant des compétences de niveau 151 minimum)\n +uiR2EDRrpsLevel200Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau expert@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'axpert' (Utilisant des compétences de niveau 151 minimum)\n ] // HASH_VALUE 4350293FB42F5C2B // INDEX 6131 -uiR2EDRrpsLevel250Tooltip [@{6F6F}Points de récompenses pour les scenarii ring de niveau Maître@{FFFF}: %n.\n - Point gagnés dans les scenarii de niveau 'Maître' (Utilisant des compétences de niveau 201 minimum)\n +uiR2EDRrpsLevel250Tooltip [@{6F6F}Points de récompenses pour les scenarii Ring de niveau maître@{FFFF}: %n.\n + Point gagnés dans les scenarii de niveau 'maître' (Utilisant des compétences de niveau 201 minimum)\n ] // HASH_VALUE AB584C2DEF88F0FB @@ -25839,37 +25839,37 @@ uiR2EDRingRatingTitle [Notes du Ring] // HASH_VALUE 1A180078A796F49C // INDEX 6133 -uiR2EDAuthorRingRating [Note de Créateur] +uiR2EDAuthorRingRating [Note de créateur] // HASH_VALUE 3F60907F6A181F20 // INDEX 6134 -uiR2EDAMRingRating [Note de Maître de jeu] +uiR2EDAMRingRating [Note de maître de jeu] // HASH_VALUE 60369282641A94C4 // INDEX 6135 -uiR2EDMasterlessRingRating [Note d'Organisateur] +uiR2EDMasterlessRingRating [Note d'organisateur] // HASH_VALUE 23C8A5EEEDF6E93B // INDEX 6136 -uiR2EDAuthorRingRatingTooltip [@{6F6F}Note de l'Auteur@{FFFF}: Niveau : %n, Amélioration : %p%.\n - Note du Créateur de scenarii. Cette note augmente comme des joueurs participent à des scenarii que vous avez créé.\n +uiR2EDAuthorRingRatingTooltip [@{6F6F}Note de l'auteur@{FFFF}: niveau : %n, Amélioration : %p%.\n + Note du créateur de scenarii. Cette note augmente quand des joueurs participent à des scenarii que vous avez créés.\n ] // HASH_VALUE 6DC021DB83F07BB9 // INDEX 6137 -uiR2EDAMRingRatingTooltip [@{6F6F}Note d'Animateur@{FFFF}: Niveau : %n, Amélioration : %p%.\n - Notation de l'Animateur. Cette note augmente comme des joueurs participent aux scenarii animés que vous lancez.\n +uiR2EDAMRingRatingTooltip [@{6F6F}Note d'animateur@{FFFF}: niveau : %n, amélioration : %p%.\n + Notation de l'animateur. Cette note augmente comme des joueurs participent aux scenarii animés que vous lancez.\n ] // HASH_VALUE 8444264E77E31EF4 // INDEX 6138 -uiR2EDMasterlessRingRatingTooltip [@{6F6F}Note d'Organisateur@{FFFF}: Niveau : %n, Amélioration : %p%.\n +uiR2EDMasterlessRingRatingTooltip [@{6F6F}Note d'organisateur@{FFFF}: niveau : %n, amélioration : %p%.\n Notation de l'organisateur d'un scénario autonome. Cette note augmente comme des joueurs participent aux scenarii autonomes que vous avez lancé.\n ] // HASH_VALUE 2FA7448946541072 // INDEX 6139 -uiRingLoadingNotARoSScenario [Vous ne pouvez pas lancer un scénario du continent alors que vous êtes dans es Ruines de Silan.] +uiRingLoadingNotARoSScenario [Vous ne pouvez pas lancer un scénario du continent alors que vous êtes dans les Ruines de Silan.] // HASH_VALUE B4F03AFFA31F6D0B // INDEX 6140 @@ -25877,7 +25877,7 @@ uiRingNoRatings [Les scores des scenarii ne sont pas disponibles sur le continen // HASH_VALUE 4A01C80AFF1F901B // INDEX 6141 -uiR2EDScenarioScores [Scores moyen des scenarii] +uiR2EDScenarioScores [Scores moyens des scenarii] // HASH_VALUE 84EFDC320541EF05 // INDEX 6142 @@ -25885,7 +25885,7 @@ uiR2EDMyScenarioScores [Scores de mes scenarii] // HASH_VALUE 6C05A88ADDA13E69 // INDEX 6143 -uiClickToSelectAMission [Cliquer ici pour sélectionner une mission.] +uiClickToSelectAMission [Cliquez ici pour sélectionner une mission.] // HASH_VALUE 6F6AD0A31C58BBD9 // INDEX 6144 @@ -25893,15 +25893,15 @@ uiNoAvailableMission [Votre journal de mission est vide.] // HASH_VALUE D5EF87890D23D659 // INDEX 6145 -uittExpandMissionList [Cliquer ici pour basculer entre la liste étendue ou le menu déroulant.] +uittExpandMissionList [Cliquez ici pour basculer entre la liste étendue ou le menu déroulant.] // HASH_VALUE D191FA72CB9FB222 // INDEX 6146 -uittMissionCombo [Ceci est la mission courante de votre journal de mission. @{6F6F}Cliquer@{FFFF} ou utiliser la @{6F6F}roulette de la souris@{FFFF} pour regarder vos missions disponibles.] +uittMissionCombo [Ceci est la mission courante de votre journal de mission. @{6F6F}Cliquez@{FFFF} ou utilisez la @{6F6F}roulette de la souris@{FFFF} pour regarder vos missions disponibles.] // HASH_VALUE 2EF9BCB21D59A4B4 // INDEX 6147 -uittMissionJournal [Ceci est votre journal de mission] +uittMissionJournal [Ceci est votre journal de mission.] // HASH_VALUE 59798C4465B3A795 // INDEX 6148 @@ -25909,15 +25909,15 @@ uiFixedMissionEntry_Newbie [Ruines de Silan] // HASH_VALUE 520898FB6194839C // INDEX 6149 -uiFixedMissionEntry_Newbie_R2 [Ruines de Silan/Ring] +uiFixedMissionEntry_Newbie_R2 [Ruines de Silan / Ring] // HASH_VALUE 18D900505D80CFB6 // INDEX 6150 -uiFixedMissionEntry_Newbie_Trial [Ruines de Silan/Free trial] +uiFixedMissionEntry_Newbie_Trial [Ruines de Silan / Free trial] // HASH_VALUE 18A77350DFA39FB6 // INDEX 6151 -uiFixedMissionEntry_Newbie_R2_Trial [Ruines de Silan/Free trial/Ring] +uiFixedMissionEntry_Newbie_R2_Trial [Ruines de Silan/Free trial / Ring] // HASH_VALUE C8A0CB926A9A2FF4 // INDEX 6152 @@ -25937,11 +25937,11 @@ uiFixedMissionEntry_Mainland_Zorai [Continent / Zoraï] // HASH_VALUE 6CD9A79F9BC9BFA7 // INDEX 6156 -uiFixedMissionEntry_R2 [Ryzom ring] +uiFixedMissionEntry_R2 [Ryzom Ring] // HASH_VALUE 6C7A4A8CE2187A28 // INDEX 6157 -uiCaptionToggle [Barre de titre on/off] +uiCaptionToggle [Barre de titre on / off] // HASH_VALUE 8B2CEDC612649D91 // INDEX 6158 @@ -25957,7 +25957,7 @@ uiR2Palette [Palette] // HASH_VALUE 6C58344C6C582484 // INDEX 6161 -uiR2Scenario [Scenario] +uiR2Scenario [Scénario] // HASH_VALUE EE98048EAE982089 // INDEX 6162 @@ -25969,7 +25969,7 @@ uiR2Form [Formulaires] // HASH_VALUE 2DE9E3872057208A // INDEX 6164 -uiR2Custom_look [Personnaliser l'Apparence] +uiR2Custom_look [Personnaliser l'apparence] // HASH_VALUE AB48987ADE27208D // INDEX 6165 @@ -25993,11 +25993,11 @@ uiR2Connect [Connecter] // HASH_VALUE EFDBE88CCD44D4B0 // INDEX 6170 -uiR2Session_browser [Gestionnaire de Session] +uiR2Session_browser [Gestionnaire de eession] // HASH_VALUE 2B98E01C8FE8CCAC // INDEX 6171 -uiR2Scenario_control [Filtre de Scenarii] +uiR2Scenario_control [Filtre de scenarii] // HASH_VALUE EB99488FE0C29FAE // INDEX 6172 @@ -26005,47 +26005,47 @@ uiR2Player_tracking [Gestion des joueurs] // HASH_VALUE 16289C9B5234B491 // INDEX 6173 -uiCCDPalette [Couleur de l'en-tête Palette] +uiCCDPalette [Couleur de l'en-tête "Palette"] // HASH_VALUE 2899704495792BA6 // INDEX 6174 -uiCCDScenario [Couleur de l'en-tête Scénario] +uiCCDScenario [Couleur de l'en-tête "Scénario"] // HASH_VALUE 6A35D399204ADCA8 // INDEX 6175 -uiCCDProp_window [Couleur de l'en-tête Propriétés] +uiCCDProp_window [Couleur de l'en-tête "Propriétés"] // HASH_VALUE EBF7AC7E54B58B6A // INDEX 6176 -uiCCDForm [Couleur de l'en-tête Formulaires] +uiCCDForm [Couleur de l'en-tête "Formulaires"] // HASH_VALUE 216A97796E15AFC5 // INDEX 6177 -uiCCDCustom_look [Couleur de l'en-tête Personnaliser l'Apparence] +uiCCDCustom_look [Couleur de l'en-tête "Personnaliser l'apparence"] // HASH_VALUE D859888A1465A080 // INDEX 6178 -uiCCDDialogs [Couleur de l'en-tête Dialogues] +uiCCDDialogs [Couleur de l'en-tête "Dialogues"] // HASH_VALUE 9E499B89AE7473BD // INDEX 6179 -uiCCDEvents [Couleur de l'en-tête Événements] +uiCCDEvents [Couleur de l'en-tête "Événements"] // HASH_VALUE EC15AB7B5C4AB8B0 // INDEX 6180 -uiCCDActivities [Couleur de l'en-tête Activités] +uiCCDActivities [Couleur de l'en-tête "Activités"] // HASH_VALUE 9959D8849499FC6C // INDEX 6181 -uiCCDFeature_help [Couleur de l'en-tête Aide Contextuelle] +uiCCDFeature_help [Couleur de l'en-tête "Aide contextuelle"] // HASH_VALUE 5839907F9445A875 // INDEX 6182 -uiCCDConnect [Couleur de l'en-tête Connexion] +uiCCDConnect [Couleur de l'en-tête "Connexion"] // HASH_VALUE 6E39A48CC446B094 // INDEX 6183 -uiCCDSession_browser [Couleur de l'en-tête Gestionnaire de Session] +uiCCDSession_browser [Couleur de l'en-tête "Gestionnaire de session"] // HASH_VALUE 6968F8F657E974AB // INDEX 6184 @@ -26053,7 +26053,7 @@ uiCCDScenario_control [Couleur de l'en-tête Gestionnaire de Scénario] // HASH_VALUE ED587C995390FC83 // INDEX 6185 -uiCCDPlayer_tracking [Couleur de l'en-tête Gestion des Joueurs] +uiCCDPlayer_tracking [Couleur de l'en-tête "Gestion des joueurs"] // HASH_VALUE 5779246256A6A3B0 // INDEX 6186 @@ -26089,7 +26089,7 @@ uittR2_Activities [Choisissez la couleur de l'en-tête pour 'Activités'] // HASH_VALUE AF0F9D5B5686432F // INDEX 6194 -uittR2_Feature_help [Choisissez la couleur de l'en-tête pour 'Aide Contextuelle'] +uittR2_Feature_help [Choisissez la couleur de l'en-tête pour 'Aide contextuelle'] // HASH_VALUE D759F0621A9567B9 // INDEX 6195 @@ -26097,15 +26097,15 @@ uittR2_Connect [Choisissez la couleur de l'en-tête pour 'Connexion'] // HASH_VALUE F3E0B98234AB4435 // INDEX 6196 -uittR2_Session_browser [Choisissez la couleur de l'en-tête pour 'Gestionnaire de Session'] +uittR2_Session_browser [Choisissez la couleur de l'en-tête pour 'Gestionnaire de session'] // HASH_VALUE 70CF4C1632AD2827 // INDEX 6197 -uittR2_Scenario_control [Choisissez la couleur de l'en-tête pour 'Gestionnaire du Scénario'] +uittR2_Scenario_control [Choisissez la couleur de l'en-tête pour 'Gestionnaire du scénario'] // HASH_VALUE 6C3FEDB6DE6C0C2F // INDEX 6198 -uittR2_Player_tracking [Choisissez la couleur de l'en-tête pour 'Gestion des Joueurs'] +uittR2_Player_tracking [Choisissez la couleur de l'en-tête pour 'Gestion des joueurs'] // HASH_VALUE 6CDA3C92EE34229C // INDEX 6199 @@ -26121,7 +26121,7 @@ uiBGD_ShowHide [Montrer / Cacher] // HASH_VALUE AA49704C941FE205 // INDEX 6202 -uiBGD_CloseWarning [Cette action ne fermera pas Ryzom Downloader. Celui-ci continuera de fonctionner en tâche de fond. Pour le fermer, cliquez sur son icon dans la Zone de Notification, puis sélectionnez 'Quitter'.] +uiBGD_CloseWarning [Cette action ne fermera pas Ryzom Downloader. Celui-ci continuera de fonctionner en tâche de fond. Pour le fermer, cliquez sur son icone dans la zone de notifications, puis sélectionnez 'Quitter'.] // HASH_VALUE 9705DCECA260D0BA // INDEX 6203 @@ -26137,11 +26137,11 @@ uiBGD_PatchComplete [Mise à jour terminée avec succès !] // HASH_VALUE 5EC6F732DF7DE95E // INDEX 6206 -uiBGD_CheckFailed [ECHEC lors de la recherche de fichiers à télécharger] +uiBGD_CheckFailed [Échec lors de la recherche de fichiers à télécharger] // HASH_VALUE C14FCEFAA047F85B // INDEX 6207 -uiBGD_PatchingFailed [Echec de la mise à jour. Vérifiez s'il vous plaît l'espace disque displonible ainsi que votre connexion internet, puis réessayez.] +uiBGD_PatchingFailed [Échec de la mise à jour. Vérifiez s'il vous plaît l'espace disque disponible ainsi que votre connexion internet, puis réessayez.] // HASH_VALUE 5B64887497D8775D // INDEX 6208 @@ -26153,7 +26153,7 @@ uiBGD_Progress [Mise à jour en cours : ] // HASH_VALUE 7F3B30F36D90E7CF // INDEX 6210 -uiBGD_PatchUpToDate [Ryzom est maintenant à jour] +uiBGD_PatchUpToDate [Ryzom est maintenant à jour.] // HASH_VALUE 39907708AD43B943 // INDEX 6211 @@ -26161,7 +26161,7 @@ uiBGD_PatchError [Erreur de la mise à jour, vérifiez l'espace disque disponibl // HASH_VALUE 1EF6CD9CD14C00BD // INDEX 6212 -uiBGD_ProtocolError [Erreur de communication Jeu/Ryzom Downloader. Relancer s'il vous plaît Ryzom ou en dernier recours utiliser le Ryzom Downloader pour réparer votre application.] +uiBGD_ProtocolError [Erreur de communication Jeu / Ryzom Downloader. Relancer s'il vous plaît Ryzom ou en dernier recours utiliser le Ryzom Downloader pour réparer votre application.] // HASH_VALUE 26A8FD55064E9186 // INDEX 6213 @@ -26173,7 +26173,7 @@ uiBGD_Launching [Lancement de Ryzom Downloader...] // HASH_VALUE 362A10B37B9728DB // INDEX 6215 -uiBGD_LaunchError [Echec lors du lancement de Ryzom Downloader...] +uiBGD_LaunchError [Échec lors du lancement de Ryzom Downloader...] // HASH_VALUE 7ECB388114199FF6 // INDEX 6216 @@ -26193,7 +26193,7 @@ uiBGD_FullPatchNeeded [Cette fonctionnalité n'est disponible qu'après que la m // HASH_VALUE A01CE7B6A9D03D43 // INDEX 6220 -uiBGD_MainlandCharFullPatchNeeded [L'endroit dans lequel se trouve ce personnage ne sera accessible qu'une fois que le Logiciel de mise à jour aura fini. La progression de la mise à jour est indiquée par la barre de progression.] +uiBGD_MainlandCharFullPatchNeeded [L'endroit dans lequel se trouve ce personnage ne sera accessible qu'une fois que le logiciel de mise à jour aura fini. La progression de la mise à jour est indiquée par la barre de progression.] // HASH_VALUE 2B27D4766A97FC8C // INDEX 6221 @@ -26213,7 +26213,7 @@ uiBGD_NormalPriority [Priorité normale] // HASH_VALUE BD4D3CF8E95C917A // INDEX 6225 -uiBGD_PriorityTooltip [Sélectionnez la priorité de Ryzom Downloader. Il vous sera possible de mettre le logiciel en @{6F6F}Pause@{FFFF} si vous subissez des ralentissements. Si vous avez une machine rapide, ou que vous souhaitez accélérer le processus de mise à jour, sélectionnez @{6F6F}Priorité normale@{FFFF}.] +uiBGD_PriorityTooltip [Sélectionnez la priorité de Ryzom Downloader. Il vous sera possible de mettre le logiciel en @{6F6F}pause@{FFFF} si vous subissez des ralentissements. Si vous avez une machine rapide, ou que vous souhaitez accélérer le processus de mise à jour, sélectionnez @{6F6F}priorité normale@{FFFF}.] // HASH_VALUE 201CF438645834D4 // INDEX 6226 @@ -26221,11 +26221,11 @@ uiBGD_NotUsed [Non utilisé] // HASH_VALUE F40D1B4F626F4271 // INDEX 6227 -uiBGD_ShutdownFailed [Echec lors de la fermeture de Ryzom Downloader, vous serez pet-être amené à redémarrez votre ordinateur pour résoudre le problème.] +uiBGD_ShutdownFailed [Échec lors de la fermeture de Ryzom Downloader, vous serez peut-être amené à redémarrer votre ordinateur pour résoudre le problème.] // HASH_VALUE B703221C05EDDEEE // INDEX 6228 -uiBGD_InGamePatchIncomplete [Accéder aux terres principales d'Atys ainsi qu'au Ryzom Ring nécessite que la mise à jour soit finie. La progression est indiquée dnas la fenêtre du Logiciel de mise à jour.] +uiBGD_InGamePatchIncomplete [Accéder aux terres principales d'Atys ainsi qu'au Ryzom Ring nécessite que la mise à jour soit finie. La progression est indiquée dans la fenêtre du logiciel de mise à jour.] // HASH_VALUE 40DA4DB418F59CA7 // INDEX 6229 @@ -26245,19 +26245,19 @@ uiCP_KeysetName_bi_wow_alike [Autre 1] // HASH_VALUE 9181AE4143F379CE // INDEX 6233 -uiCP_KeysetTooltip_bi_wow_alike [Pour les personnes habituées à la configuration des touches d'un autre MMO, celle peut éventuellement vous premettre de retrouver vos marques. Ceci ne s'applique qu'à Ryzom (La configuration du Ring reste la même).] +uiCP_KeysetTooltip_bi_wow_alike [Pour les personnes habituées à la configuration des touches d'un autre MMO, celle peut éventuellement vous permettre de retrouver vos marques. Ceci ne s'applique qu'à Ryzom (La configuration du Ring reste la même).] // HASH_VALUE 2957F04D21D5A0AF // INDEX 6234 -uiAutomaticCamera [Camera Automatique] +uiAutomaticCamera [Caméra automatique] // HASH_VALUE C238DC5E6A1884C6 // INDEX 6235 -uiMouseDblClickMode [Mode Double Clic] +uiMouseDblClickMode [Mode double clic] // HASH_VALUE 3A67F68BFEEC9DDD // INDEX 6236 -uiAutoEquipTool [S'équiper automatiquement de l'arme/outil] +uiAutoEquipTool [S'équiper automatiquement de l'arme / outil] // HASH_VALUE 6B383031692D6A2F // INDEX 6237 @@ -26294,11 +26294,11 @@ uiBGD_Quit [Quitter] // HASH_VALUE F686610840B57FC7 // INDEX 6245 -uiBGD_ChoosePackage [Sélectionner l'installation désirée : ] +uiBGD_ChoosePackage [Sélectionner l'installation désirée : ] // HASH_VALUE F1F783BFC21EFB8D // INDEX 6246 -uiBGD_MinimalInstall [Installation minimum. L'île de départ sera installée (Free Trial).] +uiBGD_MinimalInstall [Installation minimum. L'île de départ sera installée (Free trial).] // HASH_VALUE 2522249A66C6EC1A // INDEX 6247 @@ -26336,7 +26336,7 @@ uiBGD_FinishInstall [Terminer] // HASH_VALUE 719D107BFC098D19 // INDEX 6255 -uiBGD_ResumeDownloadInfo [Note : Vous pouvez reprendre cette installation à tout moment en double-cliquant sur le raccourci de l'installeur sur votre bureau.] +uiBGD_ResumeDownloadInfo [Note : vous pouvez reprendre cette installation à tout moment en double-cliquant sur le raccourci de l'installeur sur votre bureau.] // HASH_VALUE 13F3EFA1EB9ABB9E // INDEX 6256 @@ -26371,7 +26371,7 @@ uiBGD_Connecting [Connexion] // HASH_VALUE 18F9B83B2739089E // INDEX 6263 -uiDownloadingMetadata [Téléchargement des métadata] +uiDownloadingMetadata [Téléchargement des métadonnées] // HASH_VALUE E0561484EBE9CCB3 // INDEX 6264 @@ -26405,7 +26405,7 @@ uiBGD_CategoryInstall [Installation (2/2)] // HASH_VALUE 32B8685B66C794BE // INDEX 6271 -uiBGD_Restarting [L'application va être relancée] +uiBGD_Restarting [L'application va être relancée.] // HASH_VALUE 1799D444A927A0A4 // INDEX 6272 @@ -26512,21 +26512,21 @@ uiBGD_ContentStartProcessInstall [Vous êtes sur le point de télécharger et d' // HASH_VALUE 0716CC8CFA483488 // INDEX 6297 -uiBGD_ContentStartProcessRepair [Vous êtes sur le point de mettre à jours votre installation de Ryzom à la dernière version.\n +uiBGD_ContentStartProcessRepair [Vous êtes sur le point de mettre à jour la dernière version de Ryzom.\n Cette opération va réparer les fichiers qui sont manquants ou endommagés.\n - A la fin de la mise à jours les fichiers de configurations du jeu seront remis à zero.] + À la fin de la mise à jour, les fichiers de configurations du jeu seront remis à zéro.] // HASH_VALUE ADA2E41D709F5795 // INDEX 6298 -uiBGD_ContentStartProcessTorrent [Le 'Mode Torrent' utilise la technolgie peer-to-peer pour accélérer le téléchargement. Désactiver cette option peut résoudre certains problèmes.] +uiBGD_ContentStartProcessTorrent [Le 'mode Torrent' utilise la technolgie peer-to-peer pour accélérer le téléchargement. Désactiver cette option peut résoudre certains problèmes.] // HASH_VALUE A8B4ECB24E75F05B // INDEX 6299 -uiBGD_TitleStartProcessInstall [Bienvenue dans le Ryzom Downloader] +uiBGD_TitleStartProcessInstall [Bienvenue dans le Ryzom Downloader !] // HASH_VALUE AA39CC7F2309DCB0 // INDEX 6300 -uiBGD_TitleInstallSuccess [Félicitations] +uiBGD_TitleInstallSuccess [Félicitations !] // HASH_VALUE 7F31D4B9A7157F1A // INDEX 6301 @@ -26534,7 +26534,7 @@ uiBGD_ContentInstallSuccess [Ryzom a été installé avec succès.] // HASH_VALUE 9E1F03D60DC3E49B // INDEX 6302 -uiBGD_QuitInstallContent [Etes-vous sûre de vouloir quitter l'application ?] +uiBGD_QuitInstallContent [Etes-vous sûr(e) de vouloir quitter l'application ?] // HASH_VALUE 78E7ED45ECD4B47D // INDEX 6303 @@ -26546,7 +26546,7 @@ uiBGD_QuitInstallTitle [Quitter ?] // HASH_VALUE 0CCB8A3B129779C5 // INDEX 6305 -uiBGD_ErrorSupportFormat [Des solutions pour les problèmes le plus commun peuvent se trouver sur {0}.] +uiBGD_ErrorSupportFormat [Des solutions pour les problèmes les plus communs peuvent se trouver sur {0}.] // HASH_VALUE E38B768D810F532E // INDEX 6306 @@ -26566,21 +26566,21 @@ uittBrowseFaq [Aide] // HASH_VALUE F3EFAB8B176EEA64 // INDEX 6310 -uiUnsupportedColorDepth [Le nombre actuel de couleurs de votre bureau n'est pas supporté par Ryzom. Lancez Ryzom en mode 16 millions de coleurs s'il vous plaît.] +uiUnsupportedColorDepth [Le nombre actuel de couleurs de votre bureau n'est pas supporté par Ryzom. Veuillez lancer Ryzom en mode 16 millions de couleurs.] // HASH_VALUE 839DB655EBC9E640 // INDEX 6311 -uiUnsupportedNewColorDepth [Le nouveau nombre de couleurs de votre bureau n'est pas supporté par Ryzom. Lancez Ryzom en mode 16 millions de coleurs s'il vous plaît.] +uiUnsupportedNewColorDepth [Le nouveau nombre de couleurs de votre bureau n'est pas supporté par Ryzom. Veuillez lancer Ryzom en mode 16 millions de couleurs.] // HASH_VALUE D51ACCF3858BA4D0 // INDEX 6312 -uiDeathWarningTitle [Coma et Mort] +uiDeathWarningTitle [Coma et mort] // HASH_VALUE 38DAD4E07D7667A5 // INDEX 6313 uiDeathWarningContent [Vous êtes dans le coma.\n \n - Si personne ne vous soigne avant la fin du décompte, les Kamis ou la Karavan vous rameneront à la vie à côté d'endroits spécialisés avec une pénalité.\n + Si personne ne vous soigne avant la fin du décompte, les Kamis ou la Karavan vous ramèneront à la vie à côté d'endroits spécialisés avec une pénalité.\n \n Choisissez un point de résurrection sur la carte, puis cliquez sur RESSUSCITER. Vous réapparaîtrez alors à l'endroit sélectionné avec vos énergies au minimum.] @@ -26606,7 +26606,7 @@ uiQResetUI [Voulez vous vraiment réinitialiser l'IU ?] // HASH_VALUE EC18EC7026582CA0 // INDEX 6319 -uiCommandNotExists [Commande inconnue.] +uiCommandNotExists [Commande inconnue] // HASH_VALUE 6FD5933B0E232C9E // INDEX 6320 @@ -26633,7 +26633,7 @@ uitabBuyUpgrade [Amélioration] // HASH_VALUE DEF61087D57120A9 // INDEX 6325 -uitabBuyPower [Pouvoirs/Auras] +uitabBuyPower [Pouvoirs / Auras] // HASH_VALUE ABDA7C922847EC6E // INDEX 6326 @@ -26649,25 +26649,25 @@ uittConsiderTargetLevel [@{6F6F}Niveau@{FFFF} de la cible séléctionnée] // HASH_VALUE 0AB7FA32A8511BE3 // INDEX 6329 -uittConsiderBoss [Cette créature est @{6F6F}guild challenging@{FFFF}.] +uittConsiderBoss [Cette créature est @{6F6F}un défi de guilde@{FFFF}.] // HASH_VALUE 2AF11D0906C7D2D2 // INDEX 6330 -uittConsiderBossNpc [Ce personnage est @{6F6F}guild challenging@{FFFF}.] +uittConsiderBossNpc [Ce personnage est @{6F6F}défi de guilde@{FFFF}.] // HASH_VALUE 8C74A6F550643098 // INDEX 6331 -uittConsiderNamedOrMiniBoss [Cette créature est @{6F6F}team challenging@{FFFF}.] +uittConsiderNamedOrMiniBoss [Cette créature est @{6F6F}défi d'équipe@{FFFF}.] // HASH_VALUE 359EDEECC69B0BB1 // INDEX 6332 -uittConsiderUnknownLevel [Le niveau de la cible est @{F00F}trop élevé@{FFFF} par rapport a votre niveau.\n +uittConsiderUnknownLevel [Le niveau de la cible est @{F00F}trop élevé@{FFFF} par rapport à votre niveau.\n \n - @{888F}Note : Vous pouvez voir le niveau exact de votre cible jusqu'à 10 niveaux au-dessus de votre propre niveau. Vous recevez un bonus de 10 niveaux pour chaque joueur ajouté dans votre équipe.] + @{888F}Note : vous pouvez voir le niveau exact de votre cible jusqu'à 10 niveaux au-dessus de votre propre niveau. Vous recevez un bonus de 10 niveaux pour chaque joueur ajouté dans votre équipe.] // HASH_VALUE A7189BEC5B76E245 // INDEX 6333 -uittConsiderBothPVPToSeeLevel [@{6F6F}Astuce :@{FFFF} Vous et votre cible devez être en mode PVP pour pouvoir voir le niveau de votre adversaire.] +uittConsiderBothPVPToSeeLevel [@{6F6F}Astuce :@{FFFF} vous et votre cible devez être en mode PVP pour pouvoir voir le niveau de votre adversaire.] // tooltip for the tab in the trainer window // HASH_VALUE 2ED574482B685C4E @@ -26688,7 +26688,7 @@ uittTabBuyPower [Apprendre de nouveaux pouvoirs et auras] // HASH_VALUE F298C84F29398785 // INDEX 6338 -uittTabBuyCarac [Augmentez vos caractéristiques] +uittTabBuyCarac [Augmenter vos caractéristiques] // spell cast time (displayed in the tooltip of actions) // HASH_VALUE 57D08F660BB56E6F @@ -26711,7 +26711,7 @@ uittSecondsShort [ s ] // 'minutes' (abreviated) // HASH_VALUE 73DC6ACDC6DC351A // INDEX 6343 -uittMinutesShort [ mn ] +uittMinutesShort [ min ] // 'hours" (abreviated) // HASH_VALUE 328C42C8448C2110 @@ -26733,11 +26733,11 @@ uittSuccessRate [Taux de réussite : @{6F6F}] // HASH_VALUE FA111C562D322699 // INDEX 6348 -uittRegenTime [Temps de Regen. : @{6F6F}] +uittRegenTime [Temps de régén. : @{6F6F}] // HASH_VALUE 5FA7D8A4CB502E07 // INDEX 6349 -uittDisableTime [Temps de Recast. : @{FFFF}] +uittDisableTime [Temps de relance. : @{FFFF}] // HASH_VALUE 91D82F4921A4338B // INDEX 6350 @@ -26765,47 +26765,47 @@ uiRpJobs [Métiers] // HASH_VALUE 21D2AB9C60E8E0A4 // INDEX 6356 -uiRpJobsElementary [Métiers Élémentaires] +uiRpJobsElementary [Métiers élémentaires] // HASH_VALUE 62A74024692697BB // INDEX 6357 -uiRpJobsAdvanced [Métiers Avancés] +uiRpJobsAdvanced [Métiers avancés] // HASH_VALUE 24A774396FB70FC8 // INDEX 6358 -uiRpJobsRoleplay [Métiers RP] +uiRpJobsRoleplay [Métiers roleplay] // HASH_VALUE A153C47D2C2A5C6A // INDEX 6359 -rpjob_200 [Apprenti Boucher] +rpjob_200 [Apprenti boucher] // HASH_VALUE A253CC8B2A8A5861 // INDEX 6360 -rpjob_201 [Apprenti Fleuriste] +rpjob_201 [Apprenti fleuriste] // HASH_VALUE A9262412EC3AE89D // INDEX 6361 -rpjob_202 [Apprenti Porteur d'eau] +rpjob_202 [Apprenti porteur d'eau] // HASH_VALUE 4F66988720AA7C79 // INDEX 6362 -rpjob_203 [Apprenti Cartographe en magnétisme] +rpjob_203 [Apprenti cartographe en magnétisme] // HASH_VALUE A7A6BC6A6616CC78 // INDEX 6363 -rpjob_204 [Apprenti Outilleur] +rpjob_204 [Apprenti outilleur] // HASH_VALUE A553C47D2E29985A // INDEX 6364 -rpjob_205 [Apprenti Secouriste] +rpjob_205 [Apprenti secouriste] // HASH_VALUE A5A6E07C62B7D86A // INDEX 6365 -rpjob_206 [Apprenti Larviculteur] +rpjob_206 [Apprenti larviculteur] // HASH_VALUE E575D480EA87F0A1 // INDEX 6366 -rpjob_207 [Apprenti Parcheminier] +rpjob_207 [Apprenti parcheminier] // HASH_VALUE 24245B3163C7514A // INDEX 6367 @@ -26813,27 +26813,27 @@ uiRpjobMaxLevel [Vous avez atteint l'échelon maximum dans ce métier.] // HASH_VALUE 17D39358571A4838 // INDEX 6368 -uiChapterI [Chapitre I : Les temps changent] +uiChapterI [Chapitre I : les temps changent] // HASH_VALUE 97614C57D7EAE36B // INDEX 6369 -uiChapterII [Chapitre II : Prêt à se battre] +uiChapterII [Chapitre II : prêt à se battre] // HASH_VALUE 59E74861D1E36294 // INDEX 6370 -uiChapterIII [Chapitre III : Avant-Postes] +uiChapterIII [Chapitre III : avant-postes] // HASH_VALUE A3244C43859A1438 // INDEX 6371 -uiChapterIV [Chapitre IV : Métiers élémentaires] +uiChapterIV [Chapitre IV : métiers élémentaires] // HASH_VALUE 96469B3B70F9145A // INDEX 6372 -uiChapterV [Chapitre V : L'appel du pouvoir] +uiChapterV [Chapitre V : l'appel du pouvoir] // HASH_VALUE 15B6E48990EABC69 // INDEX 6373 -uiShowTimesInChatCB [Afficher l'heure dans les fenêtres de discussion.] +uiShowTimesInChatCB [Afficher l'heure dans les fenêtres de discussion] // HASH_VALUE 3D0B2453397DF2BC // INDEX 6374 @@ -26841,7 +26841,7 @@ uittShowTimesInChat [Si coché, affiche l'heure dans les fenêtres de discussion // HASH_VALUE 41634A5914865F53 // INDEX 6375 -uiEchelon [Echelon : ] +uiEchelon [Échelon : ] // HASH_VALUE 2E428F9A99366770 // INDEX 6376 @@ -26849,11 +26849,11 @@ uiShowClock [Afficher l'heure au-dessus du radar] // HASH_VALUE E80563EA6265AD11 // INDEX 6377 -uittShowClock [Si coché, affiche l'heure courante au-dessus du radar] +uittShowClock [Si coché, affiche l'heure courante au-dessus du radar.] // HASH_VALUE 5B008CB3BFE212C7 // INDEX 6378 -uiUntranslatedToken [Valeur saisie incorrect: la valeur '%s' n'a pas été définie.] +uiUntranslatedToken [Valeur saisie incorrecte : la valeur '%s' n'a pas été définie.] // HASH_VALUE 1DE6E33299B77FDC // INDEX 6379 @@ -26877,11 +26877,11 @@ uiShowReticle [Afficher le réticule autour de la cible] // HASH_VALUE DEF8FF70C06E611F // INDEX 6384 -uittShowReticle [Si coché, afficher le réticule autour de la cible quand vous mettez la souris sur la cible.] +uittShowReticle [Si coché, affiche le réticule autour de la cible quand vous mettez la souris sur la cible.] // HASH_VALUE 200EB441EC195B51 // INDEX 6385 -uiCurrentLocalAndUtcTime [L'heure locale est %local, L'heure UTC est %utc.] +uiCurrentLocalAndUtcTime [L'heure locale est %local, l'heure UTC est %utc.] // HASH_VALUE 1B989391681BEB61 // INDEX 6386 @@ -26898,11 +26898,11 @@ youTellPlayer [vous dites à %name] // HASH_VALUE 5FC44FA59BD42F78 // INDEX 6389 -uimwHands2 [MAINS #2] +uimwHands2 [Mains #2] // HASH_VALUE B374A35AB0FA28BF // INDEX 6390 -uiRunShortcut2 [Exe. Raccourci #2] +uiRunShortcut2 [Exe. raccourci #2] // HASH_VALUE D7506FD19A326FD0 // INDEX 6391 @@ -26910,7 +26910,7 @@ uiActions2 [Actions #2] // HASH_VALUE 0CE3C4BAA2D6C481 // INDEX 6392 -uiKeysActionsTitle2 [Raccourcis des Actions #2] +uiKeysActionsTitle2 [Raccourcis des actions #2] // HASH_VALUE 2C08C0B02C08C0B0 // INDEX 6393 @@ -26918,20 +26918,20 @@ uiThousandsSeparator [ ] // HASH_VALUE FA309F21F9211A09 // INDEX 6394 -uiRaceBold [RACE : ] +uiRaceBold [Race : ] // HASH_VALUE 64636618A3BDC326 // INDEX 6395 -uittFilterTP [Filtre @{6F6F}Pactes de Téléportation\n - @{FFFF}Effectuez un clic-droit pour ne sélectionner que les @{6F6F}Pactes de Téléportation@{FFFF}.] +uittFilterTP [Filtre @{6F6F}Pactes de téléportation\n + @{FFFF}Effectuez un clic-droit pour ne sélectionner que les @{6F6F}pactes de téléportation@{FFFF}.] // HASH_VALUE 08D8B8FE2B893831 // INDEX 6396 -uiShowOnlineOfflineNotifications [Notifications de Connexions/Déconnexions] +uiShowOnlineOfflineNotifications [Notifications de connexions / déconnexions] // HASH_VALUE 4CD4D1CC173C6E8A // INDEX 6397 -uittShowOnlineOfflineNotifications [Afficher les notifications de Connexions/Déconnexions pour les amis ou membre de la guilde.] +uittShowOnlineOfflineNotifications [Afficher les notifications de connexions / déconnexions pour les amis ou membre de la guilde.] // HASH_VALUE C5878CD4F49A9E18 // INDEX 6398 @@ -26947,11 +26947,11 @@ uiDynColor0 [Canal dynamique 0] // HASH_VALUE D7E5C437EA19905C // INDEX 6401 -uiCCDDyn0 [Couleur des messages du 'Canal dynamique 0'] +uiCCDDyn0 [Couleur des messages du 'canal dynamique 0'] // HASH_VALUE E0A73C8619718AA7 // INDEX 6402 -uittChooseDynColor0 [Sélectionner la couleur des messages du Canal dynamique 0.] +uittChooseDynColor0 [Sélectionner la couleur des messages du canal dynamique 0.] // HASH_VALUE E619A4D803E8A8AA // INDEX 6403 @@ -26963,7 +26963,7 @@ uiCCDDyn1 [Couleur des messages du 'Canal dynamique 1'] // HASH_VALUE E0B73C8619718AA7 // INDEX 6405 -uittChooseDynColor1 [Sélectionner la couleur des messages du Canal dynamique 1.] +uittChooseDynColor1 [Sélectionner la couleur des messages du canal dynamique 1.] // HASH_VALUE E619A4D903E8A8AA // INDEX 6406 @@ -26971,11 +26971,11 @@ uiDynColor2 [Canal dynamique 2] // HASH_VALUE D7E5CC37EA19905C // INDEX 6407 -uiCCDDyn2 [Couleur des messages du 'Canal dynamique 2'] +uiCCDDyn2 [Couleur des messages du 'canal dynamique 2'] // HASH_VALUE E0C73C8619718AA7 // INDEX 6408 -uittChooseDynColor2 [Sélectionner la couleur des messages du Canal dynamique 2.] +uittChooseDynColor2 [Sélectionner la couleur des messages du canal dynamique 2.] // HASH_VALUE E619A4DA03E8A8AA // INDEX 6409 @@ -26983,11 +26983,11 @@ uiDynColor3 [Canal dynamique 3] // HASH_VALUE D7E5D037EA19905C // INDEX 6410 -uiCCDDyn3 [Couleur des messages du 'Canal dynamique 3'] +uiCCDDyn3 [Couleur des messages du 'canal dynamique 3'] // HASH_VALUE E0D73C8619718AA7 // INDEX 6411 -uittChooseDynColor3 [Sélectionner la couleur des messages du Canal dynamique 3.] +uittChooseDynColor3 [Sélectionner la couleur des messages du canal dynamique 3.] // HASH_VALUE E619A4DB03E8A8AA // INDEX 6412 @@ -26995,11 +26995,11 @@ uiDynColor4 [Canal dynamique 4] // HASH_VALUE D7E5D437EA19905C // INDEX 6413 -uiCCDDyn4 [Couleur des messages du 'Canal dynamique 4'] +uiCCDDyn4 [Couleur des messages du 'canal dynamique 4'] // HASH_VALUE E0E73C8619718AA7 // INDEX 6414 -uittChooseDynColor4 [Sélectionner la couleur des messages du Canal dynamique 4.] +uittChooseDynColor4 [Sélectionner la couleur des messages du canal dynamique 4.] // HASH_VALUE E619A4DC03E8A8AA // INDEX 6415 @@ -27007,11 +27007,11 @@ uiDynColor5 [Canal dynamique 5] // HASH_VALUE D7E5D837EA19905C // INDEX 6416 -uiCCDDyn5 [Couleur des messages du 'Canal dynamique 5'] +uiCCDDyn5 [Couleur des messages du 'canal dynamique 5'] // HASH_VALUE E0F73C8619718AA7 // INDEX 6417 -uittChooseDynColor5 [Sélectionner la couleur des messages du Canal dynamique 5.] +uittChooseDynColor5 [Sélectionner la couleur des messages du canal dynamique 5.] // HASH_VALUE E619A4DD03E8A8AA // INDEX 6418 @@ -27019,11 +27019,11 @@ uiDynColor6 [Canal dynamique 6] // HASH_VALUE D7E5DC37EA19905C // INDEX 6419 -uiCCDDyn6 [Couleur des messages du 'Canal dynamique 6'] +uiCCDDyn6 [Couleur des messages du 'canal dynamique 6'] // HASH_VALUE E0073C8619718AA7 // INDEX 6420 -uittChooseDynColor6 [Sélectionner la couleur des messages du Canal dynamique 6.] +uittChooseDynColor6 [Sélectionner la couleur des messages du canal dynamique 6.] // HASH_VALUE E619A4DE03E8A8AA // INDEX 6421 @@ -27031,11 +27031,11 @@ uiDynColor7 [Canal dynamique 7] // HASH_VALUE D7E5E037EA19905C // INDEX 6422 -uiCCDDyn7 [Couleur des messages du 'Canal dynamique 7'] +uiCCDDyn7 [Couleur des messages du 'canal dynamique 7'] // HASH_VALUE E0173C8619718AA7 // INDEX 6423 -uittChooseDynColor7 [Sélectionner la couleur des messages du Canal dynamique 7.] +uittChooseDynColor7 [Sélectionner la couleur des messages du canal dynamique 7.] // HASH_VALUE A735121BBB3AD1A5 // INDEX 6424 @@ -27051,55 +27051,55 @@ uimUnlockItem [Déverrouiller] // HASH_VALUE 16E88465D3567378 // INDEX 6427 -uimSetTeamLeader [Promouvoir Chef] +uimSetTeamLeader [Promouvoir chef] // HASH_VALUE C7E1BC268BF19C29 // INDEX 6428 -uiKeyTILDE [TILDE] +uiKeyTILDE [Tilde] // HASH_VALUE 4942A43A0B91EC2F // INDEX 6429 -uiKeySLASH [SLASH] +uiKeySLASH [Slash] // HASH_VALUE 0643604105235C40 // INDEX 6430 -uiKeyPERIOD [POINT] +uiKeyPERIOD [Point] // HASH_VALUE 82F07C1E0BC1B822 // INDEX 6431 -uiKeyBACKSLASH [BARRE OBLIQUE INVERSÉE] +uiKeyBACKSLASH [Barre oblique inversée] // HASH_VALUE 4D80E02C9041EC2C // INDEX 6432 -uiKeyAPOSTROPHE [APOSTROPHE] +uiKeyAPOSTROPHE [Apostrophe] // HASH_VALUE CA41D83C8980A41E // INDEX 6433 -uiKeySEMICOLON [POINT-VIRGULE] +uiKeySEMICOLON [Point-virgule] // HASH_VALUE 409424485450B40C // INDEX 6434 -uiKeyRBRACKET [PARENTHÈSE FERMANTE] +uiKeyRBRACKET [Parenthèse fermante] // HASH_VALUE 409424305450B40C // INDEX 6435 -uiKeyLBRACKET [PARENTHÈSE OUVRANTE] +uiKeyLBRACKET [Parenthèse ouvrante] // HASH_VALUE C8C2DC2BCCC1E432 // INDEX 6436 -uiKeyEQUALS [EGAL] +uiKeyEQUALS [Égal] // HASH_VALUE 48D4141048D41410 // INDEX 6437 -uiKeyDASH [TIRET] +uiKeyDASH [Tiret] // HASH_VALUE FE501000FF300C01 // INDEX 6438 -uiJoinLeagueProposal [REJOINDRE LA LIGUE] +uiJoinLeagueProposal [Rejoindre la ligue] // HASH_VALUE 04E31C3D03A36344 // INDEX 6439 -uiPvpPoints [POINTS PVP] +uiPvpPoints [Points PvP] // HASH_VALUE 6B98909065484495 // INDEX 6440 @@ -27107,7 +27107,7 @@ uiPvpTotal [Total] // HASH_VALUE CD01881EC690942C // INDEX 6441 -uiOrganization [FACTION] +uiOrganization [Faction] // HASH_VALUE 9F4850976B09B4A9 // INDEX 6442 @@ -27119,23 +27119,23 @@ uiOrganization_0 [Non défini] // HASH_VALUE 22FAEC96E434B371 // INDEX 6444 -uiPoints [Points:] +uiPoints [Points :] // HASH_VALUE 5BD76F5861C46365 // INDEX 6445 -uiOrganizationStatus [Rang:] +uiOrganizationStatus [Rang :] // HASH_VALUE 67A9E49D2609E451 // INDEX 6446 -uittOrganization [Vous pouvez rejoindre une Faction en passant le rite associé et obtenir des avantages. Chaque Faction demande des renommées spécifiques pour passer le rite, le sage de la Faction pourra vous en dire plus.] +uittOrganization [Vous pouvez rejoindre une faction en passant le rite associé et obtenir des avantages. Chaque faction demande des renommées spécifiques pour passer le rite, le sage de la faction pourra vous en dire plus.] // HASH_VALUE 65C71C3EEC5A0FC8 // INDEX 6447 -uiRpTags [Tags Roleplay] +uiRpTags [Tags roleplay] // HASH_VALUE 011E7DD3846A697E // INDEX 6448 -uittRpTags [Afficher tous les tags Roleplay au-dessus du personnage] +uittRpTags [Afficher tous les tags roleplay au-dessus du personnage] // HASH_VALUE 68DC145070582480 // INDEX 6449 @@ -27147,7 +27147,7 @@ uiWindowNpcName [Nom PNJ] // HASH_VALUE F926A4436B4D184B // INDEX 6451 -uittNpcName [Afficher les noms des PNJs amicaux au-dessus du personnage] +uittNpcName [Afficher les noms des PNJ amicaux au-dessus du personnage] // HASH_VALUE 7F73C093A7248307 // INDEX 6452 @@ -27155,7 +27155,7 @@ uiNpcTitle [Titre PNJ] // HASH_VALUE CE3119F23A3FD1F4 // INDEX 6453 -uittNpcTitle [Afficher les titres des PNJs amicaux au-dessus du personnage] +uittNpcTitle [Afficher les titres des PNJ amicaux au-dessus du personnage] // HASH_VALUE C6C48E46D588B347 // INDEX 6454 @@ -27167,7 +27167,7 @@ uittChooseLMFiberColor [Choisissez une couleur pour le repère 'Fibre'] // HASH_VALUE 9B4A6C691004BB09 // INDEX 6456 -uiSelectShortcutBar2 [Choisir la Barre de Raccourci #2] +uiSelectShortcutBar2 [Choisir la barre de raccourci #2] // HASH_VALUE 5854C7639701383B // INDEX 6457 @@ -27175,19 +27175,19 @@ uiFXAA [Activer FXAA] // HASH_VALUE DC75700D1144549D // INDEX 6458 -uiVREnable [Activer Réalité Virtuelle] +uiVREnable [Activer la réalité virtuelle] // HASH_VALUE EFCBC4603996C0AE // INDEX 6459 -uiVRGeneral [Options de Réalité Virtuelle] +uiVRGeneral [Options de réalité virtuelle] // HASH_VALUE CF42883683C0EC33 // INDEX 6460 -uigcVR [REALITE VIRTUELLE] +uigcVR [Réalité virtuelle] // HASH_VALUE 9C58F47FED081B8E // INDEX 6461 -uigcFxAnisotropicFilter [Filtrage Anisotrope :] +uigcFxAnisotropicFilter [Filtrage anisotrope :] // HASH_VALUE 6498F4386498F438 // INDEX 6462 @@ -27203,7 +27203,7 @@ uittShowClock12h [Si coché, utilise le système horaire sur 12 heures dans le r // HASH_VALUE 68F99C8C69A81273 // INDEX 6465 -uiRadarUseCamera [Le radar suit la rotation de la caméra] +uiRadarUseCamera [Le radar suit la rotation de la caméra.] // HASH_VALUE B83EBD58DE9C068F // INDEX 6466 @@ -27211,19 +27211,19 @@ uittRadarUseCamera [Si coché, utilise la rotation de la caméra pour la vue du // HASH_VALUE 82A1901C06A3F72E // INDEX 6467 -uiTotalPatch [PATCH TOTAL] +uiTotalPatch [Patch total] // HASH_VALUE D091B40C4890BC25 // INDEX 6468 -uiRequiredFiles [FICHIERS REQUIS] +uiRequiredFiles [Fichiers requis] // HASH_VALUE 8C42E02F0C01D422 // INDEX 6469 -uiLodValue [NORMAL] +uiLodValue [Normal] // HASH_VALUE 6878DC2CC23A6CB6 // INDEX 6470 -uiDebugProfileFillRate [Profilage du Fillrate] +uiDebugProfileFillRate [Profilage du taux de remplissage] // HASH_VALUE 0F54678C93B4CBF6 // INDEX 6471 @@ -27238,9 +27238,9 @@ uiNoFiles [Aucun fichier...] // INDEX 6473 uiByte [o] -// HASH_VALUE EBE4B481E866A442 +// HASH_VALUE AA699882DFD7A376 // INDEX 6474 -uiCP_Name_Generator [Générateur de nom] +uiCP_Name_Generator [Générateur de noms] // HASH_VALUE 6498541C641C14C8 // INDEX 6475 diff --git a/code/ryzom/tools/translation/translated/item_words_de.txt b/code/ryzom/tools/translation/translated/item_words_de.txt index fd4512f4d1cbee6bb02f040ae48c8762d7bbf8bb..91a121141df8486266159a6c96c78834281e1652 100644 GIT binary patch delta 260395 zcmdpfdwi2c);~}3Bu$ev4Q=i%Z78LbQfsJyh*$z5A|i&1z_Kg`1mtFkfQX0~5ihHV z!D_~rRSc{b77@e64vW~0tQSPKMnpu!8d*d{#K`)xE-L=MGtZMtQ}DN%mw){1XKiNY z%sFSyIdkUBnVE-s*RB)x|CtKmr}e_zhIjN`)Bj5zw|6Pv6NEty`tUpcJ=M1wVR0lPHuNA{!YdJrZfoKE^KJ-e0i61;BV(_SJ`f4J72pg_}`p%T{*oaofn)FALB=?aCIEn?gnssEAKTA zqG?km9iI|QN#L$Zb%VOfAdDmvHwhiii56^<#luzV&08wU1X5-%b2KQn)ilJqENS?m z(wLi)N5?;0*f6Vdj|8%2Ts3h%DTob2y1Ipt4KH-7yL%gdI6+%^KnY`3% z&W|;lhgAhC$oig&f(GDdIN}MV3LzpkJTm-XqN1i@!HCy*fhbNZYa51)j7m*A{$A5i zKI##vz?hAU+M<)hFumQZc9R=0reLK?Z17*VoWw8bq*lq*4_>(0Hd?I_W^FE=aJeAN zYABs>UBlMvo8(`+z2EU)V;YJly&=_Y?tQ}fUzlrT` zYIi{!vr22>2G+3t7A;qCVZ$!=i(6Tei_NzAW7AlE^wwRerlkuEsiw`1w=GC#s^<1_ zz}3&BDrzWMY-;_J+jV$jXLW;Nkwd24cagIdZ3P6hYS9d|UVFzCiT_FrZ@Hs~-06oq zdL=p~#j)A5cwMz@Qox~jUbaIZ+F8(-s!mhJMJyC-h8ZHnZ;>b!}70bFK>~4k?_TsYxB1sgXvCu zrI48}AUE%7a^KhH;TsKTu9=aK5>_Ev#|p{x+4w`L$APFus*(;taQ8 zSB8nAa`W+BCgGg^rTh0cH0XCX|4jS!4TpB`Iaj;Hd(%I5{?~q#vAMjt@mvTSSo_d- z>R<{FzEhO=FSn4qt6}}OVG)?Z?4R`CB$##S6+i1onIL*ZC(D*y`~8H5(7TNpE|kGc z*pryc3}*g&Bf!F2?_HSquVku&_rj{-J_{Qbv0rI(3!OIa*n6OxWMC*g_O!5v7s!qe zlwRr=gub#VqLIF)5EN;}W~ERd6*)9HCJKk7&T9@Ry=0$CIM~Wqp*+&07IvjuD+WPU zY6KfunuoZGYcyyTa)HNaL#s2h*MBA8UC`q-Hq+4Q8yW7);1H){} zxK9|)3+|tcLPz>tzMv6E;4$I<+PZ-j)TINO5@&J)|$7M>@zpE3)b=t`5IJ|9A% zzno=hx5YnC#7InTY6qt2JZ7=7*BO#e%dJv6dIzx|Gze7j(mLCc|lHre9C!a zy1eswVVZD>++T4Xkst4JUXarZyPh9$18*nVSS1WNAG#E}!&BR;g+u4Thj84E3(g+@pm$y- zl(N51)d|1DUxNBEEU&UB?YBtWN0lO7(qHJ?I^{uLT`Jr_4i6R%x6Y`M)suvYjZ~XeRK%+y(}}B$m)@e3xFklwQ%HYSWXWWq=ZcpoFS)&t`SPknfQCpEd1o#0-=iu>PnB@8^yx9e znp!!s0-wB0kdu27*GnD}n$voRx~fDvez_oL`y`k}4+{rU zFmyryyMpvAie#bnD};S%X%wz}I`k2tfX#&KR|?lK%g5jAh~f!hr~I2D$F4{=ELg>- z1OuX>r-YRm6QTVp!u4drb3$hJPpV&wfwZ!CUhVly=KSE*L)Qr{854om4|`r{o&O`O znpUqDwCA1(yk|TFBOdUA@Y=bphOy7m*`#2D5dL|vT^od5|MhI(^qu>aYP#k{!7cpP z{XPu~Fa10lt2PSABa)9d3P>a-{xCB|CUJJV`TR&p&Loz~rup*-AxI+)ZW2bxlVM2= zCj0GXVNb@S!H_1B*dGLu?%e_(#B=MU;1yv4IsK9_8l;9d3KymRFqRs^Z>UL2BcOR= zkr=5^F7uS?PRCJUy_5x)&>0R3QXZTa>B+-Fm7G81)Z$l(BCR~ak`C-hM*`~oxloZR zd&#t;!trFYmrVFVh_{*^TtB0a$%ZK9#3j4x^(8O~gUQW>W!9Ye5NUloXTvvl6_R^L zR~X5?YSEZ?Au@^ckW<8oT{|av=VVuVp0nLt6lNi*I2Y-}yN?T95;&B=LAqbv#hUMw zla6!ocVW9*$X#mD{Qt#8-uX)Si7Y)Kl#mlAglZ)+n`HHes?tlq7Eg9g#^1w8gw}() zloFl7SZ;SE__-1PuV)+qf*mxnQZBjRYvEE-ak0Wk_I{0&>e+rR`&uXCM*bCES&xbUpos)j@wJ=8bbpob6 zzY!+3Qr7HiyL9}OxZXS|%uL`)7!T>*Q(^v<_@;a-e2F6(GW-Xj1KBjH(nMDMAZU`m zY{_5hh6vWAHDfCaNXgQ!PGanVd8++U(CG5!K66{X5t zn0u=q4MWu?sj;&#n@+4%JfS9okEYUywsD_i(S=Z=)WtS zQgbH~sZ)4`8%f80ii@N_Rub!{uqA#Q-HKvj+@v&;$o`HZDetE+rMFYGtF^*hVjZHm z7=NxE0yJ}paJ8am!`6Bn`LmktswwQupQ833A_-qEsC7;byz}*5Rqc@p;N9Q84?^?w`=(4*< zVJ8lc!bSofg_?RiiWv&?S&5Qwx^*rr`v2hVK*f=Y;%qP!(P`Hyj%0(O1ATm~;hO!BY(?S-KETWUWirVaWXql9)9F9%Nb`;gq6zj4XMF;Afsi@2bLlF(! zq}Y`mhBZD#_}62&yK@Kn#9YO^UylJZmX4jT*q$AR@wa7b57QPY9>|V|K6fg%WQU>G z62-XeFzjEdSeqS&o%bmUvcpjJK(-hbEmQ2xj)%t|R;TfmRMccQicL=`dMmS9FKYjsEe~s-$!2CTFE?~;w%VNayy8%H>t^r;g+Du8 zObBO-p<=UQVRqU)+NdyQhrzu~5y?&tgI`gUXUD^qh+z z@i0fD9F`phjZS$YI}CLOWtOr1xc17Gzn%xS;?$XxEx#TEv&qR;WtR5vs6)9SJ02eB zpv-cAvCgSnoE;CoPRiZC9s^(fE0jI5!ytCe1_RTkznk*A?0DEwlkMEx-(4B~^*r1G zt3KI7c{&>mMYKonY~;WsIqy>C^6YpRQm4!^Ke^MLt*5QITsb1UQS7`zIVn2~a|UP2 zgZ}DlXZN0KlxMOVg>ASp%b0fRNM)9LoDrk5#ZdP<<>74P(1FexuN;(J9CiA7<*96V zD5AY@$X1(+rz&@5$HVgJ%2nCPVctzjM|K$Y`IN`98--?`a{jO9fvtKwZ_ReSXjz!8 ze^_vba#eP6nBZ4tnZfYit;}+dbMhYLsO(0u{C?#l*>xcG_J@t z2wK#j%rf!6?=fYi7ALPiJ*B(^e_jqLdn(zZ@tZ@+tE4ikM(JX9cy1#DS1ShzGs%Oi zl^5a9-&QN}R-AmZT6wut;%~-9sj54FKTgAIl!JA`t)%+~Wl^g?7f2;L@%2!s@%zpV z%3E+i-u^|vwffUAOkE(=$gnrk+h0_g6~YX%VxzK~{3mAyzg}`9S-mRXPNr>A>iG#f zT03r1c4^g0(b}lPxJsLp>_PmPCZ&A20JlP#lz1u6s**Ph*aLdv{F@RF=E>^6DZ3}{ z6bye^nYwLo*UQS(ZG%snl--hGXz9vjL5v=qNFxztulCXt;}Hw1O!U;dO5E$?Z)|z_ z^d4n-uC>*>cO08vgCp~K?WU8T>}932Yf z+-2m**L|X_Nk=|vVO0U$A5#uUXM7{$TtaCcE>ag-TmJv>!G|S3cPIvzbBf&tWSq!FKWqw zlQ1yZ2$Iaws(&f(7bI$2)tkOmPL<1RR|p2`IHjDSAvG^y>T#o4dPaF%NR?mmiI2!d z-d&*(H>8)tN^zl7Ze=;RPFmC+cZxa|i+9tV7E#Uada?o;VH5Wy8rIuIW3s_rB*t)K z6hIf{N*DJwImKyYTW4{vRNRpxP9-NR#NBDF<&|PAuhq08H(%SO1L3gjxi^{BwN?M8 ztHgm2(ic@?htwZ_jd1-fnjCh&1@{`cIHz_K6W^Ff(Wj@niF4#@iJXS}1x(%O1!4;> zGDXXD*A2#BZhhhl~Ur+EW}NH}mojy~Jv{%p^&d_ZH!R_;p6kdSE8*{8si673rM< zmx_S`riNkSlUy~!ptAuU5fAhU>h7lD;bM8RVeClp+eAZjlo*s1x1>&-+ThReX__LVES)9 zLkv?yi+mTfH~*P>WllI3(JA7}G%iTaz9XN&XF%f6e%-l_65YM3hy zN|mS5t@A`jdb!tpaTs(*K3y)}L$!aD^u!8e%L80b{5Si$39VfQE@e=1=ppe8RF2kv z$qKAp1e5LaKVnQ00WbPj!rHh*c=5oW#8YQe9dGRQqr?;;Ybu-_+-BGsyrILrE=in$fQ?+cj&%y(v|)dOG0G%#oNc0(|MYf_|+Dd~QP54<%U`bhz+ygYewc-y_aloD8 z47&F(;sm*wgFpVfh-H@R7Udaqzza#;l@XNV8(u` zYj(ht5mnY{b3Y|{D~YjS!GgT1?ArnVaugdO!K)M?=-V2xm^B)ft|9b zPD<+F%>!+!p|W~-`M6yLm(SJ3*$8ZhP8Sv>ad04Y2UTLZfUc@Z z^jo(ov5=0aRe9;?0g$__rE=AT=eAz1I_pCE2pStaOVz}2h3ZHOKKK!QrFW2OFeLlV zAQk(VmHdax**8L^B_&s?*z(#RAB!RGD>10_nZxkX<||c+b(EFKYgeh#)=>_kzgm@; zv5apL9;%uEMETdK*p!w3q-dTP3dy8s;$fClk#ZGlx?uG84pSu-Moz`yQ6a35RL2;@ zXTK5)DQ_P(vNimnQ5bm|{Jo=9iG`F8giYthu_{YPNn&em0O#{=OH2zCCy{jvRdQUy zTjRH@&gwIHW1l-zhte=DT&x-*t!O8fsx;)xVwJoaW)%5GqWVsiNdg{rr%KvQkkmrR z(9^?rssgetaB_R@QZ=Wh7za7CBss-6$kL@Mwg!H>RMj)}hpS=MJ*o<(fjd=pvi=^f zjWppia)a+xCHy7F_3eEsISS>Z2K`YrT9z#@pMD@IdtMGKQ(>#gb;Y~;r{MjRYq{#X zR2{wdVbwHwF}$7NL6}JESE~{W;T=TrXFj2@>fKJKKCNPb3`Jo!`zt)BdRLw}Yt}$* zu8m1Ot$~To+mzHIEAr@l-DcI%vw1`GpFmD*NjOrD&d~^a#zbgT;k$5&Klm_QXR@o2 zO&7Q%Gx5KIJ${^*(|i&~7eB$A3RNvhD2&k<`&U)kO2^>nx^2mM!}|^0uHs8wqsmNv z*skKsSlVxJa8-(UC1WkQb>RJDF$l4uNtM_j@XFnPQ^_kGr&;l8(joG4^NyrLD7+-w@&{XWpWPJ4+;2H2iYsOjSV@@zWc)#lCowwqh#vD9Q;%~k1%h|3! z-fOT=D6$tF(r2oiC`%uyVoyWrc|K$e5>xzRkmw=3e@cAFYOwqoM0)d4k9Siy;eXP* z5QdM@x)FUQv6mx5<(DV?Q3xj@J^x}U7xv_eJvL#_OV}$mDI3PRPT?e4GYJCp!Vgv5 zh2PYW$n^(QFOpRst7=I6Bh?5J_(-+=w>7}4532r1mh7)6CXtU+F6o!?psJP))ks|K z3X$BqzrxnKweN3A2DDSlZ_aK+bI$p9U%)wUKc@0aw%l~=x8|3x_%h*_ z5mbl-1FTNBhi}l36R%0X0 zU2}1!{G0|m@bG|Q6Y)NyvC-&S4e|q?jhZUbyjD|y4`dXT5aV`DEj_kQGf5!6H5wBM zzpQbP=<^y2aqm-?lkjSdk+@&fxQTJ5wS+of&|v4tQ6>R{`_)bonqFKG+^DH0@%2Cw zJDy`Au5Fq=B>J_vl05pN=9EO&8%C@5YOOIzyccl~)K!tt3W-h)F%H%_Nn9)uN#jP% zi4;>bx=AA{Bs8Hdni3LvOIt}oFKa4@bF0Qh!rvn;l0Z{Uj2$gCw75}&tzmLp!Iv=f z_$JK=61rMfOMHup3y6E0W;AgJx~R#tt(tFBL*uZqwVENsc*PDS!Ynmi96le|!#Q%<_jCgxsAl~s-4E?nPGQ%Yr2Zd0_udsx2h?mZqGB-q#=@!D!RyKFwMsX*mFD zfdiTu0tp?&ph6!*1ilyT}z{*B4;oq`Xps{~z7DGp3F4+HG)0?P z(;A$#v5pkYJA~l37yy3tA;$e`BdHnG!N7``^-%~QtjXmBD~WTA+SGVPGq^3#?W{@&KeS0*#SZ+&n+XEj5ZSQpX(rQ0wxo6 zRm3$CPWE(JZoD-$OupTwDhfjDpn91ve9(hU%LLXwB=%j06vCk-HqIo{;x4%sp6W|q`rx`8@bw_PefYs#_;BwO z$fD_?TpMwF)o_nb=JqDe>(wUWem=LDqM#cFj5 zj%%12%1Je}bkdrFe>aIlk)w?f??|nhL<_WzMvWF4Hok!329p+!{I=4*jauzEEHRe= zr?;aP*_hi(D@e$w#Vpyct{`!vw&XdZUW;)humr2M@b^}2k6;y4nXD$hJ4?$*SgSzL zk*AHO$N;_%372SX)RnJwrO`q|83if$jRck+YzeQT{sOH(#b^)W?C-1~euEYt+360> z*a#>_P@aa2#?9JoDMZk>U0X@P<|8RY4vI?5%G7A1y|wU}McP^ty9j;v&142Ag|+Zjd;qDSM0-dY`KnSN^*-vTpq^6gtQ1Wb zs|2)BTTRi~rC@4v5}yhI5K|>x*-7h`$FZTOwm7KKx=E}YM5EuU9XJTlme5dVEzY#K z9^>7?G1DW~Vl7NE7b;0M1mA}S16{QH*oZNMW!0K!q*6OIorbK@Vn(Q#`0s!K7;Q%5=yEW1_JOv^dS>lHq-!4@6d0U;$F7qrDbGXEwxJ1NWBJ zkP$8jIf1m7q-A$^Sc`EPtOY}>l86xCauer8+FsJ~05yRlmv#^_-m1gx$Q}t@0d)@& zvqH4qp3JNgxQm%J4503dwLXp!{&yo&8TclU1w3(Y7z@UOe@24ySa&H9`9HK&5_cc% zP+mt-2kT9tgiTZh^TBAeuZ*^gqHa0YsG8U=XO^*!&2~2^#DCNw&bqD?SNJa1T8OW| z_6LTR``Stx9-v*0<#BkamNlD#59iill|nbKpsyv)ArP|fRjAfK$%qrNE7`LvLG+eS5X2_Tqra)%IFj#lV`HnBOkecCWX3m#{$HN*uJK;{W zL$xO*7E=z`e@l3QAFR?_MxF`wFoFV z;iSvu%rk^NB*O62)g%_fMaP}PfshM`d11t^+TJ9VudfaMPU{TT!)eC;7s2K_pH@q@ zkJKJaqb+&q8KtnfQLsznb=nCsS+vwi6a$42D;p|96@1<-l1XDEBf|FQ&$$B$A1L?L zp7&wGP$qUdztfu11WV!6;c@tY0{da0kt?8a-Y47-G7SwvpXhk){a!Z3)gR$()c-dvRv2z~o>#RtZX4crp(U)%7UI&v0#T1c zYS^!u_}`Pz^r4X*+WK_du!}kpXaacXH7%|;Br!@B!coEm5Nb9dY7R3BSggxQ^BdaT zX}G!3gm=KZg&t+0l~r9pT|2dG#pWvn8%D}tT(7k<7z~mx$JNB!*@_F8yP)J0AG{m4 z8qN$`wrTur?V$9brA!ColY;?QH>-sWyri*Ni`XN@hh#cToXm6xBq`aBdpk5<9Mv94 zBhJhQ)7e7euVVzTn%)Frg$Cbc&Nd}mZbY1RfEgx+F5!%K!2WdidkI&>)yYkXi-4I0 zg(=~9JT+bz&_Ib?Dk|V|=TU(%(p62K_&~cqMV!LU6k~~^m#&0_FVR8U<4YjV0XhSX zxpZ|f&e6JpU=JOf;KjPWbXBcx1h##DGGY0z)ae_0=r$olAI?D#m$RtL*HdSs&R#mW zZq}FhF4AGYx5hMpIBU^j?5(>u4MVaSo_!;X#NS0{Al|+@7<;3smU{Z=2FrNd{d5ST zhdZzn2Og}S*z*`~!UE>$jbFaMm=Fy2)tyW+M_3OUy-c@WVv(1L_b6Nq<59xkAFjjR zv9HceJhxaxy2!2D*O`PZPV7cz>Wo|(G%!^MPw31?a9-m!;ilkBU2hWj&;s{&nMqGP z_2Aa^vZ+RD<;BQeQzbbxO?Q-p7efZ623L_*MoQ7 zG5ndu!pX3rn*_eWC!uG}(G3_#mcI`Z@I9;3kl4%kPt!}#?CU06|9=Mcp_g@9GF9&| zlKN-y3lLgjqq^h7bDa~dTOlv!%Q`H5Z|YnO82g~LPz~UENE^`DR$X(j!D*0?bJ+M! zrq!1L<{ab1-m_UE4Rg!KO^tiE>2?Ggof_iY2>L*TUyMRvmkzP(%esM>M(MQS61Ow^ zVYwgoR%BlSudt#CR$}aF!pDtY(VcF^fZV|!F;xV&F~oqU@g|*7XiGMQybR$s#tsII zyhqTDOjLZAPD=w3omOZ?0XLuiuB!^Zh4}?|C}0Onk45Xj&5{gx)pu>li4+}2DS|m> zStF}n*Wtm6+g?oEO#Hq#@t@{Jc3B&t-6%TW(8ZGy!9Dw3x^fC__$8Kj5d!z64UX4A zoS3Z%NouHJw=N)c!7rR9^NG0=)V;fP#RTF(fVLYtc6RFokK3$kN^#FSMD`%r=24d# z6N14CzZ(fR@AH^K@pp6wxP(C3K#Y6r*fp^Hg`W{{zQz9YWCu&|GOdG4$oU>-jdxXh zHQDs8Zg+}MTJJwQv5kC(*+!yw<9oWLxg>T_hsgGz4jwZ88LV!@CqNbc6pZ^n)*<+2 zb@d-(D*CTNB4$sEE=mI5>x{^`=o;lN&7WdQg+A3i4i|zZ68%(%jUG#M1dc%z#y>l& zk_}Z-s>OK#%TVQEOnqmIM4%w}s0pD1b6xQx=;eF_o^AVQY~FH^x}!kK=Qf&qQ2*yT ztWTUf-U9OQP7FpG#SsXX?+=VSKxyk2x_uH0?xSc(@Yaj?{^cwt8yIk4T#1R!|58_h zmm&u-kM{il6XbE^svmV&4}a7lDvtaF3+2HA&$C4G_0CkpK)hP1h!MPC6CX3^TS&aU zzC?;Dt!U$sL!ci#cz_iVYhcf}7@_4sLBEIiGSq@V5`=A_x4r6Ioh28aQzD zd)QJ?sXr)j!czd83IAj)DtroaCQvNn$qh12rN^hh!G#=;GP>Lj#VChXxD}4^=}Q zHQ1$?^v7jsu>g~g0qeYtz=Dct*sON=VG1huiOr;4S3TS5mYh@#B1?0BOq$t#JNw3(}dqOT8Wm{o=GP1=QO~ z|1|Pdf6(K}N@qO+#id3qiQK3!50*-BH8k8=e>xW~6d-SO(Id5Xp&s$i!$vKQU#Lfd z*7Fit&h*mvBB8lPEWCO{88ME?6G`9#@agKVACv~-ufb-+_i~<-s4vo=BHq>jCed%M)#odONd$kd zA|Z1gGS|cP9%(=auVhj4wHQ#O7e)}R)%SR=dL*uIPa-Qu>HD*shLOZ8E3xb@0%Xl7 zj5RV+k6mC#y-1Ib(&Ha6eCyR#kFm~)#Wf?`rV&v|K*+~+NA=+Rd@IzYSzF6Ofs>kWa>zIgegjSC^ z4y#Go2671~()bj8fC~$mLf8Q}9SVy;q{D4s@Qj3+K>fDh^{|N8OnnXU{i(2kq7k!% zTg2i|u$^;v>8c@t8^OM>Twg57oEu1VCa@Ss7nG0;I1IBdan8lGD!57iZIV~XG7(7W z_sg~z_JML_5zOAZK#wBTR9_yJIZ`Ek>?2x^kg@s}QW#tI4hfP(E*9s-aNL z4sJCfwwQ?I7hotc1)EV!8@^Q?jkIa8-Y|lAF3p3q-(@X(Ak?OV_~muw!CmjuSCOXY z@E_NQ*lk2VY_BCv@9MWRalyZQpx09L*duf3{zwm}3k)>8SHBap^#gR|7=0r_AP|Ak zo;d*BgpV5>#5d7kVnh*Y?a6bK^&jYW!4tP)#C@01Lm%po zlF%iIZmuJ2Zv9>FpdhqV2;OKwJo_;-2gVi#HVwO#$$5yEKbA&|?D3#HIGTfC)j86D zL{f_$!FD7D5%WHtn4TSYbc4jU9g-0dKAu%m6CK%j=+;AeY(YbZ6CJ_)Zph$S=p{A< zkc=V)f5SQvXCZSTN1?z-`#cRtC9u2Y`|2KgkCNGKA|fPhJUWH04Ez=RWA0b)p!{A|d$CeC+jVjOmCZZV#cq z_x?OB$2QE6hrEI{uK=6nA$Y%9|1V6G1Zj-oLxY3E89Fgj`AeRjqS1+sizCVTwFW0~ zozhGA0`1|)JrBcS0j@T965hgA1i4|PYI1Nrkobxd<8odBS%!)*fDL-oL4TGc$bK$} zT^)c;QZti5_$SP=xD!L%&>?ReX3u>RWQO_kMI{|5|glwhYST0lm3pd7`HvInyl=UcaRArgBKVh z6HP0I;Q5$3AXdbpU|H#9>-uVuM#mWR_WDdAXeJmeSa36Tqeh5R{ z5S02Mxv&DVd*GeCy^=d#yDA-_gn%!i-YDQg|6qzcfL{qX1jJ85V&mS;+lfOnII<)& zQs2}JtlyL8lgGULiL(-sm(tjKX_RnA@iE4b=mByA@~X(*y?FUS`*9LT`5@%_rNuIm?r)X1{@qP z{~XsEoOD610Vz4|j8o0b8B;Xh&;788q+0lZnMbBEy#cWr_q?g*l-?r-!=v2uX7rY| z?fjaBBYHyxPRa~Mvf*n;0%+X9&-7Jfa(lxG**||H)pNFSO0_fJAhCV0z%ZVBYOL*+ z#Ha#r*TiYT^wtc_w@F?TtyR*h6U~JaH<%6EQrPxN&@eVT#3ctCf=#})g`wFLslJlF;m|qb!90VSLLzgx zFPDf@XbdqOUuMI7^7X_}fu$-?YC!bI1HDK`19G8#FzgAJ!em074AmrZ37kFmPG|)- zZoGj3a&Lm(QoKb~k5u6R!O_ z(2#g}TkcK5lG|Xj7dbA_PZajEqPUpFFMoZb*s^F99(W6S|VF?{Cn+zAiV^5w3pk0K+JX z;#96`q{*)^^rq1A<4nOC;<*w7Rk&N@vtRD}<2w$B>9ohD4 z(S<3I`mZw7vsu~(E}=UMS@wIh)?Ja(odipP)647?gKLFeO%XR9;o89k^YQukeg~*i z3}y7KN%xBU)lO(R{4TtVuaf~OMIHk;!>)!kv$`wTj690XRkRrix8&0wWCnEg8Q9?+dRgk?MOHEa#N5JxRR|4DBdjs2_3S z;Fb5qo)VcTA%7X4iRbKB@|;_lufQBUCj@w5n`qZdGFLRN%721SJq__akNJ0w(ZFD7 zVjzf=YY4_rN8)$px#?j|K70%h_&wXOg*gWX8(Htq??o}3rCx3$H8+8rZytE{{R4yb z9fZk;=OBB^ad$ofDdu+xYbI#ssX#dXd-5&8`>?ZL zv>b7B042#6r@={MX4%E)BFH>?H|%9_XJZw0p`RQlx56qfsL{m<=%Yo@ACHrL59H%S zaHt-BH-z0@!5{On31f+2P_{{Iao-+Tl8;FCf&2AN$!<4uf^(tqGO#90rz0pdp$@I9e&! z@epRJcR3<^Zxz^lAdvrTS}e@iO47hmyCQ!E4ym7SMV;^2oy+qJf&nmuF(uL&472C+ z{0h3EA%9;TpRS?Jpy7NEaFZu1FrkyP+Vv4a-PoRdo9yaSfU7=$D!GCCM_~FhK;-fA zajZMiP)-;e4eVud#FWNNVz_yia6Ll%6trsuHu;`?`L%G5`}3U?Fl%L3pFt}XH%F_X z;1mkJ{f~Z_k5e{GY8;V#1mV;lf!}t1#3m7AiY)}R>7#sP$y!Zxkv#eV+W=vrQ}@UD zL(_aaZ%EDH(8mxUbLPP>FrST|=i{vaO9(vrN&dm)PCinwbud@BuU8?~rD>Y=;MTL7L*PiN|@cuXnZH-`PU7>^2&ytAa&gUyRYNF^_xKj!sQV3cZRGT4y z4K*FstB@rp*iw<|$8!e=G}?6W_bz3#HkCbG^$8amIfoV-22wMh6sD$xJ&(72s@Y zU?DO;yqT@$?rH5s>K<4)SRkC8{W=rH4V>QTC|&bR z*j2I%KW;6K^y4$YO5_M`Mx>|$L_U=teY5EVqt}<;)#daES`i19vU>_L98SRInqo;7 zki;RN0T$rpj^T1bg0~V9`PfoL3vMxC|KPe6&0Gfl5jn8``6k?ez7>awl57K0?RYtK zD{lEjZ#7{hc-Ri-w*c~XZp82s4JHyFiQ{+2ZKmD9iMU(h_2%FRFWJk#39RyBWTB&y zOz`HUaLQe`FEni<{%7qt7kHo$mueQ7kSdrDvd(95nZq~<_&m2m!zmEp!)2gFrp7cz zQ{DLelK4oBC^jFG9r8E)OR9;nUFdKH>e>E9`ixb8W+lpVtJDD-G zYK%?CJ*!i9LKT6#AXwu98`KlEA<29gN&XIZD8YkE+QebgdW{Q)*a+n-{uIAgFYoMOxCS+N4 zh-n_;!~G?2UZ3Q`8LWV)xHde^KoM^+O_flvel+ly3A=M(>?2<|XY4RzrKmdze^QFO zB@2sifhYEaNka^SYz4tjN-@EW7<|+puUF8dERs=*$Lso&AL7mY|l_IFM;@MOF}+y6?zhQ zF(IIukvV#bqL}V90L|ruEngT6Zs-9w8yCSKpN4>D(Eu(=Mf`YHvUsDZIpsMLUCU@- zlj#vWh)ehdik9OUM6mH?cgZ-BmJdyp!CZD>h`B9BgT@<8#fs!a#)?H@NAcGn1x$0q zaIc^kp2{xW9l%VBZ^ey1R!2jBHDM!-$q7j{nJhHA&9pr=)nHzzB=PBxzxRIFU7{mG zm-}oMHs@h{Kt_SAM8ZSSWfz!_V5)-)HC_a;8=UXUWbuV&)94HexNpAIW}?0wCNIVi zavEvNYo<8}C)fqWV=p+hbix~$hq%FJq%}KDk4nbud>eWS@4~<~SaAJ4v(!fk%fiKE+tD8??t z)m_ha#2m%%nQ-HaU6^BCsd2AqJp}c=jEbO)Q*VCL`+e4LVo48D^ChqX8YgY+l51!m zTNV=-NPIu)yq}l`O80!-`?-5fBIM2dE}QQ|Xw^LfUWL!c6xR4oEL8lm-LwNHWdGP@ zJH{Ld-^gx48cN)FfeCG6qSfLH1-P7vRu`7_Bw)OSEd_W5Mge#)w4LG(Efm}#!IK&! z2T$=7{-*`uJG*4Z2kCqP&cnOAi%8?2GU4zC)6gICTK{BfVD~nmT?4840zC42o4l15 zC#=UMG5-9Z`Y^_lR5-dqGr-9Q>|j_y}_mUogI2FGV`=a~AKU3@6nkbkyW%{KB-h1FoSKljUPfMqCHRNt)UW zNrp9MevzsoxEc}!6^ z9FwtbxJ|1r#aqe#W~?4zqgjTD-+*|~t+8Ptl3_5-xP#M3_<27p=6h`>()V&RZXu2Z zZ%qssyx}w>sRV8TMgg-EsO~qA2_wzekd83pa>+>ZKxwuT=XId$9);nu6`4jyndhhG zES4MA!k(bf&}j4Il<0XMk(P`#pAmyw>|p-)5QK3M+)m(WI|8gffFIv@)N%K)@DFCV z2kvoWlh6{q0WGd(6YkPS5&L=nfTH_J=E7dGSEd!EC&4b3}f+3F=Ihte#<-AJWWV&Q7&C!HEst;D|C2Bh!@2qp3%Ut8$Z^m>87dX zbpns4woe1|JWTd|Zqd`wG;=l9*Dr9H&3Kc!qH%^9VGQ4lxMsmdLoeXHXzZ8;a{;Zy zGra^c_H45$I2QMHjVIy!7R)m5X7&Kfy9ph5co;h_b?CtxC>pSGa2o!4*d)J!&M$X* zW}7F;u6_A8n6k?pbWqs_kk!i-fkH-j4f?y5_!vlYYA*O=6%b8XTfh-kfK|I z~Gn2D|iTk4;=s%eq-A85bQquF`m^Kmz$C5_}J2ixDQzHa;%FJ z`$Yx^8-pSrW(y*N<1b}*zb9egdp0z%42kog1)mxC3}(W+v3VZ+*wUK@umQu0p3W55 zi&;`DXmA;jqehNFYrZN2z2hmGCTAS+P5;vl?lAe=F3FPbJ`-crjp%ms_z1y4ngaKhRo0otIk?^x#_r zG72=qmE~en9lEm!lZzF@3#_>7)ES=<;8b{>?{+KX{5*S|b%k|A-qrl8d{gmdzB%n? z5@E5ai1>S14gY0*$7POgzXbl>>86g-P4xI6>!=JO{ilOCM3hN<^;?z>I23MEzv7^- z+b@CV#63kC?286l$7c|~Ymuol@$_#)1ofRHMHz-#H5r}2K`9B?ir`l-Y18<#JvlEv z_K2x=h}D~kcDnhp;N@*t=|02Uj|4Q}KXhpuYQt|b_auRd&H z3&E9U?7^Nwjkbp-@EJUi2w#r}19e`jk$WW10r1Ug43n&DGfao;!9Brh{4eXdR(=6I7iZ*U%z^j~ z*3lV6xV{qHWwdeCB?pty$kq63Ix=>G0i#HlOtEg0w+#5kQn4hb=V0>gRYlOlbSt*( zH(D!@V|k_s!P#`lEmsF`wK}M4x^)!33GqUr!F3Ry1&Pjs8;(}9Z?Qb2!8c0QNNDgr zVm-dfvJ;u{IWw)%;O0ap7SjZ0SqG$Qj5k?N%H(`(ePBU$Y>u^r#B1=C7XBW`7b-H) zaJ^NZAkP31Y2(TFRb1KVe+1nN|yp-D1T`%f%B~02Dkp;QWSj z9JPe8O1!sYD~xwWYVzH!*25BN4lM177-|&p(1FQP0=~`K!dc~D+`_{Pt-Y!HcI$5Z z3l3Fkob*0{Fs*4dW&z*gc{f2~z-;>!CJFaZK<`%@4$ewC5%z36}ZS?g=5P86L&S|07rdICKrY=pk~{s{~i zXlRoa8w1Y3i7iZf>?>Q0I06|m={u+Vq68{bA@X=j~HLqZ1ZUis9-{uiOY!B!G{9Ur9FX|P2J-wg9!Oz^?U;FfQQ z8C2R{m=~i4uv~An;YG5%4TgEQw^hn}Gi-hta%{NS4iVp1GO?X9UP7}v=R`BULsDRi znfNfgFR0PC0@-qIp79FSw;IfjzY@&Wcd?x&@ri16uq%cW?uOCwF*P;g!GWiXO-rMd zHtgPf7uhty=P=!(UBNALB_#X=5Hk?GM7NpvOH=1*lgOcx)x>xjU$lR%%7#PYD?rq_ zMZ%#E-fXKQ&I=@F%7Z^3yTaQNJw@0E9MPY(YO<^va%kOKQXMpo;|ZAqzUAdFdy(Z$ z)KP4Hjk!{u!{f5)srzEv2pqLvf!u|+w+*RCmX`=!%0$@v_;94 zwxKd~6O&2oDkMQUBgXHL5%LZJU-)1HlD~bSlh6>5=Ml(&t86mbHc=q8p~nr)jTH%I2!a7}ay zzLe*ki!a5wCSVrg7p?>Kg-Ptc*|sl5fCAVhWJD*3sX7GzV9MO$oTHjYRI$0XvqWHL z!y;`eJ}DJR)h)KnfU5nSrVcohZbO;}Q^yvyp~2&**n@5A&jrtkhb}=zaQl4Qq>N#& zz>bFarkXMb!gnVd{@8{H-_77uuQCJAIpML9LFiF}Q^o~th_|0VA}z8^78G?_9u-nhav{FlH3Pgi8@F%g4z+6E&7!ah(s zWSPy`xXd;S?hO?1&Kz^c(_q5^$mP}=0T=sr68nfn9yh>C0vHbs zBP#&SGkoEDC1~W0;Z?{`mQ9HaV1dI7_#DF{wo?)j*F%8Ary?yA-((mxdh& z!^jvpEY7!JEeT(TPhjdFwarpW{e1sp>xGk3+bV>uNhVPF8uu8M;Gb+2h`4a9_9xpi zc|2$>pzbGaiuM`8W0RRgpSEdR?VQhEE6wn~+O+=_4nD`cFWNFQCwy+Zp3R`hXR1fE zX5yA+wz5tAx!^ff{{-v|_J?ibG8o-h>gbQOQyXNc?-zXAmg(pwp6M|B7l5x`Zn}&( zwYa6I-E7ND*>I!wZ)qbtZq(spFeTp_wt{P{VkXnfynj_sZsJnn=lC&(?SeJ3uWy8^&{W;=FJlF#oT%bvm;6b;!W*I%1mWrJap9W=1ix z3llIt4p|sxm&EY4%^3U$vp@X0?HH`ZLN~l&i((ybr94u%6UPep>>FN1?ZosB?1t08 zq%LRu5jQ@FJ5{sRfsX$z+X0THewS^lywsQcokg)bu}u1MNq}#p+hk94y4$TAKA#!dWXh#ImjFh$0jXN}kfjAQ9M?CH;>;o>AoLkEx9Ers5 zu;Xfl+g?JvtayA8kVWwk82K2;^E5j|KqYB*;}{@xhXjL7vLB@R)*v*S-4a?142X>j z$d<+SJ<_Q_YymrmX9!o_X9*%<4!aU_Y5* z74U4x+pe?g|I2#r^L_!mYrRUX!OA8Ui3hbhNPyK3_w5W$zHfa7gGG9QB4(j_SsBcCCW6Jb_{$3~D^@ij!ZQ7Cw&;Jx$X) z3>4Im+W`>{gJYLJ!OQXcj_w!ireGMywfwuD%os>yqa9lz_KE4xUvb>KXoGzZpIu-I zdBhj(Qc}nBqTG??bf83>d2g`yCMW&@_tZOV-`}c>mby0DhsZ-e@HW_Tzs;N%yWrse zz>bdH02glXyOF8&jx4m~}XM)Zx z>KDFZRK_$U$oV_1UNO$`zmSb~4= z@_qZ9ybR0X{>4{lF8D9&xqtZu@Z7(IKfo#y|7V*S##~GAGkYd&?pe<4%t4yRY(86n z^-KFmPHqvq1@M`Da>htkFU7H0cosfz?6GL+cU`qBs8%EUkBjGRXmJHr8wGnHzW&2$4e9H3(3!g(4iS3v@b34VIh4D*! zSzAhoy!dy1zigv0?tY@}9hr`oBRf|o&I@xtWW;g%)C_VsyXi_I#pbHB)w@pEt263x z_;U#f2#)_2o}B{mPnT{u(MAOP%qiA_yS>h~=Eo0};%!C1PoJD^>(2$xkD&rrhd2?u zu7FKQ8R^Imh{^)fiolIA2T3?ciV-mp;~57W)h0Nqr3DxTN9#5_s%WIpfjASq;v&`K zh%@;|{Q1EI!xfxeRLQ+v0#hA{-i7DzehZV9XPN_#OR8|A1TiMIrbBU)*jdi*+FQ`D z+=_;6L(#xN0yakhZMHc?^t;q-q%pf=Kk~3;XvfbUM6bqoLhFmbD>@=;=WsZKQ&Adv z8M}1kaNx6f#SR44(GpPMH$|K_kcyQ60j`VS(guo@6(s^BTv+2lm%| z6!_VfM8{*4u?rkap_OU43gaBX#&R{T=kRQ`aWrHS9S)X55C<_9cU9BqP=^LOot}V> zjKHwM*FazVl*Q>q(R(cf8opYRi%31g9D_JjWdDDMN=_x&kDsf=yF+ZCgp-0{4hwa9 zSPy@HplMoq!(|89~$(zhLCOa~4~5^{sNO@lT9v(STY<|4Cj7RWyu3y$&J0IkpY zZ^FSL7XvW6NNg02UAb{{l>jwv$P^VzK}2jM7y=EcN{S?+I|@WPb+%)le1OXzz!-fF zB#h+;FeVzfnaPpgz4Fe5r9@^k)37^48k^%-iQT9C>;;$m=0a)7W}LV>%4lSsW2$t8 z47joJd&p4|ywy>`j#nt7CSztVXoz>AqX&&GaQIS4^%Rw{0)86foMXm$z(dU6;o2BZ zB?I7-pY8fqVN@vM?i%}CD(;Tqb6D(!LFi!z4v*x^XxKTj9(b37lir6hIa@WLMLvLlyC_!iOTu z9>e@k662`&SMPBz4I9~@qgwioduR=(gHM?6RN)_-2|5&=?X9*$_*X(_x4WU;H1>~- zl2@N7vg3JzLz5-UitUc>=ChI^chL@J5_#95KS%rOclFrG?n9v6=M{(NXZRSt$IhJK>*3 zab!j#iF&+sx=NE7HL}Lw5l7#Q2!{8G%x2H!7USQM@?X(DGpocQ;t|LEjGhQXOM}OX zkdXb{k=aLXLn@;?uDR4)tvMS2F-|DL^VK&Tndvd!`!*xo>YI+tfRMEjB~z=?29&0B=VHNc#cj|5|iDytAE{bmLz5ue4?&R zREW@%*PmM~9KtiLsP=3^<&ECKXO|0abbE~!{3BHOH@Dt&WTq83fblCwWri9P_1FQA z`G4%a3wTx4@i&}6j3I;&LJ~sG{hSyg0tUPxDh+56@fI#3Qi_2B0wM;)8!7~At)&!$ zN|v=0gSFPG#o%i>=wE5Dh*S}SwO*)VL~D^E2CLM1!S^?7pX=T;`NwS5HFq@^;aaQ*vb z58)d%d+*2a^6LK%;pWb$(RF{vfLAb;-cV{o3iPvadqL4}8uq|Fh$Rwk{-A7EVggO= zE;vG+UBUJH$`)doW;Yz9eHiupUzK6|avk1VYWQavj+O3%std~8B`6;@e(b||cj&o5 zwz_VA*+C=q)^@li?LT#4r|d`gSL<32_I#i_X#51DY+XCCMNkh?ZQpmpOa43X7vuwQ zdl$DmjN-t>p!^9t*0#HXQt%E?w4LF~2?NC_;2w>Ax-{V7Nir7#315)2F~(IIF8h@H ztN8e_n)dod$(U^&EUSrXAtH!{^M93L!AzrCw6iQX-2Csdoe4}~i0@0FtEzt?&6>_` zxSD^*1gPc^2JM=WsKHvAen#+X#->hgcT9oUmQUObH^3999*t8XfM0|IgRXx1eY}-7 zx;~58D2h%sbavsk)eqnpR(%GY)NXO%#<9JqAo^#+^AN5663>h*>g4)3p%C?*U2jHU z;GfmFtsI6!ZrF5?>muu+2PauvDxDRcnC;r0Wiu#i|Dw7gC$ED%@Gp*4l#VbGYbT?i zBBwy0YbRqto@=5F4)_cNlR+s8sI-$2OGseS(EZ); z$W1WcC3zZnW1yR*ONqN1*wAiXZH~AbCyIhmpTpni$}tDqbjr;$(IM5`hxo+&0v=fV zMt88$&Eo=1_uL#V)$$WK9@v$SKf3Ulx1Q``y{o1|m)Q@}V5@t$v5BQCj|D{Rq{MDG zQ+KZ=fdw&DL9*S2!z|dE%{g-l3c`zIMJ^_?=xdzlsxsxKy{d`u@fd4qud2GlRn5q# z_IofV!X9-q2rblfaY4x)*qzd^m&HapLpX?xi6SJ{LONOP8cG(@(&QhuSGdf3p^0s8@urFrSyO2uKn>v(R5jFP_Np{LbW^Gpxy%MyIm~+;t{tUWo~2Pm zY3KwkZA#OcFLYyg;^g|PI*-}^fk=NW`t~SN`#mnx1|FSUYn9t?wNI3Up?aXX)<#jl zStvDYAGG7K`xuR@rNrD6K`rYFGh{JP>*I3CZiS`{3nvCYTucxPCekN)1;*^R0E5VJmX zf_M)Com|~$ECd%EW2vrM9P{AJ(zogFm{73R(L_CQV9aU| zJ7EsMm`D@#?4hKex%ntf!~|i0Ny*XgtYwT8Y0e;ZZkj_+9NK*@bC;`$^{>K4^9NXL zq=|ZlP*dhI&#B`?J$&S1}a4@+NfWL%HYgM1RM#CrbF;_jUleyYm#Uchj5 zqs|BR5s!gC>AwMbuFb~rwx$X2lUr_tdpP+95RfQ>|8+G878Y=Ce1o~tknF@)>t zCnu2MBcFm7a$Cl^5bRxw`rA4isp`H)4x#=j*Kh+uK|W>$G$e*wC%O=1 zqfEp8Nv@5N4De4J5uM;VIb1v0g)OM@G+Lgaj({d0x-4~5U6tYbTGw174b?maUT^Cb zOl{h(aABQxs_V8$lA2OC!G)vznQnLEZp^4OTKc7X_uphscg1t62v^T=Ay}%BRn2t0 zZzL10n(b#g3D7L6{c8xTEff?IMqRP~i zDk?Az>b?LxP19T_8_6`3~g91oagsf9PY#@N6- z@VG6^_yhvSoa|;rm^<`GEITJl0IcT@l!icG@#B1t%Dctl^l88UN4)clkR>9F^DLc< z_JdpB$NbShqeqshb1|IcSb(zTT1#|Kb5Jj!Ltp3J>N3aUGy_c*RKX%%TF(~zw^{mI zBXjCZYOn5P?ou_e`U#8gXJprcR=VgmmwAhgA=Cp{Ncmh@X|{kPQRc2c3gu)@M$Z$f zeqny5?&{&&k2NyGj6D2`o+E8$l1(TMnI|l>& z)@3}Lz37dqYb`ZF!`X{IoH3M6R8JZhLuoT;4J*uknEs3@1vUs-nwO@*Q^w=C zbvfC|wMToyb&B!h`>TR83b6RN9}6C1?li+N{JxeynsFH4;j*$uGW*HH#Wl3-5f5H_xBde)ZE%4)-zk>IJlyUv&i+WUnw;#E^R`$POqG*;2&JC z>SL{SkWsBqqMHOOJk9?Bufaxl7PPg%$D-nd+c&u=lp8695yef)3v0}qU5I}h+|QCz z7w6W_S^LvaU(;6fod{QBp*RemM@LfIUOFmEy}8x(zJX{1*dS1a=f?1d_KzA)KtDDg zM@g$F@>=&w0gf9!@0y?{pIDjK?ee4*-8G+-xm3YtPyj<*@viF_?tA8^xKctA>aoog z(n4KgIVtT9VO<={YujAoxg_7&#%Gn}0OhFaNmz(rkiz{r$((7_IhMdCL+j@tuw^?2d%zWj=-HbRPyZkUY3 z)fpe#60{i~)EX|sEW*f5k7g~eVuF?MyXGQynL6vWc)4gGL6D~cPus;L^|*zP$rjT? zPV0C#<})T%g`iGMF`BK#T~w;>e#Dp=LI8T{Rs-9>npZ^I8&F?D6TK}%=U}Sv`vmW$>A7adD*5LVI) zpfo6jTlc!|iYHWnjkRUxVcinbo{g`fbZz@+J#A~xlHc6;A!hTGVYp$x9u|;S80(h@v)imqv52j^aN z1^9_oK3_SuE`EyP6(t*rYca5OYWqRg=1!5}nsid|Ik^2#yRrIw5No*@w6hxj=E`l% z!k1_)M~~Z>c7F!-wC=&SlHs2tmIK)C#xF3-sC^4__vSBXBtt&fkohG_-qP+GghX%@ znBqCnKB_SOspWh$u8KpheMWIKj)p@NOQOLZdd<_k7_bo=|0+7f`ZIfE{XWl){gsrx zs@v?w*w)!SDvY?vvdG8QEpD9l1t{$FKv#`jp@__tW15hIhTBfdpY8PpC`6WfzX7A=0jB?4M`x#)Lv4@KGGrCc}S zAiA#TGHLFp2N-EF8W%=soU?30ozg$`us$Kz{eDb|h>GmV0rW?3MNC^3>a;%>Yh$!6 zKY|Q5q2;+t6Rp{lk3DzY5I}FLb{B^0^4()J<|0+q9ZGF3cB8fwdO)UqL3(fk0egT8 z5Ib+Gg$wsgfqS>n1W6*?*2BFzQkd#eH}>Q9bZ<9O4A&RCzlqgbpKdW82wq_hGC_y%zcP#UKGZD2ZX$g z#^}Y8KGyXIshU4yhk)OQ+Mt&zv|8~KW!_#`q^|M0-!t+g79CA0@VQ6DKK1=gwcqWv ziO?WY4bHn?{Ta`zWi+hY|L*_(&Ei)<1Y zHr#!h4SC5K?&D;HaPPAl&vbJOEEi*5jGB)OwstdmBHZATMDeIV5Q$KgU6_Jj3)!oM<(&6*E^WEly6*@;mys+nQ zAXiN7vDUdd;k}`=-E8EmrPAHc3Wh>n+G@$s38N4IgN9ql<)?>=)??kt_nB#wRa?=2 z%zXw|5w)J<=GK9A(5t1dNjKWbrA2baSlZ3iAum?U2zWK0WJ05*upqtAR5ty+;R?5T z`A8$6C>LWKEu*7cjB&J}-ZeSb&8~{mQoU;3g)^5!FEH1asOMd7sfcm++p3bN7j9Z- z)P8uwsmYc$KGMSLBQ$-8mzj@Om{ymYO4J{>RlBcCPA59~ zFmKo(PhZbTtco{g0T@Be8#eUp0Fx7p)2EtRj3()6%JUanT7)KIwqo8tX?&;kU2FLb z5PCeW4kc^aAnCEW>2^!Ur4!Xtn4*d1s$fh;Fq2`rQtijFL={-HmQ@T;IrymULg4Y%z-_>bPCQ zNVj?YAx_jwx{QG|hhEZc51G0pO~RbWRNo^7!G_tedy0FvM?Gi_0cAerKE}y+y}7Px z3nsRdSVBmJT$#o#n6j9@&-WM8MIH*w+&;V7&W7AB=f!ynLV>ubTcC%L%{x<0%hJNngFqJvlL>x}RYBWx&zN zp##RLyq6HhO8BU|SpQ2o!T87HmH#osT4PL+Ej^V#bx(_YjCQJsX|%>wOg)e8QnA8} zIsVV$CeeKo*3Gd>V&bP*PteM%mm=yP?470V_*vXgx>>dS9#f5olJ$q^&XnXVH3>ad za+dmQ(|vJM>ksvJ!9)7w_L!Msy%An6i7P(#HMu706m;igsTW3Wv`xMBPmzX*nyA0( z&`8Z4F@qUjb!XIm2kJ*+0rgki3nduO5YXLE?b1k-j3!Py(bb{Gxc({2FiN=>@eEoY zKy$<-HWq8Bdm0VP|2c)hZa}2Jd5Ifu(mn0QG+Wom7L04EbpvAiwG@M|dIByZnih7M z|1lO;AV;~N1ry4s1R@96Z4rh9!ZP|}!L#nOXk!kRD>k8odVfXxqo|_we?a>BXYDx5 z5!-)?i*xcfyW6R*!ZmmXv&!nFFnXM?c`3%=_)lH?>)*i=M!^EzxhRXdA7~m=D?rbp~EN7 zd&PZ%-K@0z^_+Zxu6xq@fw)P`{TKH*8wlved*iZrx81(ycvp`LWAkki(>*>VCZN(C zKcykiHR{^Ou?6|bS1n_+G5w+~$ZuM9L`7-X4)bP?`JMqy)B{6XXOGEmG^RY&A6gu- z_@w6G>lU9$_v8)xEe?+E^=UTKaUd-qEFr(S5&Js_r8<%Yk!PWvbs_ zEvnJ^(#~J2W+Eh3F*;X0yp|g!TaW!VZylAQsVKN=5AUt zKKx-r8e4;+@cQD!P>%TmHG}B$m?pB3@soV<$M(3F7aId3x+`xOr?D1fuB`Xq#LW*e z?9_DjP{g9JM78yC>&Bs~GCjD1<*$Xfm*#=4Su0yT`*bIu>W+dC?v%%##ZI1UC=D!x z?M1{NX&@j<$Frh3qBMdyqJ@XpT$7(567S-I%)35O}xPcRL zJqIcMFcvOaF+j(1hWxfjAe;Jb)spWi3Rf3+W?=oMw+E-KySvL)7I?7aUWmf^&&HNX z;0fbbIXGP4Kxi7Jh7uGiZ+>G>Itlgwd>|Zh$O=~#X+BB`eATL;7+YeK71Q1m#M-~% z{m9cx5|yG_i#*uA`BE7`_wr!X2zXA%JM<_`dk@cv;kw@Xqsucy)x1Eb(I|HpRH#>P zD0hY2%T$#QQIDE~(EP_P&&Nioa6}$^R*?!(5gkGsSG6ucYxQ`(jB7{LxIGA$5ritA z=ap)zG*}9n=E)8FYe_|T*9r%V=6Y~$ZW{e@H+0m#5P!5?=E+|_)q};WhQeN2L{qUI zP)Dl(t8jH{dk@_5MtqG^k!a0E{LwVaj&7< z+HxUkP}Ou~*gVUV7jB;J!G_#uJ_EwFmwE1q|HiTOmvJLg_03cg0Fw%_2viNovh$CLktYuPl;gC(--Jo({e*L!eCQJ1>r22Vk_WufPx zNLG-kpo6VAk$2!JsM3Z}ubX?}{_)7C zDs|ps54Mqz>X0rrr>w%7RlA!aCpUVkNT_iVEKTg|mw0dsL!4D#Q%zj-s1HUVdWEN{ z6siU@+V5puO2ePs?7?oVx|Jw-^PK>P>W(^_OAqbc2L&z7M?0vxk5V`dANdqn3{hH3&UN-ax8!xAP8O?yEi~4|fgX zF~i?Cc$Z?gb-ow3_8;=ZuJ6Dd$DdMCoxPRe=1$)8jAY_0`nkgDe;F*N>pV2kxZ$Hc z%Zuw+vb{s}eHmfgmr-xrPyu{-I2`H4LMgr5SKp4GE&2GVpO({9{Zl_Jhr9T3G^>ku ze_3Z}09!Kse7^uA06&sw~`^>&4Ar$P?v=Fea2zHT~Pj34OtORPCl` zF+p2ffkuJsBHwE33UHc*UO>t3=4~gH;0ez>FS?$5FV+G{jg)l1aAkq_{zz60J#fvu zUbl>A(D0EDo#5vsxQLw6)-S(Nvf(X--qq)5GvNuUT($rEunXR(#8u8MAC%;W@f%C? z`gRMvJf-Pac%^IO@%&US-u3e0=A7AG2P;kWPW28|_tkn|i9J0PkuYwI-xrYxA{G4_2tSQnh;t?qB!wN!mQ zS?+ecM_QoobGyY`7;awS#mH25CuFJ{@wz6i;nr8LG~D6Ez;>s1GVUW%5n{OIF7H$E z-{>Cb`Lni0FB)HcJJ%hA4i$} zzwlnuUF%q5UG!TRk?!gVw?5<@gsXHHB9rA0dxIKc%fm>d;9-h#$=p%OeRfXx;!AjzS-@rS-{6vS)|qEH=r zHvt8nY}k#|m%k5PwY`ic8U2Yk-Z_YeP57I4TLKi4jiVsmFhn239xzn756CZ1uOV-f8XN6*a!{bQlx)HzO8KWMV?;p?}HK{ zi4L*m0BQ?KtgM2;Yu+!w?ao;~Txpt=9Gp!IE86n49v}9Dbi%#+HH&aFW9z2|B#g4# z@Bnc2Py66rx@_Opc*5bPqkW&`lRh=z`VwDm82YR+vS{)6V9!$DBZ+96-SigjJ@lF- zy~d&8`pbM5MBqlrfB?J-cq_uKF5kF#iV7)W*UtW4aIif-_)5B%kShzfdwo^d$Vs=Q z)n9~C6pZ&pZi#IlM!Aj$yt<2gWoVhBeYl+WB53=9*S$j7$Y%wsgKB zf!WcMxXh>N9$d;d|6<=ZRd8`Gj?J06r*|$ zDsWq;yrOW+Y#$spolff*x9&OJK$$7QXVv zNj_|ttMgSfUYtuCw|ph~{fC;{gIVEw>U^&pWngK&hF1+Qe|LZU{XZ@n2w{Uy8N&g!*UYU_2rovLOrz*WBvZ8gtEt*gD> zH{AGEyU=$~)!hofE!Tt4@KYbQ3%`b{LfMx7-7Z#rW{jOG)^F6~5<>H(FNfCN!4XXQC~ut~WhH|3|c} zmQ4g2?^@$_`Auk9t*4e|$KU*+2d=~5!yp}f%^J=78F~|&-gMRD#(+Pdj)Moi#A zlpp59z(oS5uYcEvA-eU4c=NIKUFc80c2xVGZ|M5JQSU>b8vpJaVm#`N+p4Jt@?opk zFN=!S|J^sDlSb3{4-{U%x81Z0VE%z(*6hI_^yqf@sSjXO%6a`ie4prlfB{|WTX@u> z<{#*w^>dVjRtq*?i+5uiF7A#O-S+!FA!H?*A8%OW((N;_E3E$J;({nE4qejIlr10m zs$*b@h&dqMyjFF$6vtA<8%O$y&}@I~)8KIK$G%DD8y57Qgg1ig&-CZ10S9xu;im8S zM@0NF|0xCqeg76*+}%7X`jcEw6{l98i+0;K%#Sv4h97D_(~li?x8U+S+^g($g1%C{dIomqKk{Aw z>qhd1#5&YWGD~>Z2!9Q(^`l;1m!#<&e}4G9bNuixwNt5K){O!r<3X!Y{vo&u&tI;p z&qscB8v?oNk#qgKB54z!u6&0s1nS!J{J5A0WeS5iin!{6DB`*ck`QY`%VNynW?tw= zmqfZSm}6j9*Z8jq;MHI_A=mhG8t3`T^vl6D^ZnJvOQG~xHP_*f+N%H{_GYMmzCUOE z0u(C#HmI3(TM2qBur)65BQQYMui`yn+%bHOzZ%=*n*8Wn=xNfnU(=J&P5#m_z7@g> zv6r}8*Z3dTFL5jU3mZFcFFHNk_ACD~tRQa09qe^a8)#MCMm&Yxs{f$d)+auJpVfcF zAIlHH&D_7yzeSz3CA*Mtxs!n>spA+7{&7WtK8%gFU{45J2N!SCaM5Azjk+tlxhJh`Xox1JUrKRCn-xC>cz9ryR-peWx+Zmi+pmx>=yy}4*loJGm zr*6URO3hDUq;5EbJAEHn9C%Yz9g8TB7F+%$9+6*tPoUfod%P%6VHVT56)XwdrJd%O zRO43&6bzvpnxD?iw+P)Fc*;;gOhC0)R%SQ;Fo3P^lPa^7yPp+d!Oejjb>0sH4;pHT zi#8Q^%Z5LekDDqz7_)cPBir$dyP?FSKJX=$bLK69?YLqJvw^L*1aJo`6|tc(A9KOp zkUjlJ&^nZorDiPY1_vd=r@uuMRkO>5=O2F*7?as}CzRK3G5QOw>8x9U{*jqQg>-^7 z9Q<+M9*lNB4qzdZ6x#MRmJM@m4fNA2;nv#%Lo?OJJ0M(8i9w5#!tqp~CQ?6#=x- zcmbZjsscfTNIHe#nRf{0WngVSq$K4Hw0;sGWMZZ^Hh6`Xnek4$KlyWb@V|c3{MvbW7jK;rfT>#g-J{B0%SuI}|C{V+nflPH6 z^{4qk{L%0rGW4rq&jdUvzwTTM9b4s#lD`3YZl|p9zV(42@hrjR{dxIqyLW)WSH9$*r1v=VGL=bZzWGai>=QD@*A521>vQe z0yur6^BwazDrtKQVBP&u*COW?C;a|vP*q%3uFV5e&C(-Q&eEof){ zhmMZGt$!9jtE+Rf!u_@cR(Ddb-%wVl&U+qu`)n)yF5Cv_LtlW(Hhia3f!g*mD7#(= zVEJL;izu!Cxj=5%`(of=XLZ|-B+i!C@pHnCz-mJUg?~Y1y8mT}6g`ZB3qQSg_Pah( zCF2~!cc6QS{R~h1b6{vERq`sdUjJ8UT|;X73ppjXy@tZ{eJ!xf$n&x7fuhX$YR$_5 zmyxT@hd?~%L@u3o;s@kj7@qJ3s+rpP*MK(+2xn!g!EYHEV>y6|o%2>;b>nn;?&EC~ z_~cvRuHX6`UO&Z8JOWliBl<2NU;Z3cMy%g3a9l;tP9!sXU&8CB1-V#L(1hC4Dzj8= zFZ^-A6J@!o<<^>QJpv7dT80aqbu<^>u+%) zpZoUaFLDvA8HSUS)zg8r{$`^bMT!&CFeV*ciOA4HNN?0sT4g(ctJfcTJ1{t|f~}j; zM^0`-wU3v%rVX01{!A>rX5k9H_s)VydYY;WuJ6;|)s~p;o>6)5J~tq)w|q5TQq+Zi zbu4O=_-+4cgqxE1uvU0)R92UEcF$umIBb9`-#ib&f!*%}hQtfHXBL$*hB}E4QHT4`C+lxIvnMY^yr69imS*aIh1TD6pih>1e|O+?gbVQM zrRHnxR_RtnZ=(Vx{cC`#ezr>_DGdVnbCsv@kVpO1ISJA2OZm_jxS=I%? zgIC`T43AYH>@n*e&Eu&dl{u;*cHQ3w19|7 zd-Aa4QV*NxvaNm3T()dA=kGarM^Dd~l`$=2y6W+EAVdYV{j7GAPLj%R@T*P-yOpp? z7}|!=oTlpXul`%ast5m>mw)v68CPdqmT|Qj_LBFQo|k3J$8F$m<1TQ2MmmJvx;aZ? zy|9dfb5HR^=O!nM8?|%0l&WR#C)fjbMwL^;Ke4i)^Vp0jYS`YKo?4}iWiZb6mwMzT ze^$CG!PW-*lJ22is`jHuJxi2%Pwn_DyEtYYY?3l$-c$2#>FrTd|DFT_9U0b#JoG4Y zq^q+0Z0e1NkD^pebc0v`j@n*#Usy{26?%&Sdji!7)opOM94rFGS`o|*KdH15^Nvo@ z9y941f~q&;T^XHnoX~a!)*a%x>AJo;HwVW-ZpC7B!3TlU7%Y;)Sl=zr}lTcswdA6AkX`NaaeO)OmWwd^IIh7BaF=PSPMg+r_A{ zM%CQ#V~jEF5BJVSe(TCRxzxx1fNLKezamO{XdYfFxPLa@trOi7#KH$9WR3X*uJD*{ZJ28`Ngv`7NB#Ro6$dG82+4*@g*J_n6H*BEe+ub z?3}Eghe18m`vh5b&9OPX)aHtuLN;Yh{qmk;p@{tnMkrOYe}Z_`_Hxv_cq{bxLq9a? zm`ZHLh_%e5Z;354PB691H;+NnZaEbWQuEVL%<7MlJA+g3aC=KdWlr}Q=y|80Bff&( zVaQkz8w=odr6y<2P`~_LAdoOHp{Fn;)tI}pBhFdWs97rSJlxGj>8jyiKWJXHBve{!lFjsogFYLW*juSx4am`u)baTH2x7` zoDm0-V9#tVAtrsMRjtU%@ffL$zrDEND4UOgKrv1{P*0!0xo$#^F9F17Z%>qi5Lt@-)Mc63j~d=G>|V2D!Oem+cI^B(?()U^ zQ#W?y>j&9%3g{KRNgv`WLzh?zl75UWP2L@|@XT4wow#PF{htY%EmE_OuPp2g??7$( zvTLM&v-`B;hO%Rf5)v0?DpP#DdnIVItg5mAU*CDJi$~R0BZj)=6H8I^210#xca=u8 zIdNbm_8i83>SE3=#v0Syflz6@e|mCYrC+UnBigma`L+*418=(oL7tXR6PkZSvHJ$0 zrPltImeHvqRGt7+#((Nmo;m@;*yn>VBk)fuj*P$HD^Sm$K(mC3DAFi%Ut_+|c+gTb z_%}&bjCm^2OEcp3)rpa_5+&i~%-(m_9hIXRCSU|6uui14fooSITDbOK38Nzd4O6f@ z7I#ego&s&hd%oz;#7<9tOX}~k)t9$pLeV-68;-Omq8GL9`Ydp=$t$>VFj9|?H|Vai z)vC_eW87AY9#I=0T5g=IBLB7e)XIF*Kopm1$5^5c(nQrH)p7_&RzO7`{8vQ1@BVi} zoz|{DM#8LKS@vBRy!;}*gC>f#^QEuJ{cgcgx+7K8ZK>*a5vrK_dAv@bo}G;vJSh_o zTX8JjCOeHGZl5zwguQQ+(DX_Rzr~9xF z7%P@KGzQ=1{|dv{d0)l-T7(3~QONING>p2>q7zH|Z@Yex8_{8uFJFE97Q)H8*5q7- z^!ALe#QuV}aYOo;LkV@o=p&AvhLPn58JDXShbmpF{*p+pUHq878HCJPm3TBDO3>-T zESiQ1-jp8YI4tuWti4m|62w+~h4cz0MoU3(VtHLTxe~|c!WirNew}1SRGLCH`BIGH zaa%6C6cs7yCvLBe*%H)Jvn?sFgqjn#=f*41Y6{LeHfyCf7!SB0t}+egD19($)UxU3 zpI$Zi!7dR!FZ}`V%y_U%#06>n0V+iHPmjiyHmG>zXTkW)$k1??tKf3Xfx@PlbllaS z5hpQP?i!<7^qeHhXgVQJt?T;E!CdufW^j<&^IA^c%2AaCUFT@u46c8MU%m5MPEYY; zw*=0NDz)jUV~W-4?U;(xyq=RSN_9_?${48T)nKsPo*9H&)F}Z+k7T|<8C_PMQR(5o zn$jGku+W1e3EPjwb$pd~D{71d%bo@<0Gm0l&i&A4wiT|fy zp0Yp%#sqp{gbQSy{at(|p1E2DG&EiY&0GZyeMy~o#sElP3@KBd2ViVO7<<#mt z^z&~1Kw|DxaV(0W{B@ng+~=nJ!n0{YZh&Rk|ATscGzWU6R^O8fF%va=DzMJSzp3R< zd9+Nbp1K|-@*fVj&XgKUtWSxweJ1rD>&m3cs~4dy1%Rp*3H?{q;}u;Z`tFQgL~VMh zvRCI6ijFe&R#P7>E8&}O?_?%Xt#P)(b!DY|T1LH%a`x){U#Z3)e`N>zL`3L zvG`LjfJlw9x9$r6AMq#mw_ReOROZ3d{ch%1&GuhaSx@Q;E!P#{yj9%~yJclgRZ})} zE9PrWZ|sNamfay1t-cF>)vXk%tb0Zp7j^Z_1knUN>PDNjnSRYf2 zh2MZoys=Pb-I4&>jf=*HkIRtu{|kr7KX!)^$cI)hKj;>`s@^GSqSK}dA9R=T zqi$r5K@9&*jzjoI1;JB}%ABeGP#o+Z|7*!dnI6^llguntT@v)-`;?O4@%U@Unu=a( zvO8GP{|Xp*glMjH`pisSK!_(pK2-!mS&E)f09HD~)@Am1rn7a2me4rS? zOtAC=)N6GK2(%GQxfW7d&^jso+lWgTaSDG1`4WaUs3V>W9b6GvV7N+az7vG50)quC!vlH zVx=U)jKe?22XTME&Ys!fJ^g|^yDX*|q7fyUh2s15zm2E}MLYEDF=L!A+k9Q_X~0g= zk-4xaP52hzPg#e{Kq#^CTrX9q*yT$y{E6TI-7 z%k9!p!HfPA8a^4iJrP) zK;0gWIz0k7&cfekh9AA~n{3Y?)u3)q|3=z#__Q(TJHDa3mW&OK{-*MJX&fx}4VA0g zc(jynD6dN|{?D{Z>WR=2&=Z}SF+BXjgy0F^Tu=1XCBd=ZTy7VBFL>rRm)nX-!HfSh z{o62Dazw@n`0u;w>+c6&Q}agz-I@JVX6vy%RYAisS!awvjL(StQQ(w9iC5^~6hd8~ z*M2C>I8KKfjj-!n1YwO(M=;H!Ymw$-YUpc0#ykXSX(JG=`;nfzWE?T6QY1*{xQw;& zgv`|FJC1S9I-GoH8=qsjJBKy*HXd!B{Da`#>Vjs3xL5rk=vL*^f;VRNS8JvPd&U3S zF%9bn(U0LC(}Txnsas|RPgKp92XQ;!>|nM!Z&na@B!&9ot-DY9;68|dS7wK|&k8<& z)DNgWQndO?{MR477A<8^h@TcUjO~P7be-)0k6Q9|$TKWeHl%smtkjZII`s;q#H-d_ zQql8h3cJtBn5ypWg6(dlb-|Gr#q;-P^g)s4V@ZS->id{-bwpJMa{3gHjVDbl+%9pB z9^dYnP&TF%tJVff)ys9kDpvxZ&TnMK_1c1{x@zFOU@sq6ro&>&?4wKQGMCVtSiqd4 zQBX5mZ(>Wgysh(sBfFc5sveym4D>W-2A$gzBE{%#Duxy+Hm9bcYmy_lZ_a1nF1ae` zV&U2nB)B9bz$KC+xSOvEj_hI5E|#!I{|HNt{sqBYOFmSw9nd3X=wVWMViLVr%_nj= zD$$k&i~;6d9rUmUuq8+aAR&uljQT<(M{qY>&A{z(ZLlW`*Onl`B_RPWksQIj`5GQ> zNP;U9Y~Y4uxFJVy@4l9S`}VcLJ}g{Yf&`a@1h_AQGq z#2FkFX3vdGOF90g;4y4Vu_Z_?g@lBbLL^6Uvlj(NE;cLoe9}EOjnFJ+3cPOP_vL~! z+F|Y-WTq3>zT9H7rP5E|aO&*&S?>;BYIJ+e4E6LS6-Oug=buAK7Ef>3V!@`i1j(i( zB-oTlj%->~&%j+$FTk}WNN`C=fJ-Dta8F#qz+JOMfNM*T;F6F4mq?D_UT`x57lp<~ zym6rdww0$zmC(n;g(Af0j>>V(51DcVHU<0OLe^kDTaGlTQaNJcLOEh|N9Aa{g(=7A z9|ezPi(pHTfRm7bnMjV{mfp&^CL<6?x)Po3^%>V;iac*|(8anYhs_o#n8h`*CMdWj zRz^pK9`R$=HTl_(Mb{(+DN-QDH6cOKH6fxS;6rX>D%XP}%5e&Mca!gptl;hr|Laf4;AOR;K0W*;t!5#5a25#mu z0j@1Uf=faITp~Gw8(hYORz|2z7lwMOMazWHiUWG23{2yUWg)iE7>BbG{VX^t!EdD5 z4Q-)bfX(B2wukNHv~8L~t`s|-3wm-W_XtQ7S~KDOS!c)$pEk9O=+~;>UsBOM*`M_; zXX@+X&7FGTNLGJqF|4{$j+u+ul(m8^QBO+zSeD;}#E5JWdw+?YRSOfm9(g;Xl1)3& zB8D~ud9N-_s??%m;zF~I(H*sfi49CS)-(tMmMuX7PC^1^A~}LPbpjmbk*$z2bbBD({U45F=yXu$0 z5tiV;?dm*Rhe$$#dnA|bm#t>Bd*$1LuVG7&;F6G_T_QQs?&J3|9sL+=eKK|+&PTU3 z4vm>Ez?SCi9p+BaWu>3K(Pi25A5NEbM-!u@VNi>4-g`j`1sw@a!H-TaX+tkEFRK&A zkDj!KsoQ^8BlH}$1gUP5kWjaY-=lKUCB zv<&CMb15+IG;Tht(qiZmOF`Sp5*(vMJTV?NAVw^KL>AT>O#3SOHB+p4zY&(wYzdMT zNJy{(ksMj!9%S}Ck;9gf6aj5<*bG6z zVKa!1fVVuzctFE`E6g2j36h>kNYFEp9Kmh=EmJK54+*u{mLS0;AptIt9Kn76q2S1* zUGCcUdg6MS?o1YPoe6fr)6~`hhwe_kXO2YJCu4N>R-SY_lzSd#N5JIWMYJ|!?C0mA zFy`Gnj=6K9iA!T&x@e*!pB+D|nCQ5NzqtwNvPYQu`q3kTS7S?%>MIEe^_57D>g$ca zW7qP#uMJu^$5K@up;C~fZp;uAx-o<32sq9sjQIcDrqCxJW%};XYlFSnG18VGRW1?| zDi@I)*=Wp_2xDz*4pt=fi2sYu{am3>^~{Z(`|+z=)&(oSm4|lkbB7o#JNo|of#`VMpF=phk{`+QHIe)>jFZ_l4*PoJbDY*njJMgJ!lw8WEax25q- z6&ugQ7TK}=YDt(YA7@6VcODly5LbGHXed6ok=cqv z18(|zImTi7&>{XjBoN#G%Xgbj@-Xb0O2VmK_xype>$(=fA+#k(b|oRfu0(QV*PSg4 zT%6-MiLHjV1PLw)32=$z2<}A7t&DDU^Dq6AaKa!>s)Rl!E)*d~cT|q`e_|Z_3o(y2 z-1>9%T`KF{c3B+9Ly*uY$nHh5kMz0lEi{=`v- zxpSh4^X^Rg=^IM1=VuiYby0;0^ZXZ>O26X;q5rcbNVS}VgbGe1M|FG5HpZspy8i%c zl+lx9b+9L`S6+@Uv@eaT@=_Vgd|m|Sc`L`^^1(!?04=`Y$h?%)M4%v zoA}aCKiU-N$}(x!G^>~tO<~k_MoC5=;dDzo)w}d3P6>H9+|r(YK8Df~a?-J|1!yG+ zb1pcEqT-ln-`lV4%r-t>w9 z*Onl`B_RPWksQGt@D~Q|FaIKJ$+sm)a7jpjOC(2dC%nqQz4uiCt}Q`=OF{x%A~}M4 z^J~nwT7zDdJT_`9bdi^Fnt=DzI?gG~N74fkZO;-6wjDEl^vu_p5G!3OL(h_5j!`Jp z%xoO=)j{rT^sqL|cj=~YsKg!*tCkclSj`(uRiWx}8P@#hOkpY&9Rc1>k=0Ghnb368 zHk4z>&8mi}F#~oo>Y&-gbuc5Hydi&%9uJgfupQ=3F@sG%{b)0?L(eKEMV$%$3_H>) z{~GN3|KBfyx*S1BclXkpCOWf(2@R2q~9TZ}sYDyC`Is#_APQZ0>>2Q{lUg#i*ben3l|p zgLP@sBL%UX6i&F*Q#@xE%fwN!D*nNENN4H@(=0vnnWY0R6k(WxcgU_V0!NnFWgomz zM^U50lA)DUnq^XC$CMF2|8bg^F_5GqmF~dOZ{N4)aAi^tKmJ3ev-|KvVWHoaAhkLY zvNQy30!1W8)w6Ox19#1S!Ev=ENN`C=fJ-DtaF-4a`BnKx-@ap!$0YhY{4q{UmW)Yq z^hvZe7vM>>=Raa%Cg!u?=c0krdvJ7ML)v500huy%P4n?T#f427@%@L>yrPb1@`-Xw zX41Mjqqgns%;5L-+)%OVdmvcJ`W$IerD`4%7wUS9o~ptpnSb)f%#$!@!x~>I&w=R+yX-kl-Kth56h~x#<;%hE4@Dj_!3MarKa|pQ1b4u{c(|@(F3@4(tFVwq zy%9~NnV^y)B{^X2$)u`#HOpRaO1KZhZF1I(k(ii|!z4hNrIS%|g$Ui)1OOSw*kbs#;j^M8ToPpcpi{NqWs9{Tx;F6F4 zmq?D_zWxORcgL4_hNt=TP?oCuGFZj}cg!LcCOILYSjkL|3OM2`#zlSfE1~+>5~L!K zkN})Wj^Iu>#DsXF7i-fo#s%tkhk`!#U7N#ZixkWf;;|+ugm|osjtYI>*TIoE1`}UH zB0q#~^fS8Yc(E$gEC^zw%(n`pTmAkuXHX%g&nou-PP& zTNAYC+$gn`(Mg$Ab*GT^Ex30&h4`BaZ3$AdBq5<$63G!hvFb~U|DM&ofYC=vb7~hCLLZ8{%>i47#Io+;%k6QqI$H1quVu z#$o$S2uFZdT;fhQZKJ{1ai`m87UYDi?{AM$Pv?ZJhr+3^NJ)xV(-MO=1cmUkL3Cut zon1oKXK>F}f!vUFLoWeONs@pYf&y@Z=m_}hxs1kh1`eVl;MI9d z53uR(kV|dN301JYR+?0)2Z)IaJwS}^s2n@HG35y4hxiBDZ3z-^5)v>I$r0Svd1V%v!8EH%;IGmLxGviQBkW4LnALX7xlXs3@PZ&Uss+s zRmYmfnoA{%8^uYcr#qIthjLgprHt1@`!xJX=Mbl0BrtDn?UQj>Ji26-eTAu#GRnts zrCZ7edNK`chZo)OfT9rput}O!se#4Bg$5R*JF0bCi5=PHUdWBr9o^1(|o=Hg1Gm#v@eZCh1 zw@0ZkEwUv@a7jpjOC(2d2lZyWxl!uMlRNiT=N(m=(_7jI=aAZH1eb&axI}UU zcea~>yUs1ZwIxV!Nl1W8Bu8-TJPh2oJc2`NOOW7_kN}rRj^Hl!GH@|u@padhAi*Ue z0WOgo!CmiT;0~M)|GCT`aApxcwO9I01ZcC7WlaPR!NRHsn zJsVqZrUgS4mI&fI!4SVTW=oJTlaPR!NRBYqhZq%q9TG-%TY?0agao)mas>C9at1D@ z!#!1Nx!|~_NtMvY#DyZn=#I*<;25SHz6v3JU`vpIlaPR!NRHsns9@mks0i`v)3yW& zE(r;6iR1|GHGLSkPxlFZhwb`o2@+fq65tZa5!|w48Msr96$V3Ff&`a@1h_F#Z?VLZp?a-<$m8KcC5~Alh3Rb$0VOA738WcwmSiSJ z1-x-U$oih=rU633v?WOPAR)mXL~;ao)$vSShil$bwJqn(?@_;T-8iBZKKWGai<%vxZ?yiSog*Wq0=lC#0b`r%9D+VNBej7;O#}qdO|c$MtlQ;S^>%HEb{n(|kjy zgl#WrQl-Mg#D&7d=#C15V;Lj@* zDxr^w3q^?09hGC_8B#e~hK6i552vQumV?CY%0YBT<#2z8S!p<1z5N|#24jqADM%6c z%$P=k;+RH6eQ?H)l~md;Wx6aV`6?9MP*1F8Ot7vx#6KTkOOSL9p289fg>Q;40|5+ps7kf3KGIf8rFSq$92o)tQUbq#C@ z5?m4z;1bCZ-0TrdwHU509Koz6QUgp$lB$IvC{zoB=m*fTtu$zzsnG zxIuIT{K@l~+MaoV&}Z8cq}onGLTx9KBe=6KWZc0Sf+wpISwZQ28;_8 zu>(t*RH?qi#Dz)|qdO``?nO*FMqd=-FA=jPNWe)*z)U1ZaN928$N1i=ZhWYeRXfJ) zbf^;gn7B}c7~N4hhFr|3eaXc_2*Q>i0Vg2=Gm#v@t(d^T-7!IcYfF&el8^wGNRHr^ zUc$h=^b#RrVoQ+Vl8^wGNRHsN=(GE z5M~6b6ImP;tNwdTu_8xQ)jP8y(`$3N9WhA7N=!s3Rw9d|Vm&sAsa*5EFKjfhB}kQv zgoMgPBu8+!e4l}f1@)fFKRMKo?J?7&O6X(aLJ?wgN9CA$DYNu*u6{lEa($SMF4vx$ zu@G^Z`RwlZBfu*z{iK_=(W30Q(~UKasAbe)-f!POV;GjYFB4b8I>?`oBZLVV=v})B z_lg^Zb&^MV60C~&TbOlNZtxVQ1!PVYmdI@hQk5qmp|%srQAM9Hm2+{XhR$T$>N|D> z2`&iE1y)_`~gG=^#I~a$~U68St&#NghTkPbJ~7l{a3-RKp%Kh4_Lk zL9#0e33ert6T7NaGeaYj)>_G&~Xd5HXSH&Qcj0W|U^KfVQm{ zoDttmInB%HsM3*QyDDa|YM*D>&3wgtAp}HBG97J|->{Ax3vpj_m80a-4siF!I_GB;X_@U?!3yxSg(N;Lf{Vs3o=p z2`&iL+ye`RHfT$b;F6F4mq?D_j=F)_(L7wOxPj?J$pcSGih#E4{xSr` z^+3wd5%6bjWb{1jCc)jcB}jTEAwkbXas;>eCU)KRjaeb1JU!TuPGE zPz*t#p%_F*!1w=>JQA@rKd4|OoN%&h)Ai76FrZm;ST;W(~V`GgIzFtZV2To_o`4H+x#7~NQFsGNGMh^lcNGQ+{VnR z6OV4u1Dn$`>hNDWN6rq5J13erKZi~qjWK(+=V#~5(Zx0VJwrWxNyX7eC)I*QKVfRY zJU_PG?D~l?CZ|c2%pMaLEFPmfGWLT@nR0xzRG5j_5+vXxBw!|zBe+dJW#C@AOz10Y z2@+fq65tZa5!}a@F>o*ZS?E}{hp;6`a7jpjOC(2d2YnnWRh^cHsw^SPfy;%ZV_SlR znS=z)L~?{V?{?eXirW8JbS8A6`}OSlQoL_CY+iAXM7n94dnqdtwvS>4)2V-f>rl`T zsn;I+|7dN`swk-5{=$tw*^D_p!nIG=7ykZLpu2{oEX zj%xJg6^uVLaGvlGn=L_tOF{x%A~}M)>JCP`@7^Jt>98e8a7jpjOC(2di|%5h0N=lh zxv}4f0;C{CKr_)65)>vk!xa%70sjoZE&cL}mAD+VWpgk~OzG9#C* zOaXBfGryn6mLL^@gaqJ3as+qT&l$J}elEDUwgd?-2?=nCCWUode0{fiL)6q_wUf=faITp~Gv+xSZcEiQ6&sn72f?yX3ZDuIuQ3nhrr zofJb&TFv+fYgUH_vJ(qif&`p|1k6No1o!@XnL+n#_2IotE7$&KDpCZrWzaR!6b4;` z=m_}cCI&c;POTAurzA-F)%SC7{SsU|f(REv5?qiR!M*?2OiZ9g#{e$RxE%A~`Pkn(G2=aKC8lT2xLVa= z?wn}id;~N7^o{Cf&(Bu76cNnHA0blk$OEBD%cNorUMS?p5j%opSV~PWERh@;cFgyJ zg=)rcLMK}=zw{en_q{Da!c0N}W+FMlJm^7Y+w*XQqiFy7Ty$@I1$4}z>zQTSvwbo~ z-Lmqq^@)i#z5gJyQaDES|1INR(zu?I6fuZpTsH)T;n5&EGD_Y4uRjA6++&m8p({{GV<~zaG91(wUKmgp=2i3 zE=-%-@CZ}D(Z3VAKU;!i4-yjWK_o}^So%8#?vCFHTZ(N75?m4z;1bCZ+{tShxLqC< zJRMtt1eb&axI}UU_ku?mxSJjov};R{;F6F4mq?D_22Uz4RNiK0{NB_osMwYuVn%8b zW{@0V&Rxf-c=VWJ;kF1nf&`aR6W|ib5!_uI+gf=faITp~Gwd;eohAS3X9 zgw+FEf&`a@1h_B^UCezezo8U2J)2mg{5R$f&`g_1js~k0$B}ul8LsSt=@W) zsdz@1I0Y#J+A^Iq(iEnX2GJ34_x~_G(D@h^rs4m~@&6T=QqpA|SK+_Q@b_H&$@NAZ zkSUWh;-{8Q^D;WBbfnVlwE8{8sBJjT@6n_7Q_*cF&ydXV;UmF0U45F0lU=EIZBlUcV$^ZEsezAe z(U#B-a%UTf^EEsD^bHHz^Rrfr22Aibw>@<7ADHoN-oJ4J(S|<=`-9V@N(PRJ3s#QN z9hrJSI|jb%T9{E};3i?hW=oLJlaK(MNRBX1-o)sBNqw-FdTNuf^&(BGggz!N6d^`; zRE}xSu))Sk8};%{+w`aYMN9DeN0>^LX7UH9Ba2q<(T{@yK8EcP(4PNrTHxnUk|m5jY=^LN zZcC7CN^B-2?FFr&lGFEeUi z_hTH*%=@!&3Or4!WQCZxV2T*skv%s2SzK$n0^>c6b-Y!K1tNz$+Csuwlbn=cCoaQu zt%cLZ2(7;os_bE|dS|OYydoURNlA)WigC#(O>wLuq9YsOxSjO|vLkSMj`dlDbpNv_ z?UH@rEB#z34%O?LnuwTr16 zD|UtYvs=Jz36io&NKiJB94Y&bw;8yBHlgL&5+t}JB)}z-Be>0N4BX4#5vsB+L4r#{ z0$d_Fg8S4v4BRQZL&dmunhhzbl*FU7q^`}Dy|N_Sn@ic~=ZK6Mxsh?Y^%+}B{A%-V zX35HS8wp$6NkUS42ltmG`Azq{%c%XGcLn#umLS0;A)%HK$x$s?{+{Im*^k~6wi?+I zB(NkTfF+V6unYgjxaj9&>O^}nreK>v|BMj`6}~M@rj7)su*o33q>Y|k=1sR!K3A@1OeUe`$~%rRz}bagd%A2TUETkY5<#+*`+ zB9)zqIgy|+0W~soRN=>e$h6O2ekin0TY}U+Nl0j)L~;Zdo5`_-Xg}kR*=`(X{V|e| zFn4fAd6GYdv$595{eRW5*d(~vrDcU{yAO-iE=fq*?cfHjB)BIYVBpfp5geN{UR}D1 zcg9rOOx==F;wK-JSRjdy>v43R$C%mD?PPGHp7pL^oI2^n8o-tyS%!p!wn`*NZ8htk zOrLnJTK7+8D?P>NQj#K|Eq$UPDD;U2(Gl>^0NiB`!O*#8TDzK>F(<8b&+%~V`jZ$Gp@y=A)P(2-&o&K zKHF_V=_GD635he^&bRNs8Ixfjw2$q4Z3&XeNJualksO(<@8=xc&!v-_b_5YFge15i zIfDBM2Y2)r!j2VNf&`a@1h_86LP@WsA)9JX9} zIvHwbCE?LMqb(dxp3WqbT2&5|uz)rdGW#obe;FE4Y#wX%?isbCQ@P=A95y*p6^hM6 zX*_+)ONvG@;|z|f1dIb76zn8hg+&R(2c}=CCzM&y|ev4*EF(~C++zm7zf18eq>uNT?E2AXp zd#30;2}U*ZMJ08ZJ13erucY+THh62$z!^X19|2AJ*Bn;sp}viq3a-$ zqpqW%8)H*i+PGSW7K}=fs_J);KR>x`@s@Rxhhf`P61LV&zFtyS|D1eARdiJf-OxJ= zErO4&oPw{AUebnEWL{PujL)o0Ik=f!f z)pt)1rurUVSkB*)XiJbfXc7`SXd*f4pr0&c;AZwL53nIv6`eD@CViZQEn z(~deaGLm%FQQ%?f@=c!dW7tm7mLOGL5)$eyksMW7ua|+l##`=T;o1@;xFjUNC6Xh! zrM~i!vl2Z}@@;9iw($f5-J7|9tz?JAqZ^jxhwfSE{+Fqf8>k4o6@Lyct|8ViLO=y2L_J<`&4 z9IjFw2~Ijs@vodd-7UA^rkA);&1BwmtJ>$~OsHr?BzEIR`RTrs8SuC0SP!R*Bfu+q z9_glSD8r6BU3I*94C9E6)h-wD zln=6upc8b$sq}EzTzs#aIys}^6qd!H*&|&TzSWWjjS`i5y zlu^L+(@%$=RZNPg>5NKdX!>2H5M!|=NZmXM3Ee!A9Ch=r&%}02XUD=O`c9E6NRw+mk z(3X=whM;ir#~?ZazPk?1%H6-b(xU85{e`%nEkRN?2?@$3k|WH|Oe;T8wf?d^OI7EW z=c@Kq!EB4}$EYO(m<0sVeM*v~dqYsry+L$Tj(*3NkFfM+7vnfJxhIK{L-XYKuz2|1 zELBoQYv#DpZOQK+&$Q&XtIGSZF%?^aRJlkqrq;@V{m6) znqv*oq}b&BAE`&Ev_E*j-{WrQgT-%Y%Y8&8-8Qs>+d`GpwKgd*3qCL869 zD6WF~&Yde9&tK6(ZK>9E>#9-wKDpMU78Tzw#FiGH5p7}d8R~Tve@3o#-~)}j4fUg} z%=A27XU+3lzCLOZoLBL^jrYcVWubN@jWJqUq4@S;(+R=$o2(r)o1{;GUPEMwblM;T z`PKXix@k-Z`qH^>8k_KJP-+&WHz=tIbp|CB=ojPJ-8Ckk&INh%)6f3}rp~&#Wu#Rt z)5mS8zD4)YFe^OI)^WZ0{6P`Lp?L#4X(*L(w{t3(KMGr zQ$WtOq{ay}Q%{YCxxc5*{Sco3y@tsW=`>6R@=L!j_te;xT>L^t5}Dg)7->{5ok8Aj z6urWD6VfS`HAh>J~w=w_~G6eXsfP2d8n$}Tnc|x zSL|&an9z8XyaOV71QVoAbnb=pq!caVpx-DCU4XAX$GuQg1?%;_2{rMppoQd@F7&@y zqisHSvyP3&CqPe~St1=JW+1=VUHc>!qrLMq7Ne6d8MM#-_yp+j%o6GF%s_ted?ioA z?5-ZYW#4gQUr<%AJ7_7=_2T(7*0hAUs$qJVn(ax$V72oW4H>W@n9V1rI_%5?Ad9hR zTkN8^p4I(2(j@9>$V3ENKsxE$2pU%D(Y68#PMU=*p_s=yUWA zjXGUCSZ{CB7eKF088w|cWgx%m^vGb1X=?jBb^0Tp06lhDA{}-a$S-!+->D(ppYPO> zu1|m-yDX6oyA0$PyBi8L*k!&oDf=#KxTbNtg-|{2UCDKd;DY;AjxBd-l*3S{)35pj z=rPU`>F~@zezCj0P=no{_1N_Z&|{Y+(qWf@{9<=akp{bW4$*0YJ^^~{vP3%UGLT>F z&L5(=`>}tBh8h69ppkIv7xm!cd4-D1mJbVK5C!AnahZzxNsUBMB*bS&nL|jMRTxJ?MYq(;xfL<-IL^`#=K>pRjFb#J157TL!J^^~{vP3%UGLT>Fj=fi7Jl}q=4!b@9 zdhD`9I_xr#U+nfCu5lfLSzNoQu82%(PU|&!B8g4qn}L zpU$;hp8&n8V2O09f`R<1ii7uQu-j*Z&Qi}OK#yIPNQYep@{8RIBQ)53^nM-b`UL2) z%M$6Z%Rqjyd+dGI{QQDC0{J)T)29iAD;AD(eDqUp85`!KFFe>vouvG^F%Q)$#%Wyk@ox5cN`B5C&VXlNr z5U+DS5~u91IZdK|M%o4|fAdmB)sj>#6&ucyT4>jAHCne{=R{j{^pa6*>50n!%Lhum z)+9J|-t>fjvq#CB^i^!NtEO^vaZQ%A|ASNJUW^|Zr!|s{*I7)Z`2y(m$}CZnl5#a9 z2J)v@rbFX3*iCszhh3ilJ$6|l9d;SWFLn<+q`_{&1RaBcPk9J3Iq97DYGVN zuzPNj&e3L{06lhDA{}-a$S-zxKCHoRT8Yk^<7s_~HLJ-& z`>PV2rJzrM9?vY14$lna7tgqaVxj6sGzMJPWf0Asffhpbir`AFQw|s0ufi-S)fhRO zy#UvQ1vYZ3sT}M#89Dz4cjLT9&NYu}D0)hnRne5aPk^4pS)wK-RYy(+@=MOR%GcDG zG<&j6H{uhZ$1Y2x!!85)#cui(4R-fW#YL-GQ>;OnB5om6k9${gog%p4ewD*ARj(W~ zr&{Cn%h5d4XE|7MU*%wMzsgZsuF*_~(Ef6bfli&pHUo07-=vwUG-DDg>SlkFx(EX@l~bIXaL360TOI&H*Eq3MTNZh1oICW}viUd^yX zIyJ*Ue$~wSCz^Ql{P_u;b&^kj9#+G(_r89`K1l= z1Fc;nYTEraBbd<$Q?uu0h*DF;miFCKDy$=;m<5}8fEkAz9AR2_OF&$h7l7`1#@e0o zW?S>(#=ywST!pbukp#o+>v-dd+PPj;AQ|Rad(!#Y)_#U5GVGjE_mFrc>q*i4K~tRhG$w}?M1cESdD%cU7=MAtc6rL&uVOu5T^XW zIdYG^($NH&OjEw6Bg!ty%3o)zqI> zTX(Fjk@hUL_GLZ5a%)T=64SaV8F2>nM=k97DH*ZOh;FZ;AT39IAQu^RHXP(X{f9DC0HBIq&*K+|MuRE_w;IT=ooVd0#bZxz~%Rvx8>{W0iH#MM}QK+F5$?#sbxarPc>Sg$mPll!K%wmF;&tF5m#hf}r2ddgrc*%s6c zPjl8L1irV4If$uX$Zs<(SCKeHM+TsBmZvQ*&Llido}gXE3ZNOtQ7`oxHnou z;k^*|eqv2+hN-GeC}79|>+8)iw)Rs^h4#v?+h^8&&Cnrej)knBTZd9bfe=Euhv9Lr zwm=B=4n@<|&jGMJtfKUAg`zQqX|~0@Qh*+4-eK!84Q3ukW1EO262}>P#Ja3GoGV{g z%^E`Vq7!;dQ#HMC)_!HJ^r3cMxcSF@_Eenr)h9HC?L}w$H`de)Oz$Wiu*8 zbIw`It5#Wq+Lppbz>EP*)Q0oct}Tmv>b&(fYFOVieGV0_#dlmhs6wuHpfVq|joud3 zw0rd`T>1~z!5W2gHgGP;(jPTPY%iRwpPI#?GncG0sJ07Q{iUC=)Ov)T`q`S}BO>e( zPX(czD=@P#0nmk?t7q)M8@?w3*Woy3x{Q=n%m(WBlcKN?PM+Ppl zDOar*H59^=*k30I!1&9vNSOVn$*|Bts&&yv|o1BC?!+L|T!7^~DaY7~5pRU9Y2 zji5CN^2*Q{EYvh7OSDmo{a}c&qZvedRj9DaKr`AIn)EMTdFF=;zJ`&a)U*Wq;dVk_ zjppTSf*dC?Qt&k)<~T>91YZ+khC?%Bgc;QE89dltiV?CJhla-r`D*LA$e^stAcVpx zyuCFYI;EDh;;;p|Khe07z)xRa6uU-NN}b1Yd{+Jcdl zS zp~6QS^u(oZ51PN>u%LlcrTnmw+S1Yp|f#-rfPbTIX_T11< zmFKy2sGzl~^~$qun5Mpa;gk$-9w%sou);tiKTXr<9K49Fy5DDS#2JT*X_=p#YRGZA zJSb=_5WR5Bqct_q3unO?;evrmJ`2!b+zSzU#!mJ*h2wOhr=q{1MQgAKYGOF^ zVydcKxEx@3m=-@SC)nn?Z@JKs zCM*?pd!%@P7QWy`{T|A%6uOX^ya?Y-$j+0AyJ_Yhg^LbCb`+t=nX7&KpM-JF7sAVf zD#eX2xhW#{0Xn+EO_4`{Vm6Jh7Ir!LL+nE;*V|t4;<^)szAngQc~R(1v9G!5f{#vi zfUK_kdCbT^H;!4eQb_i~aS;q+8D>%98VGFUDxs39Rte@d?5dZgRSs?ci_nSU-xSiL z*lL{l6e~qMyAlR>e{`;c5S7H7c`|ecV3wD1e%fFvN0|7OkVNrouvjj56Qt+A=_1`l zC7r)n2%?i~gv9HmpT8RPcfJW#+xE6#qFrx8wAW8JoO1snETUn5fpTy93yQJpFT$Yf zWA#Oq%bGQe%fFyf>(^YDbVJ?}*3j#33yB6tZJl^a5U+zp^I9i8cNJkV_O_6G9YkZ_ z2GRa+3(>T#2IY2EQNeYPOs)aR@ii(*UNPBprAA1-4wC8XKyuzX2bYGMR24=21kuH} zuY+<5Wv&-?(1~}@{W+V|JJ(U^Db(*Bm7b`o5N}1jHe5$5N}*93oGf;w?QaV=(R}-L z(VPBPC%s%I$D62h<8{$nvJv#^Hws4j_8lRa3hmDJQ(?ajQ6|x9yReWfn}m2(lw&qs zS4A(_BrKq-E^4TlYgNeK2`MyTGpMcFjDBa++jv~uEcCw)_3pO?C0(|KQFC-<*)(vo z5PKaY)Bh$cjAGxKEyERI_6ZYp-0*BU*O^1;du(2@6|;vE?_rp(+zJI)x(&nIIJ%`) z=t|??72>a>03aXw#*%jhgGzqUHfUAVHX+?f{`9u%A#Z2o4OIOe)7tkieQ}e%<9eB1 zQR`&7q1H<#H__$o*Hx)pcE3cDDEU4B#ekWp~fOE@ju&B*Nbo6JXUM)oiYd;F&GcQ=K-jKW^ODSRvp zH_)hk7^K!56cTCHK9D(8CyWVWU*cfxkzL&HMEma%W9*YY5vDtkSJerSro1J*f1s5AxtewpV;6^mn8HL-ADq8CDFw zlG(u(tnxe$FqBG#hXt!{5x`InD*J~}5H$pylX|3;?GH}DCrZZ9FGqz8{{T5(3f(nR zJby$GBAVnueO^?O_<2kFw@0uz4r4b%#-pUU3KidyV6^Z45{CHJomvfQ^$l(RO6c4)IQtYP<>q=p zc7u{=>oJTAS@l9l8=kb)L$q#YMv}d07Yft_TR(ze;T$My;j--YchmB}; z5ettJR4R0wMxPYYG@^oCSTuTdT7qrS)Yz)i*eP~J^TeIM7cx9B`#hSSM7zEhhS0+2 z0^(`xNff?O$h;`PL0U0V;D)cJy-@K{%h+b zqy5!$La#t7`$;gy4MgVb+gYk#TDAn_vjIAOQONNLY}Y6yoqa=!p~{ISoH|`&uu^Se zW{6J$Z9NE3LX4P3m2C`0d-z3RdJqk|iiI*B*g(1pX(AL(SHFXXbFHku3Wd%41#wz{ znZF3D86cG!ei6F4Lh=i>Vk1gfFO-OlXzXJ6@l+ZhCeyJ170O?GdF0hGK+N=hO{Uc^ zr$W@>}4ux=KML7-VrfRC&8SV8!VrYP^M2NOkhZ*f5ZN+*++uOhl>(LoQABUm#D}qI{ zc5JWttm!`lhS;pYA-qIsP&nE<|R!T8jV-26(y(s|~j%;}8EjVY%CJr2r*5$TIqnh2g>@qJ) z9Cr7;>@X|F1D1>(T)G1L+rwT2EN~+37Y^l^f>PY&XyZsuuS_>Z#dtI31m#>d3ACxR zIEnJJ#Yn2iMq?<<7PnA&ju;!GejHBa%mUunx0@%>@f0nn%c8Ymb!Ek zM>$*7!>A*SKeR48ECo%*^HptCC;MP7v?)6*p5_z=MADw_Vez~z6>q?PMrn8PRFp>> zakeFz{R0NV%EAC6%@`gQf;PJQuV!CMmVl^(YLy_Xo*ntJ4mxO$K; zW}`57<%Z!X;Jc%y~g zaj~wp0N3s=_Yr5%vA*I!mZh0$52u-^^e)V9pq8;zT!;ZN{8ohKeUKhY`R_?a>V2zN z5X?q9{+Tao-(QStdp95c+!1XY5fqUUpT=5uXltH=*7Y()(UpN>xcgn8QCor`z-o;+!O-*PqMyt9tiC+BQ=rme(x44#~hl*Y7(}s#i3~|%I z!4!;zk7D*&hHwdZ!YqK_+35Z-qS;8tm}FN}*}!PQSEKmAM#;M=qdIV)=^8gDs z0x_Gz=yt{=Tfm$y_N*FliJ^J4+I8aG7NGTeM_kkbv;!N&r7b`kzfmk}0ooyZvqk9g zpIrNd%`HN^yrtQaGHSE7Hd|7L7P_t3k}|aF_nIv!Lo;s|jRq<_Ek;w}w|LaPEyBjI z6Fo40t=J)U^jVek>KH>e`-p8 zjr#plyyWU9X8J6#+J^UjE6(>VVHI!a$>vI<;_drhztO1mui_2)m$;xM`5rwjj&A`T z^*sX>@az*DD&XuG!l_vmP+MQ^+2)i$#mhU_oEE5fYtJ_;INm$R7n;)pmENi!n^Oc8 z&-jzLtu-bFv-71C%D*fIH45{2L_VQ8xZHS=t?H%kN~em9!3_`csOT%0i{(QIECy zicip(_0Ta{qns^rf_+w)6ltKm+hIpP)+fM`q&QNtP})43xLvKryA|fUJr`r9?7!kYI+KAX#JB?vakrlRHZBO@t0Y=~UK98ruy2hdN2v z%XW(z>AFyLmNed1jx#$;xs3&8$(AE{b*TcqYIg?_vpXenWZP!dzwS%O!hGuZe z220BgRB@*-oeC|Gjx|T;^j*@P=5RI@x%3NWn_*0&n6A0P(6pP}N*3#E>SeoIo9vVB zllp~I<-ZM)lpQLC=r@3xhom*w4o=2qg>S@B6QxZpLX3Y{dc8%6+e)O9EkayXDjjSQ z;;b^MTR;w5Votzj;sh)RE!dsCf_DqnOio*=rPT;@Vc3B|EWf@>uM9{}iITCvWS>K3 zmh>?|E^npS-8lYY3*KbmZdgBk2ty-h{UI_pnE!uI`- zqd)eOXJ&@C(Dvz4lC~h|$LZ2nqpyu;ww=n2WXR)TRN!dnB-1?&-s#gPq)#8bmTU$? zB^9;#8(Z5W%eAKOAaL%@xSli(>jb_6_>Um+UGTr~A^!+uoq2qlrqqHl- ze(OxBv%fXWHHa1;(yigiPf0f$9-_COk`mlMXJ3#y;H}*(DG5IvW=X$=SDfutP%y8b zs;4pe;W6-Q_OxVF!!cC&v^2snh9WAYgh1vC%_~4xXGzg2G{rE+-nl~hjR6~0Z_k#} zynedk?d%_=j5h3e0P}ECL{g3|f34BpcaCH>7|Lk>@1!))Zxm4J^GHEOin52yl{N(6 zCFfZwF8DF%%2e#NXui_2xl*EvndV4MQ zUsSre#mGaG)2)VqG&w3guJtr-ab5S46xFpO$~T&KLTtQsej3R%WD0~>B<|D8+qtm5-y(CTKEaT$K z3JF_CE2L2U_s;sDC<=X98iPZnkG_manAZ=PtEEV)n`<)Cl$WJ!s;owTFwTB|wPZ8U zj_}NADt#3b^roR)R~)9fNW@;_Y3|EXDw$uCrWmHtTd!e7=k-(dIyxR6BegC?Ynw*5 zye`=i`a%}0>}=3<%8Yl?l=f#SO6t^V2&%0d|D%!Se~8@HgEB=7QQAkafubn~iU*z- z2ioXfWEcM~I?jIa&(cZ*&E1ylLNhofUPrkxEwt}#tZkeL z`71UQ@5&6KZ7&7I)7mvq7>-i80ouT6Wp}`tyJ8^@-XPaWuQIAud;L18)-%+1Vz%BcaSwp%_$qwS@er9mE~?ZCkeN}y-k*KU<&IzYACq~1I)d)YRr)WKTqdngkpj8Lep zDxK9@FRHIag_&!SOU-)pr3^+RK23|HhJ+MsuGUI$r|9CELG8P?OYnGwq?B%e_ zaa3?X3TeyspV)~i^g#6J0VxKE5B@B*r@9%jMyfp^^@eY@M?aNPFg7&`pjcS-=U2hA z=af$+3-D~8O3%^SgHnHwN8Q&@<+9_D0st1=@x%h!8CpmOXR`J5K@?ak1Qg`Obv&nB@|r=){p)} zDyA#{!LmEG5|5HYKyfE4EQjjzEIG=GBT_XT_(B@u@!0rT8uabcK%BX{DhI**D-EP+ zN2Mc%5-R#q>PmC#F&EJZyK_=8V(7>*$j6c7=C7pglzT$zNcsPbG1A_zq!JAMFV{

IqGDdCmeUDWATDAk)} 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 Rzl?NV0uAS-x7Q~m{x4ncpT__I delta 147949 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 diff --git a/code/ryzom/tools/translation/translated/job_words_fr.txt b/code/ryzom/tools/translation/translated/job_words_fr.txt index 4afb08c45560bc5b6a381fdba6337a7a25251a6e..f088c61dd2dcde086d4cf602784274439408cced 100644 GIT binary patch delta 705 zcmZuvL1+_E5dA;9+1;Pr%_i$6QetRTw1<+0_E5EWFxb>kFouG7um{&BrD>bAX4|MB zq89~E$~)Gh2N5hn^(NSZ3SK0=h)0itR}WqU=kJCfRhB=q^JnJGyqW*8@M8S&&e(aj z&RXm`^VueSK5LU4VM}zo#R{aiScf%PgY>N@AI6IR3l9bf!NC-i)WbN&zu2n;-6EhH z1k?bJo#Ctat)IX`tj5>yGFH~t!U*zdIe5w(?kN^lNdFQRG|j`Fsp6}$!$0AndWz&b zwK*i48)0>7PqrK(w8#ojj2A+$?Cl>v)fmE^_~(pdBMC>nwL_X6T-A;{2R!h_FrI5w z9MLTvfa{k8Rbd-)I4CCa*woJvqc{46kk@TIH9R~rW+`^xxFTi=xhX4QLX7@p`63AU zeG?JSsl*E2>IR-AB$}L$X3n8)rf|)iCai5U;9WRYIo_2^38%YZRnW5x>{+M#w~}4f zu2Ou%zNiQ6JL~pidv*;oNf$rq%p@o2r0^hFC(IwoGRX<&CVGyA*Ur3%o<%3h+&!7f za=T8;lS2xaV2c<|=dqlg*88{NP~WE)P;p&Mx>erXz3*;wzJ$D2Ch5m>xa-Z+-@bQQ qp>2gTtz@d<<`-#aN4-OMm6=j#k0`}*P_wl`_tMwSo*mdFHS-4{2D_>N delta 631 zcmZ3bcT9J}I&pV~QifE9A|T8J(+Ui34EYSD6K`ruqDvJsKqV(Ta!OA2V!X!b&5+2D z3)GlAS(nKYiRZ{EJ-Ls`kI`rHT_#snACRiag-p_uotS+X!zTALhq8wOEz4sl0h`3a zvWd}k@^%(;Ao-pplU*0+gj9yo$%U-CoW%?v1rgC}3-hy;>`oZ*}y zKz;c@9~MlW$f=IRJIGlK^oJ=|D3I*tDrHQb%*ySI;(y7>dE8z=Q+9HDatDI~lpzfW zbHJgX!Q%(iSI*-KB=_4Jc3E*@Chi)lD(d7T4(v!PH`6mAn z=9#=fM2Hg<`k-`>Gx;E={Ny#FpjiGb>JN@(pu2#fo*@8w~ diff --git a/code/ryzom/tools/translation/translated/skill_words_de.txt b/code/ryzom/tools/translation/translated/skill_words_de.txt index 77e43f4fa510ac43f3b40e50fa94355601e5f0dc..c9c4ad3de24e9e99704f9f55403ff92ddcc63697 100644 GIT binary patch delta 84 zcmX@q&wr|)f5Q)6#Zrc1h9rg}hEj%Ph71NyhHxOOgdq_~Ld7R{hz1$>M^%(T6Lk2z>30334|Y5)KL delta 84 zcmX@r&wr?&f5Q)6(L9E9h9ZVchBP4LWC&*{Whh}toV?OgezE}{hd8oqDw4dQmuhnb SUwZ`~BM>ufui#@2+6e&KLl#^B From 5e65bb1caf033ffc17b93373a4e6fab3e21fb5fa Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 6 Mar 2016 19:42:06 +0100 Subject: [PATCH 121/184] Changed: Updated translations --- code/ryzom/tools/translation/translated/en.uxt | 8 ++++++++ code/ryzom/tools/translation/translated/fr.uxt | 8 ++++++++ code/ryzom/tools/translation/translated/wk.uxt | 14 +++++++++++--- code/ryzom/tools/translation/work/wk.uxt | 4 ++-- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/translation/translated/en.uxt b/code/ryzom/tools/translation/translated/en.uxt index a853adbd9..d52f579d5 100644 --- a/code/ryzom/tools/translation/translated/en.uxt +++ b/code/ryzom/tools/translation/translated/en.uxt @@ -27289,3 +27289,11 @@ uiCP_FirstName [First name] // INDEX 6479 uiCP_LastName [Last name] +// HASH_VALUE 6DA7FC912D38D095 +// INDEX 6480 +uiHorizontal [Horizontal] + +// HASH_VALUE 749C54586C5834A4 +// INDEX 6481 +uiVertical [Vertical] + diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 44048189d..e015a1d55 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -27262,3 +27262,11 @@ uiCP_FirstName [Prénom] // INDEX 6479 uiCP_LastName [Nom] +// HASH_VALUE 6DA7FC912D38D095 +// INDEX 6480 +uiHorizontal [Horizontale] + +// HASH_VALUE 749C54586C5834A4 +// INDEX 6481 +uiVertical [Verticale] + diff --git a/code/ryzom/tools/translation/translated/wk.uxt b/code/ryzom/tools/translation/translated/wk.uxt index 1dabca378..156a20604 100644 --- a/code/ryzom/tools/translation/translated/wk.uxt +++ b/code/ryzom/tools/translation/translated/wk.uxt @@ -27484,10 +27484,10 @@ uiNoFiles [No Files...] // INDEX 6473 uiByte [B] -// name generator title -// HASH_VALUE EBE4B481E866A442 +// names generator title +// HASH_VALUE AA699882DFD7A376 // INDEX 6474 -uiCP_Name_Generator [Name generator] +uiCP_Name_Generator [Names generator] // for the generate button // HASH_VALUE 6498541C641C14C8 @@ -27514,3 +27514,11 @@ uiCP_FirstName [First name] // INDEX 6479 uiCP_LastName [Last name] +// HASH_VALUE 6DA7FC912D38D095 +// INDEX 6480 +uiHorizontal [Horizontal] + +// HASH_VALUE 749C54586C5834A4 +// INDEX 6481 +uiVertical [Vertical] + diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index 13375e113..36d0dea9d 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -13466,8 +13466,8 @@ uiFixedMissionEntry_Mainland_Unknwown [Main land / Unknown] uiNoFiles [No Files...] // symbol of byte unit uiByte [B] -// name generator title -uiCP_Name_Generator [Name generator] +// names generator title +uiCP_Name_Generator [Names generator] // for the generate button uiCP_Name_Generate [Generate] // Marauder's nation name From 7a5a8093c43f5d7dd24ca4fe8e0ed92d75101bbe Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 8 Mar 2016 12:46:15 +0100 Subject: [PATCH 122/184] Fix curl crash --- code/nel/src/gui/group_html.cpp | 8 +++++--- code/ryzom/client/src/login_patch.cpp | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index 7ae9870e5..1b5e36964 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -305,7 +305,7 @@ namespace NLGUI return; } - FILE *fp = nlfopen (tmpdest, "wb"); + FILE *fp = nlfopen(tmpdest, "wb"); if (fp == NULL) { curl_easy_cleanup(curl); @@ -316,7 +316,8 @@ namespace NLGUI curl_easy_setopt(curl, CURLOPT_NOPROGRESS, true); curl_easy_setopt(curl, CURLOPT_URL, finalUrl.c_str()); - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_multi_add_handle(MultiCurl, curl); Curls.push_back(CDataDownload(curl, finalUrl, dest, fp, ImgType, img, "", "", style)); @@ -423,7 +424,8 @@ namespace NLGUI curl_easy_setopt(curl, CURLOPT_NOPROGRESS, true); curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_multi_add_handle(MultiCurl, curl); Curls.push_back(CDataDownload(curl, url, dest, fp, BnpType, NULL, script, md5sum)); diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 20bfcbed0..baf7044df 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1414,7 +1414,8 @@ void CPatchManager::downloadFileWithCurl (const string &source, const string &de curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); throw Exception ("Can't open file '%s' for writing: code=%d %s (error code 37)", dest.c_str (), errno, strerror(errno)); } - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); //CurrentFilesToGet++; From 68814a1d9483fb59561b6c52cd692db18c3da46c Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:21:53 +0100 Subject: [PATCH 123/184] Changed: Random names generator updated by Osquallo --- .../gamedev/interfaces_v3/names_fyros.lua | 4 +- .../gamedev/interfaces_v3/names_matis.lua | 6 +- .../gamedev/interfaces_v3/names_tryker.lua | 4 +- .../gamedev/interfaces_v3/names_zorai.lua | 6 +- .../gamedev/interfaces_v3/out_v2_appear.lua | 88 +++++++++---------- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua index 239e5b924..d208e62de 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua @@ -1,4 +1,4 @@ -fyrosLastNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" +fyrosFirstNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" , "Abycakos", "Abycala", "Abycalaus", "Abycalion", "Abycallo", "Abycalus", "Abycamus", "Abycan", "Abycanix", "Abycaon", "Abycaps" , "Abycarius", "Abycaron", "Abycaros", "Abycarus", "Abycaseus", "Abycasse", "Abycatheus", "Abycathus", "Abycatis", "Abycaton", "Abycaxius" , "Abycus", "Abydix", "Abydon", "Abydos", "Abygrian", "Abygribus", "Abygricaon", "Abygricus", "Abygridix", "Abygridon", "Abygridos" @@ -286,7 +286,7 @@ fyrosLastNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycac , "Zenathus", "Zenatis", "Zenaton", "Zenaxius", "Zenbus", "Zencaon", "Zencus", "Zendix", "Zendon", "Zendos", "Zenion", "Zenix", "Zenkos", "Zenla", "Zenlaus", "Zenlion", "Zenllo", "Zenlus", "Zenmus", "Zenn", "Zennix", "Zenps", "Zenrius", "Zenron", "Zenros", "Zenrus", "Zenseus", "Zensse", "Zentheus" , "Zenthus", "Zentis", "Zenton", "Zenxius", "Zeperian", "Zeperibus", "Zepericaon", "Zepericus", "Zeperidix", "Zeperidon", "Zeperidos", "Zeperiion", "Zeperikos", "Zeperila", "Zeperilaus", "Zeperilion", "Zeperillo", "Zeperilus", "Zeperimus", "Zeperin", "Zeperinix", "Zeperips", "Zeperirius", "Zeperiron", "Zeperiros", "Zeperirus", "Zeperiseus", "Zeperisse", "Zeperitheus", "Zeperithus", "Zeperitis", "Zeperiton", "Zeperixius", "Zephaan", "Zephabus", "Zephacaon", "Zephacus", "Zephadix", "Zephadon", "Zephados", "Zephaion", "Zephakos", "Zephala", "Zephalaus", "Zephalion", "Zephallo", "Zephalus", "Zephamus", "Zephan", "Zephanix", "Zephaps", "Zepharius", "Zepharon", "Zepharos", "Zepharus", "Zephaseus", "Zephasse", "Zephatheus", "Zephathus", "Zephatis", "Zephaton", "Zephaxius", "Zephoan", "Zephobus", "Zephocaon", "Zephocus", "Zephodix", "Zephodon", "Zephodos", "Zephoion", "Zephokos", "Zephola", "Zepholaus", "Zepholion", "Zephollo", "Zepholus", "Zephomus", "Zephon", "Zephonix", "Zephops", "Zephorius", "Zephoron", "Zephoros", "Zephorus", "Zephoseus", "Zephosse", "Zephotheus", "Zephothus", "Zephotis", "Zephoton", "Zephoxius", "Zephyan", "Zephybus", "Zephycaon", "Zephycus", "Zephydix", "Zephydon", "Zephydos", "Zephyion", "Zephykos", "Zephyla", "Zephylaus", "Zephylion", "Zephyllo", "Zephylus", "Zephymus", "Zephyn", "Zephynix", "Zephyps", "Zephyrius", "Zephyron", "Zephyros", "Zephyrus", "Zephyseus", "Zephysse", "Zephytheus", "Zephythus", "Zephytis", "Zephyton", "Zephyxius", "Zeps", "Zeraan", "Zerabus", "Zeracaon", "Zeracus", "Zeradix", "Zeradon", "Zerados", "Zeraion", "Zerakos", "Zerala", "Zeralaus", "Zeralion", "Zerallo", "Zeralus", "Zeramus", "Zeran", "Zeranix", "Zeraps", "Zerarius", "Zeraron", "Zeraros", "Zerarus", "Zeraseus", "Zerasse", "Zeratheus", "Zerathus", "Zeratis", "Zeraton", "Zeraxius", "Zerian", "Zeribus", "Zericaon", "Zericus", "Zeridix", "Zeridon", "Zeridos", "Zeriion", "Zerikos", "Zerila", "Zerilaus", "Zerilion", "Zerillo", "Zerilus", "Zerimus", "Zerin", "Zerinix", "Zerips", "Zeririus", "Zeriron", "Zeriros", "Zerirus", "Zeriseus", "Zerisse", "Zeritheus", "Zerithus", "Zeritis", "Zeriton", "Zerius", "Zerixius", "Zeron", "Zeros", "Zerus", "Zeryaan", "Zeryabus", "Zeryacaon", "Zeryacus", "Zeryadix", "Zeryadon", "Zeryados", "Zeryaion", "Zeryakos", "Zeryala", "Zeryalaus", "Zeryalion", "Zeryallo", "Zeryalus", "Zeryamus", "Zeryan", "Zeryanix", "Zeryaps", "Zeryarius", "Zeryaron", "Zeryaros", "Zeryarus", "Zeryaseus", "Zeryasse", "Zeryatheus", "Zeryathus", "Zeryatis", "Zeryaton", "Zeryaxius", "Zeseus", "Zesse", "Zessean", "Zessebus", "Zessecaon", "Zessecus", "Zessedix", "Zessedon", "Zessedos", "Zesseion", "Zessekos", "Zessela", "Zesselaus", "Zesselion", "Zessello", "Zesselus", "Zessemus", "Zessen", "Zessenix", "Zesseps", "Zesserius", "Zesseron", "Zesseros", "Zesserus", "Zesseseus", "Zessesse", "Zessetheus", "Zessethus", "Zessetis", "Zesseton", "Zessexius", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"} -fyrosFirstNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" +fyrosLastNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" , "Abyllo", "Abylus", "Abymus", "Abyn", "Abynix", "Abyps", "Abyrius", "Abyron", "Abyros", "Abyrus", "Abyseus", "Abysse", "Abytheus", "Abythus" , "Abytis", "Abyton", "Abyxius", "Aean", "Aebus", "Aecaon", "Aecus", "Aedix", "Aedon", "Aedos", "Aeion", "Aekos", "Aela", "Aelaus", "Aelion" , "Aello", "Aelus", "Aemus", "Aen", "Aenix", "Aeps", "Aerius", "Aeron", "Aeros", "Aerus", "Aeseus", "Aesse", "Aetheus", "Aethus", "Aetis" diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua index 81b6dba29..28d9584f7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua @@ -1,3 +1,3 @@ -matisFirstNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} -matisFemaleLastNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} -matisMaleLastNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisLastNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} +matisFemaleFirstNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisMaleFirstNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua index b52dfbefc..3d4c535cc 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua @@ -1,3 +1,3 @@ -trykerLastNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} +trykerFirstNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} -trykerFirstNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file +trykerLastNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua index cadc728d7..be0d2d2c6 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua @@ -1,5 +1,5 @@ -zoraiLastNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} +zoraiFirstNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} -zoraiLastNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} +zoraiFirstNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} -zoraiFirstNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} +zoraiLastNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 5045e072f..e74c15469 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -19,80 +19,80 @@ end -- tryker: given name 4500, FirstName 4335 -- Fyros -function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end - - return fyrosLastNames[math.random(nbFyrosLastNames)] -end function outgame:getFyrosFirstName() local nbFyrosFirstNames = 0; for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end return fyrosFirstNames[math.random(nbFyrosFirstNames)] end +function outgame:getFyrosLastName() + local nbFyrosLastNames = 0; + for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + + return fyrosLastNames[math.random(nbFyrosLastNames)] +end -- Matis -function outgame:getMatisLastName(sex) +function outgame:getMatisFirstName(sex) local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); if sex ~= nil then dbNameSex = sex; end - local LastName = "" + local FirstName = "" if tonumber( dbNameSex )== 1 then - local nbMatisMaleLastNames = 0; - for _ in pairs(matisMaleLastNames) do nbMatisMaleLastNames = nbMatisMaleLastNames + 1 end - LastName = matisMaleLastNames[math.random(nbMatisMaleLastNames)]; + local nbMatisMaleFirstNames = 0; + for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; else - local nbMatisFemaleLastNames = 0; - for _ in pairs(matisFemaleLastNames) do nbMatisFemaleLastNames = nbMatisFemaleLastNames + 1 end - LastName = matisFemaleLastNames[math.random(nbMatisFemaleLastNames)]; + local nbMatisFemaleFirstNames = 0; + for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; end - return LastName; + return FirstName; end -function outgame:getMatisFirstName() +function outgame:getMatisLastName() - local nbMatisFirstNames = 0; - for _ in pairs(matisFirstNames) do nbMatisFirstNames = nbMatisFirstNames + 1 end + local nbMatisLastNames = 0; + for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end - return matisFirstNames[math.random(nbMatisFirstNames)] + return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker -function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end - - return trykerLastNames[math.random(nbTrykerLastNames)] -end function outgame:getTrykerFirstName() local nbTrykerFirstNames = 0; for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end return trykerFirstNames[math.random(nbTrykerFirstNames)] end +function outgame:getTrykerLastName() + local nbTrykerLastNames = 0; + for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + + return trykerLastNames[math.random(nbTrykerLastNames)] +end -- Zora -function outgame:getZoraiLastName() - local nbLastNamesOne = 0; - for _ in pairs(zoraiLastNamesOne) do nbLastNamesOne = nbLastNamesOne + 1 end - local lastNameOne = zoraiLastNamesOne[math.random(nbLastNamesOne)]; - - local nbLastNamesTwo = 0; - for _ in pairs(zoraiLastNamesTwo) do nbLastNamesTwo = nbLastNamesTwo + 1 end - local lastNameTwo = zoraiLastNamesTwo[math.random(nbLastNamesTwo)]; - - return lastNameOne .. "-" .. lastNameTwo -end function outgame:getZoraiFirstName() - local nbFirstNames = 0; - for _ in pairs(zoraiFirstNames) do nbFirstNames = nbFirstNames + 1 end + local nbFirstNamesOne = 0; + for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; - return zoraiFirstNames[math.random(nbFirstNames)] + local nbFirstNamesTwo = 0; + for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; + + return FirstNameOne .. "-" .. FirstNameTwo +end +function outgame:getZoraiLastName() + local nbLastNames = 0; + for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end + + return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() @@ -114,25 +114,25 @@ function outgame:procGenerateName() lastName = self:getFyrosLastName() firstName = self:getFyrosFirstName() fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 2 then -- Matis lastName = self:getMatisLastName() firstName = self:getMatisFirstName() fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 3 then -- Tryker lastName = self:getTrykerLastName() firstName = self:getTrykerFirstName() fullnameResult = firstName .. " " .. lastName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 4 then -- Zorai lastName = self:getZoraiLastName() firstName = self:getZoraiFirstName() fullnameResult = firstName .. " " .. lastName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 5 then -- Maraudeurs -- lastName @@ -170,7 +170,7 @@ function outgame:procGenerateName() end fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName end uiNameFull.hardtext = fullnameResult; From 2221bae1b2e6dc2ba57d6c9052e7f8f1653f1900 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:22:09 +0100 Subject: [PATCH 124/184] Fixed: OpenGL ES driver compilation --- code/nel/src/3d/driver/opengl/driver_opengl.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index e247275ab..8ad9228ef 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -1203,6 +1203,7 @@ sint CDriverGL::getTotalVideoMemory() const { H_AUTO_OGL(CDriverGL_getTotalVideoMemory); +#ifndef USE_OPENGLES if (_Extensions.NVXGPUMemoryInfo) { GLint memoryInKiB = 0; @@ -1306,6 +1307,10 @@ sint CDriverGL::getTotalVideoMemory() const } #endif +#else + // TODO: implement for OpenGL ES +#endif + return -1; } From 33009345914a104a9341d3817092dec0fbe4a64d Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:24:01 +0100 Subject: [PATCH 125/184] Fixed: With new iOS versions (and perhaps OS X), locale can contains country code --- code/nel/src/misc/i18n.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 427c102da..d049a7ca3 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -306,11 +306,20 @@ std::string CI18N::getSystemLanguageCode () CFRelease(langCF); } - // only keep language code if supported by NeL - if (!lang.empty() && isLanguageCodeSupported(lang)) + if (!lang.empty()) { - s_cachedSystemLanguage = lang; - break; + // fix language code if country is specified + std::string::size_type pos = lang.find('-'); + + if (pos != std::string::npos) + lang = lang.substr(0, pos); + + // only keep language code if supported by NeL + if (isLanguageCodeSupported(lang)) + { + s_cachedSystemLanguage = lang; + break; + } } } From 97f6cfe76000383999c1d171140b50ebb0ceb011 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:24:17 +0100 Subject: [PATCH 126/184] Changed: Write a warning instead of error --- code/nel/src/misc/i18n.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index d049a7ca3..2f1bee325 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -293,7 +293,7 @@ std::string CI18N::getSystemLanguageCode () } else { - nlerror("Unable to convert CFStringRef to string"); + nlwarning("Unable to convert CFStringRef to string"); } delete [] tmp; From af0568e131fe7c2c358e4e3572c44c16c8273627 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 10 Mar 2016 12:08:48 +0100 Subject: [PATCH 127/184] Fix rounding error in _RyzomDay and _RyzomTime calculation --- code/ryzom/client/src/far_tp.cpp | 4 ++-- code/ryzom/client/src/init_main_loop.cpp | 4 ++-- code/ryzom/client/src/main_loop.cpp | 8 ++++---- .../time_weather_season/time_and_season.cpp | 15 +++++++++++++++ .../time_weather_season/time_and_season.h | 10 +--------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/code/ryzom/client/src/far_tp.cpp b/code/ryzom/client/src/far_tp.cpp index a7a41c628..ba85862b6 100644 --- a/code/ryzom/client/src/far_tp.cpp +++ b/code/ryzom/client/src/far_tp.cpp @@ -1212,10 +1212,10 @@ void CFarTP::sendReady() else { // Set season - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); DayNightCycleHour = (float)RT.getRyzomTime(); CurrSeason = RT.getRyzomSeason(); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); DayNightCycleHour = (float)RT.getRyzomTime(); ManualSeasonValue = RT.getRyzomSeason(); diff --git a/code/ryzom/client/src/init_main_loop.cpp b/code/ryzom/client/src/init_main_loop.cpp index dc9a907b7..15a674c2e 100644 --- a/code/ryzom/client/src/init_main_loop.cpp +++ b/code/ryzom/client/src/init_main_loop.cpp @@ -797,10 +797,10 @@ void initMainLoop() { // setup good day / season before ig are added. - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); updateDayNightCycleHour(); StartupSeason = CurrSeason = RT.getRyzomSeason(); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); updateDayNightCycleHour(); ManualSeasonValue = RT.getRyzomSeason(); diff --git a/code/ryzom/client/src/main_loop.cpp b/code/ryzom/client/src/main_loop.cpp index c0beba4c1..93842ec3f 100644 --- a/code/ryzom/client/src/main_loop.cpp +++ b/code/ryzom/client/src/main_loop.cpp @@ -1340,7 +1340,7 @@ bool mainLoop() if (!ClientCfg.Local) { if(NetMngr.getCurrentServerTick() > LastGameCycle) - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); } else if (ClientCfg.SimulateServerTick) { @@ -1348,7 +1348,7 @@ bool mainLoop() uint numTicks = (uint) floor(SimulatedServerDate * 10); SimulatedServerTick += numTicks; SimulatedServerDate = (float)((double)SimulatedServerDate - (double) numTicks * 0.1); - RT.updateRyzomClock((uint32)SimulatedServerTick, ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock((uint32)SimulatedServerTick); } @@ -2092,14 +2092,14 @@ bool mainLoop() if (Actions.valide ("inc_hour")) { RT.increaseTickOffset( (uint32)(2000 * displayHourDelta) ); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); } // Ctrl-L decrease hour if (Actions.valide ("dec_hour")) { RT.decreaseTickOffset( (uint32)(2000 * displayHourDelta) ); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); CTimedFXManager::getInstance().setDate(CClientDate(RT.getRyzomDay(), (float) RT.getRyzomTime())); if (IGCallbacks) { diff --git a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp index a24c8a9dd..a71d71be4 100644 --- a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp +++ b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp @@ -83,4 +83,19 @@ namespace WEEKDAY }; // WEEKDAY +void CRyzomTime::updateRyzomClock(uint32 gameCyle) +{ + static const uint32 ticksPerDay = (RYZOM_DAY_IN_HOUR * RYZOM_HOURS_IN_TICKS); + static const float ticksPerHour = (float)RYZOM_HOURS_IN_TICKS; + uint32 totalTicks = gameCyle + _TickOffset; + uint32 days = totalTicks / ticksPerDay; + uint32 dayCycle = totalTicks - (days * ticksPerDay); + days -= RYZOM_START_SPRING; + float hours = (float)dayCycle / ticksPerHour; + + _RyzomDay = days; + _RyzomTime = hours; +} + +/* end of file */ diff --git a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h index 92892fd85..62f144119 100644 --- a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h +++ b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h @@ -135,18 +135,11 @@ public: { _RyzomDay = 0; _RyzomTime = 0.f; - _LocalTime = 0.0; _TickOffset = 0; } // Update ryzom clock when tick occurs, local time must be given if localUpdateRyzomClock() and getLocalRyzomTime() is used - void updateRyzomClock( uint32 gameCyle, double localTime = 0 ) - { - float hours = ( gameCyle + _TickOffset ) / float(RYZOM_HOURS_IN_TICKS); - _RyzomDay = ( (uint)hours / RYZOM_DAY_IN_HOUR ) - RYZOM_START_SPRING; - _RyzomTime = (float) fmod( hours, (float)RYZOM_DAY_IN_HOUR ); - _LocalTime = localTime; - } + void updateRyzomClock(uint32 gameCyle); // get ryzom time (synchronized with server) inline float getRyzomTime() const { return _RyzomTime; } @@ -202,7 +195,6 @@ private: uint32 _RyzomDay; float _RyzomTime; - double _LocalTime; uint32 _TickOffset; }; From 2177ed554a8628eb222269cd4e3265c3e5ab4cd4 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 10 Mar 2016 12:08:48 +0100 Subject: [PATCH 128/184] Fix thunder update --- code/ryzom/client/src/main_loop_debug.cpp | 3 ++ .../client/src/weather_manager_client.cpp | 30 ++++++++++++------- .../ryzom/client/src/weather_manager_client.h | 2 ++ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/code/ryzom/client/src/main_loop_debug.cpp b/code/ryzom/client/src/main_loop_debug.cpp index cc19ab478..5d2dcf9ac 100644 --- a/code/ryzom/client/src/main_loop_debug.cpp +++ b/code/ryzom/client/src/main_loop_debug.cpp @@ -430,6 +430,9 @@ void displayDebug() TextContext->printfAt(1.f, line, "TEST WEATHER FUNCTION"); line += lineStep; } + // thunder + TextContext->printfAt(1.f, line, "Thunder level : %.02f", WeatherManager.getThunderLevel()); + line += lineStep; // season TextContext->printfAt(1.f, line, "Season : %s", EGSPD::CSeason::toString(CurrSeason).c_str()); line += lineStep; diff --git a/code/ryzom/client/src/weather_manager_client.cpp b/code/ryzom/client/src/weather_manager_client.cpp index 6bff68b49..96f7bebf7 100644 --- a/code/ryzom/client/src/weather_manager_client.cpp +++ b/code/ryzom/client/src/weather_manager_client.cpp @@ -132,7 +132,7 @@ void CWeatherManagerClient::update(uint64 day, float hour, const CWeatherContext // build current weather state EGSPD::CSeason::TSeason season = CRyzomTime::getSeasonByDay((uint32)day); // - manualUpdate(day, hour, wc, weatherValue, season); + manualUpdateImpl(day, hour, wc, weatherValue, season); _LastEvalHour = hour; _LastEvalDay = day; } @@ -147,25 +147,29 @@ void CWeatherManagerClient::update(uint64 day, float hour, const CWeatherContext // build current weather state EGSPD::CSeason::TSeason season = CRyzomTime::getSeasonByDay((uint32)day); // - manualUpdate(day, hour, wc, weatherValue, season, camMat, continent); + manualUpdateImpl(day, hour, wc, weatherValue, season, camMat, continent); _LastEvalHour = hour; _LastEvalDay = day; } - - //================================================================================================ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const CContinent &continent) +{ + manualUpdateImpl(day, hour, wc, weatherValue, season, camMat, continent); + _LastEvalHour = hour; + _LastEvalDay = day; +} + +//================================================================================================ +void CWeatherManagerClient::manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const CContinent &continent) { H_AUTO_USE(RZ_WeatherManagerClient) if (!wc.WF) return; - manualUpdate(day, hour, wc, weatherValue, season); + manualUpdateImpl(day, hour, wc, weatherValue, season); setupFXs(camMat, wc.GR, continent); setupWind(&(wc.WF[season])); float scaledWeatherValue = weatherValue * (wc.WF[season].getNumWeatherSetups() - 1); updateThunder(day, hour, wc, true, scaledWeatherValue, season); - _LastEvalHour = hour; - _LastEvalDay = day; // Sound stuff if (SoundMngr != 0) @@ -250,9 +254,16 @@ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherC } } - //================================================================================================ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season) +{ + manualUpdateImpl(day, hour, wc, weatherValue, season); + _LastEvalHour = hour; + _LastEvalDay = day; +} + +//================================================================================================ +void CWeatherManagerClient::manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season) { H_AUTO_USE(RZ_WeatherManagerClient) if (!wc.WF) return; @@ -269,11 +280,8 @@ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherC // blend client specific part CWeatherStateClient::blend(_CurrWeatherStateClient, safe_cast(floorSetup)->WeatherStateClient, safe_cast(ceilSetup)->WeatherStateClient, blendFactor); } - _LastEvalHour = hour; - _LastEvalDay = day; } - //================================================================================================ void CWeatherManagerClient::setupWind(const CWeatherFunction *wf) { diff --git a/code/ryzom/client/src/weather_manager_client.h b/code/ryzom/client/src/weather_manager_client.h index 543dc2039..97388a7a4 100644 --- a/code/ryzom/client/src/weather_manager_client.h +++ b/code/ryzom/client/src/weather_manager_client.h @@ -105,6 +105,8 @@ protected: // from CWeatherManager virtual void setupLoaded(CWeatherSetup *setup); private: + void manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season); + void manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const class CContinent &continent); typedef std::map TPrecipitationMap; // A vector of precipitation pointers typedef std::vector TPrecipitationVect; From 23ed5c2be4141cee9d988729d507db09597ed0db Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:44:21 +0100 Subject: [PATCH 129/184] Changed: Create new client.cfg --- .../tools/client/client_config_qt/config.cpp | 53 ++++++++++++++++--- .../tools/client/client_config_qt/config.h | 10 +++- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/config.cpp b/code/ryzom/tools/client/client_config_qt/config.cpp index 0d41db0cd..15cd4fb9d 100644 --- a/code/ryzom/tools/client/client_config_qt/config.cpp +++ b/code/ryzom/tools/client/client_config_qt/config.cpp @@ -17,6 +17,10 @@ #include "stdpch.h" #include "config.h" +#include "nel/misc/common.h" +#include "nel/misc/i18n.h" +#include "nel/misc/path.h" + CConfig::CConfig() { } @@ -25,17 +29,50 @@ CConfig::~CConfig() { } -bool CConfig::load( const char *fileName ) +bool CConfig::create(const std::string &configFileName, const std::string &defaultFileName) +{ + NLMISC::CFile::createDirectoryTree(NLMISC::CFile::getPath(configFileName)); + + // create the basic .cfg + FILE *fp = NLMISC::nlfopen(configFileName, "w"); + + if (fp == NULL) return false; + + // store full path to default config file + fprintf(fp, "RootConfigFilename = \"%s\";\n", defaultFileName.c_str()); + + // get current locale + std::string lang = NLMISC::CI18N::getSystemLanguageCode(); + + const std::vector &languages = NLMISC::CI18N::getLanguageCodes(); + + // search if current locale is defined in language codes + for(uint i = 0; i < languages.size(); ++i) + { + if (lang == languages[i]) + { + // store the language code in the config file + fprintf(fp, "LanguageCode = \"%s\";\n", lang.c_str()); + break; + } + } + + fclose(fp); + + return true; +} + +bool CConfig::load(const std::string &fileName) { try { - cf.load( fileName ); + cf.load(fileName); - std::string def = getString( "RootConfigFilename" ); - if( def.compare( "" ) != 0 ) - dcf.load( def ); + std::string def = getString("RootConfigFilename"); + if (!def.empty()) + dcf.load(def); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; @@ -51,7 +88,7 @@ bool CConfig::reload() cf.clear(); cf.reparse(); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; @@ -112,7 +149,7 @@ bool CConfig::save() { cf.save(); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; diff --git a/code/ryzom/tools/client/client_config_qt/config.h b/code/ryzom/tools/client/client_config_qt/config.h index d9ddb536e..05f82c83a 100644 --- a/code/ryzom/tools/client/client_config_qt/config.h +++ b/code/ryzom/tools/client/client_config_qt/config.h @@ -28,12 +28,20 @@ public: CConfig(); ~CConfig(); + /** + @brief Create a config file. + @param fileName - The config file to create + @param defaultFileName - The default config file to use + @return Returns true on success, returns false on failure. + */ + bool create(const std::string &fileName, const std::string &defaultFileName); + /** @brief Loads a config file. @param fileName - The file to load @return Returns true on success, returns false on failure. */ - bool load( const char *fileName ); + bool load(const std::string &fileName); /** @brief Reloads the contents of the config file From 13e3489e11e24da911d3c68e4c0dd5d6c3ac522f Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:45:11 +0100 Subject: [PATCH 130/184] Fixed: Determine path of client.cfg and client_default.cfg --- .../tools/client/client_config_qt/main.cpp | 100 +++++++++++++++++- 1 file changed, 95 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/main.cpp b/code/ryzom/tools/client/client_config_qt/main.cpp index 2ee58d5bd..2967ce4a0 100644 --- a/code/ryzom/tools/client/client_config_qt/main.cpp +++ b/code/ryzom/tools/client/client_config_qt/main.cpp @@ -18,6 +18,7 @@ #include "client_config_dialog.h" #include "system.h" +#include "nel/misc/cmd_args.h" #include @@ -42,21 +43,110 @@ int main(sint32 argc, char **argv) QApplication app(argc, argv); + // parse command-line arguments + NLMISC::CCmdArgs args; + args.setDescription("Ryzom Configuration"); + args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); + + if (!args.parse(argc, argv)) return 1; + QApplication::setWindowIcon(QIcon(":/resources/welcome_icon.png")); QPixmap pixmap(":/resources/splash_screen.png" ); QSplashScreen splash( pixmap ); - splash.show(); - QString locale = QLocale::system().name().left(2); + QLocale locale = QLocale::system(); + // load application translations QTranslator localTranslator; - if (localTranslator.load(QString(":/translations/ryzom_configuration_%1.qm").arg(locale))) + if (localTranslator.load(locale, "ryzom_configuration", "_", ":/translations")) { - app.installTranslator(&localTranslator); + QApplication::installTranslator(&localTranslator); } - CSystem::GetInstance().config.load( "client.cfg" ); + // load Qt default translations + QTranslator qtTranslator; + if (qtTranslator.load(locale, "qt", "_", ":/translations")) + { + QApplication::installTranslator(&qtTranslator); + } + + // Known cases: + // 1. Steam + // - Linux and Windows: all files in Steam folder + // - OS X: client.cfg in ~/Library/Application Support/Ryzom, client_default.cfg in Steam folder + // 2. Installer + // - Linux: client.cfg in ~/.ryzom// client_default.cfg in ~/.ryzom/ryzom_live/ + // - Windows: client.cfg in Roaming/Ryzom// client_default.cfg in Local/Ryzom/ryzom_live/ + // - OS X: client.cfg in ~/Library/Application Support/Ryzom// client_default.cfg in ~/Library/Application Support/Ryzom/ryzom_live/ + + // default paths + std::string ryzomDir = NLMISC::CPath::standardizePath(NLMISC::CPath::getApplicationDirectory("Ryzom")); + std::string currentDir = args.getStartupPath(); + std::string executableDir = args.getProgramPath(); + + std::string configFilename = "client.cfg"; + std::string configPath; + + // search client.cfg file in config directory (Ryzom Installer) + if (args.haveArg("p")) + { + ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + args.getArg("p").front()); + + // client.cfg is always in profile directory if using -p argument + configPath = ryzomDir + configFilename; + } + else + { +#ifdef NL_OS_MAC + // client.cfg is in ~/Library/Application Support/Ryzom under OS X + configPath = ryzomDir + configFilename; +#else + // client.cfg is in current directory under other platforms + configPath = currentDir + configFilename; +#endif + } + + // if file doesn't exist, create it + if (!NLMISC::CFile::fileExists(configPath)) + { + // we need the full path to client_default.cfg + std::string defaultConfigFilename = "client_default.cfg"; + std::string defaultConfigPath; + +#ifdef NL_OS_MAC + // fix path inside bundle + defaultConfigPath = NLMISC::CPath::makePathAbsolute("../Resources", executableDir, true) + defaultConfigFilename; +#else + // same path as executables + defaultConfigPath = executableDir + defaultConfigFilename; +#endif + + // test if default config exists in determined path + if (!NLMISC::CFile::fileExists(defaultConfigPath)) + { + defaultConfigPath = currentDir + defaultConfigFilename; + + // test if default config exists in current path + if (!NLMISC::CFile::fileExists(defaultConfigPath)) + { + nlwarning("Unable to find %s", defaultConfigFilename.c_str()); + return 1; + } + } + + if (!CSystem::GetInstance().config.create(configPath, defaultConfigPath)) + { + nlwarning("Unable to create %s", configPath.c_str()); + return 1; + } + } + + if (!CSystem::GetInstance().config.load(configPath)) + { + nlwarning("Unable to load %s", configPath.c_str()); + return 1; + } CClientConfigDialog d; d.show(); From 4cfe9788149f743ef8c666b8dd9789b9fe6cb2c5 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:48:59 +0100 Subject: [PATCH 131/184] Changed: Use MiB for RAM --- code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp b/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp index fa1e746bd..2acdaa8c5 100644 --- a/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp @@ -27,7 +27,7 @@ CSysInfoWidget::CSysInfoWidget( QWidget *parent ) : osLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.osName.c_str())); cpuLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.cpuName.c_str())); - ramLabel->setText(QString(tr("%1 MB").arg(CSystem::GetInstance().sysInfo.totalRAM))); + ramLabel->setText(QString(tr("%1 MiB").arg(CSystem::GetInstance().sysInfo.totalRAM))); gfxcardLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.videoDevice.c_str())); gfxdriverLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.videoDriverVersion.c_str())); From 3cb0fdf4f0f99447e25c46586b3bd0bb330b89df Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:50:22 +0100 Subject: [PATCH 132/184] Fixed: ForceDXTC is not to disable compression but force it --- .../client/client_config_qt/display_settings_advanced_widget.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui b/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui index 053104e2c..6c5fd71e0 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui @@ -28,7 +28,7 @@ - Disable texture compression + Force texture compression From 29824eedb43edc0c6a8e100bfe2eb717dfa510e0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:37:39 +0100 Subject: [PATCH 133/184] Changed: Updated translations --- .../translated/bodypart_words_de.txt | Bin 5852 -> 5852 bytes .../translated/faction_words_de.txt | Bin 12184 -> 12164 bytes .../translated/faction_words_fr.txt | Bin 11148 -> 11136 bytes .../ryzom/tools/translation/translated/fr.uxt | 6 +++--- .../translation/translated/item_words_de.txt | Bin 3002840 -> 3002040 bytes .../translation/translated/race_words_de.txt | Bin 21102 -> 21086 bytes .../translated/sphrase_words_de.txt | Bin 1787756 -> 1788504 bytes .../translation/translated/title_words_de.txt | Bin 323794 -> 323806 bytes 8 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/ryzom/tools/translation/translated/bodypart_words_de.txt b/code/ryzom/tools/translation/translated/bodypart_words_de.txt index 4b36239f295360ba43a23c2a51db0f6fad54dda7..224c4d49579bc9185e4a0bc35dab801e1516dfd9 100644 GIT binary patch delta 48 zcmcbkdq;Oen=oVkR{8coYF?e#Km^+YMDP{}+ Dsyq;7 diff --git a/code/ryzom/tools/translation/translated/faction_words_de.txt b/code/ryzom/tools/translation/translated/faction_words_de.txt index 2d1644bf455ce3406511546562fc82e5b3101232..14d36cb03976dea8443aee1dc038b040472504d2 100644 GIT binary patch delta 91 zcmbOc-x9xJ3!7vaLq0n7P!ou!A@q7jpHIolADNg2L h-!WN(S!D7J_LRv996Xczc=$Gla1?NDek8O_1^`QI8A$*D delta 79 zcmZpPpAo-d3)|#P+!C@13}FoU3`GptKr$ByQyKCY6d1~YygUZZ$@Q|zlSSBfOl}hp goBW79X|f8l#N-Akp3PYtDO{5$2+M6gC$vol0D@N+Pyhe` diff --git a/code/ryzom/tools/translation/translated/faction_words_fr.txt b/code/ryzom/tools/translation/translated/faction_words_fr.txt index 018c3f465e01050a43c0094ce6b14b42928024b4..d7fdfa6c90b30e5c01e966f1b8ce70c3b2fc1c99 100644 GIT binary patch delta 195 zcmeAPZwTKY!!r3Bv()5yY;2QlSo|21CwH@$Gb=EFXl=0Q4;DZ642D#OB8H^N6Il#7 z6&MgaRj`UJtZ|dyu!7ClY{d40iSgxRX-;kCmkimH-?FK1F5o=DIGK-Ih&u;pN-+Z` zLkdIb=2-5>jEpBIJMvmj*5H)@v(!O`Z9c?nAqwRFR?-BM>XQ#Jv26}gUdIaLGHN=5 QNzKU*BseygX^Jrc01DwfFaQ7m delta 239 zcmZn&?+M=^!!kKdL1D5Diyx!&qd$Irvk1$A`2SX}QT@pkcL($}o!s3$+m<1+pVU3zBCN4F30~g0;1GZ;O z?5PadKqGS}e-xGF=VWjM8eIa^3KLV_oWps7krQO1A45Jv=H!ixs+*&@Z!t2uPVVGY zpB%$0!dN^xpI4IC6|4{Bv{Z(i$sgI|H*e#$5CtlGucQek)i*mRZ(#*8Ej2YK8;G+^ PR?-w>blq&J>COZI$<;t` diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index e015a1d55..16574a91b 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -10913,11 +10913,11 @@ uiOpacity [Opacité] // HASH_VALUE 8E5160388660241A // INDEX 2566 -uimChooseUIAlpha [OPACITÉ DE LA FENÊTRE] +uimChooseUIAlpha [Opacité de la fenêtre] // HASH_VALUE 7DDE1B28C3BC5303 // INDEX 2567 -uimLockUnlock [VERROUILLER / DÉVERROUILLER] +uimLockUnlock [Verrouiller / déverrouiller] // HASH_VALUE 81AFD8300470172B // INDEX 2568 @@ -14579,7 +14579,7 @@ uiFontSize [Taille de la police] // HASH_VALUE 5008E4244490540C // INDEX 3475 -uigcInSceneInterface [EN SCÈNE] +uigcInSceneInterface [En scène] // HASH_VALUE 5050345450503454 // INDEX 3476 diff --git a/code/ryzom/tools/translation/translated/item_words_de.txt b/code/ryzom/tools/translation/translated/item_words_de.txt index 91a121141df8486266159a6c96c78834281e1652..6dc0d418688626285c4c5392621eb76f0e88958b 100644 GIT binary patch delta 3141 zcmZ`*QA}G^818@R7?c9F4#o8DO{PpI+nqamoJM_Ed|(NQJ{W?!hdJj~Y9$LH=zs3*y``tO4_|Ws?|k=s z_ul{OfBMTQ2A9Vf%uYR;{fwpCa=;Qq^jKaa-bQbhP;ZRYLh!I_X`_e8~2jHh-epM<6Ed7d4Ak& zqQwuL$}SMGl7-`Y5-sV-At)v_A;Ht26HRI85V(@n1V6uttFjon3&dID!_O`&yXauN zsQdU$t(co=Rs3Vvkg3{AGB+VB<>Mi>Q06AEGsr4eCf9h2Y{Xvg#+_P}@>7#>;>zUf zO5JDg#|iWzwP$mb`ZI@tl)mU9fya2?W#!2)aOd?z?b*KdL^gzrx*p&udoo zU(dvgSI&>>MXS=TOh2xth4)9Imt3kVp>Ov?P6}G+M6|BROwA+K^GBL9u2yFm4IF{1!p3+?Q2St#pH9bj z(9a7qHIG;dziwLD4|XaK!7jmhq`Hva9!hf7X~8*EU0|lhd1mI!qXzA6;o{vDwuU78)1aRtLR<*ME zWJ1|8!SBV@GvQA`(gQp_6~AVV({Rg(u9lhLG|x;dzZ%u^xkyn|<*z>iND2@Twa7B+c{$37NXhLrkqQ;%pm z7Xg{hgh3dQ^xK=@rHxAT^(*joDiO>mp&38whOCaX9n>1>|VNgw(L#7W5`I}ruD z5Hp=lG$r`Y$4re$PU$%u0xP}zFNgHntJq9N;X$=OoK&p4F{KxO$`NUFY%OK$(YShqI*)_G_kuvDYK2IxS{N7@8QxP!*rS+QZ+-m2f)p z@NxYm=lY5U(sB3}ZQ_rkD+vB0>i6VJh%^Mh-hfC)Y(!)rG7&aJ7Q&9mM&uxJ5e~#X z2q)rR#3n=@A|J6CQGnQja3Km2MTlaA8&QJrAiM}4Vk@E)aUbG-#5P13;sNH#_sct} z+~#xAg_rzAbatn|fV$d!4!YRp%ivrs4g8#iS8YBQ-LcN&{cPnD8rB1|IyU`#dVCGT`nYxi>Hr-s%km3hJ3?VOunCXY5 zA@dGuWpx+1fLl{QaZbeQi`>N!vk*a-ob3p+XN+XOcdPiymR78_9mLnB{W#bj!O_RJG2DbhBO9^S z9wVKHTq^F^?$H;vYR?`|g8=Tt34Lzh7_dQII%R=44rF$d1OcV4wXTt7#S zJ7Dsp1WNB7vMo6Ft*R@zVVlr5==0+;4R8?j*-TQDbMfU7qh zfX5cxy7!iJF0_>4?bol}HkHQC;Ly@qx*LEOxrwsLI5yf-4a5$Z`Y!@;pXGAkKGLFCtRvf+sNNm7~T*>gouqjaPLuMC1gyfC@j}yoW&noY+S(3a7 z{3IkhR#Hp_BzQzFfbG!=hQ+>^26MbM^k4??A!@YuDBzRV=)SDQ?H{t=(WcXv|(*L1wd4;Aw0(_Hblo`yrhd%+6+l{?Iw0}T1ou3wYIgAtShia7uZ-|s8 z7cBwjjv##{)_Cj2kdUPW+3q9WX*R1=3EcTz8R_H1J?q5wk>u|nNT%i_?@G#2M0VDx z!e=Z5QqGtkuSoLKpTM~<$ixk%ifCDq3d&GL)0~{ZP(?W-CFrIX{*oG&pyPi7ag9*+ zA194znVl>xfm(XyUm(^nFOGh9%lfR1hEV3xE1mEvib|rY;`v-v_}oP#%6PHr#XmIM zD07nn3-xTPQN$f2lI?LRVoiu+TzMI{A}%7~lJh9yMiKCKAb8^N^*-h<#e z1n))AkKla>1`xa-!61U`5ey;t0D|=hK8WB31Rp|hBZ3bj*nr?87hyQL1H4A|Cc^FF z(MYn-g#)CJtgm6jQX>33dw{+5knHaYw^;AdC)d{v6uZLg_bB^CXtAsDx8DB%ENsO6 diff --git a/code/ryzom/tools/translation/translated/race_words_de.txt b/code/ryzom/tools/translation/translated/race_words_de.txt index ec6aa30941e09116a5f4a18c3e694e2ca708c3a3..3fc5a9e15fc70ca6d0d9978264842fb300956874 100644 GIT binary patch delta 150 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 delta 7978 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 S%ukullgXmAT_=-eQ#$}YGEgZ1 From e010a87a9ebffbcdee72939f18db3546f9a1cce4 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:46:13 +0100 Subject: [PATCH 134/184] Fixed: 0x0 is Auto mode --- .../client_config_qt/display_settings_widget.cpp | 13 ++++++++++++- code/ryzom/tools/client/client_config_qt/system.cpp | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp index ae8b1a590..49e841631 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp @@ -166,7 +166,18 @@ void CDisplaySettingsWidget::updateVideoModes() while(itr != iend) { - videomodeComboBox->addItem(QString("%1x%2 %3 bit @%4").arg(itr->width).arg(itr->height).arg(itr->depth).arg(itr->frequency)); + if (itr->frequency) + { + videomodeComboBox->addItem(QString("%1x%2 %3 bit @%4").arg(itr->width).arg(itr->height).arg(itr->depth).arg(itr->frequency)); + } + else if (itr->width) + { + videomodeComboBox->addItem(QString("%1x%2 %3 bit").arg(itr->width).arg(itr->height).arg(itr->depth)); + } + else + { + videomodeComboBox->addItem(tr("Auto")); + } ++itr; } diff --git a/code/ryzom/tools/client/client_config_qt/system.cpp b/code/ryzom/tools/client/client_config_qt/system.cpp index 8ef5a930b..635800878 100644 --- a/code/ryzom/tools/client/client_config_qt/system.cpp +++ b/code/ryzom/tools/client/client_config_qt/system.cpp @@ -160,6 +160,16 @@ void CSystem::GetVideoModes( std::vector< CVideoMode > &dst, NL3D::IDriver *driv std::vector< NL3D::GfxMode > modes; driver->getModes( modes ); + { + // auto mode + CVideoMode mode; + mode.depth = 0; + mode.width = 0; + mode.height = 0; + mode.frequency = 0; + dst.push_back( mode ); + } + for( std::vector< NL3D::GfxMode >::iterator itr = modes.begin(); itr != modes.end(); ++itr ) { if( ( itr->Width >= 800 ) && ( itr->Height >= 600 ) && ( itr->Depth >= 16 ) ) From b571de42b7964589ac5c8a1e1305cbb0b8ab8d79 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:47:13 +0100 Subject: [PATCH 135/184] Changed: Declare CCmdArgs outside of main() to be able to use it in other files --- .../client_config_qt/client_config_dialog.cpp | 4 ++++ .../tools/client/client_config_qt/main.cpp | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp index bfa9bbc58..4b3cf0648 100644 --- a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp +++ b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp @@ -31,6 +31,10 @@ #include #include +#include "nel/misc/cmd_args.h" + +extern NLMISC::CCmdArgs Args; + CClientConfigDialog::CClientConfigDialog( QWidget *parent ) : QDialog( parent ) { diff --git a/code/ryzom/tools/client/client_config_qt/main.cpp b/code/ryzom/tools/client/client_config_qt/main.cpp index 2967ce4a0..b99cde6c1 100644 --- a/code/ryzom/tools/client/client_config_qt/main.cpp +++ b/code/ryzom/tools/client/client_config_qt/main.cpp @@ -37,6 +37,8 @@ #endif +NLMISC::CCmdArgs Args; + int main(sint32 argc, char **argv) { NLMISC::CApplicationContext applicationContext; @@ -44,11 +46,10 @@ int main(sint32 argc, char **argv) QApplication app(argc, argv); // parse command-line arguments - NLMISC::CCmdArgs args; - args.setDescription("Ryzom Configuration"); - args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); + Args.setDescription("Ryzom Configuration"); + Args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); - if (!args.parse(argc, argv)) return 1; + if (!Args.parse(argc, argv)) return 1; QApplication::setWindowIcon(QIcon(":/resources/welcome_icon.png")); QPixmap pixmap(":/resources/splash_screen.png" ); @@ -82,16 +83,16 @@ int main(sint32 argc, char **argv) // default paths std::string ryzomDir = NLMISC::CPath::standardizePath(NLMISC::CPath::getApplicationDirectory("Ryzom")); - std::string currentDir = args.getStartupPath(); - std::string executableDir = args.getProgramPath(); + std::string currentDir = Args.getStartupPath(); + std::string executableDir = Args.getProgramPath(); std::string configFilename = "client.cfg"; std::string configPath; // search client.cfg file in config directory (Ryzom Installer) - if (args.haveArg("p")) + if (Args.haveArg("p")) { - ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + args.getArg("p").front()); + ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + Args.getArg("p").front()); // client.cfg is always in profile directory if using -p argument configPath = ryzomDir + configFilename; From 1562a5dddfb0a41e45ed7465561da845e8a1ffc7 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:48:18 +0100 Subject: [PATCH 136/184] Fixed: Use full path to launch Ryzom client and pass profile argument --- .../client_config_qt/client_config_dialog.cpp | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp index 4b3cf0648..5f645857d 100644 --- a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp +++ b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp @@ -149,15 +149,28 @@ void CClientConfigDialog::onClickPlay() { bool started = false; + QStringList arguments; + + if (Args.haveArg("p")) + { + arguments << "-p" << QString::fromUtf8(Args.getArg("p").front().c_str()); + } + + QString clientFullPath = QString::fromUtf8(Args.getProgramPath().c_str()); + #ifdef Q_OS_WIN32 - started = QProcess::startDetached( "ryzom_client_r.exe" ); - if( !started ) - QProcess::startDetached( "ryzom_client_d.exe" ); -#elif defined(Q_OS_MAC) - started = QProcess::startDetached( "./Ryzom.app" ); +#ifdef _DEBUG + clientFullPath += "ryzom_client_d.exe"; #else - started = QProcess::startDetached( "./ryzom_client" ); + clientFullPath += "ryzom_client_r.exe"; #endif +#elif defined(Q_OS_MAC) + clientFullPath += "Ryzom"; +#else + clientFullPath += "ryzom_client"; +#endif + + started = QProcess::startDetached(clientFullPath, arguments); onClickOK(); } From 861472b799e7252f6b95a36569390fb0455af95f Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:49:04 +0100 Subject: [PATCH 137/184] Changed: Use QString::number() instead of QString("%1") to convert an int to QString --- .../client_config_qt/display_settings_widget.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp index 49e841631..7e05f83bd 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp @@ -90,10 +90,10 @@ void CDisplaySettingsWidget::load() windowedRadioButton->setChecked( true ); } - widthLineEdit->setText( QString( "%1" ).arg( mode.width ) ); - heightLineEdit->setText( QString( "%1" ).arg( mode.height ) ); - xpositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionX" ) ) ); - ypositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionY" ) ) ); + widthLineEdit->setText(QString::number(mode.width)); + heightLineEdit->setText(QString::number(mode.height)); + xpositionLineEdit->setText(QString::number(s.config.getInt("PositionX"))); + ypositionLineEdit->setText(QString::number(s.config.getInt("PositionY"))); } @@ -194,7 +194,7 @@ uint32 CDisplaySettingsWidget::findVideoModeIndex( CVideoMode *mode ) //| --------------------------------------| //| Auto | OpenGL modes | //| OpenGL | OpenGL modes | - //| Direct3D | Direct3d modes | + //| Direct3D | Direct3D modes | //| --------------------------------------| // // From f5d6f344376249be373df5548c43d953547c9175 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 15:40:28 +0100 Subject: [PATCH 138/184] Changed: Updated translations --- .../ryzom/tools/translation/translated/en.uxt | 28 +++++++++++++++++++ .../ryzom/tools/translation/translated/fr.uxt | 28 +++++++++++++++++++ .../ryzom/tools/translation/translated/wk.uxt | 28 +++++++++++++++++++ code/ryzom/tools/translation/work/wk.uxt | 9 ++++-- 4 files changed, 91 insertions(+), 2 deletions(-) diff --git a/code/ryzom/tools/translation/translated/en.uxt b/code/ryzom/tools/translation/translated/en.uxt index d52f579d5..9d4fc90e1 100644 --- a/code/ryzom/tools/translation/translated/en.uxt +++ b/code/ryzom/tools/translation/translated/en.uxt @@ -27297,3 +27297,31 @@ uiHorizontal [Horizontal] // INDEX 6481 uiVertical [Vertical] +// HASH_VALUE 641C5434641C5434 +// INDEX 6482 +uiKeyMUTE [Mute] + +// HASH_VALUE 3165F321EF51FEF1 +// INDEX 6483 +uiKeyPLAYPAUSE [Play / pause] + +// HASH_VALUE 26C8EF962CB49073 +// INDEX 6484 +uiKeyVOLUMEDOWN [Volume down] + +// HASH_VALUE E828AC5B1985D0BD +// INDEX 6485 +uiKeyVOLUMEUP [Volume up] + +// HASH_VALUE E906D08868678C93 +// INDEX 6486 +uiKeyCALC [Calculator] + +// HASH_VALUE 60C82889E9C9B49B +// INDEX 6487 +uiKeyPARAGRAPH [Paragraph] + +// HASH_VALUE ECEC8E017F3FDAE2 +// INDEX 6488 +uiKeyOEM_102 [OEM 102] + diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index 16574a91b..deb97661b 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -27270,3 +27270,31 @@ uiHorizontal [Horizontale] // INDEX 6481 uiVertical [Verticale] +// HASH_VALUE 641C5434641C5434 +// INDEX 6482 +uiKeyMUTE [Muet] + +// HASH_VALUE 3165F321EF51FEF1 +// INDEX 6483 +uiKeyPLAYPAUSE [Lecture / pause] + +// HASH_VALUE 26C8EF962CB49073 +// INDEX 6484 +uiKeyVOLUMEDOWN [Diminuer le volume] + +// HASH_VALUE E828AC5B1985D0BD +// INDEX 6485 +uiKeyVOLUMEUP [Augmenter le volume] + +// HASH_VALUE E906D08868678C93 +// INDEX 6486 +uiKeyCALC [Calculatrice] + +// HASH_VALUE 60C82889E9C9B49B +// INDEX 6487 +uiKeyPARAGRAPH [Paragraphe] + +// HASH_VALUE ECEC8E017F3FDAE2 +// INDEX 6488 +uiKeyOEM_102 [OEM 102] + diff --git a/code/ryzom/tools/translation/translated/wk.uxt b/code/ryzom/tools/translation/translated/wk.uxt index 156a20604..9cbec6320 100644 --- a/code/ryzom/tools/translation/translated/wk.uxt +++ b/code/ryzom/tools/translation/translated/wk.uxt @@ -27522,3 +27522,31 @@ uiHorizontal [Horizontal] // INDEX 6481 uiVertical [Vertical] +// HASH_VALUE 641C5434641C5434 +// INDEX 6482 +uiKeyMUTE [Mute] + +// HASH_VALUE 3165F321EF51FEF1 +// INDEX 6483 +uiKeyPLAYPAUSE [Play / pause] + +// HASH_VALUE 26C8EF962CB49073 +// INDEX 6484 +uiKeyVOLUMEDOWN [Volume down] + +// HASH_VALUE E828AC5B1985D0BD +// INDEX 6485 +uiKeyVOLUMEUP [Volume up] + +// HASH_VALUE E906D08868678C93 +// INDEX 6486 +uiKeyCALC [Calculator] + +// HASH_VALUE 60C82889E9C9B49B +// INDEX 6487 +uiKeyPARAGRAPH [Paragraph] + +// HASH_VALUE ECEC8E017F3FDAE2 +// INDEX 6488 +uiKeyOEM_102 [OEM 102] + diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index 36d0dea9d..879041930 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -4057,7 +4057,6 @@ uiKeyF22 [F22] uiKeyF23 [F23] - uiKeyF24 [F24] uiKeyNUMLOCK [NUMLOCK] @@ -4100,7 +4099,6 @@ uiKeyCOMMA [COMMA] uiNumber00 [00] - uiNumber01 [01] uiNumber02 [02] @@ -13480,3 +13478,10 @@ uiCP_FirstName [First name] uiCP_LastName [Last name] uiHorizontal [Horizontal] uiVertical [Vertical] +uiKeyMUTE [Mute] +uiKeyPLAYPAUSE [Play / pause] +uiKeyVOLUMEDOWN [Volume down] +uiKeyVOLUMEUP [Volume up] +uiKeyCALC [Calculator] +uiKeyPARAGRAPH [Paragraph] +uiKeyOEM_102 [OEM 102] From b805749e988a3ac7a1eba32ece620bf6c7acfaf0 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:07:06 +0100 Subject: [PATCH 139/184] Changed: Updated translations for Ryzom Configuration --- .../client/client_config_qt/CMakeLists.txt | 8 +- .../translations/ryzom_configuration_de.ts | 494 ++++++++++++++++++ .../translations/ryzom_configuration_en.ts | 372 ++++++------- .../translations/ryzom_configuration_es.ts | 484 +++++++++++++++++ .../translations/ryzom_configuration_fr.ts | 208 ++++---- .../translations/ryzom_configuration_hu.ts | 208 ++++---- .../translations/ryzom_configuration_ru.ts | 484 +++++++++++++++++ .../translations/translations.qrc | 3 + 8 files changed, 1890 insertions(+), 371 deletions(-) create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts diff --git a/code/ryzom/tools/client/client_config_qt/CMakeLists.txt b/code/ryzom/tools/client/client_config_qt/CMakeLists.txt index f0bb295b3..0e85ea97b 100644 --- a/code/ryzom/tools/client/client_config_qt/CMakeLists.txt +++ b/code/ryzom/tools/client/client_config_qt/CMakeLists.txt @@ -27,11 +27,7 @@ SET(CLIENT_CONFIG_UIS sys_info_widget.ui ) -SET(CLIENT_CONFIG_TRANS - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_en.ts - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_fr.ts - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_hu.ts -) +FILE(GLOB CLIENT_CONFIG_TRANS translations/*.ts) CONFIGURE_FILE(translations/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY) SET(CLIENT_CONFIG_RCS resources.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc ) @@ -47,6 +43,8 @@ IF(WITH_QT) ADD_DEFINITIONS(${QT_DEFINITIONS}) ELSE() +# uncomment this line if you want to update original translations +# QT5_CREATE_TRANSLATION(CLIENT_CONFIG_QM ${CLIENT_CONFIG_UIS} ${SRC} ${CLIENT_CONFIG_TRANS}) QT5_ADD_TRANSLATION(CLIENT_CONFIG_QM ${CLIENT_CONFIG_TRANS}) QT5_ADD_RESOURCES(CLIENT_CONFIG_RC_SRCS ${CLIENT_CONFIG_RCS}) QT5_WRAP_CPP(CLIENT_CONFIG_MOC_SRC ${CLIENT_CONFIG_HDR}) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts new file mode 100644 index 000000000..1aa06dde2 --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -0,0 +1,494 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + Ryzom Konfiguration + + + + Are you sure you want to quit without saving the configuration? + Bist du sicher, dass du abbrechen willst, ohne die Konfiguration zu sichern? + + + + CDisplaySettingsDetailsWidget + + + Low + Niedrig + + + + Medium + Mittel + + + + Normal + Normal + + + + High + Hoch + + + + Low (32 MB) + Niedrig (32 MB) + + + + Normal (64 MB) + Normal (64 MB) + + + + High (128 MB) + Hoch (128 MB) + + + + CDisplaySettingsWidget + + + Auto + if too long, Auto is sufficient (just ugly, as in German the short form also means "car") + Automatisch + + + + CSoundSettingsWidget + + + %1 tracks + audio-channels? + %1 Tonspuren + + + + CSysInfoWidget + + + %1 MiB + %1 MiB + + + + client_config_dialog + + + Ryzom Configuration + Ryzom-Konfiguration + + + + + General + Allgemein + + + + Category + Kategorie + + + + Display + Anzeige + + + + Display details + Anzeigedetails + + + + Display advanced + Anzeige erweitert + + + + Sound + Sound + + + + System information + System-Information + + + + OpenGL information + OpenGL-Information + + + + Direct3D information + Direct3D-Information + + + + Apply + Anwenden + + + + Default + Standard + + + + Play Ryzom + Ryzom spielen + + + + display_settings_advanced_widget + + + Display advanced + Anzeige erweitert + + + + Modify these settings only if you have trouble launching the game + Modifiziere diese Einstellungen nur dann, wenn du Probleme mit dem Starten des Spiels hast + + + + Force texture compression + Erzwinge Textur-Kompression + + + + Disable vertex shaders + Deaktiviere Vertex-Shader + + + + Disable AGP for vertices + Deaktiviere AGP fr Vertexeckpunkte + + + + Disable pixel shaders + Deaktiviere Pixel-Shader + + + + display_settings_details_widget + + + Display details + Anzeigedetails + + + + Landscape + Landschaft + + + + + + + Level of detail + Detailstufe + + + + + + + Low + Niedrig + + + + Characters + Charaktere + + + + FX + Special effects? + FX + + + + Textures + Texturen + + + + display_settings_widget + + + Display + Anzeige + + + + Driver + Treiber + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... + Whle, ob Ryzom in OpenGL oder Direct3D laufen soll: + + + + Auto + Automatisch + + + + OpenGL + OpenGL + + + + Direct3D + Direct3D + + + + Parameters + Parameter + + + + Specify if Ryzom is to be run in full screen or window mode: + Whle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: + + + + Full screen + Vollbild + + + + Specify a video mode + Whle eine Bildschirmauflsung + + + + Windowed + Im Fenster + + + + Width + Breite + + + + Height + Hhe + + + + X position + X-Position + + + + Y position + Y-Position + + + + general_settings_widget + + + Form + form of what? Does it mean a mode? Figure? Category? Phrase? Shape? Format? Configuration? Can't find it in the current configuration program for Ryzom on Steam + Form + + + + Language + Sprache + + + + English + Englisch + + + + French + Franzsisch + + + + German + Deutsch + + + + Hungarian + Ungarisch + + + + Save config file when quitting the game + Do we need the "file" mentioned? + Speichere Konfigurationsdatei beim Beenden des Spiels + + + + Advanced + is it "extended" or rather "progressed" like "further/better developed"? + Erweitert + + + + Slow down the game ( process low priority ) + Verlangsame das Spiel (niedrige Prozessprioritt) + + + + sound_settings_widget + + + Sound + Sound + + + + Enable sound + Aktiviere Sound + + + + Enable EAX + Aktiviere EAX Klangverarbeitung + + + + Enable FMod + Aktiviere FMod Audiotool + + + + Software sound buffer ( may increase FPS ) + Software Sound Buffer (kann FPS erhhen) + + + + Sound tracks + is this really about audio channels? + Tonspuren + + + + 8 tracks + 8-track as in 8 audio channels, right? Or does it mean something else? + 8 Spuren + + + + sys_info_d3d_widget + + + Direct3D information + Direct3D-Information + + + + Direct3D + Direct3D + + + + Description + Beschreibung + + + + Driver + Treiber + + + + Driver version + Treiber-Version + + + + sys_info_opengl_widget + + + OpenGL information + OpenGL-Information + + + + OpenGL + OpenGL + + + + Vendor + Hersteller + + + + Renderer + Renderer + + + + Version + Version + + + + Extensions + Erweiterungen + + + + sys_info_widget + + + + System information + System-Information + + + + Operating system + Betriebssystem + + + + CPU + Prozessor + + + + Physical memory + Physikalischer Speicher + + + + Video device + seems to refer to the video card. Or is it something else? + Grafikkarte + + + + Video driver version + Grafiktreiber-Version + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts index 47ae13098..6de6db3cf 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts @@ -1,468 +1,484 @@ - + CClientConfigDialog - + Ryzom configuration - + Ryzom configuration - + Are you sure you want to quit without saving the configuration? - + Are you sure you want to quit without saving the configuration? CDisplaySettingsDetailsWidget - + Low - + Low - + Medium - + Medium - + Normal - + Normal - + High - + High - + Low (32 MB) - + Low (32 MB) - + Normal (64 MB) - + Normal (64 MB) - + High (128 MB) - + High (128 MB) + + + + CDisplaySettingsWidget + + + Auto + Auto CSoundSettingsWidget - + %1 tracks - + %1 tracks + + + + CSysInfoWidget + + + %1 MiB + %1 MiB client_config_dialog - + Ryzom Configuration - + Ryzom Configuration - - + + General - + General - + Category - + Category - + Display - + Display - + Display details - + Display details - + Display advanced - + Display advanced - + Sound - + Sound - + System information - + System information - + OpenGL information - + OpenGL information - + Direct3D information - + Direct3D information - + Apply - + Apply - + Default - + Default - + Play Ryzom - + Play Ryzom display_settings_advanced_widget - + Display advanced - + Display advanced - + Modify these settings only if you have trouble launching the game - + Modify these settings only if you have trouble launching the game - - Disable texture compression - + + Force texture compression + Force texture compression - + Disable vertex shaders - + Disable vertex shaders - + Disable AGP for vertices - + Disable AGP for vertices - + Disable pixel shaders - + Disable pixel shaders display_settings_details_widget - + Display details - + Display details - + Landscape - + Landscape - - - - + + + + Level of detail - + Level of detail - - - - + + + + Low - + Low - + Characters - + Characters - + FX - + FX - + Textures - + Textures display_settings_widget - + Display - + Display - + Driver - + Driver - + Specify if Ryzom is to be run in OpenGL or Direct3D. - + Specify if Ryzom is to be run in OpenGL or Direct3D. - + Auto - + Auto - + OpenGL - + OpenGL - + Direct3D - + Direct3D - + Parameters - + Parameters - + Specify if Ryzom is to be run in full screen or window mode: - + Specify if Ryzom is to be run in full screen or window mode: - + Full screen - + Full screen - + Specify a video mode - + Specify a video mode - + Windowed - + Windowed - + Width - + Width - + Height - + Height - + X position - + X position - + Y position - + Y position general_settings_widget - + Form - + Form - + Language - + Language - + English - + English - + French - + French - + German - + German - + Hungarian - + Hungarian - + Save config file when quitting the game - + Save config file when quitting the game - + Advanced - + Advanced - + Slow down the game ( process low priority ) - + Slow down the game ( process low priority ) sound_settings_widget - + Sound - + Sound - + Enable sound - + Enable sound - + Enable EAX - + Enable EAX - + Enable FMod - + Enable FMod - + Software sound buffer ( may increase FPS ) - + Software sound buffer ( may increase FPS ) - + Sound tracks - + Sound tracks - + 8 tracks - + 8 tracks sys_info_d3d_widget - + Direct3D information - + Direct3D information - + Direct3D - + Direct3D - + Description - + Description - + Driver - + Driver - + Driver version - + Driver version sys_info_opengl_widget - + OpenGL information - + OpenGL information - + OpenGL - + OpenGL - + Vendor - + Vendor - + Renderer - + Renderer - + Version - + Version - + Extensions - + Extensions sys_info_widget - - + + System information - + System information - + Operating system - + Operating system - + CPU - + CPU - + Physical memory - + Physical memory - + Video device - + Video device - + Video driver version - + Video driver version diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts new file mode 100644 index 000000000..e17d6d25f --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -0,0 +1,484 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + Confirguración de Ryzom + + + + Are you sure you want to quit without saving the configuration? + ¿Desea salir del juego sin guardar la configuración? + + + + CDisplaySettingsDetailsWidget + + + Low + Bajo + + + + Medium + Medio + + + + Normal + Normal + + + + High + Alto + + + + Low (32 MB) + Bajo (32 MB) + + + + Normal (64 MB) + Normal (64 MB) + + + + High (128 MB) + Alto (128 MB) + + + + CDisplaySettingsWidget + + + Auto + Automático + + + + CSoundSettingsWidget + + + %1 tracks + %1 pistas + + + + CSysInfoWidget + + + %1 MiB + %1 MiB + + + + client_config_dialog + + + Ryzom Configuration + Configuración de Ryzom + + + + + General + General + + + + Category + Categoría + + + + Display + Monitor + + + + Display details + Detalles de monitor + + + + Display advanced + Monitor avanzado + + + + Sound + Sonido + + + + System information + Información del sistema + + + + OpenGL information + Información OpenGL + + + + Direct3D information + Información Direct3D + + + + Apply + Aplicar + + + + Default + Por defecto + + + + Play Ryzom + Jugar Ryzom + + + + display_settings_advanced_widget + + + Display advanced + Monitor avanzado + + + + Modify these settings only if you have trouble launching the game + Modifique estos ajustes sólo si tiene problemas para iniciar el juego + + + + Force texture compression + Forzar compresión de texturas + + + + Disable vertex shaders + Desactivar vertex shader + + + + Disable AGP for vertices + Desactivar AGP para vértices + + + + Disable pixel shaders + Desactivar sombreador de píxel + + + + display_settings_details_widget + + + Display details + Mostrar detalles + + + + Landscape + Paisaje + + + + + + + Level of detail + Nivel de detalle + + + + + + + Low + Bajo + + + + Characters + Personajes + + + + FX + FX + + + + Textures + Texturas + + + + display_settings_widget + + + Display + Monitor + + + + Driver + Driver + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + + + + Auto + Automático + + + + OpenGL + OpenGL + + + + Direct3D + Direct3D + + + + Parameters + Parámetros + + + + Specify if Ryzom is to be run in full screen or window mode: + Especificar si Ryzom debe ser ejecutado en modo pantalla completa o en modo ventana: + + + + Full screen + Pantalla completa + + + + Specify a video mode + Especificar un modo de video + + + + Windowed + Ventana + + + + Width + Anchura + + + + Height + Altura + + + + X position + Posición X + + + + Y position + Posición Y + + + + general_settings_widget + + + Form + Forma + + + + Language + Idioma + + + + English + Inglés + + + + French + Francés + + + + German + Alemán + + + + Hungarian + Húngaro + + + + Save config file when quitting the game + Guardar archivo config al abandonar el juego + + + + Advanced + Avanzado + + + + Slow down the game ( process low priority ) + Realentizar el juego ( prioridad de procesamiento bajo) + + + + sound_settings_widget + + + Sound + Sonido + + + + Enable sound + Activar sonido + + + + Enable EAX + Activar EAX + + + + Enable FMod + Activar FMod + + + + Software sound buffer ( may increase FPS ) + Buffer de sonido software (puede aumentar los FPS ) + + + + Sound tracks + Pistas de sonido + + + + 8 tracks + 8 pistas + + + + sys_info_d3d_widget + + + Direct3D information + Información Direct3D + + + + Direct3D + Direct3D + + + + Description + Descripcción + + + + Driver + Driver + + + + Driver version + Versión del driver + + + + sys_info_opengl_widget + + + OpenGL information + Información OpenGL + + + + OpenGL + OpenGL + + + + Vendor + Distribuidor + + + + Renderer + Renderizador + + + + Version + Version + + + + Extensions + Extensión + + + + sys_info_widget + + + + System information + Información del sistema + + + + Operating system + Sistema operativo + + + + CPU + CPU + + + + Physical memory + Memoria física + + + + Video device + Dispositivo de video + + + + Video driver version + Versión del driver de video + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts index c79de4087..e03151f34 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts @@ -1,15 +1,15 @@ - + CClientConfigDialog - + Ryzom configuration Configuration de Ryzom - + Are you sure you want to quit without saving the configuration? Êtes-vous sûr de vouloir quitter sans enregistrer la configuration ? @@ -17,114 +17,130 @@ CDisplaySettingsDetailsWidget - + Low Faible - + Medium Moyen - + Normal Normal - + High Elevé - + Low (32 MB) Faible (32 Mo) - + Normal (64 MB) Normal (64 Mo) - + High (128 MB) Elevé (128 Mo) + + CDisplaySettingsWidget + + + Auto + Auto + + CSoundSettingsWidget - + %1 tracks %1 pistes + + CSysInfoWidget + + + %1 MiB + %1 Mio + + client_config_dialog - + Ryzom Configuration Configuration de Ryzom - - + + General Général - + Category Catégorie - + Display Affichage - + Display details Détails d'affichage - + Display advanced Affichage avancé - + Sound Son - + System information Informations systèmes - + OpenGL information Informations OpenGL - + Direct3D information Informations Direct3D - + Apply Appliquer - + Default Défaut - + Play Ryzom Jouer à Ryzom @@ -132,32 +148,36 @@ display_settings_advanced_widget - + Display advanced Affichage avancé - + Modify these settings only if you have trouble launching the game Modifiez ces paramètres uniquement si vous avez des problèmes pour lancer le jeu - Disable texture compression - Désactiver la compression des textures + Désactiver la compression des textures - + + Force texture compression + Forcer la compression des textures + + + Disable vertex shaders Désactiver les vertex shaders - + Disable AGP for vertices Désactiver l'AGP pour les vertices - + Disable pixel shaders Désactiver les pixel shaders @@ -165,43 +185,43 @@ display_settings_details_widget - + Display details Détails d'affichage - + Landscape Paysage - - - - + + + + Level of detail Niveau de détail - - - - + + + + Low Faible - + Characters Personnages - + FX Effets spéciaux - + Textures Textures @@ -209,77 +229,77 @@ display_settings_widget - + Display Affichage - + Driver Pilote - + Specify if Ryzom is to be run in OpenGL or Direct3D. Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. - + Auto Auto - + OpenGL OpenGL - + Direct3D Direct3D - + Parameters Paramètres - + Specify if Ryzom is to be run in full screen or window mode: Spécifier si Ryzom doit être lancé en mode plein écran ou fenêtré : - + Full screen Plein écran - + Specify a video mode Spécifier une résolution - + Windowed Fenêtré - + Width Largeur - + Height Hauteur - + X position Position X - + Y position Position Y @@ -287,47 +307,47 @@ general_settings_widget - + Form Formulaire - + Language Langue - + English Anglais - + French Français - + German Allemand - + Hungarian Hongrois - + Save config file when quitting the game Enregistrer le fichier de configuration quand on quitte le jeu - + Advanced Avancé - + Slow down the game ( process low priority ) Ralentir le jeu (priorité basse du processus) @@ -335,37 +355,37 @@ sound_settings_widget - + Sound Son - + Enable sound Activer le son - + Enable EAX Activer EAX - + Enable FMod Activer FMod - + Software sound buffer ( may increase FPS ) Tampons sonores logiciels (peut accroître la fluidité) - + Sound tracks Pistes audio - + 8 tracks 8 pistes @@ -373,27 +393,27 @@ sys_info_d3d_widget - + Direct3D information Informations Direct3D - + Direct3D Direct3D - + Description Description - + Driver Pilote - + Driver version Version du pilote @@ -401,32 +421,32 @@ sys_info_opengl_widget - + OpenGL information Informations OpenGL - + OpenGL OpenGL - + Vendor Vendeur - + Renderer Moteur de rendu - + Version Version - + Extensions Extensions @@ -434,33 +454,33 @@ sys_info_widget - - + + System information Informations systèmes - + Operating system Système d'exploitation - + CPU Processeur - + Physical memory Mémoire physique - + Video device Carte graphique - + Video driver version Version du driver de la carte graphique diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts index 846fd7640..6506f0fa5 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts @@ -1,15 +1,15 @@ - + CClientConfigDialog - + Ryzom configuration Ryom beállító - + Are you sure you want to quit without saving the configuration? Biztosan ki akar lépni mentés nélkül? @@ -17,49 +17,65 @@ CDisplaySettingsDetailsWidget - + Low Alacsony - + Medium Közepes - + Normal Normális - + High Magas - + Low (32 MB) Alacsony (32 MB) - + Normal (64 MB) Normális (64 MB) - + High (128 MB) Magas (128 MB) + + CDisplaySettingsWidget + + + Auto + Automatikus + + CSoundSettingsWidget - + %1 tracks %1 sáv + + CSysInfoWidget + + + %1 MiB + + + ClientConfigDialog @@ -429,68 +445,68 @@ client_config_dialog - + Ryzom Configuration Ryzom beállító - - + + General Általános - + Category Kategória - + Display Megjelenítés - + Display details Megjelenítés részletek - + Display advanced Megjelenítés haladóknak - + Sound Hang - + System information Rendszer információk - + OpenGL information OpenGL információk - + Direct3D information Direct3D információk - + Apply Alkalmaz - + Default Alapbeállítások - + Play Ryzom Ryom indítása @@ -498,32 +514,36 @@ display_settings_advanced_widget - + Display advanced Megjelenítés haladóknak - + Modify these settings only if you have trouble launching the game Csak akkor változtasson ezeken a beállításokon ha nem tudja elindítani a játékot - Disable texture compression - Textúratömörítés kikapcsolása + Textúratömörítés kikapcsolása - + + Force texture compression + + + + Disable vertex shaders Csúcsárnyalók kikapcsolása - + Disable AGP for vertices AGP kikapcsolása a csúcsok számára - + Disable pixel shaders Képpont árnyalók kikapcsolása @@ -531,43 +551,43 @@ display_settings_details_widget - + Display details Megjelenítés részletek - + Landscape Terep - - - - + + + + Level of detail Részletesség - - - - + + + + Low Alacsony - + Characters Karakterek - + FX FX - + Textures Textúrák @@ -575,77 +595,77 @@ display_settings_widget - + Display Megjelenítés - + Driver Meghajtó - + Specify if Ryzom is to be run in OpenGL or Direct3D. Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. - + Auto Automatikus - + OpenGL - + Direct3D - + Parameters Paraméterek - + Specify if Ryzom is to be run in full screen or window mode: Határozza meg, hogy a Ryzom teljes képernyős vagy ablakos üzemmódban fusson: - + Full screen Teljes képernyő - + Specify a video mode Határozza meg a megjelenítési módot - + Windowed Ablakos - + Width Szélesség - + Height Magasság - + X position X helyzet - + Y position Y Helyzet @@ -653,47 +673,47 @@ general_settings_widget - + Form - + Language Nyelv - + English Angol - + French Francia - + German Német - + Hungarian Magyar - + Save config file when quitting the game Mentsük a beállításokat kilépéskor - + Advanced Haladó - + Slow down the game ( process low priority ) Játék lassítása ( alacsony prioritású folyamat ) @@ -701,37 +721,37 @@ sound_settings_widget - + Sound Hang - + Enable sound Hang bekapcsolása - + Enable EAX EAX bekapcsolása - + Enable FMod FMod bekapcsolása - + Software sound buffer ( may increase FPS ) Software-es hang tárolás ( növelheti az FPS-t ) - + Sound tracks Hangsávok - + 8 tracks 8 sáv @@ -739,27 +759,27 @@ sys_info_d3d_widget - + Direct3D information Direct3D információk - + Direct3D - + Description Leírás - + Driver Meghajtó - + Driver version Meghajtó verziószám @@ -767,32 +787,32 @@ sys_info_opengl_widget - + OpenGL information OpenGL információk - + OpenGL - + Vendor Szállító - + Renderer Megjelenítő - + Version Verziószám - + Extensions Kiegészítések @@ -800,33 +820,33 @@ sys_info_widget - - + + System information Rendszer információk - + Operating system Alaprendszer - + CPU - + Physical memory Fizikai memória - + Video device Megjelenítő eszköz - + Video driver version Megjelenítő meghajtó verziószám diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts new file mode 100644 index 000000000..e7de55e5a --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts @@ -0,0 +1,484 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + + + + + Are you sure you want to quit without saving the configuration? + + + + + CDisplaySettingsDetailsWidget + + + Low + + + + + Medium + + + + + Normal + + + + + High + + + + + Low (32 MB) + + + + + Normal (64 MB) + + + + + High (128 MB) + + + + + CDisplaySettingsWidget + + + Auto + + + + + CSoundSettingsWidget + + + %1 tracks + + + + + CSysInfoWidget + + + %1 MiB + + + + + client_config_dialog + + + Ryzom Configuration + + + + + + General + + + + + Category + + + + + Display + + + + + Display details + + + + + Display advanced + + + + + Sound + + + + + System information + + + + + OpenGL information + + + + + Direct3D information + + + + + Apply + + + + + Default + + + + + Play Ryzom + + + + + display_settings_advanced_widget + + + Display advanced + + + + + Modify these settings only if you have trouble launching the game + + + + + Force texture compression + + + + + Disable vertex shaders + + + + + Disable AGP for vertices + + + + + Disable pixel shaders + + + + + display_settings_details_widget + + + Display details + + + + + Landscape + + + + + + + + Level of detail + + + + + + + + Low + + + + + Characters + + + + + FX + + + + + Textures + + + + + display_settings_widget + + + Display + + + + + Driver + + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + + + + + Auto + + + + + OpenGL + + + + + Direct3D + + + + + Parameters + + + + + Specify if Ryzom is to be run in full screen or window mode: + + + + + Full screen + + + + + Specify a video mode + + + + + Windowed + + + + + Width + + + + + Height + + + + + X position + + + + + Y position + + + + + general_settings_widget + + + Form + + + + + Language + + + + + English + + + + + French + + + + + German + + + + + Hungarian + + + + + Save config file when quitting the game + + + + + Advanced + + + + + Slow down the game ( process low priority ) + + + + + sound_settings_widget + + + Sound + + + + + Enable sound + + + + + Enable EAX + + + + + Enable FMod + + + + + Software sound buffer ( may increase FPS ) + + + + + Sound tracks + + + + + 8 tracks + + + + + sys_info_d3d_widget + + + Direct3D information + + + + + Direct3D + + + + + Description + + + + + Driver + + + + + Driver version + + + + + sys_info_opengl_widget + + + OpenGL information + + + + + OpenGL + + + + + Vendor + + + + + Renderer + + + + + Version + + + + + Extensions + + + + + sys_info_widget + + + + System information + + + + + Operating system + + + + + CPU + + + + + Physical memory + + + + + Video device + + + + + Video driver version + + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/translations.qrc b/code/ryzom/tools/client/client_config_qt/translations/translations.qrc index 49f9aa0a6..f90755537 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/translations.qrc +++ b/code/ryzom/tools/client/client_config_qt/translations/translations.qrc @@ -1,7 +1,10 @@ + ryzom_configuration_de.qm ryzom_configuration_en.qm + ryzom_configuration_es.qm ryzom_configuration_fr.qm ryzom_configuration_hu.qm + ryzom_configuration_ru.qm From caf9a7b54f61bc163d5ca06fbb4724f2dde1a4bc Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:27:28 +0100 Subject: [PATCH 140/184] Fixed: UTF-8 encoding --- .../translations/ryzom_configuration_de.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index 1aa06dde2..a8f45f6e2 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -172,7 +172,7 @@ Disable AGP for vertices - Deaktiviere AGP fr Vertexeckpunkte + Deaktiviere AGP für Vertexeckpunkte @@ -241,7 +241,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D. there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... - Whle, ob Ryzom in OpenGL oder Direct3D laufen soll: + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: @@ -266,7 +266,7 @@ Specify if Ryzom is to be run in full screen or window mode: - Whle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: + Wähle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: @@ -276,7 +276,7 @@ Specify a video mode - Whle eine Bildschirmauflsung + Wähle eine Bildschirmauflösung @@ -291,7 +291,7 @@ Height - Hhe + Höhe @@ -325,7 +325,7 @@ French - Franzsisch + Französisch @@ -352,7 +352,7 @@ Slow down the game ( process low priority ) - Verlangsame das Spiel (niedrige Prozessprioritt) + Verlangsame das Spiel (niedrige Prozesspriorität) @@ -380,7 +380,7 @@ Software sound buffer ( may increase FPS ) - Software Sound Buffer (kann FPS erhhen) + Software Sound Buffer (kann FPS erhöhen) From a7874615d4128a8b1d8f9b17fb2242b16360489a Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:36:50 +0100 Subject: [PATCH 141/184] Changed: Sligthly changes --- .../display_settings_widget.ui | 4 +-- .../general_settings_widget.ui | 2 +- .../client_config_qt/sound_settings_widget.ui | 2 +- .../translations/ryzom_configuration_de.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_en.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_es.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_fr.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_hu.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_ru.ts | 8 +++--- 9 files changed, 113 insertions(+), 33 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui index 2e24b455f..2cf1176e8 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui @@ -25,7 +25,7 @@ - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -78,7 +78,7 @@ - Specify a video mode + Specify a video mode: diff --git a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui index 5e7ef9793..722a195d9 100644 --- a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui @@ -97,7 +97,7 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) diff --git a/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui index 7ae6ef699..dc973292a 100644 --- a/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui @@ -42,7 +42,7 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index a8f45f6e2..925d12bb0 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -238,10 +238,14 @@ Treiber - Specify if Ryzom is to be run in OpenGL or Direct3D. there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... - Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -275,8 +279,12 @@ + Specify a video mode: + + + Specify a video mode - Wähle eine Bildschirmauflösung + Wähle eine Bildschirmauflösung @@ -351,8 +359,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Verlangsame das Spiel (niedrige Prozesspriorität) + Verlangsame das Spiel (niedrige Prozesspriorität) @@ -379,8 +391,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Software Sound Buffer (kann FPS erhöhen) + Software Sound Buffer (kann FPS erhöhen) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts index 6de6db3cf..4bf3d8126 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts @@ -235,9 +235,13 @@ Driver - Specify if Ryzom is to be run in OpenGL or Direct3D. - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -271,8 +275,12 @@ + Specify a video mode: + Specify a video mode: + + Specify a video mode - Specify a video mode + Specify a video mode @@ -344,8 +352,12 @@ + Slow down the game (process low priority) + Slow down the game (process low priority) + + Slow down the game ( process low priority ) - Slow down the game ( process low priority ) + Slow down the game ( process low priority ) @@ -372,8 +384,12 @@ + Software sound buffer (may increase FPS) + Software sound buffer (may increase FPS) + + Software sound buffer ( may increase FPS ) - Software sound buffer ( may increase FPS ) + Software sound buffer ( may increase FPS ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts index e17d6d25f..b7498d3bc 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -235,9 +235,13 @@ Driver - Specify if Ryzom is to be run in OpenGL or Direct3D. - Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -271,8 +275,12 @@ + Specify a video mode: + + + Specify a video mode - Especificar un modo de video + Especificar un modo de video @@ -344,8 +352,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Realentizar el juego ( prioridad de procesamiento bajo) + Realentizar el juego ( prioridad de procesamiento bajo) @@ -372,8 +384,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Buffer de sonido software (puede aumentar los FPS ) + Buffer de sonido software (puede aumentar los FPS ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts index e03151f34..c60460881 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts @@ -239,9 +239,13 @@ Pilote - Specify if Ryzom is to be run in OpenGL or Direct3D. - Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. + Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + Spécifier si Ryzom doit utiliser OpenGL ou Direct3D : @@ -275,8 +279,12 @@ + Specify a video mode: + Spécifier une résolution : + + Specify a video mode - Spécifier une résolution + Spécifier une résolution @@ -348,9 +356,13 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) Ralentir le jeu (priorité basse du processus) + + Slow down the game ( process low priority ) + Ralentir le jeu (priorité basse du processus) + sound_settings_widget @@ -376,9 +388,13 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) Tampons sonores logiciels (peut accroître la fluidité) + + Software sound buffer ( may increase FPS ) + Tampons sonores logiciels (peut accroître la fluidité) + Sound tracks diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts index 6506f0fa5..6f31fb7b2 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts @@ -605,9 +605,13 @@ Meghajtó - Specify if Ryzom is to be run in OpenGL or Direct3D. - Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. + Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -641,8 +645,12 @@ + Specify a video mode: + + + Specify a video mode - Határozza meg a megjelenítési módot + Határozza meg a megjelenítési módot @@ -714,8 +722,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Játék lassítása ( alacsony prioritású folyamat ) + Játék lassítása ( alacsony prioritású folyamat ) @@ -742,8 +754,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Software-es hang tárolás ( növelheti az FPS-t ) + Software-es hang tárolás ( növelheti az FPS-t ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts index e7de55e5a..2873880a5 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts @@ -236,7 +236,7 @@ - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -271,7 +271,7 @@ - Specify a video mode + Specify a video mode: @@ -344,7 +344,7 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) @@ -372,7 +372,7 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) From d2bc560ca8bfec6212bd088643480505d95275e2 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 23:58:58 +0100 Subject: [PATCH 142/184] Changed: Minor changes (spaces replaced by tabs) --- .../gamedev/interfaces_v3/out_v2_appear.lua | 144 ++-- .../gamedev/interfaces_v3/out_v2_appear.xml | 705 +++++++++--------- 2 files changed, 427 insertions(+), 422 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index e74c15469..c962a7492 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -20,90 +20,93 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0; - for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end + local nbFyrosFirstNames = 0; + for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end - return fyrosFirstNames[math.random(nbFyrosFirstNames)] + return fyrosFirstNames[math.random(nbFyrosFirstNames)] end -function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end - return fyrosLastNames[math.random(nbFyrosLastNames)] +function outgame:getFyrosLastName() + local nbFyrosLastNames = 0; + for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + + return fyrosLastNames[math.random(nbFyrosLastNames)] end -- Matis function outgame:getMatisFirstName(sex) - local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); + -- 1 = male, 2 = female + local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); - if sex ~= nil then - dbNameSex = sex; - end + if sex ~= nil then + dbNameSex = sex; + end - local FirstName = "" - if tonumber( dbNameSex )== 1 then - local nbMatisMaleFirstNames = 0; - for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end - FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; - else - local nbMatisFemaleFirstNames = 0; - for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end - FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; - end + local FirstName = "" + if tonumber(dbNameSex) == 1 then + local nbMatisMaleFirstNames = 0; + for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; + else + local nbMatisFemaleFirstNames = 0; + for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; + end - return FirstName; + return FirstName; end function outgame:getMatisLastName() - local nbMatisLastNames = 0; - for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end + local nbMatisLastNames = 0; + for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end - return matisLastNames[math.random(nbMatisLastNames)] + return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0; - for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end + local nbTrykerFirstNames = 0; + for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end - return trykerFirstNames[math.random(nbTrykerFirstNames)] + return trykerFirstNames[math.random(nbTrykerFirstNames)] end -function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end - return trykerLastNames[math.random(nbTrykerLastNames)] +function outgame:getTrykerLastName() + local nbTrykerLastNames = 0; + for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + + return trykerLastNames[math.random(nbTrykerLastNames)] end -- Zora function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0; - for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end - local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; + local nbFirstNamesOne = 0; + for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; - local nbFirstNamesTwo = 0; - for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end - local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; + local nbFirstNamesTwo = 0; + for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; - return FirstNameOne .. "-" .. FirstNameTwo + return FirstNameOne .. "-" .. FirstNameTwo end function outgame:getZoraiLastName() - local nbLastNames = 0; - for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end + local nbLastNames = 0; + for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end - return zoraiLastNames[math.random(nbLastNames)] + return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() - local uiNameFull = getUI("ui:outgame:appear_name:name_full"); + local uiNameFull = getUI("ui:outgame:appear_name:name_full"); local uiGenText = getUI("ui:outgame:appear_name:eb"); local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); - local nameResult = ""; - local fullnameResult = ""; + local nameResult = ""; + local fullnameResult = ""; -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. -- fy ma try zo --> @@ -175,31 +178,35 @@ function outgame:procGenerateName() uiNameFull.hardtext = fullnameResult; - nameResult = string.gsub(nameResult, "'", ""); - nameResult = string.gsub(nameResult, " ", ""); - nameResult = string.gsub(nameResult, "-", ""); - nameResult = string.lower( nameResult ); - nameResult = nameResult:gsub("^%l", string.upper); - uiGenText.input_string = nameResult; + uiNameFull.hardtext = fullnameResult; + + nameResult = string.gsub(nameResult, "'", ""); + nameResult = string.gsub(nameResult, " ", ""); + nameResult = string.gsub(nameResult, "-", ""); + nameResult = string.lower( nameResult ); + nameResult = nameResult:gsub("^%l", string.upper); + uiGenText.input_string = nameResult; end + -- Name sex slider update. function outgame:procUpdateNameSexLabel() - local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } + local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex"); - local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); - tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); - tempstr = string.lower( tempstr ); - tempstr = (tempstr:gsub("^%l", string.upper)); + tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); + tempstr = string.lower(tempstr); + tempstr = (tempstr:gsub("^%l", string.upper)); - uiNameSexText.hardtext= tempstr; + uiNameSexText.hardtext = tempstr; end + -- Name race slider update. function outgame:procUpdateNameRaceLabel() - local nameRaceType = { "Fyros", "Matis", "Tryker", "Zora", "uiCP_Maraudeur" } + local nameRaceType = { "Fyros", "Matis", "Tryker", "Zora", "uiCP_Maraudeur" } local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); @@ -207,15 +214,15 @@ function outgame:procUpdateNameRaceLabel() local uiNameSubRace2Slider = getUI("ui:outgame:appear_name:name_sub_race2_slider"); local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); - -- Show/Hide sex slider + -- Show/Hide sex slider - uiNameGenerate.y = "-50" - if tonumber(dbNameRace) == 2 then - uiNameSexSlider.active = true; - uiNameGenerate.y = "-65" - else - uiNameSexSlider.active = false; - end + uiNameGenerate.y = "-50" + if tonumber(dbNameRace) == 2 then + uiNameSexSlider.active = true; + uiNameGenerate.y = "-65" + else + uiNameSexSlider.active = false; + end -- Show/Hide sub race slider if tonumber(dbNameRace) == 5 then @@ -227,8 +234,7 @@ function outgame:procUpdateNameRaceLabel() uiNameSubRace2Slider.active = false; end - - uiNameRaceText.hardtext= tostring(nameRaceType[tonumber(dbNameRace)]); + uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index afe180d79..a6cafbf17 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -49,14 +49,14 @@ - + - + - + @@ -195,15 +195,15 @@ - + - + - + @@ -229,12 +229,12 @@ - + - - + + @@ -242,19 +242,19 @@ - + - + - - - + + + @@ -300,7 +300,7 @@ - + @@ -317,7 +317,7 @@ - + @@ -329,13 +329,13 @@ - + - + @@ -351,9 +351,9 @@ - + - @@ -371,7 +371,7 @@ - @@ -383,13 +383,13 @@ - + - + @@ -409,14 +409,14 @@ - - + + - - + + @@ -612,8 +612,8 @@ - - + + @@ -635,7 +635,7 @@ - + @@ -668,14 +668,14 @@ - + - + - + @@ -722,7 +722,7 @@ - + @@ -730,10 +730,10 @@ - + - + @@ -745,13 +745,13 @@ - + - + @@ -761,19 +761,19 @@ - + - + - + - + - + @@ -804,48 +804,48 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -853,32 +853,32 @@ - + + value=switch(@0, 2, -151, -304, -457, -610)" /> - - + value=switch(@0, 0, -153, -306, -459, -612)" /> + + - + - + - + - + @@ -918,13 +918,13 @@ - - + + - + @@ -934,55 +934,55 @@ - + - + - + - + - - + + - + - + - + - + - + - - + + - + @@ -1054,16 +1054,16 @@ - - + + - + - + @@ -1074,8 +1074,8 @@ - - + + @@ -1097,18 +1097,18 @@ - + - + - + @@ -1120,7 +1120,7 @@ - + @@ -1188,10 +1188,10 @@ - + - + - + - - + @@ -1244,23 +1244,23 @@ - + - + - + - + - + @@ -1270,32 +1270,31 @@ - + - - - - - + + + + - @@ -1432,10 +1431,10 @@ - + - + @@ -1443,20 +1442,20 @@ - + - + - - + @@ -1478,23 +1477,23 @@ - + - + - + - + - + @@ -1503,15 +1502,15 @@ - - - + + - - + + @@ -1531,7 +1530,7 @@ - + @@ -1539,14 +1538,14 @@ - - + + - - - - - + + + + + @@ -1564,23 +1563,23 @@ - + - + - + - + - + @@ -1591,23 +1590,23 @@ - + - + - + - + - + @@ -1624,31 +1623,31 @@ - + - + - + - + - + - + - + - + - + @@ -1696,16 +1695,16 @@ - + - - + + - + @@ -1714,12 +1713,12 @@ - + - + @@ -1741,35 +1740,35 @@ - + - - + + - + - - - + - + @@ -1779,10 +1778,10 @@ - + @@ -1792,10 +1791,10 @@ - + @@ -1805,10 +1804,10 @@ - + @@ -1839,7 +1838,7 @@ --> - + @@ -1848,27 +1847,27 @@ - - + + - + - + - + - + - + @@ -1878,189 +1877,189 @@ roty_factor="0.005" roty_limit_min="-30" roty_limit_max="30" dist_factor="0.005" dist_limit_min="1.5" dist_limit_max="2.5" > - + - - - + + + - - - + + + - - + - + - + - + - + - + - - + - + - + - + - + - - + - + - + - + - + - - + - + - + - + - - + - + - + - + - + - + - + - + - + - + + onclick_l="proc" params_l="proc_CP_menu|4" + /> + + - - - + - + - + - + - + - + @@ -2078,48 +2077,48 @@ --> - - + + - + - + - + - + - - - - - - - + + + + + + + - + - + @@ -2127,15 +2126,15 @@ - + @@ -2143,7 +2142,7 @@ @@ -2152,16 +2151,16 @@ - + - - + + @@ -2178,22 +2177,22 @@ - - + + - + - + - + - + @@ -2203,8 +2202,8 @@ - - + + @@ -2213,8 +2212,8 @@ - - + + @@ -2239,40 +2238,40 @@ - + - + - + @@ -2295,45 +2294,45 @@ - + - - + + - + - + - + - + - + - - - + + + - + - - + + - + @@ -2343,7 +2342,7 @@ line_maxw="450" multi_line="true" multi_line_space="0"/> - + @@ -2369,8 +2368,8 @@ - - + + @@ -2392,22 +2391,22 @@ - + - + - + - + - - + + - + - + @@ -2415,16 +2414,16 @@ - + - + - + - + @@ -2435,7 +2434,7 @@ color="255 255 255 255" col_pushed="255 255 255 255" col_over="0 0 0 0" onover="play_sound" params_over="name=specie_but_over" onclick_l="proc" params_l="anim_perso"/> - + - --> - + --> + @@ -2460,18 +2459,18 @@ - + - + - + - - + + - + - - + + - + + color="255 255 255 255" global_color="false" /> - - - - + + + + color="0 0 0 255" sizeref="wh" scale="true" global_color="false" /> @@ -2649,7 +2648,7 @@ - + @@ -2706,7 +2705,7 @@ - + @@ -2714,7 +2713,7 @@ - + From 7ee9833bf3ae6df42c965150b7503163e8ad792c Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:01:29 +0100 Subject: [PATCH 143/184] Changed: Use more explicit variable names --- .../gamedev/interfaces_v3/out_v2_appear.lua | 41 ++- .../gamedev/interfaces_v3/out_v2_appear.xml | 253 +++++++++--------- 2 files changed, 147 insertions(+), 147 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index c962a7492..76b187a5c 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -101,9 +101,9 @@ end function outgame:procGenerateName() local uiNameFull = getUI("ui:outgame:appear_name:name_full"); local uiGenText = getUI("ui:outgame:appear_name:eb"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); - local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); - local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); local nameResult = ""; local fullnameResult = ""; @@ -210,8 +210,8 @@ function outgame:procUpdateNameRaceLabel() local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); - local uiNameSubRaceSlider = getUI("ui:outgame:appear_name:name_sub_race_slider"); - local uiNameSubRace2Slider = getUI("ui:outgame:appear_name:name_sub_race2_slider"); + local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider"); + local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider"); local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); -- Show/Hide sex slider @@ -224,15 +224,15 @@ function outgame:procUpdateNameRaceLabel() uiNameSexSlider.active = false; end - -- Show/Hide sub race slider - if tonumber(dbNameRace) == 5 then - uiNameSubRaceSlider.active = true; - uiNameSubRace2Slider.active = true; - uiNameGenerate.y = "-105" - else - uiNameSubRaceSlider.active = false; - uiNameSubRace2Slider.active = false; - end + -- Show/Hide sub race slider + if tonumber(dbNameRace) == 5 then + uiNameSubRaceFirstNameSlider.active = true; + uiNameSubRaceLastNameSlider.active = true; + uiNameGenerate.y = "-105" + else + uiNameSubRaceFirstNameSlider.active = false; + uiNameSubRaceLastNameSlider.active = false; + end uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); end @@ -246,16 +246,15 @@ function outgame:procUpdateNameSubRaceLabel() local uiNameSubRaceText = getUI("ui:outgame:appear_name:name_sub_race_slider:name_race"); local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); - - uiNameSubRaceText.hardtext= tostring(nameSubRaceType[tonumber(dbNameSubRace)]); + uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); end -function outgame:procUpdateNameSubRace2Label() - local nameSubRace2Type = { "Fyros", "Matis", "Tryker", "Zora" } - local uiNameSubRace2Text = getUI("ui:outgame:appear_name:name_sub_race2_slider:name_race"); - local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); +function outgame:procUpdateNameSubRaceLastNameLabel() + local nameSubRaceLastNameType = { "Fyros", "Matis", "Tryker", "Zora" } + local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race"); + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); - uiNameSubRace2Text.hardtext= tostring(nameSubRace2Type[tonumber(dbNameSubRace2)]); + uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]); end ------------------------------------------------------------------------------------------------------------ diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index a6cafbf17..831e1966c 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -51,8 +51,8 @@ - - + + @@ -1307,120 +1307,121 @@ - - - - - - - - - - - - - - + - + - - - - - - - - - - - - + + + - + + - - - - - - - - - - - - + + + - + - - - - - - - - - - - - + - + + + - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1533,8 +1534,8 @@ - - + + @@ -1649,29 +1650,29 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + From 72bc7a8fd07000ea8d26dbc4aaefd2319058737e Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:03:06 +0100 Subject: [PATCH 144/184] Fixed: Wrong first and last names orders and some minor bugs --- .../gamedev/interfaces_v3/out_v2_appear.lua | 130 ++++++++---------- 1 file changed, 60 insertions(+), 70 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 76b187a5c..1c8a86342 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -108,75 +108,65 @@ function outgame:procGenerateName() local nameResult = ""; local fullnameResult = ""; - -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. - -- fy ma try zo --> - local lastName = "test" - local firstName = "test2" - if tonumber( dbNameRace ) == 1 then - -- Fyros - lastName = self:getFyrosLastName() - firstName = self:getFyrosFirstName() - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - elseif tonumber( dbNameRace ) == 2 then - -- Matis - lastName = self:getMatisLastName() - firstName = self:getMatisFirstName() - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - elseif tonumber( dbNameRace ) == 3 then - -- Tryker - lastName = self:getTrykerLastName() - firstName = self:getTrykerFirstName() - fullnameResult = firstName .. " " .. lastName - nameResult = firstName - elseif tonumber( dbNameRace ) == 4 then - -- Zorai - lastName = self:getZoraiLastName() - firstName = self:getZoraiFirstName() - fullnameResult = firstName .. " " .. lastName - nameResult = firstName - elseif tonumber( dbNameRace ) == 5 then - -- Maraudeurs - -- lastName - if tonumber(dbNameSubRace) == 1 then - -- Fyros - lastName = self:getFyrosLastName() - elseif tonumber( dbNameSubRace ) == 2 then - -- Matis F - lastName = self:getMatisLastName(2) - elseif tonumber( dbNameSubRace ) == 3 then - -- Matis M - lastName = self:getMatisLastName(1) - elseif tonumber( dbNameSubRace ) == 4 then - -- Tryker - lastName = self:getTrykerLastName() - elseif tonumber( dbNameSubRace ) == 5 then - -- Zorai - lastName = self:getZoraiLastName() - end + -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. + -- fy ma try zo --> + local firstName = "test2" + local lastName = "test" + if tonumber(dbNameRace) == 1 then + -- Fyros + firstName = self:getFyrosFirstName() + lastName = self:getFyrosLastName() + elseif tonumber(dbNameRace) == 2 then + -- Matis + firstName = self:getMatisFirstName() + lastName = self:getMatisLastName() + elseif tonumber(dbNameRace) == 3 then + -- Tryker + firstName = self:getTrykerFirstName() + lastName = self:getTrykerLastName() + elseif tonumber(dbNameRace) == 4 then + -- Zorai + firstName = self:getZoraiFirstName() + lastName = self:getZoraiLastName() + elseif tonumber(dbNameRace) == 5 then + -- Maraudeurs - -- firstName - if tonumber(dbNameSubRace2) == 1 then - -- Fyros - firstName = self:getFyrosFirstName() - elseif tonumber( dbNameSubRace2 ) == 2 then - -- Matis - firstName = self:getMatisFirstName() - firstName = self:getMatisFirstName() - elseif tonumber( dbNameSubRace2 ) == 3 then - -- Tryker - firstName = self:getTrykerFirstName() - elseif tonumber( dbNameSubRace2 ) == 4 then - -- Zorai - firstName = self:getZoraiFirstName() - end + -- firstName + if tonumber(dbNameSubRaceFirstName) == 1 then + -- Fyros + firstName = self:getFyrosFirstName() + elseif tonumber(dbNameSubRaceFirstName) == 2 then + -- Matis M + firstName = self:getMatisFirstName(1) + elseif tonumber(dbNameSubRaceFirstName) == 3 then + -- Matis F + firstName = self:getMatisFirstName(2) + elseif tonumber(dbNameSubRaceFirstName) == 4 then + -- Tryker + firstName = self:getTrykerFirstName() + elseif tonumber(dbNameSubRaceFirstName) == 5 then + -- Zorai + firstName = self:getZoraiFirstName() + end - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - end + -- lastName + if tonumber(dbNameSubRaceLastName) == 1 then + -- Fyros + lastName = self:getFyrosLastName() + elseif tonumber(dbNameSubRaceLastName) == 2 then + -- Matis + lastName = self:getMatisLastName() + elseif tonumber(dbNameSubRaceLastName) == 3 then + -- Tryker + lastName = self:getTrykerLastName() + elseif tonumber(dbNameSubRaceLastName) == 4 then + -- Zorai + lastName = self:getZoraiLastName() + end + end - uiNameFull.hardtext = fullnameResult; + fullnameResult = firstName .. " " .. lastName + nameResult = firstName uiNameFull.hardtext = fullnameResult; @@ -241,10 +231,10 @@ end local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper); local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper); -function outgame:procUpdateNameSubRaceLabel() - local nameSubRaceType = { "Fyros", matisF, matisM, "Tryker", "Zora" } - local uiNameSubRaceText = getUI("ui:outgame:appear_name:name_sub_race_slider:name_race"); - local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); +function outgame:procUpdateNameSubRaceFirstNameLabel() + local nameSubRaceFirstNameType = { "Fyros", matisM, matisF, "Tryker", "Zora" } + local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race"); + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); end From b80b71d6f8c04edb5be4ac2b8cc915dd12ff9488 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:06:06 +0100 Subject: [PATCH 145/184] Changed: Updated Configuration translations --- .../translations/ryzom_configuration_de.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index 925d12bb0..2efd55ed3 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -216,8 +216,7 @@ FX - Special effects? - FX + FX Effekte @@ -245,7 +244,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D: - + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: @@ -280,7 +279,7 @@ Specify a video mode: - + Wähle eine Bildschirmauflösung: Specify a video mode @@ -317,8 +316,7 @@ Form - form of what? Does it mean a mode? Figure? Category? Phrase? Shape? Format? Configuration? Can't find it in the current configuration program for Ryzom on Steam - Form + Formblatt @@ -360,7 +358,7 @@ Slow down the game (process low priority) - + Verlangsame Spiel (niedrige Prozesspriorität) Slow down the game ( process low priority ) @@ -392,7 +390,7 @@ Software sound buffer (may increase FPS) - + Software Sound Buffer (kann FPS erhöhen) Software sound buffer ( may increase FPS ) @@ -499,7 +497,7 @@ Video device seems to refer to the video card. Or is it something else? - Grafikkarte + Grafikkarte From 3fe5d2b5c603539858b929550b43f9b0eb247822 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:08:12 +0100 Subject: [PATCH 146/184] Changed: Updated translations --- .../translation/translated/title_words_de.txt | Bin 323806 -> 323926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/code/ryzom/tools/translation/translated/title_words_de.txt b/code/ryzom/tools/translation/translated/title_words_de.txt index c48e1ddda55e0a0e9b332471928665073eebc7c1..3275cbfd142bbc4208961132a2d31d4d3978e3a4 100644 GIT binary patch delta 1008 zcmYjQTWC{R6g}tOtEDj}sfl^iJ~APu)-(+crNgvPLmDl8_-L!~Q5BV@;MiVmQU@7S zN-bI>XzUWNAFbBnh>QbTkD%hC_~DN))DIs&iuLi?Q5giGqqFagI>Y5~?%j9qwbxl| zpXV>_k0hzx!p*d;brYC z!IF&nVccATQS%M4dFC~ah}B|Lgsf+ceau>d&(@thfgQHpc?s6TUb7u+GZm{k1iBhS zL{mXi-U0kkX2GB37BQI@lkv;!d@P+kgn7;)_?;O77;}!}l*@sAu0h1z`Dk*d>AZ~w zk4`+4iU&P?20PK`>EJNWF_?%?`Ndr8Ny;`#)=8(BSGWqc=|TjH3dLw)m1O)z?2Zi+ z#c7Hk@_NKR?|qJ4KAY(9eUQJ&C3*u@TniAG{W}$${u)q?E& zhN(CVbRfO(H2M=Z#3BP(jsK4LwEk|nKzxp@<;X-8JgO}~PxJzj`6pV6 zrM3Oqhi7sTCToX~j$I}*9@Z9$jf)C6HEbYJx3ZKT!sy}*_SCsWQ=MBf6soQ-)n`;3 zt@m*q!-=~MBSLL#=Q*!w?0%zRJKGcz%94PBc(W7H=HsxmIPkIg7&SlF;=-wx0eV~3 z>Jrh`b-YxiZYjgUT(*KtRSiQsS%|fgy;FwgMuxbxBAC60f33_Rp|rzKNMiGaY-zeVf_a*wiXZjcB C(?D(j delta 847 zcmXw1Ur3Wt6u{xs@`r=nOUY}rQ-h^?Q6d)E-LE1?V z=^(dAFKE(R%qESaUNeAEn;fZ=wORP5nZcS?Ve{H5krUYU>CovzuzGYjyd)>IlY7K} z#KJw6^{+72prGF{$+79FQ^@paI4%aOsnfCHo*s@4VB2HH3*||qORLesT*fl04d=al zrW@SulP=YYPT!cMJ@Ef(k~G_r)4!ZaonW{Mc}rLn4FtAIhLLSymRX=L-x z9Lj#5IpprFMA>1fgC6x@Wo5+zLghL(RPLl)qowo9n0%0eVb`$UO#GUf9}2 z6FpkM6;9d(vq#Taf*kbAZDjA=ih%Lz?C`H)2i4YamwBH1sj<)1l+aV{q?bH|w${dO z*5*lSc8e5`P{RyI-1X{l-5Z3V(Ezz|1gk#`Y^Jf5MtAZJ^1p?oCgVxW3Yu~$Yr7gn z)%;pPVUMnjQS3EaSaFL>z&l^&)1dEJ&_}rm+{A^TPnsAN-Ndh++m+lWfo)-SS9&A= E2P488V*mgE From 5fb990c6806530ab9441514424a841fd253f5dcc Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:30:14 +0100 Subject: [PATCH 147/184] Changed: Fix typo --- code/web/public_php/ams/inc/login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/web/public_php/ams/inc/login.php b/code/web/public_php/ams/inc/login.php index 753873f38..d813bfd00 100644 --- a/code/web/public_php/ams/inc/login.php +++ b/code/web/public_php/ams/inc/login.php @@ -1,6 +1,6 @@ Date: Tue, 15 Mar 2016 12:30:52 +0100 Subject: [PATCH 148/184] Changed: Updated Configuration translations --- .../translations/ryzom_configuration_es.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts index b7498d3bc..97dba7b82 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -241,7 +241,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D: - + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D: @@ -276,7 +276,7 @@ Specify a video mode: - + Especificar un modo de video: Specify a video mode @@ -353,7 +353,7 @@ Slow down the game (process low priority) - + Realentizar el juego (prioridad de procesamiento bajo) Slow down the game ( process low priority ) @@ -385,7 +385,7 @@ Software sound buffer (may increase FPS) - + Buffer de sonido software (puede aumentar los FPS) Software sound buffer ( may increase FPS ) From a0f20c8ad4a87a1ec18d483d48e1a752258650a3 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:31:20 +0100 Subject: [PATCH 149/184] Changed: Remove Hungarian because this language is not supported by Ryzom --- .../tools/client/client_config_qt/general_settings_widget.ui | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui index 722a195d9..20e7a394b 100644 --- a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui @@ -43,11 +43,6 @@ German - - - Hungarian - - From 966500e1a14b0d68bf593525423065db48f066c8 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:34:45 +0100 Subject: [PATCH 150/184] Changed: Remived useless semicolons --- .../gamedev/interfaces_v3/out_v2_appear.lua | 191 +++++++++--------- 1 file changed, 96 insertions(+), 95 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 1c8a86342..95d2f2354 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -3,8 +3,8 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. -if (outgame==nil) then - outgame= {}; +if (outgame == nil) then + outgame = {} end @@ -20,14 +20,14 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0; + local nbFyrosFirstNames = 0 for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end return fyrosFirstNames[math.random(nbFyrosFirstNames)] end function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; + local nbFyrosLastNames = 0 for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end return fyrosLastNames[math.random(nbFyrosLastNames)] @@ -36,29 +36,29 @@ end -- Matis function outgame:getMatisFirstName(sex) -- 1 = male, 2 = female - local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local dbNameSex = getDbProp("UI:TEMP:NAME_SEX") if sex ~= nil then - dbNameSex = sex; + dbNameSex = sex end local FirstName = "" if tonumber(dbNameSex) == 1 then - local nbMatisMaleFirstNames = 0; + local nbMatisMaleFirstNames = 0 for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end - FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)] else - local nbMatisFemaleFirstNames = 0; + local nbMatisFemaleFirstNames = 0 for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end - FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)] end - return FirstName; + return FirstName end function outgame:getMatisLastName() - local nbMatisLastNames = 0; + local nbMatisLastNames = 0 for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end return matisLastNames[math.random(nbMatisLastNames)] @@ -66,14 +66,14 @@ end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0; + local nbTrykerFirstNames = 0 for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end return trykerFirstNames[math.random(nbTrykerFirstNames)] end function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; + local nbTrykerLastNames = 0 for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end return trykerLastNames[math.random(nbTrykerLastNames)] @@ -81,32 +81,33 @@ end -- Zora function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0; + local nbFirstNamesOne = 0 for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end - local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)] - local nbFirstNamesTwo = 0; + local nbFirstNamesTwo = 0 for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end - local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)] return FirstNameOne .. "-" .. FirstNameTwo end + function outgame:getZoraiLastName() - local nbLastNames = 0; + local nbLastNames = 0 for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() - local uiNameFull = getUI("ui:outgame:appear_name:name_full"); - local uiGenText = getUI("ui:outgame:appear_name:eb"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); - local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); - local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); + local uiNameFull = getUI("ui:outgame:appear_name:name_full") + local uiGenText = getUI("ui:outgame:appear_name:eb") + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE") + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME") + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME") - local nameResult = ""; - local fullnameResult = ""; + local nameResult = "" + local fullnameResult = "" -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. -- fy ma try zo --> @@ -168,92 +169,92 @@ function outgame:procGenerateName() fullnameResult = firstName .. " " .. lastName nameResult = firstName - uiNameFull.hardtext = fullnameResult; + uiNameFull.hardtext = fullnameResult - nameResult = string.gsub(nameResult, "'", ""); - nameResult = string.gsub(nameResult, " ", ""); - nameResult = string.gsub(nameResult, "-", ""); - nameResult = string.lower( nameResult ); - nameResult = nameResult:gsub("^%l", string.upper); - uiGenText.input_string = nameResult; + nameResult = string.gsub(nameResult, "'", "") + nameResult = string.gsub(nameResult, " ", "") + nameResult = string.gsub(nameResult, "-", "") + nameResult = string.lower(nameResult) + nameResult = nameResult:gsub("^%l", string.upper) + uiGenText.input_string = nameResult end -- Name sex slider update. function outgame:procUpdateNameSexLabel() local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } - local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex"); - local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex") + local uiNameSex = getDbProp("UI:TEMP:NAME_SEX") - tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); - tempstr = string.lower(tempstr); - tempstr = (tempstr:gsub("^%l", string.upper)); + tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])) + tempstr = string.lower(tempstr) + tempstr = (tempstr:gsub("^%l", string.upper)) - uiNameSexText.hardtext = tempstr; + uiNameSexText.hardtext = tempstr end -- Name race slider update. function outgame:procUpdateNameRaceLabel() local nameRaceType = { "Fyros", "Matis", "Tryker", "Zora", "uiCP_Maraudeur" } - local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race") + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE") - local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); + local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider") - local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider"); - local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider"); + local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider") + local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider") - local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); + local uiNameGenerate = getUI("ui:outgame:appear_name:generate") -- Show/Hide sex slider uiNameGenerate.y = "-50" if tonumber(dbNameRace) == 2 then - uiNameSexSlider.active = true; + uiNameSexSlider.active = true uiNameGenerate.y = "-65" else - uiNameSexSlider.active = false; + uiNameSexSlider.active = false end -- Show/Hide sub race slider if tonumber(dbNameRace) == 5 then - uiNameSubRaceFirstNameSlider.active = true; - uiNameSubRaceLastNameSlider.active = true; + uiNameSubRaceFirstNameSlider.active = true + uiNameSubRaceLastNameSlider.active = true uiNameGenerate.y = "-105" else - uiNameSubRaceFirstNameSlider.active = false; - uiNameSubRaceLastNameSlider.active = false; + uiNameSubRaceFirstNameSlider.active = false + uiNameSubRaceLastNameSlider.active = false end - uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); + uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]) end -local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper); -local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper); +local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper) +local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper) function outgame:procUpdateNameSubRaceFirstNameLabel() local nameSubRaceFirstNameType = { "Fyros", matisM, matisF, "Tryker", "Zora" } - local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race"); - local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); + local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race") + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME") - uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); + uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]) end function outgame:procUpdateNameSubRaceLastNameLabel() local nameSubRaceLastNameType = { "Fyros", "Matis", "Tryker", "Zora" } - local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race"); - local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); + local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race") + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME") - uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]); + uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]) end ------------------------------------------------------------------------------------------------------------ -- called to construct icons function outgame:activePackElement(id, icon) - local uiDesc = getUI("ui:outgame:appear:job_options:options:desc"); - uiDesc['ico' .. tostring(id)].active= true; - uiDesc['ico' .. tostring(id)].texture= icon; - uiDesc['ico' .. tostring(id) .. 'txt'].active= true; + local uiDesc = getUI("ui:outgame:appear:job_options:options:desc") + uiDesc['ico' .. tostring(id)].active = true + uiDesc['ico' .. tostring(id)].texture = icon + uiDesc['ico' .. tostring(id) .. 'txt'].active = true end @@ -261,13 +262,13 @@ end -- called to construct pack text function outgame:setPackJobText(id, spec) -- Set Pack content - local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id); - uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec); + local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id) + uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec) -- Set specialization text - local uiResText = getUI("ui:outgame:appear:job_options:options:result:res"); + local uiResText = getUI("ui:outgame:appear:job_options:options:result:res") if(spec==2) then - uiResText.hardtext= "uiCP_Res_" .. id; + uiResText.hardtext= "uiCP_Res_" .. id end end @@ -275,63 +276,63 @@ end -- called to construct pack function outgame:buildActionPack() - local uiDesc = getUI("ui:outgame:appear:job_options:options:desc"); + local uiDesc = getUI("ui:outgame:appear:job_options:options:desc") if (uiDesc==nil) then - return; + return end -- Reset All for i = 1,20 do - uiDesc['ico' .. tostring(i)].active= false; - uiDesc['ico' .. tostring(i) .. 'txt'].active= false; + uiDesc['ico' .. tostring(i)].active = false + uiDesc['ico' .. tostring(i) .. 'txt'].active = false end -- Build Default Combat - self:activePackElement(1, 'f1.tga'); -- Dagger - self:activePackElement(2, 'f2.tga'); -- Accurate Attack + self:activePackElement(1, 'f1.tga') -- Dagger + self:activePackElement(2, 'f2.tga') -- Accurate Attack -- Build Default Magic - self:activePackElement(6, 'm2.tga'); -- Gloves - self:activePackElement(7, 'm1.tga'); -- Acid + self:activePackElement(6, 'm2.tga') -- Gloves + self:activePackElement(7, 'm1.tga') -- Acid -- Build Default Forage - self:activePackElement(11, 'g1.tga'); -- Forage Tool - self:activePackElement(12, 'g2.tga'); -- Basic Extract + self:activePackElement(11, 'g1.tga') -- Forage Tool + self:activePackElement(12, 'g2.tga') -- Basic Extract -- Build Default Craft - self:activePackElement(16, 'c2.tga'); -- Craft Tool - self:activePackElement(17, 'c1.tga'); -- 50 raw mat - self:activePackElement(18, 'c3.tga'); -- Craft Root - self:activePackElement(19, 'c4.tga'); -- Boots Plan + self:activePackElement(16, 'c2.tga') -- Craft Tool + self:activePackElement(17, 'c1.tga') -- 50 raw mat + self:activePackElement(18, 'c3.tga') -- Craft Root + self:activePackElement(19, 'c4.tga') -- Boots Plan -- Build Option if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then - self:activePackElement(3, 'f3.tga'); -- Increase damage + self:activePackElement(3, 'f3.tga') -- Increase damage elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then - self:activePackElement(8, 'm5.tga'); -- Fear + self:activePackElement(8, 'm5.tga') -- Fear elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then - self:activePackElement(13, 'g3.tga'); -- Basic Prospection + self:activePackElement(13, 'g3.tga') -- Basic Prospection elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then - self:activePackElement(20, 'c6.tga'); -- Gloves Plan - self:activePackElement(17, 'c5.tga'); -- Replace 17, with 100x RawMat + self:activePackElement(20, 'c6.tga') -- Gloves Plan + self:activePackElement(17, 'c5.tga') -- Replace 17, with 100x RawMat end -- Reset Text - self:setPackJobText('F', 1); - self:setPackJobText('M', 1); - self:setPackJobText('G', 1); - self:setPackJobText('C', 1); + self:setPackJobText('F', 1) + self:setPackJobText('M', 1) + self:setPackJobText('G', 1) + self:setPackJobText('C', 1) -- Set correct text for specalized version if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then - self:setPackJobText('F', 2); + self:setPackJobText('F', 2) elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then - self:setPackJobText('M', 2); + self:setPackJobText('M', 2) elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then - self:setPackJobText('G', 2); + self:setPackJobText('G', 2) elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then - self:setPackJobText('C', 2); + self:setPackJobText('C', 2) end end From 445ba78816ef4e3b9b3c51a3f945320848594fdd Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:35:47 +0100 Subject: [PATCH 151/184] =?UTF-8?q?Fixed:=20Fyros=20and=20Matis=20are=20us?= =?UTF-8?q?ing=20first=20name=20first=20while=20Trykers=20and=20Zora=C3=AF?= =?UTF-8?q?s=20are=20using=20last=20name=20first?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/gamedev/interfaces_v3/out_v2_appear.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 95d2f2354..fd3116aee 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -113,22 +113,29 @@ function outgame:procGenerateName() -- fy ma try zo --> local firstName = "test2" local lastName = "test" + + -- Fyros and Matis are using "first name, last name" order + -- Trykers and Zoras are using "last name, first name" order if tonumber(dbNameRace) == 1 then -- Fyros firstName = self:getFyrosFirstName() lastName = self:getFyrosLastName() + fullnameResult = firstName .. " " .. lastName elseif tonumber(dbNameRace) == 2 then -- Matis firstName = self:getMatisFirstName() lastName = self:getMatisLastName() + fullnameResult = firstName .. " " .. lastName elseif tonumber(dbNameRace) == 3 then -- Tryker firstName = self:getTrykerFirstName() lastName = self:getTrykerLastName() + fullnameResult = lastName .. " " .. firstName elseif tonumber(dbNameRace) == 4 then -- Zorai firstName = self:getZoraiFirstName() lastName = self:getZoraiLastName() + fullnameResult = lastName .. " " .. firstName elseif tonumber(dbNameRace) == 5 then -- Maraudeurs @@ -164,9 +171,11 @@ function outgame:procGenerateName() -- Zorai lastName = self:getZoraiLastName() end + + fullnameResult = firstName .. " " .. lastName end - fullnameResult = firstName .. " " .. lastName + -- always use first name for character name nameResult = firstName uiNameFull.hardtext = fullnameResult From 87bfd29c5f65a38877287a4c7b6c974d0ff08fa8 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:36:21 +0100 Subject: [PATCH 152/184] Changed: Removed useless dependencies on DirectX --- code/nel/src/3d/driver/opengl/CMakeLists.txt | 2 -- code/nel/src/3d/driver/opengles/CMakeLists.txt | 2 -- code/nel/src/misc/CMakeLists.txt | 6 ------ 3 files changed, 10 deletions(-) diff --git a/code/nel/src/3d/driver/opengl/CMakeLists.txt b/code/nel/src/3d/driver/opengl/CMakeLists.txt index edff05d2a..21d790668 100644 --- a/code/nel/src/3d/driver/opengl/CMakeLists.txt +++ b/code/nel/src/3d/driver/opengl/CMakeLists.txt @@ -40,8 +40,6 @@ NL_ADD_LIB_SUFFIX(${NLDRV_OGL_LIB}) NL_ADD_RUNTIME_FLAGS(${NLDRV_OGL_LIB}) IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) ADD_DEFINITIONS(-DDRIVER_OPENGL_EXPORTS) ENDIF() diff --git a/code/nel/src/3d/driver/opengles/CMakeLists.txt b/code/nel/src/3d/driver/opengles/CMakeLists.txt index e6d10fae5..8cac2dfea 100644 --- a/code/nel/src/3d/driver/opengles/CMakeLists.txt +++ b/code/nel/src/3d/driver/opengles/CMakeLists.txt @@ -38,8 +38,6 @@ NL_ADD_LIB_SUFFIX(${NLDRV_OGLES_LIB}) NL_ADD_RUNTIME_FLAGS(${NLDRV_OGLES_LIB}) IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(${NLDRV_OGLES_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) ADD_DEFINITIONS(/DDRIVER_OPENGLES_EXPORTS) ENDIF() diff --git a/code/nel/src/misc/CMakeLists.txt b/code/nel/src/misc/CMakeLists.txt index fb6752982..53993161c 100644 --- a/code/nel/src/misc/CMakeLists.txt +++ b/code/nel/src/misc/CMakeLists.txt @@ -201,12 +201,6 @@ ELSE(WITH_STATIC OR WIN32) TARGET_LINK_LIBRARIES(nelmisc ${PNG_LIBRARY}) ENDIF(WITH_STATIC OR WIN32) -# For DirectInput (di_event_emitter) -IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(nelmisc ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY} winmm dbghelp) -ENDIF(WIN32) - IF(UNIX) TARGET_LINK_LIBRARIES(nelmisc -lc -ldl) IF(NOT APPLE) From d4af134189e784c9c5d09080b5f35bd6168dd7f8 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 17:44:21 +0100 Subject: [PATCH 153/184] Changed: Search client_default.cfg also in ETC_RYZOM_PREFIX --- code/ryzom/client/src/client_cfg.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index e59dd6886..48e187263 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -2223,6 +2223,7 @@ bool CClientConfig::getDefaultConfigLocation(std::string& p_name) const #endif std::string currentPath = CPath::standardizePath(CPath::getCurrentPath()); + std::string etcPath = CPath::standardizePath(getRyzomEtcPrefix()); // look in the current working directory first if (CFile::isExists(currentPath + defaultConfigFileName)) @@ -2232,13 +2233,14 @@ bool CClientConfig::getDefaultConfigLocation(std::string& p_name) const else if (CFile::isExists(Args.getStartupPath() + defaultConfigFileName)) p_name = Args.getStartupPath() + defaultConfigFileName; - // look in prefix path + // look in application directory else if (CFile::isExists(defaultConfigPath + defaultConfigFileName)) p_name = defaultConfigPath + defaultConfigFileName; - // if some client_default.cfg was found return true - if (p_name.size()) - return true; + // look in etc prefix path + else if (!etcPath.empty() && CFile::isExists(etcPath + defaultConfigFileName)) + p_name = etcPath + defaultConfigFileName; - return false; + // if some client_default.cfg was found return true + return !p_name.empty(); } From 85e9f7eadc9eac101ece18d1625849164ebab21b Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 17:55:58 +0100 Subject: [PATCH 154/184] Changed: Use # in Lua to get the size of an array --- .../gamedev/interfaces_v3/out_v2_appear.lua | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index fd3116aee..43727200a 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -20,15 +20,13 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0 - for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end + local nbFyrosFirstNames = #fyrosFirstNames return fyrosFirstNames[math.random(nbFyrosFirstNames)] end function outgame:getFyrosLastName() - local nbFyrosLastNames = 0 - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + local nbFyrosLastNames = #fyrosLastNames return fyrosLastNames[math.random(nbFyrosLastNames)] end @@ -44,12 +42,10 @@ function outgame:getMatisFirstName(sex) local FirstName = "" if tonumber(dbNameSex) == 1 then - local nbMatisMaleFirstNames = 0 - for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + local nbMatisMaleFirstNames = #matisMaleFirstNames FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)] else - local nbMatisFemaleFirstNames = 0 - for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + local nbMatisFemaleFirstNames = #matisFemaleFirstNames FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)] end @@ -57,44 +53,37 @@ function outgame:getMatisFirstName(sex) end function outgame:getMatisLastName() - - local nbMatisLastNames = 0 - for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end + local nbMatisLastNames = #matisLastNames return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0 - for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end + local nbTrykerFirstNames = #trykerFirstNames return trykerFirstNames[math.random(nbTrykerFirstNames)] end function outgame:getTrykerLastName() - local nbTrykerLastNames = 0 - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + local nbTrykerLastNames = #trykerLastNames return trykerLastNames[math.random(nbTrykerLastNames)] end -- Zora function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0 - for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local nbFirstNamesOne = #zoraiFirstNamesOne local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)] - local nbFirstNamesTwo = 0 - for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local nbFirstNamesTwo = #zoraiFirstNamesTwo local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)] return FirstNameOne .. "-" .. FirstNameTwo end function outgame:getZoraiLastName() - local nbLastNames = 0 - for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end + local nbLastNames = #zoraiLastNames return zoraiLastNames[math.random(nbLastNames)] end From b86637ad565e2e4dcf4c8f80f6416de9f68fbec1 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:12:34 +0100 Subject: [PATCH 155/184] Changed: Use same algorithm as before Windows unicodes fixes (try to open the file instead of checking its attributes) --- code/nel/src/misc/path.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index b5375e005..b4057e315 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -1963,14 +1963,15 @@ bool CFile::createEmptyFile (const std::string& filename) bool CFile::fileExists (const string& filename) { //H_AUTO(FileExists); -#ifdef NL_OS_WINDOWS - DWORD attr = GetFileAttributesW(utf8ToWide(filename)); - // attributes are valid and file is not a directory - if (attr == INVALID_FILE_ATTRIBUTES || (attr & FILE_ATTRIBUTE_DIRECTORY)) return false; - return true; -#else - return access(filename.c_str(), R_OK) != -1; -#endif + FILE *file = nlfopen(filename, "rb"); + + if (file) + { + fclose(file); + return true; + } + + return false; } From 7d23cd6f5279e5f49a610aee706da6d78b5926eb Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:13:07 +0100 Subject: [PATCH 156/184] Changed: Removed some semicolons in Lua when useless --- .../gamedev/interfaces_v3/bg_downloader.lua | 2 +- .../gamedev/interfaces_v3/bot_chat_v4.lua | 58 +++++++++---------- .../data/gamedev/interfaces_v3/help.lua | 22 +++---- .../ring_access_point_filter.lua | 2 +- .../data/gamedev/interfaces_v3/taskbar.lua | 24 ++++---- .../data/gamedev/interfaces_v3/webig.lua | 2 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua b/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua index c2569b301..161012d9e 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua @@ -32,7 +32,7 @@ end ------------------------------------------------------------------------------------------------------------ function bgdownloader:setIcon(icon) - local bm = self:getProgressGroup():find("bm"); + local bm = self:getProgressGroup():find("bm") if icon == "" then bm.active = false else diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua b/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua index 2b9d8fb3c..f0b3ec913 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (game==nil) then - game= {}; + game = {} end @@ -12,14 +12,14 @@ end -- called to construct guild flags background in the modal window function game:bcCreateGuildInitFlags() - local ui = getUICaller(); + local ui = getUICaller() for i = 0,14 do - local uiBack = getUI(getUIId(ui) .. ':back' .. i); - uiBack.image1.back = i+1; - uiBack.image1.symbol = 0; - uiBack.image1.color1 = runExpr('makeRGB(255,255,255)'); - uiBack.image1.color2 = runExpr('makeRGB(0,0,0)'); + local uiBack = getUI(getUIId(ui) .. ':back' .. i) + uiBack.image1.back = i+1 + uiBack.image1.symbol = 0 + uiBack.image1.color1 = runExpr('makeRGB(255,255,255)') + uiBack.image1.color2 = runExpr('makeRGB(0,0,0)') end end @@ -28,37 +28,37 @@ end -- trap some parts should be deprecated ... try to clean it up function game:bcMissionsUpdate() - local mt = getDbProp('UI:TEMP:MISSION:MISSION_TYPE'); + local mt = getDbProp('UI:TEMP:MISSION:MISSION_TYPE') -- init bot_chat_missions title - local title = 'uiBotChatMissions'; - if (mt == 3) then title = 'uiBotChatZCCharges'; - elseif (mt == 4) then title = 'uiBotChatBuilding'; - elseif (mt == 5) then title = 'uiBotChatRMBuy'; - elseif (mt == 6) then title = 'uiBotChatRMUpgrade'; + local title = 'uiBotChatMissions' + if (mt == 3) then title = 'uiBotChatZCCharges' + elseif (mt == 4) then title = 'uiBotChatBuilding' + elseif (mt == 5) then title = 'uiBotChatRMBuy' + elseif (mt == 6) then title = 'uiBotChatRMUpgrade' end - local ui = getUI('ui:interface:bot_chat_missions'); - ui.title = title; + local ui = getUI('ui:interface:bot_chat_missions') + ui.title = title -- init desc - title = 'uiSelectMission'; - if (mt == 3) then title = 'uiSelectZCCharge'; - elseif (mt == 4) then title = 'uiSelectBuilding'; - elseif (mt == 5) then title = 'uiSelectRMBuy'; - elseif (mt == 6) then title = 'uiSelectRMUpgrade'; + title = 'uiSelectMission' + if (mt == 3) then title = 'uiSelectZCCharge' + elseif (mt == 4) then title = 'uiSelectBuilding' + elseif (mt == 5) then title = 'uiSelectRMBuy' + elseif (mt == 6) then title = 'uiSelectRMUpgrade' end - ui.header_opened.mission_title.hardtext = title; + ui.header_opened.mission_title.hardtext = title - ui.header_opened.zc_duty.active = (mt == 3); - ui.header_opened.xp_guild.active = ((mt == 5) or (mt == 6)); + ui.header_opened.zc_duty.active = (mt == 3) + ui.header_opened.xp_guild.active = ((mt == 5) or (mt == 6)) -- init bot_chat_accept_mission title - title = 'uiAcceptMission'; - if (mt == 3) then title = 'uiAcceptZCCharge'; - elseif (mt == 4) then title = 'uiAcceptBuilding'; - elseif (mt == 5) then title = 'uiAcceptRMBuy'; - elseif (mt == 6) then title = 'uiAcceptRMUpgrade'; + title = 'uiAcceptMission' + if (mt == 3) then title = 'uiAcceptZCCharge' + elseif (mt == 4) then title = 'uiAcceptBuilding' + elseif (mt == 5) then title = 'uiAcceptRMBuy' + elseif (mt == 6) then title = 'uiAcceptRMUpgrade' end - ui = getUI('ui:interface:bot_chat_accept_mission'); + ui = getUI('ui:interface:bot_chat_accept_mission') ui.title = title; end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/help.lua b/code/ryzom/client/data/gamedev/interfaces_v3/help.lua index 07a7fcd2c..d6c6da720 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/help.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/help.lua @@ -3,36 +3,36 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (help==nil) then - help= {}; + help = {} end ------------------------------------------------------------------------------------------------------------ -- function help:closeCSBrowserHeader() - local ui = getUI('ui:interface:cs_browser'); + local ui = getUI('ui:interface:cs_browser') -- save size - ui_cs_browser_h = ui.h; - ui_cs_browser_w = ui.w; + ui_cs_browser_h = ui.h + ui_cs_browser_w = ui.w -- reduce window size - ui.pop_min_h = 32; - ui.h = 0; - ui.w = 216; + ui.pop_min_h = 32 + ui.h = 0 + ui.w = 216 end ------------------------------------------------------------------------------------------------------------ -- function help:openCSBrowserHeader() - local ui = getUI('ui:interface:cs_browser'); - ui.pop_min_h = 96; + local ui = getUI('ui:interface:cs_browser') + ui.pop_min_h = 96 -- set size from saved values if (ui_cs_browser_h ~= nil) then - ui.h = ui_cs_browser_h; + ui.h = ui_cs_browser_h end if (ui_cs_browser_w ~= nil) then - ui.w = ui_cs_browser_w; + ui.w = ui_cs_browser_w end end \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua b/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua index aa1b7b7cc..44a0451d7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua @@ -109,7 +109,7 @@ function game.RingAccessPointFilter:validate() if config.Local == 1 then ucUrl = ucstring(NicoMagicURL) -- for test in local mode else - ucUrl = getDynString(game.NpcWebPage.UrlTextId); + ucUrl = getDynString(game.NpcWebPage.UrlTextId) end debugInfo(tostring(ucUrl)) local utf8Url = ucUrl:toUtf8() diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua index 7ac4c68dd..9dc6035fb 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua @@ -2,39 +2,39 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (game==nil) then - game= {}; + game = {} end ------------------------------------------------------------------------------------------------------------ -- function game:getMilkoTooltipWithKey(prop, tooltip, tooltip_pushed, name, param) - local tt; + local tt -- Check if button is toggled and choose the good tooltip if (prop ~= '' and tooltip_pushed ~= '') then - local db = getDbProp(prop); + local db = getDbProp(prop) if (db == 1) then - tt = tooltip_pushed; + tt = tooltip_pushed else - tt = tooltip; + tt = tooltip end else tt = tooltip; end -- Get key shortcut - local text = i18n.get(tt); - local key = runExpr('getKey(\'' .. name .. '\',\'' .. param .. '\',1)'); + local text = i18n.get(tt) + local key = runExpr('getKey(\'' .. name .. '\',\'' .. param .. '\',1)') if (key ~= nil and key ~= '') then - key = ' @{2F2F}(' .. key .. ')'; - text = concatUCString(text, key); + key = ' @{2F2F}(' .. key .. ')' + text = concatUCString(text, key) end - setContextHelpText(text); + setContextHelpText(text) end function game:taskbarDisableTooltip(ui) - local uiGroup = getUI(ui); - disableContextHelpForControl(uiGroup); + local uiGroup = getUI(ui) + disableContextHelpForControl(uiGroup) end \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua b/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua index 9b88c02f7..516cc62d7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua @@ -180,7 +180,7 @@ function webig:doRemoveDbSheetQuantity(sheet_list, ctrl) end end ---assert(nil, "RELOADABLE SCRIPT"); +--assert(nil, "RELOADABLE SCRIPT") From 624b2bbdd872ea1506ff08d064762f468b517a8e Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:13:57 +0100 Subject: [PATCH 157/184] Fixed: We need to restart client from the same startup directory as parent one --- code/ryzom/client/src/login_patch.cpp | 46 +++++++++++++++------------ 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index baf7044df..bbd896ec9 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -922,21 +922,23 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool contentPrefix += "set RYZOM_CLIENT=\"%1\"\n"; contentPrefix += "set UNPACKPATH=\"%2\"\n"; contentPrefix += "set ROOTPATH=\"%3\"\n"; + contentPrefix += "set STARTUPPATH=\"%4\"\n"; contentPrefix += toString("set UPGRADE_FILE=\"%%ROOTPATH%%\\%s\"\n", UpgradeBatchFilename.c_str()); contentPrefix += "\n"; - contentPrefix += "set LOGIN=%4\n"; - contentPrefix += "set PASSWORD=%5\n"; - contentPrefix += "set SHARDID=%6\n"; + contentPrefix += "set LOGIN=%5\n"; + contentPrefix += "set PASSWORD=%6\n"; + contentPrefix += "set SHARDID=%7\n"; #else contentPrefix += "#!/bin/sh\n"; contentPrefix += "export RYZOM_CLIENT=$1\n"; contentPrefix += "export UNPACKPATH=$2\n"; contentPrefix += "export ROOTPATH=$3\n"; + contentPrefix += "export STARTUPPATH=$4\n"; contentPrefix += toString("export UPGRADE_FILE=$ROOTPATH/%s\n", UpgradeBatchFilename.c_str()); contentPrefix += "\n"; - contentPrefix += "LOGIN=$4\n"; - contentPrefix += "PASSWORD=$5\n"; - contentPrefix += "SHARDID=$6\n"; + contentPrefix += "LOGIN=$5\n"; + contentPrefix += "PASSWORD=$6\n"; + contentPrefix += "SHARDID=$7\n"; #endif contentPrefix += "\n"; @@ -958,7 +960,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool if (wantRyzomRestart) { // client shouldn't be in memory anymore else it couldn't be overwritten - contentSuffix += toString("start \"\" /D \"%%ROOTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str()); + contentSuffix += toString("start \"\" /D \"%%STARTUPPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str()); } #else if (wantRyzomRestart) @@ -976,7 +978,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool if (wantRyzomRestart) { // change to previous client directory - contentSuffix += "cd \"$ROOTPATH\"\n\n"; + contentSuffix += "cd \"$STARTUPPATH\"\n\n"; // launch new client contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str()); @@ -1017,10 +1019,25 @@ void CPatchManager::executeBatchFile() std::string batchFilename; + std::vector arguments; + + std::string startupPath = Args.getStartupPath(); + + // 3 first parameters are Ryzom client full path, patch directory full path and client root directory full path #ifdef NL_OS_WINDOWS batchFilename = CPath::standardizeDosPath(ClientRootPath); + + arguments.push_back(CPath::standardizeDosPath(RyzomFilename)); + arguments.push_back(CPath::standardizeDosPath(ClientPatchPath)); + arguments.push_back(CPath::standardizeDosPath(ClientRootPath)); + arguments.push_back(CPath::standardizeDosPath(startupPath)); #else batchFilename = ClientRootPath; + + arguments.push_back(RyzomFilename); + arguments.push_back(ClientPatchPath); + arguments.push_back(ClientRootPath); + arguments.push_back(startupPath); #endif batchFilename += UpdateBatchFilename; @@ -1028,19 +1045,6 @@ void CPatchManager::executeBatchFile() // make script executable CFile::setRWAccess(batchFilename); - std::vector arguments; - - // 3 first parameters are Ryzom client full path, patch directory full path and client root directory full path -#ifdef NL_OS_WINDOWS - arguments.push_back(CPath::standardizeDosPath(RyzomFilename)); - arguments.push_back(CPath::standardizeDosPath(ClientPatchPath)); - arguments.push_back(CPath::standardizeDosPath(ClientRootPath)); -#else - arguments.push_back(RyzomFilename); - arguments.push_back(ClientPatchPath); - arguments.push_back(ClientRootPath); -#endif - // append login, password and shard if (!LoginLogin.empty()) { From 23e93ad89ebf517a7c5e1688c51f6f9d8a1753f6 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:14:23 +0100 Subject: [PATCH 158/184] Fixed: Renamed ryzom_configuration to ryzom_configuration_qt under Linux --- code/ryzom/client/unix/upgd_nl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/unix/upgd_nl.sh b/code/ryzom/client/unix/upgd_nl.sh index 6c44db85b..4a18675ef 100644 --- a/code/ryzom/client/unix/upgd_nl.sh +++ b/code/ryzom/client/unix/upgd_nl.sh @@ -10,6 +10,6 @@ fi chmod +x "$ROOTPATH/ryzom_client" chmod +x "$ROOTPATH/crash_report" chmod +x "$ROOTPATH/ryzom_client_patcher" -chmod +x "$ROOTPATH/ryzom_configuration" +chmod +x "$ROOTPATH/ryzom_configuration_qt" exit 0 From 38de0a300e7d99db49fa7f0cd726969976c7cc65 Mon Sep 17 00:00:00 2001 From: kervala Date: Thu, 17 Mar 2016 13:51:44 +0100 Subject: [PATCH 159/184] Changed: Updated translations --- .../ryzom/tools/translation/translated/de.uxt | 74 ++++++- .../ryzom/tools/translation/translated/en.uxt | 193 +++++++++--------- .../ryzom/tools/translation/translated/es.uxt | 10 +- .../ryzom/tools/translation/translated/fr.uxt | 14 +- .../translation/translated/item_words_de.txt | Bin 3002040 -> 3054718 bytes .../translated/sbrick_words_de.txt | Bin 2159514 -> 2192094 bytes .../translated/sphrase_words_de.txt | Bin 1788504 -> 1791038 bytes .../ryzom/tools/translation/translated/wk.uxt | 5 + code/ryzom/tools/translation/work/wk.uxt | 3 + 9 files changed, 189 insertions(+), 110 deletions(-) diff --git a/code/ryzom/tools/translation/translated/de.uxt b/code/ryzom/tools/translation/translated/de.uxt index 51985d520..b069acc75 100644 --- a/code/ryzom/tools/translation/translated/de.uxt +++ b/code/ryzom/tools/translation/translated/de.uxt @@ -7075,23 +7075,23 @@ uiFilterGuild [GILDE] // HASH_VALUE D21E035913A3BF71 // INDEX 1700 -uiFilterMenuAround [UMGEBUNG @{T8}/s] +uiFilterMenuAround [Umgebung @{T8}/s] // HASH_VALUE 53C19C5E00E32743 // INDEX 1701 -uiFilterMenuUniverse [UNIVERSUM @{T8}/u] +uiFilterMenuUniverse [Universum @{T8}/u] // HASH_VALUE E0DD804CC85218F0 // INDEX 1702 -uiFilterMenuRegion [REGION @{T8}/r] +uiFilterMenuRegion [Region @{T8}/r] // HASH_VALUE 1ECFB04DCB621CE4 // INDEX 1703 -uiFilterMenuTeam [GRUPPE @{T8}/p] +uiFilterMenuTeam [Gruppe @{T8}/p] // HASH_VALUE 9C4DCC438DC108DA // INDEX 1704 -uiFilterMenuGuild [GILDE @{T8}/g] +uiFilterMenuGuild [Gilde @{T8}/g] // HASH_VALUE E077D052719D1EAD // INDEX 1705 @@ -27284,3 +27284,67 @@ uiNoFiles [Keine Dateien] // INDEX 6473 uiByte [B] +// HASH_VALUE AA699882DFD7A376 +// INDEX 6474 +uiCP_Name_Generator [Namensgenerator] + +// HASH_VALUE 6498541C641C14C8 +// INDEX 6475 +uiCP_Name_Generate [Generiere] + +// HASH_VALUE 609C1434705844D4 +// INDEX 6476 +uiCP_Maraudeur [Marodeure] + +// HASH_VALUE 92C6D489AAC438C4 +// INDEX 6477 +uiCP_Name_Policy [Namensregeln] + +// HASH_VALUE E7473F9596B88799 +// INDEX 6478 +uiCP_FirstName [Vorname] + +// HASH_VALUE 6467007F5645D768 +// INDEX 6479 +uiCP_LastName [Nachname] + +// HASH_VALUE 6DA7FC912D38D095 +// INDEX 6480 +uiHorizontal [Horizontal] + +// HASH_VALUE 749C54586C5834A4 +// INDEX 6481 +uiVertical [Vertikal] + +// HASH_VALUE 641C5434641C5434 +// INDEX 6482 +uiKeyMUTE [Stumm] + +// HASH_VALUE 3165F321EF51FEF1 +// INDEX 6483 +uiKeyPLAYPAUSE [Abspielen / Pause] + +// HASH_VALUE 26C8EF962CB49073 +// INDEX 6484 +uiKeyVOLUMEDOWN [Lautstärke leiser] + +// HASH_VALUE E828AC5B1985D0BD +// INDEX 6485 +uiKeyVOLUMEUP [Lautstärke höher] + +// HASH_VALUE E906D08868678C93 +// INDEX 6486 +uiKeyCALC [Rechner] + +// HASH_VALUE 60C82889E9C9B49B +// INDEX 6487 +uiKeyPARAGRAPH [Paragraph] + +// HASH_VALUE ECEC8E017F3FDAE2 +// INDEX 6488 +uiKeyOEM_102 [Vergleichszeichen < >] + +// HASH_VALUE 39C742C862CB934B +// INDEX 6489 +uiFilterMenuDynamic [%s @{T8}/%s] + diff --git a/code/ryzom/tools/translation/translated/en.uxt b/code/ryzom/tools/translation/translated/en.uxt index 9d4fc90e1..9425340f4 100644 --- a/code/ryzom/tools/translation/translated/en.uxt +++ b/code/ryzom/tools/translation/translated/en.uxt @@ -248,7 +248,7 @@ SapCristal [Sap Crystal] // HASH_VALUE A85654A521A9586D // INDEX 62 -SandCaravanner [Sand Karavaneer] +SandCaravanner [Dune Caravaneer] // HASH_VALUE EA1C14386ED894BC // INDEX 63 @@ -305,23 +305,23 @@ agp_trouble [The driver has failed to allocate AGP memory. This may result in pe // HASH_VALUE 5A56887FA8E007AF // INDEX 76 -can_t_load_the_display_driver [Cannot load the display driver] +can_t_load_the_display_driver [Cannot load the display driver.] // HASH_VALUE D236BC3F590A766E // INDEX 77 -can_t_initialise_the_mouse [Cannot initialize the mouse] +can_t_initialise_the_mouse [Cannot initialize the mouse.] // HASH_VALUE 1618E42EED39DF64 // INDEX 78 -can_t_initialise_the_keyboard [Cannot initialize the keyboard] +can_t_initialise_the_keyboard [Cannot initialize the keyboard.] // HASH_VALUE 553984846E949284 // INDEX 79 -can_t_create_a_window_display [Cannot create a window display] +can_t_create_a_window_display [Cannot create a window display.] // HASH_VALUE 58393B04E6548F6A // INDEX 80 -can_t_create_a_fullscreen_display [Cannot create a fullscreen display] +can_t_create_a_fullscreen_display [Cannot create a fullscreen display.] // HASH_VALUE 701C9488701C9488 // INDEX 81 @@ -721,7 +721,7 @@ bricktFABER [Crafter] // HASH_VALUE EF1BBC91A3084494 // INDEX 180 -bricktHARVEST [Ranger] +bricktHARVEST [Harvest] // HASH_VALUE 60582450649894AC // INDEX 181 @@ -1337,7 +1337,7 @@ uiOnChecking [CHECKING FILES FOR PATCH...] // HASH_VALUE FB21B433B2B1EC22 // INDEX 334 -uiOnRelease [RELEASE NOTES] +uiOnRelease [VERSION NOTES] // HASH_VALUE 48209C2B05607C06 // INDEX 335 @@ -1413,7 +1413,7 @@ uiErrPatchApply [Error: Patch process ended but the patch has not been successfu // HASH_VALUE 428B3D2BDA3B2CD2 // INDEX 353 -uiErrChecking [Error: Patch files failed - checking.] +uiErrChecking [ERROR: failure of the files update - checking.] // HASH_VALUE 8E9280411622E45F // INDEX 354 @@ -1433,11 +1433,11 @@ uiDLFailed [Download from emergency server failed, patching is aborted] // HASH_VALUE 0DD314AEEB0A6833 // INDEX 358 -uiDLURIFailed [Download from URI failed (will try again):] +uiDLURIFailed [Download from URL failed (will try again):] // HASH_VALUE 9FEF11F92FE58883 // INDEX 359 -uiNoMoreURI [No more patch URI, try emergency patch server] +uiNoMoreURI [No more patch URL, try emergency patch server] // HASH_VALUE D126843FEAF6BF89 // INDEX 360 @@ -1785,7 +1785,7 @@ uiEM_Alert [ALERT] // HASH_VALUE 5014C40454D49454 // INDEX 446 -uiEM_Altruist [ALTRUIST] +uiEM_Altruist [ALTRUISTIC] // HASH_VALUE 9090E4084D90C00C // INDEX 447 @@ -2641,7 +2641,7 @@ uiEM_Sly [SLY] // HASH_VALUE 4551B42E47D1BC22 // INDEX 660 -uiEM_Smack [SMACK] +uiEM_Smack [SLAP] // HASH_VALUE 4454D44C4454D44C // INDEX 661 @@ -3339,7 +3339,7 @@ uiFxDensityBloom [Density] // HASH_VALUE B2D1AC8FB27D333E // INDEX 834 -uiFxTooltipBloom [Your configuration does not support the Bloom effect. Try to update your drivers.] +uiFxTooltipBloom [Your configuration does not support the Bloom effect. Try updating your drivers.] // HASH_VALUE 6573D09729FA6452 // INDEX 835 @@ -4566,11 +4566,11 @@ uittGetMoney [TAKE] // HASH_VALUE FE51F742BE8F073C // INDEX 1140 -uiMoneyFromGuild [TAKE MONEY FROM GUILD BANK] +uiMoneyFromGuild [TAKE DAPPERS FROM GUILD BANK] // HASH_VALUE 888FF822C3018E11 // INDEX 1141 -uiMoneyToGuild [GIVE MONEY TO GUILD BANK] +uiMoneyToGuild [GIVE DAPPERS TO GUILD BANK] // HASH_VALUE CD81B7290D72123C // INDEX 1142 @@ -4754,7 +4754,7 @@ uittOutpostStatus [Current state of the Outpost] // HASH_VALUE 458F04DDFF6A6EAF // INDEX 1179 uiOutpostCrash [A server crash during the Attack or Defense Phase has canceled the Outpost war.\n - Any money spent on this war has been reimbursed to the guilds (i.e. the cost for declaring, for buying squads, etc.)] + Any dapper spent on this war has been reimbursed to the guilds (i.e. the cost for declaring, for buying squads, etc.)] // HASH_VALUE 8A709A3EBFB0A4E9 // INDEX 1180 @@ -4777,7 +4777,7 @@ uiOutpostLvlMaxAttacker [Max. Attacker Round Level: ] // HASH_VALUE 384FE58FF1A62CA0 // INDEX 1184 uittOutpostLvlMaxAttacker [Maximum @{6F6F}Round Level@{FFFF} reached by the Attackers.\n - This is the @{6F6F}Maximum Round@{FFFF} level that the Attackers were able to achieve during their @{6F6F}Attack Phase@{FFFF}.\n + This is the maximum @{6F6F}Round Leve@{FFFF}} that the Attackers were able to achieve during their @{6F6F}Attack Phase@{FFFF}.\n ] // HASH_VALUE 48B1FA6555257053 @@ -4787,7 +4787,7 @@ uiOutpostLvlMaxDefender [Max. Defender Round Level: ] // HASH_VALUE A9A5CF968DD5501D // INDEX 1186 uittOutpostLvlMaxDefender [Maximum @{6F6F}Round Level@{FFFF} reached by the Defenders.\n - This is the Maximum @{6F6F}Round Level@{FFFF} that the Defenders were able to achieve during their @{6F6F}Defense Phase@{FFFF}.\n + This is the maximum @{6F6F}Round Level@{FFFF} that the Defenders were able to achieve during their @{6F6F}Defense Phase@{FFFF}.\n ] // HASH_VALUE 2AC7623086A5DCAD @@ -4888,7 +4888,7 @@ uiOutpostWarCost [COST OF DECLARING: ] // HASH_VALUE CAF544A84E2694D6 // INDEX 1207 -uiOutpostWarCostDesc [Declaring war on an outpost costs the guild money (For example the squads have to be paid during the Defense rounds).\n +uiOutpostWarCostDesc [Declaring war on an outpost costs the guild dappers (For example the squads have to be paid during the Defense rounds).\n \n The amount will be deducted from your Guild's coffers, or from your own purse.\n ] @@ -4972,7 +4972,7 @@ uittOutpostSSquad [Squads out and defending the outpost.\n // HASH_VALUE 08110B32CC11D70D // INDEX 1226 -uiOutpostTSquad [READY SQUADS] +uiOutpostTSquad [PENDING SQUADS] // HASH_VALUE F1D1A88C0BDB046E // INDEX 1227 @@ -4994,7 +4994,7 @@ uiOutpostSSquadDuring [During Round] // HASH_VALUE FE99BA6C4B31DDDE // INDEX 1231 -uittOutpostSSquadDuring [Squads which appeared one by one during the Round] +uittOutpostSSquadDuring [Squads which will appear one by one during the Round] // HASH_VALUE DB499A35C8B08D6A // INDEX 1232 @@ -5032,9 +5032,9 @@ uiOutpostCapital [WAR COFFER] // HASH_VALUE B3ECCE9347314BB9 // INDEX 1239 -uiOutpostCapitalDoc [The squads that you edit here do not cost the guild any money right away.\n - It only costs money when the squads come out for a round.\n - Nonetheless, if the guild does not have enough money to pay for a @{6F6F}squad spawn@{FFFF}, a default squad (much less powerful) will be used.\n +uiOutpostCapitalDoc [The squads that you edit here do not cost the guild any dappers right away.\n + It only costs dappers when the squads come out for a round.\n + Nonetheless, if the guild does not have enough dappers to pay for a @{6F6F}squad spawn@{FFFF}, a default squad (much less powerful) will be used.\n You also can limit squad expenses @{6F6F}via Outpost@{FFFF} by changing the @{6F6F}Coffers@{FFFF} below.\n Every time there is a @{6F6F}squad spawn@{FFFF}, both the Guild's and the Outpost's (if possible) @{6F6F}Coffers@{FFFF} decrease.\n Every time a @{6F6F}squad@{FFFF} comes back alive (even if only partially), the Guild's and the Outpost's @{6F6F}Coffers@{FFFF} increase.\n @@ -5537,8 +5537,8 @@ uiXpBonusInfo [XP Bonus: Level @{6F6F}%lvl@{FFFF} x @{6F6F}%count@{FFFF}] // HASH_VALUE 2D79EC806D00D1D6 // INDEX 1361 -uittXpBonus [An experience catalyzer is active; you receive a bonus to any XP you set using skills lower than the quality of the catalyzer.\n - Click here to deactivate it.] +uittXpBonus [A stack of catalyzers is active; you receive a bonus to any XP you get using skills lower than the quality of the catalyzer.\n + Free to play accounts only: Click here to deactivate it.] // HASH_VALUE E02A77CCC8F159E8 // INDEX 1362 @@ -6075,7 +6075,7 @@ uiFame_tribe_woven_bridles [Woven Bridles] // HASH_VALUE 5D739D0817C7B25B // INDEX 1477 -uittFameKOS [Guards can kill you on sight.] +uittFameKOS [Guards will kill you on sight] // HASH_VALUE 159A5C875A391426 // INDEX 1478 @@ -6540,12 +6540,12 @@ uiSapDesc [@{6F6F}Sap@{FFFF}, \n // HASH_VALUE 0818382AFDB10CD9 // INDEX 1572 uiFocDesc [@{6F6F}Focus@{FFFF}, \n - measure the character's ability to concentrate.] + measures the character's ability to concentrate.] // HASH_VALUE C5C5AADDE9B1CB06 // INDEX 1573 uiConsDesc [@{6F6F}Constitution@{FFFF}, \n - measure the character's ability to engage in long-term periods of strenuous physical activity.] + measures the character's ability to engage in long-term periods of strenuous physical activity.] // HASH_VALUE B4C1EFCDAFE00362 // INDEX 1574 @@ -6560,12 +6560,12 @@ uiStrDesc [@{6F6F}Strength@{FFFF}, \n // HASH_VALUE 2CBDF588F00F8902 // INDEX 1576 uiDexDesc [@{6F6F}Dexterity@{FFFF}, \n - measure how skilled a character is at doing fine work with their hands.] + a measure of how skilled a character is at doing fine work with their hands.] // HASH_VALUE EE7A5B01A1BEDC58 // INDEX 1577 uiMetaDesc [@{6F6F}Metabolism@{FFFF}, \n - measure the rate at which a character's body can recover from injury.] + measures the rate at which a character's body can recover from injury.] // HASH_VALUE 9DF5C8519F10DD99 // INDEX 1578 @@ -6848,7 +6848,7 @@ uiAscensorTeleportList [DESTINATIONS] // HASH_VALUE 3E32C812CBF2B822 // INDEX 1647 -uiTeleportLocation [TELEPORT LOCACTIONS] +uiTeleportLocation [TELEPORT LOCATIONS] // HASH_VALUE 7FC236417613BC31 // INDEX 1648 @@ -7061,23 +7061,23 @@ uiFilterGuild [GUILD] // HASH_VALUE D21E035913A3BF71 // INDEX 1700 -uiFilterMenuAround [AROUND @{T8}/s] +uiFilterMenuAround [Around @{T8}/s] // HASH_VALUE 53C19C5E00E32743 // INDEX 1701 -uiFilterMenuUniverse [UNIVERSE @{T8}/u] +uiFilterMenuUniverse [Universe @{T8}/u] // HASH_VALUE E0DD804CC85218F0 // INDEX 1702 -uiFilterMenuRegion [REGION @{T8}/r] +uiFilterMenuRegion [Region @{T8}/r] // HASH_VALUE 1ECFB04DCB621CE4 // INDEX 1703 -uiFilterMenuTeam [TEAM @{T8}/p] +uiFilterMenuTeam [Team @{T8}/p] // HASH_VALUE 9C4DCC438DC108DA // INDEX 1704 -uiFilterMenuGuild [GUILD @{T8}/g] +uiFilterMenuGuild [Guild @{T8}/g] // HASH_VALUE E077D052719D1EAD // INDEX 1705 @@ -8492,7 +8492,7 @@ uiInvEquipTitle [EQUIPMENT] // HASH_VALUE 0D00103A0A41EC39 // INDEX 2056 -uiMoneyTitle [MONEY] +uiMoneyTitle [DAPPERS] // HASH_VALUE 4120300C01D0480B // INDEX 2057 @@ -8716,7 +8716,7 @@ uittPvPTagTimer [\n // INDEX 2109 uittPvPModeFlag [@{6F6F}Faction PvP@{FFFF}\n You are @{6F6F}PvP Tagged@{FFFF} and you have recently performed a PvP offensive action.\n - You are now @{6F6F}PvP Flagged@{FFFF}. As a result you are not able to perform all PvE actions and interactions with other players. eg: you cannot group with players from the opposite facion.\n + You are now @{6F6F}PvP Flagged@{FFFF}. As a result you are not able to perform all PvE actions and interactions with other players. eg: you cannot group with players from the opposite faction.\n The flag will be removed in %temps.] // HASH_VALUE 00841A0EC6F3BC0E @@ -8725,7 +8725,7 @@ uittPvPTime [@{6F6F}%h h %m m %s s@{FFFF}] // HASH_VALUE 4B7FC42C020EF005 // INDEX 2111 -uiSelMoney2Give [SELECT MONEY TO GIVE] +uiSelMoney2Give [SELECT DAPPERS TO GIVE] // HASH_VALUE 48D0841444D0E404 // INDEX 2112 @@ -8889,7 +8889,7 @@ uimwInventory [INVENTORY] // HASH_VALUE 0D00103A0A41EC39 // INDEX 2152 -uimwMoney [MONEY] +uimwMoney [DAPPERS] // HASH_VALUE 50D0140850D01408 // INDEX 2153 @@ -9429,7 +9429,7 @@ uiDescBM [BUFFER CASTER - DESCRIPTION] // HASH_VALUE CE321F404850C42B // INDEX 2287 -uiDescH [RANGER - DESCRIPTION] +uiDescH [HARVESTER - DESCRIPTION] // HASH_VALUE 8330D40FC8B1C83C // INDEX 2288 @@ -9469,7 +9469,7 @@ uiCarBM [BUFFER CASTER - CHARACTERISTICS] // HASH_VALUE 4E1207278BF2C430 // INDEX 2297 -uiCarH [RANGER - CHARACTERISTICS] +uiCarH [HARVESTER - CHARACTERISTICS] // HASH_VALUE 46F08F198910C44E // INDEX 2298 @@ -10211,7 +10211,7 @@ uihelpItemCantSell [@{F80B}This item cannot be sold to a merchant.@{FFFF}\n // HASH_VALUE A203D9DB12EA02AC // INDEX 2465 -uihelpItemCosmeticDontFit [@{F80B}This cosmetic feature cannot be applied on you, because of your race or gender@{FFFF}\n +uihelpItemCosmeticDontFit [@{F80B}This cosmetic feature cannot be applied on you because of your race or gender@{FFFF}\n ] // HASH_VALUE 03E5545F85F4B4DE @@ -10474,7 +10474,7 @@ uihelpItemCrystalSpell [This item can be used to\n \n Then right-click on this crystal, and choose "Enchant Right Hand".\n \n - Note that applying a Crystallized Spell overwrites any previous enchantment on the item and sets its sap load to 0.\n + Note that applying a Crystallized Spell overwrites any previous enchantment on the item.\n \n %cansell\n %enchantment%custom_text] @@ -10743,13 +10743,13 @@ uihelpPhraseBrickRequirement [@{FFF9}@{HuittActionStanzaReq}Stanzas Required:@{H // HASH_VALUE 428D8631CC10708E // INDEX 2530 uihelpPhraseNotCastableFormat [@{FFFF}This is an action upgrade which teaches you some new stanzas.\n - You cannot memorize or cast it.\n + You cannot cast it nor put it into your action-bar.\n @{FFFF}%desc%req] // HASH_VALUE 0F0F8DFF048A8EF8 // INDEX 2531 uihelpPhraseCharacteristic [@{FFFF}This is an upgrade which increases some characteristics.\n - You cannot memorize or cast it.\n + You cannot cast it nor put it into your action-bar.\n @{FFFF}%desc%req] // HASH_VALUE AFC850B7201BDDEA @@ -12656,7 +12656,7 @@ uiInvertNames [Toggle names] // HASH_VALUE 738710663076287B // INDEX 2996 -uiPlayer [My Gauges] +uiPlayer [Player] // HASH_VALUE D36A9C4B6C15C7A4 // INDEX 2997 @@ -12808,7 +12808,7 @@ uiWorkshop [ACTIONS & INVENTORY] // HASH_VALUE 2D06909A22476C99 // INDEX 3034 -uiMoney [Money] +uiMoney [Dappers] // HASH_VALUE 70D8140870D81408 // INDEX 3035 @@ -13947,15 +13947,15 @@ uiBotChatGuildRoleMaster [GUILD ROLE MASTER] // HASH_VALUE 7038904D65E4A053 // INDEX 3316 -uittPlayerMoney [Your money] +uittPlayerMoney [Your dappers] // HASH_VALUE 118810F6F01976D3 // INDEX 3317 -uittGuildMoney [Your guild's money] +uittGuildMoney [Your guild's dappers] // HASH_VALUE B68EBC2A5690E428 // INDEX 3318 -uiNotEnoughMoney [NOT ENOUGH MONEY] +uiNotEnoughMoney [NOT ENOUGH DAPPERS] // HASH_VALUE 002F1B3942E01029 // INDEX 3319 @@ -14187,7 +14187,7 @@ uiGuildXP [GUILD XP:] // HASH_VALUE FF8F13094B10182E // INDEX 3376 -uiNotEnoughGuildMoney [NOT ENOUGH GUILD MONEY] +uiNotEnoughGuildMoney [NOT ENOUGH GUILD DAPPERS] // HASH_VALUE 3DA1FC030C2E2F31 // INDEX 3377 @@ -14377,7 +14377,7 @@ uiTips10 [Press 'CTRL - R' to reply to last Tell once.\n // HASH_VALUE 7850A32BC35E7EE6 // INDEX 3422 -uiTips11 [Press SPACEBAR to select the enemies in front of you. Repeat to cycle through enemies.\n +uiTips11 [Press SPACEBAR to select the enemy most directly in front of you.\n Press CTRL + SPACEBAR to select friends in front of you.] // HASH_VALUE 8A801482C5765C81 @@ -14401,7 +14401,7 @@ uiTips15 [Press X to show or hide the main chat.\n // HASH_VALUE 9F538781E3CDB90A // INDEX 3427 uiTips16 [Press M to show or hide the map.\n - You can place way points on the map and target them with the compass.] + You can place labeled location flags on the map and target them with the compass.] // HASH_VALUE 28F6D4546B54E872 // INDEX 3428 @@ -14893,7 +14893,7 @@ uiRadar [Radar] // HASH_VALUE 90A8F442AEC797B4 // INDEX 3550 -uiGuildForum [Forums] +uiGuildForum [Guild Forum] // HASH_VALUE CDBAC82A5AE85366 // INDEX 3551 @@ -15794,31 +15794,31 @@ Expert_Range_Heavy_Weapon_Smith [Expert Range Heavy Weaponsmith] // HASH_VALUE 2EA7A3A1EA2552A0 // INDEX 3775 -Heavy_Armorer_Master [Heavy Armorer Master] +Heavy_Armorer_Master [Master Heavy Armorer] // HASH_VALUE AB07B3A06785629F // INDEX 3776 -Light_Armorer_Master [Light Armorer Master] +Light_Armorer_Master [Master Light Armorer] // HASH_VALUE 5759EC8997307C8D // INDEX 3777 -Medium_Armorer_Master [Medium Armorer Master] +Medium_Armorer_Master [Master Medium Armorer] // HASH_VALUE A2395B98D3F43C5D // INDEX 3778 -Shield_Smith_Master [Shieldsmith Master] +Shield_Smith_Master [Master Shieldsmith] // HASH_VALUE 6BCA80811216738D // INDEX 3779 -Jeweler_Master [Jeweler Master] +Jeweler_Master [Master Jeweler] // HASH_VALUE 62142C94E1942F4B // INDEX 3780 -Melee_Weapon_Smith_Master [Melee Weaponsmith Master] +Melee_Weapon_Smith_Master [Master Melee Weaponsmith] // HASH_VALUE 11755C3DE2084F9D // INDEX 3781 -Melee_Heavy_Weapon_Smith_Master [Heavy Melee Weaponsmith Master] +Melee_Heavy_Weapon_Smith_Master [Master Heavy Melee Weaponsmith] // HASH_VALUE 11252443E3484F9D // INDEX 3782 @@ -15826,11 +15826,11 @@ Melee_Light_Weapon_Smith_Master [Master Light Melee Weapon Smith] // HASH_VALUE 62F43099E1942F4D // INDEX 3783 -Range_Weapon_Smith_Master [Range Weaponsmith Master] +Range_Weapon_Smith_Master [Master Range Weaponsmith] // HASH_VALUE 91954C4223084F9D // INDEX 3784 -Range_Heavy_Weapon_Smith_Master [Heavy Range Weaponsmith Master] +Range_Heavy_Weapon_Smith_Master [ Master Heavy Range Weaponsmith] // HASH_VALUE EBA6935C563A9CAE // INDEX 3785 @@ -18778,7 +18778,7 @@ mpfam707 [Fyros Imperial Token] // HASH_VALUE 677857586645DB59 // INDEX 4521 -mpfam708 [Zoraï Cho Token] +mpfam708 [Zoraï Theocratic Token] // HASH_VALUE AAE8BF99DAE2AFA3 // INDEX 4522 @@ -20720,7 +20720,7 @@ uiConfigOpenGL [OpenGL] // HASH_VALUE 649C941064CC448C // INDEX 4924 -uiConfigDirect3D [Direct3d] +uiConfigDirect3D [Direct3D] // HASH_VALUE 6C1C54046C1C5404 // INDEX 4925 @@ -21315,7 +21315,7 @@ uiEulaContent [RYZOM LICENCE\n \n 3. REGISTERING AND OPENING AN ACCOUNT. This Contract allows you to use the procedure offered for registering your details to set up one (1) account enabling you to play Ryzom and/or Ryzom Ring over the Internet. The Internet connection is not provided by Winch Gate, and the User is solely responsible for payment of all charges enabling him/her to obtain, maintain and use the connection. Registration requires you to send information to Winch Gate, including information on your identity and the means of payment used. You guarantee that all the information you provide in the course of the registration procedure is true, and you undertake to inform Winch Gate of any change in this information, by using the update facility provided as part of your account.\n \n - 4. PERSONAL NATURE OF THE ACCOUNT. Use of the account is strictly personal. The account must not, even temporarily be shared with or otherwise extended to another person (whether free of charge or not), nor may it be used in any way (whether free of charge or not) that is extraneous to the proper normal use of the Game. The User is fully responsible for the use of his/her access account, and for the use made of his/her account by his/her underage child or by any other person who has access to it.\n + 4. PERSONAL NATURE OF THE ACCOUNT. Use of the account is strictly personal. The account must not, even temporarily, be shared with or otherwise extended to another person (whether free of charge or not), nor may it be used in any way (whether free of charge or not) that is extraneous to the proper normal use of the Game. The User is fully responsible for the use of his/her access account, and for the use made of his/her account by his/her underage child or by any other person who has access to it.\n \n 5. LOGIN AND PASSWORD. To get an account, you must choose a login to connect, and a password; these will enable you to access the account. This login and password are strictly personal and may not be used by anyone else; nor may you use the login and password of any other player. You are fully responsible for your choice of your login and password, for keeping them confidential, and for any use made of them by another person. Winch Gate declines all responsibility for any harm caused to your account by the unauthorized use of your login or password. If you lose your login or password, a charge may be made for supplying a new one.\n \n @@ -21913,7 +21913,7 @@ gn_class_arcane_apprentice [Senior Elite Magician] // HASH_VALUE 24E91888A93924B0 // INDEX 5211 -gn_class_arcane_master [Veteran Elite Magicia] +gn_class_arcane_master [Veteran Elite Magician] // HASH_VALUE 242A1893E18B1897 // INDEX 5212 @@ -22526,7 +22526,7 @@ uittNotEnoughMoney [You don't have enough dappers to buy this.] // HASH_VALUE 923E66223C721EEB // INDEX 5363 -uittNotEnoughGuildMoney [Your guild doesn't have enough money to buy this] +uittNotEnoughGuildMoney [Your guild doesn't have enough dappers to buy this] // HASH_VALUE 9EA0F87CB6A59313 // INDEX 5364 @@ -23410,7 +23410,7 @@ uiLoadingString36 [Caffeinenating support team...] // HASH_VALUE C5047097A6340F71 // INDEX 5566 -uiLoadingString37 [Equipping Mokoi ] +uiLoadingString37 [For the latest gossip, try IRC.] // HASH_VALUE 8895244968FA2376 // INDEX 5567 @@ -24009,7 +24009,7 @@ uiWelcomeTitle [Welcome to Atys!] // HASH_VALUE 56E429B73958EE09 // INDEX 5709 -uiWelcomeIntro [The ever evolving organic planet like a gigantic plant basking in the light of its pulsating sun.] +uiWelcomeIntro [The ever-evolving organic planet is like a gigantic plant basking in the light of its pulsating sun.] // HASH_VALUE 5D3AA67CC8B6D41D // INDEX 5710 @@ -24348,7 +24348,7 @@ uittInfoHP [@{6F6F}Hit points@{FFFF}:\n // HASH_VALUE 2ABB2BD8C07878B9 // INDEX 5784 uittInfoWeight [@{6F6F}Weight@{FFFF}:\n - If the total weight is too high, your moving speed may be reduced.] + If the total weight is too high, your moving speed will be reduced.] // HASH_VALUE 6819F591D97250CB // INDEX 5785 @@ -25018,7 +25018,7 @@ uiRAP_EnlargeTooltip [Enlarge the columns so that their content is fully visible // HASH_VALUE 1F4DC91D2FC75906 // INDEX 5936 uiRAP_FlagsTooltip [A @{6F6F}CHECK@{FFFF} is displayed when the scenario owner has invited you to join the scenario.\n - An @{6F6F}EYE@{FFFF} icon indicate that the owner is present in this scenario. Click to sort by this criterion.] + An @{6F6F}EYE@{FFFF} icon indicates that the owner is present in this scenario. Click to sort by this criterion.] // HASH_VALUE 7DACB1DE78A79DE0 // INDEX 5937 @@ -25553,23 +25553,23 @@ uiRingChooseScenario [Choose a scenario.] // HASH_VALUE 50A91151AFCA7798 // INDEX 6065 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Name [@{6F6F}File Name\n - @{FFFF}File name of the scenario to load] + @{FFFF}File name of the scenario to load.] // HASH_VALUE 59BE229752871595 // INDEX 6066 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Title [@{6F6F}Title\n - @{FFFF} Title of the selected scenario] + @{FFFF} Title of the selected scenario.] // HASH_VALUE 60C8536472BD561B // INDEX 6067 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Description [@{6F6F}Description\n - @{FFFF} Description of the selected scenario, as provided by the author] + @{FFFF} Description of the selected scenario, as provided by the author.] // HASH_VALUE B347D4DBDA147171 // INDEX 6068 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Rules [@{6F6F}Mastering\n @{FFFF} Mastered means that the you will be the Adventure Master in the scenario\n - Masterless means that you will participate in the scenario as a player] + Masterless means that you will participate in the scenario as a player.] // HASH_VALUE FC2BD65951F97767 // INDEX 6069 @@ -25579,7 +25579,7 @@ uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Level [@{6F6F}Difficulty\n // HASH_VALUE AFBD81929D869A76 // INDEX 6070 uiR2EdPropertyToolTip_LoadScenario_LoadScenario_Language [@{6F6F}Language\n - @{FFFF} The language of the scenario, as declared by the scenario author] + @{FFFF} The language of the scenario, as declared by the scenario author.] // HASH_VALUE 66CEF50ED8DC276E // INDEX 6071 @@ -25701,11 +25701,11 @@ uiR2EDLoadScenario_InvalidFileName [Invalid file name] // HASH_VALUE E082DD6A29896311 // INDEX 6097 -uiR2EDLoadScenario_Yes [You have sufficient knowledge of Atys] +uiR2EDLoadScenario_Yes [You have sufficient knowledge of Atys.] // HASH_VALUE 18577D9A4E0EA0E9 // INDEX 6098 -uiR2EDLoadScenario_No [You have INSUFFICIENT knowledge of Atys] +uiR2EDLoadScenario_No [You have INSUFFICIENT knowledge of Atys.] // HASH_VALUE AAC8204867A84443 // INDEX 6099 @@ -26169,7 +26169,7 @@ uiBGD_PatchingFailed [Patch failed. Please check your disk space and internet co // HASH_VALUE 5B64887497D8775D // INDEX 6208 -uiBGD_CheckSuccess [File check finished] +uiBGD_CheckSuccess [File check finished.] // HASH_VALUE EAFA20514E42BBA3 // INDEX 6209 @@ -26177,11 +26177,11 @@ uiBGD_Progress [Patch progress: ] // HASH_VALUE 7F3B30F36D90E7CF // INDEX 6210 -uiBGD_PatchUpToDate [Ryzom is up to date] +uiBGD_PatchUpToDate [Ryzom is up to date.] // HASH_VALUE 39907708AD43B943 // INDEX 6211 -uiBGD_PatchError [Patch error, please check your disk space and system settings and try again] +uiBGD_PatchError [Patch error, please check your disk space and system settings and try again.] // HASH_VALUE 1EF6CD9CD14C00BD // INDEX 6212 @@ -26189,7 +26189,7 @@ uiBGD_ProtocolError [Game/Downloader communication Error. Please restart Ryzom o // HASH_VALUE 26A8FD55064E9186 // INDEX 6213 -uiBGD_DownloaderDisconnected [Ryzom Downloader stopped, please restart Ryzom] +uiBGD_DownloaderDisconnected [Ryzom Downloader stopped, please restart Ryzom.] // HASH_VALUE 1FD58B5C19984C77 // INDEX 6214 @@ -26217,7 +26217,7 @@ uiBGD_FullPatchNeeded [This feature can only be accessed after background patchi // HASH_VALUE A01CE7B6A9D03D43 // INDEX 6220 -uiBGD_MainlandCharFullPatchNeeded [This location that this character is at can only be accessed after background patching has finished. The background patching progress is indicated by the progress bar.] +uiBGD_MainlandCharFullPatchNeeded [The location that this character is at can only be accessed after background patching has finished. The background patching progress is indicated by the progress bar.] // HASH_VALUE 2B27D4766A97FC8C // INDEX 6221 @@ -26245,7 +26245,7 @@ uiBGD_NotUsed [Not used] // HASH_VALUE F40D1B4F626F4271 // INDEX 6227 -uiBGD_ShutdownFailed [Failed to shutdown the Ryzom Downloader, you may need to restart your computer to solve the problem] +uiBGD_ShutdownFailed [Failed to shutdown the Ryzom Downloader, you may need to restart your computer to solve the problem.] // HASH_VALUE B703221C05EDDEEE // INDEX 6228 @@ -26253,7 +26253,7 @@ uiBGD_InGamePatchIncomplete [Access to the Atys mainland and Ryzom Ring requires // HASH_VALUE 40DA4DB418F59CA7 // INDEX 6229 -uiBGD_InGamePatchIncompleteBC [Please wait for patching to finish] +uiBGD_InGamePatchIncompleteBC [Please wait for patching to finish.] // HASH_VALUE 0269C693E713F9B0 // INDEX 6230 @@ -26289,11 +26289,11 @@ msgNoCastWhileMoving [&CHK&You cannot cast a spell while moving.] // HASH_VALUE 6F54D08C97065FC9 // INDEX 6238 -uiBGD_PatchStarting [Ryzom patching has started] +uiBGD_PatchStarting [Ryzom patching has started.] // HASH_VALUE 45009C9D29D97616 // INDEX 6239 -uiBGD_BackgroundPatchStarting [Ryzom background patching has started] +uiBGD_BackgroundPatchStarting [Ryzom background patching has started.] // HASH_VALUE B79B42F4214FCE38 // INDEX 6240 @@ -26475,11 +26475,11 @@ uiBGD_LoadVersionError [Error: impossible to load version info. Please make sure // HASH_VALUE A989B04F04A80065 // INDEX 6282 -uiBGD_LoadVersionInfo [Loading Version Infos] +uiBGD_LoadVersionInfo [Loading Version Infos.] // HASH_VALUE E949573D6633C4C3 // INDEX 6283 -uiBGD_LoadDownloadList [Updating download list] +uiBGD_LoadDownloadList [Updating download list.] // HASH_VALUE 205C00EC705CF4A0 // INDEX 6284 @@ -26558,7 +26558,7 @@ uiBGD_ContentInstallSuccess [Ryzom has been installed successfully] // HASH_VALUE 9E1F03D60DC3E49B // INDEX 6302 -uiBGD_QuitInstallContent [Do your realy want to quit the installation program.] +uiBGD_QuitInstallContent [Do your realy want to quit the installation program?] // HASH_VALUE 78E7ED45ECD4B47D // INDEX 6303 @@ -26606,7 +26606,7 @@ uiDeathWarningContent [You are in a coma.\n \n The timer shows your life energy ebbing away. When it runs critically low the Divinities of Atys will resuscitate you at the point highlighted on the map.\n \n - You may be healed by other players in order to avoid incurring the penalties associated with death, or press the RESPAWN button to call on the divinities immediately.] + You may be healed by other players in order to avoid incurring the penalties associated with death, or press the RESPAWN button to call on the Divinities immediately.] // HASH_VALUE A752DDE8C09704A2 // INDEX 6314 @@ -27325,3 +27325,6 @@ uiKeyPARAGRAPH [Paragraph] // INDEX 6488 uiKeyOEM_102 [OEM 102] +// HASH_VALUE 39C742C862CB934B +// INDEX 6489 +uiFilterMenuDynamic [%s @{T8}/%s] diff --git a/code/ryzom/tools/translation/translated/es.uxt b/code/ryzom/tools/translation/translated/es.uxt index d0845c6d0..37e8c74d6 100644 --- a/code/ryzom/tools/translation/translated/es.uxt +++ b/code/ryzom/tools/translation/translated/es.uxt @@ -7061,23 +7061,23 @@ uiFilterGuild [GREMIO] // HASH_VALUE D21E035913A3BF71 // INDEX 1700 -uiFilterMenuAround [ALREDEDOR DE @{T8}/s] +uiFilterMenuAround [Alrededor de @{T8}/s] // HASH_VALUE 53C19C5E00E32743 // INDEX 1701 -uiFilterMenuUniverse [UNIVERSO @{T8}/u] +uiFilterMenuUniverse [Universo @{T8}/u] // HASH_VALUE E0DD804CC85218F0 // INDEX 1702 -uiFilterMenuRegion [REGIÓN @{T8}/r] +uiFilterMenuRegion [Región @{T8}/r] // HASH_VALUE 1ECFB04DCB621CE4 // INDEX 1703 -uiFilterMenuTeam [EQUIPO @{T8}/p] +uiFilterMenuTeam [Equipo @{T8}/p] // HASH_VALUE 9C4DCC438DC108DA // INDEX 1704 -uiFilterMenuGuild [GREMIO @{T8}/g] +uiFilterMenuGuild [Gremio @{T8}/g] // HASH_VALUE E077D052719D1EAD // INDEX 1705 diff --git a/code/ryzom/tools/translation/translated/fr.uxt b/code/ryzom/tools/translation/translated/fr.uxt index deb97661b..6eb3fa2fb 100644 --- a/code/ryzom/tools/translation/translated/fr.uxt +++ b/code/ryzom/tools/translation/translated/fr.uxt @@ -7057,23 +7057,23 @@ uiFilterGuild [GUILDE] // HASH_VALUE D21E035913A3BF71 // INDEX 1700 -uiFilterMenuAround [ALENTOURS @{T8}/s] +uiFilterMenuAround [Alentours @{T12}/s] // HASH_VALUE 53C19C5E00E32743 // INDEX 1701 -uiFilterMenuUniverse [UNIVERS @{T8}/u] +uiFilterMenuUniverse [Univers @{T12}/u] // HASH_VALUE E0DD804CC85218F0 // INDEX 1702 -uiFilterMenuRegion [RÉGION @{T8}/r] +uiFilterMenuRegion [Région @{T12}/r] // HASH_VALUE 1ECFB04DCB621CE4 // INDEX 1703 -uiFilterMenuTeam [ÉQUIPE @{T8}/p] +uiFilterMenuTeam [Équipe @{T12}/p] // HASH_VALUE 9C4DCC438DC108DA // INDEX 1704 -uiFilterMenuGuild [GUILDE @{T8}/g] +uiFilterMenuGuild [Guilde @{T12}/g] // HASH_VALUE E077D052719D1EAD // INDEX 1705 @@ -27298,3 +27298,7 @@ uiKeyPARAGRAPH [Paragraphe] // INDEX 6488 uiKeyOEM_102 [OEM 102] +// HASH_VALUE 39C742C862CB934B +// INDEX 6489 +uiFilterMenuDynamic [%s @{T12}/%s] + diff --git a/code/ryzom/tools/translation/translated/item_words_de.txt b/code/ryzom/tools/translation/translated/item_words_de.txt index 6dc0d418688626285c4c5392621eb76f0e88958b..4fc1b7338e5a008add1f4bab263949a76755eb75 100644 GIT binary patch delta 136931 zcmaHUe?ZpN_5bI2p7-;U_wz$iAtFN}LLwr^7#R_g85t3pnVA`xnVAupGczJIbI!=n z$GFa%BWG%kIrLGk88Kqckt0UTnKL3JbIdVD=KMG__dVyl@B96}&x4=uUwY5|b?&+6 zyv{lI-uJ`)pL5Hl{Rb@dD=n;bp*5PdjfwZL!Q!ix;ATrB^K3}-uuBWv4p#o(I8Uh5 zS|pk^mRmic4x1v1{WnLc!P81JJM_T~0j9p^@&udgCuziBo#T@GiT`=(e@g%7iT^2O zmiJsEf=$i~TFbf@Vm-k&*LpGcy-rVXk$Z<$Qm?(j6Uy-9S)|?{WnL2#Tp86NlkRnn zV70HtDxp#}L1(9UxEk8(by--&j1+kR&AuXexZUN}5uwDu8kx3i#;BOkp=ruP0Oxn_^*S7q|l? z;n0dJOGGhe=M`$`Lfj~wb!Z$+i$BRW?RB~=r3_gNCS83>n+C-m95qT_|EG^#ePzgT z%}&uD_b+rXAx$rib$fzJVh{6e9qnKj7PvjEi-VNUC$24|%n#sOJE!3|2VWN~b$=mroDiY_>FaXdB&HKui1 zg7r6P+8WxD-eHzl{m&grXm!SZjRcD62~8WDWMSi~Qli<#V^Cc41HDMKhcbPl7Bwzd zc#AJ|?uXS{chbR)KiVvn3U660X1gs$4fT)fl}aabEfUfiN-P|*TwbTDsPT5#p$ng~kXpOxUeDV;2Rq(xJV$q(EeTz-F}ko^O> z!Ie|n0{B+QCYu zDV~t;p-c-anP_(~Uy0SE2YnAs3~rgxD5>4}8IJ{<9&XaqMek4Tx@MloNm+VgqB%ln z;1RK@#$?oZ=A(y9K0;|F;Sv#o#9anrq42ljhpOt6HDbW(lYE%^NUg3a`nZ-=yiUJORt&DD$TeOJZ8~ z%nQN#1)c1|h-)?23spUnA&jT$nFT@I;;d&Qda&k)ElO}{SqBT0ik-)CnxCr=8~Mdh z-$Ivc#IFVyF4`+KnY{Sb;Eo^fG%2CUi|-IPB#e1caO9E()4GdaUK}cZG2TLyt`A`Y zcfFPv+`6<)H}|EXvo94HbB4yh95LSFkn0si>#onh>SrrTXkF#}@KHmV%VDzxiYy5Y zzPdx;FHRfU_1Z2nmSAIFcCa`&HFV}Dnk^ZG=+&Az3Br_6eAR3L8=L-RiHA;8f~Ad) z(8V`qMvy}tZ-Un(_z^9qhBmCN)aJ`Mn;t3-9x)0udHq`pWWtotHdaN1P|nZdtO$I; zoS#*P2HzGe<@{_7?rg}qd7aj;?ouW)6iTYC2_sOeqAe9NacXGRR)HJGw^_8+S8R)< zY~CTzM6{X0x?8}2_w3XrU};`UDoxp5S4*Rtl(V}u=5@-{kZU*iNs2ZQjY1iFKt+vW zFk{cG(D6{J*q)g$Dut~1Dr<76a-T<{g?bvYECv{{$uBAo25VnV4zAnZOS{adW5O4f zuQsO`5)}pnpMR)CbIhPpjlbtK@%Gc*jU#-kyT#;L)-9Sk7>?w zb?{iz9#iLo<7Zq2eS)WdD}Y1?D;%ijMKCn$M-re&wZXy`&C2D$SxF3FQ0edXORTlE zP74mcssvXbJSuU7)aKvs)X)nHhYy`J;3S9yU+Z2{!%$mmvINIE)JzYS9PT#<)XCF= z`~Rrnu0he5I@Na87@w*_gP(w-CPf!GHBG~)ia&)T&UL|o&MCpB4hg4%RnNo`)zNuS zvr-_0209a@Ff6$28SFVVxbjG+3{}?!*K|(}cKl_RvQHmUQhT=xXe-B+0nNanDwO*V8K&5v)iN~{_fH5u4L}Oj4%AA; zVC}$^(EhRW2X4V|4(IG z`eiG5M#ld!U-b`ReFty0v}+J+@Imyz4=zuinRz+7md%;cfg$49xhzZD(4pg4e)bT0 z^Eha~=9bIRBZlT`j%5ldo*5w1h5$X5cim*RRA@1Z42p}` zse2K_1T8JgxmT>-l^ z%@UsHTt!_*O^4GLjERh3fLb^2Qxul>kj3=8;q@go7KLq`VL3?fF4s+BEf0e#njEH; z1lZ=sfP*tLEdvsF20ee4MdVusiKd_Xs64%>gBYzupA|?PMvj$Gh~fh__@rez%dpuM zmh!mev^l3#TRBHeD$(kmu$U>HL@%BIBaM7gOiL9UrpS;&2DbKD%ZqHoQC1RVN zwUh=clO62Ld`qi_z(`_a7g&x-uAjOte+EHQq($0j$4V^+%w`;#y@uRSfIGI!H2T{QL`+IVKO5 za?5KNYHraK2to`Fhbwc<(1HibE%m~sspXcXd_sjqi`p@}VF^{1seEZ=1Zf)Iv)p1P zMbwIIUS$dJ-W3)(=h6D_Uujt&MHLzmnol1>EL&~SVgz>X4a;)As7e$$6i;aZ!KpVb z7wCUM$d|OC7OWG^Oj6l;lmcZ(dMmI8k$l8&v{XZU41RipWtBE6kVKe)m8|x4Md2-* zEM^YH65g{+<9(YgaFB+yV=)scHnta25=OZ`63z|;mywAq=} z`mD)(purN5A{@&e%gc-ar(!>NB6E~O?^`bFp$`A(faOjxMcV<(0#@F5S)61YzqL$c zbsvU7k)9lBm3YL&E;U*9o5qL97KfhV7}~%)twY`{=#c%9j8@?zR<(frV;mgOaqsVB z9$DA#A%Hn~P-cw-ZMcvA- zA-rVk+C(4`UdP)$u|%7J<>)rcGi=hI0Pf^8Oq+yqF;>%Ik&-cX;?IDO$3BJi8b?N~ z|Ie^bqy7xIihIhTI8KIC>azJS7BdIKQC?uDj#{JxBch?fvA{9QMg8a(fo>Ut)hev| zuaOA2j2%86iJ8mT+0P|F#LSCr{<~!g1A!~N;0p*4G?YtAPGNhxEk-`Jn00+=(ULI^ zKnZ84;<%fgxXS)0DKraw1v^AeR!_rNPY;X@Fy-JSCw1(_lO;BImA#k+9AF0LzlPvK zQ}_O>>{H=1fw%rmhX};avi}9tIQw@UNCasLD?4FV_^5szHFP@97_f*Ojl%&^hY66S z{Ny(n%;R42oNq0I8Vn%@!W>ii{(oD{Vu2K zHf55aX{qQfTCsrDs;~^js_s*)8ln*b(g;we0joix<{X-f$q+2DsfMfB4y%T%TK-03 z%yL;pvW97%)VRuH)sR(cyjitM2TR&A4*G`BD7@eU0jq}bbml~jgB@=w4OduoqeWcg z8N;pe$rFR}EcDw7?;c@|7keB(%u&dTW2|swLJ)^#LRo$$)*2__;jm$j2kE4Wt%|dX zLn!JDr&p?Jq5z23vW!vIDJ<`5Yr8fkAY&{C+EfdhWQ!GX?YPm_alG{!>pY3bfw)27 zPW!LNIN1C|>u`Q9(YjR-Tc5E8SY?t`<;_XfMyV%*o^iZ3*?J&?IF4^lxeRersx{uq z4m<#tCU_~q+S9B}+MONVLGjuft#H6zoNg7&;zbE>Nw-D|KCsOCZnBhy-s>;*GS-}y~nPXe#H7cKftF=(ZILozH zjNpfJtYJ5UNMs3vHiehvTEp%KsrlgT)?#^#o8w#~_|);?M7+*p`}0AT*^ef|)gZ~> zUug}lv4)NH@caj1V`IBIS9Ut7_U{y0lsl0ryb-mnjZMGW2ljm7Qh@@?9?o-y45+`Vx z?ATM*Qi%rBj$kw9>+2z#ob)t+yS6@5H{Q9xI!lyEAu2aTDXgFr6o+I0y5-rP@hof# zy$V3XV-w4))hz7?iFmb526DR0DxdMPZ;nO9@PvgZa2llX!j&q|d*14j7xmFt_Xs|7 z5j2uGCYdb#F@k92w>C|9_}YN=E(V-6^@5b;;0xARSuY5`2A5b9_4WN~xXM$OBEV}J zhI%pWB`YL4SmvNdppnMzqqKO}%hpjcLxc*xS5N_IjH(&1l(NbQ=l~A+;4-U2fF0i5 zGS90ZcYH`d0KqT33iHBK0tf3^0WO)|V-Ud3f6aQ)lmLIsd4u1=7X8H9ZW7svo1;eX zX{)UDGHc7;w(a8wR$E&oB41Wzz0)T3q()1ttz}k;I64V>ZVp;|EUbOKRg*Gw4DpN_ z>o#dLHu@=OxO#)NOD3*O24dXX)>130-6Z!Ow>i8w4Y{t?I!&IN7~1qp>k&)MU1EcG zKL`URZL==2vij{}z~|0d_wmB_tTU{v=w8u|#+zPeO$-|k`A++db)J<~-Y*(b=Yl=R zVa@{3x>AN+8LUp>3-(#ZT3LI8%y{vBYl)S0yf4#ce_(YCnJ2EvI#ni;d=fuGC*A#o z%w_fOtWC1aaQ=ov)=FUVX}R6lkFC?KY}a9P=6yW3Eka^dAc}%NS(gu)xuO$hmiCnd z)PE#w7x>zv);Fxocfp(@#5?|KJt+wRntZ@Zzp!=!K$Yg zgT`SyuL;v>-17YM)(&%7eAsu^o252<{3YuxQkl_m(yg{4S%}1Dy4|+W%9PwNAse&$!0cEAKlAcW|@~6uZ7dYsg{2&ska7pG6Ux+$*mL zO@t*pU~}*dV{AUKm+8m%>VbD_h zBirF2z2nE(ta5K!NN0|1T?DkS^aW`S9-n7BC=WsMUY~DUGGvJ6J8kDpd?B9Z7uYsR z_(HUXdu(8l2ENdao-VRYkjJBjJ(F!!k@y0_12#2$;lPU5W}*s>wD4iu@(5I6&HJxc z_|93jWO)i&$BM^ni)A9sTQ>(bIs#hqo($W34s$(d3x^e!w;uxB^k+aaVb~Jl)5~n- zVY8r$t$NOru06OOR&_Tz_aRtb#|d8$6PCy;pcVQAlT5+ zNb?3qj@X8Jul&z!^Q5GSl7yyXwp=+yqZDKH=mC zyRabzZ}?1;`?_t@WEG*$lcUwRj8S^1laN5=12*l_lAczw{u^7By#9Ayh>hV*XKZk^Vnpne6`lXqCY|y!4EI?_cdEi#&)PaA%b)@3{|!<# zU!qU|UB6_s!V~}3mLczbU15sK=bg7f=1<21qzhaBV+%VTz{He0zO%s@0!b2O&nH}j zM&`U6!u?-LWlC;&!GCR~G7;08eTS9sGl37IV|a#DQ6z>@Pg%eZsZ*g%IVx=qsX~^b zm>Isx;_Zrd|IF$WMPd`kIVe5x0ajfbJ<%}tGrdM2$Xtca7Ba~wi+^tgZT$Wj56zSB0 zrh^)mag~z7mdC=HaK#20UVEgn&MOtVykNwxXnl?p#%PGo#rUpxML+E7e?|%L<5w%P zj<6G>m0Px#TqE*s=&SO@3CaTP6p{CjRwfyOQhDLESfumCnc2{?E=ie4DuSEHzqw9% zK~iM8t$<7X>Ad551x^Qz9ndSL@y%nDrAB{t^VOCoS;Y;YNX8)#u7w2-D$}%gC&$th z>4w^@#HU8AC|%L+qD?wVfUUntIY)MfqS6K<`tX~TLx#YJ9xOSM!sm_!fk}I}J4?Bh z@A-iOrzo`W#w;a+C;m{W79xW3HerOdU)X$nX|_^ou4(OGZCBQe6RJ+niZ$*oDO2%< z6Uk=`dMH*7)JoCL7t_OJzEbG%I(%v0c)TEABK^gCM&tC^rA z@@@Ib@o+i^`WCUwuJ3FrFPf+{NJq!i7ie)jvjBEfzdU0^-*Yz@N7%-J6-}*KqNKCT zdz1_2_M-r>id7eafg7rgl#GX!bRJuzqlGZVsjU8hlEHS}r*s(>U!_oQ zxWZLf<#a{6zcS}M{g4c5yB|^BWHTRDE}9Im#z&MD?9@y}^F|zstIY|t+9Qtw#u4&U z;-d_!x~uPJ4fooE1yutN)wtD2~VP=Xj+q4 zJrBUbP@Q*PP+n*A<|}QIbr7xTX{9BS=6MFt4h6{pc4nEE`mFv1rJNmk76e7+RQG~X z$@8BBbqb#+^Lf!fIG7sE4*Ww&X7vk{8GOegWmLpyym+xPMOY&Yr&}Z4DG$D)%wCCfL=N8UzRHRZz$11t_!yM5_Ge0;rgk`d&HD%d zZvz0BOV_k|@aM`3-mnRHH`h)z9BSZvnWiJnrIyxO*a$P)GAbC{<~dl$JFtZ&#LS6Z4$+l!dZZZdJ;8_OBE;d)1VDE9gdh z9rz4W$+v)sWi$cw82X87i#~KYKk(Zy{WL1roR5Sq8YB*n^Mx*=5pd|g*t7x~j;>`{+#%R6 zV=huqz+rf4)T+$nTmBF>p;61Bc7i1gAHz5pysq&iYIqTGRBhW8vd# zKz$4+Ij&El(^m1!E>NHd6Mzv`vNK=kGwF?2(zgSA<(II}x`y(PdX&dy6M*uYY)@|( z$N=pPdN9CJPl6p2-p7Bfz}>q3X&me50c^r=fOx{+6qit=wjO0Uy<_M5`xLmL*P{~} zuj8~x9?&W{K>yB&;rQS`4IRdjc<;Z!Pf2D#PmIV6_I?9vHSGf{8opJQYi#hUv&tU9 z5&U;4Z#kzx8g3x}va`x-Y{hxl2(n^q!jua#CTgmD39Ng?cS=Cod!vFSey{Wp2T0<9 zOUg!VQ?zIly1tcdKW#ui&#>4RS|W74Sg}`dc#tShfNIX6Vy3)B?^x|`vT+W(HX&I8 z_N5Oxc%9Qe($ojDve+%=*GZM^u*W`V^1x=E1>gtpNavGOdl>Lj4MuIO&uj121dTMp z@o9d$jQL3C9RXlMgI?;3o5UAI+a1!HHD#~9!oEWisOANLxPqQOu%jb@MHBR~g2P8B zLqH!Z;9E0=rCn*iAYndrfG;T$4dvtT;^t{tnoxdSdjxd+YP<9$27hOi{TZQd5Zq+3 zgzM}x*p37{+$$S!4G(e3>5DaXZnRy0gnyO2k}tZ}4zE;ng{L|213p%9on12^!xzxF z+%fQwUk7lsFnf8e6jRN(u0(%nkWC1Hi z+=A9%)-C^$T}$K*a?fFVGHc7WUocWPvo$=ibFeAn>}L8V)xo9zL_+Q^wn+$8FR+ zVG?ZVK)yXZL(t}6@FG}akIp_IO?aGj4A@gy^PP4rS1{?d%Rvki?y`$O9x{UI9QaH% z4H=ULc&_|UXqPz2E)GzLMpCEO$CdZk^{5nIB3`t%CjUcwsufX#!>)MV_FG;G8qwwif0ILSL4|@yLoJ2Qjja@zuq>7Di+T~xIAX?m7`#FsZ$SCHp zzzVSHt?TSPCjKY91^Q15^sL9-B?E|m%MMS(b)P~bZDaO`)PfbSvrpmiKMQjwI2=E| z(Qqd)(h}ab$(|vrIV2CW*y7EwT+c7(+`dPOa@E=@AKQB*sS{24qflxFNygloWndlUZT6#vb?}l;(5X>OGV>Gr(wZ1Z zJ4*g!hi@{4aqtrz_PaIR);+^CWICC*blT%3rvM`@=ChALd~FWL^N)tdS&&YYFzYda ze#VCgC4Amr?S-Nve6dhOV&NH|LwKr zC$kG*%5gc_03;Mswc+92HW*g8%g|~e>S3<0WXmBsX+Y`8F!P}bjJ<+`Z!0YN6a*@U z|DZYwG%Efk^FfLXdBzmp(PxK?NP`8VLQ{*?r|sR+jzY5XI2)V>ybbfD|7CcK3V(QH#lsRAfhLPX79V{dKvp%%=8&z&tXQBpG#|hyP3h^eq?66` z+8r&1&4^D1(9@(i9p^Na!!HIjt*Ui7!qXM_C;?;AT8~5ceB*ppAD<_vj&YJH(KiXG zzr5S)C>0i<&ydVJ{0@kp49|kk+s83d_cg;Dk;x14&o4$hq~xWHHw<@(h>JlcvXD<3 z>45VpJ&osUV;pc!r#Z?i9dnIs;P5L8_X&33_Z1fM!gz;v$E|G=eEp1Pm+Z*Z4(-^N z(HGEgQVxmmHI8IsAokG#%l&kD!3Gobw(wZKfKl6di4Ip-TY6ZZ&YQ1w#Ea?iWj(&O zPuI@YW?bhuYbXo;76hYo=wPy=L)#zvISAT(02PQ)QXCFr1`eNXKP$!shUYUlcy#a! zsSYg}$F=ccX^toLCTWfZeBefT<**!$Ma?`*Z*mN1)0%A3+#MO9U-h>;NU8bmn;qX< zj3Tq#>NvsIWIB#YG-&cA&;OC*U?lD2EsjwpjYD4!FLT7mjJnn24(*mb-jQN<)7s_U z;pmN|UAoiJ9!c9-AWx~WyJON&c4yujIq!*vVh4oDdC`d?il^7w>639hlSuD(OQtv= zN~&&##}f1$7H|D|&QwQ}OoTTGDi2I^?2w7{^c;|zTT^5${rbCQDZxq%)}rKid)To~uAp)1uTNAO9znTujE9%oCM)M=Il5#bK4WJk7o!w@x&)VPHm8@> zEwizC-Y@j!&~xNHa~z#Ak)FbDn2T#PTH-SmR{hQ}g_q8A9J8?IZ1@a-*w~b|@? zl8fbzKBsFPM?|^*x~xwIG6?8`bVkQ+V2k5HXk)AmkW6rwKI# zBt)Bq+c&XU7=*Dk2`!F2Mw@SbH9Us*{myZ~Py=n#e~)d1V&MKT=%w;ie?XWKWc*r) zr+@4iAZgI>i$}-sv42Fw0prjo#I6pW{)ywTLH?9GM{xB|Xhk3xY)IcID4z-wK?=1w z(}~=RHu$54y!{9cuWQbAi81`pQN$KOp{Hznj$tpo4Sr%!b=;AqYZHFJb@X#bwkX%V z9i#H3FC0B26YW>{cxjMD+E84e5Jz{jV< zlQ@Y;FFVVwbZQo=?G(?t%Bedoa>!@mogjJ*2T^1jM>#hOZOi#E+Q*9%oYkU?Tg3)v zfIm7vTJS6YcGa~`@V?~4Kzb@Kz0Qd$j!upCcjEQL1eQUi;d$v8tS5CNlQ@;?1f`%d zJ+|ywo~-Z#Y0j;3qlM{C%@Sc!1k=I{>_j?B;1)j?S7wx1QTA{L@BV>PwXj)#xkf|0 zn|EFj)9^#*NQp$QDmBXqE=FM8?#(GN+?wrdFeoPwjM{H;ZZRmd2`g@O?lQKHdKKJ; zZ3L*%)?LaK@N;(^S$1#F$m;#Ph z%DM?m_uenm2A4(8duKf$_8chGFY7_EskCzZCf4x~?vUV*K8kCZ;Y<|RS^nS+D!=fs zQ6}umc*LpsAfdg{kJ2Ok&Y(ohX>u@k(M*`9NP_}f;LdKfi;M}Mw2?x|(C-jASE`Q$%@r0%i_yKL{ z2V}>nKNQFof9T8i z(D4~EYZ8G4m2diMn3|C4Ecu-LilI6v6jpm(g2IcxptwMUTRb${pV4kMy3?ED`0&)ihX_;&pl zTZWmr%C}ftVCE)~6lImo1#lA;;F#JXcwrL z2%{*FX&dg^V^GYl8%Dao_C!NEK9~^e8i2tly5bOH{6{Zn5f4lVHlwpl}LZCHt8m_!hp`mQS+JWw01!X)YbcW?|-bX7+a zR6g)a9K$5i+Irtb(U?RM^1U%elDn=L5|sXSm9AsPCq z4-6y3ecoRDVVDupjzT!(;PZcrc5beZHgCp9;r2zUQvADcQzGK>-(SW;cK+cq#<2I} zaASb(kb(Ts6}DJ~#YWhzK{oSv@9(mjv8ag971Z z3||uMR^itWw972&wPCm$e&t0_=!|a9NH=`uFG5KSQd!X#9tZba>CQ07bi7w|l{?X( z;OQBwd^`@mEWFx17Q8OqS(yXs$I(9(I=~}0|(We<<{a! z<6N*a+YLdvXh^d*jC1z|4}7U*>7<~0Zgq$Kd=?$9p2~42hb;O0&J^a%=`)8^ml#*j@c8hM{QM$!wkVSuS#zHoa}FH_X~|0`hg$@}$BO&iVCyCj z5yq@|0DDIe%N}$`OEcj^K+1O;@lOSyQ(Gj8xWRHl(SOWlB$X6n>hhH`>UhGR+e@_QGeghBBr z)$wd^TI42E5~sPHi?JG(4bAbEtZNAlM`fIj!E`F`S?bP|c+iMh60HL0w)FW58FBnEc%9ykgXGc8`i6s(kud zv_nIswFCRHL3fi(q-|2(a)%wZP~35_22Ip-YUF5EZ@`uYk<6rEBOt#?!{6sn`PsM8 zR88MSaY6sjQHUmy{AAZJ+>kJtM0!wh;2pGUGbThf8T`VZ!s~uXkZA;lbPZ7bE&`0% zoJ<-HL0~phV~JS&p1V^baxj&!bd4Ufcz*33tAhiEt#GQ9Ez0EYH~j|H!;~zp1A$uM zHM`Mt%^I@2iV#AQNu-Qm`aU%2FiFCx)irQx#c_v>3Oobw@WA`-dYOoqp8V(m_a#|! zWP+y~-Dksyc>H^&2^ltJOoH!gM(Z+#MgiHG7KAsG2xbnOd64{!A#+Ngx(|h;BZ;@K zH5?tai4KROBk97CHg}FNTarg|yHN&4RKDa-Xeb07^h2tPKE>VC%J`$4bN=i;EXov} zPWTIMEJ2I*!>ga+#%fT5*x~vs0w$Gdp`FJu1_JLQPGS1H+!tXyy^KF)qBMLdJdg%Y z{Cp3#A-E#Daed`Jqm{`Jd|$h}MK$e@^>2s}CVU0{j?Jk|N*?Vz}>H_cjs_A{afSXgw>rTyjQh&bfDl zW7?$i?)3(RdY$=?BEuIdN4e~=V zSjW#H#$ILffb$cP$2%7tSHj=l@fOnMexW81QV6iG;NCqCHzAL!^BlH5?n77E8YB@CeTe znMl27$9Mo9BJ6O|l^)P!lSmhIsaJXSh7mDnITMd9P2;41q+^t)Stb%rZ%x1jMYNog zh}}&mDigB{Z}LDCOlC#UF!g2+;w44}6lJ9Szysh%WlDYr zGqFr|L-l*JJefK?qnIxK$dfI~gv@zAflJ@QTTmj>CIM&L)my_-QqqNl+dN@di5th@ zOMVc@?H;gSQ>cW@3FAF7V3I%*?w|!5cuA{N??j?0PMYleL{EXNqU1ZL6?i7eM8d1R zcY6S>O}!;aHQj@g8$_DC>0X@2plOlQ&iimt=IV*{+R50`AYyL@y`&+W<_=xEB51QI(JJDNoLF}1jP9*6YcgzzZyDUVO0(Ib>;^GPo?6r~6(ae-$S z>^M;%SdZbSolMuP$%8pAIvL@W@&BTcn#5uzNJ0Kqdp zF)Cl|Y11i`7tCBDtOT17&ZaEICIT!eKXsLRS_}&PpjpCkc#PKjvS+73rl=9pMd+$y zD82=$T!vi*MO*%>xLCanqH64Go@hx(lmO?h^u$Uu66XA$;8;Q`lzQgnJDD zhUPn1h4TriU@r!}9K33cXR|>j2asFssWvFowRf!tQdl8AV(Vy75-9a*ev6pWL`**k zU&FACEWgU1NfM={l)R0Mi#F(|c-qe;hXixQ@Yr7F^@8@oa`{fr9z!h4 zJ_WZssm=pVUq}>HhRy#Y{Gxqem%wAxB-)<3-*`?M@*`Ha?)G57ZF+UKCN&CvcQr)L zMI)2@U$74w3ISnPHuH!_WjhzC@N?$ebHJ!0k>|dTOORS~-v`)VNQrdwVx#2WX^x&I z$-fhO_04F)=93&m4wmpb;ClN<9!0L9i1SnniUuSno(-#>#_8=*pslN)Ti2mz7$M#fD4hBxYie$Gz#QJW}lrSQ` zF&x?Bxd=1qhaKAM`s7~pZYGfu^t6*63~7y)6y%RO<>`~%13CS;K5S|F4C=0)MoTe? zv^l5$;gOF&8C~zi4S3)n!t@v9266_GPlHH~rSOa=?EI7BDmYffVBT=J6vUKGfafY} z&Upr4XN($(?5fY>7^aud&LS@07$%VhZoh~^F^S|ik6ePk6|bFgpljZj5|uBCB=QPN z6!;)gE(}*#$2Aa4Ew@F1c!)@jYLPvvU6iTQG-uQ?p<%>gz8mW)U7`AC1NbSw~T%;gg0D52$Tv;wD$a%s9sS<{obB^B{bJG z3-zV&Dr`<=3c#jajm@bH`vjM(*F+7M;EZDQ#R*aI5{)2k+vq6JXb=Jd5g^u;e8sg< z0JnlN+BPDFPq{8?n?WJ4Qm>B!V-~1JZn-lh3N&BBISyc@8LRjmR9%PmY3^OVb-rjO`<*3bn$?04CttHho$YfP>M5r%uN%q${Xetm8bSeT6fk zz_5u(3N&jbu8+#3{WE7pIbdn}Ar~!W@uN{5iKd;4tS^ZIpKIU~En?Pe)Q)gk{2bH| zgQgvR9(*FIRz@d+_9ah7)ks7dG3lu&fPV?b@LQAp^HKZ;IMJ6b3<3&;Z&`ps4zJ-$ zOOaEPs9AYgR4c4WM<-h6sD)8Y5={f=!RMoP%0#l_T|dU&CO8oeuYLi$n?(9#Vb+T% z5|c=2Q`}2Yner*u?DD8=Q6@?3dKq=clo@CyJZgI-sz+W1C3NeSMU4~*AgOQT@~Ajb zrkPH^8dWc}jy%Aw*U-jE3rYRw{UmCgD3e%xKSg{YcS>rgypEhunf$_F6>)~1l+J#- z*F1CO;-_j|RM>?KS?=LrREB)I`q6E0wH0_v*aw<3gmy9fbd3OB zpio@Ce}e=*G}5AtQRj(0>_j0A{CyJiI%YJ*mv2UjKn_Be6}1RZf|GSG@mYtKD0gf_pfUB7gjc%*;nO6NMCR^{+AI@E?6Gyo zqoJaxjjVbVBzU8Cg>O3fjOcm-SY3BDlk)5#j5Ub39SpVuUKsC1IU1_2G2FQ?DpyxQ zbTmmET`9drq>Wy>A2-_Mor0^L(eQcQ`~y*ks`>wy* zycB>u?Qqml7+CX%l;X9uq4N+FO7ZI3aZd$>G;(C`Arc0fZoTIfbZiz76i$0B$PdZ(*pfLFDL!^;YnwJg1pqN6MdHhk!P!kBsbJid>VR|&xckDDF>F+vD*rAx*<;dGDj=t@M~Z5X z#;Xup2nt246{A#$7j!GeWBlj@bv1c73KP+0>qlc7@PSC7(+}tcFQl$jXB%WXZ8(&q zg0s}k9gk%ylW{_gf-Z@rq^R;=KtuP!GRCO#?-dcceQQoO$6tZ<(H3D7aEjz@B%=|RKXYp(=^P%AL3N{GVqadUL}0^ zy7)(Gyrwc7R7lrDva#-4)O?{$ZFoJBb*s8d-eB6x^Eu(lN|DO|yorV%3+NrLeRM`n z+LNdHB${O_9OR^rM=r%a5tjq`vOsX3Hce35ppE3p%O|SfWdwx|p9%`Fjd0wkC9LDS z82C(f5~{wwWK;uJq1s|nFcav$7Z;_s!3k^cQx*9%eSfj)5M}gdtkN~o!H-Q=Yl(Al zHc)lH3cv*`p+McovmQ_pOE7RJZ{>LqEr!YI~CgU;ON#jh53;{j~0tx7bfVw+wj%vEI$zKOzxH=d0 zTWdqwOlid7Cs8g!$uOp39pi3*qvofO5ncCCTm?^~F=!N0&%p)iNm?oz7ID^Bsvb8e zust#SSQ)NYY#}+!`i0m=kG=3SMeQM?Sh&-B4{KiJQ~0c{>S3t@rL?_l8*pj}=>+h=_wK+wsQpzyOke(mI+m~7 zsdk4E*Ql9%SDkv11{5vhyM6hrzD{-Ui@O95`WRzChAF#MZ8AXw8IEH;X#aJ7N?^t}pedRB;31NXzFQmyK5sHks@Q*6 z?KepzO5 z0Di3ZdoZy{-$6tbQQOw$&F4^C9$7)!9{3x8K;I=awXlg8YW%)q-r1mN<6*ZtQuN)T z5VFYXoi?OqW~MKb_u9PRbR+s8hkUQyTM=2qL1uN4MArWX?BZCrchis>+Q#8g-uXjo zo`#qE>s9Zp$Qpjp>qW;CzKX6>zAUZ=ysL)P6h05~>KW!;G^B{^Og;%CgnPN zmA7O_jmFm1DE5dUiLHg#T&53g;;97h)FFMU+F=uyBzmid)F6X34!^=DC3%+)sYU+K zRXOCM`wExzV&tp zk|+@P9h-4pbklmpV>d!@lAVLh8#HnW>ABusiFPwaC)4u6CZY)4k?&n2wHy7u?{?mK zhZo}meU9foQ^)h}J8?+{ZSA}MdwK6&VT<{6k@p_nakm#^HN7wSqSN=lhD1UFz9T8W z7xp8fg0>^=K3Gvi1?)x^kDCljh^WBLXt*EtB7$Dt4#w9x)!PtR(SM&Whqq4~IyY(Z z)al+K*a~K!#X6>Wm4+GK&5^^Anshx3HWR@B1$GA>@m>}!dBvmN`p6zRWq};N=&_-T zr^BzT$3fl^b5MjC`-HbAvVz2w{Uq#UL=V#4;-_FcBPvK?nOXM{5gV!NgTM(H;${nKxQL>@@9ylR@EXO5jCXjNn4Pah?=z9ASk%> z%gX^Wy5Np?hXOwbs6IJlAhN*4?_FkcIzsE)c^NlH(cO}|%Q#JfhJsy}@kiu>1NFEA z5lbQOc5wG)7D;xvCFG5h02Yp3VtD6XuPV{VgTysp1YrO%DeP8`Mq$t(%)W;wzwb?w zXyiQB9nd2(%}Zf^lh){+D|j9JyI0jtX}5idhD{4-{?@B0EYJC^cY{pqJ_Wiu{3Gvj znYj5~e;)5`@s`TOigs@<3nYWSZ$4;vT^g7aw&IX?rf5zq(2flJ!CM?Q2HFg?^zaoQ zqi#yftx?lBq|`DWyuA(8(rCnig(Gr#R)-N@(VS$b>7CvsQX{g{nmUMPPW{=tN3IxH z>doTE|ANqAOu>qthY0@QXNVmpaaXIFh55dVZ~QBIc(aC zn(~Ery-u71aIvNxY&Gdij8L_fNJLxZV^4USWMb2JK#H8NF#0rG0t-1j?Q3tBOr+Th z|K_dHi7-2d*~2DAoZ^kAy{&p9W8#*6?_QZm_|QCHE(TlT#0(~O@%lmUVY&IGa{oBq zdHy8Rx;zN-atA(k`HWnca)F14Kn%^tQ`HTsy1X z2m6|G2@PjruU9+GTl8P_dlTpQhO_kdePj3a`WA>HNxRDG1FN8FT5pEpn<&a8<0iWg z)Q9R}igCQ$>BHe*bnVw1n_WKec2rN2P4xKY=w;l^gHgU>QKpS7@%qMzGL7Hs^MP6E z<7e~r0V?a*JwftQ_S7#h~$u=EF(Cngkyh36;V6@_1FEF+Z`tFv-^`>d8s0 zPWDwo8O1}#)}vB<;9|A$Ui6OTonwsgNc=4~_`p_(wbC1Xpik74hOWHH2X;VZR4rDW z>2vVaH~Yf=LJ*xNUKs0}E?r*p$(g=COJ(iYVs@5qxlG(W9-{G#Y|sYjqGSAaK-p8b zz#1hY#l@|+f?h~OJRoPye)zsTz0}mq!;CZZkR+4EW9n18R7Z* zJHq*-$YI1$tqKrp;TzSwJ5M}U&*%~g+ zn(nI;M0A9#xeW|+%8YQ+sd?C!A~u*z=fX@McrDs+(v8itV6U|@=(ZSnVu>$T5C`6X zXsP|NaQlHodJ5Eo0&}=*UJ`Zm%^BoAQ!3+^jVO_j^p>Ky=LtY+g zHpxWF)wV76wMj(&+!Eg>Qkl`$w^Nt;mdeDNVc{IG&@qLIsA)9{g+r>z&E&UShIKlfIQ_fJ3`s!N{(Bz;M&WGm1%L20M-mwwv@QA= zbv(Q|9hNf4&ER*y{|L*CNYd$u+3|@l@=SpPXZ?|liKm7R;5K3ux=1N&f&{Lv6P$fS zEy4NnBfgf%3QcUtTGdfN_=s-A+N5K?Es+(#S{6?`?(2%IApRzH0Sbi=#eqM#;|M=Q zCaz}nfEq?r&^c~ZuWy2e(b@}!lV2Gz5drm#uk|2?LsSTkj4+&H!R9_+ktkCbIQ=xm z8;J3nABXsJR6h-c@dqt&!9U687(U?GfZ;AGK7-@@m4gsE7(OPKr<@57{~Es4Sz#1i zFZ{P}n#hbVEO2|YUpwqN=bI!GA;-+*bI$u#%0xN}PrZN|Oo=shhs-jc_kHJ^B@;<_ z)!zdaOD#!obN?IO5+4@rJLU&BWe!OR?mVl1T^JFsF0vJWg-pb>w!z^Cn>Txts_$|7 z!R4F8i{<_t)}#6ze52c6Zei`C{SKxtU*&00ez0eQ$m>);z>iTzOvvI#e0~V@Od_3Z zH3$3S6K5Ca*V7|nU=+HjW1U`}4=hd{_|Nk<9C zulH||h`fA^AD*w9jcBhA-+*(D%JOS|mY$Z(ztIl~u|fN0Rp54>dXpdgpFtxBkbE=F zs?+$VWBp&5MJ>#{nCU+((Z~U)KMEUu*^DdU_u;Z}bM>JZoaWumr;qbP^k~rNKDICi z_t&7&`C4{v*b>O`sCg(QqaC@|K)xSxFoIS}nCVqi#T|aIbd5+UDyAo{J8?vlNJ-<7 ziO8Z!q&%ypzz<=pNrbb4JU(F(nuSS(lqHuZ6#AFyL`v6-;b+b3@AZSB8ZCMHeg0ml z%xL1`$*6ipBSsTv-|t@~6Y-pcdmiu~kcpJ7_RsLUc;G=lL_RnM9pB&yD(iUyOzq5c z+*hMwS-bD{?E^FXa3`#{h45lLPk+SUFEyhWWA3B=V-k(zzVb0Y-nWaseC^}@Tg{^O z@g7WjTIxpH<(lVDmfF$vLg{=zUQO$4V9dJx@B*1LnlbuWKm4MM(F|t1i?4ppzuCgN z7Xp5m7mIY=lk>bEym3Sg*_HZZf9KE|1hn`UP(%@ZC@D#P(Z6Fz4V;_dOHTmyG@ znGBjcc)@QGc+It#^0?4Egqb|;Ez_HAfS+lfPY4(jLz_XY{{@ho7ztt==oS48F<{kXWxaDb@{pA{ci406OIQM)L-I

<_0p;U9I9Uv*dfYv5V>S@0QV7-NV*T2 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⋘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

|fzR)MB0ib2Q1hQ@?Q~tK^yo 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%0D*UA~eA}J9@lNt~ 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 z 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 PJ*BD{Sx{YQcE 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 V!4nHl96a&x^i@7Tnox1*{{dfyL<;}_ delta 7714 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 XtEWvw%Y;?}T4uBorJlB=b+7#&JuF{l diff --git a/code/ryzom/tools/translation/translated/wk.uxt b/code/ryzom/tools/translation/translated/wk.uxt index 9cbec6320..1d0aaabd5 100644 --- a/code/ryzom/tools/translation/translated/wk.uxt +++ b/code/ryzom/tools/translation/translated/wk.uxt @@ -27550,3 +27550,8 @@ uiKeyPARAGRAPH [Paragraph] // INDEX 6488 uiKeyOEM_102 [OEM 102] +// used to format dynamic chats filters +// HASH_VALUE 39C742C862CB934B +// INDEX 6489 +uiFilterMenuDynamic [%s @{T8}/%s] + diff --git a/code/ryzom/tools/translation/work/wk.uxt b/code/ryzom/tools/translation/work/wk.uxt index 879041930..e80b0b3ce 100644 --- a/code/ryzom/tools/translation/work/wk.uxt +++ b/code/ryzom/tools/translation/work/wk.uxt @@ -13485,3 +13485,6 @@ uiKeyVOLUMEUP [Volume up] uiKeyCALC [Calculator] uiKeyPARAGRAPH [Paragraph] uiKeyOEM_102 [OEM 102] + +// used to format dynamic chats filters +uiFilterMenuDynamic [%s @{T8}/%s] From d72a59f5eaff97a140899b2488e3dc0ebd0034c1 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 15:07:49 +0100 Subject: [PATCH 160/184] Changed: Implement CI18N::setSystemLanguageCode, if we must force it Fixed: CI18N::getSystemLanguageCode under Windows (use 2 different methods) --- code/nel/include/nel/misc/i18n.h | 4 + code/nel/src/misc/i18n.cpp | 124 +++++++++++++++++++++++++++---- 2 files changed, 114 insertions(+), 14 deletions(-) diff --git a/code/nel/include/nel/misc/i18n.h b/code/nel/include/nel/misc/i18n.h index 1102a8907..5f270a490 100644 --- a/code/nel/include/nel/misc/i18n.h +++ b/code/nel/include/nel/misc/i18n.h @@ -127,6 +127,9 @@ public: /// Returns the code of the language ("fr", "en", ...) defined on system static std::string getSystemLanguageCode (); + /// Define the code of the language ("fr", "en", ...) defined on system + static bool setSystemLanguageCode (const std::string &languageCode); + /// Find a string in the selected language and return his association. static const ucstring &get (const std::string &label); @@ -230,6 +233,7 @@ private: static std::vector _LanguageCodes; static std::vector _LanguageNames; + static std::string _SystemLanguageCode; static bool _LanguagesNamesLoaded; diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 2f1bee325..fc4cbf341 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -43,6 +43,7 @@ string CI18N::_SelectedLanguageCode; CI18N::ILoadProxy *CI18N::_LoadProxy = 0; vector CI18N::_LanguageCodes; vector CI18N::_LanguageNames; +std::string CI18N::_SystemLanguageCode; bool CI18N::noResolution = false; void CI18N::setLoadProxy(ILoadProxy *loadProxy) @@ -248,10 +249,8 @@ bool CI18N::isLanguageCodeSupported(const std::string &lang) std::string CI18N::getSystemLanguageCode () { - static std::string s_cachedSystemLanguage; - - if (!s_cachedSystemLanguage.empty()) - return s_cachedSystemLanguage; + if (!_SystemLanguageCode.empty()) + return _SystemLanguageCode; #ifdef NL_OS_MAC // under OS X, locale is only defined in console, not in UI @@ -317,7 +316,7 @@ std::string CI18N::getSystemLanguageCode () // only keep language code if supported by NeL if (isLanguageCodeSupported(lang)) { - s_cachedSystemLanguage = lang; + _SystemLanguageCode = lang; break; } } @@ -328,21 +327,118 @@ std::string CI18N::getSystemLanguageCode () } #endif - // use system locale (works under Linux and Windows) - if (s_cachedSystemLanguage.empty()) +#ifdef NL_OS_WINDOWS + // use user locale under Windows (since Vista) + if (_SystemLanguageCode.empty() && false) { - std::string lang = NLMISC::toLower(std::string(setlocale(LC_CTYPE, ""))); + // GetUserDefaultLocaleName prototype + typedef int (WINAPI* GetUserDefaultLocaleNamePtr)(LPWSTR lpLocaleName, int cchLocaleName); - // only keep 2 first characters - if (lang.size() > 1) - s_cachedSystemLanguage = lang.substr(0, 2); + // get pointer on GetUserDefaultLocaleName, kernel32.dll is always in memory so no need to call LoadLibrary + GetUserDefaultLocaleNamePtr nlGetUserDefaultLocaleName = (GetUserDefaultLocaleNamePtr)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetUserDefaultLocaleName"); + + // only use it if found + if (nlGetUserDefaultLocaleName) + { + // get user locale + wchar_t buffer[LOCALE_NAME_MAX_LENGTH]; + sint res = nlGetUserDefaultLocaleName(buffer, LOCALE_NAME_MAX_LENGTH); + + // convert wide string to std::string + std::string lang = wideToUtf8(buffer); + + // only keep 2 first characters + if (lang.size() > 1) + _SystemLanguageCode = lang.substr(0, 2); + } + } +#endif + + // use system locale (works under OS X, Linux and Windows) + if (_SystemLanguageCode.empty()) + { + // get default locale + char *locale = setlocale(LC_CTYPE, ""); + + if (locale) + { + std::string lang(locale); + +#ifdef NL_OS_WINDOWS + // be sure supported languages are initialized + initLanguages(); + + // locales names are different under Windows, for example: French_France.1252 + for(uint i = 0; i < _LanguageNames.size(); ++i) + { + std::string name = _LanguageNames[i].toUtf8(); + + // so we compare the language name with the supported ones + if (lang.compare(0, name.length(), name) == 0) + { + // found, so use its code + _SystemLanguageCode = _LanguageCodes[i]; + break; + } + } +#else + std::string lang = NLMISC::toLower(lang); + + // only keep 2 first characters + if (lang.size() > 1) + _SystemLanguageCode = lang.substr(0, 2); +#endif + } } // english is default language - if (s_cachedSystemLanguage.empty()) - s_cachedSystemLanguage = "en"; + if (_SystemLanguageCode.empty()) + _SystemLanguageCode = "en"; - return s_cachedSystemLanguage; + return _SystemLanguageCode; +} + +bool CI18N::setSystemLanguageCode (const std::string &languageCode) +{ + // be sure supported languages are initialized + initLanguages(); + + std::string lang = NLMISC::toLower(languageCode); + + // specified language is really a code (2 characters) + if (lang.length() == 2) + { + // check if language code is supported + for(uint i = 0; i < _LanguageCodes.size(); ++i) + { + std::string code = NLMISC::toLower(_LanguageCodes[i]); + + if (lang == code) + { + // found, so use it + _SystemLanguageCode = lang; + return true; + } + } + } + // specified language is something else + else + { + // check if language name is supported + for(uint i = 0; i < _LanguageNames.size(); ++i) + { + std::string name = NLMISC::toLower(_LanguageNames[i].toUtf8()); + + if (name == lang) + { + // found, so use its code + _SystemLanguageCode = _LanguageCodes[i]; + return true; + } + } + } + + return false; } void CI18N::removeCComment(ucstring &commentedString) From b4de9e66f5243aff50d5f2e1e0120113defbe749 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 15:09:02 +0100 Subject: [PATCH 161/184] Fixed: Possible crashes if ov_info returns NULL --- code/nel/src/sound/audio_decoder_vorbis.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/nel/src/sound/audio_decoder_vorbis.cpp b/code/nel/src/sound/audio_decoder_vorbis.cpp index e438d43cc..1c11c32d7 100644 --- a/code/nel/src/sound/audio_decoder_vorbis.cpp +++ b/code/nel/src/sound/audio_decoder_vorbis.cpp @@ -195,13 +195,17 @@ uint32 CAudioDecoderVorbis::getNextBytes(uint8 *buffer, uint32 minimum, uint32 m uint8 CAudioDecoderVorbis::getChannels() { vorbis_info *vi = ov_info(&_OggVorbisFile, -1); - return (uint8)vi->channels; + if (vi) return (uint8)vi->channels; + nlwarning("ov_info returned NULL"); + return 0; } uint CAudioDecoderVorbis::getSamplesPerSec() { vorbis_info *vi = ov_info(&_OggVorbisFile, -1); - return (uint)vi->rate; + if (vi) return (uint)vi->rate; + nlwarning("ov_info returned NULL"); + return 0; } uint8 CAudioDecoderVorbis::getBitsPerSample() From f5e60a4feaa0f4b7fd175608a95a361273e63604 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 18:10:01 +0100 Subject: [PATCH 162/184] Changed: Init log before calling prelogInit() --- code/ryzom/client/src/client.cpp | 4 ++++ code/ryzom/client/src/init.cpp | 37 +++++++++++++++++++------------- code/ryzom/client/src/init.h | 3 +++ 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index e4a77b3c6..1e140d3cc 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -289,6 +289,10 @@ int main(int argc, char **argv) #else // TODO for Linux : splashscreen + + // initialize log + initLog(); + #endif // initialize patch manager and set the ryzom full path, before it's used diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index 864451718..18c8ba022 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -796,6 +796,28 @@ static bool addRyzomIconBitmap(const std::string &directory, vector &bi } #endif +//--------------------------------------------------- +// initLog : +// Initialize the client.log file +//--------------------------------------------------- +void initLog() +{ + // Add a displayer for Debug Infos. + createDebug(); + + // Client.Log displayer + nlassert( !ErrorLog->getDisplayer("CLIENT.LOG") ); + CFileDisplayer *ClientLogDisplayer = new CFileDisplayer(getLogDirectory() + "client.log", true, "CLIENT.LOG"); + DebugLog->addDisplayer (ClientLogDisplayer); + InfoLog->addDisplayer (ClientLogDisplayer); + WarningLog->addDisplayer (ClientLogDisplayer); + ErrorLog->addDisplayer (ClientLogDisplayer); + AssertLog->addDisplayer (ClientLogDisplayer); + + // Display the client version. + nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); +} + //--------------------------------------------------- // prelogInit : // Initialize the application before login @@ -848,21 +870,6 @@ void prelogInit() // Due to Bug #906, we disable the stl xml allocation // nlverify (xmlMemSetup (XmlFree4NeL, XmlMalloc4NeL, XmlRealloc4NeL, XmlStrdup4NeL) == 0); - // Add a displayer for Debug Infos. - createDebug(); - - // Client.Log displayer - nlassert( !ErrorLog->getDisplayer("CLIENT.LOG") ); - CFileDisplayer *ClientLogDisplayer = new CFileDisplayer(getLogDirectory() + "client.log", true, "CLIENT.LOG"); - DebugLog->addDisplayer (ClientLogDisplayer); - InfoLog->addDisplayer (ClientLogDisplayer); - WarningLog->addDisplayer (ClientLogDisplayer); - ErrorLog->addDisplayer (ClientLogDisplayer); - AssertLog->addDisplayer (ClientLogDisplayer); - - // Display the client version. - nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); - // Init the debug memory initDebugMemory(); diff --git a/code/ryzom/client/src/init.h b/code/ryzom/client/src/init.h index cdcdfb418..f179bf13d 100644 --- a/code/ryzom/client/src/init.h +++ b/code/ryzom/client/src/init.h @@ -27,6 +27,9 @@ namespace NLMISC class IProgressCallback; } +// Initialize the log +void initLog(); + // Initialize the application before login step void prelogInit(); From baa490ca9cba6b5241d0162e5c644b6f4ee5c265 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:06:20 +0100 Subject: [PATCH 163/184] Changed: Fix clang warnings --- code/nel/include/nel/gui/view_pointer.h | 14 +++++++------- code/ryzom/client/src/entity_cl.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/nel/include/nel/gui/view_pointer.h b/code/nel/include/nel/gui/view_pointer.h index 382135a92..1cc7a4b0c 100644 --- a/code/nel/include/nel/gui/view_pointer.h +++ b/code/nel/include/nel/gui/view_pointer.h @@ -71,13 +71,13 @@ namespace NLGUI private: /// Drawing helpers - virtual bool drawResizer(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawRotate(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawScale(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawColorPicker(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawLink(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawBrowse(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawPan(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } + virtual bool drawResizer(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawRotate(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawScale(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawColorPicker(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawLink(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawBrowse(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawPan(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } virtual bool drawCustom(CCtrlBase* pCB); protected: diff --git a/code/ryzom/client/src/entity_cl.h b/code/ryzom/client/src/entity_cl.h index fb04576bc..328ec1cc7 100644 --- a/code/ryzom/client/src/entity_cl.h +++ b/code/ryzom/client/src/entity_cl.h @@ -86,7 +86,7 @@ namespace NL3D class CEntitySheet; class CEntityCL; -class CAttackInfo; +struct CAttackInfo; class CItemSheet; From 97979c908310a4dd35a3173dc808a1f4c252d146 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:07:52 +0100 Subject: [PATCH 164/184] Changed: Don't need to use Windows functions with locale because the bug also occurs under Linux and OS X --- code/nel/include/nel/misc/i_xml.h | 3 -- code/nel/include/nel/misc/o_xml.h | 3 -- code/nel/src/misc/i_xml.cpp | 63 ++++++------------------------- code/nel/src/misc/o_xml.cpp | 22 ----------- 4 files changed, 12 insertions(+), 79 deletions(-) diff --git a/code/nel/include/nel/misc/i_xml.h b/code/nel/include/nel/misc/i_xml.h index 20ee8a7e0..b078eb7ee 100644 --- a/code/nel/include/nel/misc/i_xml.h +++ b/code/nel/include/nel/misc/i_xml.h @@ -236,9 +236,6 @@ private: // If not NULL, binary mode detected, use this stream in serials IStream *_BinaryStream; - - // System dependant structure for locale - void* _Locale; }; diff --git a/code/nel/include/nel/misc/o_xml.h b/code/nel/include/nel/misc/o_xml.h index 8346a6884..5bafacd60 100644 --- a/code/nel/include/nel/misc/o_xml.h +++ b/code/nel/include/nel/misc/o_xml.h @@ -181,9 +181,6 @@ private: // Error message std::string _ErrorString; - - // System dependant structure for locale - void* _Locale; }; diff --git a/code/nel/src/misc/i_xml.cpp b/code/nel/src/misc/i_xml.cpp index e722f3eee..fbd8f5d9f 100644 --- a/code/nel/src/misc/i_xml.cpp +++ b/code/nel/src/misc/i_xml.cpp @@ -24,11 +24,6 @@ // Include from libxml2 #include -#if defined(NL_OS_WINDOWS) && defined(NL_COMP_VC_VERSION) && NL_COMP_VC_VERSION >= 80 -#define USE_LOCALE_ATOF -#include -#endif - using namespace std; #define NLMISC_READ_BUFFER_SIZE 1024 @@ -46,26 +41,10 @@ const char SEPARATOR = ' '; // *************************************************************************** -#define readnumber(dest,thetype,digits,convfunc) \ +#define readnumber(dest,digits) \ string number_as_string; \ serialSeparatedBufferIn( number_as_string ); \ - dest = (thetype)convfunc( number_as_string.c_str() ); - -#ifdef USE_LOCALE_ATOF - -#define readnumberlocale(dest,thetype,digits,convfunc) \ - string number_as_string; \ - serialSeparatedBufferIn( number_as_string ); \ - dest = (thetype)convfunc( number_as_string.c_str(), (_locale_t)_Locale ); - -#define nl_atof _atof_l - -#else - -#define readnumberlocale(dest,thetype,digits,convfunc) readnumber(dest,thetype,digits,convfunc) -#define nl_atof atof - -#endif + NLMISC::fromString(number_as_string, dest); // *************************************************************************** @@ -91,13 +70,6 @@ CIXml::CIXml () : IStream (true /* Input mode */) _ErrorString = ""; _TryBinaryMode = false; _BinaryStream = NULL; - -#ifdef USE_LOCALE_ATOF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -113,13 +85,6 @@ CIXml::CIXml (bool tryBinaryMode) : IStream (true /* Input mode */) _ErrorString = ""; _TryBinaryMode = tryBinaryMode; _BinaryStream = NULL; - -#ifdef USE_LOCALE_ATOF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -128,10 +93,6 @@ CIXml::~CIXml () { // Release release (); - -#ifdef USE_LOCALE_ATOF - if (_Locale) _free_locale((_locale_t)_Locale); -#endif } // *************************************************************************** @@ -468,7 +429,7 @@ void CIXml::serial(uint8 &b) else { // Read the number - readnumber( b, uint8, 3, atoi ); + readnumber( b, 3 ); } } @@ -482,7 +443,7 @@ void CIXml::serial(sint8 &b) } else { - readnumber( b, sint8, 4, atoi ); + readnumber( b, 4 ); } } @@ -496,7 +457,7 @@ void CIXml::serial(uint16 &b) } else { - readnumber( b, uint16, 5, atoi ); + readnumber( b, 5 ); } } @@ -510,7 +471,7 @@ void CIXml::serial(sint16 &b) } else { - readnumber( b, sint16, 6, atoi ); + readnumber( b, 6 ); } } @@ -529,7 +490,7 @@ void CIXml::serial(uint32 &b) } else { - readnumber( b, uint32, 10, atoui ); + readnumber( b, 10 ); } } @@ -543,7 +504,7 @@ void CIXml::serial(sint32 &b) } else { - readnumber( b, sint32, 11, atoi ); + readnumber( b, 11 ); } } @@ -557,7 +518,7 @@ void CIXml::serial(uint64 &b) } else { - readnumber( b, uint64, 20, atoiInt64 ); + readnumber( b, 20 ); } } @@ -571,7 +532,7 @@ void CIXml::serial(sint64 &b) } else { - readnumber( b, sint64, 20, atoiInt64 ); + readnumber( b, 20 ); } } @@ -585,7 +546,7 @@ void CIXml::serial(float &b) } else { - readnumberlocale( b, float, 128, nl_atof ); + readnumber( b, 128 ); } } @@ -599,7 +560,7 @@ void CIXml::serial(double &b) } else { - readnumberlocale( b, double, 128, nl_atof ); + readnumber( b, 128 ); } } diff --git a/code/nel/src/misc/o_xml.cpp b/code/nel/src/misc/o_xml.cpp index d07362904..6df48ef80 100644 --- a/code/nel/src/misc/o_xml.cpp +++ b/code/nel/src/misc/o_xml.cpp @@ -43,22 +43,11 @@ const char SEPARATOR = ' '; // *************************************************************************** -#ifdef USE_LOCALE_SPRINTF - -#define writenumber(src,format,digits) \ - char number_as_cstring [digits+1]; \ - _sprintf_l( number_as_cstring, format, (_locale_t)_Locale, src ); \ - serialSeparatedBufferOut( number_as_cstring ); - -#else - #define writenumber(src,format,digits) \ char number_as_cstring [digits+1]; \ sprintf( number_as_cstring, format, src ); \ serialSeparatedBufferOut( number_as_cstring ); -#endif - // *************************************************************************** // XML callbacks // *************************************************************************** @@ -149,13 +138,6 @@ COXml::COXml () : IStream (false /* Output mode */) // Push begin _PushBegin = false; - -#ifdef USE_LOCALE_SPRINTF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -215,10 +197,6 @@ COXml::~COXml () { // Flush document to the internal stream flush (); - -#ifdef USE_LOCALE_SPRINTF - if (_Locale) _free_locale((_locale_t)_Locale); -#endif } // *************************************************************************** From b342f11949022b887ddc489e95801965159cbac7 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:08:43 +0100 Subject: [PATCH 165/184] Fixed: Set numeric locale in CApplicationContext --- code/nel/src/misc/app_context.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/nel/src/misc/app_context.cpp b/code/nel/src/misc/app_context.cpp index 2383fcda5..5206681f9 100644 --- a/code/nel/src/misc/app_context.cpp +++ b/code/nel/src/misc/app_context.cpp @@ -19,6 +19,8 @@ #include "nel/misc/dynloadlib.h" #include "nel/misc/command.h" +#include + #ifdef DEBUG_NEW #define new DEBUG_NEW #endif @@ -85,6 +87,9 @@ void INelContext::contextReady() _NelContext = this; *(_getInstance()) = this; + // set numeric locale to C to avoid the use of decimal separators different of a dot + char *locale = setlocale(LC_NUMERIC, "C"); + // register any pending thinks // register local instance counter in the global instance counter manager From 03715a64e0fc5c7c6f9ebfb8a25b2454ddd28011 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:09:26 +0100 Subject: [PATCH 166/184] Changed: Check if LC_NUMERIC is correct before loading or saving config files --- code/nel/src/misc/config_file/config_file.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/code/nel/src/misc/config_file/config_file.cpp b/code/nel/src/misc/config_file/config_file.cpp index 093992487..bab1c123b 100644 --- a/code/nel/src/misc/config_file/config_file.cpp +++ b/code/nel/src/misc/config_file/config_file.cpp @@ -316,6 +316,13 @@ CConfigFile::~CConfigFile () void CConfigFile::load (const string &fileName, bool lookupPaths ) { + char *locale = setlocale(LC_NUMERIC, NULL); + + if (!locale || strcmp(locale, "C")) + { + nlerror("Numeric locale not defined to C, an external library possibly redefined it!"); + } + if(fileName.empty()) { nlwarning ("CF: Can't load a empty file name configfile"); @@ -597,8 +604,12 @@ bool CConfigFile::exists (const std::string &varName) void CConfigFile::save () const { - // Avoid any problem, Force Locale to default - setlocale(LC_ALL, "C"); + char *locale = setlocale(LC_NUMERIC, NULL); + + if (!locale || strcmp(locale, "C")) + { + nlerror("Numeric locale not defined to C, an external library possibly redefined it!"); + } FILE *fp = nlfopen (getFilename(), "w"); if (fp == NULL) From bde61427a506b17b4cf017d32dabfd44bcf57ba2 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:09:43 +0100 Subject: [PATCH 167/184] Changed: Removed wrong check --- code/nel/src/misc/i18n.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index fc4cbf341..e230eab2d 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -329,7 +329,7 @@ std::string CI18N::getSystemLanguageCode () #ifdef NL_OS_WINDOWS // use user locale under Windows (since Vista) - if (_SystemLanguageCode.empty() && false) + if (_SystemLanguageCode.empty()) { // GetUserDefaultLocaleName prototype typedef int (WINAPI* GetUserDefaultLocaleNamePtr)(LPWSTR lpLocaleName, int cchLocaleName); From f728a518a144671e807e69bc23ec64fa91e2bdb5 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:10:19 +0100 Subject: [PATCH 168/184] Fixed: Move setrlimit after initializing logs --- code/ryzom/client/src/client.cpp | 26 +------------------ code/ryzom/client/src/init.cpp | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 1e140d3cc..dcce43cc0 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -30,13 +30,6 @@ #include #endif -#ifdef NL_OS_MAC -#include -#include -#include "nel/misc/dynloadlib.h" -#include "app_bundle_utils.h" -#endif - #include "nel/misc/debug.h" #include "nel/misc/command.h" #include "nel/net/tcp_sock.h" @@ -226,23 +219,6 @@ int main(int argc, char **argv) } #endif // TEST_CRASH_COUNTER -#ifdef NL_OS_MAC - struct rlimit rlp, rlp2, rlp3; - - getrlimit(RLIMIT_NOFILE, &rlp); - - rlp2.rlim_cur = 1024; - rlp2.rlim_max = rlp.rlim_max; - setrlimit(RLIMIT_NOFILE, &rlp2); - - getrlimit(RLIMIT_NOFILE, &rlp3); - nlinfo("rlimit before %d %d\n", rlp.rlim_cur, rlp.rlim_max); - nlinfo("rlimit after %d %d\n", rlp3.rlim_cur, rlp3.rlim_max); - - // add the bundle's plugins path as library search path (for nel drivers) - CLibrary::addLibPath(getAppBundlePath() + "/Contents/PlugIns/nel/"); -#endif - #if defined(NL_OS_WINDOWS) #ifdef TEST_CRASH_COUNTER @@ -289,11 +265,11 @@ int main(int argc, char **argv) #else // TODO for Linux : splashscreen +#endif // initialize log initLog(); -#endif // initialize patch manager and set the ryzom full path, before it's used CPatchManager *pPM = CPatchManager::getInstance(); diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index 18c8ba022..a55a09db9 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -105,6 +105,12 @@ extern HINSTANCE HInstance; extern HWND SlashScreen; #endif // NL_OS_WINDOWS +#ifdef NL_OS_MAC +#include +#include +#include "nel/misc/dynloadlib.h" +#endif + #include "app_bundle_utils.h" #include @@ -816,6 +822,43 @@ void initLog() // Display the client version. nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); + +#ifdef NL_OS_MAC + struct rlimit rlp, rlp2, rlp3; + + getrlimit(RLIMIT_NOFILE, &rlp); + + rlim_t value = 1024; + + rlp2.rlim_cur = std::min(value, rlp.rlim_max); + rlp2.rlim_max = rlp.rlim_max; + + if (setrlimit(RLIMIT_NOFILE, &rlp2)) + { + if (errno == EINVAL) + { + nlwarning("Unable to set rlimit with error: the specified limit is invalid"); + } + else if (errno == EPERM) + { + nlwarning("Unable to set rlimit with error: the limit specified would have raised the maximum limit value and the caller is not the super-user"); + } + else + { + nlwarning("Unable to set rlimit with error: unknown error"); + } + } + + getrlimit(RLIMIT_NOFILE, &rlp3); + nlinfo("rlimit before %llu %llu", (uint64)rlp.rlim_cur, (uint64)rlp.rlim_max); + nlinfo("rlimit after %llu %llu", (uint64)rlp3.rlim_cur, (uint64)rlp3.rlim_max); + + // add the bundle's plugins path as library search path (for nel drivers) + if (CFile::isExists(getAppBundlePath() + "/Contents/PlugIns/nel")) + { + CLibrary::addLibPath(getAppBundlePath() + "/Contents/PlugIns/nel/"); + } +#endif } //--------------------------------------------------- From 2a53238ba3296610e41072b2e49fe1990c87e532 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:11:03 +0100 Subject: [PATCH 169/184] Changed: Use named arguments in uiFilterMenuDynamic translation --- .../ryzom/client/src/interface_v3/people_interraction.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/src/interface_v3/people_interraction.cpp b/code/ryzom/client/src/interface_v3/people_interraction.cpp index 62e6c0990..71cb5f7ec 100644 --- a/code/ryzom/client/src/interface_v3/people_interraction.cpp +++ b/code/ryzom/client/src/interface_v3/people_interraction.cpp @@ -2635,7 +2635,13 @@ public: { ucstring title; STRING_MANAGER::CStringManagerClient::instance()->getDynString(textId, title); - pMenu->addLineAtIndex(5 + insertion_index, title+" @{T8}/"+s, "chat_target_selected", "dyn"+s, "dyn"+s); + + // replace dynamic channel name and shortcut + ucstring res = CI18N::get("uiFilterMenuDynamic"); + strFindReplace(res, "%channel", title); + strFindReplace(res, "%shortcut", s); + + pMenu->addLineAtIndex(5 + insertion_index, res, "chat_target_selected", "dyn"+s, "dyn"+s); insertion_index++; } } From 45f2100a03a08eac051b69b9ea9dda661f884945 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:20:28 +0100 Subject: [PATCH 170/184] Fixed: Use language defined in Ryzom properties from Steam --- code/ryzom/client/src/steam_client.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/ryzom/client/src/steam_client.cpp b/code/ryzom/client/src/steam_client.cpp index 03ed261d0..6e9521eea 100644 --- a/code/ryzom/client/src/steam_client.cpp +++ b/code/ryzom/client/src/steam_client.cpp @@ -29,6 +29,7 @@ // prototypes definitions for Steam API functions we'll call typedef bool (__cdecl *SteamAPI_InitFuncPtr)(); typedef void (__cdecl *SteamAPI_ShutdownFuncPtr)(); +typedef ISteamApps* (__cdecl *SteamAppsFuncPtr)(); typedef ISteamClient* (__cdecl *SteamClientFuncPtr)(); typedef ISteamFriends* (__cdecl *SteamFriendsFuncPtr)(); typedef ISteamUser* (__cdecl *SteamUserFuncPtr)(); @@ -45,6 +46,7 @@ if (nl##symbol == NULL) return false NL_DECLARE_SYMBOL(SteamAPI_Init); NL_DECLARE_SYMBOL(SteamAPI_Shutdown); +NL_DECLARE_SYMBOL(SteamApps); NL_DECLARE_SYMBOL(SteamClient); NL_DECLARE_SYMBOL(SteamFriends); NL_DECLARE_SYMBOL(SteamUser); @@ -330,6 +332,7 @@ bool CSteamClient::init() _Initialized = true; // load more Steam functions + NL_LOAD_SYMBOL(SteamApps); NL_LOAD_SYMBOL(SteamClient); NL_LOAD_SYMBOL(SteamFriends); NL_LOAD_SYMBOL(SteamUser); @@ -339,10 +342,14 @@ bool CSteamClient::init() nlSteamClient()->SetWarningMessageHook(SteamWarningMessageHook); bool loggedOn = nlSteamUser()->BLoggedOn(); + const char *lang = nlSteamApps()->GetCurrentGameLanguage(); nlinfo("Steam AppID: %u", nlSteamUtils()->GetAppID()); nlinfo("Steam login: %s", nlSteamFriends()->GetPersonaName()); nlinfo("Steam user logged: %s", loggedOn ? "yes":"no"); + nlinfo("Steam language: %s", lang); + + NLMISC::CI18N::setSystemLanguageCode(lang); // don't need to continue, if not connected if (!loggedOn) return false; From ba71497344f2c44d7263b03bc15f1ac17924efa8 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:21:01 +0100 Subject: [PATCH 171/184] Changed: Load Steam DLL just after initializing logs and before loading config --- code/ryzom/client/src/client.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 6abe442d3..9c504302c 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -274,6 +274,12 @@ int main(int argc, char **argv) // initialize log initLog(); +#ifdef RZ_USE_STEAM + CSteamClient steamClient; + + if (steamClient.init()) + LoginCustomParameters = "&steam_auth_session_ticket=" + steamClient.getAuthSessionTicket(); +#endif // initialize patch manager and set the ryzom full path, before it's used CPatchManager *pPM = CPatchManager::getInstance(); @@ -286,13 +292,6 @@ int main(int argc, char **argv) prelogInit(); RYZOM_CATCH("Pre-Login Init") -#ifdef RZ_USE_STEAM - CSteamClient steamClient; - - if (steamClient.init()) - LoginCustomParameters = "&steam_auth_session_ticket=" + steamClient.getAuthSessionTicket(); -#endif - // Log the client and choose from shard RYZOM_TRY("Login") if (!ClientCfg.Local && (ClientCfg.TestBrowser || ClientCfg.FSHost.empty())) From 5caef15f948badd465682ed0510658c6a3d51e65 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:26:43 +0100 Subject: [PATCH 172/184] Fixed: Compilation --- code/nel/src/misc/i18n.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index e230eab2d..b64116c1c 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -382,11 +382,9 @@ std::string CI18N::getSystemLanguageCode () } } #else - std::string lang = NLMISC::toLower(lang); - // only keep 2 first characters if (lang.size() > 1) - _SystemLanguageCode = lang.substr(0, 2); + _SystemLanguageCode = NLMISC::toLower(lang).substr(0, 2); #endif } } From 78c7a925c784e24ea280dfb89dd6dd5911998203 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:26:58 +0100 Subject: [PATCH 173/184] Changed: Minor changes --- code/ryzom/common/src/game_share/mirrored_data_set_inline.h | 2 +- code/ryzom/tools/client/client_patcher/main.cpp | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/ryzom/common/src/game_share/mirrored_data_set_inline.h b/code/ryzom/common/src/game_share/mirrored_data_set_inline.h index 50ab076b7..69607b7dd 100644 --- a/code/ryzom/common/src/game_share/mirrored_data_set_inline.h +++ b/code/ryzom/common/src/game_share/mirrored_data_set_inline.h @@ -205,7 +205,7 @@ inline bool CMirroredDataSet::propIsList( TPropertyIndex propIndex ) const * Display the values of one property for all entities */ template -inline void CMirroredDataSet::displayPropValues( TPropertyIndex propIndex, T* pt, NLMISC::CLog& log ) const +inline void CMirroredDataSet::displayPropValues( TPropertyIndex propIndex, T* /* pt */, NLMISC::CLog& log ) const { // std::stringstream ss; // ss << "Mirror property " << propIndex << ":" << endl; diff --git a/code/ryzom/tools/client/client_patcher/main.cpp b/code/ryzom/tools/client/client_patcher/main.cpp index f03943345..08be87fbe 100644 --- a/code/ryzom/tools/client/client_patcher/main.cpp +++ b/code/ryzom/tools/client/client_patcher/main.cpp @@ -5,8 +5,6 @@ #include "nel/misc/cmd_args.h" -#include - #ifdef NL_OS_WINDOWS #include #endif From 5b892c1ed4c222982dc85479abca211f9ce88fb0 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 15:34:00 +0100 Subject: [PATCH 174/184] Fixed: Define _DARWIN_UNLIMITED_STREAMS to fix setrlimit under OS X --- code/CMakeModules/nel.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index 1d19212c9..3995dcbf8 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -871,7 +871,7 @@ MACRO(NL_SETUP_BUILD) ENDIF(ANDROID) IF(APPLE) - ADD_PLATFORM_FLAGS("-gdwarf-2") + ADD_PLATFORM_FLAGS("-gdwarf-2 -D_DARWIN_UNLIMITED_STREAMS") ENDIF(APPLE) # Fix "relocation R_X86_64_32 against.." error on x64 platforms From 82985016cf581a211d45fbfe20395853e15c1be2 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 16:21:06 +0100 Subject: [PATCH 175/184] Fixed: Use nlfopen in tools and servers --- code/nel/include/nel/pipeline/tool_logger.h | 5 ++- code/nel/samples/3d/cluster_viewer/main.cpp | 3 +- code/nel/samples/net/service/chat_service.cpp | 2 +- code/nel/samples/net/udp/bench_service.cpp | 7 ++-- code/nel/samples/net/udp/client.cpp | 5 ++- code/nel/tools/3d/file_info/main.cpp | 5 +-- code/nel/tools/3d/lightmap_optimizer/main.cpp | 3 +- .../nel_export/nel_export_lightmap_v2.cpp | 9 +++-- .../3d/shapes_exporter/shapes_exporter.cpp | 5 ++- code/nel/tools/3d/tga_2_dds/tga2dds.cpp | 5 ++- code/nel/tools/3d/zone_welder/zone_welder.cpp | 3 +- code/nel/tools/3d/zviewer/zviewer.cpp | 5 ++- .../tools/georges/georges2csv/georges2csv.cpp | 6 ++- .../tools/misc/data_mirror/data_mirrorDlg.cpp | 30 ++++++++++----- code/nel/tools/misc/disp_sheet_id/main.cpp | 3 +- .../misc/make_sheet_id/make_sheet_id.cpp | 5 ++- code/nel/tools/misc/xml_packer/xml_packer.cpp | 15 ++++---- .../admin_executor_service.cpp | 8 ++-- .../nel_launcher_windows_ext2/patch.cpp | 3 +- .../server/src/admin_modules/aes_module.cpp | 15 ++++---- .../server/src/admin_modules/as_module.cpp | 5 ++- .../server/src/ai_data_service/pacs_scan.cpp | 7 ++-- .../src/ai_service/ai_script_data_manager.cpp | 2 +- .../src/entities_game_service/deposit.cpp | 3 +- .../game_item_manager/game_item.cpp | 3 +- .../game_item_manager/game_item_manager.cpp | 2 +- .../entities_game_service/harvest_source.cpp | 4 +- .../phrase_manager/fg_prospection_phrase.cpp | 4 +- .../player_manager/cdb_synchronised.cpp | 2 +- .../player_manager/player.cpp | 4 +- .../cl_contest_logger.cpp | 2 +- .../rr_repository_reciever.cpp | 2 +- .../src/log_analyser_service/commands.cpp | 2 +- .../src/logger_service/logger_service.cpp | 3 +- .../src/patchman_service/file_manager.cpp | 3 +- .../rr_repository_reciever.cpp | 2 +- .../spt_server_patch_terminal.cpp | 5 ++- .../ryzom/server/src/pd_lib/pd_server_utils.h | 3 +- .../src/pd_support_service/daily_commands.cpp | 3 +- .../pd_support_service/hourly_commands.cpp | 3 +- .../testing_tool_service.cpp | 3 +- .../mission_compiler_feDlg.cpp | 5 ++- .../mission_compiler_lib/mission_compiler.cpp | 3 +- .../tools/leveldesign/mp_generator/main.cpp | 3 +- .../tools/leveldesign/mp_generator/utils.h | 4 +- .../named_items_2_csv/named_items_2_csv.cpp | 12 +++--- .../primitive_id_assignator.cpp | 3 +- .../tools/leveldesign/uni_conv/uni_conv.cpp | 3 +- .../world_editor/world_editor/main_frm.cpp | 3 +- code/ryzom/tools/occ2huff/occ2huff.cpp | 2 +- code/ryzom/tools/pd_parser/templatizer.h | 2 +- .../phrase_generator/phrase_generator.cpp | 37 ++++++++++--------- .../sheet_random_generator.cpp | 5 ++- .../sheet_random_generator/srg_utilities.h | 17 +++++---- code/ryzom/tools/translation_tools/main.cpp | 3 +- code/ryzom/tools/xml_packer/xml_packer.cpp | 13 ++++--- .../mission_compiler/validation_file.cpp | 3 +- .../increment_version/increment_version.cpp | 3 +- .../path_content_diff/path_content_diff.cpp | 3 +- 59 files changed, 193 insertions(+), 140 deletions(-) diff --git a/code/nel/include/nel/pipeline/tool_logger.h b/code/nel/include/nel/pipeline/tool_logger.h index 55b3b2455..714f46d2d 100644 --- a/code/nel/include/nel/pipeline/tool_logger.h +++ b/code/nel/include/nel/pipeline/tool_logger.h @@ -39,6 +39,7 @@ // NeL includes #include #include +#include // Project includes @@ -102,7 +103,7 @@ public: { releaseError(); - m_ErrorLog = fopen(errorLog.c_str(), "wt"); + m_ErrorLog = nlfopen(errorLog, "wt"); fwrite(s_ErrorHeader.c_str(), 1, s_ErrorHeader.length(), m_ErrorLog); fwrite("\n", 1, 1, m_ErrorLog); fflush(m_ErrorLog); @@ -113,7 +114,7 @@ public: { releaseDepend(); - m_DependLog = fopen(dependLog.c_str(), "wt"); + m_DependLog = nlfopen(dependLog, "wt"); fwrite(s_DependHeader.c_str(), 1, s_DependHeader.length(), m_DependLog); fwrite("\n", 1, 1, m_DependLog); // fflush(m_DependLog); diff --git a/code/nel/samples/3d/cluster_viewer/main.cpp b/code/nel/samples/3d/cluster_viewer/main.cpp index d7956adbe..ef05d557e 100644 --- a/code/nel/samples/3d/cluster_viewer/main.cpp +++ b/code/nel/samples/3d/cluster_viewer/main.cpp @@ -23,6 +23,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include "nel/misc/bitmap.h" #include "nel/misc/events.h" @@ -115,7 +116,7 @@ void LoadSceneScript (const char *ScriptName, CScene* pScene, vector &D float posx, posy, posz; float roti, rotj, rotk; - FILE *f = fopen (CPath::lookup(ScriptName).c_str(),"rb"); + FILE *f = nlfopen (CPath::lookup(ScriptName), "rb"); fseek (f, 0, SEEK_END); uint file_size = ftell (f); fseek (f, 0, SEEK_SET); diff --git a/code/nel/samples/net/service/chat_service.cpp b/code/nel/samples/net/service/chat_service.cpp index 36b438e44..c2efc71f4 100644 --- a/code/nel/samples/net/service/chat_service.cpp +++ b/code/nel/samples/net/service/chat_service.cpp @@ -60,7 +60,7 @@ public: nlinfo ("init() was called"); -// fp = fopen (NLMISC::CFile::findNewFile("stat.csv").c_str(), "wt"); +// fp = nlfopen (NLMISC::CFile::findNewFile("stat.csv"), "wt"); } bool update () diff --git a/code/nel/samples/net/udp/bench_service.cpp b/code/nel/samples/net/udp/bench_service.cpp index 4b75a6b93..22f570260 100644 --- a/code/nel/samples/net/udp/bench_service.cpp +++ b/code/nel/samples/net/udp/bench_service.cpp @@ -33,6 +33,7 @@ #endif +#include "nel/misc/common.h" #include "nel/misc/debug.h" #include "nel/misc/mem_stream.h" #include "nel/misc/path.h" @@ -276,11 +277,11 @@ void CClient::updatePong (sint64 pingTime, sint64 pongTime, uint32 pongNumber, u } string fn = StatPathName + ConnectionName + "_" + ha + "_" + getDate() + ".pong"; - FILE *fp = fopen (fn.c_str(), "rt"); + FILE *fp = nlfopen (fn, "rt"); if (fp == NULL) { // new file, add the header - FILE *fp = fopen (fn.c_str(), "wt"); + FILE *fp = nlfopen (fn, "wt"); if (fp != NULL) { fprintf (fp, "#%s\t%s\t%s\t%s\n", "PingTime", "PongTime", "Delta", "PingNumber"); @@ -292,7 +293,7 @@ void CClient::updatePong (sint64 pingTime, sint64 pongTime, uint32 pongNumber, u fclose (fp); } - fp = fopen (fn.c_str(), "at"); + fp = nlfopen (fn, "at"); if (fp == NULL) { nlwarning ("Can't open pong file name '%s'", fn.c_str()); diff --git a/code/nel/samples/net/udp/client.cpp b/code/nel/samples/net/udp/client.cpp index 90de35bb2..0cdb98c53 100644 --- a/code/nel/samples/net/udp/client.cpp +++ b/code/nel/samples/net/udp/client.cpp @@ -21,6 +21,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/debug.h" +#include "nel/misc/common.h" #include "nel/misc/mem_stream.h" #include "nel/misc/time_nl.h" #include "nel/misc/config_file.h" @@ -112,7 +113,7 @@ void exit (const string &reason) void createConfigFile() { - FILE *fp = fopen ("client.cfg", "wt"); + FILE *fp = nlfopen ("client.cfg", "wt"); if (fp == NULL) { InfoLog->displayRawNL ("Can't create client.cfg"); @@ -159,7 +160,7 @@ void checkConnectionName () void loadConfigFile () { - FILE *fp = fopen ("client.cfg", "rt"); + FILE *fp = nlfopen ("client.cfg", "rt"); if (fp == NULL) { createConfigFile(); diff --git a/code/nel/tools/3d/file_info/main.cpp b/code/nel/tools/3d/file_info/main.cpp index b781e43fe..e8c6e072b 100644 --- a/code/nel/tools/3d/file_info/main.cpp +++ b/code/nel/tools/3d/file_info/main.cpp @@ -17,6 +17,7 @@ #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/3d/scene_group.h" #include "nel/3d/zone.h" #include "nel/3d/skeleton_shape.h" @@ -660,9 +661,7 @@ int main(int argc, const char *argv[]) options.insert (argv[i]); // Open log - FILE *logStream; - logStream= fopen(std::string(getLogDirectory() + "file_info.log").c_str(), "wt"); - + FILE *logStream = nlfopen(getLogDirectory() + "file_info.log", "wt"); // parse dir or file ?? const char *fileName= argv[1]; diff --git a/code/nel/tools/3d/lightmap_optimizer/main.cpp b/code/nel/tools/3d/lightmap_optimizer/main.cpp index f7e999799..2e1f0f47c 100644 --- a/code/nel/tools/3d/lightmap_optimizer/main.cpp +++ b/code/nel/tools/3d/lightmap_optimizer/main.cpp @@ -998,7 +998,8 @@ int main(int nNbArg, char **ppArgs) ChDir (sExeDir); // out a text file, with list of - FILE *out= fopen(ppArgs[4], "wt"); + FILE *out = nlfopen(ppArgs[4], "wt"); + if(!out) { outString(string("ERROR: cannot save ")+ppArgs[4]); diff --git a/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp b/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp index b79e4884f..f6cd6b80d 100644 --- a/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp +++ b/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp @@ -8,6 +8,7 @@ #include "nel/misc/time_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/triangle.h" #include "nel/misc/bsphere.h" #include "3d/quad_tree.h" @@ -3121,8 +3122,8 @@ void CNelExport::deleteLM(INode& ZeNode) sprintf( tmp, "%d", i ); sSaveName += tmp; sSaveName += ".tga"; - FILE *file; - if( file = fopen(sSaveName.c_str(),"rb") ) + FILE *file = nlfopen(sSaveName, "rb") + if (file) { fclose( file ); DeleteFile( sSaveName.c_str() ); @@ -3521,8 +3522,8 @@ bool CNelExport::exportScene(std::vector& vectNode) sprintf( tmp, "%d", i ); sSaveName += tmp; sSaveName += ".tga"; - FILE *file; - if( file = fopen(sSaveName.c_str(),"rb") ) + FILE *file = nlfopen(sSaveName, "rb"); + if (file) { fclose( file ); DeleteFile( sSaveName.c_str() ); diff --git a/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp b/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp index 0c4d08c4a..a63fcc969 100644 --- a/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp +++ b/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp @@ -15,6 +15,7 @@ // along with this program. If not, see . #include +#include #include #include #include @@ -851,7 +852,7 @@ bool ShapesExporter::renderPS(UInstance &entity, const string &output_path, doub { if(step > 0) { - FILE *fp = fopen(string(CPath::standardizePath(output_path)+"nb_steps.txt").c_str(), "w"); + FILE *fp = nlfopen(CPath::standardizePath(output_path)+"nb_steps.txt", "w"); if(fp) { fprintf(fp, "%d", step); fclose(fp); } } nlinfo("PS duration %f after %f with nothing with %d steps, dt %f", duration, startTime, step, deltaTime); @@ -873,7 +874,7 @@ bool ShapesExporter::createThumbnail(const string &filename, const string &path) uint selectedFrame = 0; if(CFile::getExtension(filename) == "ps") { - FILE *fp = fopen(string(CPath::standardizePath(output_path)+"nb_steps.txt").c_str(), "r"); + FILE *fp = nlfopen(CPath::standardizePath(output_path)+"nb_steps.txt", "r"); if(fp) { char str[100]; diff --git a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp index 7f3275694..5e40a4cca 100644 --- a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp +++ b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp @@ -18,6 +18,7 @@ #include #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/bitmap.h" #include "nel/misc/path.h" #include "nel/misc/debug.h" @@ -49,7 +50,7 @@ std::string getOutputFileName(const std::string &inputFileName); uint8 getType(const std::string &sFileNameDest) { uint32 dds; - FILE *f = fopen(sFileNameDest.c_str(),"rb"); + FILE *f = nlfopen(sFileNameDest, "rb"); if(f==NULL) { return NOT_DEFINED; @@ -105,7 +106,7 @@ uint8 getType(const std::string &sFileNameDest) bool sameType(const std::string &sFileNameDest, uint8 &algo, bool wantMipMap) { uint32 dds; - FILE *f = fopen(sFileNameDest.c_str(),"rb"); + FILE *f = nlfopen(sFileNameDest, "rb"); if(f==NULL) { return false; diff --git a/code/nel/tools/3d/zone_welder/zone_welder.cpp b/code/nel/tools/3d/zone_welder/zone_welder.cpp index f30a4b38b..7ca1d822a 100644 --- a/code/nel/tools/3d/zone_welder/zone_welder.cpp +++ b/code/nel/tools/3d/zone_welder/zone_welder.cpp @@ -20,6 +20,7 @@ #include #include "nel/misc/types_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/3d/quad_tree.h" #include "nel/3d/zone.h" #include "nel/3d/landscape.h" @@ -978,7 +979,7 @@ int main(sint argc, char **argv) } #if WELD_LOG - fdbg = fopen("log.txt","wt"); + fdbg = nlfopen("log.txt","wt"); fprintf(fdbg,"Center zone : %s\n",argv[1]); #endif diff --git a/code/nel/tools/3d/zviewer/zviewer.cpp b/code/nel/tools/3d/zviewer/zviewer.cpp index 9d64badb1..c5f4419a4 100644 --- a/code/nel/tools/3d/zviewer/zviewer.cpp +++ b/code/nel/tools/3d/zviewer/zviewer.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -743,7 +744,7 @@ void displayZones() \****************************************************************/ void writeConfigFile(const char * configFileName) { - FILE * f = fopen(configFileName,"wt"); + FILE * f = nlfopen(configFileName, "wt"); if(f==NULL) { @@ -801,7 +802,7 @@ void writeConfigFile(const char * configFileName) \****************************************************************/ void initViewerConfig(const char * configFileName) { - FILE * f = fopen(configFileName,"rt"); + FILE *f = nlfopen(configFileName, "rt"); if(f==NULL) { nlwarning("'%s' not found, default values used", configFileName); diff --git a/code/nel/tools/georges/georges2csv/georges2csv.cpp b/code/nel/tools/georges/georges2csv/georges2csv.cpp index 018a6abff..339479bfe 100644 --- a/code/nel/tools/georges/georges2csv/georges2csv.cpp +++ b/code/nel/tools/georges/georges2csv/georges2csv.cpp @@ -32,6 +32,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" //#include "nel/memory/memory_manager.h" #include "nel/misc/i18n.h" @@ -685,12 +686,13 @@ void convertCsvFile( const string &file, bool generate, const string& sheetType { const uint BUFFER_SIZE = 16*1024; char lineBuffer[BUFFER_SIZE]; - FILE *s; vector fields; vector args; - if ((s = fopen(file.c_str(), "r")) == NULL) + FILE *s = nlfopen(file, "r"); + + if (s == NULL) { fprintf(stderr, "Can't find file %s to convert\n", file.c_str()); return; diff --git a/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp b/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp index 100bd4e9c..340655e36 100644 --- a/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp +++ b/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp @@ -20,6 +20,7 @@ #include "progress_dialog.h" #include #include "nel/misc/file.h" +#include "nel/misc/common.h" using namespace std; using namespace NLMISC; @@ -468,9 +469,13 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Modified file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp ,"at"); + + if (f) + { + fprintf(f,"Modified file : %s\n", dest.c_str()); + fclose(f); + } } } @@ -503,9 +508,12 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Added file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp, "at"); + if (f) + { + fprintf(f,"Added file : %s\n", dest.c_str()); + fclose(f); + } } } @@ -535,9 +543,13 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Removed file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp, "at"); + + if (f) + { + fprintf(f,"Removed file : %s\n", dest.c_str()); + fclose(f); + } } } } diff --git a/code/nel/tools/misc/disp_sheet_id/main.cpp b/code/nel/tools/misc/disp_sheet_id/main.cpp index 7445023ce..c7fe6f782 100644 --- a/code/nel/tools/misc/disp_sheet_id/main.cpp +++ b/code/nel/tools/misc/disp_sheet_id/main.cpp @@ -40,6 +40,7 @@ int _getch() #include "nel/misc/path.h" #include "nel/misc/sheet_id.h" +#include "nel/misc/common.h" #include @@ -86,7 +87,7 @@ int main(int argc, const char *argv[]) sort(sheets.begin(), sheets.end(), Pred); // display. - FILE *out= fopen("sheetid.txt", "wb"); + FILE *out= nlfopen("sheetid.txt", "wb"); if(out) { for(uint i=0;i #include +#include #include #include @@ -567,9 +568,9 @@ int main( int argc, char ** argv ) // dump the list of extensions in a txt file if( dumpExtensions ) { - FILE * extListOutput; string extListFileName = outputPath + "sheet_ext.txt"; - if( !(extListOutput = fopen(extListFileName.c_str(),"w")) ) + FILE *extListOutput = nlfopen(extListFileName, "w"); + if (!extListOutput) { nlwarning("Can't open output file %s",extListFileName.c_str()); return 1; diff --git a/code/nel/tools/misc/xml_packer/xml_packer.cpp b/code/nel/tools/misc/xml_packer/xml_packer.cpp index 2d7695de4..7f7417020 100644 --- a/code/nel/tools/misc/xml_packer/xml_packer.cpp +++ b/code/nel/tools/misc/xml_packer/xml_packer.cpp @@ -17,6 +17,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/app_context.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/misc/algo.h" @@ -228,7 +229,7 @@ int main(int argc, char *argv[]) // read the index file set fileInIndex; char lineBuffer[1024]; - FILE *fp = fopen(indexFileName.c_str(), "rt"); + FILE *fp = nlfopen(indexFileName, "rt"); while (fgets(lineBuffer, 1024, fp)) fileInIndex.insert(CSString(lineBuffer).strip()); @@ -263,8 +264,8 @@ int main(int argc, char *argv[]) if (!validFiles.empty() && needRepack) { // open the pack file - // FILE *fp = fopen(filename.c_str(), "wt"); - FILE *fp = fopen(packFileName.c_str(), "wt"); + // FILE *fp = nlfopen(filename, "wt"); + FILE *fp = nlfopen(packFileName, "wt"); fprintf(fp, "\n"); @@ -275,7 +276,7 @@ int main(int argc, char *argv[]) printf("Adding file '%s'...\n", CFile::getFilename(subFileName).c_str()); fprintf(fp, " \n", CFile::getFilename(subFileName).c_str()); - FILE *subFp = fopen(subFileName.c_str(), "rt"); + FILE *subFp = nlfopen(subFileName, "rt"); nlassert(subFp != NULL); char buffer[MaxLineSize]; char *result; @@ -304,7 +305,7 @@ int main(int argc, char *argv[]) fclose(fp); // write the disposable index file used by pack to check for erased file - fp = fopen(indexFileName.c_str(), "wt"); + fp = nlfopen(indexFileName, "wt"); for (uint i=0; i") char str[1024]; - FILE *fp = fopen(fn.c_str(), "rt"); + FILE *fp = nlfopen(fn, "rt"); if (fp != NULL) { while (true) @@ -1654,7 +1654,7 @@ NLMISC_COMMAND(aesSystem, "Execute a system() call", "") log.displayNL("No stdout"); } - fp = fopen(fne.c_str(), "rt"); + fp = nlfopen(fne, "rt"); if (fp != NULL) { while (true) diff --git a/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp b/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp index a60f129fa..b55c8cdff 100644 --- a/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp +++ b/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp @@ -27,6 +27,7 @@ #endif #include "nel/misc/debug.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include "nel/misc/thread.h" @@ -586,7 +587,7 @@ private: string dest = filename.substr(0, filename.size ()-4); setRWAccess(dest); if(VerboseLog) nlinfo("Calling fopen('%s','wb')", dest.c_str()); - FILE *fp = fopen (dest.c_str(), "wb"); + FILE *fp = nlfopen (dest, "wb"); if (fp == NULL) { string err = toString("Can't open file '%s' : code=%d %s, (error code 32)", dest.c_str(), errno, strerror(errno)); diff --git a/code/ryzom/server/src/admin_modules/aes_module.cpp b/code/ryzom/server/src/admin_modules/aes_module.cpp index 734dfff64..aee6da68a 100644 --- a/code/ryzom/server/src/admin_modules/aes_module.cpp +++ b/code/ryzom/server/src/admin_modules/aes_module.cpp @@ -19,6 +19,7 @@ #include "nel/misc/singleton.h" #include #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/net/module.h" #include "nel/net/module_builder_parts.h" #include "nel/net/unified_network.h" @@ -297,7 +298,7 @@ namespace ADMIN // read the persistent state file if any string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+AESPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "rt"); + FILE *fp = nlfopen(filename, "rt"); if (fp != NULL) { char buffer[1024]; @@ -567,7 +568,7 @@ namespace ADMIN if (now > _LastNagiosReport+_NagiosReportDelay) { // write the nagios report - FILE *fp = fopen("aes_nagios_report.txt", "wt"); + FILE *fp = nlfopen("aes_nagios_report.txt", "wt"); if (fp != NULL) { // output the current date @@ -632,7 +633,7 @@ namespace ADMIN { /// The persistent service orders need to be saved string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+AESPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "wt"); + FILE *fp = nlfopen(filename, "wt"); if (fp != NULL) { { @@ -801,7 +802,7 @@ namespace ADMIN std::string getOfflineServiceState(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServiceStateFileName(serviceAlias).c_str(),"rt"); + FILE* f= nlfopen(getServiceStateFileName(serviceAlias), "rt"); if (f==NULL) return "STOPPED"; // setup a buffer to hold the text read from the file @@ -825,7 +826,7 @@ namespace ADMIN uint32 getOfflineServicePID(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServicePIDFileName(serviceAlias).c_str(),"rt"); + FILE* f = nlfopen(getServicePIDFileName(serviceAlias), "rt"); if (f==NULL) return 0; // setup a buffer to hold the text read from the file @@ -853,7 +854,7 @@ namespace ADMIN uint32 getServiceStartLoopCounter(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServiceLoopCounterFileName(serviceAlias).c_str(),"rt"); + FILE* f= nlfopen(getServiceLoopCounterFileName(serviceAlias), "rt"); if (f==NULL) return 0; @@ -936,7 +937,7 @@ namespace ADMIN NLMISC::CFile::createDirectoryTree(path); // open the file for writing - FILE* f= fopen(getServiceLaunchCtrlFileName(serviceAlias, path, deferred).c_str(),"wt"); + FILE* f = nlfopen(getServiceLaunchCtrlFileName(serviceAlias, path, deferred).c_str(),"wt"); if (f==NULL) return false; // write the text to the file diff --git a/code/ryzom/server/src/admin_modules/as_module.cpp b/code/ryzom/server/src/admin_modules/as_module.cpp index 9717da358..da4b85485 100644 --- a/code/ryzom/server/src/admin_modules/as_module.cpp +++ b/code/ryzom/server/src/admin_modules/as_module.cpp @@ -18,6 +18,7 @@ #include "nel/misc/types_nl.h" #include #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/misc/mutable_container.h" #include "nel/net/service.h" @@ -195,7 +196,7 @@ namespace ADMIN // read the persistent state file if any string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+ASPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "rt"); + FILE *fp = nlfopen(filename, "rt"); if (fp != NULL) { char buffer[1024]; @@ -232,7 +233,7 @@ namespace ADMIN if (_NeedToWriteStateFile) { string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+ASPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "wt"); + FILE *fp = nlfopen(filename, "wt"); if (fp != NULL) { CSString line; diff --git a/code/ryzom/server/src/ai_data_service/pacs_scan.cpp b/code/ryzom/server/src/ai_data_service/pacs_scan.cpp index 48dd8c189..b99009bed 100644 --- a/code/ryzom/server/src/ai_data_service/pacs_scan.cpp +++ b/code/ryzom/server/src/ai_data_service/pacs_scan.cpp @@ -18,6 +18,7 @@ #include "nel/misc/command.h" #include "nel/misc/variable.h" +#include "nel/misc/common.h" #include "nel/misc/aabbox.h" #include "nel/misc/vector.h" #include "nel/misc/vectord.h" @@ -1979,7 +1980,7 @@ public: CBMP4Image<2,2>::SHdr imageHdr(imageWidth, imageHeight); CBMP4Image<2,2>::SPalette imagePalette; - FILE *outf = fopen((OutputPath+name+".bmp").c_str(),"wb"); + FILE *outf = nlfopen(OutputPath+name+".bmp", "wb"); if (outf == NULL) return; @@ -2095,8 +2096,8 @@ public: CBMP4Image<2,2>::SHdr imageHdr(imageWidth, imageHeight); CBMP4Image<2,2>::SPalette imagePalette; - FILE *outf = fopen((OutputPath+name+".bmp").c_str(),"wb"); - FILE *outfh = fopen((OutputPath+name+"_hm.bmp").c_str(),"wb"); + FILE *outf = nlfopen(OutputPath+name+".bmp", "wb"); + FILE *outfh = nlfopen(OutputPath+name+"_hm.bmp", "wb"); if (outf == NULL) return; diff --git a/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp b/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp index d7b25129d..7a94283c0 100644 --- a/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp +++ b/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp @@ -183,7 +183,7 @@ std::string CAIScriptDataManager::dirname() // string fullfilename = dirname() + "/" + name + ".ai_script_data"; // if (!CFile::fileExists(fullfilename) || CFile::getFileSize(fullfilename)==0) // { -// FILE* fp = fopen(fullfilename.c_str(), "w"); +// FILE* fp = nlfopen(fullfilename, "w"); // if (fp) // { // fprintf(fp, "// This file contains data for the AI script\n"); diff --git a/code/ryzom/server/src/entities_game_service/deposit.cpp b/code/ryzom/server/src/entities_game_service/deposit.cpp index d4cd560ad..37b8a03a7 100644 --- a/code/ryzom/server/src/entities_game_service/deposit.cpp +++ b/code/ryzom/server/src/entities_game_service/deposit.cpp @@ -25,6 +25,7 @@ #include "entities_game_service.h" #include "egs_globals.h" #include "nel/misc/noise_value.h" +#include "nel/misc/common.h" #include "nel/misc/variable.h" #include "nel/misc/words_dictionary.h" #include "game_share/time_weather_season/time_date_season_manager.h" @@ -587,7 +588,7 @@ void CDeposit::selectRMsByFilters( std::vector& exactRMCodesS, cons if ( ! depositReportCreated ) { depositReportCreated = true; - depositReportFile = fopen( "deposit_contents.csv", "wt" ); // fclose() auto? + depositReportFile = nlfopen( "deposit_contents.csv", "wt" ); // fclose() auto? if ( depositReportFile ) { fprintf( depositReportFile, "Deposit;RM;When in year;When in day;Weather;\n" ); diff --git a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp index 80518f463..390916885 100644 --- a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp +++ b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp @@ -2564,8 +2564,7 @@ void CGameItem::dumpGameItemStats( const string& fileName ) { if( !fileName.empty() ) { - FILE * f; - f = fopen(fileName.c_str(),"w"); + FILE *f = nlfopen(fileName, "w"); if(f) { diff --git a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp index 72e9b2c8c..17d4d7d55 100644 --- a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp +++ b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp @@ -791,7 +791,7 @@ void CGameItemManager::destroyItem( CGameItemPtr &ptr ) //void CGameItemManager::dumpGameItemList( const string& fileName ) //{ // FILE * f; -// f = fopen(fileName.c_str(),"w"); +// f = nlfopen(fileName, "w"); // // if(f) // { diff --git a/code/ryzom/server/src/entities_game_service/harvest_source.cpp b/code/ryzom/server/src/entities_game_service/harvest_source.cpp index dcae55a60..3da4285b5 100644 --- a/code/ryzom/server/src/entities_game_service/harvest_source.cpp +++ b/code/ryzom/server/src/entities_game_service/harvest_source.cpp @@ -1240,8 +1240,8 @@ bool forageTestDoExtract( } // Request and output results - FILE *f = fopen( std::string(getLogDirectory() + "forage_test.csv").c_str(), "at" ); - FILE *f2 = fopen( std::string(getLogDirectory() + "forage_test.log").c_str(), "at" ); + FILE *f = nlfopen(getLogDirectory() + "forage_test.csv", "at" ); + FILE *f2 = nlfopen(getLogDirectory() + "forage_test.log", "at" ); float reqS = 1.0f / (reqPeriod * 10.0f); float req [CHarvestSource::NbPosRTProps]; float abs [CHarvestSource::NbPosRTProps]; diff --git a/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp b/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp index f2fc03eb0..b45a6043d 100644 --- a/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp +++ b/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp @@ -1884,13 +1884,13 @@ void CDepositMapsBatchTask::run() if ( ! CFile::isExists( pathName ) ) CFile::createDirectory( pathName ); pathName += "/"; - FILE *outputF = fopen( (pathName + "deposit_maps.html").c_str(), "w" ); + FILE *outputF = nlfopen(pathName + "deposit_maps.html", "w"); if ( ! outputF ) { nlwarning( "Can't create file %sdeposit_maps.html", pathName.c_str() ); return; } - FILE *inputF = fopen( _InputFilename.c_str(), "r" ); + FILE *inputF = nlfopen(_InputFilename, "r"); if ( ! inputF ) { fprintf( outputF, "File %s not found", _InputFilename.c_str() ); diff --git a/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp b/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp index 2d16c7177..fce468fb4 100644 --- a/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp +++ b/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp @@ -192,7 +192,7 @@ void CCDBSynchronised::write( const string& fileName ) if ( _DataStructRoot ) { TWriteCallbackArg wca; - wca.F = fopen( fileName.c_str(),"w" ); + wca.F = nlfopen(fileName, "w"); wca.Container = &_DataContainer; ICDBStructNode::CTextId id; _DataStructRoot->foreachLeafCall( cbWrite, id, &wca ); diff --git a/code/ryzom/server/src/entities_game_service/player_manager/player.cpp b/code/ryzom/server/src/entities_game_service/player_manager/player.cpp index fa5e216ae..628a26e9f 100644 --- a/code/ryzom/server/src/entities_game_service/player_manager/player.cpp +++ b/code/ryzom/server/src/entities_game_service/player_manager/player.cpp @@ -102,11 +102,11 @@ void CPlayer::checkCrashMarker() if (!CFile::isExists(LastLoadFileName)) { // create the file if needed - nlverify(LastLoad = fopen(LastLoadFileName, "wb")); + nlverify(LastLoad = nlfopen(LastLoadFileName, "wb")); fclose(LastLoad); } - nlverify(LastLoad = fopen(LastLoadFileName, "r+b")); + nlverify(LastLoad = nlfopen(LastLoadFileName, "r+b")); // check uint32 lastBad[2]; diff --git a/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp b/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp index bbe2217c0..bfc33c1d6 100644 --- a/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp +++ b/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp @@ -118,7 +118,7 @@ void CSession::log(const NLMISC::CSString& lang,const NLMISC::CSString& txt) nlassert(!fileName.empty()); nlinfo("Opening new log file: %s",fileName.c_str()); - _Files[lang]= fopen(fileName.c_str(),"wb"); + _Files[lang]= nlfopen(fileName, "wb"); DROP_IF(_Files[lang]==NULL,"Failed to open log file for writing: "+fileName,return); } fprintf(_Files[lang],"%s\n",txt.c_str()); diff --git a/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp b/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp index ee7669e19..b6423e37a 100644 --- a/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp +++ b/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp @@ -391,7 +391,7 @@ void CRepositoryReceiver::beginFile(NLNET::IModuleProxy *sender, const std::stri _CurrentFileExpected= fileSize; // open the temp file - _CurrentFileHandle= fopen(rrTempFileName(_TargetDirectory,_EmitterName).c_str(),"wb"); + _CurrentFileHandle= nlfopen(rrTempFileName(_TargetDirectory,_EmitterName), "wb"); BOMB_IF(_CurrentFileHandle==NULL,"Failed to open temporary file for writing: "+rrTempFileName(_TargetDirectory,_EmitterName),return); } diff --git a/code/ryzom/server/src/log_analyser_service/commands.cpp b/code/ryzom/server/src/log_analyser_service/commands.cpp index 1b70ae4e2..90bfcf09c 100644 --- a/code/ryzom/server/src/log_analyser_service/commands.cpp +++ b/code/ryzom/server/src/log_analyser_service/commands.cpp @@ -88,7 +88,7 @@ public: NLMISC::CFile::deleteFile(_TmpFileName); DROP_IF(NLMISC::CFile::fileExists(_TmpFileName),"Failed to delete file: "+_TmpFileName,return); - _File= fopen(_TmpFileName.c_str(),"wb"); + _File = nlfopen(_TmpFileName,"wb"); } ~CSimpleFileDisplayer() diff --git a/code/ryzom/server/src/logger_service/logger_service.cpp b/code/ryzom/server/src/logger_service/logger_service.cpp index cb51c6a6d..d5d0775fc 100644 --- a/code/ryzom/server/src/logger_service/logger_service.cpp +++ b/code/ryzom/server/src/logger_service/logger_service.cpp @@ -19,6 +19,7 @@ #include #include "nel/misc/time_nl.h" #include "nel/misc/thread.h" +#include "nel/misc/common.h" #include "nel/misc/random.h" #include "nel/misc/singleton.h" #include "nel/net/service.h" @@ -926,7 +927,7 @@ public: // prepare the output file string outputFile = queryOptions.OutputPrefix+LogQueryResultFile.get(); - FILE *fp = fopen(outputFile.c_str(), "wt");; + FILE *fp = nlfopen(outputFile, "wt");; if (fp == NULL) { _QueryStatus.write(TThreadStatus(qs_push_state, "ErrorWritingQueryResult")); diff --git a/code/ryzom/server/src/patchman_service/file_manager.cpp b/code/ryzom/server/src/patchman_service/file_manager.cpp index ca3582bc6..52a41a080 100644 --- a/code/ryzom/server/src/patchman_service/file_manager.cpp +++ b/code/ryzom/server/src/patchman_service/file_manager.cpp @@ -21,6 +21,7 @@ // nel #include "nel/misc/variable.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" // game share #include "game_share/utils.h" @@ -599,7 +600,7 @@ namespace PATCHMAN // nldebug("- Reading file data @offset: %d (%d bytes)",newFileEntry.StartOffset,fileSize); // read in the file - FILE* inf= fopen(fileName.c_str(),"rb"); + FILE* inf = nlfopen(fileName, "rb"); BOMB_IF(inf==NULL,"Failed to open input file for reading: "+fileName,return false); uint32 bytesRead=(uint32)fread(&_CacheBuffer[newFileEntry.StartOffset],1,fileSize,inf); fclose(inf); diff --git a/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp b/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp index 9bc2db322..3d413b0cf 100644 --- a/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp +++ b/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp @@ -409,7 +409,7 @@ void CRepositoryReceiver::fileList(NLNET::IModuleProxy *sender, uint32 version, // _CurrentFileExpected= fileSize; // // // open the temp file -// _CurrentFileHandle= fopen(rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName).c_str(),"wb"); +// _CurrentFileHandle= nlfopen(rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName), "wb"); // BOMB_IF(_CurrentFileHandle==NULL,"Failed to open temporary file for writing: "+rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName),return); // } // diff --git a/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp b/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp index 2cce1354e..9dc112c3c 100644 --- a/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp +++ b/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp @@ -20,6 +20,7 @@ // nel #include "nel/misc/variable.h" +#include "nel/misc/common.h" #include "nel/net/service.h" #include "nel/net/module.h" #include "nel/net/module_builder_parts.h" @@ -775,7 +776,7 @@ NLMISC_CLASS_COMMAND_IMPL(CServerPatchTerminal, depDevCfg) CSString cfgFileName= appDesc.CmdLine.firstWord()+".cfg"; string fileName = configDirectory+cfgFileName; - FILE *fp = fopen(fileName.c_str(), "wt"); + FILE *fp = nlfopen(fileName, "wt"); nlassert(fp != NULL); fwrite(appDesc.CfgFile.data(), appDesc.CfgFile.size(), 1, fp); fclose(fp); @@ -808,7 +809,7 @@ NLMISC_CLASS_COMMAND_IMPL(CServerPatchTerminal, depDevCfg) batch << "start " << cmdLine; fileName = DevConfigDirectory.get()+"/start_"+appDesc.ShardName+"_"+appDesc.StartOrder+"_"+appDesc.AppName+".bat"; - fp = fopen(fileName.c_str(), "wt"); + fp = nlfopen(fileName, "wt"); nlassert(fp != NULL); fwrite(batch.data(), batch.size(), 1, fp); fclose(fp); diff --git a/code/ryzom/server/src/pd_lib/pd_server_utils.h b/code/ryzom/server/src/pd_lib/pd_server_utils.h index ac67e8a7a..2e7c06363 100644 --- a/code/ryzom/server/src/pd_lib/pd_server_utils.h +++ b/code/ryzom/server/src/pd_lib/pd_server_utils.h @@ -22,6 +22,7 @@ */ #include #include +#include #include #include @@ -282,7 +283,7 @@ public: if (_File != NULL) return false; - _File = fopen(filename, mode); + _File = nlfopen(filename, mode); if (_File == NULL) return false; diff --git a/code/ryzom/server/src/pd_support_service/daily_commands.cpp b/code/ryzom/server/src/pd_support_service/daily_commands.cpp index e3f6d718c..c96310932 100644 --- a/code/ryzom/server/src/pd_support_service/daily_commands.cpp +++ b/code/ryzom/server/src/pd_support_service/daily_commands.cpp @@ -19,6 +19,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/net/service.h" #include "game_share/utils.h" @@ -101,7 +102,7 @@ public: ptm = gmtime(&endTime); // write to the log file - FILE* fileHandle= fopen(DailyActivityLogFileName,"ab"); + FILE* fileHandle= nlfopen(DailyActivityLogFileName,"ab"); nlassert(fileHandle!=NULL); fprintf(fileHandle,"%02u/%02u/%u CDailyTaskScheduler: Started: %02u:%02u, Finished: %02u:%02u, Executed %u commands Started %u Jobs\n", ptm->tm_mday, ptm->tm_mon+1, ptm->tm_year+1900, (uint)startTime/3600%24, (uint)startTime/60%60, (uint)endTime/3600%24, (uint)endTime/60%60, commandsVar==NULL?0:commandsVar->size(), jobsRemaining ); diff --git a/code/ryzom/server/src/pd_support_service/hourly_commands.cpp b/code/ryzom/server/src/pd_support_service/hourly_commands.cpp index 6f77396ae..cad7c25ee 100644 --- a/code/ryzom/server/src/pd_support_service/hourly_commands.cpp +++ b/code/ryzom/server/src/pd_support_service/hourly_commands.cpp @@ -19,6 +19,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/net/service.h" #include "game_share/utils.h" @@ -101,7 +102,7 @@ public: ptm = gmtime(&endTime); // write to the log file - FILE* fileHandle= fopen(HourlyActivityLogFileName,"ab"); + FILE* fileHandle= nlfopen(HourlyActivityLogFileName,"ab"); nlassert(fileHandle!=NULL); fprintf(fileHandle,"%02u/%02u/%u CHourlyTaskScheduler: Started: %02u:%02u, Finished: %02u:%02u, Executed %u commands Started %u Jobs\n", ptm->tm_mday, ptm->tm_mon+1, ptm->tm_year+1900, (uint)startTime/3600%24, (uint)startTime/60%60, (uint)endTime/3600%24, (uint)endTime/60%60, commandsVar==NULL?0:commandsVar->size(), jobsRemaining ); diff --git a/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp b/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp index b81886a47..996c838e2 100644 --- a/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp +++ b/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp @@ -31,6 +31,7 @@ // Nel #include "nel/misc/sheet_id.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/georges/u_form_elm.h" #include "nel/georges/u_form.h" #include "nel/georges/u_form_loader.h" @@ -270,7 +271,7 @@ void CTestingTool::startTestSession( const std::string& sheet ) //---------------------------------------------------------------- void CTestingTool::testSessionProceed() { - _TestSessionReport = fopen( "testSessionReport.txt", "w+t" ); + _TestSessionReport = nlfopen( "testSessionReport.txt", "w+t" ); fputs( "=====================================================================\n", _TestSessionReport ); fputs( "===================== NEW TEST SESSION STARTED ======================\n", _TestSessionReport ); diff --git a/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp b/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp index dbd917b0f..d9097d4cf 100644 --- a/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp +++ b/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp @@ -23,6 +23,7 @@ #include "CompilDialog.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/ligo/primitive.h" #include "../mission_compiler_lib/mission_compiler.h" #include "nel/misc/config_file.h" @@ -201,7 +202,7 @@ BOOL CMissionCompilerFeDlg::OnInitDialog() if (NLMISC::CFile::fileExists(tmpPath)) { - FILE *f = fopen(tmpPath, "r"); + FILE *f = nlfopen(tmpPath, "r"); if (f == NULL) { nlinfo("Can't open the file for reading !\n%s", tmpPath); @@ -762,7 +763,7 @@ void CValidationFile::saveMissionValidationFile(string filename) nlwarning("Can't find index file '%s' in search path, no mission will be valid", filename.c_str()); return; } - FILE* file = fopen(pathName.c_str(), "w"); + FILE* file = nlfopen(pathName, "w"); nlassert(file!=NULL); // AuthorizedStates diff --git a/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp b/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp index fd119e0df..09d9fc723 100644 --- a/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp +++ b/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp @@ -17,6 +17,7 @@ #include "mission_compiler.h" #include "step.h" #include "nel/misc/i18n.h" +#include "nel/misc/common.h" #include "nel/ligo/primitive_utils.h" using namespace std; @@ -876,7 +877,7 @@ bool CMissionCompiler::publishFiles(const std::string &serverPathPrim, const std bool CMissionCompiler::includeText(const std::string filename, const std::string text) { - FILE *f = fopen(filename.c_str(), "r+"); + FILE *f = nlfopen(filename, "r+"); if (f == NULL) return false; diff --git a/code/ryzom/tools/leveldesign/mp_generator/main.cpp b/code/ryzom/tools/leveldesign/mp_generator/main.cpp index 935ba31d6..1766a3b3b 100644 --- a/code/ryzom/tools/leveldesign/mp_generator/main.cpp +++ b/code/ryzom/tools/leveldesign/mp_generator/main.cpp @@ -17,6 +17,7 @@ #include "moulinette.h" #include "utils.h" #include "nel/misc/algo.h" +#include "nel/misc/common.h" TRMItem currentDocItem; CRMData SortableData; @@ -1279,7 +1280,7 @@ void ItemNamesSave() CSString data, output; FILE* file; - file = fopen( ITEM_WORDS_WK.c_str(), "rb" ); + file = nlfopen( ITEM_WORDS_WK, "rb" ); char c; fread( &c, 1, 1, file ); diff --git a/code/ryzom/tools/leveldesign/mp_generator/utils.h b/code/ryzom/tools/leveldesign/mp_generator/utils.h index efa42149d..af9f7096a 100644 --- a/code/ryzom/tools/leveldesign/mp_generator/utils.h +++ b/code/ryzom/tools/leveldesign/mp_generator/utils.h @@ -19,6 +19,8 @@ #include +#include "nel/misc/common.h" + // DtName must be the 1st one enum TDataCol { DtName, DtTitle, DtRMFamily, DtGroup, DtEcosystem, DtLevelZone, DtStatQuality, DtProp, DtCreature, DtCreaTitle, DtCraftSlotName, DtCraftCivSpec, DtColor, DtAverageEnergy, DtMaxLevel, DtCustomizedProperties, DtNbCols }; const char *DataColStr [DtNbCols] = { "Code", "Name", "Family", "Group", "Ecosystem", "LevelZone", "Stat Quality", "Properties", "Creature sheets", "Creatures", "Item parts", "Craft civ spec", "Color", "Average energy", "Max level", "Customized" }; @@ -276,7 +278,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); if(!_File) { throw Exception("Could not open html: %s", filename.c_str()); diff --git a/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp b/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp index 6ab9e2a26..f2fa783dc 100644 --- a/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp +++ b/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp @@ -57,7 +57,7 @@ vector items; // check the items file (locSlot and item number coherence) int verifItemsFile (const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -89,7 +89,7 @@ int verifItemsFile (const char *filename) // check csv file (locSlot and item number coherence) int verifCsvFile (const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -165,7 +165,7 @@ int getItemsFromFile(const char *filename) // fill 'fields' structure with values from file int getFieldsFromFile(const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -190,7 +190,7 @@ int getFieldsFromFile(const char *filename) // parse the file to count the number of items int getNbItemFromFile(const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -214,7 +214,7 @@ int exportCsv(const char *filename) nlassert(fields.size() != 0); uint i, j; - FILE *f = fopen(filename, "w"); + FILE *f = nlfopen(filename, "w"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -241,7 +241,7 @@ int importCsv(const char *filename) verifCsvFile(filename); char buffer[1024]; - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); diff --git a/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp b/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp index 08c1b255f..b3737b6a9 100644 --- a/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp +++ b/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp @@ -19,6 +19,7 @@ #include "nel/misc/config_file.h" #include "nel/misc/path.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" using namespace std; @@ -57,7 +58,7 @@ int main(int argc, char *argv[]) { // build a default config file string fileName = vif.asString(); - FILE *fp = fopen(fileName.c_str(), "wt"); + FILE *fp = nlfopen(fileName.c_str(), "wt"); if (fp == NULL) { nlwarning("Can't open file '%s' for writing", diff --git a/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp b/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp index 1bbe82dcc..fa593d67d 100644 --- a/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp +++ b/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -121,7 +122,7 @@ int main(int argc, char *argv[]) case ASCII: { string s = str.toString(); - FILE *fp = fopen(outputFile.c_str(), "wt"); + FILE *fp = nlfopen(outputFile, "wt"); fwrite(s.data(), s.size(), 1, fp); fclose(fp); } diff --git a/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp b/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp index a70813f47..17fd397da 100644 --- a/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp +++ b/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp @@ -46,6 +46,7 @@ #include "editor_primitive.h" #include "file_dialog_ex.h" #include "nel/misc/mem_stream.h" +#include "nel/misc/common.h" #include @@ -4334,7 +4335,7 @@ void CMainFrame::OnMissionCompiler() GetEnvironmentVariable("TMP", tmpPath, MAX_PATH); strcat(tmpPath, "\\tmptool.txt"); - FILE *f = fopen(tmpPath, "w"); + FILE *f = nlfopen(tmpPath, "w"); if (f==NULL) infoMessage("Can't open file for writing !\n%s", tmpPath); diff --git a/code/ryzom/tools/occ2huff/occ2huff.cpp b/code/ryzom/tools/occ2huff/occ2huff.cpp index 500e76735..55b3f20b1 100644 --- a/code/ryzom/tools/occ2huff/occ2huff.cpp +++ b/code/ryzom/tools/occ2huff/occ2huff.cpp @@ -257,7 +257,7 @@ sint main( sint argc, char ** argv ) // TEST /*printf("Writing debug text file...\n"); - FILE * outputTest = fopen("chat_static_base_test.log","wt"); + FILE * outputTest = nlfopen("chat_static_base_test.log","wt"); for( itBase = base.begin(); itBase != base.end(); ++itBase ) { fprintf(outputTest,"id: %s str: %s occ: %d\n",(*itBase).second.Id.c_str(),(*itBase).second.Str.c_str(), (*itBase).second.Occurence ); diff --git a/code/ryzom/tools/pd_parser/templatizer.h b/code/ryzom/tools/pd_parser/templatizer.h index 308fdeb2e..5087e033a 100644 --- a/code/ryzom/tools/pd_parser/templatizer.h +++ b/code/ryzom/tools/pd_parser/templatizer.h @@ -1009,7 +1009,7 @@ public: std::string result = ITemplatizerBloc::eval(env); FILE* f; - f = fopen(filename.c_str(), (clearfile == "true" ? "w" : "a")); + f = nlfopen(filename, (clearfile == "true" ? "w" : "a")); if (f != NULL) { fwrite(result.c_str(), 1, result.size(), f); diff --git a/code/ryzom/tools/phrase_generator/phrase_generator.cpp b/code/ryzom/tools/phrase_generator/phrase_generator.cpp index 6fa71e9ae..de02680ca 100644 --- a/code/ryzom/tools/phrase_generator/phrase_generator.cpp +++ b/code/ryzom/tools/phrase_generator/phrase_generator.cpp @@ -33,6 +33,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include #include @@ -275,7 +276,7 @@ void loadCSVFile( const char *filename, TDeliveryCallback deliveryCallback ) vector args; vector::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1282,7 +1283,7 @@ void usage(char *argv0, FILE *out) //----------------------------------------------- void makeIndexFile() { - FILE * indexFile = fopen( ("_" + DocFileNameRoot + "_INDEX.html").c_str(), "wt" ); + FILE * indexFile = nlfopen( "_" + DocFileNameRoot + "_INDEX.html", "wt" ); if( indexFile ) { fprintf( indexFile, ("\n\nSummary of " + DocFileNameRoot + "\n\n").c_str() ); @@ -1295,7 +1296,7 @@ void makeIndexFile() for ( uint l=0; l!=26; ++l ) { string filename = toString( "%s_%c.html", DocFileName.c_str(), 'a'+l ); - PhraseDocFiles[l] = fopen( filename.c_str(), "wt" ); + PhraseDocFiles[l] = nlfopen( filename, "wt" ); fprintf( PhraseDocFiles[l], ("\n\n" + DocFileName + toString( " - %c", (char)('A'+l) ) + "\n\n").c_str() ); fprintf( indexFile, ("" + (char)('A'+l) + " ").c_str() ); } @@ -1304,7 +1305,7 @@ void makeIndexFile() { // One single HTML file fprintf( indexFile, ("Go to action details").c_str() ); - PhraseDocFiles[0] = fopen( (DocFileName + ".html").c_str(), "wt" ); + PhraseDocFiles[0] = nlfopen( DocFileName + ".html", "wt" ); fprintf( PhraseDocFiles[0], ("\n\n" + DocFileName + "\n\n").c_str() ); for ( uint l=1; l!=26; ++l ) { @@ -1393,7 +1394,7 @@ void makeIndexFile() void makeActionsBySkillGroupFile() { // progression by skill - FILE * actionsBySkillGroupFile = fopen( (DocFileName + "__by_skill.html").c_str(), "wt" ); + FILE * actionsBySkillGroupFile = nlfopen( DocFileName + "__by_skill.html", "wt" ); if( actionsBySkillGroupFile ) { fprintf( actionsBySkillGroupFile, ("\n\nProgression of " + DocFileName + "\n\n").c_str() ); @@ -1489,7 +1490,7 @@ void makeActionsBySkillValueFile() //----------------------------------------------- void makeActionsBySkillValueDetailFile() { - FILE * actionsBySkillValueDetailFile = fopen( (DocFileName + "__by_skill_value_detail.html").c_str(), "wt" ); + FILE * actionsBySkillValueDetailFile = nlfopen( DocFileName + "__by_skill_value_detail.html", "wt" ); if( actionsBySkillValueDetailFile ) { fprintf( actionsBySkillValueDetailFile, ("\n\nProgression of " + DocFileName + "\n\n").c_str() ); @@ -1627,9 +1628,9 @@ void makeSkillTreeFile( char filter, string skillFamily, bool withTraduction ) string filenameWithTraduction = skillFamily + "_skill_tree_detailed.html"; FILE * skillTreeFile; if( withTraduction ) - skillTreeFile = fopen( filenameWithTraduction.c_str(), "wt" ); + skillTreeFile = nlfopen( filenameWithTraduction, "wt" ); else - skillTreeFile = fopen( filename.c_str(), "wt" ); + skillTreeFile = nlfopen( filename, "wt" ); fprintf( skillTreeFile,"\n"); fprintf( skillTreeFile,"\n"); fprintf( skillTreeFile,"SKILL TREE ( %s )\n",skillFamily.c_str()); @@ -1980,7 +1981,7 @@ int main(int argc, char* argv[]) // write header and title bar string filename; filename = DocFileNameRoot + "_m.html"; - FILE * brickPhraseDocFile_m = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_m = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_m,"\n"); fprintf( brickPhraseDocFile_m,"\n"); fprintf( brickPhraseDocFile_m,"Brick phrases\n"); @@ -1988,7 +1989,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_m,"\n"); filename = DocFileNameRoot + "_c.html"; - FILE * brickPhraseDocFile_c = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_c = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_c,"\n"); fprintf( brickPhraseDocFile_c,"\n"); fprintf( brickPhraseDocFile_c,"Brick phrases\n"); @@ -1996,7 +1997,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_c,"
\n"); filename = DocFileNameRoot + "_o.html"; - FILE * brickPhraseDocFile_o = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_o = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_o,"\n"); fprintf( brickPhraseDocFile_o,"\n"); fprintf( brickPhraseDocFile_o,"Brick phrases\n"); @@ -2004,7 +2005,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_o,"
\n"); filename = DocFileNameRoot + "_p.html"; - FILE * brickPhraseDocFile_p = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_p = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_p,"\n"); fprintf( brickPhraseDocFile_p,"\n"); fprintf( brickPhraseDocFile_p,"Brick phrases\n"); @@ -2012,7 +2013,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_p,"
\n"); filename = DocFileNameRoot + "_e.html"; - FILE * brickPhraseDocFile_e = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_e = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_e,"\n"); fprintf( brickPhraseDocFile_e,"\n"); fprintf( brickPhraseDocFile_e,"Brick phrases\n"); @@ -2082,7 +2083,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + ".html"; - FILE * brickDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickDocFile = nlfopen( filename, "wt" ); fprintf( brickDocFile,"\n"); fprintf( brickDocFile,"\n"); fprintf( brickDocFile,"Bricks infos\n"); @@ -2197,7 +2198,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_name.html"; - FILE * brickNameDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickNameDocFile = nlfopen( filename, "wt" ); fprintf( brickNameDocFile,"\n"); fprintf( brickNameDocFile,"\n"); fprintf( brickNameDocFile,"Bricks infos\n"); @@ -2332,7 +2333,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_family.html"; - FILE * brickFamilyDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickFamilyDocFile = nlfopen( filename, "wt" ); fprintf( brickFamilyDocFile,"\n"); fprintf( brickFamilyDocFile,"\n"); fprintf( brickFamilyDocFile,"Bricks infos\n"); @@ -2464,7 +2465,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_required_skill_value.html"; - FILE * brickRequiredDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickRequiredDocFile = nlfopen( filename, "wt" ); fprintf( brickRequiredDocFile,"\n"); fprintf( brickRequiredDocFile,"\n"); fprintf( brickRequiredDocFile,"Bricks infos\n"); @@ -2607,7 +2608,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_learn_skill_value.html"; - FILE * brickLearnDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickLearnDocFile = nlfopen( filename, "wt" ); fprintf( brickLearnDocFile,"\n"); fprintf( brickLearnDocFile,"\n"); fprintf( brickLearnDocFile,"Bricks infos\n"); diff --git a/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp b/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp index 68a6bff3f..eafda628c 100644 --- a/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp +++ b/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp @@ -20,6 +20,7 @@ #include "srg_utilities.h" #include "game_share/protection_type.h" #include "nel/misc/string_conversion.h" +#include "nel/misc/common.h" /* * V3 @@ -2449,8 +2450,8 @@ void generateRawMaterials() MainStat.init(); FILE *nameOutputFile; if ( OutputNameList ) - nameOutputFile = fopen( "rm_names_output.csv", "wt" ); - GraphFile = fopen( "rm_output_graph.csv", "wt" ); + nameOutputFile = nlfopen( "rm_names_output.csv", "wt" ); + GraphFile = nlfopen( "rm_output_graph.csv", "wt" ); fprintf( GraphFile, "Graph type: Line with markers displayed at each data value, columns B to E. For deposits, sort by column B\n" ); fprintf( GraphFile, "Ecosystem specialization: 100=Desert, 104=Forest, 108=Lake, 112=Jungle, 116=All\n" ); fprintf( GraphFile, "RM code;Zone;Energy;Originality;Eco. spec.;\n\n" ); diff --git a/code/ryzom/tools/sheet_random_generator/srg_utilities.h b/code/ryzom/tools/sheet_random_generator/srg_utilities.h index c4abce34b..686b22418 100644 --- a/code/ryzom/tools/sheet_random_generator/srg_utilities.h +++ b/code/ryzom/tools/sheet_random_generator/srg_utilities.h @@ -27,6 +27,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include #include @@ -862,7 +863,7 @@ void loadNomenclatureCodes( const char *title, const vector& longNames, vector::iterator iarg; vector::const_iterator ivs; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1121,7 +1122,7 @@ void loadCSVFile( const char *filename, TMapDeliveryCallback deliveryCallback, b vector args; vector::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1178,7 +1179,7 @@ void loadCSVFile( const char *filename, TVectorDeliveryCallback deliveryCallback vs args; vs::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1217,7 +1218,7 @@ void loadValueFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1271,7 +1272,7 @@ void loadRulesFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1582,7 +1583,7 @@ void loadTitles( const string& sourceWords, const string& sourceBase, const stri void extractRawMaterialNames() { loadCSVFile( ExtractNamesCsv.c_str(), readRMNames ); - FILE *output = fopen( (CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv").c_str(), "wt" ); + FILE *output = nlfopen( CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv", "wt" ); fprintf( output, "Code;Name\n" ); for ( mss::const_iterator iun=UniqueRMNamesAndSheetCodeHead.begin(); iun!=UniqueRMNamesAndSheetCodeHead.end(); ++iun ) { @@ -2343,7 +2344,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); fprintf( _File, ("\n\n" + title + "\n\n").c_str() ); } @@ -2408,7 +2409,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); } /// diff --git a/code/ryzom/tools/translation_tools/main.cpp b/code/ryzom/tools/translation_tools/main.cpp index 9198196c7..000da9551 100644 --- a/code/ryzom/tools/translation_tools/main.cpp +++ b/code/ryzom/tools/translation_tools/main.cpp @@ -71,6 +71,7 @@ #include "nel/misc/app_context.h" #include "nel/misc/i18n.h" +#include "nel/misc/common.h" #include "nel/misc/file.h" #include "nel/misc/path.h" #include "nel/misc/diff_tool.h" @@ -325,7 +326,7 @@ int readLanguages() else { // append to the existing file - FILE *fp = fopen(filename.c_str(), "ab"); + FILE *fp = nlfopen(filename, "ab"); for (uint i=0; i\n"); @@ -224,7 +225,7 @@ int main(int argc, char *argv[]) printf("Adding file '%s'...\n", CFile::getFilename(subFileName).c_str()); fprintf(fp, " \n", CFile::getFilename(subFileName).c_str()); - FILE *subFp = fopen(subFileName.c_str(), "rt"); + FILE *subFp = nlfopen(subFileName, "rt"); nlassert(subFp != NULL); char buffer[MaxLineSize]; char *result; @@ -262,8 +263,8 @@ int main(int argc, char *argv[]) { printf("Unpacking directory '%s'...\n", dirName.c_str()); // open the pack file -// FILE *fp = fopen((dirName+"/tmp."+DefaultExt).c_str(), "rt"); - FILE *fp = fopen(filename.c_str(), "rt"); +// FILE *fp = nlfopen(dirName+"/tmp."+DefaultExt, "rt"); + FILE *fp = nlfopen(filename, "rt"); nlassert(fp != NULL); uint linecount = 0; @@ -303,7 +304,7 @@ int main(int argc, char *argv[]) printf("Extracting file '%s'...\n", CFile::getFilename(subFileName).c_str()); // open the output file - FILE *output = fopen (subFileName.c_str(), "wt"); + FILE *output = nlfopen(subFileName, "wt"); if (output == NULL) { printf ("Error : can not open output file '%s' from pack file '%s'", subFileName.c_str(), filename.c_str()); diff --git a/code/studio/src/plugins/mission_compiler/validation_file.cpp b/code/studio/src/plugins/mission_compiler/validation_file.cpp index e5536f9a7..c284f50cd 100644 --- a/code/studio/src/plugins/mission_compiler/validation_file.cpp +++ b/code/studio/src/plugins/mission_compiler/validation_file.cpp @@ -1,6 +1,7 @@ #include "validation_file.h" #include +#include #include void CValidationFile::loadMissionValidationFile(std::string filename) @@ -53,7 +54,7 @@ void CValidationFile::saveMissionValidationFile(std::string filename) nlwarning("Can't find index file '%s' in search path, no mission will be valid", filename.c_str()); return; } - FILE* file = fopen(pathName.c_str(), "w"); + FILE* file = nlfopen(pathName, "w"); nlassert(file!=NULL); // AuthorizedStates diff --git a/code/tool/increment_version/increment_version.cpp b/code/tool/increment_version/increment_version.cpp index d24127a6c..45cb93ece 100644 --- a/code/tool/increment_version/increment_version.cpp +++ b/code/tool/increment_version/increment_version.cpp @@ -16,6 +16,7 @@ #include #include +#include #include @@ -51,7 +52,7 @@ sint main( sint argc, char ** argv ) // open the output file string outputFilename = string(argv[1]) + ".out"; - FILE * output = fopen(outputFilename.c_str(),"w"); + FILE * output = nlfopen(outputFilename,"w"); if( output == NULL ) { nlwarning("can't open the output file %s",outputFilename.c_str()); diff --git a/code/tool/path_content_diff/path_content_diff.cpp b/code/tool/path_content_diff/path_content_diff.cpp index c2df4b946..b40a4e75f 100644 --- a/code/tool/path_content_diff/path_content_diff.cpp +++ b/code/tool/path_content_diff/path_content_diff.cpp @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +#include #include #include #include @@ -65,7 +66,7 @@ int main( int argc, char ** argv ) CPath::getPathContent(newPath, true, false, true, newPathContent); string outputFileName = CFile::findNewFile("path_content_diff.txt"); - FILE *output = fopen (outputFileName.c_str(), "wt"); + FILE *output = nlfopen(outputFileName, "wt"); if( output == NULL ) { nlwarning("Can't open output file %s",outputFileName.c_str()); From 66d9a0eea79987c0e063067debdfa21b4d7a7fde Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 18:29:14 +0100 Subject: [PATCH 176/184] Changed: Try to load Steam DLL without path if fails --- code/ryzom/client/src/steam_client.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/ryzom/client/src/steam_client.cpp b/code/ryzom/client/src/steam_client.cpp index 6e9521eea..5a37c9816 100644 --- a/code/ryzom/client/src/steam_client.cpp +++ b/code/ryzom/client/src/steam_client.cpp @@ -302,13 +302,19 @@ bool CSteamClient::init() filename = "libsteam_api.so"; #endif - // try to load library + // try to load library with absolute path _Handle = NLMISC::nlLoadLibrary(Args.getProgramPath() + filename); if (!_Handle) { - nlwarning("Unable to load Steam client"); - return false; + // try to load library with relative path (will search in system paths) + _Handle = NLMISC::nlLoadLibrary(filename); + + if (!_Handle) + { + nlwarning("Unable to load Steam client"); + return false; + } } // load Steam functions From a9c06ce8d089cfc4a39a42f79b698cea7294ad47 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 19:27:00 +0100 Subject: [PATCH 177/184] Fixed: Use presets from client_default.cfg for client_config_qt --- .../display_settings_details_widget.cpp | 201 ++++++++++-------- .../display_settings_details_widget.h | 76 +++---- 2 files changed, 146 insertions(+), 131 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.cpp b/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.cpp index 1e1e19521..780e6a87c 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.cpp @@ -38,29 +38,32 @@ void CDisplaySettingsDetailsWidget::load() { CSystem &s = CSystem::GetInstance(); - landscapeSlider->setValue( getQuality( qualityToLandscapeThreshold, s.config.getFloat( "LandscapeThreshold" ) ) ); - landscapeSlider->setValue( std::min( landscapeSlider->value(), getQuality( qualityToZFar, s.config.getFloat( "Vision" ) ) ) ); - landscapeSlider->setValue( std::min( landscapeSlider->value(), getQuality( qualityToLandscapeTileNear, s.config.getFloat( "LandscapeTileNear" ) ) ) ); - landscapeSlider->setValue( std::min( landscapeSlider->value(), getQuality( qualityToMicrovegetDensity, s.config.getFloat( "MicroVegetDensity" ) ) ) ); + // landscape + landscapeSlider->setValue(getQualityPresetFloat("LandscapeTileNear")); + landscapeSlider->setValue(std::min(landscapeSlider->value(), getQualityPresetFloat("LandscapeThreshold"))); + landscapeSlider->setValue(std::min(landscapeSlider->value(), getQualityPresetFloat("Vision"))); + landscapeSlider->setValue(std::min(landscapeSlider->value(), getQualityPresetFloat("MicroVegetDensity"))); - charactersSlider->setValue( getQuality( qualityToSkinNbMaxPoly, s.config.getInt( "SkinNbMaxPoly" ) ) ); - charactersSlider->setValue( std::min( charactersSlider->value(), getQuality( qualityToNbMaxSkeletonNotCLod, s.config.getInt( "NbMaxSkeletonNotCLod" ) ) ) ); - charactersSlider->setValue( std::min( charactersSlider->value(), getQuality( qualityToCharacterFarClip, s.config.getFloat( "CharacterFarClip" ) ) ) ); + // FX + fxSlider->setValue(getQualityPresetInteger("FxNbMaxPoly")); - fxSlider->setValue( getQuality( qualityToFxNbMaxPoly, s.config.getInt( "FxNbMaxPoly" ) ) ); + // characters + charactersSlider->setValue(getQualityPresetInteger("SkinNbMaxPoly")); + charactersSlider->setValue(std::min(charactersSlider->value(), getQualityPresetInteger("NbMaxSkeletonNotCLod"))); + charactersSlider->setValue(std::min(charactersSlider->value(), getQualityPresetFloat("CharacterFarClip"))); - int hdTextureInstalled = s.config.getInt( "HDTextureInstalled" ); - if( hdTextureInstalled == 1 ) - texturesSlider->setMaximum( QUALITY_NORMAL ); + int hdTextureInstalled = s.config.getInt("HDTextureInstalled"); + if (hdTextureInstalled == 1) + texturesSlider->setMaximum(QUALITY_NORMAL); else - texturesSlider->setMaximum( QUALITY_MEDIUM ); + texturesSlider->setMaximum(QUALITY_MEDIUM); // Comment taken from the original config tool: // NB: if the player changes its client.cfg, mixing HDEntityTexture=1 and DivideTextureSizeBy2=1, it will // result to a low quality! - if( s.config.getInt( "DivideTextureSizeBy2" ) ) + if (s.config.getInt("DivideTextureSizeBy2")) texturesSlider->setValue( QUALITY_LOW ); - else if( s.config.getInt( "HDEntityTexture" ) && ( hdTextureInstalled == 1 ) ) + else if( s.config.getInt("HDEntityTexture") && ( hdTextureInstalled == 1 ) ) texturesSlider->setValue( QUALITY_NORMAL ); else texturesSlider->setValue( QUALITY_MEDIUM ); @@ -70,38 +73,30 @@ void CDisplaySettingsDetailsWidget::save() { CSystem &s = CSystem::GetInstance(); - s.config.setFloat( "Vision", qualityToZFar[ landscapeSlider->value() ] ); - s.config.setFloat( "LandscapeTileNear", qualityToLandscapeTileNear[ landscapeSlider->value() ] ); - s.config.setFloat( "LandscapeThreshold", qualityToLandscapeThreshold[ landscapeSlider->value() ] ); + // landscape + setFloatPreset("LandscapeTileNear", landscapeSlider->value()); + setFloatPreset("LandscapeThreshold", landscapeSlider->value()); + setFloatPreset("Vision", landscapeSlider->value()); + setIntegerPreset("MicroVeget", landscapeSlider->value()); + setFloatPreset("MicroVegetDensity", landscapeSlider->value()); - if( landscapeSlider->value() > QUALITY_LOW ) - s.config.setInt( "MicroVeget", 1 ); - else - s.config.setInt( "MicroVeget", 0 ); - - s.config.setFloat( "MicroVegetDensity", qualityToMicrovegetDensity[ landscapeSlider->value() ] ); - - - s.config.setInt( "SkinNbMaxPoly", qualityToSkinNbMaxPoly[ charactersSlider->value() ] ); - s.config.setInt( "NbMaxSkeletonNotCLod", qualityToNbMaxSkeletonNotCLod[ charactersSlider->value() ] ); - s.config.setFloat( "CharacterFarClip", qualityToCharacterFarClip[ charactersSlider->value() ] ); - - - s.config.setInt( "FxNbMaxPoly", qualityToFxNbMaxPoly[ fxSlider->value() ] ); - if( fxSlider->value() > QUALITY_LOW ) - { - s.config.setInt( "Shadows", 1 ); - s.config.setInt( "Bloom", 1 ); - s.config.setInt( "SquareBloom", 1 ); - } - else - { - s.config.setInt( "Shadows", 0 ); - s.config.setInt( "Bloom", 0 ); - s.config.setInt( "SquareBloom", 0 ); - } + // FX + setIntegerPreset("FxNbMaxPoly", fxSlider->value()); + setIntegerPreset("Cloud", fxSlider->value()); + setFloatPreset("CloudQuality", fxSlider->value()); + setIntegerPreset("CloudUpdate", fxSlider->value()); + setIntegerPreset("Shadows", fxSlider->value()); + setIntegerPreset("FXAA", fxSlider->value()); + setIntegerPreset("Bloom", fxSlider->value()); + setIntegerPreset("SquareBloom", fxSlider->value()); + setFloatPreset("DensityBloom", fxSlider->value()); + // characters + setIntegerPreset("SkinNbMaxPoly", charactersSlider->value()); + setIntegerPreset("NbMaxSkeletonNotCLod", charactersSlider->value()); + setFloatPreset("CharacterFarClip", charactersSlider->value()); + // misc if( texturesSlider->value() == QUALITY_NORMAL ) s.config.setInt( "HDEntityTexture", 1 ); else if( texturesSlider->value() == QUALITY_LOW ) @@ -144,71 +139,89 @@ void CDisplaySettingsDetailsWidget::onTexturesSliderChange( int value ) emit changed(); } -const float CDisplaySettingsDetailsWidget::qualityToZFar[ QUALITY_STEP ] = +float CDisplaySettingsDetailsWidget::getPresetFloat(const std::string &variable, sint preset) { - 200.0f, - 400.0f, - 500.0f, - 800.0f -}; + CSystem &s = CSystem::GetInstance(); -const float CDisplaySettingsDetailsWidget::qualityToLandscapeTileNear[ QUALITY_STEP ] = + // preset name + std::string varName = variable + NLMISC::toString("_ps%d", preset); + + return s.config.getFloat(varName.c_str()); +} + +int CDisplaySettingsDetailsWidget::getPresetInteger(const std::string &variable, sint preset) { - 20.0f, - 100.0f, - 150.0f, - 200.0f -}; + CSystem &s = CSystem::GetInstance(); -const float CDisplaySettingsDetailsWidget::qualityToLandscapeThreshold[ QUALITY_STEP ] = + // preset name + std::string varName = variable + NLMISC::toString("_ps%d", preset); + + return s.config.getInt(varName.c_str()); +} + +void CDisplaySettingsDetailsWidget::setFloatPreset(const std::string &variable, int preset) { - 100.0f, - 1000.0f, - 2000.0f, - 3000.0f -}; + CSystem &s = CSystem::GetInstance(); + // take value of the preset and set it to variable + s.config.setFloat(variable.c_str(), getPresetFloat(variable, preset)); +} -const float CDisplaySettingsDetailsWidget::qualityToMicrovegetDensity[ QUALITY_STEP ] = +void CDisplaySettingsDetailsWidget::setIntegerPreset(const std::string &variable, int preset) { - 10.0f, - 30.0f, - 80.0f, - 100.0f -}; + CSystem &s = CSystem::GetInstance(); + // take value of the preset and set it to variable + s.config.setInt(variable.c_str(), getPresetInteger(variable, preset)); +} -const sint32 CDisplaySettingsDetailsWidget::qualityToSkinNbMaxPoly[ QUALITY_STEP ] = +int CDisplaySettingsDetailsWidget::getQualityPresetFloat(const std::string &variable) { - 10000, - 70000, - 100000, - 200000 -}; + CSystem &s = CSystem::GetInstance(); -const sint32 CDisplaySettingsDetailsWidget::qualityToNbMaxSkeletonNotCLod[ QUALITY_STEP ] = -{ - 10, - 50, - 125, - 255 -}; + float value = s.config.getFloat(variable.c_str()); -const float CDisplaySettingsDetailsWidget::qualityToCharacterFarClip[ QUALITY_STEP ] = -{ - 50.0f, - 100.0f, - 200.0f, - 500.0f -}; + // ascending order + if (getPresetFloat(variable, 0) < getPresetFloat(variable, QUALITY_STEP-1)) + { + uint32 i = 0; + while((i < QUALITY_STEP) && (getPresetFloat(variable, i) < value) ) + i++; + return i; + } + // descending order + else + { + uint32 i = 0; + while((i < QUALITY_STEP) && (getPresetFloat(variable, i) > value)) + i++; + return i; + } +} -const sint32 CDisplaySettingsDetailsWidget::qualityToFxNbMaxPoly[ QUALITY_STEP ] = +int CDisplaySettingsDetailsWidget::getQualityPresetInteger(const std::string &variable) { - 2000, - 10000, - 20000, - 50000 -}; + CSystem &s = CSystem::GetInstance(); + + float value = s.config.getFloat(variable.c_str()); + + // ascending order + if (getPresetFloat(variable, 0) < getPresetFloat(variable, QUALITY_STEP-1)) + { + uint32 i = 0; + while((i < QUALITY_STEP) && (getPresetFloat(variable, i) < value) ) + i++; + return i; + } + // descending order + else + { + uint32 i = 0; + while((i < QUALITY_STEP) && (getPresetFloat(variable, i) > value)) + i++; + return i; + } +} QString CDisplaySettingsDetailsWidget::getQualityString( uint32 quality ) { @@ -245,7 +258,7 @@ QString CDisplaySettingsDetailsWidget::getTextureQualityString( uint32 quality ) break; case TEXQUALITY_HIGH: - return tr( "High (128 MB)" ); + return tr( "High (more than 128 MB)" ); break; default: diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.h b/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.h index 2ae1de132..f831378f1 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.h +++ b/code/ryzom/tools/client/client_config_qt/display_settings_details_widget.h @@ -58,30 +58,48 @@ private slots: private: /** - @brief Looks up and returns the "quality" ( see the enums on the top), that belongs to the specified value. - @param table - The lookup table you want to use. - @param value - The value that we want to look up. + @brief Looks up and returns the "quality" ( see the enums on the top), that belongs to the specified float value. + @param variable - The config variable. @return Returns the "quality" that best fits the specified value. */ - template< typename T > - int getQuality( const T *table, T value ) - { - if( table[ 0 ] < table[ QUALITY_STEP - 1 ] ) - { - uint32 i = 0; - while( ( i < QUALITY_STEP ) && ( table[ i ] < value ) ) - i++; - return i; - } - else - { - uint32 i = 0; - while( ( i < QUALITY_STEP ) && ( table[ i ] > value ) ) - i++; - return i; - } - } + int getQualityPresetFloat(const std::string &variable); + /** + @brief Looks up and returns the "quality" ( see the enums on the top), that belongs to the specified integer value. + @param variable - The config variable. + @return Returns the "quality" that best fits the specified value. + */ + int getQualityPresetInteger(const std::string &variable); + + /** + @brief Return the float value of the variable depending on the preset. + @param variable - The config variable. + @param preset - The preset to use (0-3). + @return Returns the float value. + */ + float getPresetFloat(const std::string &variable, sint preset); + + /** + @brief Return the integer value of the variable depending on the preset. + @param variable - The config variable. + @param preset - The preset to use (0-3). + @return Returns the integer value. + */ + int getPresetInteger(const std::string &variable, sint preset); + + /** + @brief Define the float value of the variable depending on the predefined preset. + @param variable - The config variable. + @param preset - The preset to use (0-3). + */ + void setFloatPreset(const std::string &variable, int preset); + + /** + @brief Define the integer value of the variable depending on the predefined preset. + @param variable - The config variable. + @param preset - The preset to use (0-3). + */ + void setIntegerPreset(const std::string &variable, int preset); /** @brief Retrieves the string that belongs to the specified quality. @@ -97,22 +115,6 @@ private: @return Returns a string describing the texture quality, Returns an empty string if an invalid value is specified. */ static QString getTextureQualityString( uint32 quality ); - - - ///////////////////////// Landscape values /////////////////////// - static const float qualityToZFar[ QUALITY_STEP ]; - static const float qualityToLandscapeTileNear[ QUALITY_STEP ]; - static const float qualityToLandscapeThreshold[ QUALITY_STEP ]; - static const float qualityToMicrovegetDensity[ QUALITY_STEP ]; - - //////////////////////// Character values //////////////////////// - static const sint32 qualityToSkinNbMaxPoly[ QUALITY_STEP ]; - static const sint32 qualityToNbMaxSkeletonNotCLod[ QUALITY_STEP ]; - static const float qualityToCharacterFarClip[ QUALITY_STEP ]; - - /////////////////////// FX values //////////////////////////////// - static const sint32 qualityToFxNbMaxPoly[ QUALITY_STEP ]; - }; #endif // DISPLAYSETTINGSDETAILSWIDGET_H From 17b390e5895517bdef0755fd432358b9665d62dd Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 19:29:03 +0100 Subject: [PATCH 178/184] Fixed: Clang warnings --- code/nel/include/nel/gui/ctrl_button.h | 2 +- code/nel/include/nel/gui/ctrl_text_button.h | 2 +- code/nel/include/nel/gui/dbgroup_combo_box.h | 2 +- code/nel/src/gui/dbgroup_combo_box.cpp | 2 +- .../src/interface_v3/interface_3d_scene.cpp | 22 +++++++++---------- .../src/interface_v3/interface_3d_scene.h | 12 +++++----- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/code/nel/include/nel/gui/ctrl_button.h b/code/nel/include/nel/gui/ctrl_button.h index 02b827329..1910ea72a 100644 --- a/code/nel/include/nel/gui/ctrl_button.h +++ b/code/nel/include/nel/gui/ctrl_button.h @@ -51,7 +51,7 @@ namespace NLGUI xmlNodePtr serialize( xmlNodePtr parentNode, const char *type ) const; // Init part - virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup * parentGroup); virtual void updateCoords(); diff --git a/code/nel/include/nel/gui/ctrl_text_button.h b/code/nel/include/nel/gui/ctrl_text_button.h index 4f5251a8b..69898639d 100644 --- a/code/nel/include/nel/gui/ctrl_text_button.h +++ b/code/nel/include/nel/gui/ctrl_text_button.h @@ -49,7 +49,7 @@ namespace NLGUI xmlNodePtr serialize( xmlNodePtr parentNode, const char *type ) const; // Init part - virtual bool parse (xmlNodePtr cur,CInterfaceGroup * parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup * parentGroup); virtual void checkCoords(); virtual void updateCoords(); diff --git a/code/nel/include/nel/gui/dbgroup_combo_box.h b/code/nel/include/nel/gui/dbgroup_combo_box.h index 1aac8bb1f..87e6d758a 100644 --- a/code/nel/include/nel/gui/dbgroup_combo_box.h +++ b/code/nel/include/nel/gui/dbgroup_combo_box.h @@ -64,7 +64,7 @@ namespace NLGUI uint getTextPos(uint nId) const; const ucstring &getTexture(uint i) const; void setGrayed(uint i, bool g); - const bool getGrayed(uint i) const; + bool getGrayed(uint i) const; void removeText(uint nPos); uint getNumTexts() const {return (uint)_Texts.size();} void sortText(); diff --git a/code/nel/src/gui/dbgroup_combo_box.cpp b/code/nel/src/gui/dbgroup_combo_box.cpp index 572d69ad4..184829e4c 100644 --- a/code/nel/src/gui/dbgroup_combo_box.cpp +++ b/code/nel/src/gui/dbgroup_combo_box.cpp @@ -321,7 +321,7 @@ namespace NLGUI } // *************************************************************************** - const bool CDBGroupComboBox::getGrayed(uint i) const + bool CDBGroupComboBox::getGrayed(uint i) const { if(i<_Grayed.size()) return _Grayed[i]; diff --git a/code/ryzom/client/src/interface_v3/interface_3d_scene.cpp b/code/ryzom/client/src/interface_v3/interface_3d_scene.cpp index d7fec407b..bb15d8d4b 100644 --- a/code/ryzom/client/src/interface_v3/interface_3d_scene.cpp +++ b/code/ryzom/client/src/interface_v3/interface_3d_scene.cpp @@ -786,7 +786,7 @@ CInterface3DCharacter::~CInterface3DCharacter() } // ---------------------------------------------------------------------------- -bool CInterface3DCharacter::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DCharacter::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; @@ -808,7 +808,7 @@ bool CInterface3DCharacter::parse (xmlNodePtr cur, CInterface3DScene *parentGrou _Char3D = new CCharacter3D; _Char3D->copyAnimation(copyAnim); - _Char3D->init (parentGroup->getScene()); + _Char3D->init (dynamic_cast(parentGroup)->getScene()); _Char3D->setPos (pos.x, pos.y, pos.z); _Char3D->setRotEuler ( rot.x * ((float)(NLMISC::Pi / 180)), rot.y * ((float)(NLMISC::Pi / 180)), @@ -1073,7 +1073,7 @@ CInterface3DIG::~CInterface3DIG() } // ---------------------------------------------------------------------------- -bool CInterface3DIG::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DIG::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; @@ -1095,8 +1095,8 @@ bool CInterface3DIG::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) setRotX (_Rot.x); setRotY (_Rot.y); setRotZ (_Rot.z); - _IG->addToScene (*parentGroup->getScene(), CViewRenderer::getInstance()->getDriver() ); - parentGroup->getScene()->setToGlobalInstanceGroup (_IG); + _IG->addToScene (*dynamic_cast(parentGroup)->getScene(), CViewRenderer::getInstance()->getDriver() ); + dynamic_cast(parentGroup)->getScene()->setToGlobalInstanceGroup (_IG); return true; } @@ -1235,7 +1235,7 @@ CInterface3DShape::~CInterface3DShape() } // ---------------------------------------------------------------------------- -bool CInterface3DShape::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DShape::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; @@ -1249,7 +1249,7 @@ bool CInterface3DShape::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) ptr = xmlGetProp (cur, (xmlChar*)"name"); if (ptr) _Name = toLower((const char*)ptr); - _Instance = parentGroup->getScene()->createInstance(_Name); + _Instance = dynamic_cast(parentGroup)->getScene()->createInstance(_Name); if (_Instance.empty()) return false; @@ -1385,7 +1385,7 @@ void CInterface3DShape::setName (const std::string &ht) // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- -bool CInterface3DCamera::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DCamera::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; @@ -1422,12 +1422,12 @@ CInterface3DLight::~CInterface3DLight() } // ---------------------------------------------------------------------------- -bool CInterface3DLight::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DLight::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; - _Light = parentGroup->getScene()->createPointLight(); + _Light = dynamic_cast(parentGroup)->getScene()->createPointLight(); CXMLAutoPtr ptr((const char*)xmlGetProp (cur, (xmlChar*)"pos")); if (ptr) _Pos = convertVector(ptr); @@ -1514,7 +1514,7 @@ CInterface3DFX::~CInterface3DFX() } // ---------------------------------------------------------------------------- -bool CInterface3DFX::parse (xmlNodePtr cur, CInterface3DScene *parentGroup) +bool CInterface3DFX::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { if (!CInterfaceElement::parse(cur, parentGroup)) return false; diff --git a/code/ryzom/client/src/interface_v3/interface_3d_scene.h b/code/ryzom/client/src/interface_v3/interface_3d_scene.h index cabfb0184..5343390c8 100644 --- a/code/ryzom/client/src/interface_v3/interface_3d_scene.h +++ b/code/ryzom/client/src/interface_v3/interface_3d_scene.h @@ -148,7 +148,7 @@ public: CInterface3DCharacter(); virtual ~CInterface3DCharacter(); - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); virtual void checkCoords(); @@ -236,7 +236,7 @@ public: virtual ~CInterface3DShape(); - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); NL3D::UInstance getShape() { return _Instance; } @@ -295,7 +295,7 @@ public: virtual ~CInterface3DIG(); - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); NL3D::UInstanceGroup *getIG() { return _IG; } @@ -357,7 +357,7 @@ public: _Dist = 0; } - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); float getFOV() { return _FOV; } NLMISC::CVector getPos() { return _Pos; } NLMISC::CVector getTarget() { return _Target; } @@ -436,7 +436,7 @@ public: virtual ~CInterface3DLight(); - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); float getPosX() const { return _Pos.x; } float getPosY() const { return _Pos.y; } @@ -498,7 +498,7 @@ public: virtual ~CInterface3DFX(); - virtual bool parse (xmlNodePtr cur, CInterface3DScene *parentGroup); + virtual bool parse (xmlNodePtr cur, CInterfaceGroup *parentGroup); virtual void checkCoords(); From d76dc8fe561568118e6ed311276fc583d637e97b Mon Sep 17 00:00:00 2001 From: kaetemi Date: Sat, 19 Mar 2016 22:13:38 +0100 Subject: [PATCH 179/184] Compile fix --- code/nel/include/nel/pipeline/tool_logger.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/nel/include/nel/pipeline/tool_logger.h b/code/nel/include/nel/pipeline/tool_logger.h index 714f46d2d..3abd72f47 100644 --- a/code/nel/include/nel/pipeline/tool_logger.h +++ b/code/nel/include/nel/pipeline/tool_logger.h @@ -103,7 +103,7 @@ public: { releaseError(); - m_ErrorLog = nlfopen(errorLog, "wt"); + m_ErrorLog = NLMISC::nlfopen(errorLog, "wt"); fwrite(s_ErrorHeader.c_str(), 1, s_ErrorHeader.length(), m_ErrorLog); fwrite("\n", 1, 1, m_ErrorLog); fflush(m_ErrorLog); @@ -114,7 +114,7 @@ public: { releaseDepend(); - m_DependLog = nlfopen(dependLog, "wt"); + m_DependLog = NLMISC::nlfopen(dependLog, "wt"); fwrite(s_DependHeader.c_str(), 1, s_DependHeader.length(), m_DependLog); fwrite("\n", 1, 1, m_DependLog); // fflush(m_DependLog); From c83f467be17f93c9a27480f4b396c903256b4031 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Sat, 19 Mar 2016 22:13:38 +0100 Subject: [PATCH 180/184] Fix random thunder activation caused by rounding error in setup interpolation --- code/nel/src/misc/bitmap.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/nel/src/misc/bitmap.cpp b/code/nel/src/misc/bitmap.cpp index 11a27e67e..5574a8597 100644 --- a/code/nel/src/misc/bitmap.cpp +++ b/code/nel/src/misc/bitmap.cpp @@ -3106,11 +3106,17 @@ bool CBitmap::blit(const CBitmap *src, sint32 x, sint32 y) // Private : float CBitmap::getColorInterp (float x, float y, float colorInXY00, float colorInXY10, float colorInXY01, float colorInXY11) const { + if (colorInXY00 == colorInXY10 + && colorInXY00 == colorInXY01 + && colorInXY00 == colorInXY11) + return colorInXY00; // Fix rounding error for alpha 255... + float res = colorInXY00*(1.0f-x)*(1.0f-y) + colorInXY10*( x)*(1.0f-y) + colorInXY01*(1.0f-x)*( y) + colorInXY11*( x)*( y); - clamp (res, 0.0f, 255.0f); + clamp(res, 0.0f, 255.0f); + return res; } From d11053aa03d28627b95d40f24ae3ba1337fbfe62 Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 20 Mar 2016 17:08:44 +0100 Subject: [PATCH 181/184] Fixed: Compilation (missing NLMISC namespaces for nlfopen) --- code/ryzom/common/src/game_share/bmp4image.h | 2 +- code/ryzom/server/src/pd_lib/pd_server_utils.h | 2 +- code/ryzom/tools/pd_parser/templatizer.h | 2 +- .../tools/sheet_random_generator/srg_utilities.h | 16 ++++++++-------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/ryzom/common/src/game_share/bmp4image.h b/code/ryzom/common/src/game_share/bmp4image.h index 4ecbd79f5..397a553b2 100644 --- a/code/ryzom/common/src/game_share/bmp4image.h +++ b/code/ryzom/common/src/game_share/bmp4image.h @@ -65,7 +65,7 @@ public: /*bool write(char *filename) { - FILE *outf=nlfopen(filename, "wb"); + FILE *outf=NLMISC::nlfopen(filename, "wb"); if (outf==NULL) return false; diff --git a/code/ryzom/server/src/pd_lib/pd_server_utils.h b/code/ryzom/server/src/pd_lib/pd_server_utils.h index 2e7c06363..2d3979f6b 100644 --- a/code/ryzom/server/src/pd_lib/pd_server_utils.h +++ b/code/ryzom/server/src/pd_lib/pd_server_utils.h @@ -283,7 +283,7 @@ public: if (_File != NULL) return false; - _File = nlfopen(filename, mode); + _File = NLMISC::nlfopen(filename, mode); if (_File == NULL) return false; diff --git a/code/ryzom/tools/pd_parser/templatizer.h b/code/ryzom/tools/pd_parser/templatizer.h index 5087e033a..e6b67708b 100644 --- a/code/ryzom/tools/pd_parser/templatizer.h +++ b/code/ryzom/tools/pd_parser/templatizer.h @@ -1009,7 +1009,7 @@ public: std::string result = ITemplatizerBloc::eval(env); FILE* f; - f = nlfopen(filename, (clearfile == "true" ? "w" : "a")); + f = NLMISC::nlfopen(filename, (clearfile == "true" ? "w" : "a")); if (f != NULL) { fwrite(result.c_str(), 1, result.size(), f); diff --git a/code/ryzom/tools/sheet_random_generator/srg_utilities.h b/code/ryzom/tools/sheet_random_generator/srg_utilities.h index 686b22418..2ba257b61 100644 --- a/code/ryzom/tools/sheet_random_generator/srg_utilities.h +++ b/code/ryzom/tools/sheet_random_generator/srg_utilities.h @@ -863,7 +863,7 @@ void loadNomenclatureCodes( const char *title, const vector& longNames, vector::iterator iarg; vector::const_iterator ivs; - if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) + if ( (rulesFile = NLMISC::nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1122,7 +1122,7 @@ void loadCSVFile( const char *filename, TMapDeliveryCallback deliveryCallback, b vector args; vector::iterator iarg; - if ( (file = nlfopen( filename, "r" )) == NULL ) + if ( (file = NLMISC::nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1179,7 +1179,7 @@ void loadCSVFile( const char *filename, TVectorDeliveryCallback deliveryCallback vs args; vs::iterator iarg; - if ( (file = nlfopen( filename, "r" )) == NULL ) + if ( (file = NLMISC::nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1218,7 +1218,7 @@ void loadValueFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) + if ( (rulesFile = NLMISC::nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1272,7 +1272,7 @@ void loadRulesFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) + if ( (rulesFile = NLMISC::nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1583,7 +1583,7 @@ void loadTitles( const string& sourceWords, const string& sourceBase, const stri void extractRawMaterialNames() { loadCSVFile( ExtractNamesCsv.c_str(), readRMNames ); - FILE *output = nlfopen( CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv", "wt" ); + FILE *output = NLMISC::nlfopen( CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv", "wt" ); fprintf( output, "Code;Name\n" ); for ( mss::const_iterator iun=UniqueRMNamesAndSheetCodeHead.begin(); iun!=UniqueRMNamesAndSheetCodeHead.end(); ++iun ) { @@ -2344,7 +2344,7 @@ public: if ( ! _Enabled ) return; - _File = nlfopen( filename, "wt" ); + _File = NLMISC::nlfopen( filename, "wt" ); fprintf( _File, ("\n\n" + title + "\n\n").c_str() ); } @@ -2409,7 +2409,7 @@ public: if ( ! _Enabled ) return; - _File = nlfopen( filename, "wt" ); + _File = NLMISC::nlfopen( filename, "wt" ); } /// From e6729fb0e53bc48f2efcf09a8012f7988a55fa6c Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 20 Mar 2016 17:27:25 +0100 Subject: [PATCH 182/184] Fixed: Compilation (missing NLMISC namespaces for nlfopen) --- code/nel/tools/3d/lightmap_optimizer/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/tools/3d/lightmap_optimizer/main.cpp b/code/nel/tools/3d/lightmap_optimizer/main.cpp index 2e1f0f47c..077cc83b5 100644 --- a/code/nel/tools/3d/lightmap_optimizer/main.cpp +++ b/code/nel/tools/3d/lightmap_optimizer/main.cpp @@ -998,7 +998,7 @@ int main(int nNbArg, char **ppArgs) ChDir (sExeDir); // out a text file, with list of - FILE *out = nlfopen(ppArgs[4], "wt"); + FILE *out = NLMISC::nlfopen(ppArgs[4], "wt"); if(!out) { From 5f53c6caa61006b12c45773fb1de5950f0e8120e Mon Sep 17 00:00:00 2001 From: Nimetu Date: Tue, 22 Mar 2016 11:11:47 +0200 Subject: [PATCH 183/184] Added: AppZone and WebBrowser components --- code/ryzom/client/client_default.cfg | 1 + .../data/gamedev/interfaces_v3/appzone.lua | 192 +++++++++++++ .../data/gamedev/interfaces_v3/appzone.xml | 258 ++++++++++++++++++ .../data/gamedev/interfaces_v3/reset.xml | 8 +- .../data/gamedev/interfaces_v3/taskbar.xml | 5 +- .../data/gamedev/interfaces_v3/webbrowser.lua | 161 +++++++++++ .../data/gamedev/interfaces_v3/widgets.xml | 198 +++++++++++++- 7 files changed, 819 insertions(+), 4 deletions(-) create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/appzone.lua create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/appzone.xml create mode 100644 code/ryzom/client/data/gamedev/interfaces_v3/webbrowser.lua diff --git a/code/ryzom/client/client_default.cfg b/code/ryzom/client/client_default.cfg index cc0a1e02b..f020283f9 100644 --- a/code/ryzom/client/client_default.cfg +++ b/code/ryzom/client/client_default.cfg @@ -454,6 +454,7 @@ XMLInterfaceFiles = { "config.xml", "widgets.xml", "webig_widgets.xml", + "appzone.xml", "player.xml", "inventory.xml", "interaction.xml", diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/appzone.lua b/code/ryzom/client/data/gamedev/interfaces_v3/appzone.lua new file mode 100644 index 000000000..1332eb3d5 --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/appzone.lua @@ -0,0 +1,192 @@ + +-- global +AppZone = { + id = "ui:interface:appzone", + homeuri = "?action=appzone_toolbar", + launchuri = "?action=launch_app", + addappuri = "?action=list_user_apps", + mode = "h_bar", + imagesize = 26 +} + +-- use client.cfg value when available +local uri getClientCfg("AppZoneUrl") +if uri == nil or uri == '' then + uri = 'http://app.ryzom.com/' +end + +AppZone.homeuri = uri .. AppZone.homeuri +AppZone.launchuri = uri .. AppZone.launchuri +AppZone.addappuri = uri .. AppZone.addappuri + +function AppZone:getRoot() + return getUI(self.id) +end + +function AppZone:onButtonHome() + local webig = getUI("ui:interface:webig") + webig:find("html").url = self.addappuri + webig.active = true +end + +function AppZone:calculateSize(count, spacer, mode) + local w, h + if mode == "h_bar" then + -- icon=32, space=2+2 + w = count * self.imagesize + spacer * 15 + w = w + 55 + 10 + 20 + h = self.imagesize + 2 + elseif mode == "h_box" then + w = count * self.imagesize + w = w + 20 + h = self.imagesize + 2 + h = h * spacer + h = h + 15 + elseif mode == "v_bar" then + -- icon=32, space=2+2 + h = count * self.imagesize + spacer * 15 + h = h + 20 + 20 + 12 + w = self.imagesize + 2 + 18 + else + h = count * self.imagesize + h = h + 20 + 25 + w = self.imagesize + 2 + w = w * spacer + w = w + 16 + end + + local ui = getUI("ui:interface") + if w > ui.w then + w = ui.w + end + if h > ui.h then + h = ui.h + end + + return w, h +end + +function AppZone:setElementCount(count,spacer,m) + self.mode = m + + local root = self:getRoot() + local content = root:find("content") + local html = root:find("html") + + local button_toggle = root:find("toggle_mode") + local button_reload = root:find("browse_reload") + local button_home = root:find("browse_home") + + local w, h = self:calculateSize(count, spacer, self.mode) + root.h = h + root.w = w + content.w = w + content.h = h + + -- set position of buttons + if self.mode == "h_bar" then + -- button_toggle.posref = "BL BL" + button_toggle.x = 2 + button_toggle.y = 0 + -- button_reload.posref = "TL BL" + html.x = 15 + html.y = 0 + button_reload.x = -25 + button_reload.y = -25 + -- button_home.posref = "BR BR" + button_home.x = 0 + button_home.y = -3 + 5 + elseif self.mode == "h_box" then + -- button_toggle.posref = "TL TL" + button_toggle.x = 2 + button_toggle.y = h - 15 + -- button_reload.posref = "TL BL" + html.x = 0 + html.y = -20 + button_reload.x = -25 + button_reload.y = -4 - 20 + -- button_home.posref = "BR BR" + button_home.x = 0 + button_home.y = -3 + h - 18 + elseif self.mode == "v_bar" then + -- button_toggle.posref = "TL TL" + button_toggle.x = 2 + button_toggle.y = h - 15 + -- button_reload.posref = "TL BL" + html.x = 0 + html.y = -20 + button_reload.x = 0 + button_reload.y = -4 + -- button_home.posref = "BR BR" + button_home.x = 4 - 7 + button_home.y = -3 + else + -- button_toggle.posref = "TL TL" + button_toggle.x = 2 + button_toggle.y = h - 15 + -- button_reload.posref = "TL BL" + html.x = 0 + html.y = -20 + button_reload.x = -25 + button_reload.y = -4 - 20 + -- button_home.posref = "BR BR" + button_home.x = 0 - w + 54 + 12 + button_home.y = -3 + end +end + +function AppZone:setMode(m) + self.mode = m + + self:reload() +end + +function AppZone:setActive(s) + self:getRoot().active = s +end + +function AppZone:launchApp(appid, appwin, appurl) + if not appwin then + if string.match(appid, "^[0-9]+$") then + appwin = "app" .. tostring(appid) + else + appwin = "webig" + end + end + + if not appurl then + appurl = self.launchuri .. "&appid=" .. tostring(appid) + end + + if WebBrowser then + WebBrowser:openWindow(appwin, appurl) + else + -- fallback if WebBrowser not present + local webig = getUI("ui:interface:webig") + webig:find("html").url = appurl; + webig.active = true + end +end + +function AppZone:reload() + local url = self.homeuri + url = url .. "&mode=" .. tostring(self.mode) + + local html = self:getRoot():find("html") + html.url = url +end + +-- slash command: /appzone +function AppZone:handle(cmd) + if cmd == 'show' then + self:setActive(true) + elseif cmd == 'hide' then + self:setActive(false) + elseif cmd == 'reload' then + self:reload() + elseif cmd == 'list' then + self:onButtonHome() + else + self:launchApp(cmd) + end +end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/appzone.xml b/code/ryzom/client/data/gamedev/interfaces_v3/appzone.xml new file mode 100644 index 000000000..c6f08c3b2 --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/appzone.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml b/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml index 1d7e0c66d..8c14f2567 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/reset.xml @@ -91,7 +91,11 @@ - + + + + + @@ -470,4 +474,4 @@ - \ No newline at end of file + diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml index 0c42103f3..e497f25e3 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.xml @@ -1091,7 +1091,10 @@ - + + + diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/webbrowser.lua b/code/ryzom/client/data/gamedev/interfaces_v3/webbrowser.lua new file mode 100644 index 000000000..f51d7a9da --- /dev/null +++ b/code/ryzom/client/data/gamedev/interfaces_v3/webbrowser.lua @@ -0,0 +1,161 @@ + +-- global +WebBrowser = { + template = "webig_browser", + apps = {} +} + +function WebBrowser:openWindow(id, url) + -- default value if url is not set + url = url or "http://app.ryzom.com/" + + local newWindow = false + local app = self:findAppById(id) + + if not app then + app = {} + app.id = id + app.title = "" + app.url = url + -- getUI() object + app.uiWindow = nil + app.winid = "ui:interface:" .. id + app.winw = 780 + app.winh = 500 + app.minimized = true + app.activeUrl = "" + + table.insert(self.apps, app) + end + + if not app.uiWindow then + -- if there is window present (eg, 'webig'), then reuse it + app.uiWindow = getUI(app.winid, false) + if not app.uiWindow then + app.uiWindow = createRootGroupInstance(self.template, app.id, { + x = 0, y = 0, w = app.winw, h = app.winh, home = app.url, + browse_redo = "ui:interface:" .. app.id .. ":browser:header_opened:browse_redo", + browse_undo = "ui:interface:" .. app.id .. ":browser:header_opened:browse_undo", + browse_refresh = "ui:interface:" .. app.id .. ":browser:header_opened:browse_refresh" + }) + if not app.uiWindow then + return + end + app.uiWindow:center() + end + + newWindow = true + end + + app.activeUrl = url + + -- trigger on_open event + if not app.uiWindow.opened then + app.uiWindow.opened = true + end + + -- trigger on_active event + if not app.uiWindow.active then + app.uiWindow.active = true + end + + local html = app.uiWindow:find("html") + html:browse(url) + + setTopWindow(app.uiWindow) +end + +function WebBrowser:findAppById(id) + for k,app in pairs(self.apps) do + if app.id == id then + return app + end + end + return nil +end + +function WebBrowser:findAppFromUiCaller() + -- id = app123 + local id = getUICaller().id:match("ui:interface:([^:]*):?") + local app = self:findAppById(id) + if app then + return app + end +end + +function WebBrowser:onActive() + if app then + self:restoreWindow(app) + end +end + +function WebBrowser:onClickHeaderClose() + local app = self:findAppFromUiCaller() + if app then + self:saveWindow(app) + end +end + +function WebBrowser:onClickHeaderOpen() + local app = self:findAppFromUiCaller() + if app then + self:restoreWindow(app) + end +end + +-- save current window dimension and minimize window +function WebBrowser:saveWindow(app) + app.minimized = true + app.winw = app.uiWindow.w + app.winh = app.uiWindow.h + -- minimize + app.uiWindow.w = 150 + app.uiWindow.h = 0 +end + +function WebBrowser:restoreWindow(app) + if app.minimized then + app.uiWindow.w = app.winw + app.uiWindow.h = app.winh + app.minimized = false + end +end + +function WebBrowser:onClickRedo() + -- caller is :header_opened:browse_redo + local uiWindow = getUICaller().parent.parent + local html = uiWindow:find("html") + if html ~= nil then + runAH(nil, "browse_redo", "name=" .. html.id) + end +end + +function WebBrowser:onClickUndo() + -- caller is :header_opened:browse_undo + local uiWindow = getUICaller().parent.parent + + local html = uiWindow:find("html") + if html ~= nil then + runAH(nil, "browse_undo", "name=" .. html.id) + end +end + +function WebBrowser:onClickRefresh() + -- caller is :header_opened:browse_refresh + local uiWindow = getUICaller().parent.parent + + local html = uiWindow:find("html") + if html ~= nil then + html:refresh() + end +end + +function WebBrowser:onClickHome() + -- caller is :header_opened:browse_home + local uiWindow = getUICaller().parent.parent + + local html = uiWindow:find("html") + if html ~= nil then + html:browse("home") + end +end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml index 10431b84c..b806edb8d 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml @@ -6927,7 +6927,203 @@ - + + + + + + +

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%0A@YO~~ORaS92GSo9uNl0<41Iqo#&%t?F# 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