From d565fb903b0256819c57f0924a39f4c42e71654a Mon Sep 17 00:00:00 2001
From: llea <llea>
Date: Tue, 11 Jan 2005 20:32:35 +0000
Subject: [PATCH] Fix config-file and apply feature

---
 src/audiocodec.cpp           |  12 -
 src/audiortp.cpp             |   9 -
 src/configuration.cpp        |  57 ---
 src/configurationpanel.ui    |   9 +-
 src/configurationpanel.ui.h  |  65 ++-
 src/configurationpanelui.cpp | 768 ++++++++++++++++-------------------
 src/configurationpanelui.h   |   3 +-
 src/manager.cpp              |   7 +-
 src/manager.h                |   4 +-
 src/phonebookui.cpp          |   2 +-
 src/phonebookui.h            |   2 +-
 src/qtGUImainwindow.cpp      |  65 +--
 src/qtGUImainwindow.h        |   1 +
 src/sip.cpp                  | 112 +----
 src/url_inputui.cpp          |   2 +-
 src/url_inputui.h            |   2 +-
 16 files changed, 464 insertions(+), 656 deletions(-)

diff --git a/src/audiocodec.cpp b/src/audiocodec.cpp
index 05a4a49a5c..cd168c968a 100644
--- a/src/audiocodec.cpp
+++ b/src/audiocodec.cpp
@@ -30,18 +30,6 @@ using namespace std;
 
 AudioCodec::AudioCodec (void) {
 	// Init array handleCodecs
-#if 0
-	handleCodecs[0] = matchPayloadCodec(
-		Config::gets(QString("Audio/Codecs.codec1")));
-	handleCodecs[1] = matchPayloadCodec(
-		Config::gets(QString("Audio/Codecs.codec2")));
-	handleCodecs[2] = matchPayloadCodec(
-		Config::gets(QString("Audio/Codecs.codec3")));
-	handleCodecs[3] = matchPayloadCodec(
-		Config::gets(QString("Audio/Codecs.codec4")));
-	handleCodecs[4] = matchPayloadCodec(
-		Config::gets(QString("Audio/Codecs.codec5")));
-#endif
 	handleCodecs[0] = matchPayloadCodec(Config::gets("Audio", "Codecs.codec1"));
 	handleCodecs[1] = matchPayloadCodec(Config::gets("Audio", "Codecs.codec2"));
 	handleCodecs[2] = matchPayloadCodec(Config::gets("Audio", "Codecs.codec3"));
diff --git a/src/audiortp.cpp b/src/audiortp.cpp
index fd50997f2a..9702d80de0 100644
--- a/src/audiortp.cpp
+++ b/src/audiortp.cpp
@@ -48,15 +48,6 @@ AudioRtp::AudioRtp (SIP *sip, Manager *manager) {
 	this->sip = sip;
 	this->manager = manager;
 	RTXThread = NULL;
-#if 0	
-	if (!manager->useStun()) {
-		if (Config::gets("Signalisations/SIP.sipproxy")) {
-			svr = Config::gets("Signalisations/SIP.sipproxy");
-		}
-	} else {
-		svr = Config::gets("Signalisations/SIP.hostPart");
-	}
-#endif
 	if (!manager->useStun()) {
 		if (Config::gets("Signalisations", "SIP.sipproxy") == NULL) {
 			svr = Config::gets("Signalisations", "SIP.sipproxy");
diff --git a/src/configuration.cpp b/src/configuration.cpp
index a8a955dbd7..fc989cc24c 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -18,69 +18,12 @@
  */
 
 #include <qstring.h>
-#include <qsettings.h>
 
 #include "configuration.h"
 #include "configurationtree.h"
 
 static ConfigurationTree	*globalConfigTree = NULL;
 
-#if 0
-QString
-Config::gets (QString key) {
-	return Config::get (key, QString(""));
-}
-
-QString
-Config::get	(QString key, QString defval) {
-	QSettings settings;
-	return settings.readEntry (QString(CFG_PFX) + QString("/") + key, defval);
-}
-
-int
-Config::geti (QString key) {
-	return Config::get (key, 0);
-}
-
-int
-Config::get	(QString key, int defval) {
-	QSettings settings;
-	return settings.readNumEntry (QString(CFG_PFX) + QString("/") + key,defval);
-}
-
-bool
-Config::getb (QString key) {
-	return Config::get (key, false);
-}
-
-bool
-Config::get	(QString key, bool defval) {
-	QSettings settings;
-	return settings.readBoolEntry (QString(CFG_PFX) + QString("/") + key,
-			defval);
-}
-
-QString
-Config::set	(QString key, QString val) {
-	QSettings settings;
-	settings.writeEntry (QString(CFG_PFX) + QString("/") + key, val);
-	return val;
-}
-
-int
-Config::set	(QString key, int val) {
-	QSettings settings;
-	settings.writeEntry (QString(CFG_PFX) + QString("/") + key, val);
-	return val;
-}
-
-bool
-Config::set	(QString key, bool val) {
-	QSettings settings;
-	settings.writeEntry (QString(CFG_PFX) + QString("/") + key, val);
-	return val;
-}
-#endif
 string
 Config::gets (const char *section, const char *key) {
 	return Config::get (section, key, "");
diff --git a/src/configurationpanel.ui b/src/configurationpanel.ui
index 9dad98ccc6..0296a4ce40 100644
--- a/src/configurationpanel.ui
+++ b/src/configurationpanel.ui
@@ -1214,7 +1214,7 @@ Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
 </widget>
 <images>
     <image name="image0">
-        <data format="PNG" length="4927">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade0000130649444154789ced5d6d685b579a7e4ef01635b88354da6287b4c4a52d91a729234ff2c3ceb644eeec8f959242a5b6503b3330929d21767797a99dfe49d221b5d3a575d4928e9d92c6ca10623be0b15448240da46379f0ac14686279712a39346005a728c12db1f11a8d3085677f5c4bd695ae3eaee4f463aaf3e7c1bee7bce73de7bee739ef7def7bae700fc020808d4292e43c49928135e42ab9d1fd54f0a78b651ba8e7cb1803f3a4e1f438719cc4b1b19c681c26bb2e874992dff7c02bf8e3c5921a861748cf1ca97578083789e363aa51eb236d175931e00aaa46550d48d278ae30a3aa45e330195b8e575c880a16854555e42a198895c6a86ab067325c31dc0a16c48215c20b711a9c1bcbacf9d0707abce23254302fe6adc00552ebbbff0c9b895a87a762b815cc89392f8417e2d43a4a60cc010fe124717a9c709226f71449722c12e354ac7839daf7c6ca365c92ec3f3d48dbc10edada3bd6d046dbc10ef639fac83932168bfd685c1292f45cf490f18d5bd0f1e538fb1c31dada3bd8b8c7485bbb8d9c2b4dfefdd04f09378661dff3706e99e432f396c01cbf13c6659c0c8f86a9df6960cfce3eea771a68d8d998f3efc3c77a7e14cc7ef8584f4a7fae6e8cbee327c7b3e6a3eb5057490bf97ee85714d3c657a99a618b2936df54493e6e298c6b3bd821bb11a6bd16f69f1e2417c8a1e131ce396234ee35a5ae1b7636722a34f583675c52d29f0b1b63105ca06c9e0c3b1b696bef2879016fb47e4533ad31a4d207f51736d8c6d140593eaef15ca06883222963d480732ae704f24b9233a4c7e7c92b9f5f72435c95bcd7cb6026c6a89ad948b2718f316b079abb1ccb3b5fdf857e8ce59f6f3108c002c00dc0b44c6ef9d0055459816f8b439b2104e7bf372057b1ff2584b3d30d45cbcb8543fbeec0f4dc16e14ed35709a3a129b61d78030924a081068dc626f4f6390ab64b47fb0269fdaf56446f465372d2d16434a1b3dd0eed334f0af31e23132b0968aa35088efae17c4c887479d393011e79fb0896569660d0ebd17c7e4424f54c5c00baaf7623b19290c937e8f530fcc280ee37bbe114ebf29a1d319a2f98a18106273e3801c30bbbc5c8e9413acf3853edb5353a2cdd5d44020944ce86e07c4eae4f12937a2b8d2f321a82f34921ec7364f37f9a53f2d2eb69aa351834f643d7ae83668b745f8ad14f53ad498d37a99f9de4c0274ef82ef910bd1b95f5a3add1c1f5f21034af6a90f8d966e106b02975a348d69ff1023bac005c4563ebb3b90d361805ce261a54c9cb856f7c550bdd2a59c8e01a0c0db209ae9da8c1febd16365f8e71763240fb2a59c870eb4d0d88de8c4253ad41643484d04810916008cdc626b4a005be091f5a3becd0c5c9d6aa56249040622501b3cd9c252ffa41144b2b4bd04083a5c5255800381dfd6c3bf006da26da605a31a1b6a6167dbf3e01c32e033ab59d989e9dc5c80537ea7735c03eb7aeaff982192d68910cbbca0037007da24e36dee6bbc6d4df473eedcd39cee0477e249048c94bb61f3c3808d4accdc36b0d68be6b446d4d2d22a3210c7ed29f9a87c44a02af5cda0f5f871f6af433ad9864fad94936199be13ce344f46e145d5bbb60da6782f75d2fea9eae43f35d23767ffc225eb498a1fb52baff29a6edbe38c5b3d74b60c447fce0816645a3ed8c02a7ce97c7b0e9d873d08adac7949943c6947364fd6b0d590c92c9147abd1ecdffda8cd616ab8cd1ec2443d321d435fc328ba177ef3430c54893210c9c77229d49bc175d29e6b193acdfb5ae47643404ef175e1c7de7381248405bad45677b274cadafc8fab1cf90f5b6b476be109c8f0931b0b391c97eeced76b4fcae4d74b777707a7a3a8ba95b5e6d41d34b7b856f788c75ff5b07e7d20050a541c32f1ad079c00ea710a26586fc655a3f967d16d4fde168c179c81ad76408cecdeaf533ef33c37ea013c9eb26a309fabee3b2fbeb38d643df251f1248a07157239a3e3e25365900e856497755898cf86833225f2b33ed4035ca66d874749cf7c2cec24ce97c5288c8d5105a5e6f45cfcb3d8a8c625a31e1cad52b707ce840fdae065882f1945ca71022fd46454353b4cf90fbf75a5206db8216e006d079c00e4db5665dfe2d6d4a8f23eff4a6faebdada05e79342dc3dbb946adfd9916db01600cee784187b6b28a56f775f372c804cff961d2d52fd67adb2f1053e0aa0f9fc88687a69af7003707ce840db441beaa6f5b872f50a9c679c18feb30b16000f7e0ba48fa777df11b91e19f3a00b91f619d2bccf2c9bcfd08d5049fae1265206db821644bf8ac2be40464353b4af92ba49d25065485dbf72f50aec24c5204af365d3b1f1652b823b940df7c495280e4dd46d08d34abe6d14a6e79e54e5a35a00246231d66a6be1bf1684e1a61e6d7f7d23cb678d5c0dc129245faef3e36e4c5f0da5b67645df6f8d61161d319e5df3e534d51a0427fc88de8ca2f5803dd5bee7edc3687a69af9031f55a7f4afa4e4f06d8fd66778a91ed7f9bc8c164364e4fcfa6f4eabc76258ba9eedcbd037c0ba00ad0543f8881f74f48e38c93f52f643366fa8ea5661ed4ea97d97f21d4566b317ed12bf9b4e60be531e2954b2e658b05d0dd58873ee3c6316e74a5ae68434d47cd962dc2b95908c30bbb85dbfeb018bc30227ade392c630ce7274e348e8659ff5a03ae4c04010091b321842e0611b91a42d75b5d8a0cd3fd7aad8cc1eb7735c0dad28aa59525b4a005b535b548329facfd7428a7becd5b9b520ca3abd6a5982cd93ec964adcfb6ca6e6ca69cae3f1c154d1f9f1227ce9c124d1f9f12bd7d0e915c28a11b21c5f1b801d49c1c67fd6b0da89da881ae5a27f9f669f390b9e394a25f66ffa67d26448221745ebb2202d7a64526daff3621123fdb2c362596e39cfe06c07517006bc9e89abd93c77081b1ed7724c62cb39fa39fb90aba0876ae6d3105ea99f798318291d4842eae98f0cafbfb658ce97c4e88c52d42388510a6d75e11fe9a8954fd86ed0d700358dc2284699f091a6864f2927f0fbd3cb81edd30ac3f1d8f5c70e75c68d6c3ada9f67dbb7aa48597267fe4fa082c0086bf70c9fa53b3901bb637c8f44d8ec7be401e3adf0d0d34f055fbe0bde482f3c9f579687dd52a1b1fb6a324fd1a0cf2fe7b0f1e81f301e59d27118ba51ec237a1ea4194cd805a3facfada9c460b00567d2d781018ff6df98c3b7c3dbfc1d6ef6a80ef801ff5bb1aa0774ed1373a26f94871d24e727632c0c6d1b06c6beadada85ee5d72c6c4b45ceef1435d4c867fd219c60da0f7ed23729f6e8d41b45a2d74afeb52f59c0303a9ebbe091ff4ce29269f8a9306d3f67a0b0d370da9f6f5edf545fb8c6a7620dc90fbb4c9f178af7953f25005d98e6027696d692dd9a7cdf499bdef7a53d79b5e6b96454b7471d2128cd3bcc748e74bc3ebd1035ba95183246abd608739afc12a15f1891ff8a6b9a47ebb7e6b85fe09e515a9598eb3adb30dd3b3b345fb4a06bd1ebd477b51f7741dac2df2f8acb64687c4ca3f147dba4c1fb0f15898af5cda2fab97f4ed640b6b816cb629c73fd3b1aea60efd1f9c80f619c98777ee3132a98792cf585753078bc75d30ba92330a90f4e9d7c250e971dc62e6c1bdd7c2649c5549bfa46f9ea947fa3341aef9a87bba0eae9161388510e857fb062c0d2d6bc930a596c3fe70896fc80abf99e102d9e7e8a3d2bb75fd4e03c78e7ba49c838ce410921c1a1da3e7e4386d073b387e729c5d87bac8194aaf7a83710e9e1e246748c6e57a24731e6c073be83939ce3e475f5e3d3d3e8fac7eb2bf3e47bfe2ab508fcfb3aecfda1b2392a9f681c9e2df1ca6cf53723c596ff04e0f727c4d2fcfc97169be664886289b8762f5cbf7e651a93fdbc10e8647c3e4a47c9e5152deeb49296b6b234a60ee1e31a0ae7fade3879fdc52c1fb8750cb74435fb2603697eab24cf6cda8d323dfc0b84ac6e264d765d218920e53c6e2ac9c0afe27c1e299f6bde2b2b9ca296af26df30d6c5b0ee63638cb67e8f8aaa46b60fe1e496579e9d703f3f73674a1c4732cbcc0fc3d8617a4234b3d0bd229e98de8affff339dae6a4a4a5f002195e908fc7f3658cc661e9ba84e3ec5928fdcc5f78e11e7b16e4f22c11b9bce29876e0bedb6baac496cb67da52db15833d41b9bc4cc32595fb0dc4cacf124b9e7e369ccef0a59795f39403f3e5ed2cfd9f67cbd5fae4e3188ae4be4f5d978b3ff34792963cd980e9f3bca9607cf4a60becc077566a1f02e60e168ed7ba91fba9b8d476c5e0d1cfe4f27aff1e91c757ff1c54ec77f719178687494d11493f4a3870358aa58419b8eec2f43719e37d088ae3f56b4a1fa71bc0e2b66cb94b57e57172cb5380719bf27c3baed6e3c5d3e305e3e57692751f79e1bed9a42827f06b796ec8a6427151be652d6467aa4be46be0c475c03bab7cbd4e07c47e9f5fafbcf1c712db158359f29ead97dfe8a79a72f63f71cb85ddd7803b0bea0dd7f8545dce71046f67eb851d56591cb914c40d65b9c1dbebf5120f08d1da2a44ec90155a4d7696e0f4a3cdd07de0454b0ec335c549dd075edc7adc9cd5cf36ad177cdb8ad98cf0e6a66db7bdc8c54c8dfb36de6001a0fe51e0d0a72eecfd1410a7bc38b1082cfe9fbc4eed4380e55565bd0c35df1fd366c9fb229271dd9fb7ffe9cf5cd87d1e989dbfa7ce70bf88e41c47d3e3d97ae1ba0b96ede52d50cb7665b94d8f67d7f76d1662f14d330c5f678f7f2961c6e6775ce81d200726c3bcb3401ebf1c66ef00b9a5cf95da41d2db75554710ed302be666e48ed3faa8182588af92163789a0f47006378973ea7d57f815fa3d1790575a267159213e3c9adf57bb9f3e6da6bcf03db98fa726ee3d3453bccf19be977b1c9c57f669cbfd8e44cfa4721c9d057ce59e49657d8a41adafb0fc4d8b2bf2159c44532224f94a6ba57b2202f111b0f9bf5d70cf02f8cc057c2bd59ffa37a82f371518e9ab2688f7d3926f1e022c2ba1ac7a3d7b0a6ce1df23d3baae2bfbb44ab8ff9294c75c2ed32207d3627b7d59e3c5f67a65b90a4c9b8e9d2f0811d8b908ada6f89c92e40e1afb15b0f884c89bc597f36957c68a03e3795788275202d306f3afb8d8f23ab3ab7d2afe3e9936f38c9d21487ad2ce98911203a69f76b68c0652d74b61da404ea62d2f7a908b318b8d4aa839d5bdcdcfa2e3e89b9c420845cb5f2be29417586acebb42cc7aa82f057cbf2d1fbad0741dd8fc27793ded4d17f48556e20fc8a70dec049a9e11a97440a710a2f3859f8bd8af00cbcb523df7cd26347ce2cf9bbd76f6da0fdba755bc0f8f024b578b655a2ff02fc5c9dd640160791a594f7dfedb80f8c00bd4663fd5c9f0f9121fd67634e7979bccd37d545e6fe8d5c286f77d460fac69e3326e0d22f180f2024b3c2084a95e8840fbfa53b678d7057d8cd42da7657d911cf99c74acd4e71c0772440fdc3722e58df74644791e6f176e6fa7141528367befd6e3e6820b37899bdc005caf22cbf25ffc930b5078aacbc2dbc19c7699b71460da5ca8ab5a2c6c5879da2796e325c5498b655a994f5bd55450deec1621e287a41d2419cf157f041e3e36c6b6e3a478c785373e53e8377dbcf7c9a75ddaa6dea7d5ac92fa79496fa5a8403e9cfea619baf75d302de737dc4dc92d6bdbf3c5ad884c1c3736e536cc7ca508a6cd44e35640ffc4c3058fdae49553f5e07d655aec488bd37e5b9cdc910784587c4b39ce59cc8e11f93a5b2fecb0c2ff97f25c21d725657d721d11d2cd93f5ff03ec3eafacb7e11120fc1f56f43c1f41a05d8ac366d65b7ada8a2d7f74211192ef38594c6b01d0fbc81d94c27c8e6ba17ca699bb7ca6ae1f5c77c1ff9b220d2b9fafdce742708e9c9dbf57f04d4d294c2bdb41aa8a97eb14b9e39c857cf3dac784508ab74f7c050c4c864bda59ba2f4ef1d6523653daaab28f08d929c55dc579e0d6dfb3f535d45811d8b988f1df0971e561c9a79fdd2244a873afe8df1a558c32bc71c905dd1960e4f3b92cfd654f65c673257c0926a83e724095dff4c2f1311a43c5bfbb2f353f5809fb43d2d37f52be9a38ad9a2fe3a4a3ed62e1f9c96c47e6fe32bbf11c1967e1a773ae4af5b60d28cb51fa0c2bf3d42f36e782cba4214f34c9788eb27e655f98b153f245a0f22401df56f730a6f67b08da6a2b22edff8066ed0b238598a2ed38b951a77f93387858da121f3e36c6f4fff73c1f41e70b3f4fe995fefd08e35356b4b616fe4e8312fa66e6b8ff52ee53cc497d3219afee232f6ead9873b6336e0d42b7ab09866f22521cf64604fedbf5585af1633acf4912e3563ffcbf694eb9069a55f2e85dc0f127e5fada2a1762bfb76224c7992f250cce916773d845babc2ccb8fc5d533d2617f585d8c56e56f35a87973740f40d7e5d24e44e4c2f4374b99715825e659cf722a2f4eca796506329c1ecf2b776886cccc462b158722ca71d97cd95dc67385e3ceb930df8e81e3638c93546c689ba3ba930cef4927108a296abf9e68bb58dad70c33f35e4bc55c135be8fa46fe8644a65e6ada0dcdccc9f253b79df428ceb3e1f4388dc3d28b8e643e6e3ec31b9a91f268b5ef49ed8de702b44436268f9724fb3f9f4be5d3e2b8a477f2b73972fa36f97c0c45f44bdf9fcd57fa82ea7cd9527dc20afe73635ea62ae5b716721d76340c07d4c929e2d566057f9a58b082676ee37cc362b15497a0823f0d2caa626c79dd77b99fbf6ea375483ed80f61622af8c3c5a22b92928f79bf18d61822b95c392d5bc1c2a8ba4160fe1e8dc31bc7b0e584472af8d3c4921b92521c729bd2098402b86dc0c340acc2ac152c0d374490140f8c31bc203df5679e83b744a4007d7cb5f21bb8152c1fff1fb8f17d8d233650dc0000000049454e44ae426082</data>
+        <data format="PNG" length="4288">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade0000108749444154789ced5d5f685b579efe6e098b5adca20cc31087cc600fdb82dd61a8b4f6839d9912b92f3b761266a476a176b70f529c12bbfbd0dadd97fc5912252ca9e32c9db5a638910261ac04b2561e6cd903d98db278472ad4d1f59022071cb08ba7dc04136c238c224ce0db876b5deb4af75edd7be5b4e954f7e523b9e7fcceef1c9dfbddeffceeef1c8300c200760c49729924c9e4167293dcf1766af883c5aa27687c41626685748dde26ce91383dae8b9e2839702b4392fcae3b5ec3ef2fdaaa9859219312e91c8e13d324ce8d5b466782f44fb036816b6819ad5520e9b95a9951ada2274a4ad95c4d42d4d0149a2ac84d32b36a8f51ad607026539bb835ac88150b64567274457696598dd0357abb26196a68888605b8423a13cf9e614bd1391caf4ddc1aeaa2ee8dcc4a8ece611b8c198a131112a3b78908d979334d921c9f97b8b86ade8ef3fc78f51397e4c86898fe637df4f7f66da19ffe637d1c1a1e22255292a4ef8f2421199fd8d9073a97cd716838477f6f1fdb0e78e8eff593924dfbcfc03f2ddc19863d1fe7ea26c92c0dafe422bf15c6658e94262436b5b838d21266538b8bae9636dd7f1f3f1dfc5e30fbf1d341c5ff9df2373d9a2e1b8f814f066c3dc8cfc23f534c9bdba465863573f9a7d3b634ae1dc6f51feb53fd109d07bd1c190d9359722c3aced5e11c3d073b95fbae9636a6c5f4f3cfb894fd677687264496aa7172b5b4d1dfdb677fc2edb47f3a58f61f9e798b1a345579c2b6dd4856a5713d5793e62714a962d44c74517700b94072818c4fc70ded7381d53347a5fa55d8a764c33f926d073c656fa0d5999cf1787d0bfe552a2f840104004400746f922ffd7b0cd8e5039e9a43bf4b44e4376ee85d813f89b832e7366d4f0fc70e3d44cf2ff70a91227fb55014d33c72f443e49187030eb479da111a1aae584f8559d2f7410f961e2c29768ab1d3d389fede001a5ffbb9d07ec0c3fc461e8e3a07521309445e1184627b8999244f9c3a81f58d75b89a9ad0f1c76b42c14fc7f5dd38321b407e23afb2ef6a6a82eb0d17063f1e4444d8b6e71dce71fff5fd70c0810b172fa0e3cdfd426834ccc8e58852dfb96737d61fad218f3ce6af8988bca6f6a78005bfb5fa373f2122b257100212d971b44bb1575cce51e740cc13057a81fabdf2ef62c63f479d43e9afe21fc9d0a508a627a7b1f46849d58e73cf6e247e378527ef3cc18bafbc244400bca07484e4deff9c025a7d0062a6b1bf457fc2a696802b705bb2a7871f3eae0736c94a13ceed72ab06b8f94e13ba0e7ae99dc9313593648064a589dbdce1c6d2832538ea1c989f10215e4b617e564487a71dfde8c7f49d69f4f405801cd9bfab1f79e491dfc8a3abbbabccdedac535ac6facc30107d6d7d6110070617884478e7e88b7eff8d0b3d183fa3df508f786e16a75e1b8f338e6eedfc7b5eb37d1dcea4640daf677fff5fde887dc5e475d3b2200dae052f5d7f7c8abfcfbc4f5b3bafd4c5d4a208fbc62af507ffca318e0dc1a87c36ef81e7951bfa71ef31322c297469471c86fe4f1d66417527d22acf8d7b3d1a3f68f64bba70391cb112c3d5a42705f109d873a91bc9844e3ab8df03df2a2f97337def276010bf2efaf306d6022cd2b5fd960c41f27c0a31d9a93b6ff21f087cbd5316c31063ff2a1fe156de650a144361f769731482953343535a1e3571de8e9f6a9182d40529c13e176ff43194337b7b8a830d2ac88d0a5088a99646a22a6304f806473ebb61ff31322a6ee4ee1e49973c8230f679d13fdbdfde8e9795bddce02d9dc5d542f2122f28a20845ada586827d01b40ff074784406f1fe7e6e6ca98bafb9d6e741d3e2844a3e374fdc58de1f5b3c02e07dc6fb8d17f3420f7b7a41def212f1affed64e57128edd7ac888860c3bf435d081ced47e17ea7a7134d43e754bfef89d3414e4f4e238f3cda5adbd0fef91f0459436c56178fcdace888d9156bd1821d8d26901c1a1ee1ede1a4a92802457dbb69314d2e909d07bdaafa14b734fb01cff6aab9c8cef1d341a5fcf86fe30c0318ff6d5ca93f76635c572316a21fae96366535afe56f726bf5afd57e1880567f0bed5264797f0cc69522b7c6a15365afb088b5ea1f17d4ed7bdfed26b394ed91e40ccb7e3f9214c2b0a7658bb1ed5d1f52af6a922d2e7cb1844fee34ee08d3cada76093dbffcb9358d0ae0a124b1bebe1e89ff4ba1e3413b7cff53ae590b8c1190c8feff18c4dcaca8bcda35b5df56f9b5e11caf6c6939479d03a93b092c3d5842cfd180523f78ea38ba0e1f144a995ac5f04598984972f0e341859103ff7b4787c9fc9c9bbbaff8d57ff78b32a67af8e821f014c02ec051f722429f5e90dbd561cce237969571b0ec5f49fb95d059e7c4ed892979c6bb46ab6744a36b28b5738c3b62c08856313e1d5731467834cc62866b3be02117c8c26a76ecc6b826c350a2611cb8f3a0576130adfa9afe492cabafc558a571562bfd4f8b69cdfe943264e741af3c0645e3a0c5d056fd2b6ddf6cbcfc8587d91ce71e03988d01f0d9c6d8fd87da540b60b00d186f7828336695ed7c381943c5c51449514c575c7475fda60b21849427796da31b6f9de9523166e43541c05e41880882d0f34f6f0bb13d3795f26e971b1100d82b089d873ae1804365aff0efa9dfc5b6a31b2e51b97fedfa4ddd37836fa047a91f6e1d410450d90fcd46100010ba1b51b567e50de476b955fe16fa13c892472e1f81030e44eba2989a8c21b2b7681cdef1a9fa07176cf957dafed98f4ee8be791e4a92b2087fc1f9f28ba87a75ef4cc0d754af3b6901c0d7540f1e03d2c7aa8b22a0d587e857c613b6b9d58d2f8ecea1b9d58db6e822a337c61920891c1920999a49b2734252bd9a82fb82186c7d51b5cac59cdaeee027032c847ffad1afba7ff6d409d5abacb08a763a9dc0bbdbe5229742cafde93bd3688b2eb2b02a56c26def76b3e3418752bfbeb71e01406dbf3520976f09a8dab32299300795bf85fe4cfd794ab1875d803827aac6c1d7dda38a3a14ee5bf64f1084e4c5a472bffd70872a5a821c1910c9f6031ede3c3cbd1d3df0db8d1a14d03905f675194e58ad4bb894001e77d86a77e0980f4d3fd17e229f64733cd27f0473f7ef9bd64aaea6269c3d79560eb174abb5ae73cf6ee4379e686aba520dd8795ae25b935daa72056d571a07eee8d68e7f1663e39e468c5cbc80c6d7640d1f39e061c10f2dcdd8b8a711def8cdcad1959207bcac3f5b61a8e238ae9971b879d0cb429c55cbbf82362f0b0b16ad09f4c6a3f1d546c4ae45111104016356bf8015a1772b19c6ee753c91b1f985cc78951b86fc89726878885adfd69b5a5cbc3d9c9435546972c896664b8ea6e93fd6c7f4685a5ebd2f6cad6a45323c1a96b56e4eed4721e7c17fac8fc9d1b49c9463e0677c3aae2a5f686f687844f353687c3abeed4f41fb914afde48c852f8745e354e84fd917bad130d35b7e2547d3f2782d50d6b06279bd4afe197e79d468cf7fac8fd28444cea8c719b6f25e3f93b3b676e24a2eae12216bed3b879fffe4961a3e3b8455a68b2fb3623697e52b4b86172c462b0c3ac64d9904076e919e797933658eaced0afe1b41f34c7bde5c36573597957c5ba38e35e830b72b523d43e736655f93cbab2475ec15dd4f2eafeee88392d379f092cbab94b2f296a56056de25bd13ed8d7cb948bf24272d495932b3a2ee4f7c41a2272adf97f1368359fb7bfe322bab0c66d5f6bc8b6a7be69836f4cce7ab72e536ab675abbf5cce088581e9f2e9db05aed6656abcf122bec7e768daa272eb3da71f0e4b2f604373f61cbed3a13ea7ec417f57fa7815b16f6fc91f41a6403168f7365a6fd1618b6f45acd55c7b476eb997a3595d82bdd8ce9bd91d4f5db13951f4abb8ca7db0f6ab717ac32af3598d5b65b3c81729ba427aa3fdea6f6fc916cf82cae3b6e991575fd8a4cfb2caecc8aac61e3f3fa652a31ee77c5b4a5f6a49c7a402be523bbc4ad5c0d8bed4a39fd7e2497b599363863bd9d620cce9867f01cf5cfc130ca1931aad710d2ae07a319deb6f04ce62cc9a27642710ee5c8558dc59d77d99e36fd2e99d6ccb910ce61eb5a373893b1ccb452954c2b9960da523f8c4e1a6a086d6bee815b19eaad3d70cef82422fd386d82ba5102ef4d12a22c1d304de2aa8d499bd268f76a525d284b62a6bc9cf7069f5ba6b512f71ebb67dc0fb34c4b5da6adee1c89e08c761c9d15b4b21e439b4167a2b2fd17961ecf43eb1b7fe7ba08bc0ce51abc330fe1f7807026869bf7014cc680a772f9c543b07e7d95286ff79b76089fc6b6cbbc0c781f8b65e546fed1f84b8f51ee82d5ecb0b24f9fa5f6eeceabcbcda60cdb2fc6f726e53c6653eddf55ff4eaafefeb4dc2fccc680379aabea2fde68d6b6fb53e37a27de1484e42fd6e07458cb2d71edf141fa15809f0986597cbaab5d152b866e1b3e2146da54976945e327ae105ad2f2afd2aaf879d2b42e918c17ef31a3cc80c5f9cbde1bc9edfb3aed3eef9a560badecea6e48d1741c5d57036e4f587dcd6b65376ed9a43571ca62db427939e7f9ca13ef79d2b47ad182dc26e95ddc2e5769953d70eb7ba0694b51c72f2d6cf8cc7c823f08c07ba3fc894aaf9030732aa289ddb89a93b602d3ea61d2c44112cf8ba635b38bb8f48cb4cc2ae5b544d10faf152f7d9e356dc16faba76a9a3d124bde234652386333cb6b5f0a7cbf1d562fbb595ec97f5e43fbcf7e64a8798e9c23f5ea4bfff204f55bbb3aed683de1f4388bed057f3d8f136fbeaed8ebb89ae49d6fda81a73178fede879e1e137bda48eefe3486f5a7e6c7217c5cbda74debf733bda74e07efaf90c39f97dbe5299f6edeeb934d72691d785da39e1974ee8a41fac8876b7fa7efb732831bb456f32630adb73fec1930ada9ec2ec0906973665f6d3a6845d39af5d70e3315d7cfe8ecc5b3d4be063684b4fdd1d5b0cba4d13c728d92524e7e036456e538ac5effc6e64bde3845f84261069fad7b083b3b094efe5984ad6bd2face85c4fb2657bd06765e3a13434a2253cbaba6b6935b8d1e60b6282ab2cb02b30982b0f671175c7fd588aa54888234ff44101a1e4c9595bbf30d707626632e3a5182818934bf5eef2a6bd7ff542c2f4f72f05686c21f81afff5b3b2a90fcc51ac40f0461fa254138f1e6ebc2173f1284a5fe83c2c88f9734a30ceffd570cbb2f03a12f17cbfc57cd60cf551b27c1883668d6e2995e38374ecfbc7986b4f3c6307ae2e34527abecb4a6d542ff44e5f1b1c2d49e421cbdc2ea9c5b111b3d06d4d49c06e50b1abd527f99255d066fde82ff6a4d5bf4c4d8d1b63ce58395cbea7908ce3a1fe67bcd6b51234d6b170b1ab292a62d3e3fc2b4a6d5c0e8bd45be37a9bf8b59a5698b7ebfc6df4fe1eb8d2edd7a9e7d29ecfe753b5cdfcccb71d8bfcc23f1d766ac6f243067b0c6f0ec4b20f17e87a2659f6c9227d7012dcd5bd0a66bffaaaf7db53025915774e645b1bdb2999fa375463a9ec858d3b316579556be1c29e1a11d62dad25578691c568b790af7076e55a729b9accd40aed1db8676c7ee91a5d9687631bea81d9735caeef25cad1c77b6abed4952b3a25fa2b59d0ce7e51d08662eaba727fa27ec9d66589af76a17f506b6d2fd1dfd1b12a57e59a837766f51959faa976be21abd4d4f54fed0a1e4e31a4cbcb17b721eadf3bc5cdf733549efe20ee5f1921cf97251c9a72dc4713d51795c75b58d91c6d0c4947cfeacd165f5fc03bb9ab0867fdb68c85476fed682de664757543fcf54d38e894f9b35fc6162c5024969e7b4a159b42b096af8c3405305739bdbdac52af35a41e7b0acc19e8781a9e1f38be62b50d698cf8a613d065f406a58c362b45c21b9bc6ab827c82a56151ea9e10f12ed1ba01c87b493b3d0108a976733d5b0862671670c911cbb2751cacaab7e39bea6deb71e9c913f40d4fe066e0dabc5ff077529ed1596bde0d30000000049454e44ae426082</data>
     </image>
 </images>
 <connections>
@@ -1242,6 +1242,12 @@ Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
         <receiver>ConfigurationPanel</receiver>
         <slot>saveSlot()</slot>
     </connection>
+    <connection>
+        <sender>buttonApply</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>applySlot()</slot>
+    </connection>
 </connections>
 <tabstops>
     <tabstop>fullName</tabstop>
@@ -1284,6 +1290,7 @@ Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
 </includes>
 <slots>
     <slot>saveSlot()</slot>
+    <slot>applySlot()</slot>
     <slot>changeTabSlot()</slot>
 </slots>
 <functions>
diff --git a/src/configurationpanel.ui.h b/src/configurationpanel.ui.h
index d640cbeaae..0388dab058 100644
--- a/src/configurationpanel.ui.h
+++ b/src/configurationpanel.ui.h
@@ -50,6 +50,10 @@ void ConfigurationPanel::init()
    playTones->setChecked(Config::get("Signalisations", "DTMF.playTones", (int)true));
    pulseLength->setValue(Config::get("Signalisations", "DTMF.pulseLength", 250));
    sendDTMFas->setCurrentItem(Config::get("Signalisations", "DTMF.sendDTMFas",1));
+   STUNserver->setText(Config::get("Signalisations", "STUN.STUNserver", 
+      "stun.fwdnet.net:3478"));
+ useStunYes->setChecked(Config::get("Signalisations", "STUN.useStunYes", (int)false));
+ useStunNo->setChecked(Config::get("Signalisations", "STUN.useStunNo", (int)true));
 
    // For audio tab
    ossButton->setChecked(Config::get("Audio", "Drivers.driverOSS", (int)true));
@@ -62,16 +66,17 @@ void ConfigurationPanel::init()
    
    // For preferences tab
    SkinChoice->setCurrentText(QString(Config::getchar(
-			   "Preferences", "Themes.skinChoice", "metal")));
+      "Preferences", "Themes.skinChoice", "metal")));
    confirmationToQuit->setChecked(Config::get(
-			   "Preferences", "Options.confirmQuit", (int)true));
+      "Preferences", "Options.confirmQuit", (int)true));
      zoneToneChoice->setCurrentText(QString(Config::getchar(
-				 "Preferences", "Options.zoneToneChoice", "North America")));
+     "Preferences", "Options.zoneToneChoice", "North America")));
      checkedTray->setChecked(Config::get(
-				 "Preferences", "Options.checkedTray", (int)false));
+     "Preferences", "Options.checkedTray", (int)false));
      autoregister->setChecked(Config::get(
-				 "Preferences", "Options.autoregister", (int)true));
-	 
+     "Preferences", "Options.autoregister", (int)true));
+  voicemailNumber->setText(Config::get("Preferences", "Themes.voicemailNumber", "888"));
+  
    //  Init tab view order
     Tab_Signalisations->show();
     Tab_Audio->hide();
@@ -112,6 +117,9 @@ void ConfigurationPanel::saveSlot()
    Config::set("Signalisations", "DTMF.pulseLength",  pulseLength->value());
    Config::set("Signalisations", "DTMF.playTones",  playTones->isChecked());
    Config::set("Signalisations", "DTMF.sendDTMFas" , sendDTMFas->currentItem());
+   Config::set("Signalisations", "STUN.STUNserver", STUNserver->text());
+   Config::set("Signalisations", "STUN.useStunYes", useStunYes->isChecked());
+   Config::set("Signalisations", "STUN.useStunNo", useStunNo->isChecked());
  
    Config::set("Audio", "Drivers.driverOSS", ossButton->isChecked());
    Config::set("Audio", "Drivers.driverALSA", alsaButton->isChecked());
@@ -124,19 +132,55 @@ void ConfigurationPanel::saveSlot()
    
    Config::set("Preferences", "Themes.skinChoice", SkinChoice->currentText());
    Config::set("Preferences", "Options.zoneToneChoice", 
-		   zoneToneChoice->currentText());
+     zoneToneChoice->currentText());
    Config::set("Preferences", "Options.confirmQuit", 
-		   confirmationToQuit->isChecked());
+     confirmationToQuit->isChecked());
    Config::set("Preferences", "Options.checkedTray", checkedTray->isChecked());
    Config::set("Preferences", "Options.autoregister",autoregister->isChecked());
-   
+   Config::set("Preferences", "Options.voicemailNumber", voicemailNumber->text());   
+#if 0 
    QMessageBox::information(this, "Save settings",
    "You must restart SFLPhone",
     QMessageBox::Yes);
+#endif
    accept();
 
 }
 
+void ConfigurationPanel::applySlot()
+{
+  Config::set("Signalisations", "SIP.fullName", fullName->text());
+   Config::set("Signalisations", "SIP.userPart", userPart->text());
+   Config::set("Signalisations", "SIP.username", username->text());
+   Config::set("Signalisations", "SIP.password", password->text());
+   Config::set("Signalisations", "SIP.hostPart", hostPart->text());
+   Config::set("Signalisations", "SIP.sipproxy", sipproxy->text());
+   Config::set("Signalisations", "DTMF.pulseLength",  pulseLength->value());
+   Config::set("Signalisations", "DTMF.playTones",  playTones->isChecked());
+   Config::set("Signalisations", "DTMF.sendDTMFas" , sendDTMFas->currentItem());
+   Config::set("Signalisations", "STUN.STUNserver", STUNserver->text());
+   Config::set("Signalisations", "STUN.useStunYes", useStunYes->isChecked());
+   Config::set("Signalisations", "STUN.useStunNo", useStunNo->isChecked());
+ 
+   Config::set("Audio", "Drivers.driverOSS", ossButton->isChecked());
+   Config::set("Audio", "Drivers.driverALSA", alsaButton->isChecked());
+
+   Config::set("Audio", "Codecs.codec1", codec1->currentText());
+   Config::set("Audio", "Codecs.codec2", codec2->currentText());
+   Config::set("Audio", "Codecs.codec3", codec3->currentText());
+   Config::set("Audio", "Codecs.codec4", codec4->currentText());
+   Config::set("Audio", "Codecs.codec5", codec5->currentText());
+   
+   Config::set("Preferences", "Themes.skinChoice", SkinChoice->currentText());
+   Config::set("Preferences", "Options.zoneToneChoice", 
+     zoneToneChoice->currentText());
+   Config::set("Preferences", "Options.confirmQuit", 
+     confirmationToQuit->isChecked());
+   Config::set("Preferences", "Options.checkedTray", checkedTray->isChecked());
+   Config::set("Preferences", "Options.autoregister",autoregister->isChecked());
+   Config::set("Preferences", "Options.voicemailNumber", voicemailNumber->text());   
+}
+
 // Handle tab view  according to current item of listbox
 void ConfigurationPanel::changeTabSlot()
 {
@@ -199,3 +243,6 @@ void ConfigurationPanel::changeTabSlot()
 }
 
 
+
+
+
diff --git a/src/configurationpanelui.cpp b/src/configurationpanelui.cpp
index beebcf8eb2..d6ca913719 100644
--- a/src/configurationpanelui.cpp
+++ b/src/configurationpanelui.cpp
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form implementation generated from reading ui file 'configurationpanel.ui'
 **
-** Created: Mon Jan 10 17:49:58 2005
+** Created: Tue Jan 11 12:49:32 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
@@ -33,415 +33,362 @@
 static const unsigned char image0_data[] = { 
     0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
     0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x30,
-    0x08, 0x06, 0x00, 0x00, 0x00, 0x63, 0x57, 0xfa, 0xde, 0x00, 0x00, 0x13,
-    0x06, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, 0x6d, 0x68, 0x5b,
-    0x57, 0x9a, 0x7e, 0x4e, 0xf0, 0x16, 0x35, 0xb8, 0x83, 0x54, 0xda, 0x62,
-    0x87, 0xb4, 0xc4, 0xa5, 0x2d, 0x91, 0xa7, 0x29, 0x23, 0x4f, 0xf2, 0xc3,
-    0xce, 0xb6, 0x44, 0xee, 0xec, 0x8f, 0x95, 0x92, 0x42, 0xa5, 0xb6, 0x50,
-    0x3b, 0x33, 0x30, 0x92, 0x9d, 0x21, 0x76, 0x77, 0x97, 0xa9, 0x9d, 0xfe,
-    0x49, 0xd2, 0x21, 0xb5, 0xd3, 0xa5, 0x75, 0xd4, 0x92, 0x8e, 0x9d, 0x92,
-    0xc6, 0xca, 0x10, 0x62, 0x3b, 0xe0, 0xb1, 0x54, 0x48, 0x24, 0x0d, 0xa4,
-    0x63, 0x79, 0xf0, 0xac, 0x14, 0x68, 0x62, 0x79, 0x71, 0x2a, 0x39, 0x34,
-    0x60, 0x05, 0xa7, 0x28, 0xc1, 0x2d, 0xb1, 0xf1, 0x1a, 0x8d, 0x30, 0x85,
-    0x67, 0x7f, 0x5c, 0x4b, 0xd6, 0x95, 0xae, 0x3e, 0xae, 0xe4, 0xf4, 0x63,
-    0xaa, 0xf3, 0xe7, 0xc1, 0xbe, 0xe7, 0xbc, 0xe7, 0x3d, 0xe7, 0xbe, 0xe7,
-    0x39, 0xef, 0x7d, 0xef, 0x7b, 0xae, 0x70, 0x0f, 0xc0, 0x20, 0x80, 0x8d,
-    0x42, 0x92, 0xe4, 0x3c, 0x49, 0x92, 0x81, 0x35, 0xe4, 0x2a, 0xb9, 0xd1,
-    0xfd, 0x54, 0xf0, 0xa7, 0x8b, 0x65, 0x1b, 0xa8, 0xe7, 0xcb, 0x18, 0x03,
-    0xf3, 0xa4, 0xe1, 0xf4, 0x38, 0x71, 0x9c, 0xc4, 0xb1, 0xb1, 0x9c, 0x68,
-    0x1c, 0x26, 0xbb, 0x2e, 0x87, 0x49, 0x92, 0xdf, 0xf7, 0xc0, 0x2b, 0xf8,
-    0xe3, 0xc5, 0x92, 0x1a, 0x86, 0x17, 0x48, 0xcf, 0x1c, 0xa9, 0x75, 0x78,
-    0x08, 0x37, 0x89, 0xe3, 0x63, 0xaa, 0x51, 0xeb, 0x23, 0x6d, 0x17, 0x59,
-    0x31, 0xe0, 0x0a, 0xaa, 0x46, 0x55, 0x0d, 0x48, 0xd2, 0x78, 0xae, 0x30,
-    0xa3, 0xaa, 0x45, 0xe3, 0x30, 0x19, 0x5b, 0x8e, 0x57, 0x5c, 0x88, 0x0a,
-    0x16, 0x85, 0x45, 0x55, 0xe4, 0x2a, 0x19, 0x88, 0x95, 0xc6, 0xa8, 0x6a,
-    0xb0, 0x67, 0x32, 0x5c, 0x31, 0xdc, 0x0a, 0x16, 0xc4, 0x82, 0x15, 0xc2,
-    0x0b, 0x71, 0x1a, 0x9c, 0x1b, 0xcb, 0xac, 0xf9, 0xd0, 0x70, 0x7a, 0xbc,
-    0xe2, 0x32, 0x54, 0x30, 0x2f, 0xe6, 0xad, 0xc0, 0x05, 0x52, 0xeb, 0xbb,
-    0xff, 0x0c, 0x9b, 0x89, 0x5a, 0x87, 0xa7, 0x62, 0xb8, 0x15, 0xcc, 0x89,
-    0x39, 0x2f, 0x84, 0x17, 0xe2, 0xd4, 0x3a, 0x4a, 0x60, 0xcc, 0x01, 0x0f,
-    0xe1, 0x24, 0x71, 0x7a, 0x9c, 0x70, 0x92, 0x26, 0xf7, 0x14, 0x49, 0x72,
-    0x2c, 0x12, 0xe3, 0x54, 0xac, 0x78, 0x39, 0xda, 0xf7, 0xc6, 0xca, 0x36,
-    0x5c, 0x92, 0xec, 0x3f, 0x3d, 0x48, 0xdb, 0xc1, 0x0e, 0xda, 0xda, 0x3b,
-    0xd6, 0xd0, 0x46, 0xdb, 0xc1, 0x0e, 0xf6, 0x39, 0xfa, 0xc8, 0x39, 0x32,
-    0x16, 0x8b, 0xfd, 0x68, 0x5c, 0x12, 0x92, 0xf4, 0x5c, 0xf4, 0x90, 0xf1,
-    0x8d, 0x5b, 0xd0, 0xf1, 0xe5, 0x38, 0xfb, 0x1c, 0x31, 0xda, 0xda, 0x3b,
-    0xd8, 0xb8, 0xc7, 0x48, 0x5b, 0xbb, 0x8d, 0x9c, 0x2b, 0x4d, 0xfe, 0xfd,
-    0xd0, 0x4f, 0x09, 0x37, 0x86, 0x61, 0xdf, 0xf3, 0x70, 0x6e, 0x99, 0xe4,
-    0x32, 0xf3, 0x96, 0xc0, 0x1c, 0xbf, 0x13, 0xc6, 0x65, 0x9c, 0x0c, 0x8f,
-    0x86, 0xa9, 0xdf, 0x69, 0x60, 0xcf, 0xce, 0x3e, 0xea, 0x77, 0x1a, 0x68,
-    0xd8, 0xd9, 0x98, 0xf3, 0xef, 0xc3, 0xc7, 0x7a, 0x7e, 0x14, 0xcc, 0x7e,
-    0xf8, 0x58, 0x4f, 0x4a, 0x7f, 0xae, 0x6e, 0x8c, 0xbe, 0xe3, 0x27, 0xc7,
-    0xb3, 0xe6, 0xa3, 0xeb, 0x50, 0x57, 0x49, 0x0b, 0xf9, 0x7e, 0xe8, 0x57,
-    0x14, 0xd3, 0xc6, 0x57, 0xa9, 0x9a, 0x61, 0x8b, 0x29, 0x36, 0xdf, 0x54,
-    0x49, 0x3e, 0x6e, 0x29, 0x8c, 0x6b, 0x3b, 0xd8, 0x21, 0xbb, 0x11, 0xa6,
-    0xbd, 0x16, 0xf6, 0x9f, 0x1e, 0x24, 0x17, 0xc8, 0xa1, 0xe1, 0x31, 0xce,
-    0x39, 0x62, 0x34, 0xee, 0x35, 0xa5, 0xae, 0x1b, 0x76, 0x36, 0x72, 0x2a,
-    0x34, 0xf5, 0x83, 0x67, 0x5c, 0x52, 0xd2, 0x9f, 0x0b, 0x1b, 0x63, 0x10,
-    0x5c, 0xa0, 0x6c, 0x9e, 0x0c, 0x3b, 0x1b, 0x69, 0x6b, 0xef, 0x28, 0x79,
-    0x01, 0x6f, 0xb4, 0x7e, 0x45, 0x33, 0xad, 0x31, 0xa4, 0xd2, 0x07, 0xf5,
-    0x17, 0x36, 0xd8, 0xc6, 0xd1, 0x40, 0x59, 0x3e, 0xae, 0xf1, 0x5c, 0xa0,
-    0x68, 0x83, 0x22, 0x29, 0x63, 0xd4, 0x80, 0x73, 0x2a, 0xe7, 0x04, 0xf2,
-    0x4b, 0x92, 0x33, 0xa4, 0xc7, 0xe7, 0xc9, 0x2b, 0x9f, 0x5f, 0x72, 0x43,
-    0x5c, 0x95, 0xbc, 0xd7, 0xcb, 0x60, 0x26, 0xc6, 0xa8, 0x9a, 0xd9, 0x48,
-    0xb2, 0x71, 0x8f, 0x31, 0x6b, 0x07, 0x9a, 0xbb, 0x1c, 0xcb, 0x3b, 0x5f,
-    0xdf, 0x85, 0x7e, 0x8c, 0xe5, 0x9f, 0x6f, 0x31, 0x08, 0xc0, 0x02, 0xc0,
-    0x0d, 0xc0, 0xb4, 0x4c, 0x6e, 0xf9, 0xd0, 0x05, 0x54, 0x59, 0x81, 0x6f,
-    0x8b, 0x43, 0x9b, 0x21, 0x04, 0xe7, 0xbf, 0x37, 0x20, 0x57, 0xb1, 0xff,
-    0x25, 0x84, 0xb3, 0xd3, 0x0d, 0x45, 0xcb, 0xcb, 0x85, 0x43, 0xfb, 0xee,
-    0xc0, 0xf4, 0xdc, 0x16, 0xe1, 0x4e, 0xd3, 0x57, 0x09, 0xa3, 0xa1, 0x29,
-    0xb6, 0x1d, 0x78, 0x03, 0x09, 0x24, 0xa0, 0x81, 0x06, 0x8d, 0xc6, 0x26,
-    0xf4, 0xf6, 0x39, 0x0a, 0xb6, 0x4b, 0x47, 0xfb, 0x02, 0x69, 0xfd, 0xaf,
-    0x56, 0x44, 0x6f, 0x46, 0x53, 0x72, 0xd2, 0xd1, 0x64, 0x34, 0xa1, 0xb3,
-    0xdd, 0x0e, 0xed, 0x33, 0x4f, 0x0a, 0xf3, 0x1e, 0x23, 0x13, 0x2b, 0x09,
-    0x68, 0xaa, 0x35, 0x08, 0x8e, 0xfa, 0xe1, 0x7c, 0x4c, 0x88, 0x74, 0x79,
-    0xd3, 0x93, 0x01, 0x1e, 0x79, 0xfb, 0x08, 0x96, 0x56, 0x96, 0x60, 0xd0,
-    0xeb, 0xd1, 0x7c, 0x7e, 0x44, 0x24, 0xf5, 0x4c, 0x5c, 0x00, 0xba, 0xaf,
-    0x76, 0x23, 0xb1, 0x92, 0x90, 0xc9, 0x37, 0xe8, 0xf5, 0x30, 0xfc, 0xc2,
-    0x80, 0xee, 0x37, 0xbb, 0xe1, 0x14, 0xeb, 0xf2, 0x9a, 0x1d, 0x31, 0x9a,
-    0x2f, 0x98, 0xa1, 0x81, 0x06, 0x27, 0x3e, 0x38, 0x01, 0xc3, 0x0b, 0xbb,
-    0xc5, 0xc8, 0xe9, 0x41, 0x3a, 0xcf, 0x38, 0x53, 0xed, 0xb5, 0x35, 0x3a,
-    0x2c, 0xdd, 0x5d, 0x44, 0x02, 0x09, 0x44, 0xce, 0x86, 0xe0, 0x7c, 0x4e,
-    0xae, 0x4f, 0x12, 0x93, 0x7a, 0x2b, 0x8d, 0x2f, 0x32, 0x1a, 0x82, 0xf3,
-    0x49, 0x21, 0xec, 0x73, 0x64, 0xf3, 0x7f, 0x9a, 0x53, 0xf2, 0xd2, 0xeb,
-    0x69, 0xaa, 0x35, 0x18, 0x34, 0xf6, 0x43, 0xd7, 0xae, 0x83, 0x66, 0x8b,
-    0x74, 0x5f, 0x8a, 0xd1, 0x4f, 0x53, 0xad, 0x49, 0x8d, 0x37, 0xa9, 0x9f,
-    0x9d, 0xe4, 0xc0, 0x27, 0x4e, 0xf8, 0x2e, 0xf9, 0x10, 0xbd, 0x1b, 0x95,
-    0xf5, 0xa3, 0xad, 0xd1, 0xc1, 0xf5, 0xf2, 0x10, 0x34, 0xaf, 0x6a, 0x90,
-    0xf8, 0xd9, 0x66, 0xe1, 0x06, 0xb0, 0x29, 0x75, 0xa3, 0x48, 0xd6, 0x9f,
-    0xf1, 0x02, 0x3b, 0xac, 0x00, 0x5c, 0x45, 0x63, 0xeb, 0xb3, 0xb9, 0x0d,
-    0x36, 0x18, 0x05, 0xce, 0x26, 0x1a, 0x54, 0xc9, 0xcb, 0x85, 0x6f, 0x7c,
-    0x55, 0x0b, 0xdd, 0x2a, 0x59, 0xc8, 0xe0, 0x1a, 0x0c, 0x0d, 0xb2, 0x09,
-    0xae, 0x9d, 0xa8, 0xc1, 0xfe, 0xbd, 0x16, 0x36, 0x5f, 0x8e, 0x71, 0x76,
-    0x32, 0x40, 0xfb, 0x2a, 0x59, 0xc8, 0x70, 0xeb, 0x4d, 0x0d, 0x88, 0xde,
-    0x8c, 0x42, 0x53, 0xad, 0x41, 0x64, 0x34, 0x84, 0xd0, 0x48, 0x10, 0x91,
-    0x60, 0x08, 0xcd, 0xc6, 0x26, 0xb4, 0xa0, 0x05, 0xbe, 0x09, 0x1f, 0x5a,
-    0x3b, 0xec, 0xd0, 0xc5, 0xc9, 0xd6, 0xaa, 0x56, 0x24, 0x90, 0x40, 0x62,
-    0x25, 0x01, 0xb3, 0xcd, 0x9c, 0x25, 0x2f, 0xfa, 0x41, 0x14, 0x4b, 0x2b,
-    0x4b, 0xd0, 0x40, 0x83, 0xa5, 0xc5, 0x25, 0x58, 0x00, 0x38, 0x1d, 0xfd,
-    0x6c, 0x3b, 0xf0, 0x06, 0xda, 0x26, 0xda, 0x60, 0x5a, 0x31, 0xa1, 0xb6,
-    0xa6, 0x16, 0x7d, 0xbf, 0x3e, 0x01, 0xc3, 0x2e, 0x03, 0x3a, 0xb5, 0x9d,
-    0x98, 0x9e, 0x9d, 0xc5, 0xc8, 0x05, 0x37, 0xea, 0x77, 0x35, 0xc0, 0x3e,
-    0xb7, 0xae, 0xaf, 0xf9, 0x82, 0x19, 0x2d, 0x68, 0x91, 0x0c, 0xbb, 0xca,
-    0x00, 0x37, 0x00, 0x7d, 0xa2, 0x4e, 0x36, 0xde, 0xe6, 0xbb, 0xc6, 0xd4,
-    0xdf, 0x47, 0x3e, 0xed, 0xcd, 0x39, 0xce, 0xe0, 0x47, 0x7e, 0x24, 0x90,
-    0x48, 0xc9, 0x4b, 0xb6, 0x1f, 0x3c, 0x38, 0x08, 0xd4, 0xac, 0xcd, 0xc3,
-    0x6b, 0x0d, 0x68, 0xbe, 0x6b, 0x44, 0x6d, 0x4d, 0x2d, 0x22, 0xa3, 0x21,
-    0x0c, 0x7e, 0xd2, 0x9f, 0x9a, 0x87, 0xc4, 0x4a, 0x02, 0xaf, 0x5c, 0xda,
-    0x0f, 0x5f, 0x87, 0x1f, 0x6a, 0xf4, 0x33, 0xad, 0x98, 0x64, 0xfa, 0xd9,
-    0x49, 0x36, 0x19, 0x9b, 0xe1, 0x3c, 0xe3, 0x44, 0xf4, 0x6e, 0x14, 0x5d,
-    0x5b, 0xbb, 0x60, 0xda, 0x67, 0x82, 0xf7, 0x5d, 0x2f, 0xea, 0x9e, 0xae,
-    0x43, 0xf3, 0x5d, 0x23, 0x76, 0x7f, 0xfc, 0x22, 0x5e, 0xb4, 0x98, 0xa1,
-    0xfb, 0x52, 0xba, 0xff, 0x29, 0xa6, 0xed, 0xbe, 0x38, 0xc5, 0xb3, 0xd7,
-    0x4b, 0x60, 0xc4, 0x47, 0xfc, 0xe0, 0x81, 0x66, 0x45, 0xa3, 0xed, 0x8c,
-    0x02, 0xa7, 0xce, 0x97, 0xc7, 0xb0, 0xe9, 0xd8, 0x73, 0xd0, 0x8a, 0xda,
-    0xc7, 0x94, 0x99, 0x43, 0xc6, 0x94, 0x73, 0x64, 0xfd, 0x6b, 0x0d, 0x59,
-    0x0c, 0x92, 0xc9, 0x14, 0x7a, 0xbd, 0x1e, 0xcd, 0xff, 0xda, 0x8c, 0xd6,
-    0x16, 0xab, 0x8c, 0xd1, 0xec, 0x24, 0x43, 0xd3, 0x21, 0xd4, 0x35, 0xfc,
-    0x32, 0x8b, 0xa1, 0x77, 0xef, 0x34, 0x30, 0xc5, 0x48, 0x93, 0x21, 0x0c,
-    0x9c, 0x77, 0x22, 0x9d, 0x49, 0xbc, 0x17, 0x5d, 0x29, 0xe6, 0xb1, 0x93,
-    0xac, 0xdf, 0xb5, 0xae, 0x47, 0x64, 0x34, 0x04, 0xef, 0x17, 0x5e, 0x1c,
-    0x7d, 0xe7, 0x38, 0x12, 0x48, 0x40, 0x5b, 0xad, 0x45, 0x67, 0x7b, 0x27,
-    0x4c, 0xad, 0xaf, 0xc8, 0xfa, 0xb1, 0xcf, 0x90, 0xf5, 0xb6, 0xb4, 0x76,
-    0xbe, 0x10, 0x9c, 0x8f, 0x09, 0x31, 0xb0, 0xb3, 0x91, 0xc9, 0x7e, 0xec,
-    0xed, 0x76, 0xb4, 0xfc, 0xae, 0x4d, 0x74, 0xb7, 0x77, 0x70, 0x7a, 0x7a,
-    0x3a, 0x8b, 0xa9, 0x5b, 0x5e, 0x6d, 0x41, 0xd3, 0x4b, 0x7b, 0x85, 0x6f,
-    0x78, 0x8c, 0x75, 0xff, 0x5b, 0x07, 0xe7, 0xd2, 0x00, 0x50, 0xa5, 0x41,
-    0xc3, 0x2f, 0x1a, 0xd0, 0x79, 0xc0, 0x0e, 0xa7, 0x10, 0xa2, 0x65, 0x86,
-    0xfc, 0x65, 0x5a, 0x3f, 0x96, 0x7d, 0x16, 0xd4, 0xfd, 0xe1, 0x68, 0xc1,
-    0x79, 0xc8, 0x1a, 0xd7, 0x64, 0x08, 0xce, 0xcd, 0xea, 0xf5, 0x33, 0xef,
-    0x33, 0xc3, 0x7e, 0xa0, 0x13, 0xc9, 0xeb, 0x26, 0xa3, 0x09, 0xfa, 0xbe,
-    0xe3, 0xb2, 0xfb, 0xeb, 0x38, 0xd6, 0x43, 0xdf, 0x25, 0x1f, 0x12, 0x48,
-    0xa0, 0x71, 0x57, 0x23, 0x9a, 0x3e, 0x3e, 0x25, 0x36, 0x59, 0x00, 0xe8,
-    0x56, 0x49, 0x77, 0x55, 0x89, 0x8c, 0xf8, 0x68, 0x33, 0x22, 0x5f, 0x2b,
-    0x33, 0xed, 0x40, 0x35, 0xca, 0x66, 0xd8, 0x74, 0x74, 0x9c, 0xf7, 0xc2,
-    0xce, 0xc2, 0x4c, 0xe9, 0x7c, 0x52, 0x88, 0xc8, 0xd5, 0x10, 0x5a, 0x5e,
-    0x6f, 0x45, 0xcf, 0xcb, 0x3d, 0x8a, 0x8c, 0x62, 0x5a, 0x31, 0xe1, 0xca,
-    0xd5, 0x2b, 0x70, 0x7c, 0xe8, 0x40, 0xfd, 0xae, 0x06, 0x58, 0x82, 0xf1,
-    0x94, 0x5c, 0xa7, 0x10, 0x22, 0xfd, 0x46, 0x45, 0x43, 0x53, 0xb4, 0xcf,
-    0x90, 0xfb, 0xf7, 0x5a, 0x52, 0x06, 0xdb, 0x82, 0x16, 0xe0, 0x06, 0xd0,
-    0x79, 0xc0, 0x0e, 0x4d, 0xb5, 0x66, 0x5d, 0xfe, 0x2d, 0x6d, 0x4a, 0x8f,
-    0x23, 0xef, 0xf4, 0xa6, 0xfa, 0xeb, 0xda, 0xda, 0x05, 0xe7, 0x93, 0x42,
-    0xdc, 0x3d, 0xbb, 0x94, 0x6a, 0xdf, 0xd9, 0x91, 0x6d, 0xb0, 0x16, 0x00,
-    0xce, 0xe7, 0x84, 0x18, 0x7b, 0x6b, 0x28, 0xa5, 0x6f, 0x77, 0x5f, 0x37,
-    0x2c, 0x80, 0x4c, 0xff, 0x96, 0x1d, 0x2d, 0x52, 0xfd, 0x67, 0xad, 0xb2,
-    0xf1, 0x05, 0x3e, 0x0a, 0xa0, 0xf9, 0xfc, 0x88, 0x68, 0x7a, 0x69, 0xaf,
-    0x70, 0x03, 0x70, 0x7c, 0xe8, 0x40, 0xdb, 0x44, 0x1b, 0xea, 0xa6, 0xf5,
-    0xb8, 0x72, 0xf5, 0x0a, 0x9c, 0x67, 0x9c, 0x18, 0xfe, 0xb3, 0x0b, 0x16,
-    0x00, 0x0f, 0x7e, 0x0b, 0xa4, 0x8f, 0xa7, 0x77, 0xdf, 0x11, 0xb9, 0x1e,
-    0x19, 0xf3, 0xa0, 0x0b, 0x91, 0xf6, 0x19, 0xd2, 0xbc, 0xcf, 0x2c, 0x9b,
-    0xcf, 0xd0, 0x8d, 0x50, 0x49, 0xfa, 0xe1, 0x26, 0x52, 0x06, 0xdb, 0x82,
-    0x16, 0x44, 0xbf, 0x8a, 0xc2, 0xbe, 0x40, 0x46, 0x43, 0x53, 0xb4, 0xaf,
-    0x92, 0xba, 0x49, 0xd2, 0x50, 0x65, 0x48, 0x5d, 0xbf, 0x72, 0xf5, 0x0a,
-    0xec, 0x24, 0xc5, 0x20, 0x4a, 0xf3, 0x65, 0xd3, 0xb1, 0xf1, 0x65, 0x2b,
-    0x82, 0x3b, 0x94, 0x0d, 0xf7, 0xc4, 0x95, 0x28, 0x0e, 0x4d, 0xd4, 0x6d,
-    0x08, 0xd3, 0x4a, 0xbe, 0x6d, 0x14, 0xa6, 0xe7, 0x9e, 0x54, 0xe5, 0xa3,
-    0x5a, 0x00, 0x24, 0x62, 0x31, 0xd6, 0x6a, 0x6b, 0xe1, 0xbf, 0x16, 0x84,
-    0xe1, 0xa6, 0x1e, 0x6d, 0x7f, 0x7d, 0x23, 0xcb, 0x67, 0x8d, 0x5c, 0x0d,
-    0xc1, 0x29, 0x24, 0x5f, 0xae, 0xf3, 0xe3, 0x6e, 0x4c, 0x5f, 0x0d, 0xa5,
-    0xb6, 0x76, 0x45, 0xdf, 0x6f, 0x8d, 0x61, 0x16, 0x1d, 0x31, 0x9e, 0x5d,
-    0xf3, 0xe5, 0x34, 0xd5, 0x1a, 0x04, 0x27, 0xfc, 0x88, 0xde, 0x8c, 0xa2,
-    0xf5, 0x80, 0x3d, 0xd5, 0xbe, 0xe7, 0xed, 0xc3, 0x68, 0x7a, 0x69, 0xaf,
-    0x90, 0x31, 0xf5, 0x5a, 0x7f, 0x4a, 0xfa, 0x4e, 0x4f, 0x06, 0xd8, 0xfd,
-    0x66, 0x77, 0x8a, 0x91, 0xed, 0x7f, 0x9b, 0xc8, 0xc1, 0x64, 0x36, 0x4e,
-    0x4f, 0xcf, 0xa6, 0xf4, 0xea, 0xbc, 0x76, 0x25, 0x8b, 0xa9, 0xee, 0xdc,
-    0xbd, 0x03, 0x7c, 0x0b, 0xa0, 0x0a, 0xd0, 0x54, 0x3f, 0x88, 0x81, 0xf7,
-    0x4f, 0x48, 0xe3, 0x8c, 0x93, 0xf5, 0x2f, 0x64, 0x33, 0x66, 0xfa, 0x8e,
-    0xa5, 0x66, 0x1e, 0xd4, 0xea, 0x97, 0xd9, 0x7f, 0x21, 0xd4, 0x56, 0x6b,
-    0x31, 0x7e, 0xd1, 0x2b, 0xf9, 0xb4, 0xe6, 0x0b, 0xe5, 0x31, 0xe2, 0x95,
-    0x4b, 0x2e, 0x65, 0x8b, 0x05, 0xd0, 0xdd, 0x58, 0x87, 0x3e, 0xe3, 0xc6,
-    0x31, 0x6e, 0x74, 0xa5, 0xae, 0x68, 0x43, 0x4d, 0x47, 0xcd, 0x96, 0x2d,
-    0xc2, 0xb9, 0x59, 0x08, 0xc3, 0x0b, 0xbb, 0x85, 0xdb, 0xfe, 0xb0, 0x18,
-    0xbc, 0x30, 0x22, 0x7a, 0xde, 0x39, 0x2c, 0x63, 0x0c, 0xe7, 0x27, 0x4e,
-    0x34, 0x8e, 0x86, 0x59, 0xff, 0x5a, 0x03, 0xae, 0x4c, 0x04, 0x01, 0x00,
-    0x91, 0xb3, 0x21, 0x84, 0x2e, 0x06, 0x11, 0xb9, 0x1a, 0x42, 0xd7, 0x5b,
-    0x5d, 0x8a, 0x0c, 0xd3, 0xfd, 0x7a, 0xad, 0x8c, 0xc1, 0xeb, 0x77, 0x35,
-    0xc0, 0xda, 0xd2, 0x8a, 0xa5, 0x95, 0x25, 0xb4, 0xa0, 0x05, 0xb5, 0x35,
-    0xb5, 0x48, 0x32, 0x9f, 0xac, 0xfd, 0x74, 0x28, 0xa7, 0xbe, 0xcd, 0x5b,
-    0x9b, 0x52, 0x0c, 0xa3, 0xab, 0xd6, 0xa5, 0x98, 0x2c, 0xd9, 0x3e, 0xc9,
-    0x64, 0xad, 0xcf, 0xb6, 0xca, 0x6e, 0x6c, 0xa6, 0x9c, 0xae, 0x3f, 0x1c,
-    0x15, 0x4d, 0x1f, 0x9f, 0x12, 0x27, 0xce, 0x9c, 0x12, 0x4d, 0x1f, 0x9f,
-    0x12, 0xbd, 0x7d, 0x0e, 0x91, 0x5c, 0x28, 0xa1, 0x1b, 0x21, 0xc5, 0xf1,
-    0xb8, 0x01, 0xd4, 0x9c, 0x1c, 0x67, 0xfd, 0x6b, 0x0d, 0xa8, 0x9d, 0xa8,
-    0x81, 0xae, 0x5a, 0x27, 0xf9, 0xf6, 0x69, 0xf3, 0x90, 0xb9, 0xe3, 0x94,
-    0xa2, 0x5f, 0x66, 0xff, 0xa6, 0x7d, 0x26, 0x44, 0x82, 0x21, 0x74, 0x5e,
-    0xbb, 0x22, 0x02, 0xd7, 0xa6, 0x45, 0x26, 0xda, 0xff, 0x36, 0x21, 0x12,
-    0x3f, 0xdb, 0x2c, 0x36, 0x25, 0x96, 0xe3, 0x9c, 0xfe, 0x06, 0xc0, 0x75,
-    0x17, 0x00, 0x6b, 0xc9, 0xe8, 0x9a, 0xbd, 0x93, 0xc7, 0x70, 0x81, 0xb1,
-    0xed, 0x77, 0x24, 0xc6, 0x2c, 0xb3, 0x9f, 0xa3, 0x9f, 0xb9, 0x0a, 0xba,
-    0x08, 0x76, 0xae, 0x6d, 0x31, 0x05, 0xea, 0x99, 0xf7, 0x98, 0x31, 0x82,
-    0x91, 0xd4, 0x84, 0x2e, 0xae, 0x98, 0xf0, 0xca, 0xfb, 0xfb, 0x65, 0x8c,
-    0xe9, 0x7c, 0x4e, 0x88, 0xc5, 0x2d, 0x42, 0x38, 0x85, 0x10, 0xa6, 0xd7,
-    0x5e, 0x11, 0xfe, 0x9a, 0x89, 0x54, 0xfd, 0x86, 0xed, 0x0d, 0x70, 0x03,
-    0x58, 0xdc, 0x22, 0x84, 0x69, 0x9f, 0x09, 0x1a, 0x68, 0x64, 0xf2, 0x92,
-    0x7f, 0x0f, 0xbd, 0x3c, 0xb8, 0x1e, 0xdd, 0x30, 0xac, 0x3f, 0x1d, 0x8f,
-    0x5c, 0x70, 0xe7, 0x5c, 0x68, 0xd6, 0xc3, 0xad, 0xa9, 0xf6, 0x7d, 0xbb,
-    0x7a, 0xa4, 0x85, 0x97, 0x26, 0x7f, 0xe4, 0xfa, 0x08, 0x2c, 0x00, 0x86,
-    0xbf, 0x70, 0xc9, 0xfa, 0x53, 0xb3, 0x90, 0x1b, 0xb6, 0x37, 0xc8, 0xf4,
-    0x4d, 0x8e, 0xc7, 0xbe, 0x40, 0x1e, 0x3a, 0xdf, 0x0d, 0x0d, 0x34, 0xf0,
-    0x55, 0xfb, 0xe0, 0xbd, 0xe4, 0x82, 0xf3, 0xc9, 0xf5, 0x79, 0x68, 0x7d,
-    0xd5, 0x2a, 0x1b, 0x1f, 0xb6, 0xa3, 0x24, 0xfd, 0x1a, 0x0c, 0xf2, 0xfe,
-    0x7b, 0x0f, 0x1e, 0x81, 0xf3, 0x01, 0xe5, 0x9d, 0x27, 0x11, 0x8b, 0xa5,
-    0x1e, 0xc2, 0x37, 0xa1, 0xea, 0x41, 0x94, 0xcd, 0x80, 0x5a, 0x3f, 0xac,
-    0xfa, 0xda, 0x9c, 0x46, 0x0b, 0x00, 0x56, 0x7d, 0x2d, 0x78, 0x10, 0x18,
-    0xff, 0x6d, 0xf9, 0x8c, 0x3b, 0x7c, 0x3d, 0xbf, 0xc1, 0xd6, 0xef, 0x6a,
-    0x80, 0xef, 0x80, 0x1f, 0xf5, 0xbb, 0x1a, 0xa0, 0x77, 0x4e, 0xd1, 0x37,
-    0x3a, 0x26, 0xf9, 0x48, 0x71, 0xd2, 0x4e, 0x72, 0x76, 0x32, 0xc0, 0xc6,
-    0xd1, 0xb0, 0x6c, 0x6b, 0xea, 0xda, 0xda, 0x85, 0xee, 0x5d, 0x72, 0xc6,
-    0xc4, 0xb4, 0x5c, 0xee, 0xf1, 0x43, 0x5d, 0x4c, 0x86, 0x7f, 0xd2, 0x19,
-    0xc6, 0x0d, 0xa0, 0xf7, 0xed, 0x23, 0x72, 0x9f, 0x6e, 0x8d, 0x41, 0xb4,
-    0x5a, 0x2d, 0x74, 0xaf, 0xeb, 0x52, 0xf5, 0x9c, 0x03, 0x03, 0xa9, 0xeb,
-    0xbe, 0x09, 0x1f, 0xf4, 0xce, 0x29, 0x26, 0x9f, 0x8a, 0x93, 0x06, 0xd3,
-    0xf6, 0x7a, 0x0b, 0x0d, 0x37, 0x0d, 0xa9, 0xf6, 0xf5, 0xed, 0xf5, 0x45,
-    0xfb, 0x8c, 0x6a, 0x76, 0x20, 0xdc, 0x90, 0xfb, 0xb4, 0xc9, 0xf1, 0x78,
-    0xaf, 0x79, 0x53, 0xf2, 0x50, 0x05, 0xd9, 0x8e, 0x60, 0x27, 0x69, 0x6d,
-    0x69, 0x2d, 0xd9, 0xa7, 0xcd, 0xf4, 0x99, 0xbd, 0xef, 0x7a, 0x53, 0xd7,
-    0x9b, 0x5e, 0x6b, 0x96, 0x45, 0x4b, 0x74, 0x71, 0xd2, 0x12, 0x8c, 0xd3,
-    0xbc, 0xc7, 0x48, 0xe7, 0x4b, 0xc3, 0xeb, 0xd1, 0x03, 0x5b, 0xa9, 0x51,
-    0x83, 0x24, 0x6a, 0xbd, 0x60, 0x87, 0x39, 0xaf, 0xc1, 0x2a, 0x15, 0xf1,
-    0x89, 0x1f, 0xf8, 0xa6, 0xb9, 0xa4, 0x7e, 0xbb, 0x7e, 0x6b, 0x85, 0xfe,
-    0x09, 0xe5, 0x15, 0xa9, 0x59, 0x8e, 0xb3, 0xad, 0xb3, 0x0d, 0xd3, 0xb3,
-    0xb3, 0x45, 0xfb, 0x4a, 0x06, 0xbd, 0x1e, 0xbd, 0x47, 0x7b, 0x51, 0xf7,
-    0x74, 0x1d, 0xac, 0x2d, 0xf2, 0xf8, 0xac, 0xb6, 0x46, 0x87, 0xc4, 0xca,
-    0x3f, 0x14, 0x7d, 0xba, 0x4c, 0x1f, 0xb0, 0xf1, 0x58, 0x98, 0xaf, 0x5c,
-    0xda, 0x2f, 0xab, 0x97, 0xf4, 0xed, 0x64, 0x0b, 0x6b, 0x81, 0x6c, 0xb6,
-    0x29, 0xc7, 0x3f, 0xd3, 0xb1, 0xae, 0xa6, 0x0e, 0xfd, 0x1f, 0x9c, 0x80,
-    0xf6, 0x19, 0xc9, 0x87, 0x77, 0xee, 0x31, 0x32, 0xa9, 0x87, 0x92, 0xcf,
-    0x58, 0x57, 0x53, 0x07, 0x8b, 0xc7, 0x5d, 0x30, 0xba, 0x92, 0x33, 0x0a,
-    0x90, 0xf4, 0xe9, 0xd7, 0xc2, 0x50, 0xe9, 0x71, 0xdc, 0x62, 0xe6, 0xc1,
-    0xbd, 0xd7, 0xc2, 0x64, 0x9c, 0x55, 0x49, 0xbf, 0xa4, 0x6f, 0x9e, 0xa9,
-    0x47, 0xfa, 0x33, 0x41, 0xae, 0xf9, 0xa8, 0x7b, 0xba, 0x0e, 0xae, 0x91,
-    0x61, 0x38, 0x85, 0x10, 0xe8, 0x57, 0xfb, 0x06, 0x2c, 0x0d, 0x2d, 0x6b,
-    0xc9, 0x30, 0xa5, 0x96, 0xc3, 0xfe, 0x70, 0x89, 0x6f, 0xc8, 0x0a, 0xbf,
-    0x99, 0xe1, 0x02, 0xd9, 0xe7, 0xe8, 0xa3, 0xd2, 0xbb, 0x75, 0xfd, 0x4e,
-    0x03, 0xc7, 0x8e, 0x7b, 0xa4, 0x9c, 0x83, 0x8c, 0xe4, 0x10, 0x92, 0x1c,
-    0x1a, 0x1d, 0xa3, 0xe7, 0xe4, 0x38, 0x6d, 0x07, 0x3b, 0x38, 0x7e, 0x72,
-    0x9c, 0x5d, 0x87, 0xba, 0xc8, 0x19, 0x4a, 0xaf, 0x7a, 0x83, 0x71, 0x0e,
-    0x9e, 0x1e, 0x24, 0x67, 0x48, 0xc6, 0xe5, 0x7a, 0x24, 0x73, 0x1e, 0x6c,
-    0x07, 0x3b, 0xe8, 0x39, 0x39, 0xce, 0x3e, 0x47, 0x5f, 0x5e, 0x3d, 0x3d,
-    0x3e, 0x8f, 0xac, 0x7e, 0xb2, 0xbf, 0x3e, 0x47, 0xbf, 0xe2, 0xab, 0x50,
-    0x8f, 0xcf, 0xb3, 0xae, 0xcf, 0xda, 0x1b, 0x23, 0x92, 0xa9, 0xf6, 0x81,
-    0xc9, 0xe2, 0xdf, 0x1c, 0xa6, 0xcf, 0x53, 0x72, 0x3c, 0x59, 0x6f, 0xf0,
-    0x4e, 0x0f, 0x72, 0x7c, 0x4d, 0x2f, 0xcf, 0xc9, 0x71, 0x69, 0xbe, 0x66,
-    0x48, 0x86, 0x28, 0x9b, 0x87, 0x62, 0xf5, 0xcb, 0xf7, 0xe6, 0x51, 0xa9,
-    0x3f, 0xdb, 0xc1, 0x0e, 0x86, 0x47, 0xc3, 0xe4, 0xa4, 0x7c, 0x9e, 0x51,
-    0x52, 0xde, 0xeb, 0x49, 0x29, 0x6b, 0x6b, 0x23, 0x4a, 0x60, 0xee, 0x1e,
-    0x31, 0xa0, 0xae, 0x7f, 0xad, 0xe3, 0x87, 0x9f, 0xdc, 0x52, 0xc1, 0xfb,
-    0x87, 0x50, 0xcb, 0x74, 0x43, 0x5f, 0xb2, 0x60, 0x36, 0x97, 0xea, 0xb2,
-    0x4c, 0xf6, 0xcd, 0xa8, 0xd3, 0x23, 0xdf, 0xc0, 0xb8, 0x4a, 0xc6, 0xe2,
-    0x64, 0xd7, 0x65, 0xd2, 0x18, 0x92, 0x0e, 0x53, 0xc6, 0xe2, 0xac, 0x9c,
-    0x0a, 0xfe, 0x27, 0xc1, 0xe2, 0x99, 0xf6, 0xbd, 0xe2, 0xb2, 0xb9, 0xca,
-    0x29, 0x6a, 0xf2, 0x6d, 0xf3, 0x0d, 0x6c, 0x5b, 0x0e, 0xe6, 0x36, 0x38,
-    0xcb, 0x67, 0xe8, 0xf8, 0xaa, 0xa4, 0x6b, 0x60, 0xfe, 0x1e, 0x49, 0x65,
-    0x79, 0xe9, 0xd7, 0x03, 0xf3, 0xf7, 0x36, 0x74, 0xa1, 0xc4, 0x73, 0x2c,
-    0xbc, 0xc0, 0xfc, 0x3d, 0x86, 0x17, 0xa4, 0x23, 0x4b, 0x3d, 0x0b, 0xd2,
-    0x29, 0xe9, 0x8d, 0xe8, 0xaf, 0xff, 0xf3, 0x39, 0xda, 0xe6, 0xa4, 0xa4,
-    0xa5, 0xf0, 0x02, 0x19, 0x5e, 0x90, 0x8f, 0xc7, 0xf3, 0x65, 0x8c, 0xc6,
-    0x61, 0xe9, 0xba, 0x84, 0xe3, 0xec, 0x59, 0x28, 0xfd, 0xcc, 0x5f, 0x78,
-    0xe1, 0x1e, 0x7b, 0x16, 0xe4, 0xf2, 0x2c, 0x11, 0xb9, 0xbc, 0xe2, 0x98,
-    0x76, 0xe0, 0xbe, 0xdb, 0x6b, 0xaa, 0xc4, 0x96, 0xcb, 0x67, 0xda, 0x52,
-    0xdb, 0x15, 0x83, 0x3d, 0x41, 0xb9, 0xbc, 0x4c, 0xc3, 0x25, 0x95, 0xfb,
-    0x0d, 0xc4, 0xca, 0xcf, 0x12, 0x4b, 0x9e, 0x7e, 0x36, 0x9c, 0xce, 0xf0,
-    0xa5, 0x97, 0x95, 0xf3, 0x94, 0x03, 0xf3, 0xe5, 0xed, 0x2c, 0xfd, 0x9f,
-    0x67, 0xcb, 0xd5, 0xfa, 0xe4, 0xe3, 0x18, 0x8a, 0xe4, 0xbe, 0x4f, 0x5d,
-    0x97, 0x8b, 0x3f, 0xf3, 0x47, 0x92, 0x96, 0x3c, 0xd9, 0x80, 0xe9, 0xf3,
-    0xbc, 0xa9, 0x60, 0x7c, 0xf4, 0xa6, 0x0b, 0xec, 0xc0, 0x77, 0x56, 0x6a,
-    0x1f, 0x02, 0xe6, 0x0e, 0x16, 0x8e, 0xd7, 0xba, 0x91, 0xfb, 0xa9, 0xb8,
-    0xd4, 0x76, 0xc5, 0xe0, 0xd1, 0xcf, 0xe4, 0xf2, 0x7a, 0xff, 0x1e, 0x91,
-    0xc7, 0x57, 0xff, 0x1c, 0x54, 0xec, 0x77, 0xf7, 0x19, 0x17, 0x86, 0x87,
-    0x49, 0x4d, 0x11, 0x49, 0x3f, 0x4a, 0x38, 0x70, 0x35, 0x8a, 0xa5, 0x84,
-    0x19, 0xb8, 0xee, 0xc2, 0xf4, 0x37, 0x19, 0xe3, 0x7d, 0x08, 0x8a, 0xe3,
-    0xf5, 0x6b, 0x4a, 0x1f, 0xa7, 0x1b, 0xc0, 0xe2, 0xb6, 0x6c, 0xb9, 0x4b,
-    0x57, 0xe5, 0x71, 0x72, 0xcb, 0x53, 0x80, 0x71, 0x9b, 0xf2, 0x7c, 0x3b,
-    0xae, 0xd6, 0xe3, 0xc5, 0xd3, 0xe3, 0x05, 0xe3, 0xe5, 0x76, 0x92, 0x75,
-    0x1f, 0x79, 0xe1, 0xbe, 0xd9, 0xa4, 0x28, 0x27, 0xf0, 0x6b, 0x79, 0x6e,
-    0xc8, 0xa6, 0x42, 0x71, 0x51, 0xbe, 0x65, 0x2d, 0x64, 0x67, 0xaa, 0x4b,
-    0xe4, 0x6b, 0xe0, 0xc4, 0x75, 0xc0, 0x3b, 0xab, 0x7c, 0xbd, 0x4e, 0x07,
-    0xc4, 0x7e, 0x9f, 0x5f, 0xaf, 0xbc, 0xf1, 0xc7, 0x12, 0xdb, 0x15, 0x83,
-    0x59, 0xf2, 0x9e, 0xad, 0x97, 0xdf, 0xe8, 0xa7, 0x9a, 0x72, 0xf6, 0x3f,
-    0x71, 0xcb, 0x85, 0xdd, 0xd7, 0x80, 0x3b, 0x0b, 0xea, 0x0d, 0xd7, 0xf8,
-    0x54, 0x5d, 0xce, 0x71, 0x04, 0x6f, 0x67, 0xeb, 0x85, 0x1d, 0x56, 0x59,
-    0x1c, 0xb9, 0x14, 0xc4, 0x0d, 0x65, 0xb9, 0xc1, 0xdb, 0xeb, 0xf5, 0x12,
-    0x0f, 0x08, 0xd1, 0xda, 0x2a, 0x44, 0xec, 0x90, 0x15, 0x5a, 0x4d, 0x76,
-    0x96, 0xe0, 0xf4, 0xa3, 0xcd, 0xd0, 0x7d, 0xe0, 0x45, 0x4b, 0x0e, 0xc3,
-    0x35, 0xc5, 0x49, 0xdd, 0x07, 0x5e, 0xdc, 0x7a, 0xdc, 0x9c, 0xd5, 0xcf,
-    0x36, 0xad, 0x17, 0x7c, 0xdb, 0x8a, 0xd9, 0x8c, 0xf0, 0xe6, 0xa6, 0x6d,
-    0xb7, 0xbd, 0xc8, 0xc5, 0x4c, 0x8d, 0xfb, 0x36, 0xde, 0x60, 0x01, 0xa0,
-    0xfe, 0x51, 0xe0, 0xd0, 0xa7, 0x2e, 0xec, 0xfd, 0x14, 0x10, 0xa7, 0xbc,
-    0x38, 0xb1, 0x08, 0x2c, 0xfe, 0x9f, 0xbc, 0x4e, 0xed, 0x43, 0x80, 0xe5,
-    0x55, 0x65, 0xbd, 0x0c, 0x35, 0xdf, 0x1f, 0xd3, 0x66, 0xc9, 0xfb, 0x22,
-    0x92, 0x71, 0xdd, 0x9f, 0xb7, 0xff, 0xe9, 0xcf, 0x5c, 0xd8, 0x7d, 0x1e,
-    0x98, 0x9d, 0xbf, 0xa7, 0xce, 0x70, 0xbf, 0x88, 0xe4, 0x1c, 0x47, 0xd3,
-    0xe3, 0xd9, 0x7a, 0xe1, 0xba, 0x0b, 0x96, 0xed, 0xe5, 0x2d, 0x50, 0xcb,
-    0x76, 0x65, 0xb9, 0x4d, 0x8f, 0x67, 0xd7, 0xf7, 0x6d, 0x16, 0x62, 0xf1,
-    0x4d, 0x33, 0x0c, 0x5f, 0x67, 0x8f, 0x7f, 0x29, 0x61, 0xc6, 0xe6, 0x77,
-    0x5c, 0xe8, 0x1d, 0x20, 0x07, 0x26, 0xc3, 0xbc, 0xb3, 0x40, 0x1e, 0xbf,
-    0x1c, 0x66, 0xef, 0x00, 0xb9, 0xa5, 0xcf, 0x95, 0xda, 0x41, 0xd2, 0xdb,
-    0x75, 0x55, 0x47, 0x10, 0xed, 0x30, 0x2b, 0xe6, 0x66, 0xe4, 0x8e, 0xd3,
-    0xfa, 0xa8, 0x18, 0x25, 0x88, 0xaf, 0x92, 0x16, 0x37, 0x89, 0xa0, 0xf4,
-    0x70, 0x06, 0x37, 0x89, 0x73, 0xea, 0x7d, 0x57, 0xf8, 0x15, 0xfa, 0x3d,
-    0x17, 0x90, 0x57, 0x5a, 0x26, 0x71, 0x59, 0x21, 0x3e, 0x3c, 0x9a, 0xdf,
-    0x57, 0xbb, 0x9f, 0x3e, 0x6d, 0xa6, 0xbc, 0xf0, 0x3d, 0xb9, 0x8f, 0xa7,
-    0x26, 0xee, 0x3d, 0x34, 0x53, 0xbc, 0xcf, 0x19, 0xbe, 0x97, 0x7b, 0x1c,
-    0x9c, 0x57, 0xf6, 0x69, 0xcb, 0xfd, 0x8e, 0x44, 0xcf, 0xa4, 0x72, 0x1c,
-    0x9d, 0x05, 0x7c, 0xe5, 0x9e, 0x49, 0x65, 0x7d, 0x8a, 0x41, 0xad, 0xaf,
-    0xb0, 0xfc, 0x4d, 0x8b, 0x2b, 0xf2, 0x15, 0x9c, 0x44, 0x53, 0x22, 0x24,
-    0xf9, 0x4a, 0x6b, 0xa5, 0x7b, 0x22, 0x02, 0xf1, 0x11, 0xb0, 0xf9, 0xbf,
-    0x5d, 0x70, 0xcf, 0x02, 0xf8, 0xcc, 0x05, 0x7c, 0x2b, 0xd5, 0x9f, 0xfa,
-    0x37, 0xa8, 0x2f, 0x37, 0x15, 0x18, 0xe9, 0xab, 0x26, 0x88, 0xf7, 0xd3,
-    0x92, 0x6f, 0x1e, 0x02, 0x2c, 0x2b, 0xa1, 0xac, 0x7a, 0x3d, 0x7b, 0x0a,
-    0x6c, 0xe1, 0xdf, 0x23, 0xd3, 0xba, 0xae, 0x2b, 0xfb, 0xb4, 0x4a, 0xb8,
-    0xff, 0x92, 0x94, 0xc7, 0x5c, 0x2e, 0xd3, 0x22, 0x07, 0xd3, 0x62, 0x7b,
-    0x7d, 0x59, 0xe3, 0xc5, 0xf6, 0x7a, 0x65, 0xb9, 0x0a, 0x4c, 0x9b, 0x8e,
-    0x9d, 0x2f, 0x08, 0x11, 0xd8, 0xb9, 0x08, 0xad, 0xa6, 0xf8, 0x9c, 0x92,
-    0xe4, 0x0e, 0x1a, 0xfb, 0x15, 0xb0, 0xf8, 0x84, 0xc8, 0x9b, 0xc5, 0x97,
-    0xf3, 0x69, 0x57, 0xc6, 0x8a, 0x03, 0xe3, 0x79, 0x57, 0x88, 0x27, 0x52,
-    0x02, 0xd3, 0x06, 0xf3, 0xaf, 0xb8, 0xd8, 0xf2, 0x3a, 0xb3, 0xab, 0x7d,
-    0x2a, 0xfe, 0x3e, 0x99, 0x36, 0xf3, 0x8c, 0x9d, 0x21, 0x48, 0x7a, 0xd2,
-    0xce, 0x98, 0x91, 0x12, 0x03, 0xa6, 0x9f, 0x76, 0xb6, 0x8c, 0x06, 0x52,
-    0xd7, 0x4b, 0x61, 0xda, 0x40, 0x4e, 0xa6, 0x2d, 0x2f, 0x7a, 0x90, 0x8b,
-    0x31, 0x8b, 0x8d, 0x4a, 0xa8, 0x39, 0xd5, 0xbd, 0xcd, 0xcf, 0xa2, 0xe3,
-    0xe8, 0x9b, 0x9c, 0x42, 0x08, 0x45, 0xcb, 0x5f, 0x2b, 0xe2, 0x94, 0x17,
-    0x58, 0x6a, 0xce, 0xbb, 0x42, 0xcc, 0x7a, 0xa8, 0x2f, 0x05, 0x7c, 0xbf,
-    0x2d, 0x1f, 0xba, 0xd0, 0x74, 0x1d, 0xd8, 0xfc, 0x27, 0x79, 0x3d, 0xed,
-    0x4d, 0x17, 0xf4, 0x85, 0x56, 0xe2, 0x0f, 0xc8, 0xa7, 0x0d, 0xec, 0x04,
-    0x9a, 0x9e, 0x11, 0xa9, 0x74, 0x40, 0xa7, 0x10, 0xa2, 0xf3, 0x85, 0x9f,
-    0x8b, 0xd8, 0xaf, 0x00, 0xcb, 0xcb, 0x52, 0x3d, 0xf7, 0xcd, 0x26, 0x34,
-    0x7c, 0xe2, 0xcf, 0x9b, 0xbd, 0x76, 0xf6, 0xda, 0x0f, 0xdb, 0xa7, 0x55,
-    0xbc, 0x0f, 0x8f, 0x02, 0x4b, 0x57, 0x8b, 0x65, 0x5a, 0x2f, 0xf0, 0x2f,
-    0xc5, 0xc9, 0xdd, 0x64, 0x01, 0x60, 0x79, 0x1a, 0x59, 0x4f, 0x7d, 0xfe,
-    0xdb, 0x80, 0xf8, 0xc0, 0x0b, 0xd4, 0x66, 0x3f, 0xd5, 0xc9, 0xf0, 0xf9,
-    0x12, 0x1f, 0xd6, 0x76, 0x34, 0xe7, 0x97, 0x9b, 0xcc, 0xd3, 0x7d, 0x54,
-    0x5e, 0x6f, 0xe8, 0xd5, 0xc2, 0x86, 0xf7, 0x7d, 0x46, 0x0f, 0xac, 0x69,
-    0xe3, 0x32, 0x6e, 0x0d, 0x22, 0xf1, 0x80, 0xf2, 0x02, 0x4b, 0x3c, 0x20,
-    0x84, 0xa9, 0x5e, 0x88, 0x40, 0xfb, 0xfa, 0x53, 0xb6, 0x78, 0xd7, 0x05,
-    0x7d, 0x8c, 0xd4, 0x2d, 0xa7, 0x65, 0x7d, 0x91, 0x1c, 0xf9, 0x9c, 0x74,
-    0xac, 0xd4, 0xe7, 0x1c, 0x07, 0x72, 0x44, 0x0f, 0xdc, 0x37, 0x22, 0xe5,
-    0x8d, 0xf7, 0x46, 0x44, 0x79, 0x1e, 0x6f, 0x17, 0x6e, 0x6f, 0xa7, 0x14,
-    0x15, 0x28, 0x36, 0x7b, 0xef, 0xd6, 0xe3, 0xe6, 0x82, 0x0b, 0x37, 0x89,
-    0x9b, 0xdc, 0x00, 0x5c, 0xaf, 0x22, 0xcb, 0xf2, 0x5f, 0xfc, 0x93, 0x0b,
-    0x50, 0x78, 0xaa, 0xcb, 0xc2, 0xdb, 0xc1, 0x9c, 0x76, 0x99, 0xb7, 0x14,
-    0x60, 0xda, 0x5c, 0xa8, 0xab, 0x5a, 0x2c, 0x6c, 0x58, 0x79, 0xda, 0x27,
-    0x96, 0xe3, 0x25, 0xc5, 0x49, 0x8b, 0x65, 0x5a, 0x99, 0x4f, 0x5b, 0xd5,
-    0x54, 0x50, 0xde, 0xec, 0x16, 0x21, 0xe2, 0x87, 0xa4, 0x1d, 0x24, 0x19,
-    0xcf, 0x15, 0x7f, 0x04, 0x1e, 0x3e, 0x36, 0xc6, 0xb6, 0xe3, 0xa4, 0x78,
-    0xc7, 0x85, 0x37, 0x3e, 0x53, 0xe8, 0x37, 0x7d, 0xbc, 0xf7, 0xc9, 0xa7,
-    0x5d, 0xda, 0xa6, 0xde, 0xa7, 0xd5, 0xac, 0x92, 0xfa, 0x79, 0x49, 0x6f,
-    0xa5, 0xa8, 0x40, 0x3e, 0x9c, 0xfe, 0xa6, 0x19, 0xba, 0xf7, 0x5d, 0x30,
-    0x2d, 0xe7, 0x37, 0xdc, 0x4d, 0xc9, 0x2d, 0x6b, 0xdb, 0xf3, 0xc5, 0xad,
-    0x88, 0x4c, 0x1c, 0x37, 0x36, 0xe5, 0x36, 0xcc, 0x7c, 0xa5, 0x08, 0xa6,
-    0xcd, 0x44, 0xe3, 0x56, 0x40, 0xff, 0xc4, 0xc3, 0x05, 0x8f, 0xda, 0xe4,
-    0x95, 0x53, 0xf5, 0xe0, 0x7d, 0x65, 0x5a, 0xec, 0x48, 0x8b, 0xd3, 0x7e,
-    0x5b, 0x9c, 0xdc, 0x91, 0x07, 0x84, 0x58, 0x7c, 0x4b, 0x39, 0xce, 0x59,
-    0xcc, 0x8e, 0x11, 0xf9, 0x3a, 0x5b, 0x2f, 0xec, 0xb0, 0xc2, 0xff, 0x97,
-    0xf2, 0x5c, 0x21, 0xd7, 0x25, 0x65, 0x7d, 0x72, 0x1d, 0x11, 0xd2, 0xcd,
-    0x93, 0xf5, 0xff, 0x03, 0xec, 0x3e, 0xaf, 0xac, 0xb7, 0xe1, 0x11, 0x20,
-    0xfc, 0x1f, 0x56, 0xf4, 0x3c, 0x1f, 0x41, 0xa0, 0x5d, 0x8a, 0xc3, 0x66,
-    0xd6, 0x5b, 0x7a, 0xda, 0x8a, 0x2d, 0x7f, 0x74, 0x21, 0x11, 0x92, 0xef,
-    0x38, 0x59, 0x4c, 0x6b, 0x01, 0xd0, 0xfb, 0xc8, 0x1d, 0x94, 0xc2, 0x7c,
-    0x8e, 0x6b, 0xa1, 0x7c, 0xa6, 0x99, 0xbb, 0x7c, 0xa6, 0xae, 0x1f, 0x5c,
-    0x77, 0xc1, 0xff, 0x9b, 0x22, 0x0d, 0x2b, 0x9f, 0xaf, 0xdc, 0xe7, 0x42,
-    0x70, 0x8e, 0x9c, 0x9d, 0xbf, 0x57, 0xf0, 0x4d, 0x4d, 0x29, 0x4c, 0x2b,
-    0xdb, 0x41, 0xaa, 0x8a, 0x97, 0xeb, 0x14, 0xb9, 0xe3, 0x9c, 0x85, 0x7c,
-    0xf3, 0xda, 0xc7, 0x84, 0x50, 0x8a, 0xb7, 0x4f, 0x7c, 0x05, 0x0c, 0x4c,
-    0x86, 0x4b, 0xda, 0x59, 0xba, 0x2f, 0x4e, 0xf1, 0xd6, 0x52, 0x36, 0x53,
-    0xda, 0xaa, 0xb2, 0x8f, 0x08, 0xd9, 0x29, 0xc5, 0x5d, 0xc5, 0x79, 0xe0,
-    0xd6, 0xdf, 0xb3, 0xf5, 0x35, 0xd4, 0x58, 0x11, 0xd8, 0xb9, 0x88, 0xf1,
-    0xdf, 0x09, 0x71, 0xe5, 0x61, 0xc9, 0xa7, 0x9f, 0xdd, 0x22, 0x44, 0xa8,
-    0x73, 0xaf, 0xe8, 0xdf, 0x1a, 0x55, 0x8c, 0x32, 0xbc, 0x71, 0xc9, 0x05,
-    0xdd, 0x19, 0x60, 0xe4, 0xf3, 0xb9, 0x2c, 0xfd, 0x65, 0x4f, 0x65, 0xc6,
-    0x73, 0x25, 0x7c, 0x09, 0x26, 0xa8, 0x3e, 0x72, 0x40, 0x95, 0xdf, 0xf4,
-    0xc2, 0xf1, 0x31, 0x1a, 0x43, 0xc5, 0xbf, 0xbb, 0x2f, 0x35, 0x3f, 0x58,
-    0x09, 0xfb, 0x43, 0xd2, 0xd3, 0x7f, 0x52, 0xbe, 0x9a, 0x38, 0xad, 0x9a,
-    0x2f, 0xe3, 0xa4, 0xa3, 0xed, 0x62, 0xe1, 0xf9, 0xc9, 0x6c, 0x47, 0xe6,
-    0xfe, 0x32, 0xbb, 0xf1, 0x1c, 0x19, 0x67, 0xe1, 0xa7, 0x73, 0xae, 0x4a,
-    0xf5, 0xb6, 0x0d, 0x28, 0xcb, 0x51, 0xfa, 0x0c, 0x2b, 0xf3, 0xd4, 0x2f,
-    0x36, 0xe7, 0x82, 0xcb, 0xa4, 0x21, 0x4f, 0x34, 0xc9, 0x78, 0x8e, 0xb2,
-    0x7e, 0x65, 0x5f, 0x98, 0xb1, 0x53, 0xf2, 0x45, 0xa0, 0xf2, 0x24, 0x01,
-    0xdf, 0x56, 0xf7, 0x30, 0xa6, 0xf6, 0x7b, 0x08, 0xda, 0x6a, 0x2b, 0x22,
-    0xed, 0xff, 0x80, 0x66, 0xed, 0x0b, 0x23, 0x85, 0x98, 0xa2, 0xed, 0x38,
-    0xb9, 0x51, 0xa7, 0x7f, 0x93, 0x38, 0x78, 0x58, 0xda, 0x12, 0x1f, 0x3e,
-    0x36, 0xc6, 0xf4, 0xff, 0xf7, 0x3c, 0x1f, 0x41, 0xe7, 0x0b, 0x3f, 0x4f,
-    0xe9, 0x95, 0xfe, 0xfd, 0x08, 0xe3, 0x53, 0x56, 0xb4, 0xb6, 0x16, 0xfe,
-    0x4e, 0x83, 0x12, 0xfa, 0x66, 0xe6, 0xb8, 0xff, 0x52, 0xee, 0x53, 0xcc,
-    0x49, 0x7d, 0x32, 0x19, 0xaf, 0xee, 0x23, 0x2f, 0x6e, 0xad, 0x98, 0x73,
-    0xb6, 0x33, 0x6e, 0x0d, 0x42, 0xb7, 0xab, 0x09, 0x86, 0x6f, 0x22, 0x52,
-    0x1c, 0xf6, 0x46, 0x04, 0xfe, 0xdb, 0xf5, 0x58, 0x5a, 0xf1, 0x63, 0x3a,
-    0xcf, 0x49, 0x12, 0xe3, 0x56, 0x3f, 0xfc, 0xbf, 0x69, 0x4e, 0xb9, 0x06,
-    0x9a, 0x55, 0xf2, 0xe8, 0x5d, 0xc0, 0xf1, 0x27, 0xe5, 0xfa, 0xda, 0x2a,
-    0x17, 0x62, 0xbf, 0xb7, 0x62, 0x24, 0xc7, 0x99, 0x2f, 0x25, 0x0c, 0xce,
-    0x91, 0x67, 0x73, 0xd8, 0x45, 0xba, 0xbc, 0x2c, 0xcb, 0x8f, 0xc5, 0xd5,
-    0x33, 0xd2, 0x61, 0x7f, 0x58, 0x5d, 0x8c, 0x56, 0xe5, 0x6f, 0x35, 0xa8,
-    0x79, 0x73, 0x74, 0x0f, 0x40, 0xd7, 0xe5, 0xd2, 0x4e, 0x44, 0xe4, 0xc2,
-    0xf4, 0x37, 0x4b, 0x99, 0x71, 0x58, 0x25, 0xe6, 0x59, 0xcf, 0x72, 0x2a,
-    0x2f, 0x4e, 0xca, 0x79, 0x65, 0x06, 0x32, 0x9c, 0x1e, 0xcf, 0x2b, 0x77,
-    0x68, 0x86, 0xcc, 0xcc, 0x46, 0x2b, 0x15, 0x87, 0x22, 0xca, 0x71, 0xd9,
-    0x7c, 0xd9, 0x5d, 0xc6, 0x73, 0x85, 0xe3, 0xce, 0xb9, 0x30, 0xdf, 0x8e,
-    0x81, 0xe3, 0x63, 0x8c, 0x93, 0x54, 0x6c, 0x68, 0x9b, 0xa3, 0xba, 0x93,
-    0x0c, 0xef, 0x49, 0x27, 0x10, 0x8a, 0x29, 0x6a, 0xbf, 0x9e, 0x68, 0xbb,
-    0x58, 0xda, 0xd7, 0x0c, 0x33, 0xf3, 0x5e, 0x4b, 0xc5, 0x5c, 0x13, 0x5b,
-    0xe8, 0xfa, 0x46, 0xfe, 0x86, 0x44, 0xa6, 0x5e, 0x6a, 0xda, 0x0d, 0xcd,
-    0xcc, 0xc9, 0xf2, 0x53, 0xb7, 0x9d, 0xf4, 0x28, 0xce, 0xb3, 0xe1, 0xf4,
-    0x38, 0x8d, 0xc3, 0xd2, 0x8b, 0x8e, 0x64, 0x3e, 0x6e, 0x3e, 0xc3, 0x1b,
-    0x9a, 0x91, 0xf2, 0x68, 0xb5, 0xef, 0x49, 0xed, 0x8d, 0xe7, 0x02, 0xb4,
-    0x44, 0x36, 0x26, 0x8f, 0x97, 0x24, 0xfb, 0x3f, 0x9f, 0x4b, 0xe5, 0xd3,
-    0xe2, 0xb8, 0xa4, 0x77, 0xf2, 0xb7, 0x39, 0x72, 0xfa, 0x36, 0xf9, 0x7c,
-    0x0c, 0x45, 0xf4, 0x4b, 0xdf, 0x9f, 0xcd, 0x57, 0xfa, 0x82, 0xea, 0x7c,
-    0xd9, 0x52, 0x7d, 0xc2, 0x0a, 0xfe, 0x73, 0x63, 0x5e, 0xa6, 0x2a, 0xe5,
-    0xb7, 0x16, 0x72, 0x1d, 0x76, 0x34, 0x0c, 0x07, 0xd4, 0xc9, 0x29, 0xe2,
-    0xd5, 0x66, 0x05, 0x7f, 0x9a, 0x58, 0xb0, 0x82, 0x67, 0x6e, 0xe3, 0x7c,
-    0xc3, 0x62, 0xb1, 0x54, 0x97, 0xa0, 0x82, 0x3f, 0x0d, 0x2c, 0xaa, 0x62,
-    0x6c, 0x79, 0xdd, 0x77, 0xb9, 0x9f, 0xbf, 0x6e, 0xa3, 0x75, 0x48, 0x3e,
-    0xd8, 0x0f, 0x61, 0x62, 0x2a, 0xf8, 0xc3, 0xc5, 0xa2, 0x2b, 0x92, 0x92,
-    0x8f, 0x79, 0xbf, 0x18, 0xd6, 0x18, 0x22, 0xb9, 0x5c, 0x39, 0x2d, 0x5b,
-    0xc1, 0xc2, 0xa8, 0xba, 0x41, 0x60, 0xfe, 0x1e, 0x8d, 0xc3, 0x1b, 0xc7,
-    0xb0, 0xe5, 0x84, 0x47, 0x2a, 0xf8, 0xd3, 0xc4, 0x92, 0x1b, 0x92, 0x52,
-    0x1c, 0x72, 0x9b, 0xd2, 0x09, 0x84, 0x02, 0xb8, 0x6d, 0xc0, 0xc3, 0x40,
-    0xac, 0xc2, 0xac, 0x15, 0x2c, 0x0d, 0x37, 0x44, 0x90, 0x14, 0x0f, 0x8c,
-    0x31, 0xbc, 0x20, 0x3d, 0xf5, 0x67, 0x9e, 0x83, 0xb7, 0x44, 0xa4, 0x00,
-    0x7d, 0x7c, 0xb5, 0xf2, 0x1b, 0xb8, 0x15, 0x2c, 0x1f, 0xff, 0x1f, 0xb8,
-    0xf1, 0x7d, 0x8d, 0x23, 0x36, 0x50, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x49,
-    0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
+    0x08, 0x06, 0x00, 0x00, 0x00, 0x63, 0x57, 0xfa, 0xde, 0x00, 0x00, 0x10,
+    0x87, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, 0x5f, 0x68, 0x5b,
+    0x57, 0x9e, 0xfe, 0x6e, 0x09, 0x8b, 0x5a, 0xdc, 0xa2, 0x0c, 0xc3, 0x10,
+    0x87, 0xcc, 0x60, 0x0f, 0xdb, 0x82, 0xdd, 0x61, 0xa8, 0xb4, 0xf6, 0x83,
+    0x9d, 0x99, 0x12, 0xb9, 0x2f, 0x3b, 0x76, 0x12, 0x66, 0xa4, 0x76, 0xa1,
+    0x76, 0xb7, 0x0f, 0x52, 0x9c, 0x12, 0xbb, 0xfb, 0xd0, 0xda, 0xdd, 0x97,
+    0xfc, 0x59, 0x12, 0x25, 0x2c, 0xa9, 0xe3, 0x2c, 0x9d, 0xb5, 0xa6, 0x38,
+    0x91, 0x02, 0x61, 0xac, 0x04, 0xb2, 0x56, 0x1e, 0x6c, 0xd9, 0x03, 0xd9,
+    0x8d, 0xb2, 0x78, 0x47, 0x2a, 0xd4, 0xd1, 0xf5, 0x90, 0x22, 0x07, 0x1c,
+    0xb0, 0x8b, 0xa7, 0xdc, 0x04, 0x13, 0x6c, 0x23, 0x8c, 0x22, 0x4c, 0xe0,
+    0xdb, 0x87, 0x6b, 0x5d, 0xeb, 0x4a, 0xf7, 0x5e, 0xdd, 0x7b, 0xe5, 0xb4,
+    0xe9, 0x54, 0xf7, 0xe5, 0x23, 0xb9, 0xe7, 0xfc, 0xce, 0xef, 0x1c, 0x9d,
+    0xfb, 0xdd, 0xef, 0xfc, 0xee, 0xef, 0x1c, 0x83, 0x00, 0xc2, 0x00, 0x76,
+    0x0c, 0x49, 0x72, 0x99, 0x24, 0xc9, 0xe4, 0x16, 0x72, 0x93, 0xdc, 0xf1,
+    0x76, 0x6a, 0xf8, 0x83, 0xc5, 0xaa, 0x27, 0x68, 0x7c, 0x41, 0x62, 0x66,
+    0x85, 0x74, 0x8d, 0xde, 0x26, 0xce, 0x91, 0x38, 0x3d, 0xae, 0x8b, 0x9e,
+    0x28, 0x39, 0x70, 0x2b, 0x43, 0x92, 0xfc, 0xae, 0x3b, 0x5e, 0xc3, 0xef,
+    0x2f, 0xda, 0xaa, 0x98, 0x59, 0x21, 0x93, 0x12, 0xe9, 0x1c, 0x8e, 0x13,
+    0xd3, 0x24, 0xce, 0x8d, 0x5b, 0x46, 0x67, 0x82, 0xf4, 0x4f, 0xb0, 0x36,
+    0x81, 0x6b, 0x68, 0x19, 0xad, 0x55, 0x20, 0xe9, 0xb9, 0x5a, 0x99, 0x51,
+    0xad, 0xa2, 0x27, 0x4a, 0x4a, 0xd9, 0x5c, 0x4d, 0x42, 0xd4, 0xd0, 0x14,
+    0x9a, 0x2a, 0xc8, 0x4d, 0x32, 0xb3, 0x6a, 0x8f, 0x51, 0xad, 0x60, 0x70,
+    0x26, 0x53, 0x9b, 0xb8, 0x35, 0xac, 0x88, 0x15, 0x0b, 0x64, 0x56, 0x72,
+    0x74, 0x45, 0x76, 0x96, 0x59, 0x8d, 0xd0, 0x35, 0x7a, 0xbb, 0x26, 0x19,
+    0x6a, 0x68, 0x88, 0x86, 0x05, 0xb8, 0x42, 0x3a, 0x13, 0xcf, 0x9e, 0x61,
+    0x4b, 0xd1, 0x39, 0x1c, 0xaf, 0x4d, 0xdc, 0x1a, 0xea, 0xa2, 0xee, 0x8d,
+    0xcc, 0x4a, 0x8e, 0xce, 0x61, 0x1b, 0x8c, 0x19, 0x8a, 0x13, 0x11, 0x12,
+    0xa3, 0xb7, 0x89, 0x08, 0xd9, 0x79, 0x33, 0x4d, 0x92, 0x1c, 0x9f, 0x97,
+    0xb8, 0xb8, 0x6a, 0xde, 0x8e, 0xf3, 0xfc, 0x78, 0xf5, 0x13, 0x97, 0xe4,
+    0xc8, 0x68, 0x98, 0xfe, 0x63, 0x7d, 0xf4, 0xf7, 0xf6, 0x6d, 0xa1, 0x9f,
+    0xfe, 0x63, 0x7d, 0x1c, 0x1a, 0x1e, 0x22, 0x25, 0x52, 0x92, 0xa4, 0xef,
+    0x8f, 0x24, 0x21, 0x19, 0x9f, 0xd8, 0xd9, 0x07, 0x3a, 0x97, 0xcd, 0x71,
+    0x68, 0x38, 0x47, 0x7f, 0x6f, 0x1f, 0xdb, 0x0e, 0x78, 0xe8, 0xef, 0xf5,
+    0x93, 0x92, 0x4d, 0xfb, 0xcf, 0xc0, 0x3f, 0x2d, 0xdc, 0x19, 0x86, 0x3d,
+    0x1f, 0xe7, 0xea, 0x26, 0xc9, 0x2c, 0x0d, 0xaf, 0xe4, 0x22, 0xbf, 0x15,
+    0xc6, 0x65, 0x8e, 0x94, 0x26, 0x24, 0x36, 0xb5, 0xb8, 0x38, 0xd2, 0x12,
+    0x66, 0x53, 0x8b, 0x8b, 0xae, 0x96, 0x36, 0xdd, 0x7f, 0x1f, 0x3f, 0x1d,
+    0xfc, 0x5e, 0x30, 0xfb, 0xf1, 0xd3, 0x41, 0xc5, 0xff, 0x9d, 0xf2, 0x37,
+    0x3d, 0x9a, 0x2e, 0x1b, 0x8f, 0x81, 0x4f, 0x06, 0x6c, 0x3d, 0xc8, 0xcf,
+    0xc2, 0x3f, 0x53, 0x4c, 0x9b, 0xdb, 0xa4, 0x65, 0x86, 0x35, 0x73, 0xf9,
+    0xa7, 0xd3, 0xb6, 0x34, 0xae, 0x1d, 0xc6, 0xf5, 0x1f, 0xeb, 0x53, 0xfd,
+    0x10, 0x9d, 0x07, 0xbd, 0x1c, 0x19, 0x0d, 0x93, 0x59, 0x72, 0x2c, 0x3a,
+    0xce, 0xd5, 0xe1, 0x1c, 0x3d, 0x07, 0x3b, 0x95, 0xfb, 0xae, 0x96, 0x36,
+    0xa6, 0xc5, 0xf4, 0xf3, 0xcf, 0xb8, 0x94, 0xfd, 0x67, 0x76, 0x87, 0x26,
+    0x44, 0x96, 0xaa, 0x71, 0x72, 0xb5, 0xb4, 0xd1, 0xdf, 0xdb, 0x67, 0x7f,
+    0xc2, 0xed, 0xb4, 0x7f, 0x3a, 0x58, 0xf6, 0x1f, 0x9e, 0x79, 0x8b, 0x1a,
+    0x34, 0x55, 0x79, 0xc2, 0xb6, 0xdd, 0x48, 0x56, 0xa5, 0x71, 0x3d, 0x57,
+    0x93, 0xe6, 0x27, 0x14, 0xa9, 0x62, 0xd4, 0x4c, 0x74, 0x51, 0x77, 0x00,
+    0xb9, 0x40, 0x72, 0x81, 0x8c, 0x4f, 0xc7, 0x0d, 0xed, 0x73, 0x81, 0xd5,
+    0x33, 0x47, 0xa5, 0xfa, 0x55, 0xd8, 0xa7, 0x64, 0xc3, 0x3f, 0x92, 0x6d,
+    0x07, 0x3c, 0x65, 0x6f, 0xa0, 0xd5, 0x99, 0x9c, 0xf1, 0x78, 0x7d, 0x0b,
+    0xfe, 0x55, 0x2a, 0x2f, 0x84, 0x01, 0x04, 0x00, 0x44, 0x00, 0x74, 0x6f,
+    0x92, 0x2f, 0xfd, 0x7b, 0x0c, 0xd8, 0xe5, 0x03, 0x9e, 0x9a, 0x43, 0xbf,
+    0x4b, 0x44, 0xe4, 0x37, 0x6e, 0xe8, 0x5d, 0x81, 0x3f, 0x89, 0xb8, 0x32,
+    0xe7, 0x36, 0x6d, 0x4f, 0x0f, 0xc7, 0x0e, 0x3d, 0x44, 0xcf, 0x2f, 0xf7,
+    0x0a, 0x91, 0x22, 0x7f, 0xb5, 0x50, 0x14, 0xd3, 0x3c, 0x72, 0xf4, 0x43,
+    0xe4, 0x91, 0x87, 0x03, 0x0e, 0xb4, 0x79, 0xda, 0x11, 0x1a, 0x1a, 0xae,
+    0x58, 0x4f, 0x85, 0x59, 0xd2, 0xf7, 0x41, 0x0f, 0x96, 0x1e, 0x2c, 0x29,
+    0x76, 0x8a, 0xb1, 0xd3, 0xd3, 0x89, 0xfe, 0xde, 0x00, 0x1a, 0x5f, 0xfb,
+    0xb9, 0xd0, 0x7e, 0xc0, 0xc3, 0xfc, 0x46, 0x1e, 0x8e, 0x3a, 0x07, 0x52,
+    0x13, 0x09, 0x44, 0x5e, 0x11, 0x84, 0x62, 0x7b, 0x89, 0x99, 0x24, 0x4f,
+    0x9c, 0x3a, 0x81, 0xf5, 0x8d, 0x75, 0xb8, 0x9a, 0x9a, 0xd0, 0xf1, 0xc7,
+    0x6b, 0x42, 0xc1, 0x4f, 0xc7, 0xf5, 0xdd, 0x38, 0x32, 0x1b, 0x40, 0x7e,
+    0x23, 0xaf, 0xb2, 0xef, 0x6a, 0x6a, 0x82, 0xeb, 0x0d, 0x17, 0x06, 0x3f,
+    0x1e, 0x44, 0x44, 0xd8, 0xb6, 0xe7, 0x1d, 0xce, 0x71, 0xff, 0xf5, 0xfd,
+    0x70, 0xc0, 0x81, 0x0b, 0x17, 0x2f, 0xa0, 0xe3, 0xcd, 0xfd, 0x42, 0x68,
+    0x34, 0xcc, 0xc8, 0xe5, 0x88, 0x52, 0xdf, 0xb9, 0x67, 0x37, 0xd6, 0x1f,
+    0xad, 0x21, 0x8f, 0x3c, 0xe6, 0xaf, 0x89, 0x88, 0xbc, 0xa6, 0xf6, 0xa7,
+    0x80, 0x05, 0xbf, 0xb5, 0xfa, 0x37, 0x3f, 0x21, 0x22, 0xb2, 0x57, 0x10,
+    0x02, 0x12, 0xd9, 0x71, 0xb4, 0x4b, 0xb1, 0x57, 0x5c, 0xce, 0x51, 0xe7,
+    0x40, 0xcc, 0x13, 0x05, 0x7a, 0x81, 0xfa, 0xbd, 0xf2, 0xef, 0x62, 0xc6,
+    0x3f, 0x47, 0x9d, 0x43, 0xe9, 0xaf, 0xe2, 0x1f, 0xc9, 0xd0, 0xa5, 0x08,
+    0xa6, 0x27, 0xa7, 0xb1, 0xf4, 0x68, 0x49, 0xd5, 0x8e, 0x73, 0xcf, 0x6e,
+    0x24, 0x7e, 0x37, 0x85, 0x27, 0xef, 0x3c, 0xc1, 0x8b, 0xaf, 0xbc, 0x24,
+    0x44, 0x00, 0xbc, 0xa0, 0x74, 0x84, 0xe4, 0xde, 0xff, 0x9c, 0x02, 0x5a,
+    0x7d, 0x00, 0x62, 0xa6, 0xb1, 0xbf, 0x45, 0x7f, 0xc2, 0xa6, 0x96, 0x80,
+    0x2b, 0x70, 0x5b, 0xb2, 0xa7, 0x87, 0x1f, 0x3e, 0xae, 0x07, 0x36, 0xc9,
+    0x4a, 0x13, 0xce, 0xed, 0x72, 0xab, 0x06, 0xb8, 0xf9, 0x4e, 0x13, 0xba,
+    0x0e, 0x7a, 0xe9, 0x9d, 0xc9, 0x31, 0x35, 0x93, 0x64, 0x80, 0x64, 0xa5,
+    0x89, 0xdb, 0xdc, 0xe1, 0xc6, 0xd2, 0x83, 0x25, 0x38, 0xea, 0x1c, 0x98,
+    0x9f, 0x10, 0x21, 0x5e, 0x4b, 0x61, 0x7e, 0x56, 0x44, 0x87, 0xa7, 0x1d,
+    0xfd, 0xe8, 0xc7, 0xf4, 0x9d, 0x69, 0xf4, 0xf4, 0x05, 0x80, 0x1c, 0xd9,
+    0xbf, 0xab, 0x1f, 0x79, 0xe4, 0x91, 0xdf, 0xc8, 0xa3, 0xab, 0xbb, 0xab,
+    0xcc, 0xde, 0xda, 0xc5, 0x35, 0xac, 0x6f, 0xac, 0xc3, 0x01, 0x07, 0xd6,
+    0xd7, 0xd6, 0x11, 0x00, 0x70, 0x61, 0x78, 0x84, 0x47, 0x8e, 0x7e, 0x88,
+    0xb7, 0xef, 0xf8, 0xd0, 0xb3, 0xd1, 0x83, 0xfa, 0x3d, 0xf5, 0x08, 0xf7,
+    0x86, 0xe1, 0x6a, 0x75, 0xe1, 0xb8, 0xf3, 0x38, 0xe6, 0xee, 0xdf, 0xc7,
+    0xb5, 0xeb, 0x37, 0xd1, 0xdc, 0xea, 0x46, 0x40, 0xda, 0xf6, 0x77, 0xff,
+    0xf5, 0xfd, 0xe8, 0x87, 0xdc, 0x5e, 0x47, 0x5d, 0x3b, 0x22, 0x00, 0xda,
+    0xe0, 0x52, 0xf5, 0xd7, 0xf7, 0xc8, 0xab, 0xfc, 0xfb, 0xc4, 0xf5, 0xb3,
+    0xba, 0xfd, 0x4c, 0x5d, 0x4a, 0x20, 0x8f, 0xbc, 0x62, 0xaf, 0x50, 0x7f,
+    0xfc, 0xa3, 0x18, 0xe0, 0xdc, 0x1a, 0x87, 0xc3, 0x6e, 0xf8, 0x1e, 0x79,
+    0x51, 0xbf, 0xa7, 0x1e, 0xf3, 0x13, 0x22, 0xc2, 0x97, 0x46, 0x94, 0x71,
+    0xc8, 0x6f, 0xe4, 0xf1, 0xd6, 0x64, 0x17, 0x52, 0x7d, 0x22, 0xac, 0xf8,
+    0xd7, 0xb3, 0xd1, 0xa3, 0xf6, 0x8f, 0x64, 0xbb, 0xa7, 0x03, 0x91, 0xcb,
+    0x11, 0x2c, 0x3d, 0x5a, 0x42, 0x70, 0x5f, 0x10, 0x9d, 0x87, 0x3a, 0x91,
+    0xbc, 0x98, 0x44, 0xe3, 0xab, 0x8d, 0xf0, 0x3d, 0xf2, 0xa2, 0xf9, 0x73,
+    0x37, 0xde, 0xf2, 0x76, 0x01, 0x0b, 0xf2, 0xef, 0xaf, 0x30, 0x6d, 0x60,
+    0x22, 0xcd, 0x2b, 0x5f, 0xd9, 0x60, 0xc4, 0x1f, 0x27, 0xc0, 0xa3, 0x1d,
+    0x9a, 0x93, 0xb6, 0xff, 0x21, 0xf0, 0x87, 0xcb, 0xd5, 0x31, 0x6c, 0x31,
+    0x06, 0x3f, 0xf2, 0xa1, 0xfe, 0x15, 0x6d, 0xe6, 0x50, 0xa1, 0x44, 0x36,
+    0x1f, 0x76, 0x97, 0x31, 0x48, 0x29, 0x53, 0x34, 0x35, 0x35, 0xa1, 0xe3,
+    0x57, 0x1d, 0xe8, 0xe9, 0xf6, 0xa9, 0x18, 0x2d, 0x40, 0x52, 0x9c, 0x13,
+    0xe1, 0x76, 0xff, 0x43, 0x19, 0x43, 0x37, 0xb7, 0xb8, 0xa8, 0x30, 0xd2,
+    0xac, 0x88, 0xd0, 0xa5, 0x08, 0x8a, 0x99, 0x64, 0x6a, 0x22, 0xa6, 0x30,
+    0x4f, 0x80, 0x64, 0x73, 0xeb, 0xb6, 0x1f, 0xf3, 0x13, 0x22, 0xa6, 0xee,
+    0x4e, 0xe1, 0xe4, 0x99, 0x73, 0xc8, 0x23, 0x0f, 0x67, 0x9d, 0x13, 0xfd,
+    0xbd, 0xfd, 0xe8, 0xe9, 0x79, 0x5b, 0xdd, 0xce, 0x02, 0xd9, 0xdc, 0x5d,
+    0x54, 0x2f, 0x21, 0x22, 0xf2, 0x8a, 0x20, 0x84, 0x5a, 0xda, 0x58, 0x68,
+    0x27, 0xd0, 0x1b, 0x40, 0xff, 0x07, 0x47, 0x84, 0x40, 0x6f, 0x1f, 0xe7,
+    0xe6, 0xe6, 0xca, 0x98, 0xba, 0xfb, 0x9d, 0x6e, 0x74, 0x1d, 0x3e, 0x28,
+    0x44, 0xa3, 0xe3, 0x74, 0xfd, 0xc5, 0x8d, 0xe1, 0xf5, 0xb3, 0xc0, 0x2e,
+    0x07, 0xdc, 0x6f, 0xb8, 0xd1, 0x7f, 0x34, 0x20, 0xf7, 0xb7, 0xa4, 0x1d,
+    0xef, 0x21, 0x2f, 0x1a, 0xff, 0xed, 0x64, 0xe5, 0x71, 0x28, 0xed, 0xd7,
+    0xac, 0x88, 0x88, 0x60, 0xc3, 0xbf, 0x43, 0x5d, 0x08, 0x1c, 0xed, 0x47,
+    0xe1, 0x7e, 0xa7, 0xa7, 0x13, 0x4d, 0x43, 0xe7, 0x54, 0xbf, 0xef, 0x89,
+    0xd3, 0x41, 0x4e, 0x4f, 0x4e, 0x23, 0x8f, 0x3c, 0xda, 0x5a, 0xdb, 0xd0,
+    0xfe, 0xf9, 0x1f, 0x04, 0x59, 0x43, 0x6c, 0x56, 0x17, 0x8f, 0xcd, 0xac,
+    0xe8, 0x88, 0xd9, 0x15, 0x6b, 0xd1, 0x82, 0x1d, 0x8d, 0x26, 0x90, 0x1c,
+    0x1a, 0x1e, 0xe1, 0xed, 0xe1, 0xa4, 0xa9, 0x28, 0x02, 0x45, 0x7d, 0xbb,
+    0x69, 0x31, 0x4d, 0x2e, 0x90, 0x9d, 0x07, 0xbd, 0xaa, 0xfa, 0x14, 0xb7,
+    0x34, 0xfb, 0x01, 0xcf, 0xf6, 0xaa, 0xb9, 0xc8, 0xce, 0xf1, 0xd3, 0x41,
+    0xa5, 0xfc, 0xf8, 0x6f, 0xe3, 0x0c, 0x03, 0x18, 0xff, 0x6d, 0x5c, 0xa9,
+    0x3f, 0x76, 0x63, 0x5c, 0x57, 0x23, 0x16, 0xa2, 0x1f, 0xae, 0x96, 0x36,
+    0x65, 0x35, 0xaf, 0xe5, 0x6f, 0x72, 0x6b, 0xf5, 0xaf, 0xd5, 0x7e, 0x18,
+    0x80, 0x56, 0x7f, 0x0b, 0xed, 0x52, 0x64, 0x79, 0x7f, 0x0c, 0xc6, 0x95,
+    0x22, 0xb7, 0xc6, 0xa1, 0x53, 0x65, 0xaf, 0xb0, 0x88, 0xb5, 0xea, 0x1f,
+    0x17, 0xd4, 0xed, 0x7b, 0xdf, 0xed, 0x26, 0xb3, 0x94, 0xed, 0x91, 0xe4,
+    0x0c, 0xcb, 0x7e, 0x3f, 0x92, 0x14, 0xc2, 0xb0, 0xa7, 0x65, 0x8b, 0xb1,
+    0xed, 0x5d, 0x1f, 0x52, 0xaf, 0x6a, 0x92, 0x2d, 0x2e, 0x7c, 0xb1, 0x84,
+    0x4f, 0xee, 0x34, 0xee, 0x08, 0xd3, 0xca, 0xda, 0x76, 0x09, 0x3d, 0xbf,
+    0xfc, 0xb9, 0x35, 0x8d, 0x0a, 0xe0, 0xa1, 0x24, 0xb1, 0xbe, 0xbe, 0x1e,
+    0x89, 0xff, 0x4b, 0xa1, 0xe3, 0x41, 0x3b, 0x7c, 0xff, 0x53, 0xae, 0x59,
+    0x0b, 0x8c, 0x11, 0x90, 0xc8, 0xfe, 0xff, 0x18, 0xc4, 0xdc, 0xac, 0xa8,
+    0xbc, 0xda, 0x35, 0xb5, 0xdf, 0x56, 0xf9, 0xb5, 0xe1, 0x1c, 0xaf, 0x6c,
+    0x69, 0x39, 0x47, 0x9d, 0x03, 0xa9, 0x3b, 0x09, 0x2c, 0x3d, 0x58, 0x42,
+    0xcf, 0xd1, 0x80, 0x52, 0x3f, 0x78, 0xea, 0x38, 0xba, 0x0e, 0x1f, 0x14,
+    0x4a, 0x99, 0x5a, 0xc5, 0xf0, 0x45, 0x98, 0x98, 0x49, 0x72, 0xf0, 0xe3,
+    0x41, 0x85, 0x91, 0x03, 0xff, 0x7b, 0x47, 0x87, 0xc9, 0xfc, 0x9c, 0x9b,
+    0xbb, 0xaf, 0xf8, 0xd5, 0x7f, 0xf7, 0x8b, 0x32, 0xa6, 0x7a, 0xf8, 0xe8,
+    0x21, 0xf0, 0x14, 0xc0, 0x2e, 0xc0, 0x51, 0xf7, 0x22, 0x42, 0x9f, 0x5e,
+    0x90, 0xdb, 0xd5, 0x61, 0xcc, 0xe2, 0x37, 0x96, 0x95, 0x71, 0xb0, 0xec,
+    0x5f, 0x49, 0xfb, 0x95, 0xd0, 0x59, 0xe7, 0xc4, 0xed, 0x89, 0x29, 0x79,
+    0xc6, 0xbb, 0x46, 0xab, 0x67, 0x44, 0xa3, 0x6b, 0x28, 0xb5, 0x73, 0x8c,
+    0x3b, 0x62, 0xc0, 0x88, 0x56, 0x31, 0x3e, 0x1d, 0x57, 0x31, 0x46, 0x78,
+    0x34, 0xcc, 0x62, 0x86, 0x6b, 0x3b, 0xe0, 0x21, 0x17, 0xc8, 0xc2, 0x6a,
+    0x76, 0xec, 0xc6, 0xb8, 0x26, 0xc3, 0x50, 0xa2, 0x61, 0x1c, 0xb8, 0xf3,
+    0xa0, 0x57, 0x61, 0x30, 0xad, 0xfa, 0x9a, 0xfe, 0x49, 0x2c, 0xab, 0xaf,
+    0xc5, 0x58, 0xa5, 0x71, 0x56, 0x2b, 0xfd, 0x4f, 0x8b, 0x69, 0xcd, 0xfe,
+    0x94, 0x32, 0x64, 0xe7, 0x41, 0xaf, 0x3c, 0x06, 0x45, 0xe3, 0xa0, 0xc5,
+    0xd0, 0x56, 0xfd, 0x2b, 0x6d, 0xdf, 0x6c, 0xbc, 0xfc, 0x85, 0x87, 0xd9,
+    0x1c, 0xe7, 0x1e, 0x03, 0x98, 0x8d, 0x01, 0xf0, 0xd9, 0xc6, 0xd8, 0xfd,
+    0x87, 0xda, 0x54, 0x0b, 0x60, 0xb0, 0x0d, 0x18, 0x6f, 0x78, 0x28, 0x33,
+    0x66, 0x95, 0xed, 0x7c, 0x38, 0x19, 0x43, 0xc5, 0xc5, 0x14, 0x49, 0x51,
+    0x4c, 0x57, 0x5c, 0x74, 0x75, 0xfd, 0xa6, 0x0b, 0x21, 0x84, 0x94, 0x27,
+    0x79, 0x6d, 0xa3, 0x1b, 0x6f, 0x9d, 0xe9, 0x52, 0x31, 0x66, 0xe4, 0x35,
+    0x41, 0xc0, 0x5e, 0x41, 0x88, 0x08, 0x82, 0xd0, 0xf3, 0x4f, 0x6f, 0x0b,
+    0xb1, 0x3d, 0x37, 0x95, 0xf2, 0x6e, 0x97, 0x1b, 0x11, 0x00, 0xd8, 0x2b,
+    0x08, 0x9d, 0x87, 0x3a, 0xe1, 0x80, 0x43, 0x65, 0xaf, 0xf0, 0xef, 0xa9,
+    0xdf, 0xc5, 0xb6, 0xa3, 0x1b, 0x2e, 0x51, 0xb9, 0x7f, 0xed, 0xfa, 0x4d,
+    0xdd, 0x37, 0x83, 0x6f, 0xa0, 0x47, 0xa9, 0x1f, 0x6e, 0x1d, 0x41, 0x04,
+    0x50, 0xd9, 0x0f, 0xcd, 0x46, 0x10, 0x00, 0x10, 0xba, 0x1b, 0x51, 0xb5,
+    0x67, 0xe5, 0x0d, 0xe4, 0x76, 0xb9, 0x55, 0xfe, 0x16, 0xfa, 0x13, 0xc8,
+    0x92, 0x47, 0x2e, 0x1f, 0x81, 0x03, 0x0e, 0x44, 0xeb, 0xa2, 0x98, 0x9a,
+    0x8c, 0x21, 0xb2, 0xb7, 0x68, 0x1c, 0xde, 0xf1, 0xa9, 0xfa, 0x07, 0x17,
+    0x6c, 0xf9, 0x57, 0xda, 0xfe, 0xd9, 0x8f, 0x4e, 0xe8, 0xbe, 0x79, 0x1e,
+    0x4a, 0x92, 0xb2, 0x08, 0x7f, 0xc1, 0xf9, 0xf2, 0x8b, 0xa8, 0x7a, 0x75,
+    0xef, 0x4c, 0xc0, 0xd7, 0x54, 0xaf, 0x3b, 0x69, 0x01, 0xc0, 0xd7, 0x54,
+    0x0f, 0x1e, 0x03, 0xd2, 0xc7, 0xaa, 0x8b, 0x22, 0xa0, 0xd5, 0x87, 0xe8,
+    0x57, 0xc6, 0x13, 0xb6, 0xb9, 0xd5, 0x8d, 0x2f, 0x8e, 0xce, 0xa1, 0xb9,
+    0xd5, 0x8d, 0xb6, 0xe8, 0x22, 0xa3, 0x37, 0xc6, 0x19, 0x20, 0x89, 0x1c,
+    0x19, 0x20, 0x99, 0x9a, 0x49, 0xb2, 0x73, 0x42, 0x52, 0xbd, 0x9a, 0x82,
+    0xfb, 0x82, 0x18, 0x6c, 0x7d, 0x51, 0xb5, 0xca, 0xc5, 0x9c, 0xda, 0xee,
+    0xe0, 0x27, 0x03, 0x2c, 0x84, 0x7f, 0xfa, 0xd1, 0xaf, 0xba, 0x7f, 0xf6,
+    0xd4, 0x09, 0xd5, 0xab, 0xac, 0xb0, 0x8a, 0x76, 0x3a, 0x9d, 0xc0, 0xbb,
+    0xdb, 0xe5, 0x22, 0x97, 0x42, 0xca, 0xfd, 0xe9, 0x3b, 0xd3, 0x68, 0x8b,
+    0x2e, 0xb2, 0xb0, 0x2a, 0x56, 0xc2, 0x6d, 0xef, 0x76, 0xb3, 0xe3, 0x41,
+    0x87, 0x52, 0xbf, 0xbe, 0xb7, 0x1e, 0x01, 0x40, 0x6d, 0xbf, 0x35, 0x20,
+    0x97, 0x6f, 0x09, 0xa8, 0xda, 0xb3, 0x22, 0x99, 0x30, 0x07, 0x95, 0xbf,
+    0x85, 0xfe, 0x4c, 0xfd, 0x79, 0x4a, 0xb1, 0x87, 0x5d, 0x80, 0x38, 0x27,
+    0xaa, 0xc6, 0xc1, 0xd7, 0xdd, 0xa3, 0x8a, 0x3a, 0x14, 0xee, 0x5b, 0xf6,
+    0x4f, 0x10, 0x84, 0xe4, 0xc5, 0xa4, 0x72, 0xbf, 0xfd, 0x70, 0x87, 0x2a,
+    0x5a, 0x82, 0x1c, 0x19, 0x10, 0xc9, 0xf6, 0x03, 0x1e, 0xde, 0x3c, 0x3c,
+    0xbd, 0x1d, 0x3d, 0xf0, 0xdb, 0x8d, 0x1a, 0x14, 0xd0, 0x39, 0x05, 0xf6,
+    0x75, 0x19, 0x4e, 0x58, 0xad, 0x4b, 0xb8, 0x94, 0x00, 0x1e, 0x77, 0xd8,
+    0x6a, 0x77, 0xe0, 0x98, 0x0f, 0x4d, 0x3f, 0xd1, 0x7e, 0x22, 0x9f, 0x64,
+    0x73, 0x3c, 0xd2, 0x7f, 0x04, 0x73, 0xf7, 0xef, 0x9b, 0xd6, 0x4a, 0xae,
+    0xa6, 0x26, 0x9c, 0x3d, 0x79, 0x56, 0x0e, 0xb1, 0x74, 0xab, 0xb5, 0xae,
+    0x73, 0xcf, 0x6e, 0xe4, 0x37, 0x9e, 0x68, 0x6a, 0xba, 0x52, 0x0d, 0xd8,
+    0x79, 0x5a, 0xe2, 0x5b, 0x93, 0x5d, 0xaa, 0x72, 0x05, 0x6d, 0x57, 0x1a,
+    0x07, 0xee, 0xe8, 0xd6, 0x8e, 0x7f, 0x16, 0x63, 0xe3, 0x9e, 0x46, 0x8c,
+    0x5c, 0xbc, 0x80, 0xc6, 0xd7, 0x64, 0x0d, 0x1f, 0x39, 0xe0, 0x61, 0xc1,
+    0x0f, 0x2d, 0xcd, 0xd8, 0xb8, 0xa7, 0x11, 0xde, 0xf8, 0xcd, 0xca, 0xd1,
+    0x95, 0x92, 0x07, 0xbc, 0xac, 0x3f, 0x5b, 0x61, 0xa8, 0xe2, 0x38, 0xae,
+    0x99, 0x71, 0xb8, 0x79, 0xd0, 0xcb, 0x42, 0x9c, 0x55, 0xcb, 0xbf, 0x82,
+    0x36, 0x2f, 0x0b, 0x0b, 0x16, 0xad, 0x09, 0xf4, 0xc6, 0xa3, 0xf1, 0xd5,
+    0x46, 0xc4, 0xae, 0x45, 0x11, 0x11, 0x04, 0x01, 0x63, 0x56, 0xbf, 0x80,
+    0x15, 0xa1, 0x77, 0x2b, 0x19, 0xc6, 0xee, 0x75, 0x3c, 0x91, 0xb1, 0xf9,
+    0x85, 0xcc, 0x78, 0x95, 0x1b, 0x86, 0xfc, 0x89, 0x72, 0x68, 0x78, 0x88,
+    0x5a, 0xdf, 0xd6, 0x9b, 0x5a, 0x5c, 0xbc, 0x3d, 0x9c, 0x94, 0x35, 0x54,
+    0x69, 0x72, 0xc8, 0x96, 0x66, 0x4b, 0x8e, 0xa6, 0xe9, 0x3f, 0xd6, 0xc7,
+    0xf4, 0x68, 0x5a, 0x5e, 0xbd, 0x2f, 0x6c, 0xad, 0x6a, 0x45, 0x32, 0x3c,
+    0x1a, 0x96, 0xb5, 0x6e, 0x4e, 0xed, 0x47, 0x21, 0xe7, 0xc1, 0x7f, 0xac,
+    0x8f, 0xc9, 0xd1, 0xb4, 0x9c, 0x94, 0x63, 0xe0, 0x67, 0x7c, 0x3a, 0xae,
+    0x2a, 0x5f, 0x68, 0x6f, 0x68, 0x78, 0x44, 0xf3, 0x53, 0x68, 0x7c, 0x3a,
+    0xbe, 0xed, 0x4f, 0x41, 0xfb, 0x91, 0x4a, 0xfd, 0xe4, 0x8c, 0x85, 0x2f,
+    0x87, 0x45, 0xe3, 0x54, 0xe8, 0x4f, 0xd9, 0x17, 0xba, 0xd1, 0x30, 0xd3,
+    0x5b, 0x7e, 0x25, 0x47, 0xd3, 0xf2, 0x78, 0x2d, 0x50, 0xd6, 0xb0, 0x62,
+    0x79, 0xbd, 0x4a, 0xfe, 0x19, 0x7e, 0x79, 0xd4, 0x68, 0xcf, 0x7f, 0xac,
+    0x8f, 0xd2, 0x84, 0x44, 0xce, 0xa8, 0xc7, 0x19, 0xb6, 0xf2, 0x5e, 0x3f,
+    0x93, 0xb3, 0xb6, 0x76, 0xe2, 0x4a, 0x2e, 0xae, 0x12, 0x21, 0x6b, 0xed,
+    0x3b, 0x87, 0x9f, 0xff, 0xe4, 0x96, 0x1a, 0x3e, 0x3b, 0x84, 0x55, 0xa6,
+    0x8b, 0x2f, 0xb3, 0x62, 0x36, 0x97, 0xe5, 0x2b, 0x4b, 0x86, 0x17, 0x2c,
+    0x46, 0x2b, 0x0c, 0x3a, 0xc6, 0x4d, 0x99, 0x04, 0x07, 0x6e, 0x91, 0x9e,
+    0x79, 0x79, 0x33, 0x65, 0x8e, 0xac, 0xed, 0x0a, 0xfe, 0x1b, 0x41, 0xf3,
+    0x4c, 0x7b, 0xde, 0x5c, 0x36, 0x57, 0x35, 0x97, 0x95, 0x7c, 0x5b, 0xa3,
+    0x8e, 0x35, 0xe8, 0x30, 0xb7, 0x2b, 0x52, 0x3d, 0x43, 0xe7, 0x36, 0x65,
+    0x5f, 0x93, 0xcb, 0xab, 0x24, 0x75, 0xec, 0x15, 0xdd, 0x4f, 0x2e, 0xaf,
+    0xee, 0xe8, 0x83, 0x92, 0xd3, 0x79, 0xf0, 0x92, 0xcb, 0xab, 0x94, 0xb2,
+    0xf2, 0x96, 0xa5, 0x60, 0x56, 0xde, 0x25, 0xbd, 0x13, 0xed, 0x8d, 0x7c,
+    0xb9, 0x48, 0xbf, 0x24, 0x27, 0x2d, 0x49, 0x59, 0x32, 0xb3, 0xa2, 0xee,
+    0x4f, 0x7c, 0x41, 0xa2, 0x27, 0x2a, 0xdf, 0x97, 0xf1, 0x36, 0x83, 0x59,
+    0xfb, 0x7b, 0xfe, 0x32, 0x2b, 0xab, 0x0c, 0x66, 0xd5, 0xf6, 0xbc, 0x8b,
+    0x6a, 0x7b, 0xe6, 0x98, 0x36, 0xf4, 0xcc, 0xe7, 0xab, 0x72, 0xe5, 0x36,
+    0xab, 0x67, 0x5a, 0xbb, 0xf5, 0xcc, 0xe0, 0x88, 0x58, 0x1e, 0x9f, 0x2e,
+    0x9d, 0xb0, 0x5a, 0xed, 0x66, 0x56, 0xab, 0xcf, 0x12, 0x2b, 0xec, 0x7e,
+    0x76, 0x8d, 0xaa, 0x27, 0x2e, 0xb3, 0xda, 0x71, 0xf0, 0xe4, 0xb2, 0xf6,
+    0x04, 0x37, 0x3f, 0x61, 0xcb, 0xed, 0x3a, 0x13, 0xea, 0x7e, 0xc4, 0x17,
+    0xf5, 0x7f, 0xa7, 0x81, 0x5b, 0x16, 0xf6, 0xfc, 0x91, 0xf4, 0x1a, 0x64,
+    0x03, 0x16, 0x8f, 0x73, 0x65, 0xa6, 0xfd, 0x16, 0x18, 0xb6, 0xf4, 0x5a,
+    0xcd, 0x55, 0xc7, 0xb4, 0x76, 0xeb, 0x99, 0x7a, 0x35, 0x95, 0xd8, 0x2b,
+    0xdd, 0x8c, 0xe9, 0xbd, 0x91, 0xd4, 0xf5, 0xdb, 0x13, 0x95, 0x1f, 0x4a,
+    0xbb, 0x8c, 0xa7, 0xdb, 0x0f, 0x6a, 0xb7, 0x17, 0xac, 0x32, 0xaf, 0x35,
+    0x98, 0xd5, 0xb6, 0x5b, 0x3c, 0x81, 0x72, 0x9b, 0xa4, 0x27, 0xaa, 0x3f,
+    0xde, 0xa6, 0xf6, 0xfc, 0x91, 0x6c, 0xf8, 0x2c, 0xae, 0x3b, 0x6e, 0x99,
+    0x15, 0x75, 0xfd, 0x8a, 0x4c, 0xfb, 0x2c, 0xae, 0xcc, 0x8a, 0xac, 0x61,
+    0xe3, 0xf3, 0xfa, 0x65, 0x2a, 0x31, 0xee, 0x77, 0xc5, 0xb4, 0xa5, 0xf6,
+    0xa4, 0x9c, 0x7a, 0x40, 0x2b, 0xe5, 0x23, 0xbb, 0xc4, 0xad, 0x5c, 0x0d,
+    0x8b, 0xed, 0x4a, 0x39, 0xfd, 0x7e, 0x24, 0x97, 0xb5, 0x99, 0x36, 0x38,
+    0x63, 0xbd, 0x9d, 0x62, 0x0c, 0xce, 0x98, 0x67, 0xf0, 0x1c, 0xf5, 0xcf,
+    0xc1, 0x30, 0xca, 0x19, 0x31, 0xaa, 0xd7, 0x10, 0xd2, 0xae, 0x07, 0xa3,
+    0x19, 0xde, 0xb6, 0xf0, 0x4c, 0xe6, 0x2c, 0xc9, 0xa2, 0x76, 0x42, 0x71,
+    0x0e, 0xe5, 0xc8, 0x55, 0x8d, 0xc5, 0x9d, 0x77, 0xd9, 0x9e, 0x36, 0xfd,
+    0x2e, 0x99, 0xd6, 0xcc, 0xb9, 0x10, 0xce, 0x61, 0xeb, 0x5a, 0x37, 0x38,
+    0x93, 0xb1, 0xcc, 0xb4, 0x52, 0x95, 0x4c, 0x2b, 0x99, 0x60, 0xda, 0x52,
+    0x3f, 0x8c, 0x4e, 0x1a, 0x6a, 0x08, 0x6d, 0x6b, 0xee, 0x81, 0x5b, 0x19,
+    0xea, 0xad, 0x3d, 0x70, 0xce, 0xf8, 0x24, 0x22, 0xfd, 0x38, 0x6d, 0x82,
+    0xba, 0x51, 0x02, 0xef, 0x4d, 0x12, 0xa2, 0x2c, 0x1d, 0x30, 0x4d, 0xe2,
+    0xaa, 0x8d, 0x49, 0x9b, 0xd2, 0x68, 0xf7, 0x6a, 0x52, 0x5d, 0x28, 0x4b,
+    0x62, 0xa6, 0xbc, 0x9c, 0xf7, 0x06, 0x9f, 0x5b, 0xa6, 0xb5, 0x12, 0xf7,
+    0x1e, 0xbb, 0x67, 0xdc, 0x0f, 0xb3, 0x4c, 0x4b, 0x5d, 0xa6, 0xad, 0xee,
+    0x1c, 0x89, 0xe0, 0x8c, 0x76, 0x1c, 0x9d, 0x15, 0xb4, 0xb2, 0x1e, 0x43,
+    0x9b, 0x41, 0x67, 0xa2, 0xb2, 0xfd, 0x17, 0x96, 0x1e, 0xcf, 0x43, 0xeb,
+    0x1b, 0x7f, 0xe7, 0xba, 0x08, 0xbc, 0x0c, 0xe5, 0x1a, 0xbc, 0x33, 0x0f,
+    0xe1, 0xf7, 0x80, 0x70, 0x26, 0x86, 0x9b, 0xf7, 0x01, 0x4c, 0xc6, 0x80,
+    0xa7, 0x72, 0xf9, 0xc5, 0x43, 0xb0, 0x7e, 0x7d, 0x95, 0x28, 0x6f, 0xf7,
+    0x9b, 0x76, 0x08, 0x9f, 0xc6, 0xb6, 0xcb, 0xbc, 0x0c, 0x78, 0x1f, 0x8b,
+    0x65, 0xe5, 0x46, 0xfe, 0xd1, 0xf8, 0x4b, 0x8f, 0x51, 0xee, 0x82, 0xd5,
+    0xec, 0xb0, 0xb2, 0x4f, 0x9f, 0xa5, 0xf6, 0xee, 0xce, 0xab, 0xcb, 0xcd,
+    0xa6, 0x0c, 0xdb, 0x2f, 0xc6, 0xf7, 0x26, 0xe5, 0x3c, 0x66, 0x53, 0xed,
+    0xdf, 0x55, 0xff, 0x4e, 0xaa, 0xfe, 0xfe, 0xb4, 0xdc, 0x2f, 0xcc, 0xc6,
+    0x80, 0x37, 0x9a, 0xab, 0xea, 0x2f, 0xde, 0x68, 0xd6, 0xb6, 0xfb, 0x53,
+    0xe3, 0x7a, 0x27, 0xde, 0x14, 0x84, 0xe4, 0x2f, 0xd6, 0xe0, 0x74, 0x58,
+    0xcb, 0x2d, 0x71, 0xed, 0xf1, 0x41, 0xfa, 0x15, 0x80, 0x9f, 0x09, 0x86,
+    0x59, 0x7c, 0xba, 0xab, 0x5d, 0x15, 0x2b, 0x86, 0x6e, 0x1b, 0x3e, 0x21,
+    0x46, 0xda, 0x54, 0x97, 0x69, 0x45, 0xe3, 0x27, 0xae, 0x10, 0x5a, 0xd2,
+    0xf2, 0xaf, 0xd2, 0xaa, 0xf8, 0x79, 0xd2, 0xb4, 0x2e, 0x91, 0x8c, 0x17,
+    0xef, 0x31, 0xa3, 0xcc, 0x80, 0xc5, 0xf9, 0xcb, 0xde, 0x1b, 0xc9, 0xed,
+    0xfb, 0x3a, 0xed, 0x3e, 0xef, 0x9a, 0x56, 0x0b, 0xad, 0xec, 0xea, 0x6e,
+    0x48, 0xd1, 0x74, 0x1c, 0x5d, 0x57, 0x03, 0x6e, 0x4f, 0x58, 0x7d, 0xcd,
+    0x6b, 0x65, 0x37, 0x6e, 0xd9, 0xa4, 0x35, 0x71, 0xca, 0x62, 0xdb, 0x42,
+    0x79, 0x39, 0xe7, 0xf9, 0xca, 0x13, 0xef, 0x79, 0xd2, 0xb4, 0x7a, 0xd1,
+    0x82, 0xdc, 0x26, 0xe9, 0x5d, 0xdc, 0x2e, 0x57, 0x69, 0x95, 0x3d, 0x70,
+    0xeb, 0x7b, 0xa0, 0x69, 0x4b, 0x51, 0xc7, 0x2f, 0x2d, 0x6c, 0xf8, 0xcc,
+    0x7c, 0x82, 0x3f, 0x08, 0xc0, 0x7b, 0xa3, 0xfc, 0x89, 0x4a, 0xaf, 0x90,
+    0x30, 0x73, 0x2a, 0xa2, 0x89, 0xdd, 0xb8, 0x9a, 0x93, 0xb6, 0x02, 0xd3,
+    0xea, 0x61, 0xd2, 0xc4, 0x41, 0x12, 0xcf, 0x8b, 0xa6, 0x35, 0xb3, 0x8b,
+    0xb8, 0xf4, 0x8c, 0xb4, 0xcc, 0x2a, 0xe5, 0xb5, 0x44, 0xd1, 0x0f, 0xaf,
+    0x15, 0x2f, 0x7d, 0x9e, 0x35, 0x6d, 0xc1, 0x6f, 0xab, 0xa7, 0x6a, 0x9a,
+    0x3d, 0x12, 0x4b, 0xde, 0x23, 0x46, 0x52, 0x38, 0x63, 0x33, 0xcb, 0x6b,
+    0x5f, 0x0a, 0x7c, 0xbf, 0x1d, 0x56, 0x2f, 0xbb, 0x59, 0x5e, 0xc9, 0x7f,
+    0x5e, 0x43, 0xfb, 0xcf, 0x7e, 0x64, 0xa8, 0x79, 0x8e, 0x9c, 0x23, 0xf5,
+    0xea, 0x4b, 0xff, 0xf2, 0x04, 0xf5, 0x5b, 0xbb, 0x3a, 0xed, 0x68, 0x3d,
+    0xe1, 0xf4, 0x38, 0x8b, 0xed, 0x05, 0x7f, 0x3d, 0x8f, 0x13, 0x6f, 0xbe,
+    0xae, 0xd8, 0xeb, 0xb8, 0x9a, 0xe4, 0x9d, 0x6f, 0xda, 0x81, 0xa7, 0x31,
+    0x78, 0xfe, 0xde, 0x87, 0x9e, 0x1e, 0x13, 0x7b, 0xda, 0x48, 0xee, 0xfe,
+    0x34, 0x86, 0xf5, 0xa7, 0xe6, 0xc7, 0x21, 0x7c, 0x5c, 0xbd, 0xa7, 0x4d,
+    0xeb, 0xf7, 0x33, 0xbd, 0xa7, 0x4e, 0x07, 0xef, 0xaf, 0x90, 0xc3, 0x9f,
+    0x97, 0xdb, 0xe5, 0x29, 0x9f, 0x6e, 0xde, 0xeb, 0x93, 0x4d, 0x72, 0x69,
+    0x1d, 0x78, 0x5d, 0xa3, 0x9e, 0x19, 0x74, 0xee, 0x8a, 0x41, 0xfa, 0xc8,
+    0x87, 0x6b, 0x7f, 0xa7, 0xef, 0xb7, 0x32, 0x83, 0x1b, 0xb4, 0x56, 0xf3,
+    0x26, 0x30, 0xad, 0xb7, 0x3f, 0xec, 0x19, 0x30, 0xad, 0xa9, 0xec, 0x2e,
+    0xc0, 0x90, 0x69, 0x73, 0x66, 0x5f, 0x6d, 0x3a, 0x68, 0x45, 0xd3, 0x9a,
+    0xf5, 0xd7, 0x0e, 0x33, 0x15, 0xd7, 0xcf, 0xe8, 0xec, 0xc5, 0xb3, 0xd4,
+    0xbe, 0x06, 0x36, 0x84, 0xb4, 0xfd, 0xd1, 0xd5, 0xb0, 0xcb, 0xa4, 0xd1,
+    0x3c, 0x72, 0x8d, 0x92, 0x52, 0x4e, 0x7e, 0x03, 0x64, 0x56, 0xe5, 0x38,
+    0xac, 0x5e, 0xff, 0xc6, 0xe6, 0x4b, 0xde, 0x38, 0x45, 0xf8, 0x42, 0x61,
+    0x06, 0x9f, 0xad, 0x7b, 0x08, 0x3b, 0x3b, 0x09, 0x4e, 0xfe, 0x59, 0x84,
+    0xad, 0x6b, 0xd2, 0xfa, 0xce, 0x85, 0xc4, 0xfb, 0x26, 0x57, 0xbd, 0x06,
+    0x76, 0x5e, 0x3a, 0x13, 0x43, 0x4a, 0x22, 0x53, 0xcb, 0xab, 0xa6, 0xb6,
+    0x93, 0x5b, 0x8d, 0x1e, 0x60, 0xb6, 0x28, 0x2a, 0xb2, 0xcb, 0x02, 0xb3,
+    0x09, 0x82, 0xb0, 0xf6, 0x71, 0x17, 0x5c, 0x7f, 0xd5, 0x88, 0xaa, 0x54,
+    0x88, 0x82, 0x34, 0xff, 0x44, 0x10, 0x1a, 0x1e, 0x4c, 0x95, 0x95, 0xbb,
+    0xf3, 0x0d, 0x70, 0x76, 0x26, 0x63, 0x2e, 0x3a, 0x51, 0x82, 0x81, 0x89,
+    0x34, 0xbf, 0x5e, 0xef, 0x2a, 0x6b, 0xd7, 0xff, 0x54, 0x2c, 0x2f, 0x4f,
+    0x72, 0xf0, 0x56, 0x86, 0xc2, 0x1f, 0x81, 0xaf, 0xff, 0x5b, 0x3b, 0x2a,
+    0x90, 0xfc, 0xc5, 0x1a, 0xc4, 0x0f, 0x04, 0x61, 0xfa, 0x25, 0x41, 0x38,
+    0xf1, 0xe6, 0xeb, 0xc2, 0x17, 0x3f, 0x12, 0x84, 0xa5, 0xfe, 0x83, 0xc2,
+    0xc8, 0x8f, 0x97, 0x34, 0xa3, 0x0c, 0xef, 0xfd, 0x57, 0x0c, 0xbb, 0x2f,
+    0x03, 0xa1, 0x2f, 0x17, 0xcb, 0xfc, 0x57, 0xcd, 0x60, 0xcf, 0x55, 0x1b,
+    0x27, 0xc1, 0x88, 0x36, 0x68, 0xd6, 0xe2, 0x99, 0x5e, 0x38, 0x37, 0x4e,
+    0xcf, 0xbc, 0x79, 0x86, 0xb4, 0xf3, 0xc6, 0x30, 0x7a, 0xe2, 0xe3, 0x45,
+    0x27, 0xab, 0xec, 0xb4, 0xa6, 0xd5, 0x42, 0xff, 0x44, 0xe5, 0xf1, 0xb1,
+    0xc2, 0xd4, 0x9e, 0x42, 0x1c, 0xbd, 0xc2, 0xea, 0x9c, 0x5b, 0x11, 0x1b,
+    0x3d, 0x06, 0xd4, 0xd4, 0x9c, 0x06, 0xe5, 0x0b, 0x1a, 0xbd, 0x52, 0x7f,
+    0x99, 0x25, 0x5d, 0x06, 0x6f, 0xde, 0x82, 0xff, 0x6a, 0x4d, 0x5b, 0xf4,
+    0xc4, 0xd8, 0xd1, 0xb6, 0x3c, 0xe5, 0x83, 0x95, 0xcb, 0xea, 0x79, 0x08,
+    0xce, 0x3a, 0x1f, 0xe6, 0x7b, 0xcd, 0x6b, 0x51, 0x23, 0x4d, 0x6b, 0x17,
+    0x0b, 0x1a, 0xb2, 0x92, 0xa6, 0x2d, 0x3e, 0x3f, 0xc2, 0xb4, 0xa6, 0xd5,
+    0xc0, 0xe8, 0xbd, 0x45, 0xbe, 0x37, 0xa9, 0xbf, 0x8b, 0x59, 0xa5, 0x69,
+    0x8b, 0x7e, 0xbf, 0xc6, 0xdf, 0x4f, 0xe1, 0xeb, 0x8d, 0x2e, 0xdd, 0x7a,
+    0x9e, 0x7d, 0x29, 0xec, 0xfe, 0x75, 0x3b, 0x5c, 0xdf, 0xcc, 0xcb, 0x71,
+    0xd8, 0xbf, 0xcc, 0x23, 0xf1, 0xd7, 0x66, 0xac, 0x6f, 0x24, 0x30, 0x67,
+    0xb0, 0xc6, 0xf0, 0xec, 0x4b, 0x20, 0xf1, 0x7e, 0x87, 0xa2, 0x65, 0x9f,
+    0x6c, 0x92, 0x27, 0xd7, 0x01, 0x2d, 0xcd, 0x5b, 0xd0, 0xa6, 0x6b, 0xff,
+    0xaa, 0xaf, 0x7d, 0xb5, 0x30, 0x25, 0x91, 0x57, 0x74, 0xe6, 0x45, 0xb1,
+    0xbd, 0xb2, 0x99, 0x9f, 0xa3, 0x75, 0x46, 0x3a, 0x9e, 0xc8, 0x58, 0xd3,
+    0xb3, 0x16, 0x57, 0x95, 0x56, 0xbe, 0x1c, 0x29, 0xe1, 0xa1, 0x1d, 0x62,
+    0xda, 0xd2, 0x55, 0x78, 0x69, 0x1c, 0x56, 0x8b, 0x79, 0x0a, 0xf7, 0x07,
+    0x6e, 0x55, 0xa7, 0x29, 0xb9, 0xac, 0xcd, 0x40, 0xae, 0xd1, 0xdb, 0x86,
+    0x76, 0xc7, 0xee, 0x91, 0xa5, 0xd9, 0x68, 0x76, 0x31, 0xbe, 0xa8, 0x1d,
+    0x97, 0x35, 0xca, 0xee, 0xf2, 0x5c, 0xad, 0x1c, 0x77, 0xb6, 0xab, 0xed,
+    0x49, 0x52, 0xb3, 0xa2, 0x5f, 0xa2, 0xb5, 0x9d, 0x0c, 0xe7, 0xe5, 0x1d,
+    0x08, 0x66, 0x2e, 0xab, 0xa7, 0x27, 0xfa, 0x27, 0xec, 0x9d, 0x66, 0x58,
+    0x9a, 0xf7, 0x6a, 0x17, 0xf5, 0x06, 0xb6, 0xd2, 0xfd, 0x1d, 0xfd, 0x1b,
+    0x12, 0xa5, 0x7e, 0x59, 0xa8, 0x37, 0x76, 0x6f, 0x51, 0x95, 0x9f, 0xaa,
+    0x97, 0x6b, 0xe2, 0x1a, 0xbd, 0x4d, 0x4f, 0x54, 0xfe, 0xd0, 0xa1, 0xe4,
+    0xe3, 0x1a, 0x4c, 0xbc, 0xb1, 0x7b, 0x72, 0x1e, 0xad, 0xf3, 0xbc, 0x5c,
+    0xdf, 0x73, 0x35, 0x49, 0xef, 0xe2, 0x0e, 0xe5, 0xf1, 0x92, 0x1c, 0xf9,
+    0x72, 0x51, 0xc9, 0xa7, 0x2d, 0xc4, 0x71, 0x3d, 0x51, 0x79, 0x5c, 0x75,
+    0xb5, 0x8d, 0x91, 0xc6, 0xd0, 0xc4, 0x94, 0x7c, 0xfe, 0xac, 0xd1, 0x65,
+    0xf5, 0xfc, 0x03, 0xbb, 0x9a, 0xb0, 0x86, 0x7f, 0xdb, 0x68, 0xc8, 0x54,
+    0x76, 0xfe, 0xd6, 0x82, 0xde, 0x66, 0x47, 0x57, 0x54, 0x3f, 0xcf, 0x54,
+    0xd3, 0x8e, 0x89, 0x4f, 0x9b, 0x35, 0xfc, 0x61, 0x62, 0xc5, 0x02, 0x49,
+    0x69, 0xe7, 0xb4, 0xa1, 0x59, 0xb4, 0x2b, 0x09, 0x6a, 0xf8, 0xc3, 0x40,
+    0x53, 0x05, 0x73, 0x9b, 0xdb, 0xda, 0xc5, 0x2a, 0xf3, 0x5a, 0x41, 0xe7,
+    0xb0, 0xac, 0xc1, 0x9e, 0x87, 0x81, 0xa9, 0xe1, 0xf3, 0x8b, 0xe6, 0x2b,
+    0x50, 0xd6, 0x98, 0xcf, 0x8a, 0x61, 0x3d, 0x06, 0x5f, 0x40, 0x6a, 0x58,
+    0xc3, 0x62, 0xb4, 0x5c, 0x21, 0xb9, 0xbc, 0x6a, 0xb8, 0x27, 0xc8, 0x2a,
+    0x56, 0x15, 0x1e, 0xa9, 0xe1, 0x0f, 0x12, 0xed, 0x1b, 0xa0, 0x1c, 0x87,
+    0xb4, 0x93, 0xb3, 0xd0, 0x10, 0x8a, 0x97, 0x67, 0x33, 0xd5, 0xb0, 0x86,
+    0x26, 0x71, 0x67, 0x0c, 0x91, 0x1c, 0xbb, 0x27, 0x51, 0xca, 0xca, 0xab,
+    0x7e, 0x39, 0xbe, 0xa6, 0xde, 0xb7, 0x1e, 0x9c, 0x91, 0x3f, 0x40, 0xd4,
+    0xfe, 0x06, 0x6e, 0x0d, 0xab, 0xc5, 0xff, 0x07, 0x75, 0x29, 0xed, 0x15,
+    0x96, 0xbd, 0xe0, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
+    0xae, 0x42, 0x60, 0x82
 };
 
 
@@ -824,6 +771,7 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool
     connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
     connect( Menu, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( changeTabSlot() ) );
     connect( buttonSave, SIGNAL( clicked() ), this, SLOT( saveSlot() ) );
+    connect( buttonApply, SIGNAL( clicked() ), this, SLOT( applySlot() ) );
 
     // tab order
     setTabOrder( fullName, userPart );
diff --git a/src/configurationpanelui.h b/src/configurationpanelui.h
index 62c1e2e00c..43407177f6 100644
--- a/src/configurationpanelui.h
+++ b/src/configurationpanelui.h
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form interface generated from reading ui file 'configurationpanel.ui'
 **
-** Created: Mon Jan 10 17:49:57 2005
+** Created: Tue Jan 11 12:49:32 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
@@ -121,6 +121,7 @@ public:
 
 public slots:
     virtual void saveSlot();
+    virtual void applySlot();
     virtual void changeTabSlot();
 
 protected:
diff --git a/src/manager.cpp b/src/manager.cpp
index ad691a8048..1886bc5ebf 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -301,6 +301,11 @@ Manager::handleRemoteEvent (int code, char * reason, int remotetype) {
 			gui()->lcd->setStatus("Logged in");				
 			break;
 
+		// Registration failure
+		case EXOSIP_REGISTRATION_FAILURE:
+			gui()->lcd->setStatus("Registration failure");				
+			break;
+			
 		// Remote callee answered
 		case EXOSIP_CALL_ANSWERED:
 			if (!gui()->transfer)
@@ -342,7 +347,7 @@ Manager::handleRemoteEvent (int code, char * reason, int remotetype) {
 		gui()->lcd->setStatus("Ringing");
 		
 	// if error code
-	} else { 
+	} else { 	
 		if (code > 399) {
 			qinfo = QString::number(code, 10) + " " + 
 				QString(reason);
diff --git a/src/manager.h b/src/manager.h
index c7ae3ca53c..3313be727a 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -47,10 +47,10 @@ public:
 	AudioRtp		*audioRTP;
 	AudioDrivers	*audiodriver;
 	ToneGenerator	*tone;
-	QString 	*DirectCall; // from argv[1]
+	QString 		*DirectCall; // from argv[1]
 	bool 			 mute;
 	bool 			 tonezone;
-	string			 path;
+	std::string		 path;
 
 	inline
 	QtGUIMainWindow*gui			(void) { return this->phonegui; }
diff --git a/src/phonebookui.cpp b/src/phonebookui.cpp
index 32051c19f7..4a96f71390 100644
--- a/src/phonebookui.cpp
+++ b/src/phonebookui.cpp
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form implementation generated from reading ui file 'phonebook.ui'
 **
-** Created: Mon Jan 10 17:49:57 2005
+** Created: Tue Jan 11 12:49:31 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
diff --git a/src/phonebookui.h b/src/phonebookui.h
index 3caab8fe1a..b352b9a8e4 100644
--- a/src/phonebookui.h
+++ b/src/phonebookui.h
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form interface generated from reading ui file 'phonebook.ui'
 **
-** Created: Mon Jan 10 17:49:57 2005
+** Created: Tue Jan 11 12:49:31 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
diff --git a/src/qtGUImainwindow.cpp b/src/qtGUImainwindow.cpp
index 34fc34d8dd..a4a70bf397 100644
--- a/src/qtGUImainwindow.cpp
+++ b/src/qtGUImainwindow.cpp
@@ -190,6 +190,8 @@ QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, const char *name, WFlags f,
 
 	// Connect to apply settings
 	connect (panel->buttonApply, SIGNAL(clicked()), this, SLOT(applySlot()));
+	// Connect to save settings
+	connect (panel->buttonSave, SIGNAL(clicked()), this, SLOT(save()));
 	
 	// Handle keyboard events
 	// Connect for clicked numeric keypad button 
@@ -246,23 +248,17 @@ QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, const char *name, WFlags f,
 	connect (dtmf_button, SIGNAL(clicked()), this, SLOT(dtmfKeypad()));
 
 	// Connect to reduce
-//	if (Config::getb(QString("Preferences/Options.checkedTray"))) {
-	if (Config::getb("Preferences", "Options.checkedTray")) {
-		connect (reduce_button, SIGNAL(clicked()), this, SLOT(clickHandle()));
-	} else {
-		connect (reduce_button, SIGNAL(clicked()), this, SLOT(showMinimized()));
-	}
+	connect (reduce_button, SIGNAL(clicked()), this, SLOT(reduceHandle()));
 	// Connect to quit with keyboard
 	connect (this, SIGNAL(keyPressed(int)), this, SLOT(quitApplication()));
    	// Connect to quit with quit button
 	connect (quit_button, SIGNAL(clicked()), this, SLOT(quitApplication()));
 	
 	// To register when program is launched
-//	if (Config::getb(QString("Preferences/Options.autoregister")) 
-	if (Config::getb("Preferences", "Options.autoregister") 	
-			and panel->password->text() == "") { 
+	//if (Config::getb("Preferences", "Options.autoregister") 	
+	//		and panel->password->text() == "") { 
 	//	configuration ();
-	}
+	//}
 
 	// Change window title and Icon.
 	this->setCaption(PROGNAME);
@@ -284,7 +280,6 @@ QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, const char *name, WFlags f,
 				NULL, mypop, parent, name);
 	trayicon->show();
 	connect(trayicon, SIGNAL(clickedLeft()), this, SLOT(clickHandle()));
-	connect (panel->buttonSave, SIGNAL(clicked()), this, SLOT(save()));
 	
 }
 
@@ -342,17 +337,6 @@ QtGUIMainWindow::initBlinkTimer(void) {
  */
 QString
 QtGUIMainWindow::setPathSkin (void) {
-/*	QString		 pathskin;
-	if (apply) {
-		pathskin = panel->SkinChoice->currentText();
-		apply = false;
-	} else {
-		pathskin = Config::get(QString("Preferences/Themes.skinChoice"),
-				QString("default"));
-	}
-	return pathskin;*/
-//	return Config::get(QString("Preferences/Themes.skinChoice"),
-//		   QString("metal"));
 	return QString(Config::getchar(
 					"Preferences", "Themes.skinChoice", "metal"));
 }
@@ -796,7 +780,6 @@ void
 QtGUIMainWindow::button_msg (void) {
 	 stopTimerMessage();
 	 lcd->clear("Voicemail");
-	 //lcd->appendText(Config::gets("Preferences/Options.voicemailNumber"));
 	 lcd->appendText(Config::getchar("Preferences","Options.voicemailNumber",""));
 	 dial();
 }
@@ -992,18 +975,12 @@ void
 QtGUIMainWindow::quitApplication (void) {
 	bool confirm;
 	// Show QMessageBox
-	if (apply) {
-		confirm = panel->confirmationToQuit->isChecked();
-		apply = false;
-	} else {
-		//confirm = Config::get (QString("Preferences/Options.confirmQuit"),true);
-		confirm = Config::get("Preferences", "Options.confirmQuit", (int)true);
+	confirm = Config::get("Preferences", "Options.confirmQuit", (int)true);
 		
-	}
 	if (confirm) {
 		if (QMessageBox::question(this, "Confirm quit",
 			"Are you sure you want to quit SFLPhone ?",
-			 QMessageBox::No, QMessageBox::Yes) == QMessageBox::Yes) {
+			 QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
 				QApplication::exit(0);
 				callmanager->quitLibrary();
 		}
@@ -1067,34 +1044,32 @@ QtGUIMainWindow::pressedKeySlot (int id) {
 	// Handle dtmf
 	key->startTone(code);
 	key->generateDTMF(buf, SAMPLING_RATE);
-	if (apply) {
-		pulselen = panel->pulseLength->value();
-		apply = false;
-	} else {
-		//pulselen = Config::get(QString("Signalisations/DTMF.pulseLength"), 250);
-		pulselen = Config::get("Signalisations", "DTMF.pulseLength", 250);
-		
-	}
+	pulselen = Config::get("Signalisations", "DTMF.pulseLength", 250);
 	callmanager->audiodriver->writeBuffer(buf, pulselen * (OCTETS/1000));
 }
 
 // Apply new settings
 void 
 QtGUIMainWindow::applySlot() {
-	apply = true;
 	
-	panel->SkinChoice->setCurrentItem(panel->SkinChoice->currentItem());    
-  	panel->confirmationToQuit->setChecked(
-			panel->confirmationToQuit->isChecked());
-   	panel->pulseLength->setValue(panel->pulseLength->value());
-   	panel->zoneToneChoice->setCurrentItem(panel->zoneToneChoice->currentItem());
 }
 
+// Save settings in config-file
 void 
 QtGUIMainWindow::save() {
 	Config::tree()->saveToFile(callmanager->path.data());
 }
 
+// Handle operation to minimize the application
+void 
+QtGUIMainWindow::reduceHandle (void) {
+	if (Config::getb("Preferences", "Options.checkedTray")) {
+		clickHandle();
+	} else {
+		showMinimized();
+	}
+}
+
 // Handle mouse left-button click to minimize/maximize the application
 void
 QtGUIMainWindow::clickHandle (void) {
diff --git a/src/qtGUImainwindow.h b/src/qtGUImainwindow.h
index 28b7b983c3..527c8c72d8 100644
--- a/src/qtGUImainwindow.h
+++ b/src/qtGUImainwindow.h
@@ -165,6 +165,7 @@ public slots:
 	void 	 button_conf		(void);
 	void 	 applySlot 			(void);
 	void 	 clickHandle 		(void);
+	void	 reduceHandle		(void);
 	void	 save				(void);
 	
 	void 	 pressedKey0		(void);
diff --git a/src/sip.cpp b/src/sip.cpp
index 7f891d540b..1b045841bc 100644
--- a/src/sip.cpp
+++ b/src/sip.cpp
@@ -119,8 +119,6 @@ SIP::initSIP (void) {
 		stunSvrAddr.addr = 0;
 		
 		// Stun server
-		//QString svr = Config::gets("Signalisations/STUN.STUNserver");
-		//qDebug("address server stun = %s", svr.ascii());
 		string svr = Config::gets("Signalisations", "STUN.STUNserver");
 		qDebug("address server stun = %s", svr.data());
 		
@@ -338,18 +336,7 @@ SIP::checkUrl(char *url) {
 int
 SIP::setRegister (void) {
 	int reg_id = -1;
-#if 0	
-	QString qproxy = "sip:" + Config::gets("Signalisations/SIP.sipproxy"); 
-	char * proxy = (char*)qproxy.ascii();
 
-	QString qhostname = "sip:"+Config::gets("Signalisations/SIP.hostPart"); 
-	char * hostname = (char*)qhostname.ascii();
-	
-	QString qfrom = fromHeader(NULL, 
-							Config::gets("Signalisations/SIP.userPart"), 
-							Config::gets("Signalisations/SIP.hostPart"));
-	char * from = (char*)qfrom.ascii();
-#endif
 	string qproxy = "sip:" + Config::gets("Signalisations", "SIP.sipproxy"); 
 	char * proxy = (char*)qproxy.data();
 
@@ -371,7 +358,6 @@ SIP::setRegister (void) {
 	eXosip_lock();
 	setAuthentication();
 	
-	//if (Config::gets("Signalisations/SIP.sipproxy") != "") {
 	if (Config::gets("Signalisations", "SIP.sipproxy") != "") {
 		reg_id = eXosip_register_init(from, proxy, NULL);
 	} else {
@@ -398,31 +384,6 @@ SIP::setRegister (void) {
 
 int
 SIP::setAuthentication (void) {
-#if 0
-	QString login, pass, realm;
-	login = Config::gets("Signalisations/SIP.username");
-	if (login == "") {
-		login = Config::gets("Signalisations/SIP.userPart");
-	}
-	pass = Config::gets("Signalisations/SIP.password");
-
-	if (callmanager->useStun()) {
-		realm = Config::gets("Signalisations/SIP.hostPart");
-	} else {
-		if (Config::gets("Signalisations/SIP.sipproxy") != "") {
-			realm = Config::gets("Signalisations/SIP.sipproxy");
-		} else {
-			realm = Config::gets("Signalisations/SIP.hostPart");
-		}
-	}
-	
-	if (eXosip_add_authentication_info(login.ascii(), login.ascii(), 
-		pass.ascii(), NULL, NULL) != 0) {
-		qDebug ("No authentication");
-		return -1;
-	}
-#endif
-
 	string login, pass, realm;
 	login = Config::gets("Signalisations", "SIP.username");
 	if (login == "") {
@@ -441,7 +402,6 @@ SIP::setAuthentication (void) {
 	}
 	
 	if (eXosip_add_authentication_info(login.data(), login.data(), 
-		//pass.data(), NULL, realm.data()) != 0) {
 		pass.data(), NULL, NULL) != 0) {
 		qDebug ("No authentication");
 		return -1;
@@ -449,34 +409,12 @@ SIP::setAuthentication (void) {
 	return 0;
 }
 		
-
-// Form the From header field
-#if 0
-QString
-SIP::fromHeader (QString name, QString user, QString host) {
-	if (name != NULL) {
-		return ("sip:" + user + "@" + host);
-	} else {
-		return ("sip:" + user + "@" + host);
-	}
-}
-#endif
 string
 SIP::fromHeader (string user, string host) {
 	return ("sip:" + user + "@" + host);
 }
 
-// Form the To header field
-#if 0
-QString
-SIP::toHeader(QString to) {
-	if (to.contains("sip:") == 0) {
-		return ("sip:" + to );
-	} else {
-		return to;
-	}
-}
-#endif
+
 string
 SIP::toHeader(string to) {
 	if (to.find("sip:") == string::npos) {
@@ -539,40 +477,7 @@ int
 SIP::outgoingInvite (void) {
 	char * from;
 	char * to;
-#if 0	
-	// Form the From header field basis on configuration panel
-	QString qfrom = fromHeader(Config::gets("Signalisations/SIP.fullName"), 
-								Config::gets("Signalisations/SIP.userPart"),
-								Config::gets("Signalisations/SIP.hostPart"));
-	from = (char*)qfrom.ascii();
-	
-	// Form the To header field
-	QString qto = toHeader(callmanager->bufferTextRender());
-	if (qto.contains('@') == 0 and 
-			Config::getb(QString("Preferences/Options.autoregister"))) {
-		qto = qto + "@" + Config::gets("Signalisations/SIP.hostPart");
-	}
-	to = (char*)qto.ascii();
-		
-	qDebug ("From: <%s>", from);
-	qDebug ("To: <%s>", to);
 
-	// If no SIP proxy setting
-	if (Config::gets("Signalisations/SIP.sipproxy") == "") {
-		if (startCall(from, to, NULL, NULL) <= 0) {
-			return -1;
-		}
-		return 0;
-	}
-	
-	QString qroute = "<sip:" + Config::gets("Signalisations/SIP.sipproxy") 
-							+ ";lr>";
-	char * route = (char*)qroute.ascii();
-	
-	if (startCall(from, to, NULL, route) <= 0) {
-		return -1;
-	}
-#endif	
 	// Form the From header field basis on configuration panel
 	string qfrom = fromHeader(Config::gets("Signalisations", "SIP.userPart"),
 								Config::gets("Signalisations", "SIP.hostPart"));
@@ -621,7 +526,6 @@ SIP::setLocalPort (int port) {
 	
 void
 SIP::carryingDTMFdigits (int line, char digit) {
-	  //int duration = Config::geti("Signalisations/DTMF.pulseLength"); 
 	  int duration = Config::geti("Signalisations", "DTMF.pulseLength"); 
       
 	  static const int body_len = 128;
@@ -734,13 +638,6 @@ SIP::manageActions (int usedLine, int action) {
 
 	// IP-Phone user is transfering call
 	case TRANSFER_CALL:
-#if 0
-	   	referTo	= toHeader(callmanager->bufferTextRender());
-		if (referTo.contains('@') == 0) {
-			referTo = referTo + "@" + 
-				Config::gets("Signalisations/SIP.hostPart");
-		}
-#endif		
 		referTo	= toHeader(string(callmanager->bufferTextRender().ascii()));
 		if (referTo.find("@") == string::npos) {
 			referTo = referTo + "@" + 
@@ -781,6 +678,7 @@ int
 SIP::getEvent (void) {
 	eXosip_event_t *event;
 	int theline = -1;
+	static int countReg = 0;
 
 	event = eXosip_event_wait (0, 50);
 	if (event == NULL) {
@@ -1011,7 +909,11 @@ SIP::getEvent (void) {
 			qDebug("REGISTRATION_FAILURE <- (%i) [%i %s] %s for REGISTER %s", 
 				event->rid, event->status_code, event->reason_phrase, 
 				event->remote_uri, event->req_uri);
-			setRegister();
+			if (countReg <= 3) { 
+				setRegister();
+				countReg++;
+			}
+			callmanager->handleRemoteEvent(0,NULL,EXOSIP_REGISTRATION_FAILURE);
 			break;
 
 		case EXOSIP_OPTIONS_NEW:
diff --git a/src/url_inputui.cpp b/src/url_inputui.cpp
index b7be8a9dc7..8829fe2875 100644
--- a/src/url_inputui.cpp
+++ b/src/url_inputui.cpp
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form implementation generated from reading ui file 'url_input.ui'
 **
-** Created: Mon Jan 10 17:49:57 2005
+** Created: Tue Jan 11 12:49:31 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
diff --git a/src/url_inputui.h b/src/url_inputui.h
index 24f6fc4199..3e62621dd7 100644
--- a/src/url_inputui.h
+++ b/src/url_inputui.h
@@ -1,7 +1,7 @@
 /****************************************************************************
 ** Form interface generated from reading ui file 'url_input.ui'
 **
-** Created: Mon Jan 10 17:49:57 2005
+** Created: Tue Jan 11 12:49:31 2005
 **      by: The User Interface Compiler ($Id$)
 **
 ** WARNING! All changes made in this file will be lost!
-- 
GitLab