diff --git a/LISEZ-MOI.md b/LISEZ-MOI.md
index f2cda11daa713c297fd8827d2a7a61c18f1f4b3c..27c417298a2a990882eb96f018ac0b1008ca05d4 100644
--- a/LISEZ-MOI.md
+++ b/LISEZ-MOI.md
@@ -1,29 +1,6 @@
 Cesium website
 ===
 
-## Le pourquoi du comment
-
-Cet ensemble de scripts a pour but de rendre la modification du site cesium.app accessible à tout un chacun.
-
-Ce qui était autrefois fait avec un CMS est maintenant fait avec ce script maison, ce qui présente les avantages suivants : 
-
-* Le site est installable par n'importe qui n'importe où, ce qui : 
-	* nous rend plus résilient en cas de problème
-	* diminue le bus factor
-* Mise à jour facilitée : 
-	* au changement de version de l'appli Cesium, chaque contributeur du GitLab peut dorénavant faire un commit pour modifier le fichier cesiumVersions.php
-	* chacun peut participer à l'amélioration du tutoriel (ou même du site en général)
-* Traductions facilitée : 
-	* alors que la traduction avec le CMS générait des pertes d'informations lors d'une mise à jour, le script maison résoud ce problème en utilisant des fichiers .po
-	* pour le tutoriel, les traductions sont indépendantes ; on n'est donc pas obligé de faire de la traduction phrase par phrase ; on peut avoir des tutoriels organisés totalement différemment d'une langue à l'autre
-	* Les captures d'écran sont aussi adaptées en fonction de la langue du visiteur
-* Chargement plus rapide
-* Personnalisation du style facilitée par un code complètement sémantique (pas de classes à la Twitter-boostrap).
-* Edition facilitée : adieu le WYSIWYG laborieux de l'ancien CMS
-* Chargement plus rapide, grâce à un code plus léger et optimisé à nos besoins.
-
-Il est possible que courant 2020 ces scripts PHP soient remplacés par un générateur de site statiques (SSG) type Pelican.
-
 ## Comment contribuer
 
 ### Comment mettre à jour les liens de téléchargement
@@ -34,7 +11,7 @@ Si ceux-ci étaient amenés à changer d'emplacement, veuillez mettre à jour [l
 
 ### Comment traduire le tutoriel
 
-Pour le tutoriel, vous trouverez les fichiers .html dans les dossiers type `i18n/es_ES/contents/tuto/`
+Pour le tutoriel, vous trouverez les fichiers .html dans les dossiers type `i18n/es_ES/contents/tuto/` (où `es_ES` est la langue qui vous intéresse).
 
 #### Comment formatter les URLs dans le menu
 
@@ -76,29 +53,9 @@ Aussi : utiliser 4 espaces consécutifs en guise d'indentation est une déviance
 J'ai remarqué que pour les instructions dans un tuto, souvent une liste ordonnée <ol></ol> rend mieux 
 qu'une liste non-ordonnée <ul></ul>
 
-#### Soyons sémantiques !
-
-Écrivons à la mode XHTML : 
-
-* un slash à la fin de nos balises <img />
-* un slash à la fin de nos balises <br />
-
-Des éditeurs comme Notepadqq (Linux) nous permettent de répérer facilement la 
-présence de balises non fermées (votre code est coloré diféremment).
-
-Niveau HTML :
-
-* [C'est pas interdit](https://developer.mozilla.org/fr/docs/Web/HTML/Element/li#R%C3%A9sum%C3%A9_technique) 
-  de mettre des <p> (contenu de flux) dans des <li>, mais c'est rare que ce soit vraiment nécessaire.
-  Généralement le résultat que vous cherchez s'obtient mieux en CSS.
-
-Si un truc rend moche, bidouillez les fichiers .css ou demandez-moi de le faire plutôt 
-que de rajouter des balises surnuméraires (genre plutôt que de mettre des >p> ou des >br/> pour créer des marges, 
-utilisons la propriété CSS dédiée, *margin*).
-
 ### Comment modifier les images
 
-C'est dans `i18n/es_ES/contents/tuto/`
+C'est dans `i18n/es_ES/contents/tuto/` (où `es_ES` est la langue qui vous intéresse).
 
 Pour des questions de SEO, les noms des fichiers sont traduits, via les fichiers .po
 
@@ -116,22 +73,6 @@ les modifications sont à faire dans les fichiers .po que vous trouverez dans le
 Ces fichiers sont éditables avec des logiciels type PoEdit.
 
 
-
-## Licences
-
-Ce logiciel est pour sa majeure partie sous licence GNU GPL 3.0.
-
-Aux exceptions suivantes : 
-	
-- Le script Funding.class.php est basé sur la [barre de financement intégrable](https://git.duniter.org/paidge/barre-de-financement-int-grable), elle-même sous licence GNUL GPL 3.
-- [Composer](https://getcomposer.org/) est sous licence MIT.
-- [GeoIP2](https://maxmind.github.io/GeoIP2-php/) est la création de by MaxMind est distribué sous licence Apache
-- Les [bases de données GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) sont la création de MaxMind et sont sous licence Creative Commons Attribution-ShareAlike 4.0 International.
-- Le script [LazyImg](https://github.com/colas31/lazyImg), dont la licence est inconnue.
-- [Font-Awesome](https://fontawesome.com/license/free) est sous licence libre ([voir détail](https://fontawesome.com/license/free))
-- Les photos, qui sont la propriété de leurs auteurs
-- Le logo Cesium est la création de DiG
-
 ## Instructions d'installation
 
 ### .htaccess
@@ -141,7 +82,11 @@ Votre fichier .htaccess doit contenir les infos suivantes :
 ```
 <IfModule mod_rewrite.c>
 RewriteEngine On
-RewriteBase /www/cesium-website/
+
+# Adaptez la ligne suivante à votre configuration (avec un slash à la fin)
+RewriteBase /cesium-website-project/cesium_website/
+
+RewriteOptions InheritDown
 
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
@@ -150,20 +95,49 @@ RewriteRule .*\.php - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1&page=/$2 [L]
-
-
-# Redirections pour gérer l'ancienne structure de liens sans perdre en SEO
-# (ex : /telechargement au lieu de /fr/telechargement)
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
-RewriteRule ^([^/]+)$ fr/$1 [R=301]
 </IfModule>
+
 ```
 
 Modifiez l'instruction RewriteBase du .htaccess pour qu'elle s'accorde à votre propre configuration 
 (tapez l'endroit où CesiumWebsite est installé, typiquement /)
 
+Si lorsque vous essayez d'accéder au site, vous avez une erreur "404 Not Found", c'est que votre fichier `.htaccess` n'est pas pris en considération par Apache.
+
+Il vous faudra alors éditer votre fichier `/etc/apache2/apache2.conf` (anciennement `/etc/apache2/httpd.conf`) pour y remplacer :
+
+```
+<Directory /var/www/>
+        Options Indexes FollowSymLinks
+        AllowOverride None
+        Require all granted
+</Directory>
+```
+par :
+```
+<Directory /var/www/>
+        Options Indexes FollowSymLinks
+        AllowOverride All
+        Require all granted
+</Directory>
+```
+
 ### config.php
 
 Modifiez la variable $rootURL de la même façon.
 
+
+## Licences
+
+Ce logiciel est pour sa majeure partie sous licence GNU GPL 3.0.
+
+Aux exceptions suivantes : 
+	
+- Le script Funding.class.php est basé sur la [barre de financement intégrable](https://git.duniter.org/paidge/barre-de-financement-int-grable), elle-même sous licence GNUL GPL 3.
+- [Composer](https://getcomposer.org/) est sous licence MIT.
+- [GeoIP2](https://maxmind.github.io/GeoIP2-php/) est la création de by MaxMind est distribué sous licence Apache
+- Les [bases de données GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) sont la création de MaxMind et sont sous licence Creative Commons Attribution-ShareAlike 4.0 International.
+- Le script [LazyImg](https://github.com/colas31/lazyImg), dont la licence est inconnue.
+- [Font-Awesome](https://fontawesome.com/license/free) est sous licence libre ([voir détail](https://fontawesome.com/license/free))
+- Les photos, qui sont la propriété de leurs auteurs
+- Le logo Cesium est la création de DiG
\ No newline at end of file
diff --git a/README.en.md b/README.en.md
index 5eaeb0cd0c112feb30a0617f27da3fba8e129b67..05652c4ae0f5cd1c487dc138f33ad60e851e866c 100644
--- a/README.en.md
+++ b/README.en.md
@@ -3,5 +3,54 @@ Cesium website
 
 ## Install notes
 
-Modify RewriteBase directive in .htaccess according to your own configuration (set RewriteBase to be the URI where CesiumWebsite is installed, typically /).
+### .htaccess
+
+Create a .htaccess in cesium_website directory, with the following text : 
+
+```
+<IfModule mod_rewrite.c>
+RewriteEngine On
+
+# Adaptez la ligne suivante à votre configuration (avec un slash à la fin)
+RewriteBase /cesium-website-project/cesium_website/
+
+RewriteOptions InheritDown
+
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule .*\.php - [L]
+
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1&page=/$2 [L]
+</IfModule>
+
+```
+
+Edit RewriteBase directive to match your own setup.
+
+If, when trying to access the site, you get a "404 Not Found" error, this means your `.htaccess` file is not taken into account by Apache.
+
+You will then need to edit `/etc/apache2/apache2.conf` file and replace :
+
+```
+<Directory /var/www/>
+        Options Indexes FollowSymLinks
+        AllowOverride None
+        Require all granted
+</Directory>
+```
+with :
+```
+<Directory /var/www/>
+        Options Indexes FollowSymLinks
+        AllowOverride All
+        Require all granted
+</Directory>
+```
+
+### config.php
+
+In ̀`config.php`, edit $rootURL var according to your setup.
+
 
diff --git a/cesiumDownloads.php b/cesiumDownloads.php
index a978b8e6c177767178606949ae92dc9e950a1589..d887cb06a7926189549c2b14dff80153d51d0166 100644
--- a/cesiumDownloads.php
+++ b/cesiumDownloads.php
@@ -6,41 +6,41 @@ $cesiumDownloads =
 	'android' => [
 		'title' => 'Android', 
 		'url' => 'https://play.google.com/store/apps/details?id=fr.duniter.cesium', 
-		'img' => 'android.png', 
+		'img' => 'android.svg', 
 		'desc' => _('Disponible directement sur le Play Store'), 
 		'extra' => sprintf(_('(ou <a href="%s">télécharger le fichier .apk</a>)'), 'https://github.com/duniter/cesium/releases/download/v'. $cesiumVersions['android'] .'/cesium-v'. $cesiumVersions['android'] .'-android.apk')
 	], 
 	'iphone' => [
 		'title' => 'iPhone', 
 		'url' => 'https://apps.apple.com/app/cesium-%C4%9F1/id1471028018', 
-		'img' => 'apple.png', 
+		'img' => 'apple.svg', 
 		'desc' => _('Disponible sur l\'App Store'), 
 		'extra' => ''
 	], 
 	'linux' => [
 		'title' => 'Linux', 
 		'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-desktop-v%s-linux-x64.deb', $cesiumVersions['linux'], $cesiumVersions['linux']), 
-		'img' => 'tux.png', 
+		'img' => 'tux.svg', 
 		'desc' => _('Paquet .deb pour Debian ou Ubuntu'), 
 		'extra' => _('En cas de problème&nbsp;:') . '<br /><code>sudo apt-get install -y libgconf-2-4</code>'
 	], 
 	'windows' => [
 		'title' => 'Windows', 
 		'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-desktop-v%s-windows-x64.exe', $cesiumVersions['windows'], $cesiumVersions['windows']), 
-		'img' => 'windows.png', 
+		'img' => 'windows.svg', 
 		'desc' => _('Installateur .exe pour Windows'), 
 		'extra' => _('Lancez le .exe et suivez les instructions à l\'écran')
 	], 
 	'mac' => [
 		'title' => 'Mac', 
 		'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-v%s-web.zip', $cesiumVersions['mac'], $cesiumVersions['mac']), 
-		'img' => 'apple.png', 
+		'img' => 'apple.svg', 
 		'desc' => _('Version web fonctionnant sous Mac'), 
 		'extra' => _('Décompressez le fichier .zip et ouvrez le fichier index.html')
 	], 
 	'Firefox_Add-on' => [
 		'title' => _('Firefox Add-on'), 
-		'url' => sprintf('https://glibre.org/cesium/cesium-%s-an+fx.xpi', $cesiumVersions['firefox']), 
+		'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-v%s-extension-firefox.xpi', $cesiumVersions['firefox'], $cesiumVersions['firefox']), 
 		'img' => 'firefox2019.png', 
 		'desc' => _('Expérimental Firefox Add-on'), 
 		'extra' => ''
@@ -55,14 +55,14 @@ $cesiumDownloads =
 	'yunohost' => [
 		'title' => 'Yunohost', 
 		'url' => 'https://github.com/duniter/cesium_ynh', 
-		'img' => 'yunohost.png', 
+		'img' => 'yunohost.svg', 
 		'desc' => _('Paquet pour Yunohost'), 
 		'extra' => ''
 	], 
 	'livrables' => [
 		'title' => _('Livrables'), 
 		'url' => 'https://github.com/duniter/cesium/releases', 
-		'img' => '1200px-Octicons-mark-github.png', 
+		'img' => 'github.svg', 
 		'desc' => _('Toutes versions disponibles sur GitHub'), 
 		'extra' => ''
 	], 
diff --git a/cesiumVersions.php b/cesiumVersions.php
index 7228b0bd7583c916dda816ecc194affb398abe69..77f1894cf2a91d35956f3858a94b582c0691335f 100644
--- a/cesiumVersions.php
+++ b/cesiumVersions.php
@@ -1,13 +1,13 @@
 <?php
 
 $cesiumVersions = [
-	   'home' => '1.3.11', 
-	'android' => '1.3.11', 
-	  'linux' => '1.3.11', 
+	   'home' => '1.6.5', 
+	'android' => '1.6.5', 
+	  'linux' => '1.6.5', 
 	'windows' => '1.3.11', 
-	'firefox' => '1.3.11', 
+	'firefox' => '1.6.5', 
 	    'mac' => '1.3.11', 
-	    'web' => '1.3.11', 
+	    'web' => '1.6.5', 
 	
 ];
 	   
diff --git a/compile.sh b/compile.sh
new file mode 100755
index 0000000000000000000000000000000000000000..210fc905cbe4a7632e41c461f5b788456e1b2b32
--- /dev/null
+++ b/compile.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+lessc lib/style.less lib/style.css
+
diff --git a/config.php b/config.php
index 046fd20c0515f1d7eed546766135601ae11dc270..0403ebe60d851d5709bc15dfa2a2f4c25082e3cf 100644
--- a/config.php
+++ b/config.php
@@ -2,8 +2,10 @@
 
 include('cesiumVersions.php');
 
-define('FUNDING_PUBKEY', 'CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX');
-define('FUNDING_TARGET', '100');
+define('FUNDING_PUBKEY',  '78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8');
+// Duniter : 78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8
+// Cesium : CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX
+define('FUNDING_TARGET', 20*40+230);
 
 $legalNotice =
 	[
@@ -13,11 +15,18 @@ $legalNotice =
 	];
 
 
+if ($_SERVER['SERVER_NAME'] == 'localhost') {
+	
+	ini_set('display_errors', 1);
+	ini_set('display_startup_errors', 1);
+	error_reporting(E_ALL);
+}
 
 // Trouver une façon de définir $rootURL sans faire ça :
 
 if ($_SERVER['SERVER_NAME'] == 'localhost') {
-	$rootURL = '/www/cesium_website';
+	// Adaptez la ligne suivante à votre configuration (sans slash à la fin)
+	$rootURL = '/cesium-website-project/cesium_website';
 } else {
 	$rootURL = '';
 }
@@ -53,10 +62,6 @@ $availableLanguages =
 		 'name' => 'español',
 		 'folder' => 'es_ES'
 		 ],
-	 'va' => [
-		 'name' => 'valyrio',
-		 'folder' => 'en_US'
-		 ],
 	/*
 	 'it' => [
 		 'name' => 'italiano',
@@ -93,4 +98,4 @@ include('inc/display.php');
 
 
 define('MOD_REWRITE', 'on');
-define('FUNDING_ALT', false);
+define('FUNDING_ALT', (date('d/m') == '01/04'));
diff --git a/foot.php b/foot.php
index 4b50e4410d70dfb20597609ccb2f6057aa8bd41c..b0531f274306527445b5d34040e0a738b4c6f439 100644
--- a/foot.php
+++ b/foot.php
@@ -1,37 +1,31 @@
-<?php
-
-textdomain('menu');
-
-?>
-
 			</main>
 
 			<footer>
 				<div>
 					<nav id="sitemap">
 						<h5>
-							<?php echo _('Plan du site'); ?>
+							<?php echo dgettext('menu', 'Plan du site'); ?>
 						</h5>
 
 						<ul>
 							<li>
 								<a href="<?php echo parseURI('/'); ?>">
-									<?php echo _('Accueil'); ?>
+									<?php echo dgettext('menu', 'Accueil'); ?>
 								</a>
 							</li>
 							<li>
-								<a href="<?php echo parseURI(_('/fonctionnalites')); ?>">
-									<?php echo _('Fonctionnalités'); ?>
+								<a href="<?php echo parseURI(dgettext('menu', '/fonctionnalites')); ?>">
+									<?php echo dgettext('menu', 'Fonctionnalités'); ?>
 								</a>
 							</li>
 							<li>
-								<a href="<?php echo parseURI(_('/telechargement')); ?>">
-									<?php echo _('Téléchargement'); ?>
+								<a href="<?php echo parseURI(dgettext('menu', '/telechargement')); ?>">
+									<?php echo dgettext('menu', 'Téléchargement'); ?>
 								</a>
 							</li>
 							<li>
 								<a href="https://forum.duniter.org/c/support/cesium">
-									<?php echo _('Support'); ?>
+									<?php echo dgettext('menu', 'Support'); ?>
 								</a>
 							</li>
 						</ul>
@@ -39,28 +33,28 @@ textdomain('menu');
 
 					<nav id="developper-links">
 						<h5>
-							<?php echo _('Développeur ? Rejoignez-nous !');?>
+							<?php echo dgettext('menu', 'Développeur ? Rejoignez-nous !');?>
 						</h5>
 
 						<ul>
 							<li>
 								<a href="https://forum.duniter.org/c/support/cesium">
-									<?php echo _('Forum Cesium'); ?>
+									<?php echo dgettext('menu', 'Forum Cesium'); ?>
 								</a>
 							</li>
 							<li>
 								<a href="https://forum.duniter.org/c/presentations">
-									<?php echo _('Venez faire connaissance'); ?>
+									<?php echo dgettext('menu', 'Venez faire connaissance'); ?>
 								</a>
 							</li>
 							<li>
 								<a href="https://git.duniter.org/clients/cesium-grp/cesium">
-									<?php echo _('Forge GitLab de Cesium'); ?>
+									<?php echo dgettext('menu', 'Forge GitLab de Cesium'); ?>
 								</a>
 							</li>
 							<li>
 								<a href="https://git.duniter.org/clients/cesium-grp/cesium/blob/master/doc/development_guide.md">
-									<?php echo _('Guide du développement Cesium'); ?>
+									<?php echo dgettext('menu', 'Guide du développement Cesium'); ?>
 								</a>
 							</li>
 							<li>
@@ -79,12 +73,12 @@ textdomain('menu');
 						</p>
 
 						<p>
-							<a href="<?php echo $rootURL . _('/mentions-legales'); ?>">Mentions légales</a>
+							<a href="<?php echo $rootURL . dgettext('menu', '/mentions-legales'); ?>">Mentions légales</a>
 						</p>
 					</section>
 
 					<nav id="langSelector">
-						<h5><?php echo _('Choix de langue'); ?></h5>
+						<h5><?php echo dgettext('menu', 'Choix de langue'); ?></h5>
 
 						<ul>
 							<?php 
@@ -115,7 +109,7 @@ textdomain('menu');
 									} else {
 										
 										echo '
-										<a href="'. $rootURL .'/'. $thisLangIsoCode . _($pagePermalink) .'">
+										<a href="'. $rootURL .'/'. $thisLangIsoCode . dgettext('menu', $pagePermalink) .'">
 												<span>
 													' . $thisLangIsoCode . '
 												</span>
diff --git a/head.php b/head.php
index 4b5b2a334fd15f4795bf413b287cf13bf696767c..f0fb2993e9b019b1d62b7913d98daeba5418f9f2 100644
--- a/head.php
+++ b/head.php
@@ -28,13 +28,13 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
 		<meta property="og:url" content="http://cesium.app/" />
 		<meta property="og:site_name" content="Cesium Ğ1" />
 		
-		<meta property="og:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . _('/accueil') . _('/Cesium-G1-maquette.png'); ?>" />
+		<meta property="og:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . dgettext('menu', '/accueil') . dgettext('home', '/Cesium-G1-maquette.png'); ?>" />
 		<meta property="og:type" content="website" />
 
 		<meta name="twitter:description" content="<?php echo $pageDescription; ?>" />
 		<meta name="twitter:title" content="<?php echo $pageTitle; ?>" />
 		
-		<meta name="twitter:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . _('/accueil') . _('/Cesium-G1-maquette.png'); ?>" />
+		<meta name="twitter:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . dgettext('menu', '/accueil') . dgettext('home', '/Cesium-G1-maquette.png'); ?>" />
 		<meta name="twitter:card" content="summary_large_image" />
 		
 		<script type="text/javascript" src="<?php echo $rootURL; ?>/lib/lazyImg.min.js"></script>
@@ -45,33 +45,52 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
 			echo '<link rel="alternate" hreflang="'. $isoCode .'" href="'. $rootURL .'/'. $isoCode .'/" />'; 
 		}
 		?>
-
-		<link type="text/css" rel="stylesheet" media="screen" href="<?php echo $rootURL; ?>/lib/style.css" />
+		
+		<?php
+		
+		if ($_SERVER['SERVER_NAME'] == 'localhost') {
+			
+			echo '
+			<link rel="stylesheet/less" type="text/css" href="' . $rootURL . '/lib/style.less" />
+			<script src="' . $rootURL . '/lib/less-3.9.0.min.js" ></script>
+			';
+		
+		} else {
+		
+			echo '<link rel="stylesheet" type="text/css" media="screen" href="' . $rootURL . '/lib/style.css" />';
+			
+		}
+		
+		?>
 		
 		<?php if (FUNDING_ALT) echo '<link type="text/css" rel="stylesheet" media="screen" href="'. $rootURL .'/lib/style-funding-alt-1.css" />'; ?>
 		
 	</head>
 	<body id="<?php echo $bodyIds; ?>">
 			<?php
-				textdomain("menu");
-
 				$menu =
 					array(
 						[
-							'uri' => _('/'), 
-							'label' => _('Accueil')
+							'uri' => dgettext('menu', '/'), 
+							'label' => dgettext('menu', 'Accueil')
 						], 
 						[
-							'uri' => _('/fonctionnalites'), 
-							'label' => _('Fonctionnalités')
+							'uri' => dgettext('menu', '/fonctionnalites'), 
+							'label' => dgettext('menu', 'Fonctionnalités')
 						], 
 						[
-							'uri' => _('/telechargement'), 
-							'label' => _('Télécharger')
+							'uri' => dgettext('menu', '/telechargement'), 
+							'label' => dgettext('menu', 'Télécharger')
 						],
 						[
-							'uri' => _('/tutoriel-cesium') . '/', 
-							'label' => _('Tutoriel')
+							'uri' => dgettext('menu', '/tutoriel-cesium') . '/', 
+							'label' => dgettext('menu', 'Tutoriel')
+						],
+						[
+							'uri' => dgettext('menu', '/merci'), 
+							'label' => '❤ ' . dgettext('menu', 'Encouragez-nous !'),  
+							'class' => 'support-us'
+							// ❤
 						]
 					);
 			?>
@@ -91,7 +110,7 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
 				
 				<p>
 					<a href="<?php echo parseURI("/"); ?>">
-						<img src="<?php echo $rootURL; ?>/lib/logo.png" alt="logo Cesium Ğ1" />
+						<img src="<?php echo $rootURL; ?>/lib/logo-cesium.svg" alt="logo Cesium Ğ1" />
 					</a>
 				</p>
 
@@ -106,10 +125,16 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
 
 						for ($i = 0; $i < $itemsNb; ++$i)
 						{
-							$active = ($_SERVER['REQUEST_URI'] == parseURI($menu[$i]['uri'])) ? ' class="active"' : '';
-
+							$classes = '';
+							
+							$classes .= ($_SERVER['REQUEST_URI'] == parseURI($menu[$i]['uri'])) ? ' active' : '';
+							
+							$classes .= isset($menu[$i]['class']) ? ' '. $menu[$i]['class'] . '"' : '';
+							
+							$classes = !empty($classes) ? ' class="'. $classes .'"' : '';
+							
 							echo '
-							<li'. $active .'>
+							<li'. $classes . '>
 								<a role="menuitem" href="'. parseURI($menu[$i]['uri']) . '">
 									<span>'. $menu[$i]['label'] .'</span>
 								</a>
diff --git a/i18n/en_US/LC_MESSAGES/home.mo b/i18n/en_US/LC_MESSAGES/home.mo
deleted file mode 100644
index 0b9a88341e51fe2cf0aa74f76d91a39e7e8ba660..0000000000000000000000000000000000000000
Binary files a/i18n/en_US/LC_MESSAGES/home.mo and /dev/null differ
diff --git a/i18n/en_US/LC_MESSAGES/home.po b/i18n/en_US/LC_MESSAGES/home.po
deleted file mode 100644
index 6a7b7f2c2fa092640c4d6b97fe0af8aacaa706ec..0000000000000000000000000000000000000000
--- a/i18n/en_US/LC_MESSAGES/home.po
+++ /dev/null
@@ -1,164 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2019-11-08 12:34+0100\n"
-"PO-Revision-Date: 2019-11-08 12:38+0100\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.4\n"
-"X-Poedit-Basepath: ../../../tpl\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SearchPath-0: home.php\n"
-
-#: home.php:4
-msgid "Cesium Ğ1 - Site officiel"
-msgstr ""
-
-#: home.php:5
-msgid ""
-"Cesium est l'application la plus intuitive pour gérer votre portefeuille en "
-"monnaie-libre Ğ1."
-msgstr ""
-
-#: home.php:16 home.php:145
-msgid "/accueil"
-msgstr "/home"
-
-#: home.php:16
-msgid "/Cesium-G1-maquette.png"
-msgstr "/Cesium-G1-mockup.png"
-
-#: home.php:21
-msgid "Recevez et envoyez <br />de la monnaie libre Ğ1"
-msgstr "Jiōragon se jikagon<br />Ğ1 dāerī gēlior"
-
-#: home.php:25 home.php:93 home.php:104
-msgid "/telechargement"
-msgstr "/derebagon"
-
-#: home.php:26
-#, php-format
-msgid "Télécharger Cesium %s"
-msgstr "Derēbagon Cesium %s"
-
-#: home.php:32
-#, php-format
-msgid "Logiciel libre sous licence %s"
-msgstr "Dāez sētenon (%s)"
-
-#: home.php:36
-#, php-format
-msgid "Développeur ?"
-msgstr "Sētios ?"
-
-#: home.php:37
-msgid "/developpeurs"
-msgstr "/developers"
-
-#: home.php:38
-msgid "Rejoignez-nous !"
-msgstr "Īlōn imazumbatis !"
-
-#: home.php:48
-msgid "Cesium : la solution simple<br />pour échanger en monnaie libre"
-msgstr ""
-
-#: home.php:52
-msgid "Sécurisé"
-msgstr "Ȳgha"
-
-#: home.php:56
-msgid ""
-"Cesium signe numériquement vos transactions avant de les transmettre à la "
-"blockchain de Duniter."
-msgstr ""
-
-#: home.php:60
-msgid "Offert"
-msgstr ""
-
-#: home.php:64
-msgid ""
-"Parce qu'il est codé avec amour par une communauté de gens qui croient aux "
-"monnaies libres en général (et à la Ğ1 en particulier), Cesium vous est "
-"offert sans exiger de contre-partie. "
-msgstr ""
-
-#: home.php:70
-msgid "Libre"
-msgstr "Dāez"
-
-#: home.php:75
-msgid "Cesium est un logiciel libre."
-msgstr "Cesium dāez sētenon issa."
-
-#: home.php:77
-#, php-format
-msgid ""
-"Vous êtes donc libre d'en consulter le code source (sur <a href=\"%s"
-"\">GitLab</a>), et d'adapter Cesium à vos besoins pour, par exemple, lancer "
-"votre propre monnaie libre."
-msgstr ""
-
-#: home.php:89
-msgid "Plus que quelques pas<br />avant de recevoir vos premières Ğ1"
-msgstr ""
-
-#: home.php:98
-msgid "Téléchargez Cesium"
-msgstr "Derēbagon Cesium"
-
-#: home.php:102
-#, php-format
-msgid ""
-"Rendez-vous sur <a href=\"%s\">la page Téléchargement</a> pour récupérer le "
-"fichier qui convient à votre système d'exploitation."
-msgstr ""
-
-#: home.php:115
-msgid "Créez un compte"
-msgstr ""
-
-#: home.php:118
-msgid ""
-"Sur l'accueil, cliquez sur \"Créer un compte\", puis \"Commencer\" et "
-"\"Simple portefeuille\"."
-msgstr ""
-
-#: home.php:122
-msgid "Choisissez un identifiant secret et un mot de passe tout aussi secret."
-msgstr ""
-
-#: home.php:123
-msgid ""
-"Mémorisez-les bien car il ne sera pas possible de les retrouver ensuite."
-msgstr ""
-
-#: home.php:132
-msgid "Recevez des paiements"
-msgstr ""
-
-#: home.php:135
-msgid ""
-"Cliquez sur votre clef publique, copiez-la et transmettez-la à la personne "
-"qui souhaite vous faire un virement en Ğ1."
-msgstr ""
-
-#: home.php:145
-msgid "/avis"
-msgstr ""
-
-#: home.php:152
-msgid "Ce qu'elles et ils en pensent"
-msgstr "Skoros vestri?"
-
-#: home.php:180
-msgid "Cesium partout"
-msgstr "Cesium tolviot"
-
-#~ msgid "telechargement"
-#~ msgstr "download"
diff --git a/i18n/en_US/LC_MESSAGES/menu.mo b/i18n/en_US/LC_MESSAGES/menu.mo
deleted file mode 100644
index 06fdd2dae0395b1d64945a505c35933c26ff62bb..0000000000000000000000000000000000000000
Binary files a/i18n/en_US/LC_MESSAGES/menu.mo and /dev/null differ
diff --git a/i18n/en_US/LC_MESSAGES/menu.po b/i18n/en_US/LC_MESSAGES/menu.po
deleted file mode 100644
index 2faca24ed5f0a116e94afd8f7052114bd73e606e..0000000000000000000000000000000000000000
--- a/i18n/en_US/LC_MESSAGES/menu.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2019-11-06 23:51+0100\n"
-"PO-Revision-Date: 2019-11-06 23:54+0100\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.4\n"
-"X-Poedit-Basepath: ../../..\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SearchPath-0: head.php\n"
-
-#: head.php:61
-msgid "/"
-msgstr "/"
-
-#: head.php:62
-msgid "Accueil"
-msgstr "Lenton"
-
-#: head.php:65
-msgid "/fonctionnalites"
-msgstr "/rhaenagon"
-
-#: head.php:66
-msgid "Fonctionnalités"
-msgstr "Rhaenagon"
-
-#: head.php:69
-msgid "/telechargement"
-msgstr "/derebagon"
-
-#: head.php:70
-msgid "Télécharger"
-msgstr "Derēbagon"
-
-#: head.php:73
-msgid "/tutoriel-cesium"
-msgstr "/teptys"
-
-#: head.php:74
-msgid "Tutoriel"
-msgstr "Teptys"
-
-#~ msgid "Cesium Ğ1"
-#~ msgstr "Cesium Ğ1"
-
-#~ msgid "/creer-compte-cesium-g1"
-#~ msgstr "/sign-up"
-
-#~ msgid "Créer un compte"
-#~ msgstr "Sign up"
-
-#~ msgid "Utiliser"
-#~ msgstr "Usage"
diff --git a/i18n/en_US/contents/home/Cesium-G1-mockup.png b/i18n/en_US/contents/home/Cesium-G1-mockup.png
deleted file mode 100644
index 5d999b7b8b2f4001d9d08a8c7611025540e1f6ac..0000000000000000000000000000000000000000
Binary files a/i18n/en_US/contents/home/Cesium-G1-mockup.png and /dev/null differ
diff --git a/i18n/en_US/contents/home/avis/01-valar-dohaeris.html b/i18n/en_US/contents/home/avis/01-valar-dohaeris.html
deleted file mode 100644
index 9462641531a3fbf5117b9f12c5dc22fbcb49f474..0000000000000000000000000000000000000000
--- a/i18n/en_US/contents/home/avis/01-valar-dohaeris.html
+++ /dev/null
@@ -1 +0,0 @@
-Valar dohaeris.
\ No newline at end of file
diff --git a/i18n/en_US/contents/home/avis/02-not-a-slave.html b/i18n/en_US/contents/home/avis/02-not-a-slave.html
deleted file mode 100644
index e8de9eb73f569f120df0fc31339abd5c96e6be5c..0000000000000000000000000000000000000000
--- a/i18n/en_US/contents/home/avis/02-not-a-slave.html
+++ /dev/null
@@ -1 +0,0 @@
-Issaros buzdari iksos daor.
\ No newline at end of file
diff --git a/i18n/fr_FR/contents/tuto/creer-un-compte/compte-membre/creer-fichier-de-revocation.html b/i18n/fr_FR/contents/tuto/creer-un-compte/compte-membre/creer-fichier-de-revocation.html
index 848ccb184511b0e92ef352e0833db61474b7f96f..8643c618eab6956e9ae8e539da21ca64739774f9 100644
--- a/i18n/fr_FR/contents/tuto/creer-un-compte/compte-membre/creer-fichier-de-revocation.html
+++ b/i18n/fr_FR/contents/tuto/creer-un-compte/compte-membre/creer-fichier-de-revocation.html
@@ -11,9 +11,10 @@
 		Vous enfreignez la licence Ğ1, par exemple en essayant de créer plusieurs comptes membre pour une même personne (vous ou quelqu'un d'autre)
 	</dt>
 	<dd>
-			La nouvelle se répandra à travers la communauté et vous ne serez plus jamais certifiés. Vous perdrez la création monétaire à vie, 
-			au sein de la Ğ1 et peut-être même au sein d'autres monnaies libres.
+			La nouvelle se répandra à travers la communauté et vous ne serez plus jamais certifié. Vous perdrez la création monétaire à vie, 
+			au sein de la Ğ1, et probablement même au sein d'autres monnaies libres.
 	</dd>
+	
 	<dt>
 		Un pirate devine vos identifiants
 	</dt>
@@ -23,6 +24,7 @@
 		vous vous rendez complice d'infraction à la licence Ğ1, et pouvez vous retrouver exclu de la Toile de Confiance. C'est d'autant plus 
 		risqué de perdre vos identifiants ici.
 	</dd>
+	
 	<dt>
 		Vous oubliez vos identifiants :
 	</dt>
diff --git a/i18n/fr_FR/contents/tuto/menu.html b/i18n/fr_FR/contents/tuto/menu.html
index 830bf1657d36b0b6cbdbbed7bab2167b7f9ebcb2..b6c72f48fc5dabd727d2eff71ec3cb83fd68b1d0 100644
--- a/i18n/fr_FR/contents/tuto/menu.html
+++ b/i18n/fr_FR/contents/tuto/menu.html
@@ -1,10 +1,10 @@
 <ul>
 
 	<li>
-
 		<a href="installer-cesium/">
 			Installer Cesium Ğ1
 		</a>
+		
 		<ul>
 		    <li><a href="installer-cesium/deb">Sur Gnu/Linux (.deb : Debian, Ubuntu, etc.)</a></li>
 		    <li><a href="installer-cesium/windows">Windows</a></li>
@@ -17,88 +17,88 @@
 	</li>
 
 	<li>
-
 		<a href="creer-un-compte/">
-			Créer un compte
-		</a>
-	</li>
-
-	<li>
-
-		<a href="creer-un-compte/simple-portefeuille-vs-compte-membre">
-			Compte membre ou simple portefeuille ?
-		</a>
-	</li>
-
-	<li>
-
-		<a href="creer-un-compte/simple-portefeuille/">
-			Simple portefeuille
+			Créer un compte sécurisé
 		</a>
+		
 		<ul>
-
 			<li>
-
-				<a href="creer-un-compte/simple-portefeuille/transformer-portefeuille-en-compte-membre">
-					Transformer un compte simple portefeuille en compte membre
+				<a href="creer-un-compte/simple-portefeuille-vs-compte-membre">
+					Compte membre ou simple portefeuille ?
 				</a>
 			</li>
-		</ul>
-	</li>
-
-	<li>
-
-		<a href="creer-un-compte/compte-membre/">
-			Compte membre
-		</a>
-		<ul>
-
+			
+			
 			<li>
-
-				<a href="creer-un-compte/compte-membre/pourquoi-securite-importante">
-					Pourquoi votre compte doit être ultra sécurisé
+				<a href="creer-un-compte/simple-portefeuille/">
+					Simple portefeuille
 				</a>
+				<ul>
+
+					<li>
+
+						<a href="creer-un-compte/simple-portefeuille/transformer-portefeuille-en-compte-membre">
+							Transformer un compte simple portefeuille en compte membre
+						</a>
+					</li>
+				</ul>
 			</li>
 
+			
 			<li>
-
-				<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/">
-					Comment créer un compte sécurisé
+				<a href="creer-un-compte/compte-membre/">
+					Compte membre
 				</a>
 				<ul>
 
 					<li>
 
-						<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/transformation-de-phrases">
-							La méthode par transformation de phrases
+						<a href="creer-un-compte/compte-membre/pourquoi-securite-importante">
+							Pourquoi votre compte doit être ultra sécurisé
 						</a>
 					</li>
 
 					<li>
 
-						<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/methode-diceware">
-							La méthode Diceware
+						<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/">
+							Comment créer un compte sécurisé
 						</a>
+						<ul>
+
+							<li>
+
+								<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/transformation-de-phrases">
+									La méthode par transformation de phrases
+								</a>
+							</li>
+
+							<li>
+
+								<a href="creer-un-compte/compte-membre/comment-creer-compte-securise/methode-diceware">
+									La méthode Diceware
+								</a>
+							</li>
+						</ul>
 					</li>
-				</ul>
-			</li>
 
-			<li>
+					<li>
 
-				<a href="creer-un-compte/compte-membre/faire-certifier-son-compte">
-					Comment devenir co-créateur de la Ğ1 ?
-				</a>
-			</li>
+						<a href="creer-un-compte/compte-membre/faire-certifier-son-compte">
+							Comment devenir co-créateur de la Ğ1 ?
+						</a>
+					</li>
 
-			<li>
+					<li>
 
-				<a href="creer-un-compte/compte-membre/creer-fichier-de-revocation">
-					Comment ne pas être exclu en cas de vol ?
-				</a>
+						<a href="creer-un-compte/compte-membre/creer-fichier-de-revocation">
+							Comment ne pas être exclu en cas de vol ?
+						</a>
+					</li>
+				</ul>
 			</li>
 		</ul>
 	</li>
-
+	
 	<li>
 
 		<a href="recevoir-un-paiement-en-G1">
@@ -149,7 +149,6 @@
 	</li>
 
 	<li>
-
 		<a href="deconnexion-trop-rapide-cesium">
 			Rester connecté plus longtemps
 		</a>
diff --git a/img/download/1200px-Octicons-mark-github.png b/img/download/1200px-Octicons-mark-github.png
deleted file mode 100644
index 97bb2437a5ffae816b594f034ba2d2ebd3cb3f10..0000000000000000000000000000000000000000
Binary files a/img/download/1200px-Octicons-mark-github.png and /dev/null differ
diff --git a/img/download/android.png b/img/download/android.png
deleted file mode 100644
index ab4692364a2d92561d7de08012b892bb2d433a0c..0000000000000000000000000000000000000000
Binary files a/img/download/android.png and /dev/null differ
diff --git a/img/download/android.svg b/img/download/android.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4f8773f671bf5f5b38b1591515f2d78dd1587a4f
--- /dev/null
+++ b/img/download/android.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="android.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="293.71324"
+     inkscape:cy="325.92194"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#78c156;fill-opacity:1;stroke-width:0.53490728"
+       d="m 51.342643,284.30248 c -1.643922,-0.67996 -3.446284,-2.86689 -4.02459,-4.88329 -0.287163,-1.00131 -0.522124,-5.49297 -0.522124,-9.98144 v -8.16086 h -3.130355 c -2.361887,0 -3.569406,-0.2959 -4.91897,-1.20535 -2.974804,-2.00474 -3.598114,-3.6858 -4.213902,-11.36497 -0.692532,-8.63616 -2.001419,-24.62228 -2.912477,-35.57133 -0.379432,-4.56009 -0.610835,-8.44792 -0.514218,-8.63961 0.171035,-0.33947 3.294234,-0.75571 9.271036,-1.23566 14.733983,-1.18318 30.733689,-2.51588 35.571327,-2.96296 3.23619,-0.29909 9.013187,-0.78883 12.837773,-1.08832 3.824584,-0.29949 7.708162,-0.66413 8.630182,-0.8103 1.234184,-0.19571 1.765961,-0.0323 2.015971,0.61921 0.186797,0.48672 0.696754,5.60743 1.133284,11.37936 0.43652,5.77194 1.16177,14.94753 1.61166,20.39022 1.59776,19.32926 1.60473,20.34025 0.15526,22.4661 -1.77671,2.60567 -4.209168,3.62861 -9.801953,4.12201 l -4.814165,0.42472 -0.267451,11.23303 c -0.297128,12.47978 -0.511084,13.28035 -3.990242,14.93134 -3.732578,1.7712 -8.188256,0.46746 -10.009744,-2.9289 -0.844077,-1.57391 -0.977408,-3.15091 -0.977408,-11.56134 0,-6.42141 -0.197521,-9.86096 -0.580106,-10.09735 -0.319064,-0.19712 -2.605785,-0.18985 -5.081616,0.0162 l -4.501509,0.37499 -0.01213,9.17912 c -0.01415,10.46465 -0.626039,12.82601 -3.835239,14.7826 -1.824358,1.11228 -5.164283,1.38093 -7.118617,0.57256 z M 18.178385,251.95562 c -3.197678,-1.43648 -3.680967,-2.61191 -4.085004,-9.93539 -0.685177,-12.41934 -0.536349,-30.34544 0.26792,-32.27032 1.229115,-2.94169 3.73519,-4.63827 6.851309,-4.63827 3.459206,0 5.494164,1.22227 6.85507,4.11745 1.010605,2.15001 1.075765,3.35943 1.067497,19.81381 -0.0081,17.1708 -0.03316,17.56717 -1.211604,19.66367 -1.985872,3.53264 -6.077348,4.89673 -9.745188,3.24905 z m 89.272295,-43.59433 c -0.61989,-0.26624 -1.88362,-1.40189 -2.80828,-2.52366 -1.31317,-1.59308 -1.68121,-2.54753 -1.68121,-4.35994 0,-1.2762 0.27567,-2.84614 0.61261,-3.48876 1.32084,-2.51919 17.65107,-23.8845 19.15589,-25.0622 1.33011,-1.04097 1.83756,-2.16475 3.02715,-6.7038 0.8841,-3.37357 1.73989,-5.57246 2.24398,-5.7659 1.58915,-0.6098 1.86783,0.59112 1.17326,5.05604 -0.37097,2.3847 -0.51732,4.49298 -0.32522,4.68507 0.19207,0.19207 1.61461,-0.90034 3.16113,-2.42763 1.68751,-1.66655 3.28637,-2.77693 3.99857,-2.77693 1.96103,0 1.40164,1.62093 -1.61275,4.67323 -2.42437,2.45487 -2.70961,2.95881 -2.12887,3.76116 2.24999,3.10856 2.74064,6.00867 1.4945,8.83356 -1.05043,2.38128 -17.37063,23.85242 -19.10489,25.13471 -1.58691,1.17336 -5.50048,1.69749 -7.20587,0.96505 z m -76.761182,-9.26737 c -0.270747,-7.94961 2.8458,-15.56377 8.827717,-21.56732 2.091001,-2.09856 4.353481,-4.18192 5.027737,-4.62971 l 1.225937,-0.81413 -2.964374,-4.42884 c -2.763294,-4.12836 -3.529821,-5.88134 -2.563208,-5.86158 0.827845,0.0162 1.603266,0.90022 4.153657,4.73164 1.44155,2.1656 2.910373,4.04851 3.264069,4.18422 0.353676,0.13566 1.326718,-0.10655 2.162326,-0.5382 5.430176,-2.80562 14.371433,-4.13728 20.508474,-3.05442 1.912303,0.33743 4.319396,0.74049 5.349085,0.89574 l 1.872172,0.28225 2.407073,-4.99317 c 1.323908,-2.74623 2.647796,-4.87281 2.941994,-4.72571 0.803523,0.40178 0.502574,1.5422 -1.580988,5.99137 -1.04275,2.22666 -1.892166,4.25677 -1.887576,4.51136 0.0041,0.25457 1.207194,1.05139 2.6725,1.77066 5.831948,2.86276 12.02592,9.19349 14.431618,14.75021 1.495111,3.45345 2.705295,9.37983 1.965328,9.62435 -0.342907,0.11322 -3.993393,0.46837 -8.112175,0.78901 -19.107661,1.48745 -27.888698,2.19856 -42.737756,3.46105 -8.795815,0.74781 -16.197611,1.35967 -16.448401,1.35967 -0.250791,0 -0.48264,-0.78229 -0.515209,-1.73845 z M 49.886335,186.627 c 2.312174,-1.6195 0.943364,-5.58619 -1.927647,-5.58619 -3.040288,0 -4.516915,3.9028 -2.113562,5.58619 0.653856,0.45797 1.563135,0.8327 2.020604,0.8327 0.45749,0 1.366768,-0.37473 2.020605,-0.8327 z m 31.279588,-2.51049 c 1.476668,-1.12798 1.660763,-3.20285 0.403875,-4.55195 -2.093932,-2.24757 -5.353979,-0.92698 -5.353979,2.1688 0,2.57168 2.885022,3.96063 4.950104,2.38315 z"
+       id="path74"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;stroke-width:0.26458335"
+       d=""
+       id="path72"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/img/download/apple.png b/img/download/apple.png
deleted file mode 100644
index 44cff60de33e4cbf1c7225261bd3999a6eb2623a..0000000000000000000000000000000000000000
Binary files a/img/download/apple.png and /dev/null differ
diff --git a/img/download/apple.svg b/img/download/apple.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d453449b333ec66cd58ecd9909b9e0589b5fb5bb
--- /dev/null
+++ b/img/download/apple.svg
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="apple.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="265.7468"
+     inkscape:cy="338.35577"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#000000;stroke-width:0.22294049"
+       d="m 52.004076,284.57753 c -5.5909,-1.2932 -10.53734,-5.66482 -17.553676,-15.51378 -6.525312,-9.1597 -11.268937,-20.72228 -13.215458,-32.21268 -1.911316,-11.28251 -0.858821,-21.60013 3.036285,-29.76478 5.206445,-10.91341 14.819223,-17.84911 26.334328,-19.00042 4.398499,-0.43978 7.747991,0.18812 15.116654,2.83379 5.386787,1.93408 7.635443,2.56726 9.117417,2.56726 0.967485,0 2.632895,-0.47296 7.812552,-2.21868 9.861783,-3.32376 11.758089,-3.71743 16.903105,-3.50915 9.285387,0.3759 17.495427,4.0525 22.730007,10.17894 0.78937,0.92386 1.52483,1.84593 1.63433,2.04904 0.16197,0.30039 -0.2057,0.65397 -1.97054,1.895 -5.84154,4.10775 -9.48732,9.24337 -11.21208,15.79389 -0.61074,2.3195 -0.84038,8.14357 -0.43799,11.1078 1.21562,8.95486 6.81607,16.62286 15.41595,21.1071 l 1.924,1.00322 -1.09342,2.89824 c -2.80475,7.43431 -6.69349,14.02413 -12.57683,21.3126 -6.27429,7.77279 -12.09001,10.59188 -19.084716,9.25106 -1.601412,-0.30698 -3.370582,-0.86355 -9.215908,-2.89926 -4.00467,-1.39468 -6.371341,-1.77314 -10.14379,-1.62212 -3.648289,0.14605 -6.145371,0.72156 -10.823566,2.4945 -5.912002,2.24054 -9.774003,2.92445 -12.696654,2.24843 z m 22.043126,-97.69947 c -0.08139,-0.32419 -0.08701,-1.65348 -0.01255,-2.95396 0.383573,-6.69755 3.900296,-13.82371 9.279837,-18.80435 4.308649,-3.98914 10.445292,-6.85656 16.343104,-7.63648 l 1.058957,-0.14004 v 2.54827 c 0,5.6148 -1.697434,10.77545 -5.11834,15.56112 -5.353115,7.48872 -12.672291,12.00789 -19.456605,12.01334 -1.919119,0.002 -1.948568,-0.007 -2.094433,-0.5879 z"
+       id="path21"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/img/download/github.svg b/img/download/github.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b9177165ea7a6b05379d284c5f7bfe054b0afc68
--- /dev/null
+++ b/img/download/github.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="github.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="-41.005027"
+     inkscape:cy="169.2545"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#000000;stroke-width:0.26458335"
+       d=""
+       id="path72"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#1b1e22;fill-opacity:1;stroke-width:0.10056645"
+       d="m 93.051884,281.19194 c -0.630731,-0.10768 -1.428182,-0.55389 -1.754512,-0.98172 -0.145834,-0.1912 -0.349911,-0.5707 -0.453502,-0.84333 -0.179362,-0.47205 -0.18818,-0.94996 -0.184877,-10.01963 0.0023,-5.88265 -0.03562,-9.83155 -0.0988,-10.32848 -0.423432,-3.33088 -1.535141,-6.00224 -3.284002,-7.89122 -0.312042,-0.33703 -0.549874,-0.62594 -0.52852,-0.64201 0.02137,-0.016 0.649766,-0.1091 1.396471,-0.20674 16.431798,-2.14881 24.505218,-10.08005 25.857758,-25.40234 0.18657,-2.11348 0.16232,-6.0379 -0.0466,-7.53895 -0.63481,-4.56164 -2.42391,-8.65594 -5.24178,-11.99565 -0.36148,-0.42842 -0.65723,-0.84134 -0.65723,-0.91759 0,-0.0762 0.0705,-0.33666 0.15678,-0.57869 0.60253,-1.69117 0.95028,-4.02313 0.94749,-6.35349 -0.004,-2.64555 -0.35945,-4.77765 -1.23816,-7.41002 l -0.5198,-1.55717 -0.40227,-0.0859 c -0.5765,-0.12312 -2.35426,-0.008 -3.46954,0.22532 -3.3242,0.69447 -7.268746,2.48986 -11.49994,5.23431 l -1.221721,0.79243 -1.810192,-0.44387 c -6.247421,-1.53192 -13.278455,-1.95383 -19.861877,-1.19184 -2.114709,0.24476 -4.707023,0.70629 -6.687387,1.19058 l -1.809916,0.44263 -1.307644,-0.83275 c -4.40682,-2.80641 -8.44578,-4.60714 -11.731701,-5.23047 -1.060428,-0.20116 -2.643081,-0.29459 -3.152418,-0.1861 l -0.402264,0.0857 -0.519801,1.55717 c -0.878709,2.63237 -1.234963,4.76447 -1.238152,7.41003 -0.0026,2.33035 0.344955,4.66231 0.947487,6.35348 0.08623,0.24203 0.156781,0.50244 0.156781,0.57869 0,0.0762 -0.295812,0.48917 -0.657361,0.9176 -0.966262,1.14499 -2.261208,3.12466 -2.943487,4.49991 -2.196174,4.42676 -2.876238,8.88683 -2.323122,15.23582 0.716572,8.22521 3.607389,14.5233 8.546004,18.61879 1.479237,1.2267 2.84379,2.10568 4.72445,3.04329 2.607596,1.30003 5.301133,2.20529 8.559339,2.87666 1.537323,0.31678 4.653159,0.80345 5.146145,0.8038 0.282041,2.1e-4 0.279026,0.006 -0.29019,0.62874 -1.534134,1.67643 -2.628173,4.00146 -3.110025,6.60932 -0.08657,0.46856 -0.190397,0.88432 -0.230721,0.92395 -0.132319,0.13004 -1.563618,0.66921 -2.485558,0.93631 -4.965229,1.43851 -9.425105,0.44006 -12.640765,-2.82993 -1.096547,-1.11507 -1.163581,-1.19947 -2.270265,-2.85831 -1.046162,-1.56812 -1.698742,-2.38636 -2.633259,-3.30167 -2.371595,-2.32287 -5.106073,-3.39186 -7.74271,-3.02685 -0.891593,0.12343 -1.548498,0.38552 -1.653761,0.65984 -0.03447,0.0899 -0.06269,0.31154 -0.06269,0.49266 0,0.63386 1.064361,1.71764 2.552903,2.59946 0.814274,0.48238 1.9579,1.52529 2.725423,2.48538 1.227672,1.5357 2.959147,4.40712 3.576887,5.9318 0.825837,2.03829 1.69783,3.42182 2.824313,4.48113 1.887651,1.7751 4.473126,2.88717 7.716088,3.31891 2.158571,0.28737 6.145427,0.14565 8.846566,-0.31445 0.516111,-0.0879 0.952432,-0.14467 0.969601,-0.12611 0.01719,0.0187 0.04744,2.72643 0.06727,6.01748 l 0.03607,5.9837 -0.281699,0.57364 c -0.523082,1.0652 -1.284394,1.50688 -2.704268,1.56889 -0.941693,0.0411 -1.014771,0.0283 -2.162178,-0.38233 -2.301725,-0.82354 -4.228778,-1.64195 -6.517565,-2.768 -6.378377,-3.1381 -11.563357,-6.89661 -16.595276,-12.02971 -9.197306,-9.38222 -15.023762,-21.42275 -16.685106,-34.4802 -0.351941,-2.7661 -0.408681,-3.83916 -0.406784,-7.69334 0.0019,-4.18024 0.09705,-5.59172 0.602377,-8.95041 1.302781,-8.65901 4.434249,-16.83105 9.257793,-24.15963 2.370071,-3.60092 4.531003,-6.2351 7.781187,-9.48529 5.047291,-5.0473 9.967661,-8.56039 16.33572,-11.66355 6.490506,-3.16284 13.054733,-5.00775 20.627893,-5.79758 2.149675,-0.22421 8.818244,-0.25575 10.861179,-0.0513 7.671295,0.7674 14.26178,2.54582 20.514627,5.53581 6.69364,3.20077 11.74118,6.76667 16.95278,11.97653 5.04555,5.04387 8.5563,9.96144 11.6626,16.33589 3.08867,6.33832 4.94839,12.87124 5.75095,20.20233 0.30135,2.7526 0.32556,9.12181 0.0448,11.78957 -0.38747,3.68216 -0.86406,6.35096 -1.72399,9.65438 -4.7673,18.31325 -18.2283,33.61451 -35.803787,40.69852 -2.891465,1.16544 -4.067808,1.46219 -5.098621,1.28623 z"
+       id="path943"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/img/download/tux.png b/img/download/tux.png
deleted file mode 100644
index a425585d7fd54fce6cb5714bfedc9e0297191366..0000000000000000000000000000000000000000
Binary files a/img/download/tux.png and /dev/null differ
diff --git a/img/download/tux.svg b/img/download/tux.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c8e7f02e095ba722b4bf4411454b79182ec606f3
--- /dev/null
+++ b/img/download/tux.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="tux.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="-175.63779"
+     inkscape:cy="379.98482"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#000000;stroke-width:0.26458335"
+       d=""
+       id="path72"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g1071"
+       transform="matrix(1.3737564,0,0,1.3737564,-3.7627692,-70.268314)">
+      <path
+         style="fill:#fefefe;stroke-width:0.26458335"
+         d="M 5.2554202,212.82353 V 159.90686 H 58.17209 111.08876 v 52.91667 52.91667 H 58.17209 5.2554202 Z"
+         id="path1083"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#9f9f9f;stroke-width:0.26458335"
+         d="m 38.989797,257.34966 c -0.291041,-0.0699 -2.672292,-0.81977 -5.291667,-1.66639 -2.619375,-0.84662 -6.429375,-1.85552 -8.466667,-2.24198 -6.547204,-1.24199 -9.736199,-1.97943 -10.377825,-2.39984 -1.218034,-0.79809 -1.300611,-1.48789 -0.484011,-4.04311 0.802974,-2.51259 0.807833,-3.24226 0.04031,-6.05312 -0.361543,-1.32406 -0.392296,-1.85411 -0.158046,-2.72405 0.442191,-1.64217 1.40723,-2.11068 4.364989,-2.11913 3.37729,-0.01 4.363117,-0.4937 5.410976,-2.65688 0.435357,-0.89874 1.097588,-2.0353 1.471626,-2.52569 0.54222,-0.71089 0.624204,-0.996 0.404463,-1.40659 -0.151583,-0.28324 -0.275606,-1.22468 -0.275606,-2.09209 0,-1.64558 0.540381,-2.94399 2.936882,-7.05663 0.508783,-0.87313 1.686072,-3.25438 2.616199,-5.29167 1.910188,-4.18396 2.625963,-5.35774 4.759619,-7.80521 2.200688,-2.52436 6.758432,-8.24061 7.121213,-8.93132 0.237927,-0.45299 0.247311,-1.76092 0.03892,-5.42395 -0.409003,-7.18936 -0.35724,-14.05707 0.119756,-15.88838 1.127937,-4.33044 3.862041,-7.04878 8.336579,-8.28849 2.392397,-0.66284 8.921082,-0.66159 11.377084,0.002 5.57424,1.5065 9.62898,5.03498 10.560014,9.18945 0.147505,0.6582 0.514863,3.57025 0.816348,6.47122 0.84242,8.10598 0.950005,8.52258 3.138665,12.15367 1.937705,3.21475 4.012245,6.07782 6.5434,9.03056 3.892688,4.54103 4.765136,5.77729 6.329975,8.96953 0.991954,2.02356 1.681638,3.93067 2.248574,6.21771 1.394413,5.62512 1.346444,7.93247 -0.207475,9.9796 -0.552755,0.72819 -0.584012,0.85989 -0.204092,0.85989 0.963906,0 1.90599,1.38586 2.237957,3.29215 0.174289,1.00085 0.480968,2.13701 0.681509,2.52482 0.530958,1.02675 2.197994,2.44622 4.164253,3.54581 2.955941,1.65306 3.882901,2.93184 3.043781,4.19905 -0.58273,0.88003 -4.170149,2.94113 -7.644002,4.39176 -3.621836,1.51242 -5.392579,2.55335 -8.425572,4.95296 -3.340333,2.64277 -3.915876,2.84288 -7.780184,2.70503 -3.664768,-0.13073 -4.893985,-0.57587 -6.1648,-2.23251 -1.63816,-2.13549 -0.558589,-1.94781 -11.204348,-1.94781 -10.694272,0 -12.089867,0.1623 -14.579628,1.69555 -0.777563,0.47884 -2.121122,1.30526 -2.985685,1.83649 -1.558698,0.95774 -2.842075,1.17879 -4.513483,0.77742 z m 10.715626,-7.91656 c 0,-0.99813 -0.156633,-1.33715 -1.081207,-2.34019 -1.051388,-1.14063 -1.163979,-1.72563 -0.332121,-1.72563 0.22414,0 1.13138,0.44649 2.016091,0.99219 l 1.608564,0.99219 4.252151,-0.009 c 6.552583,-0.0137 9.002982,-0.76508 12.032036,-3.68939 0.983112,-0.94912 1.962494,-1.72566 2.176399,-1.72566 1.223076,0 1.304163,1.40979 0.306324,5.32584 -0.608465,2.38796 -0.668242,2.92456 -0.393076,3.52848 1.046668,2.29719 1.870568,-2.31456 2.117501,-11.85262 l 0.183798,-7.09932 0.843108,-0.7533 c 0.537654,-0.48038 1.280536,-0.81889 2.050478,-0.93435 0.933583,-0.14 1.28238,-0.33385 1.538143,-0.85483 0.975243,-1.98655 4.454324,-2.74514 7.603987,-1.65799 0.798809,0.27572 1.490274,0.46341 1.536587,0.4171 0.137279,-0.13728 -1.333225,-1.08066 -2.261365,-1.45075 -0.472943,-0.18859 -0.859896,-0.45878 -0.859896,-0.60044 0,-0.14165 0.253452,-1.09199 0.563227,-2.11186 0.788315,-2.59536 0.607925,-6.25352 -0.42145,-8.54659 -1.32035,-2.94126 -4.100687,-6.84699 -5.733391,-8.0541 -1.199783,-0.88704 -1.211051,-0.46864 -0.02588,0.96111 5.052688,6.09546 7.047464,12.57096 5.107171,16.57907 -0.727922,1.50369 -1.493322,2.00021 -3.175141,2.05974 -2.20613,0.0781 -2.300608,-0.11365 -2.466168,-5.00464 -0.170897,-5.04861 -0.522256,-6.18281 -3.299682,-10.65152 -1.053508,-1.69504 -2.081221,-3.71692 -2.329292,-4.58258 -0.6732,-2.34917 -1.601848,-4.28059 -2.841754,-5.91034 -1.990178,-2.61592 -2.285691,-3.10745 -2.462763,-4.09637 -0.161248,-0.90054 -0.219171,-0.95202 -0.782498,-0.69535 -0.334597,0.15246 -0.662834,0.48551 -0.729416,0.74011 -0.06658,0.25461 -0.642218,0.68445 -1.279195,0.95522 -2.030651,0.86317 -4.799314,2.36543 -6.946776,3.76927 -1.88523,1.23243 -2.226635,1.36257 -3.571875,1.36168 -1.920341,-0.001 -2.768894,-0.52374 -4.710385,-2.90026 -0.836309,-1.02368 -1.590202,-1.86124 -1.675329,-1.86124 -0.08512,0 -0.310324,0.44649 -0.500446,0.99219 -0.190122,0.5457 -1.010248,2.18281 -1.822503,3.63802 -1.414119,2.53349 -1.483149,2.74695 -1.625746,5.02708 -0.158099,2.52805 -0.15799,2.52776 -1.568505,4.36563 -1.210459,1.5772 -3.344972,6.06265 -3.880935,8.15536 -0.23567,0.9202 -0.508665,3.12285 -0.606653,4.8948 -0.168984,3.05576 -0.208195,3.22599 -0.761172,3.30465 -0.916157,0.13033 -2.84798,-1.80974 -3.257111,-3.27101 -0.315195,-1.12577 -0.249782,-3.42375 0.146495,-5.1463 0.138133,-0.60045 0.110138,-0.58824 -0.303512,0.13229 -0.26689,0.4649 -0.506912,1.58955 -0.579336,2.71456 -0.210313,3.2669 0.720698,4.92815 4.444182,7.92999 2.030735,1.63715 3.467497,2.68234 9.347796,6.80012 3.533764,2.47457 3.720822,4.29828 0.635846,6.19921 -0.982551,0.60543 -0.989991,0.62251 -0.529166,1.21441 0.257069,0.33019 0.97078,1.24933 1.586023,2.04253 1.252152,1.61432 1.952607,3.3061 1.752471,4.23265 l -0.13317,0.61653 0.549267,-0.62462 c 0.378571,-0.43051 0.549267,-0.98736 0.549267,-1.79185 z M 35.878771,212.36051 c 0.892125,-0.77485 1.208868,-1.65603 0.663771,-1.84664 -0.181825,-0.0636 -0.407792,0.10267 -0.502151,0.36943 -0.09436,0.26676 -0.457665,0.87197 -0.807352,1.34492 -0.777071,1.05096 -0.481671,1.11148 0.645732,0.13229 z M 73.7732,197.75967 c 0.456943,-0.85381 0.325347,-1.07248 -0.98288,-1.63321 -0.691224,-0.29627 -1.46586,-0.72787 -1.721413,-0.95911 -0.679191,-0.61457 -0.805366,-0.27847 -0.333452,0.88826 0.397214,0.98204 1.755103,2.21584 2.438704,2.21584 0.178832,0 0.4484,-0.2303 0.599041,-0.51178 z m -26.071207,-8.463 c 0.438959,-0.48505 0.433797,-0.52204 -0.113684,-0.81505 -0.674354,-0.3609 -1.32247,-1.77354 -1.32247,-2.88247 0,-1.63622 2.498305,-2.52147 3.624983,-1.28448 0.799396,0.87767 1.137518,1.64771 1.137518,2.59061 0,0.65676 0.09108,0.8045 0.418515,0.67885 0.230182,-0.0883 0.505082,-0.1606 0.610886,-0.1606 0.105807,0 0.104412,-0.82321 -0.0031,-1.82936 -0.314005,-2.93875 -1.288256,-4.25988 -3.135701,-4.25216 -1.320131,0.006 -2.150388,0.50526 -2.859085,1.72091 -0.508037,0.87146 -0.594897,1.3302 -0.5031,2.65701 0.1104,1.5956 0.992148,4.08485 1.446945,4.08485 0.131152,0 0.445379,-0.22865 0.698289,-0.50811 z m 18.968067,-0.74866 c 0.704906,-1.81369 -0.645252,-6.14784 -2.201534,-7.06716 -0.480653,-0.28393 -1.558761,-0.53655 -2.61124,-0.61185 -1.520232,-0.10877 -1.934432,-0.0406 -2.726166,0.44872 -1.350769,0.83483 -2.312397,2.98042 -2.251117,5.02273 0.04364,1.45445 0.09414,1.57118 0.735618,1.7007 0.37882,0.0765 0.926886,0.22923 1.217928,0.33943 0.471162,0.17839 0.489167,0.15119 0.164269,-0.24819 -0.247933,-0.30477 -0.319879,-0.84796 -0.224452,-1.6946 0.306877,-2.72261 3.459407,-3.68483 5.473576,-1.67066 0.602348,0.60235 0.738138,2.32046 0.254776,3.22363 -0.443683,0.82903 -0.108548,1.28485 0.94466,1.28485 0.781484,0 0.988804,-0.12327 1.223682,-0.7276 z m -16.842066,-1.98438 c -0.245832,-0.8237 -0.927672,-1.86278 -1.105593,-1.68486 -0.08085,0.0808 0.04773,0.44418 0.285723,0.8074 0.237993,0.36322 0.432716,0.84319 0.432716,1.06659 0,0.2234 0.127084,0.40619 0.282413,0.40619 0.169127,0 0.211143,-0.2388 0.104741,-0.59532 z m 13.900347,-0.21046 c 0,-0.66931 -1.131465,-1.84109 -1.773913,-1.83712 -0.358232,0.002 -0.263599,0.16958 0.38485,0.68063 0.472943,0.37274 0.859896,0.9072 0.859896,1.18769 0,0.2805 0.119062,0.50999 0.264583,0.50999 0.145521,0 0.264584,-0.24353 0.264584,-0.54119 z m 2.260467,-11.36506 c 0.899716,0 0.741482,-0.48218 -0.415456,-1.266 -1.12254,-0.76051 -1.640203,-0.66649 -1.880558,0.34156 -0.103884,0.43568 -0.274201,1.07101 -0.378481,1.41183 l -0.189603,0.61969 1.085024,-0.55354 c 0.596765,-0.30445 1.397347,-0.55354 1.779074,-0.55354 z"
+         id="path1081"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#fbc40f;stroke-width:0.26458335"
+         d="m 34.888755,255.93652 c -4.654395,-1.4882 -8.055206,-2.37967 -11.509375,-3.01701 -6.63224,-1.22374 -7.961412,-1.57717 -8.797397,-2.33927 -0.776616,-0.70798 -0.754066,-1.5195 0.115564,-4.15903 l 0.710877,-2.15768 -0.629428,-2.47372 c -0.494496,-1.94343 -0.575989,-2.68466 -0.380147,-3.45767 0.397914,-1.57062 1.126925,-1.9088 4.684752,-2.17323 3.644461,-0.27087 3.9004,-0.42571 5.390346,-3.26108 0.507942,-0.96662 1.211137,-2.02768 1.562655,-2.35792 0.587028,-0.55148 0.60278,-0.627 0.193249,-0.92645 -0.343447,-0.25114 -0.445876,-0.74495 -0.445876,-2.1496 0,-1.97983 -0.265656,-1.35896 3.547234,-8.29033 0.760474,-1.38245 1.617389,-3.10885 1.904256,-3.83646 1.200526,-3.04498 2.799012,-5.634 5.250702,-8.50438 1.39882,-1.6377 3.546412,-4.25969 4.772427,-5.82664 l 2.22912,-2.849 -0.04187,-1.72874 c -0.02303,-0.95081 -0.171091,-4.05046 -0.329018,-6.88811 -0.420423,-7.55416 -0.375944,-9.90028 0.23282,-12.28052 1.249868,-4.88695 3.875588,-7.38278 8.960116,-8.51688 2.997919,-0.66869 8.983745,-0.40974 11.815459,0.51113 5.240623,1.70425 8.391597,4.85259 9.348745,9.34095 0.159256,0.74679 0.423643,3.00898 0.587529,5.02708 0.461859,5.68737 1.12472,9.15997 2.108724,11.04725 1.506217,2.88885 5.203965,8.1673 7.700815,10.99273 5.519158,6.24546 7.431127,9.86401 8.954551,16.94713 0.984311,4.57653 0.739589,6.64373 -1.015463,8.57778 -0.383569,0.42269 -0.553813,0.68679 -0.378317,0.58689 0.175495,-0.0999 0.734028,-0.008 1.241184,0.20365 0.958128,0.40033 1.373381,1.29738 1.666624,3.60031 0.21659,1.70097 1.385257,3.19217 3.662241,4.67296 3.917836,2.54789 4.215866,2.80809 4.308126,3.76132 0.0537,0.55473 -0.0818,1.05963 -0.3696,1.3777 -0.76149,0.84142 -4.453877,2.87517 -7.621791,4.19805 -3.489487,1.45715 -5.352648,2.554 -8.100659,4.76887 -3.094818,2.4944 -3.849558,2.78716 -7.14375,2.77108 -3.975135,-0.0194 -4.813351,-0.3209 -6.822663,-2.45401 l -1.66329,-1.76576 h -9.846086 c -11.548383,0 -11.799544,0.0433 -16.044935,2.76581 -2.364316,1.51621 -2.578621,1.59914 -4.101041,1.58694 -1.171636,-0.009 -2.716218,-0.36774 -5.707405,-1.32414 z m 14.404791,-4.54269 c 0.246399,-0.35179 0.411877,-1.14873 0.411877,-1.98362 0,-1.23465 -0.111538,-1.51903 -0.967333,-2.46629 -1.163224,-1.28755 -0.926171,-1.83659 0.448218,-1.03813 2.888747,1.67823 3.021814,1.7086 7.26599,1.65829 6.120866,-0.0726 9.066417,-1.02188 11.745411,-3.78539 1.4898,-1.53681 2.339687,-2.02708 2.768934,-1.59733 0.467849,0.4684 0.308739,2.58895 -0.355405,4.73662 -0.942094,3.0465 -0.805553,4.5137 0.421635,4.53067 0.665454,0.009 1.208561,-4.34244 1.495208,-11.98038 l 0.285933,-7.6188 0.890328,-0.78172 c 0.664943,-0.58383 1.155015,-0.78172 1.935906,-0.78172 0.946661,0 1.082514,-0.0884 1.436042,-0.93452 0.544304,-1.3027 2.066108,-1.96244 4.544306,-1.97009 1.036731,-0.003 2.391154,0.17279 3.009829,0.39107 0.618675,0.21828 1.318255,0.39628 1.554621,0.39556 0.61451,-0.002 -0.930567,-1.22511 -2.017642,-1.59735 -0.925425,-0.3169 -1.056211,-0.76095 -0.587335,-1.99419 0.568497,-1.49526 0.813678,-4.49733 0.519835,-6.36504 -0.467024,-2.96848 -2.539074,-6.78711 -5.26908,-9.71052 -1.067273,-1.14289 -2.667066,-2.27945 -2.667066,-1.8948 0,0.0804 0.692391,1.06574 1.538647,2.18961 3.794276,5.03898 5.004388,7.70085 5.265336,11.58209 0.171043,2.54403 -0.354703,4.71161 -1.37537,5.67048 -0.505868,0.47523 -1.053539,0.66008 -2.201776,0.74314 -2.195766,0.15883 -2.225688,0.0953 -2.444006,-5.18757 -0.212069,-5.1317 -0.460336,-5.99674 -2.7826,-9.69545 -1.872461,-2.98229 -2.455471,-4.13179 -2.945402,-5.80732 -0.58641,-2.00547 -1.809502,-4.29 -3.438457,-6.42242 -1.035171,-1.35512 -1.493385,-2.21284 -1.597726,-2.99077 -0.11689,-0.87147 -0.231992,-1.05526 -0.572577,-0.91423 -0.234452,0.0971 -0.60956,0.22987 -0.83357,0.29508 -0.224012,0.0652 -0.521668,0.37008 -0.661458,0.6775 -0.15462,0.34002 -0.927748,0.83057 -1.973959,1.25248 -1.571307,0.63367 -2.591871,1.20903 -6.867461,3.87165 -1.090938,0.67938 -1.737167,0.8987 -2.645834,0.89795 -1.56903,-0.001 -2.437307,-0.55687 -4.503383,-2.88158 -0.925875,-1.04178 -1.8024,-1.85447 -1.947834,-1.80599 -0.145433,0.0485 -0.41747,0.5302 -0.604525,1.07049 -0.187053,0.54029 -1.009393,2.16443 -1.827419,3.60918 -1.425895,2.51834 -1.494854,2.72848 -1.669674,5.08817 -0.175036,2.36256 -0.226907,2.52016 -1.292374,3.92665 -1.63354,2.15639 -3.720481,6.70545 -4.181419,9.11455 -0.214085,1.11893 -0.389245,3.07274 -0.389245,4.34181 0,1.57374 -0.119253,2.47049 -0.375049,2.82032 -0.365371,0.49967 -0.403927,0.49244 -1.493981,-0.28016 -1.609921,-1.14107 -2.09972,-2.22044 -2.09972,-4.62715 0,-1.09463 0.110752,-2.37641 0.246113,-2.8484 0.320579,-1.11779 -0.09234,-1.11676 -0.698643,0.002 -0.335077,0.61814 -0.465722,1.45497 -0.464701,2.97656 0.0012,1.77325 0.114796,2.33302 0.70023,3.4502 1.029095,1.96383 3.937707,4.44966 10.668043,9.11742 3.659333,2.53789 4.73772,3.48004 5.165575,4.51297 0.443383,1.07042 -0.109001,2.04059 -1.792084,3.14749 l -1.38901,0.9135 0.747551,0.80629 c 2.334427,2.51786 3.362468,4.46766 3.098234,5.87615 -0.19218,1.02441 0.163084,1.16075 0.769316,0.29523 z M 36.302258,212.07871 c 0.754279,-0.79271 0.861806,-1.628 0.236378,-1.83625 -0.188238,-0.0627 -0.499692,0.28401 -0.712316,0.79289 -0.207804,0.49735 -0.563298,1.05819 -0.789985,1.24633 -0.22669,0.18813 -0.412163,0.51026 -0.412163,0.71585 0,0.4993 0.686253,0.12355 1.678086,-0.91882 z m 37.632409,-14.45368 c 0.214273,-0.85374 0.03679,-1.09062 -1.287597,-1.71854 -0.612437,-0.29037 -1.381411,-0.725 -1.708833,-0.96585 -0.56904,-0.41858 -0.595313,-0.41255 -0.595313,0.13667 0,2.05851 3.15317,4.29513 3.591743,2.54772 z m -25.988403,-8.40026 c 0.225864,-0.35867 0.140687,-0.55882 -0.428284,-1.00637 -0.907171,-0.71359 -1.380151,-2.34111 -0.952878,-3.27887 0.43924,-0.96402 1.887723,-1.40832 2.74982,-0.84345 0.935844,0.61319 1.496965,1.59019 1.527267,2.65922 0.02724,0.96089 0.430218,1.18897 1.218703,0.68976 0.515443,-0.32634 0.204298,-3.13228 -0.500533,-4.51386 -0.605412,-1.18671 -1.279446,-1.63665 -2.503742,-1.67136 -1.238557,-0.0351 -2.313162,0.50024 -2.989215,1.48916 -0.467884,0.68441 -0.595313,1.24115 -0.595313,2.6009 0,3.29204 1.430454,5.53231 2.474175,3.87487 z m 18.554399,-0.20733 c 0.393886,-0.43524 0.451795,-0.85456 0.345898,-2.50467 -0.141557,-2.20577 -0.934773,-4.10992 -2.062948,-4.95223 -0.888154,-0.6631 -3.536723,-1.08084 -4.761609,-0.75101 -1.93621,0.52137 -3.172831,2.61215 -3.172831,5.36437 v 1.67779 l 1.318443,0.42162 1.31844,0.42162 -0.300776,-0.562 c -0.5941,-1.11009 -0.179593,-3.04547 0.815965,-3.80984 0.660572,-0.50717 2.688643,-0.40571 3.653848,0.1828 1.087721,0.66321 1.296377,1.52164 0.755619,3.10868 -0.401897,1.1795 -0.400357,1.28401 0.02349,1.59395 0.663646,0.48527 1.526574,0.40547 2.066448,-0.19108 z m -16.635781,-2.71485 c -0.193664,-0.96831 -0.770072,-1.66931 -1.169591,-1.42239 -0.296513,0.18325 0.72176,2.27291 1.109351,2.27656 0.12733,0.001 0.15444,-0.38317 0.06024,-0.85417 z m 13.913684,-0.22657 c -0.104584,-0.81161 -0.97859,-1.56291 -1.818169,-1.56291 -0.633418,0 -0.625488,0.024 0.293897,0.89114 0.519684,0.49012 0.94488,1.03583 0.94488,1.21267 0,0.17685 0.148828,0.27078 0.330729,0.20875 0.181901,-0.062 0.293799,-0.39938 0.248663,-0.74965 z m 0.435076,-10.40377 c 0.397986,-0.2058 1.165979,-0.45718 1.706655,-0.55861 0.540674,-0.10143 0.983044,-0.2761 0.983044,-0.38816 0,-0.41921 -1.884336,-1.62159 -2.415003,-1.54098 -0.387919,0.0589 -0.700633,0.47684 -1.052595,1.40674 -0.275397,0.7276 -0.500819,1.35268 -0.500938,1.38906 -5.29e-4,0.17893 0.631608,0.0266 1.278837,-0.30805 z"
+         id="path1079"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#f4bb0d;stroke-width:0.26458335"
+         d="m 34.888755,255.93652 c -4.654395,-1.4882 -8.055206,-2.37967 -11.509375,-3.01701 -6.63224,-1.22374 -7.961412,-1.57717 -8.797397,-2.33927 -0.776616,-0.70798 -0.754066,-1.5195 0.115564,-4.15903 l 0.710877,-2.15768 -0.629428,-2.47372 c -0.494496,-1.94343 -0.575989,-2.68466 -0.380147,-3.45767 0.397914,-1.57062 1.126925,-1.9088 4.684752,-2.17323 3.607759,-0.26815 3.954432,-0.46805 5.252149,-3.02861 0.424072,-0.83674 0.947919,-1.52135 1.164105,-1.52135 0.629058,0 0.481002,1.72226 -0.297111,3.45612 -0.986191,2.19753 -1.690899,2.49359 -5.780709,2.4286 -4.124753,-0.0655 -4.249011,0.10088 -2.626913,3.51827 0.831956,1.75274 0.941884,2.21011 0.84502,3.51582 -0.09068,1.22241 -0.301283,1.76428 -1.134764,2.91967 -1.307911,1.81307 -1.140133,2.09879 1.597972,2.72131 7.301667,1.66008 20.864392,4.275 22.21728,4.28353 2.148213,0.0136 3.530434,-0.66846 4.202372,-2.07353 0.278366,-0.58208 0.605788,-1.26508 0.727605,-1.51776 0.623683,-1.29373 -0.163309,-3.98006 -1.880746,-6.41974 -0.953447,-1.35441 -5.294003,-7.0377 -5.557002,-7.27604 -0.08029,-0.0728 -0.610761,-0.72761 -1.178832,-1.45521 -0.568069,-0.7276 -2.007241,-2.29461 -3.198157,-3.48223 -2.514083,-2.50712 -3.654174,-3.03309 -5.42471,-2.50263 -1.453416,0.43546 -2.009406,0.0922 -2.229641,-1.3764 -0.236334,-1.57599 0.127945,-2.9959 1.315713,-5.12848 2.753327,-4.94345 3.660685,-6.67193 4.138233,-7.88318 1.200526,-3.04498 2.799012,-5.634 5.250702,-8.50438 1.39882,-1.6377 3.546412,-4.25969 4.772427,-5.82664 l 2.22912,-2.849 -0.04187,-1.72874 c -0.02303,-0.95081 -0.171091,-4.05046 -0.329018,-6.88811 -0.420423,-7.55416 -0.375944,-9.90028 0.23282,-12.28052 1.249868,-4.88695 3.875588,-7.38278 8.960116,-8.51688 2.997919,-0.66869 8.983745,-0.40974 11.815459,0.51113 5.240623,1.70425 8.391597,4.85259 9.348745,9.34095 0.159256,0.74679 0.423643,3.00898 0.587529,5.02708 0.461859,5.68737 1.12472,9.15997 2.108724,11.04725 1.506217,2.88885 5.203965,8.1673 7.700815,10.99273 5.519158,6.24546 7.431127,9.86401 8.954551,16.94713 0.981625,4.56405 0.733425,6.6854 -0.998818,8.53686 -0.374415,0.40018 -0.588537,0.7276 -0.475827,0.7276 0.280442,0 -2.632827,2.36938 -3.964324,3.22421 -2.260391,1.45118 -4.810477,1.9031 -6.576066,1.1654 -1.049753,-0.43862 -3.005934,-2.43716 -3.584183,-3.66181 -0.319934,-0.67757 -0.567973,-0.86009 -1.168826,-0.86009 -1.928895,0 -2.416226,2.74647 -1.474976,8.31263 0.536329,3.17163 0.566976,3.79264 0.295987,5.99773 -0.166259,1.35287 -0.302289,3.19953 -0.302289,4.10369 0,1.57072 0.04662,1.68827 1.046819,2.63974 0.767884,0.73047 1.445331,1.085 2.54241,1.33051 2.194613,0.49114 3.8333,0.0667 6.668699,-1.72733 4.525669,-2.86347 5.704687,-3.42574 9.805819,-4.67642 4.124796,-1.2579 5.022191,-1.70086 5.94221,-2.93313 0.94024,-1.25935 0.12763,-1.89352 -3.814404,-2.97681 -1.740988,-0.47843 -3.200464,-1.87868 -3.651637,-3.50345 -0.358566,-1.29127 -0.363651,-3.40978 -0.0098,-4.07101 0.157589,-0.29446 0.169609,-0.51178 0.02831,-0.51178 -0.740191,0 -0.786927,3.85535 -0.06598,5.44268 0.628211,1.38314 2.135005,2.61911 3.694502,3.03047 3.646799,0.96194 4.159979,1.34142 3.471999,2.56741 -0.438379,0.78121 -2.645279,1.82965 -5.418348,2.57413 -2.90629,0.78024 -4.221986,1.26674 -5.494079,2.03152 -0.693412,0.41688 -1.314341,0.75796 -1.379847,0.75796 -0.06551,0 -1.105908,0.6366 -2.312003,1.41466 -1.206098,0.77807 -2.551266,1.59998 -2.989266,1.82648 -2.793714,1.44468 -6.930477,0.28135 -7.669398,-2.15679 -0.105921,-0.34949 -0.04302,-2.31402 0.13978,-4.36562 0.295904,-3.32101 0.281733,-4.03883 -0.129191,-6.54388 -0.617141,-3.76216 -0.499438,-7.51579 0.252915,-8.0657 0.738653,-0.53989 1.571342,-0.36039 1.673786,0.36082 0.137681,0.96925 2.56803,3.41533 3.898035,3.92326 1.390973,0.53122 3.845775,0.38365 5.218507,-0.31372 1.013688,-0.51497 4.018876,-2.58573 4.954302,-3.41383 0.619726,-0.54862 1.987778,-1.09096 1.739789,-0.6897 -0.06216,0.10058 0.235329,0.58186 0.661093,1.06951 0.425765,0.48765 0.778616,0.9598 0.784112,1.04922 0.169701,2.76104 1.126352,4.26373 3.836429,6.02617 3.917834,2.54789 4.215864,2.80809 4.308124,3.76132 0.0537,0.55473 -0.0818,1.05963 -0.3696,1.3777 -0.76148,0.84142 -4.453874,2.87517 -7.621789,4.19805 -3.489486,1.45715 -5.352648,2.554 -8.100658,4.76887 -3.094818,2.4944 -3.849558,2.78716 -7.143751,2.77108 -3.975134,-0.0194 -4.81335,-0.3209 -6.822662,-2.45401 l -1.66329,-1.76576 h -9.846086 c -11.548383,0 -11.799544,0.0433 -16.044935,2.76581 -2.364317,1.51621 -2.578621,1.59914 -4.101042,1.58694 -1.171636,-0.009 -2.716218,-0.36774 -5.707404,-1.32414 z m 14.404791,-4.54269 c 0.246399,-0.35179 0.411877,-1.14873 0.411877,-1.98362 0,-1.23465 -0.111538,-1.51903 -0.967333,-2.46629 -1.163224,-1.28755 -0.926171,-1.83659 0.448218,-1.03813 2.888747,1.67823 3.021814,1.7086 7.26599,1.65829 6.120866,-0.0726 9.066417,-1.02188 11.745411,-3.78539 1.4898,-1.53681 2.339687,-2.02708 2.768934,-1.59733 0.467849,0.4684 0.308739,2.58895 -0.355405,4.73662 -0.942094,3.0465 -0.805553,4.5137 0.421635,4.53067 0.665454,0.009 1.208561,-4.34244 1.495208,-11.98038 l 0.285933,-7.6188 0.890328,-0.78172 c 0.664943,-0.58383 1.155015,-0.78172 1.935906,-0.78172 0.946661,0 1.082514,-0.0884 1.436042,-0.93452 0.544304,-1.3027 2.066108,-1.96244 4.544306,-1.97009 1.036731,-0.003 2.391154,0.17279 3.009829,0.39107 0.618675,0.21828 1.318255,0.39628 1.554621,0.39556 0.61451,-0.002 -0.930567,-1.22511 -2.017642,-1.59735 -0.925425,-0.3169 -1.056211,-0.76095 -0.587335,-1.99419 0.568497,-1.49526 0.813678,-4.49733 0.519835,-6.36504 -0.467024,-2.96848 -2.539074,-6.78711 -5.26908,-9.71052 -1.067273,-1.14289 -2.667066,-2.27945 -2.667066,-1.8948 0,0.0804 0.692391,1.06574 1.538647,2.18961 3.794276,5.03898 5.004388,7.70085 5.265336,11.58209 0.171043,2.54403 -0.354703,4.71161 -1.37537,5.67048 -0.505868,0.47523 -1.053539,0.66008 -2.201776,0.74314 -2.195766,0.15883 -2.225688,0.0953 -2.444006,-5.18757 -0.212069,-5.1317 -0.460336,-5.99674 -2.7826,-9.69545 -1.872461,-2.98229 -2.455471,-4.13179 -2.945402,-5.80732 -0.583938,-1.99702 -1.807695,-4.28762 -3.414459,-6.39109 -1.751084,-2.2924 -2.108877,-3.68357 -1.49887,-5.82789 0.553106,-1.9443 0.1787,-2.5061 -2.093378,-3.14111 -3.352726,-0.93704 -4.433171,-1.45473 -4.893355,-2.34463 -0.716431,-1.38543 -0.406025,-3.23741 0.68272,-4.07332 0.660572,-0.50717 2.688643,-0.40571 3.653848,0.1828 1.087721,0.66321 1.296377,1.52164 0.755619,3.10868 -0.401897,1.1795 -0.400357,1.28401 0.02349,1.59395 0.663646,0.48527 1.526574,0.40547 2.066448,-0.19108 0.393886,-0.43524 0.451795,-0.85456 0.345898,-2.50467 -0.141557,-2.20577 -0.934773,-4.10992 -2.062948,-4.95223 -0.888154,-0.6631 -3.536723,-1.08084 -4.761609,-0.75101 -1.950858,0.52531 -3.172823,2.61044 -3.172823,5.41404 v 1.72745 l -2.315104,-0.0653 -2.315104,-0.0653 -0.02363,-1.85208 c -0.02619,-2.05312 -0.736151,-3.85184 -1.730331,-4.38391 -1.414041,-0.75677 -3.453297,-0.21673 -4.397605,1.16459 -1.376932,2.01415 -0.266388,7.59535 1.38521,6.96158 0.743289,-0.28523 0.760855,-0.94511 0.04025,-1.51194 -0.88518,-0.69628 -1.350569,-2.33114 -0.927759,-3.25911 0.43924,-0.96402 1.887723,-1.40832 2.74982,-0.84345 1.162881,0.76195 1.610048,1.8159 1.489982,3.5118 -0.02867,0.40506 -0.616296,0.96644 -1.938673,1.85209 -3.580641,2.3981 -3.897157,3.11147 -2.005079,4.51908 0.618464,0.4601 1.461098,1.1081 1.87252,1.43999 0.663575,0.53531 1.022085,0.60059 3.175,0.57811 3.366395,-0.0351 9.694321,-1.69239 11.574709,-3.03134 0.935321,-0.66601 1.567876,-0.51811 1.567876,0.36659 0,0.73328 0.06998,0.70287 -6.83015,2.96765 -4.428797,1.45363 -4.655524,1.49942 -6.815567,1.37662 -2.504067,-0.14236 -2.59184,0.0556 -0.490013,1.10533 0.992886,0.49588 1.503431,0.58752 2.627048,0.47155 1.633363,-0.16858 5.681861,-1.49562 7.91292,-2.59374 1.842284,-0.90677 2.802012,-1.00023 2.802012,-0.27284 0,0.64918 -0.371303,0.93375 -2.049193,1.57054 -1.270717,0.48226 -3.06316,1.493 -6.934935,3.91053 -1.092579,0.68221 -1.735802,0.90108 -2.645834,0.90033 -1.56903,-0.001 -2.437307,-0.55687 -4.503383,-2.88158 -0.925875,-1.04178 -1.8024,-1.85447 -1.947834,-1.80599 -0.145433,0.0485 -0.41747,0.5302 -0.604525,1.07049 -0.187053,0.54029 -1.009393,2.16443 -1.827419,3.60918 -1.425895,2.51834 -1.494854,2.72848 -1.669674,5.08817 -0.175036,2.36256 -0.226907,2.52016 -1.292374,3.92665 -1.63354,2.15639 -3.720481,6.70545 -4.181419,9.11455 -0.214085,1.11893 -0.389245,3.07274 -0.389245,4.34181 0,1.57374 -0.119253,2.47049 -0.375049,2.82032 -0.365371,0.49967 -0.403927,0.49244 -1.493981,-0.28016 -1.609921,-1.14107 -2.09972,-2.22044 -2.09972,-4.62715 0,-1.09463 0.110752,-2.37641 0.246113,-2.8484 0.320579,-1.11779 -0.09234,-1.11676 -0.698643,0.002 -0.335077,0.61814 -0.465722,1.45497 -0.464701,2.97656 0.0012,1.77325 0.114796,2.33302 0.70023,3.4502 1.029095,1.96383 3.937707,4.44966 10.668043,9.11742 3.659333,2.53789 4.73772,3.48004 5.165575,4.51297 0.443383,1.07042 -0.109001,2.04059 -1.792084,3.14749 l -1.38901,0.9135 0.747551,0.80629 c 2.334427,2.51786 3.362468,4.46766 3.098234,5.87615 -0.19218,1.02441 0.163084,1.16075 0.769316,0.29523 z m 1.586926,-52.98168 c -0.466016,-0.35247 -0.323316,-0.38924 1.540521,-0.39687 1.12976,-0.005 2.260854,-0.11889 2.513542,-0.25392 0.447137,-0.23893 2.888768,-1.063 7.470889,-2.52148 1.236927,-0.39371 2.517516,-0.96561 2.845755,-1.2709 l 0.596794,-0.55506 -0.57677,-0.61395 c -0.694801,-0.73958 -1.011262,-0.76269 -1.83791,-0.13422 -0.896178,0.68133 -3.43693,1.54242 -7.548351,2.55821 -1.924593,0.4755 -5.972144,0.53096 -6.792225,0.0931 -0.317855,-0.16972 -0.875575,-0.61771 -1.239377,-0.99554 -0.363803,-0.37783 -0.956268,-0.87667 -1.316588,-1.10855 -0.569913,-0.36674 -0.617178,-0.50488 -0.363371,-1.06193 0.160467,-0.35218 1.012891,-1.13522 1.894274,-1.74007 1.354685,-0.92965 1.651169,-1.0411 1.91712,-0.72065 0.408131,0.49177 1.165752,0.48368 1.667225,-0.0178 0.218281,-0.21828 0.495802,-0.39688 0.616712,-0.39688 0.120912,0 0.368551,-0.23812 0.550309,-0.52917 0.39261,-0.62867 1.913486,-0.75121 1.913486,-0.15417 0,0.20624 0.534463,0.57911 1.187696,0.82858 1.247381,0.47639 1.987304,0.26248 1.987304,-0.5745 0,-0.20046 0.115326,-0.36448 0.256281,-0.36448 0.140951,0 0.187745,0.1786 0.103983,0.39688 -0.09782,0.2549 0.0054,0.39687 0.288502,0.39687 0.284396,0 0.368851,-0.11735 0.238022,-0.33073 -0.111525,-0.1819 0.08981,-0.12324 0.447408,0.13035 0.90411,0.64115 2.267685,1.23017 3.825179,1.65233 2.789923,0.75622 3.043063,0.90743 3.038692,1.81508 -0.0055,1.13883 -0.667628,3.29795 -0.860835,2.80701 -0.11679,-0.29677 -0.156514,-0.27893 -0.172593,0.0775 -0.0227,0.50333 -0.678706,0.63244 -0.953582,0.18768 -0.206441,-0.33403 -0.824651,-0.16125 -2.903765,0.81155 -4.543619,2.12592 -9.013463,2.9848 -10.334327,1.98575 z m -0.551495,-9.00761 c -0.227483,-0.59282 0.396029,-1.18726 1.245312,-1.18726 0.890162,0 1.271939,0.45833 0.595299,0.71467 -0.263885,0.1 -0.637122,0.33725 -0.829418,0.5273 -0.461875,0.45646 -0.822524,0.43695 -1.011193,-0.0547 z m 5.807896,-0.20811 c -0.464524,-0.13924 -0.909757,-0.42299 -0.989402,-0.63054 -0.115252,-0.30035 0.110673,-0.36094 1.106795,-0.29685 0.902816,0.0581 1.274323,0.20028 1.333121,0.51026 0.108765,0.57339 -0.42101,0.72574 -1.450514,0.41713 z m -19.834615,22.88228 c 0.754279,-0.79271 0.861806,-1.628 0.236378,-1.83625 -0.188238,-0.0627 -0.499692,0.28401 -0.712316,0.79289 -0.207804,0.49735 -0.563298,1.05819 -0.789985,1.24633 -0.22669,0.18813 -0.412163,0.51026 -0.412163,0.71585 0,0.4993 0.686253,0.12355 1.678086,-0.91882 z m 37.632409,-14.45368 c 0.214273,-0.85374 0.03679,-1.09062 -1.287597,-1.71854 -0.612437,-0.29037 -1.381411,-0.725 -1.708833,-0.96585 -0.56904,-0.41858 -0.595313,-0.41255 -0.595313,0.13667 0,2.05851 3.15317,4.29513 3.591743,2.54772 z M 49.864882,186.30259 c -0.193664,-0.96831 -0.770072,-1.66931 -1.169591,-1.42239 -0.296513,0.18325 0.72176,2.27291 1.109351,2.27656 0.12733,0.001 0.15444,-0.38317 0.06024,-0.85417 z m 13.913684,-0.22657 c -0.104584,-0.81161 -0.97859,-1.56291 -1.818169,-1.56291 -0.633418,0 -0.625488,0.024 0.293897,0.89114 0.519684,0.49012 0.94488,1.03583 0.94488,1.21267 0,0.17685 0.148828,0.27078 0.330729,0.20875 0.181901,-0.062 0.293799,-0.39938 0.248663,-0.74965 z m 0.435076,-10.40377 c 0.397986,-0.2058 1.165979,-0.45718 1.706655,-0.55861 0.540674,-0.10143 0.983044,-0.2761 0.983044,-0.38816 0,-0.41921 -1.884336,-1.62159 -2.415003,-1.54098 -0.387919,0.0589 -0.700633,0.47684 -1.052595,1.40674 -0.275397,0.7276 -0.500819,1.35268 -0.500938,1.38906 -5.29e-4,0.17893 0.631608,0.0266 1.278837,-0.30805 z m -28.00197,77.89647 c -4.620039,-0.96106 -18.415036,-3.77541 -19.107636,-3.89819 -1.293542,-0.22931 -1.37162,-0.68382 -0.347863,-2.02502 1.7061,-2.23511 1.745323,-4.9559 0.105314,-7.30531 -0.253953,-0.3638 -0.498661,-1.07818 -0.543795,-1.5875 l -0.08206,-0.92604 3.307292,-0.002 c 3.792894,-0.003 4.62115,-0.28488 5.645563,-1.92342 0.642708,-1.02801 1.296163,-3.18292 1.07413,-3.54217 -0.195509,-0.31634 -0.361198,-1.88781 -0.17993,-1.70654 0.08713,0.0871 0.288442,0.0576 0.447352,-0.0657 0.15891,-0.12326 0.860031,-0.36347 1.558046,-0.53379 1.103683,-0.26932 1.414092,-0.24462 2.38125,0.18947 1.27239,0.57109 3.494001,2.68839 5.687603,5.42055 0.830469,1.03436 1.688539,2.07607 1.906821,2.31492 0.569052,0.62266 1.34204,1.62705 3.447253,4.47921 1.020403,1.38244 2.013051,2.72347 2.205885,2.98005 0.192836,0.25657 0.569812,1.19049 0.837729,2.07535 0.418303,1.38156 0.44364,1.81614 0.179345,3.07617 -0.169275,0.80703 -0.498427,1.7583 -0.731449,2.11393 -0.945655,1.44326 -3.599082,1.73832 -7.790847,0.86635 z"
+         id="path1077"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#5e5e5d;stroke-width:0.26458335"
+         d="m 34.888755,255.93652 c -4.654395,-1.4882 -8.055206,-2.37967 -11.509375,-3.01701 -6.63224,-1.22374 -7.961412,-1.57717 -8.797397,-2.33927 -0.776616,-0.70798 -0.754066,-1.5195 0.115564,-4.15903 l 0.710877,-2.15768 -0.629428,-2.47372 c -0.494496,-1.94343 -0.575989,-2.68466 -0.380147,-3.45767 0.397914,-1.57062 1.126925,-1.9088 4.684752,-2.17323 3.609963,-0.26831 3.953994,-0.46716 5.257252,-3.03871 0.887472,-1.75114 1.415647,-1.77315 1.221525,-0.0509 -0.166815,1.47998 -0.942223,3.00286 -1.874753,3.68196 -0.661076,0.48142 -1.134902,0.54624 -3.992887,0.54624 -4.468551,0 -4.709433,0.22966 -3.341249,3.18563 1.667662,3.60299 1.640688,4.56687 -0.198633,7.09794 -1.559824,2.14645 -2.446161,1.79731 12.913066,5.08662 9.913366,2.12304 12.067501,2.377 13.806943,1.62775 1.515137,-0.65263 2.429198,-2.25187 2.554497,-4.46932 0.08872,-1.57019 0.0035,-2.02017 -0.626893,-3.30857 -1.278009,-2.61216 -7.786101,-10.9571 -11.23645,-14.40784 -2.72795,-2.72826 -3.591326,-3.12058 -5.735462,-2.60621 -1.844596,0.44251 -2.046582,0.23812 -2.046582,-2.07105 0,-1.94257 -0.258817,-1.33997 3.547234,-8.25891 0.760474,-1.38245 1.617389,-3.10885 1.904256,-3.83646 1.200526,-3.04498 2.799012,-5.634 5.250702,-8.50438 1.39882,-1.6377 3.546412,-4.25969 4.772427,-5.82664 l 2.22912,-2.849 -0.04187,-1.72874 c -0.02303,-0.95081 -0.171091,-4.05046 -0.329018,-6.88811 -0.420423,-7.55416 -0.375944,-9.90028 0.23282,-12.28052 1.249868,-4.88695 3.875588,-7.38278 8.960116,-8.51688 2.997919,-0.66869 8.983745,-0.40974 11.815459,0.51113 5.240623,1.70425 8.391597,4.85259 9.348745,9.34095 0.159256,0.74679 0.423643,3.00898 0.587529,5.02708 0.461859,5.68737 1.12472,9.15997 2.108724,11.04725 1.506217,2.88885 5.203965,8.1673 7.700815,10.99273 5.519158,6.24546 7.431127,9.86401 8.954551,16.94713 0.726236,3.37661 0.747082,5.69724 0.06321,7.03656 -1.055195,2.06653 -5.00217,5.26979 -7.788498,6.32094 -2.710542,1.02256 -5.574445,0.0132 -7.108984,-2.50554 -1.08426,-1.77966 -1.413721,-2.07182 -2.172726,-1.92672 -2.021084,0.38635 -2.557712,3.3674 -1.504916,8.36003 0.61286,2.90633 0.611772,2.79742 0.09315,9.33657 -0.113591,1.43225 -0.0483,2.07407 0.274505,2.6983 0.620014,1.19898 2.012416,2.14194 3.679037,2.49151 2.229128,0.46757 3.730189,0.01 7.054832,-2.15034 3.731972,-2.42507 4.815462,-2.93659 9.004819,-4.25119 1.964532,-0.61647 3.929063,-1.30033 4.365625,-1.51971 1.307041,-0.65679 2.248951,-1.69304 2.248951,-2.47419 0,-1.02312 -0.8453,-1.50205 -4.155149,-2.35425 -2.341124,-0.60277 -3.84819,-2.71646 -3.890026,-5.45583 -0.01569,-1.02807 0.110214,-1.77445 0.347824,-2.06173 0.49685,-0.60072 0.787312,-0.24974 0.970981,1.17331 0.252201,1.95403 1.324017,3.38284 3.693634,4.92387 3.917826,2.54789 4.215856,2.80809 4.308116,3.76132 0.0537,0.55473 -0.0818,1.05963 -0.3696,1.3777 -0.76148,0.84142 -4.453867,2.87517 -7.621781,4.19805 -3.489487,1.45715 -5.352648,2.554 -8.100659,4.76887 -3.094818,2.4944 -3.849558,2.78716 -7.14375,2.77108 -3.975135,-0.0194 -4.813351,-0.3209 -6.822663,-2.45401 l -1.66329,-1.76576 h -9.846086 c -11.548383,0 -11.799544,0.0433 -16.044935,2.76581 -2.364316,1.51621 -2.578621,1.59914 -4.101041,1.58694 -1.171636,-0.009 -2.716218,-0.36774 -5.707405,-1.32414 z m 14.404791,-4.54269 c 0.246399,-0.35179 0.411877,-1.14873 0.411877,-1.98362 0,-1.23465 -0.111538,-1.51903 -0.967333,-2.46629 -1.163224,-1.28755 -0.926171,-1.83659 0.448218,-1.03813 2.888747,1.67823 3.021814,1.7086 7.26599,1.65829 6.120866,-0.0726 9.066417,-1.02188 11.745411,-3.78539 1.4898,-1.53681 2.339687,-2.02708 2.768934,-1.59733 0.467849,0.4684 0.308739,2.58895 -0.355405,4.73662 -0.942094,3.0465 -0.805553,4.5137 0.421635,4.53067 0.665454,0.009 1.208561,-4.34244 1.495208,-11.98038 l 0.285933,-7.6188 0.890328,-0.78172 c 0.664943,-0.58383 1.155015,-0.78172 1.935906,-0.78172 0.946661,0 1.082514,-0.0884 1.436042,-0.93452 0.544304,-1.3027 2.066108,-1.96244 4.544306,-1.97009 1.036731,-0.003 2.391154,0.17279 3.009829,0.39107 0.618675,0.21828 1.318255,0.39628 1.554621,0.39556 0.61451,-0.002 -0.930567,-1.22511 -2.017642,-1.59735 -0.925425,-0.3169 -1.056211,-0.76095 -0.587335,-1.99419 0.568497,-1.49526 0.813678,-4.49733 0.519835,-6.36504 -0.467024,-2.96848 -2.539074,-6.78711 -5.26908,-9.71052 -1.067273,-1.14289 -2.667066,-2.27945 -2.667066,-1.8948 0,0.0804 0.692391,1.06574 1.538647,2.18961 3.794276,5.03898 5.004388,7.70085 5.265336,11.58209 0.171043,2.54403 -0.354703,4.71161 -1.37537,5.67048 -0.505868,0.47523 -1.053539,0.66008 -2.201776,0.74314 -2.195766,0.15883 -2.225688,0.0953 -2.444006,-5.18757 -0.212069,-5.1317 -0.460336,-5.99674 -2.7826,-9.69545 -1.872461,-2.98229 -2.455471,-4.13179 -2.945402,-5.80732 -0.583653,-1.99605 -1.807486,-4.28734 -3.411713,-6.3875 -1.746787,-2.28679 -1.918316,-3.02692 -1.288076,-5.55782 0.459473,-1.84515 0.461055,-1.97586 0.02969,-2.45251 -0.250608,-0.27692 -1.374614,-0.7756 -2.497794,-1.10817 -2.982899,-0.88324 -4.199782,-1.46335 -4.713124,-2.24681 -0.762378,-1.16353 -0.428847,-3.18642 0.663676,-4.02523 0.660572,-0.50717 2.688643,-0.40571 3.653848,0.1828 1.087721,0.66321 1.296377,1.52164 0.755619,3.10868 -0.401897,1.1795 -0.400357,1.28401 0.02349,1.59395 0.663646,0.48527 1.526574,0.40547 2.066448,-0.19108 0.393886,-0.43524 0.451795,-0.85456 0.345898,-2.50467 -0.141557,-2.20577 -0.934773,-4.10992 -2.062948,-4.95223 -0.888154,-0.6631 -3.536723,-1.08084 -4.761609,-0.75101 -1.959581,0.52766 -3.172823,2.60905 -3.172823,5.44318 0,1.49408 -0.06263,1.73257 -0.419078,1.59578 -0.230492,-0.0884 -1.226768,-0.23588 -2.213941,-0.32763 l -1.794865,-0.16681 -0.156326,-1.67407 c -0.174919,-1.87316 -0.952257,-3.6419 -1.799956,-4.09557 -1.414041,-0.75677 -3.453297,-0.21673 -4.397605,1.16459 -1.376932,2.01415 -0.266388,7.59535 1.38521,6.96158 0.743289,-0.28523 0.760855,-0.94511 0.04025,-1.51194 -0.882547,-0.69421 -1.350574,-2.33113 -0.930273,-3.25359 0.258853,-0.56812 1.387462,-1.22569 2.103684,-1.22569 0.518533,0 1.842418,1.44746 2.066647,2.25956 0.386014,1.39802 0.112443,1.87322 -1.918644,3.33276 -3.549233,2.55046 -4.088083,3.45253 -2.614581,4.37696 0.400182,0.25106 1.220991,0.89946 1.824019,1.44089 1.264576,1.13539 2.651712,1.45607 5.056764,1.16901 3.045183,-0.36346 9.155997,-2.18864 10.395239,-3.10486 0.718609,-0.53129 1.575541,-0.51156 1.575541,0.0363 0,0.50748 -1.211167,1.03829 -6.085417,2.66702 -4.879898,1.63061 -4.902642,1.63528 -7.474479,1.53265 -1.418829,-0.0566 -2.579688,-0.007 -2.579688,0.11069 0,0.11749 0.559091,0.56818 1.242425,1.00154 2.192137,1.39021 4.794309,1.02886 10.788085,-1.49809 2.248585,-0.94799 3.315324,-1.11676 3.315324,-0.52451 0,0.51352 -0.456123,0.83366 -2.049193,1.43825 -1.270717,0.48226 -3.06316,1.493 -6.934935,3.91053 -1.092579,0.68221 -1.735802,0.90108 -2.645834,0.90033 -1.56903,-0.001 -2.437307,-0.55687 -4.503383,-2.88158 -0.925875,-1.04178 -1.8024,-1.85447 -1.947834,-1.80599 -0.145433,0.0485 -0.41747,0.5302 -0.604525,1.07049 -0.187053,0.54029 -1.009393,2.16443 -1.827419,3.60918 -1.425895,2.51834 -1.494854,2.72848 -1.669674,5.08817 -0.175036,2.36256 -0.226907,2.52016 -1.292374,3.92665 -1.63354,2.15639 -3.720481,6.70545 -4.181419,9.11455 -0.214085,1.11893 -0.389245,3.07274 -0.389245,4.34181 0,1.57374 -0.119253,2.47049 -0.375049,2.82032 -0.365371,0.49967 -0.403927,0.49244 -1.493981,-0.28016 -1.609921,-1.14107 -2.09972,-2.22044 -2.09972,-4.62715 0,-1.09463 0.110752,-2.37641 0.246113,-2.8484 0.320579,-1.11779 -0.09234,-1.11676 -0.698643,0.002 -0.335077,0.61814 -0.465722,1.45497 -0.464701,2.97656 0.0012,1.77325 0.114796,2.33302 0.70023,3.4502 1.029095,1.96383 3.937707,4.44966 10.668043,9.11742 3.659333,2.53789 4.73772,3.48004 5.165575,4.51297 0.443383,1.07042 -0.109001,2.04059 -1.792084,3.14749 l -1.38901,0.9135 0.747551,0.80629 c 2.334427,2.51786 3.362468,4.46766 3.098234,5.87615 -0.19218,1.02441 0.163084,1.16075 0.769316,0.29523 z m 1.119727,-62.02773 c -0.343603,-0.3436 0.431446,-0.88389 1.242775,-0.86633 0.787469,0.017 0.7987,0.0318 0.232188,0.30501 -0.327422,0.15791 -0.595313,0.38798 -0.595313,0.51126 0,0.26467 -0.629237,0.30047 -0.87965,0.0501 z m 5.663444,-0.38085 c -0.464264,-0.18489 -0.560462,-0.33464 -0.350099,-0.545 0.364014,-0.36401 1.72647,-0.0503 1.587836,0.36556 -0.141743,0.42523 -0.492752,0.47612 -1.237737,0.17944 z m -19.774459,23.09346 c 0.754279,-0.79271 0.861806,-1.628 0.236378,-1.83625 -0.188238,-0.0627 -0.499692,0.28401 -0.712316,0.79289 -0.207804,0.49735 -0.563298,1.05819 -0.789985,1.24633 -0.22669,0.18813 -0.412163,0.51026 -0.412163,0.71585 0,0.4993 0.686253,0.12355 1.678086,-0.91882 z m 37.632409,-14.45368 c 0.214273,-0.85374 0.03679,-1.09062 -1.287597,-1.71854 -0.612437,-0.29037 -1.381411,-0.725 -1.708833,-0.96585 -0.56904,-0.41858 -0.595313,-0.41255 -0.595313,0.13667 0,2.05851 3.15317,4.29513 3.591743,2.54772 z M 49.864882,186.30259 c -0.193664,-0.96831 -0.770072,-1.66931 -1.169591,-1.42239 -0.296513,0.18325 0.72176,2.27291 1.109351,2.27656 0.12733,0.001 0.15444,-0.38317 0.06024,-0.85417 z m 13.913684,-0.22657 c -0.104584,-0.81161 -0.97859,-1.56291 -1.818169,-1.56291 -0.633418,0 -0.625488,0.024 0.293897,0.89114 0.519684,0.49012 0.94488,1.03583 0.94488,1.21267 0,0.17685 0.148828,0.27078 0.330729,0.20875 0.181901,-0.062 0.293799,-0.39938 0.248663,-0.74965 z m 0.435076,-10.40377 c 0.397986,-0.2058 1.165979,-0.45718 1.706655,-0.55861 0.540674,-0.10143 0.983044,-0.2761 0.983044,-0.38816 0,-0.41921 -1.884336,-1.62159 -2.415003,-1.54098 -0.387919,0.0589 -0.700633,0.47684 -1.052595,1.40674 -0.275397,0.7276 -0.500819,1.35268 -0.500938,1.38906 -5.29e-4,0.17893 0.631608,0.0266 1.278837,-0.30805 z"
+         id="path1075"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#020101;stroke-width:0.26458335"
+         d="m 38.733868,256.97456 c -0.577323,-0.1352 -2.839511,-0.82386 -5.027083,-1.53036 -4.748751,-1.53367 -7.401101,-2.20284 -11.650322,-2.93928 -5.132991,-0.88961 -6.64696,-1.29582 -7.387459,-1.98209 -0.843288,-0.78153 -0.845743,-1.11489 -0.0253,-3.43576 0.756172,-2.13905 0.825334,-3.49133 0.271874,-5.31576 -0.601885,-1.98406 -0.521803,-3.64094 0.21752,-4.50046 0.584024,-0.67897 0.779897,-0.72681 3.638021,-0.88853 3.905752,-0.221 4.321671,-0.45055 5.662309,-3.12508 1.254353,-2.50238 1.594343,-0.60036 0.356956,1.99695 -0.794585,1.66785 -1.470704,1.91101 -5.313697,1.91101 -2.188622,0 -3.372349,0.10483 -3.585014,0.3175 -0.522622,0.52262 -0.363928,1.63263 0.46939,3.28323 0.867893,1.71909 1.20835,3.34724 0.947897,4.53308 -0.09353,0.42585 -0.639897,1.39957 -1.21414,2.16382 -1.464988,1.94971 -1.280041,2.17805 2.450737,3.02567 5.308489,1.20607 17.742129,3.81664 19.824707,4.16241 4.044752,0.67154 6.42968,-0.62195 7.099978,-3.85076 0.593892,-2.86076 -0.198281,-4.57367 -4.925579,-10.65056 -3.754718,-4.82665 -5.416672,-6.7763 -7.328004,-8.59653 -2.462801,-2.34542 -3.346672,-2.61344 -6.303222,-1.91138 -0.670261,0.15915 -0.706945,0.1103 -0.884019,-1.17718 -0.281876,-2.04948 0.03005,-3.17573 1.667528,-6.02086 1.642721,-2.85423 2.468491,-4.48035 4.619051,-9.09591 1.192686,-2.55976 1.864381,-3.57635 4.195649,-6.35 1.526595,-1.81628 3.767301,-4.54993 4.979347,-6.07479 l 2.203717,-2.77246 -0.172661,-3.18066 c -0.09497,-1.74937 -0.244716,-6.03817 -0.33278,-9.53067 -0.134004,-5.31434 -0.09077,-6.6422 0.265102,-8.14158 1.042104,-4.39068 3.662593,-7.07302 8.103137,-8.29439 2.531134,-0.6962 8.901135,-0.63453 11.679643,0.11307 3.851302,1.03624 6.90778,3.08941 8.65694,5.81524 1.090875,1.69998 1.787351,4.84095 2.153957,9.71391 0.508524,6.75938 0.987452,8.5296 3.336296,12.33169 2.521326,4.08129 4.007437,6.11976 6.347849,8.70723 5.699427,6.30106 7.875726,10.63873 9.146567,18.23039 0.557919,3.33286 0.562682,3.51443 0.128318,4.89239 -0.779714,2.47354 -4.638419,5.88314 -7.992002,7.06183 -0.786368,0.27638 -1.700628,0.50185 -2.031685,0.50104 -2.046304,-0.005 -4.315405,-1.56104 -5.285278,-3.62436 -0.827458,-1.76034 -2.412788,-1.87824 -3.403703,-0.25314 -0.410348,0.67297 -0.508884,1.3271 -0.5046,3.34981 0.0029,1.38245 0.119919,2.98979 0.259979,3.57188 0.756833,3.14535 0.82101,4.41901 0.377238,7.48668 -0.530003,3.66374 -0.409967,4.61399 0.735002,5.8185 1.236649,1.30095 2.680391,1.89786 4.573606,1.89094 2.140337,-0.008 2.893754,-0.32727 6.746876,-2.86059 2.729841,-1.7948 3.769251,-2.31448 5.953125,-2.97642 5.141368,-1.55835 5.975083,-1.87343 7.214561,-2.72649 2.706903,-1.86302 1.946653,-3.36233 -2.209684,-4.35779 -1.889524,-0.45254 -2.908535,-1.1504 -3.568348,-2.44374 -0.681437,-1.33573 -0.970116,-3.86706 -0.533951,-4.68204 0.445506,-0.83244 0.816992,-0.70226 0.81869,0.28688 0.0041,2.37716 1.539052,4.33257 5.025607,6.40215 3.354239,1.99103 3.855119,2.9339 2.289039,4.30894 -1.14872,1.00859 -4.763647,2.96242 -7.448414,4.02579 -2.941741,1.16515 -4.648668,2.16216 -7.386487,4.31441 -3.844401,3.02216 -3.723153,2.97528 -7.694764,2.97528 -4.196816,0 -5.39682,-0.41901 -6.72387,-2.34782 -0.460195,-0.66887 -1.086657,-1.34989 -1.392139,-1.51338 -0.38413,-0.20558 -3.502153,-0.28965 -10.110331,-0.27263 -11.55785,0.0298 -12.25749,0.15421 -16.115674,2.86607 -2.355064,1.65533 -3.4954,1.92081 -5.866001,1.36566 z m 10.551161,-5.54216 c 0.453181,-0.53858 0.684977,-1.12941 0.684977,-1.74595 0,-1.13397 -0.684731,-2.6547 -1.357405,-3.01471 -0.572344,-0.30631 -0.666509,-1.03987 -0.133485,-1.03987 0.198657,0 0.666584,0.24022 1.039839,0.53382 1.646418,1.29507 2.77521,1.57141 6.404177,1.5678 6.339896,-0.006 9.180055,-0.88825 12.301601,-3.81998 1.120506,-1.05238 2.052776,-1.72221 2.32508,-1.67057 0.695071,0.13181 0.726821,2.0618 0.06593,4.00772 -0.304509,0.89659 -0.622956,2.28501 -0.70766,3.08537 -0.133842,1.26469 -0.07974,1.52217 0.413237,1.96669 0.490858,0.44261 0.615839,0.46042 0.928135,0.13229 0.740235,-0.77776 1.274064,-5.44737 1.410382,-12.33713 0.115404,-5.83277 0.192114,-6.7653 0.613519,-7.45824 0.468442,-0.77029 1.758363,-1.34761 3.022693,-1.35285 0.339108,-0.001 0.719225,-0.35721 1.058333,-0.99066 0.664911,-1.24203 1.613382,-1.70004 3.852299,-1.86024 1.622568,-0.11609 2.606263,0.0694 4.945097,0.93261 0.181902,0.0671 0.330518,-0.0395 0.330256,-0.23697 -5.29e-4,-0.34744 -1.739456,-1.56098 -2.738956,-1.91136 -0.317259,-0.11121 -0.432536,-0.32292 -0.326417,-0.59946 1.150205,-2.99739 1.190403,-7.36367 0.09281,-10.08105 -1.38256,-3.42287 -4.865164,-8.10285 -6.548639,-8.80017 -0.44772,-0.18545 -0.88386,-0.26737 -0.969196,-0.18203 -0.08534,0.0853 0.38027,0.78597 1.034683,1.55697 3.77826,4.45136 5.800143,8.9188 5.843363,12.91118 0.04268,3.94266 -1.024345,5.55625 -3.674203,5.55625 -1.089491,0 -1.482434,-0.10916 -1.666664,-0.46302 -0.132582,-0.25466 -0.306572,-2.24896 -0.386641,-4.43177 -0.18969,-5.17132 -0.474276,-6.06529 -3.423827,-10.75521 -0.79161,-1.2587 -1.834515,-3.40183 -2.317563,-4.7625 -1.01039,-2.84613 -2.201325,-5.02742 -3.743198,-6.856 -1.218533,-1.4451 -1.546767,-2.54101 -1.22338,-4.08462 0.472932,-2.25742 0.536183,-3.30458 0.22244,-3.68262 -0.173267,-0.20877 -1.666497,-0.80523 -3.318288,-1.32546 -2.442882,-0.76938 -3.136164,-1.10383 -3.715583,-1.79243 -0.584425,-0.69455 -0.68788,-1.02884 -0.576165,-1.86175 0.195694,-1.459 0.815266,-2.26353 1.899867,-2.467 1.154234,-0.21653 1.964823,-0.0213 2.871169,0.69167 0.782005,0.61513 0.92076,1.66831 0.412054,3.12759 -0.375642,1.07757 0.03306,1.62146 1.218435,1.62146 1.077601,0 1.410701,-0.39517 1.619949,-1.92181 0.217988,-1.59039 -0.680276,-4.60357 -1.696765,-5.69173 -1.278348,-1.36847 -4.946867,-1.78757 -6.535545,-0.74663 -0.351491,0.23031 -0.965592,0.9759 -1.364668,1.65687 -0.590502,1.00762 -0.728255,1.57055 -0.739905,3.02365 l -0.01431,1.78552 -1.852083,-0.13329 c -2.554796,-0.18387 -2.513333,-0.15745 -2.515018,-1.6023 -0.0021,-1.81443 -0.411187,-3.03883 -1.299655,-3.89004 -1.524344,-1.46041 -3.994695,-1.07561 -5.232932,0.81512 -0.56723,0.86614 -0.634328,3.89221 -0.120086,5.41587 0.589203,1.74576 1.888429,2.28477 2.309484,0.95814 0.11943,-0.37629 0.0087,-0.67748 -0.355835,-0.96775 -1.250035,-0.99538 -1.54627,-3.13578 -0.532294,-3.846 1.690317,-1.18394 3.92168,0.54963 3.601077,2.79772 -0.05725,0.40142 -0.690023,1.05842 -1.807866,1.87709 -3.530963,2.58594 -4.206124,3.47582 -3.25468,4.28977 0.262104,0.22422 1.019543,0.87952 1.683195,1.45622 1.538229,1.3367 2.26495,1.60274 4.377989,1.60274 3.116861,0 10.641106,-2.01312 11.882242,-3.1791 0.625923,-0.58803 1.186255,-0.52656 1.186255,0.13013 0,0.3836 -0.187532,0.46197 -6.085417,2.54316 -3.770313,1.33043 -3.890061,1.35391 -6.945313,1.3614 -1.70987,0.004 -3.108855,0.0856 -3.108855,0.18091 0,0.0953 0.671431,0.61547 1.492068,1.1559 2.353281,1.54976 3.47849,1.42801 9.699729,-1.04949 3.68224,-1.46639 4.972714,-1.66455 4.025768,-0.61819 -0.255686,0.28253 -0.89697,0.65349 -1.425078,0.82436 -1.525014,0.49341 -3.201493,1.40243 -5.834349,3.16352 -2.180246,1.45834 -2.60105,1.64159 -3.838519,1.67151 -1.862236,0.045 -2.535907,-0.37003 -4.547892,-2.80195 -0.937009,-1.13259 -1.86935,-2.05924 -2.071875,-2.05924 -0.202526,0 -0.45121,0.38695 -0.552638,0.85989 -0.101426,0.47295 -0.90601,2.15924 -1.787962,3.74731 -1.516118,2.72998 -1.619015,3.02934 -1.887133,5.49034 -0.231788,2.12754 -0.406715,2.75992 -0.957799,3.46259 -1.661933,2.11904 -3.629896,6.08941 -4.360432,8.79716 -0.235564,0.87313 -0.508823,3.01493 -0.60724,4.75957 -0.152133,2.69683 -0.24675,3.18503 -0.631534,3.25854 -0.719958,0.13755 -2.789597,-2.11035 -3.006244,-3.26517 -0.186481,-0.99403 -0.0052,-3.99041 0.307539,-5.08367 0.317571,-1.11009 -0.43602,-0.62767 -0.995597,0.63735 -0.807471,1.82542 -0.608049,5.02255 0.422933,6.78045 1.056201,1.8009 4.69819,4.76692 12.18908,9.92672 3.98998,2.74833 4.482732,4.18803 2.064644,6.03237 -0.609087,0.46457 -1.262923,0.89918 -1.45297,0.96581 -0.239943,0.0841 -0.08213,0.43602 0.516408,1.15147 0.474073,0.56667 1.346103,1.74469 1.937846,2.61781 0.984938,1.45329 1.066805,1.70494 0.968364,2.97657 -0.05914,0.76398 -0.01902,1.38906 0.08915,1.38906 0.108178,0 0.504926,-0.36632 0.881666,-0.81405 z m 1.338805,-62.16913 c -0.225605,-0.36504 0.320339,-0.77158 1.043916,-0.77736 0.278914,-0.002 0.457507,0.027 0.396875,0.0649 -0.06063,0.0379 -0.366315,0.28381 -0.679288,0.5464 -0.412742,0.34629 -0.621909,0.3919 -0.761503,0.16604 z m 5.167006,-0.51682 c -0.301165,-0.19463 -0.1895,-0.25746 0.463021,-0.26054 0.472943,-0.002 0.859896,0.11501 0.859896,0.26054 0,0.33607 -0.802881,0.33607 -1.322917,0 z m -19.916057,23.91697 c 1.350386,-1.02999 1.709587,-2.48572 0.61335,-2.48572 -0.280379,0 -0.644708,0.4081 -0.930892,1.04275 -0.258617,0.57351 -0.633889,1.10555 -0.833932,1.18232 -0.440288,0.16895 -0.487942,0.94993 -0.05797,0.94993 0.168164,0 0.712414,-0.31018 1.209439,-0.68928 z m 38.172406,-14.92138 c 0.347258,-0.83835 0.04427,-1.58726 -0.642152,-1.58726 -0.171974,0 -0.875905,-0.35719 -1.564293,-0.79375 -1.492594,-0.94658 -1.762403,-0.97946 -1.762403,-0.21481 0,1.15554 2.068386,3.32984 3.209047,3.37337 0.238347,0.009 0.577895,-0.33839 0.759801,-0.77755 z M 50.116504,187.13596 c 0.226557,-0.36658 -0.627018,-2.28298 -1.097222,-2.46342 -0.663893,-0.25476 -0.692608,0.40311 -0.06891,1.57878 0.642358,1.21086 0.86169,1.37724 1.166136,0.88464 z m 13.780966,-0.37448 c 0.407974,-1.06316 -0.82686,-2.51295 -2.140365,-2.51295 -0.608783,0 -0.49665,0.73059 0.143306,0.93371 0.304326,0.0966 0.722643,0.58086 0.929592,1.07616 0.400336,0.95814 0.817417,1.1547 1.067467,0.50308 z m 0.624621,-11.11191 c 0.363802,-0.20797 0.981853,-0.38234 1.373446,-0.3875 1.322563,-0.0174 1.259557,-0.84189 -0.137191,-1.79531 -1.153346,-0.78728 -1.716561,-0.75107 -2.058009,0.13229 -0.154681,0.40018 -0.439031,1.04593 -0.631886,1.43501 -0.531886,1.07304 0.148963,1.36133 1.45364,0.61551 z"
+         id="path1073"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/img/download/windows.png b/img/download/windows.png
deleted file mode 100644
index 424b809ed9539ad7d4d93ca339a7ccd01db8f84f..0000000000000000000000000000000000000000
Binary files a/img/download/windows.png and /dev/null differ
diff --git a/img/download/windows.svg b/img/download/windows.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d6445dab6352329c67553b0ec55d247d768ba930
--- /dev/null
+++ b/img/download/windows.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="windows.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="45.141809"
+     inkscape:cy="325.92194"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#000000;stroke-width:0.26458335"
+       d=""
+       id="path72"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#0177d6;fill-opacity:1;stroke-width:0.46454021"
+       d="m 115.37955,269.41234 c -3.9602,-0.58881 -12.74002,-1.82575 -19.51069,-2.74878 -16.032542,-2.18567 -24.224176,-3.40442 -24.458708,-3.63895 -0.10394,-0.10394 -0.193025,-8.94528 -0.197955,-19.64742 l -0.009,-19.45844 26.501293,-0.11992 26.50128,-0.11992 v 23.4631 c 0,22.05936 -0.0486,23.45942 -0.81295,23.40201 -0.44712,-0.0335 -4.05311,-0.54283 -8.01331,-1.13163 z m -55.977098,-7.86159 c -4.087953,-0.58852 -13.129068,-1.85617 -20.091365,-2.817 l -12.658721,-1.74698 v -16.65014 -16.65017 h 20.207501 20.207498 v 19.51069 c 0,10.73089 -0.05225,19.49111 -0.116142,19.46716 -0.06387,-0.0239 -3.460823,-0.52505 -7.548778,-1.11356 z m -32.639818,-58.18683 0.122007,-16.60622 5.342211,-0.76467 c 2.938218,-0.42058 8.791424,-1.23078 13.007127,-1.80045 4.215703,-0.56968 10.85282,-1.5013 14.749151,-2.07025 l 7.084239,-1.03446 v 19.44114 19.44114 H 46.853999 26.640631 Z m 44.485552,16.49009 c -1.9e-5,-0.0639 -0.0158,-8.86265 -0.03525,-19.55286 -0.01937,-10.69019 0.04335,-19.51525 0.139318,-19.61124 0.159966,-0.15995 21.552794,-3.23164 41.936876,-6.02146 4.59895,-0.62943 8.9366,-1.24549 9.63921,-1.36902 l 1.27749,-0.22461 v 23.44766 23.44767 H 97.72702 c -14.563336,0 -26.478811,-0.0523 -26.478834,-0.11605 z"
+       id="path911"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/img/download/yunohost.png b/img/download/yunohost.png
deleted file mode 100644
index 04ac69cdbfb0600ecaf64a849373c75053a416cd..0000000000000000000000000000000000000000
Binary files a/img/download/yunohost.png and /dev/null differ
diff --git a/img/download/yunohost.svg b/img/download/yunohost.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ddd3beec6d5fb26313c575ec43270f1820e7a6e5
--- /dev/null
+++ b/img/download/yunohost.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="151mm"
+   height="151mm"
+   viewBox="0 0 151 151"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="yunohost.svg">
+  <defs
+     id="defs2" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="-43.025332"
+     inkscape:cy="169.2545"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="703"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-146)">
+    <path
+       style="fill:#000000;stroke-width:0.26458335"
+       d=""
+       id="path72"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;fill-opacity:1;stroke-width:0.29804462"
+       d="m 29.811985,281.19475 c -2.126207,-1.05953 -3.928342,-3.11891 -5.608085,-6.4086 -1.236479,-2.42158 -1.87193,-3.24226 -4.508226,-5.82235 -3.367239,-3.29545 -4.260956,-4.77258 -4.271488,-7.05995 -0.01014,-2.22405 1.121827,-3.23257 5.060207,-4.5079 l 3.129474,-1.01338 0.189516,-8.60013 c 0.198642,-9.01375 0.499229,-11.27267 1.719464,-12.92176 1.183163,-1.59899 5.261257,-0.54828 7.351948,1.89423 2.34428,2.73876 2.957777,5.43223 2.664174,11.69677 -0.243925,5.20477 -0.09586,6.37799 0.804692,6.37799 0.987946,0 3.049946,-2.33366 3.818568,-4.32165 0.66108,-1.70982 0.688599,-2.09678 0.627319,-8.82095 -0.05925,-6.50491 -0.01712,-7.15821 0.561825,-8.70557 1.044575,-2.79189 1.377558,-3.04835 3.869632,-2.98027 4.377532,0.11957 6.446898,1.52667 7.155435,4.86547 0.417684,1.96823 0.376781,2.28205 -1.106642,8.48826 -1.488885,6.2291 -1.48135,9.24366 0.03898,15.59436 1.319217,5.51054 1.7524,8.80942 1.615973,12.3064 -0.128553,3.29549 -0.493122,3.82358 -2.159021,3.12753 -1.673886,-0.69939 -4.2089,-2.83644 -7.278592,-6.13594 -1.527953,-1.64235 -3.014788,-2.98608 -3.304088,-2.98608 -0.289289,0 -1.156849,0.4915 -1.927905,1.09223 -0.771055,0.60072 -2.033679,1.25313 -2.805828,1.4498 l -1.403894,0.35757 v 6.0849 c 0,5.32181 -0.06624,6.18654 -0.528448,6.89544 -0.67783,1.03968 -1.696585,1.05442 -3.704998,0.0537 z m 59.480923,-11.4986 c -3.408244,-3.62391 -5.523249,-10.02669 -4.727399,-14.3113 0.369439,-1.98897 1.237761,-2.87598 2.202109,-2.24953 0.345284,0.2243 1.05953,1.05824 1.587215,1.85321 1.426019,2.14831 1.994015,2.63233 2.839882,2.42005 1.02041,-0.25612 1.838164,-2.16969 1.648039,-3.85649 -0.199908,-1.77357 -1.507016,-3.70067 -6.006783,-8.85594 -4.762808,-5.45664 -5.08217,-6.07711 -4.884512,-9.49017 0.175607,-3.03237 0.858041,-4.72217 2.762497,-6.84039 1.812114,-2.0155 3.631831,-2.8537 6.498919,-2.99353 2.127807,-0.10374 2.490339,-0.0332 4.230333,0.82338 2.903758,1.42952 4.897252,4.37022 4.910592,7.24385 0.007,1.57529 0.0911,1.52263 -2.9739,1.86826 -2.91674,0.32891 -3.505859,1.20837 -2.497538,3.72841 0.929419,2.32285 1.947945,2.20958 3.23945,-0.36024 0.95429,-1.89884 2.733978,-3.13337 4.840538,-3.35779 2.78315,-0.29648 3.44101,-0.54885 4.02143,-1.54267 0.29588,-0.50661 1.01428,-3.25263 1.59645,-6.10227 1.14489,-5.60401 1.90515,-7.4994 3.07488,-7.66588 2.88536,-0.41063 6.42413,2.94988 7.02779,6.67381 0.45651,2.81605 -0.0688,2.55041 4.60267,2.32741 3.49542,-0.16685 4.38065,-0.11704 5.72306,0.32204 2.07839,0.6798 3.66274,1.96647 4.74507,3.85356 1.06914,1.86404 1.10191,2.75947 0.15229,4.15882 -1.66753,2.45725 -4.3987,4.14516 -9.70202,5.99607 -1.72121,0.60072 -3.90924,1.37261 -4.8623,1.71531 l -1.73282,0.6231 0.16468,1.81931 c 0.0905,1.00062 0.38365,4.22619 0.65127,7.16793 0.58185,6.396 0.46654,8.18396 -0.67678,10.49365 -1.48498,2.99994 -3.32555,3.25187 -6.02518,0.82467 -2.80151,-2.5188 -3.8976,-6.04571 -3.90616,-12.56884 -0.006,-4.44002 0.20056,-4.12928 -2.49695,-3.75955 l -1.3828,0.18954 v 5.71283 c 0,5.59655 -0.0163,5.74588 -0.8001,7.33609 -0.45756,0.92833 -1.71999,2.54919 -2.94883,3.78608 -2.666486,2.684 -4.67232,3.68606 -7.77728,3.88532 -2.152395,0.13814 -2.178203,0.13096 -3.117812,-0.86811 z m -23.830811,-0.33537 c -2.571129,-0.89722 -5.780468,-3.09656 -8.612566,-5.90214 -3.2862,-3.25543 -3.686343,-4.22472 -3.829303,-9.27601 -0.245346,-8.66873 2.040224,-15.8942 6.072989,-19.19875 1.346918,-1.1037 3.453345,-1.91146 4.984553,-1.91146 3.653427,0 12.293021,4.45155 14.658437,7.55277 1.867375,2.44827 1.799542,13.68897 -0.120112,19.90408 -1.171914,3.79421 -3.802709,6.9234 -7.154966,8.51041 -2.265553,1.07255 -3.6355,1.14587 -5.999032,0.3211 z m 1.445427,-13.68469 c 2.030848,-1.25514 2.997998,-5.04943 1.912549,-7.50327 -0.493628,-1.11592 -0.760894,-1.39037 -1.354023,-1.39037 -0.944871,0 -2.442194,1.25755 -3.150539,2.64602 -0.635542,1.24577 -1.069739,4.60378 -0.77109,5.96351 0.181451,0.82614 0.319928,0.92791 1.262613,0.92791 0.582338,0 1.527558,-0.2897 2.10049,-0.6438 z M 33.300317,221.71073 c -2.53748,-1.00885 -5.343928,-5.78638 -6.426858,-10.94069 -0.605623,-2.88252 -0.616888,-7.27076 -0.02625,-10.23833 0.726413,-3.6499 0.508509,-4.08886 -4.416058,-8.8956 -2.830915,-2.76317 -3.182113,-3.45178 -3.872143,-7.59203 -0.737802,-4.42685 -1.651132,-11.98706 -1.651132,-13.66736 0,-3.47727 1.570286,-6.1526 3.611276,-6.1526 1.211427,0 2.88502,0.91786 4.165644,2.28458 2.351232,2.50932 2.736968,3.49082 4.256054,10.82937 1.295731,6.25958 1.411577,6.55698 2.553894,6.55698 1.156263,0 2.573123,-1.40426 4.162253,-4.12522 1.297939,-2.22239 2.986784,-3.92198 3.897162,-3.92198 0.867695,0 4.094722,2.84149 4.802402,4.22865 0.512295,1.00418 0.607369,1.64051 0.521735,3.4919 -0.134692,2.91215 -0.883736,4.46046 -4.586628,9.48072 l -2.810863,3.81087 -0.0046,4.66236 c -0.0046,5.33306 -0.558817,11.19857 -1.671892,17.69098 -0.257713,1.50323 -0.919163,2.83716 -1.394645,2.81253 -0.200692,-0.0101 -0.700201,-0.15219 -1.110011,-0.31513 z m 21.332156,-5.6741 c -3.79801,-2.0025 -6.44237,-6.97974 -7.977577,-15.01548 -1.285355,-6.72791 -0.741147,-23.60268 0.811396,-25.15964 1.010204,-1.01308 5.219589,2.16613 6.605898,4.98918 l 0.836358,1.70316 0.172462,8.04721 c 0.09484,4.42596 0.276863,8.2819 0.404447,8.56877 0.482816,1.08558 1.401618,0.44432 2.502673,-1.74667 1.021797,-2.03328 2.373682,-7.02884 3.489865,-12.89587 1.964041,-10.32361 1.923229,-10.16966 2.696055,-10.16966 1.045846,0 4.095149,2.98335 4.855231,4.75019 1.70047,3.95284 1.319179,14.98308 -0.855404,24.74571 -1.46879,6.59398 -3.691964,10.32626 -7.214113,12.11106 -1.850742,0.93784 -4.625255,0.96943 -6.327291,0.0721 z m 20.858812,-2.36357 c -2.848603,-1.90526 -3.45617,-2.78846 -3.115393,-4.52876 0.727188,-3.71362 1.192108,-9.93868 1.462425,-19.58119 0.33328,-11.88856 0.577897,-14.53601 1.399099,-15.14233 1.098912,-0.81136 3.947228,0.28053 5.794888,2.22143 1.677303,1.76197 3.502989,4.54775 3.860542,5.89076 0.553796,2.08011 3.636504,7.91084 3.924153,7.42224 0.0804,-0.13656 0.236779,-1.58949 0.347511,-3.22873 0.484102,-7.16662 1.103621,-13.91268 1.509522,-16.43749 0.411163,-2.55755 1.699048,-6.78672 2.243859,-7.36842 0.134125,-0.14321 1.109521,0.59445 2.167541,1.63924 1.413224,1.39557 2.111267,2.37414 2.630648,3.6879 l 0.706979,1.78826 0.02047,14.30615 c 0.01193,8.37511 0.176877,16.46787 0.39778,19.52043 0.460456,6.36298 0.295343,8.1261 -0.870139,9.29158 -0.712126,0.71212 -1.087541,0.84343 -2.411503,0.84343 -2.331855,0 -3.652155,-0.8104 -7.283655,-4.47074 -1.788933,-1.80313 -3.486645,-3.27842 -3.772694,-3.27842 -0.655775,0 -1.147501,0.96397 -2.161925,4.23822 -1.111564,3.58778 -1.786629,4.52958 -3.3283,4.64344 -1.036951,0.0765 -1.540155,-0.1316 -3.521779,-1.457 z m 36.194815,-5.22387 c -2.81928,-0.5858 -5.33044,-1.97828 -7.48797,-4.15219 -2.22745,-2.24433 -3.50023,-4.54083 -3.82523,-6.90185 -0.875195,-6.35825 3.23149,-22.30676 6.78647,-26.35566 1.00976,-1.15006 4.17054,-2.80984 6.97842,-3.6645 2.07368,-0.63118 3.01346,-0.399 5.03495,1.24399 1.99697,1.62307 3.46468,3.75557 4.15974,6.04392 0.57628,1.89732 0.58402,2.1012 0.14414,3.79878 -0.63302,2.44293 -0.59913,2.99934 0.43178,7.09075 0.49314,1.95712 0.98109,4.32409 1.08435,5.25994 0.43257,3.92092 -2.20405,11.66174 -5.14072,15.09258 -1.1044,1.29025 -3.49447,2.5848 -5.18549,2.80867 -0.57374,0.0759 -1.91494,-0.0431 -2.98044,-0.26443 z m 1.70145,-15.68731 c 1.9676,-2.15187 3.68304,-9.00002 2.44993,-9.78039 -1.48177,-0.93773 -3.95076,1.11926 -4.99566,4.16202 -0.58768,1.71134 -0.4464,4.59314 0.2698,5.50366 0.75669,0.96196 1.46842,0.99783 2.27593,0.11471 z"
+       id="path983"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/inc/Crowdfunding.class.php b/inc/Crowdfunding.class.php
new file mode 100755
index 0000000000000000000000000000000000000000..5a243d2c71577441aee74ceccc25e9fac3bd6ce9
--- /dev/null
+++ b/inc/Crowdfunding.class.php
@@ -0,0 +1,1461 @@
+<?php
+
+/*
+
+-----
+
+Ce script est basé sur la "barre de financement intégrable" développée par Pierre-Jean Chancellier.
+
+Son travail original se trouve ici : 
+
+https://git.duniter.org/paidge/barre-de-financement-int-grable
+
+-----
+
+This script is based on Pierre-Jean Chancellier's "barre de financement intégrable".
+
+See original work at : 
+
+https://git.duniter.org/paidge/barre-de-financement-int-grable
+
+*/
+
+// include('lib/phpqrcode/qrlib.php');
+
+date_default_timezone_set('Europe/Paris');
+
+class Crowdfunding {
+	
+	/**********************
+	 * Constants
+	 **********************/
+	
+	const PUBKEY_FORMAT = '#^[a-zA-Z1-9]{43,44}$#';
+	
+	const DATE_FORMAT = 'Y-m-d';
+	
+	private $units = ['quantitative','relative'];
+	
+	private $truePossibleValues = ['true','1', 'yes'];
+	
+	private $qrCodesFolder = 'img/qrcodes';
+	
+	private $qrCodePath = NULL;
+	
+	private $logosFolder = 'img/logos';
+	
+	private $logo = NULL;
+	
+	private $logoPath = NULL;
+	
+	private $validDisplayTypes = ['img', 'svg', 'html'];
+	
+	
+	/**********************
+	 * General parameters
+	 **********************/
+	
+	private $pubkey;
+	
+	private $target = NULL;
+	
+	private $startDate = NULL;
+	
+	private $endDate = NULL;
+	
+	private $nodes = [
+		
+		'g1.duniter.org', 
+		'remuniter.cgeek.fr',
+		'g1.monnaielibreoccitanie.org', 
+		'duniter-g1.p2p.legal', 
+		'duniter.g1.1000i100.fr', 
+		'g1.duniter.inso.ovh', 
+		'duniter.vincentux.fr', 
+		'g1.le-sou.org', 
+		'g1.donnadieu.fr', 
+		'g1.mithril.re'
+	];
+	
+	private $node = NULL;
+	
+	private $apiNode = 'g1.duniter.fr'; // Where the web payment gateway is located
+	
+	private $cesiumPlusNodes = [
+		
+		'g1.data.duniter.fr', 
+		'g1.data.le-sou.org'
+	];
+	
+	private $cesiumPlusNode = 'g1.data.duniter.fr';
+	
+	private $unit = 'quantitative';
+	
+	private $title = 'Financement participatif en monnaie libre';
+	
+	
+	
+	/**********************
+	 * Display parameters
+	 **********************/
+	
+	private $mustDisplayButton = false;
+	
+	private $mustDisplayPubkey = false;
+	
+	private $mustDisplayGraph = false;
+	
+	private $mustHideTitle = false;
+	
+	private $mustDisplayQRCode = false;
+	
+	private $displayType = 'html';
+	
+	private $filterMinDonation = 0;
+	
+	private $filterMinCommentLength = 0;
+	
+	private $validButtonTypes = ['api', 'copy', '2-steps-copy'];
+	
+	private $buttonType = '2-steps-copy';
+	
+	/**********************
+	 * Computed
+	 **********************/
+	
+	private $daysLeft = NULL;
+	
+	private $amountCollected = NULL;
+	
+	private $monthlyAmountCollectedMean = NULL;
+	
+	private $donorsNb = NULL;
+	
+	private $periodDonorsNb = NULL;
+	
+	private $percentage = NULL;
+	
+	private $donorsList = array();
+	
+	private $monthsToConsider = NULL;
+	
+	private $defaultMonthsToConsider = 3;
+	
+	private $periodDonorsList = array();
+	
+	private $donationsList = array();
+	
+	private $meanDonation = NULL;
+	
+	private $maxDonation = NULL;
+	
+	private $minDonation = NULL;
+	
+	private $graphPoints = array();
+	
+	/*
+	 * UD amount in quantitive, for divisions
+	 */ 
+	private $latestUdAmount = NULL;
+	
+	private $startDateUdAmount = NULL;
+	
+	
+	
+	
+	/**********************
+	 * Methods
+	 **********************/
+	
+	/**
+	 * 
+	 * @param $unit = 'quantitative' | 'relative' 
+	 * @param $displayType = NULL | 'img' | 'svg' | 'iframe'
+	 */
+	
+	public function __construct ($pubkey, $unit = NULL, $startDate = NULL, $endDate = NULL, $displayType = NULL) {
+		
+		$this->setDisplayType($displayType);
+		
+		$this->setPubkey($pubkey);
+		
+		$this->setUnit($unit);
+		
+		
+		$this->today = new DateTime();
+		
+		$this->handleDates($startDate, $endDate);
+		
+		$this->computeDaysLeft();
+	}
+	
+	public function setFilterMinDonation ($min) {
+		
+		$this->filterMinDonation = (float) $min;
+	}
+	
+	
+	public function getFilterMinDonation () {
+	
+		return $this->filterMinDonation;
+	}
+	
+	public function setFilterMinCommentLength ($length) {
+		
+		$this->filterMinCommentLength = (int) $length;
+	}
+	
+	
+	public function getFilterMinCommentLength () {
+	
+		return $this->filterMinCommentLength;
+	}
+	
+	public function getEndDate() {
+		
+		if (isset($this->endDate)) {
+			
+			return $this->endDate;
+		
+		} else {
+			
+			$this->decease(_('La date de fin n\'est pas définie.'));
+		}
+	}
+	
+	private function setUnit ($unit) {
+		
+		if (!empty($unit)) {
+			
+			if (!in_array($unit, $this->units)) {
+				
+				$out = [];
+				$out[] = _('L\'unité renseignée n\'existe pas.');
+				$out[] = _('Vérifiez votre synthaxe.');
+				
+				$this->decease($out);
+			
+			} else {
+			
+				$this->unit = $unit;
+			}
+		}
+	}
+	
+	private function setDisplayType ($displayType) {
+		
+		if (!empty($displayType)) {
+			
+			if (in_array($displayType, $this->validDisplayTypes)) {
+
+				$this->displayType = $displayType;
+
+			} else {
+
+				$this->decease(_('Ce type d\'affichage n\'existe pas.'));
+			}
+			
+		}
+	}
+	
+	public function decease ($errorMsgs) {
+		
+		if (!is_array($errorMsgs)) {
+			
+			$errorMsgs = explode("\n", $errorMsgs);
+		}
+		
+		
+		if ($this->displayType == 'img') {
+			
+			$source = imagecreatetruecolor(500, 200);
+			
+			$bgColor = imagecolorallocate($source, 
+										  255, 255, 255);
+			
+			imagefill($source, 
+					  0, 0, 
+					  $bgColor);
+			
+			$txtColor = imagecolorallocate($source, 
+										   0, 0, 0);
+			
+			$errorMsgFontSize = 3;
+			$x = 5;
+			$y = 5;
+			
+			foreach ($errorMsgs as $msg) {
+			
+				imagestring($source, $errorMsgFontSize, $x, $y, utf8_decode($msg), $txtColor);
+				
+				$y += $errorMsgFontSize + 20;
+			}
+			
+				
+			imagepng($source);
+			imagedestroy($source);
+			
+		} else if ($this->displayType == 'svg') {
+			
+			echo '<?xml version="1.0" encoding="utf-8"?>
+			<svg width="580" 
+				 height="224" 
+				 style="fill:black;" 
+				 version="1.1" 
+				 xmlns="http://www.w3.org/2000/svg" 
+				 xmlns:xlink="http://www.w3.org/1999/xlink">
+				 
+				<g style="font-family:sans-serif;">';
+				
+				$x = 25;
+				$y = 25;
+				
+				foreach ($errorMsgs as $msg) {
+						
+					echo '
+					<text
+						style="font-size:.8rem;"
+						x="'. $x .'"
+						y="'. $y . '"
+						dominant-baseline="hanging">
+							'. $msg . '
+					</text>';
+					
+					$y += 25;
+				}
+				
+				echo '
+				</g>
+			</svg>';
+			
+		} else {
+			
+			ob_get_clean(); // to prevent error message to display inside an HTML container (case of error generated by get method calls)
+			
+			echo '<!DOCTYPE html>
+			<html>
+				<head>
+					<meta charset="utf-8" />
+					<title>'. $this->getTitle() . '</title>
+					
+					<style>
+						
+						div {
+							
+							overflow: auto;
+							word-wrap: break-word;
+							background-color: hsl(0, 100%, 69%);
+							color: hsl(0, 100%, 19%);
+							margin: 1em;
+							padding: 1em;
+							border-radius: 1em;
+							position: fixed;
+							top: 0;
+							left: 0;
+							width: calc(100% - 4em);
+						}
+					</style>
+				</head>
+				
+				<body>
+					<div>';
+					
+			
+						foreach ($errorMsgs as $msg) {
+							
+							echo '<p>' . $msg . '</p>';
+						}
+						
+					echo '
+					</div>
+				</body>
+			</html>';
+		}
+		
+		exit;
+	}
+	
+	public function setTarget ($target) {
+		
+		if (empty($target)) {
+
+			$out = [];
+			$out[] = _('Il manque le montant à atteindre. Vérifiez votre syntaxe.');
+			$out[] = _('Vérifiez votre syntaxe.');
+			$this->decease($out);
+
+		} else {
+
+			$target = (int)$target;
+
+			if (!is_int($target)){
+
+				$out = [];
+				$out[] = _('Le montant n\'est pas un nombre entier.');
+				$out[] = _('Vérifiez votre syntaxe.');
+				$this->decease($out);
+
+			} else if ($target == 0) {
+
+				$out = [];
+				$out[] = _('Le montant cible est nul.');
+				$out[] = _('Vérifiez votre syntaxe.');
+				$this->decease($out);
+
+			} else if ($target < 0) {
+
+				$out = [];
+				$out[] = _('La montant cible inférieur à 0.');
+				$out[] = _('Vérifiez votre syntaxe.');
+				$this->decease($out);
+
+			} else { 
+
+				$this->target = $target;
+
+			}
+		}
+	}
+	
+	public function hasTarget() {
+		
+		return isset($this->target);
+	}
+	
+	public function getTarget () {
+		
+		if (!isset($this->target)) {
+			
+			$out = [];
+			$out[] = _('Il manque le montant à atteindre.');
+			$out[] = _('Vérifiez votre syntaxe.');
+			$this->decease($out);
+		
+		} else {
+			
+			return $this->target;
+		}
+		
+	}
+	
+	public function setMustDisplayGraph ($displayGraphOrNot) {
+		
+		if (in_array($displayGraphOrNot, $this->truePossibleValues)) {
+			
+			$this->mustDisplayGraph = true;
+			$this->fetchGraph();
+			
+		} else {
+			
+			$this->mustDisplayGraph = false;
+		}
+	}
+	
+	public function getMustDisplayGraph () {
+		
+		return $this->mustDisplayGraph;
+	}
+	
+	public function setMustDisplayQRCode ($mustDisplayQRCode) {
+		
+		$this->mustDisplayQRCode = $mustDisplayQRCode;
+		
+		if ($mustDisplayQRCode) {
+			
+			$qrCodePath = $this->qrCodesFolder . '/' . $this->pubkey . '.png';
+			
+			if (file_exists($qrCodePath)) {
+				
+				$this->qrCodePath = $qrCodePath;
+			
+			} else {
+				
+				QRcode::png($this->pubkey, $qrCodePath);
+				
+				$this->qrCodePath = $qrCodePath;
+			}
+		}
+	}
+	
+	public function getQRCodePath () {
+	
+		if (!file_exists($this->qrCodePath)) {
+			
+			return false;
+			
+		} else { 
+			
+			return $this->qrCodePath;
+		}
+	}
+	
+	public function setMustHideTitle ($mustHideTitle) {
+		
+		if (in_array($mustHideTitle, $this->truePossibleValues)) {
+			
+			$this->mustHideTitle = true;
+		
+		} else {
+			
+			$this->mustHideTitle = false;
+			
+		}
+	}
+	
+	public function getMustHideTitle () {
+		
+		return $this->mustHideTitle;
+	}
+	
+	public function setTitle ($title) {
+		
+		if (!empty($title)) {
+		
+			$this->title = htmlspecialchars($title);
+		}
+	}
+	
+	public function hasLogo() {
+		
+		return !empty($this->logoPath);
+	}
+	
+	public function setLogo ($logoName) {
+		
+		if ($this->displayType == 'img') {
+			
+			$logoPath = $this->logosFolder . '/png/' . $logoName . '.png';
+		
+		} else {
+			
+			$logoPath = $this->logosFolder . '/svg/' . $logoName . '.svg';
+		}
+		
+		
+		if (!file_exists($logoPath)) {
+			
+			$this->decease(_('Ce logo n\'existe pas.'));
+		
+		} else {
+			
+			$this->logoPath = $logoPath;
+		}
+	}
+	
+	public function getLogoPath() {
+		
+		return $this->logoPath;
+		
+	}
+	
+	public function getTitle () {
+		
+		return $this->title;
+	}
+		
+	public function getMustDisplayQRCode () {
+		
+		return $this->mustDisplayQRCode;
+	}
+	
+	public function getMustDisplayButton () {
+		
+		return $this->mustDisplayButton;
+	}
+	
+	public function setMustDisplayPubkey ($mustDisplayPubkey) {
+			
+		if (in_array($mustDisplayPubkey, $this->truePossibleValues)) {
+			
+			$this->mustDisplayPubkey = true;
+		
+		} else {
+			
+			$this->mustDisplayPubkey = false;
+		}
+	}
+	
+	public function getMustDisplayPubkey () {
+		
+		return $this->mustDisplayPubkey;
+	}
+	
+	public function setMustDisplayButton ($mustDisplayButton) {
+		
+		$this->mustDisplayButton = (bool) $mustDisplayButton;
+	}
+	
+	
+	public function getContributionURL () {
+		
+		if (!isset($this->contributionURL)) {
+			
+			$this->contributionURL ='https://' . $this->apiNode . '/api/#/v1/payment/' . $this->pubkey
+				. '?' . 
+					'amount=10|20|50|100|1000'
+				. '&amp;' . 
+					'comment=don' 
+				. '&amp;' . 
+					'redirect_url=https://%3A%252F%252F' . $this->apiNode
+				. '&amp;' . 
+					'cancel_url=https%3A%252F%252F' . $this->apiNode;
+		}
+				
+		return $this->contributionURL;
+		
+	}
+	
+	public function setPubkey ($pubkey) {
+		
+		if (empty($pubkey)) {
+			
+			$out = [];
+			$out[] = _('Il manque la clé publique du compte à vérifier.');
+			$out[] = _('Vérifiez votre syntaxe.');
+			
+			$this->decease($out);
+		
+		} else if (!preg_match(self::PUBKEY_FORMAT, $pubkey)) {
+			
+			$out = [];
+			$out[] = _('La pubkey n\'a pas le format attendu.');
+			$out[] = _('Vérifiez votre syntaxe.');
+			$this->decease($out);
+			
+		} else {
+			
+			$this->pubkey = $pubkey;
+			
+		}
+	}
+	
+	public function printUnit () {
+		
+		if ($this->unit == 'relative') {
+			
+			if ($this->displayType == 'img') {
+				
+				return _('DUĞ1');
+			
+			} else {
+				
+				return _('DU<sub>Ğ1</sub>');
+			}
+			
+		} else {
+			
+			return _('Ğ1');
+		}
+	}
+	
+	protected function isDate ($date, $format){
+		
+		$a = date_parse_from_format($format, $date);
+		
+		return checkdate($a["month"], $a["day"], $a["year"]);
+	}
+	
+	protected function handleDates ($startDate, $endDate) {
+		
+		/* Starting date handling */
+		
+		if (empty($startDate)) {
+			
+			$this->startDate = new DateTime('first day of this month');
+			
+		} else if (!$this->isDate($startDate, self::DATE_FORMAT)) {
+				
+			$out = [];
+			$out[] = _('La date de début n\'est pas correcte.');
+			$out[] = _('Vérifiez votre syntaxe.');
+			$this->decease($out);
+
+		} else {
+			
+			$d = DateTime::createFromFormat(self::DATE_FORMAT, $startDate);
+			
+			if ($d === false) {
+
+				$out = [];
+				$out[] = _('La date de début n\'est pas correcte.');
+				$out[] = _('Vérifiez votre syntaxe.');
+				$this->decease($out);
+			
+			} else {
+			
+				$this->startDate = $d;
+			}
+		}
+
+		/* Ending date handling */
+		
+		if (empty($endDate)) {
+			
+			$this->endDate = new DateTime('last day of this month');
+		
+		} else if ($endDate != 0) {
+			
+			if (!$this->isDate($endDate, self::DATE_FORMAT) ) {
+
+				$out = [];
+				$out[] = _('La date de fin est incorrecte.');
+				$out[] = _(' Vérifiez votre syntaxe.');
+				$this->decease($out);
+
+			} else {
+
+				$d = DateTime::createFromFormat(self::DATE_FORMAT, $endDate);
+				
+				if ($d === false) {
+					
+					$out = [];
+					$out[] = _('La date de fin est incorrecte.');
+					$out[] = _('Renseignez la au format '. self::DATE_FORMAT . '.');
+					$this->decease($out);
+
+				} elseif ($d < $this->startDate) {
+					
+					$out = [];
+					$out[] = _('La date de fin est antérieure à la date de début.');
+					$out[] = _('Un crowdfunding ne peut pas se terminer avant d\'avoir commencé.');
+					$out[] = _('Vérifiez vos dates :');
+					$out[] = _('Date de début : ') . $this->startDate->format(self::DATE_FORMAT);
+					$out[] = _('Date de fin : ') . $d->format(self::DATE_FORMAT);
+					
+					$this->decease($out);
+
+				} else {
+					
+					$this->endDate = $d;
+				}
+			}
+		}
+		
+		$this->startDate->setTime(0,0,0);
+	}
+	
+	protected function computeDaysLeft () {
+		
+		if ($this->endDate < $this->today) {
+			
+			$dteDiff = $this->today->diff($this->endDate);
+			$this->daysLeft = -1 * $dteDiff->format('%a');
+
+		} else {
+			
+			$dteDiff  = $this->endDate->diff($this->today);
+			$this->daysLeft = $dteDiff->format('%a');
+		}
+		
+	}
+	
+	public function getDaysLeft () {
+	
+		return $this->daysLeft;
+	}
+	
+	public function getMeanDonation () {
+		
+		if (empty($this->meanDonation)) {
+			
+			$this->meanDonation = $this->amountCollected / $this->donorsNb;
+		}
+		
+		return $this->meanDonation;
+	}
+	
+	public function getMaxDonation () {
+		
+		if (empty($this->maxDonation)) {
+
+			$max = 0;
+
+			foreach ($this->donationsList as $d) {
+				
+				$max = max($max, $d['amount']);
+		   }
+			
+			$this->maxDonation = $max;
+		}
+		
+		return $this->maxDonation;
+	}
+	
+	public function getPubkey () {
+		
+		return $this->pubkey;
+	}
+	
+	public function getMinDonation () {
+		
+		if (empty($this->minDonation)) {
+
+			$min = 666666;
+
+			foreach ($this->donationsList as $d) {
+				
+				$min = min($min, $d['amount']);
+		   }
+			
+			$this->minDonation = $min;
+		}
+		
+		return $this->minDonation;
+	}
+			
+	protected function computePercentage () {
+		
+		$this->percentage = $this->getAmountCollected() / $this->getTarget() * 100;
+		
+	}
+	
+	public function getPercentage () {
+		
+		if (!isset($this->percentage)) {
+			
+			$this->computePercentage();
+		
+		}
+		
+		return round($this->percentage);
+	}
+	
+	public function getAmountCollected () {
+		
+		if (isset($this->amountCollected)) {
+			
+			return $this->amountCollected;
+		
+		} else {
+			
+			return $this->fetchAmountCollected();
+		}
+	}
+	
+	public function getDonors () {
+		
+		return $this->donorsList;
+	}
+	
+	public function getDonorsNb () {
+		
+		if (isset($this->donorsNb)) {
+			
+			return $this->donorsNb;
+		
+		} else {
+			
+			return $this->fetchDonorsNb();
+		}
+	}
+	
+	public function fetchMonthlyMean ($monthsToConsider) {
+		
+		$nMonths = new DateInterval('P'. $monthsToConsider . 'M');
+		$dateMonthsAgo = clone $this->today;
+		$dateMonthsAgo->sub($nMonths);
+		$dateMonthsAgo = DateTime::createFromFormat('Y-m-d', 
+													$dateMonthsAgo->format('Y') . '-' . 
+													$dateMonthsAgo->format('m') . '-' . 
+													'01');
+		
+		$oneMonth = new DateInterval('P1M');
+		$dateFirstDayTodaysMonth = DateTime::createFromFormat('Y-m-d',
+															  $this->today->format('Y') . '-' . 
+															  $this->today->format('m') . '-' . 
+															  '01');
+		$dateLastDayOfPreviousMonth = clone $dateFirstDayTodaysMonth;
+		$aDay = new DateInterval('P1D');
+		$dateLastDayOfPreviousMonth->sub($aDay);
+		
+		$periodTotalCollected = 0;
+		
+		$tx = $this->getTransactions($this->pubkey, 
+									 $dateMonthsAgo->getTimestamp(), 
+									 $dateLastDayOfPreviousMonth->getTimestamp());
+		
+		$previousMonth = $dateMonthsAgo->format('Y-m');
+		$monthlyDonors[$previousMonth] = [];
+		$monthlyDonorsNb[$previousMonth] = 0;
+		
+		foreach ($tx as $t) {
+			
+			if ($t->issuers[0] != $this->pubkey) {
+				
+				foreach ($t->outputs as $o) {
+					
+					if (strstr($o, $this->pubkey)) {
+							
+						$transactionDate = new DateTime();
+						$transactionDate->setTimestamp($t->time);
+						
+						$currentMonth = $transactionDate->format('Y-m');
+						
+						if ($currentMonth != $previousMonth) {
+							
+							$monthlyDonors[$currentMonth] = [];
+							$monthlyDonorsNb[$currentMonth] = 0;
+						}
+						
+						$donor = $t->issuers[0];
+						
+						if (!in_array($donor, $monthlyDonors[$currentMonth])) {
+							
+							$monthlyDonors[$currentMonth][] = $donor;
+							++$monthlyDonorsNb[$currentMonth];
+						}
+						
+						$this->addPeriodDonor($donor);
+						
+						$o = explode(':', $o);
+						$transactionAmount = $o[0] / 100;
+						
+						$periodTotalCollected += $transactionAmount;
+						
+						$previousMonth = $currentMonth;
+					}
+				}
+			}
+		}
+		
+		$this->periodDonorsMean = ceil(array_sum($monthlyDonorsNb) / $monthsToConsider);
+			
+		$this->monthlyAmountCollectedMean = $this->convertIntoChosenUnit($periodTotalCollected / $monthsToConsider);
+		
+		return $this->monthlyAmountCollectedMean;	
+	}
+	
+	public function setButtonType ($type) {
+		
+		if (in_array($type, $this->validButtonTypes)) {
+			
+			$this->buttonType = $type;
+		}
+	}
+	
+	public function getButtonType () {
+		
+		return $this->buttonType;
+	}
+	
+	public function getPeriodDonorsMean ($monthsToConsider) {
+		
+		return $this->periodDonorsMean;
+	}
+	
+	private function addPeriodDonor ($donor) {
+		
+		if (!in_array($donor, $this->periodDonorsList)) {
+			
+			$this->periodDonorsList[] = $donor;
+			++$this->periodDonorsNb;
+		}
+	}
+	
+	public function getPeriodDonorsNb ($monthsToConsider) {
+		
+		if (!isset($this->periodDonorsNb)) {
+			
+			$this->fetchMonthlyMean($monthsToConsider);
+		}
+		
+		return $this->periodDonorsNb;
+	}
+	
+	public function getMonthlyAmountCollectedMean ($monthsToConsider) {
+		
+		if (!isset($this->monthlyAmountCollectedMean)) {
+			
+			$this->fetchMonthlyMean($monthsToConsider);
+		}
+		
+		return $this->monthlyAmountCollectedMean;
+	}
+	
+	private function getTransactions ($pubkey, $startTimestamp, $endTimestamp) {
+		
+		$json = $this->getJson('/tx/history/' . $pubkey . "/times/" . $startTimestamp . "/" . $endTimestamp);
+		
+		$transactions = json_decode($json);
+		
+		return $transactions->history->received;
+	}
+	
+	
+	public function keepOnlyHighestDonations () {
+		
+		
+	}
+	
+	public function getDonationsList () {
+		
+		if (empty($this->donationsList)) {
+			
+			$this->fetchDonationsList();
+		
+		}
+		
+		return $this->donationsList;
+			
+	}
+	
+	public function getFilteredDonationsList () {
+		
+		if (($this->getFilterMinDonation() <= 0) AND ($this->getFilterMinCommentLength() <= 0)) {
+			
+			return $this->getDonationsList();
+		
+		} else {
+
+			return array_filter($this->getDonationsList(), function ($v) {
+
+				return (
+					($v['amount'] >= $this->getFilterMinDonation())
+					 AND 
+					(strlen($v['comment']) >= $this->getFilterMinCommentLength())
+				);
+			});
+		}
+	}
+	
+	public function setMonthsToConsider ($m) {
+	
+		$this->monthsToConsider = (int) $m;
+	}
+	
+	public function getMonthsToConsider () {
+		
+		if (isset($this->monthsToConsider)) {
+			
+			return $this->monthsToConsider;
+		
+		} else {
+			
+			return $this->defaultMonthsToConsider;
+		}
+	}
+	
+	
+	private function addDonor ($donor) {
+		
+		if (!in_array($donor, $this->donorsList)) {
+			
+			$this->donorsList[] = $donor;
+			++$this->donorsNb;
+		}
+	}
+	
+	
+	private function fetchDonationsList () {
+		
+		$this->donorsNb = 0;
+		
+		$tx = $this->getTransactions($this->pubkey, 
+									 $this->startDate->getTimestamp(), 
+									 $this->endDate->getTimestamp());
+		
+		foreach ($tx as $t) {
+			
+			// Filter only incoming transactions
+			if ($t->issuers[0] != $this->pubkey) {
+			
+				$donor = $t->issuers[0];
+				
+				foreach ($t->outputs as $o) {
+					
+					if (strstr($o, $this->pubkey)) {
+						
+						$o = explode(':', $o);
+						
+						$transactionAmount = $this->convertIntoChosenUnit($o[0] / 100);
+						
+						$this->amountCollected += $transactionAmount;
+				
+						$this->addDonor($donor);
+						
+						$plusProfile = $this->getCesiumPlusProfile($donor);
+						
+						if (isset($plusProfile->_source->title)) {
+							
+							$name = $plusProfile->_source->title;
+						
+						} else {
+						
+							$name = substr($name, 0, 8);
+						}
+						
+						$this->donationsList[] = [
+							
+							'donor' => $donor, 
+							'name' => $name, 
+							'amount' => $transactionAmount, 
+							'comment' => $t->comment
+						];
+					}
+				}
+			}
+		}
+		
+		return $this->donationsList;
+	}
+	
+	private function fetchDonorsNb () {
+		
+		$this->fetchDonors();
+		
+		return $this->donorsNb;
+	}
+		
+	
+	private function fetchDonors () {
+		
+		$this->donorsNb = 0;
+		
+		$donationsList = $this->donationsList;
+		
+		if (!empty($donationsList)) {
+			
+			foreach ($donationsList as $donation) {
+				
+				$this->addDonor($donation['donor']);
+			}
+			
+		} else {
+
+			$tx = $this->getTransactions($this->pubkey, 
+										 $this->startDate->getTimestamp(), 
+										 $this->endDate->getTimestamp());
+
+			foreach ($tx as $t) {
+
+				if ($t->issuers[0] != $this->pubkey) {
+
+					$this->addDonor($t->issuers[0]);
+				}
+			}
+		}
+		
+		return $this->donors;
+	}
+	
+	public function convertIntoChosenUnit ($amountInQuantitative) {
+		
+		if ($this->unit == 'quantitative') {
+			
+			return $amountInQuantitative;
+		
+		} else { 
+			
+			return $amountInQuantitative / $this->getStartDateUdAmount();
+		}
+	}
+	
+	public function getCesiumPlusProfile ($pubkey) {
+		
+		$json = $this->getJson('/user/profile/' . $pubkey, true);
+		
+		return json_decode($json);
+	}
+	
+	private function fetchAmountCollected () {
+		
+		$this->amountCollected = 0;
+		$this->donorsNb = 0;
+		
+		$donationsList = $this->donationsList;
+		
+		if (!empty($donationsList)) {
+			
+			foreach ($donationsList as $donation) {
+				
+				$this->amountCollected += $donation['amount'];
+			}
+		
+		} else {
+
+			$tx = $this->getTransactions($this->pubkey, 
+										 $this->startDate->getTimestamp(), 
+										 $this->endDate->getTimestamp());
+
+			foreach ($tx as $t) {
+
+				// Filter incoming transactions
+				if ($t->issuers[0] != $this->pubkey) {
+
+					foreach ($t->outputs as $o) {
+
+						if (strstr($o, $this->pubkey)) {
+
+							$donor = $t->issuers[0];
+
+							$this->addDonor($donor);
+
+							$o = explode(':', $o);
+							$transactionAmount = $o[0] / 100;
+
+							$this->amountCollected += $transactionAmount;
+						}
+					}
+				}
+			}
+			$this->amountCollected = $this->convertIntoChosenUnit($this->amountCollected);
+		}
+		
+		
+		
+		return $this->amountCollected;
+		
+	}
+	
+	
+	
+	private function fetchGraph () {
+		
+		$this->donorsNb = 0;
+		
+		$dailyAmount = 0;
+		$dailyAmountCumulative = 0;
+		
+		$startTimestamp = $this->startDate->getTimestamp();
+		$todayTimestamp = $this->today->getTimestamp();
+		
+		$dayBefore = $startTimestamp;
+		
+		$tx = $this->getTransactions($this->pubkey, $startTimestamp, $todayTimestamp);
+		
+		$hours12 = 43200;
+		$hours24 = 86400;
+			
+		foreach ($tx as $t) {
+			
+			// Filter incoming transactions
+			if ($t->issuers[0] != $this->pubkey) {
+				
+				foreach ($t->outputs as $o) {
+					
+					if (strstr($o, $this->pubkey)) {
+
+						$donor = $t->issuers[0];
+
+						$this->addDonor($donor);
+						
+						$o = explode(':', $o);
+						$transactionAmount = $o[0] / 100;
+						
+						$dailyAmount += $transactionAmount;
+						$dailyAmountCumulative += $transactionAmount;
+						
+						$currentDay = $t->time - $t->time%$hours12 + $hours24;
+						
+						if ($currentDay != $dayBefore) {
+
+							$this->graphPoints['amountCollectedByDay'][] = [
+
+								't' => $dayBefore * 1000, 
+								'y' => (string) round($this->convertIntoChosenUnit($dailyAmount), 2)
+							];
+
+							$this->graphPoints['amountCollectedByDayCumulative'][] = [
+
+								't' => $dayBefore * 1000, 
+								'y' => (string) round($this->convertIntoChosenUnit($dailyAmountCumulative), 2)
+						   ];
+
+							$dailyAmount = 0;
+						}
+
+						$dayBefore = $currentDay;
+					}
+				}
+			}
+			
+			$lastTimestamp = $t->time;
+		}
+		
+		
+		$this->amountCollected = $this->convertIntoChosenUnit($dailyAmountCumulative);
+			
+		// On complète le tableau avec la derniere transaction et pour la date de visualisation du graph
+		$this->graphPoints['amountCollectedByDayCumulative'][] = [
+					   't' => $lastTimestamp * 1000, 
+					   'y' => (string) round($this->amountCollected, 2)
+		];
+
+		$this->graphPoints['amountCollectedByDayCumulative'][] = [
+					   't' => $todayTimestamp * 1000, 
+					   'y'=> (string) round($this->amountCollected, 2)
+		];
+		
+		if (isset($this->target)) {
+			
+			// On trace la droite de l'objectif
+			$this->graphPoints['targetLine'] = [
+
+				[
+					't' => $startTimestamp * 1000, 
+					'y' => (string) round($this->getTarget(), 2)
+				],
+				[
+					't' => $todayTimestamp * 1000, 
+					'y' => (string) round($this->getTarget(), 2)
+				]
+			];
+		}
+	}
+	
+	
+	public function getGraphAmountCollectedByDayPoints () {
+		
+		if (empty($this->graphPoints)) {
+			
+			$this->fetchGraph();
+		
+		} else {
+			
+			return json_encode($this->graphPoints['amountCollectedByDay']);
+		}
+		
+	}
+	
+	public function getGraphAmountCollectedByDayCumulativePoints () {
+		
+		if (empty($this->graphPoints)) {
+			
+			$this->fetchGraph();
+		
+		} else {
+			
+			return json_encode($this->graphPoints['amountCollectedByDayCumulative']);
+		}
+	}
+	
+	public function getGraphTargetLinePoints () {
+		
+		if (empty($this->graphPoints)) {
+			
+			$this->fetchGraph();
+		
+		} else {
+			
+			return json_encode($this->graphPoints['targetLine']);
+		}
+	}
+	
+	
+	
+	public function setNode ($node) {
+	
+		$this->node = htmlspecialchars($node);	
+	}
+	
+	public function getStartDateUDAmount () {
+		
+		if (!isset($this->startDateUdAmount)) {
+			
+			if ($this->startDate > $this->today) {
+
+				return $this->getLatestUdAmount();
+
+			} else {
+				
+				// On récupère les numéros de chaque blocks de DU journalier
+				$json = $this->getJson('/blockchain/with/ud');
+				$blocks = json_decode($json)->result->blocks;
+
+				// On calcule le nombre de jours écoulés entre aujourd'hui et la date de début
+				$diff = $this->today->diff($this->startDate)->format("%a");
+				
+				// On récupère le bloc de la date qui nous intéresse
+				$blockNum = $blocks[count($blocks) - $diff - 1];
+
+				// Puis on récupère le montant du DU
+				$json = $this->getJson('/blockchain/block/' . $blockNum);
+				$block = json_decode($json);
+
+				$this->startDateUdAmount = $block->dividend / 100;
+			}
+		}
+		
+		return $this->startDateUdAmount;
+	}
+	
+	
+	public function getJson ($uri, $cesiumPlus = false) {
+		
+		
+		if ($cesiumPlus) {
+			
+			$node = $this->cesiumPlusNode;
+			$nodes = $this->cesiumPlusNodes;
+		
+		} else {
+			
+			
+			$node = $this->node;
+			$nodes = $this->nodes;
+		}
+		
+		if (isset($node)) {
+			
+			$json = @file_get_contents("https://" . $node . $uri);
+		}
+
+		if (!isset($json)) {
+
+			// If node was not found, we fallback to a responding node
+
+			$nodesNb = count($nodes);
+
+			for ($i = 0; (!isset($json) AND ($i < $nodesNb)); ++$i) {
+
+				$json = @file_get_contents("https://" . $nodes[$i] . $uri);
+
+
+				if (isset($json)) {
+					
+					if ($cesiumPlus) {
+					
+						$this->cesiumPlusNode = $nodes[$i];	
+					
+					} else {
+					
+						$this->node = $nodes[$i];
+					}
+				}
+
+			}
+
+			if (!isset($json)) {
+
+				$this->decease(_('Aucun noeud Duniter n\'a été trouvé.'));
+				
+			} 
+		}
+		
+		return $json;
+	}
+	
+	
+	public function getLatestUdAmount () {
+		
+		if (!isset($this->latestUdAmount)) {
+			
+			// On récupère les numéros de chaque blocks de DU journalier
+			$json = $this->getJson('/blockchain/with/ud');
+			$blocks = json_decode($json)->result->blocks;
+			
+			// On récupère le dernier block qui contient le DU
+			$blockNum = end($blocks);
+
+			// Puis on récupère le montant du DU
+			$json = $this->getJson('/blockchain/with/ud');
+			$block = json_decode($json);
+
+			$this->latestUdAmount = $block->dividend / 100;
+		}
+		
+		return $this->latestUdAmount;
+	}
+	
+	
+}
diff --git a/inc/Funding.class.php b/inc/Funding.class.php
deleted file mode 100644
index 7bca0da3169cadb33cc2c928db1ddb943cadc538..0000000000000000000000000000000000000000
--- a/inc/Funding.class.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-
-/*
-
------
-
-Ce script est basé sur la "barre de financement intégrable" développée par Pierre-Jean Chancellier.
-
-Son travail original se trouve ici : 
-
-https://git.duniter.org/paidge/barre-de-financement-int-grable
-
------
-
-This script is based on Pierre-Jean Chancellier's "barre de financement intégrable".
-
-See original work at : 
-
-https://git.duniter.org/paidge/barre-de-financement-int-grable
-
-*/
-
-class Funding
-{
-	private $units = ['quantitative','relative'];
-	
-	private $unit = 'relative';
-	
-	private $pubkeyFormat = '#^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$#';
-	
-	private $node = 'g1.duniter.org';
-	
-	private $pubkey;
-	
-	private $target;
-	
-	private $startDate;
-	
-	private $total = 0;
-	
-	private $donorsNb = 0;
-	
-	private $percentage;
-	
-	
-	
-	public function __construct ($pubkey, $target, $startDate, $unit = 'relative')
-	{
-		if (!preg_match($this->pubkeyFormat, $pubkey)) {
-			
-			echo "<p>La pubkey n'a pas le format attendu. Vérifiez votre syntaxe.</p>";
-			exit;
-			
-		}
-		
-		$this->pubkey = $pubkey;
-		
-		$this->target = $target;
-		
-		$this->startDate = $startDate;
-		
-		$this->unit = $unit;
-		
-		$this->computeAmountDonatedAndDonorsNb();
-			
-		$this->percentage = round($this->total / $this->target * 100);
-		
-	}
-	
-	public function getPercentage ()
-	{
-		return $this->percentage;	
-	}
-	
-	public function getAmountDonated ()
-	{
-		return $this->total;	
-	}
-	
-	public function getDonorsNb ()
-	{
-		return $this->donorsNb;
-	}
-	
-	private function computeAmountDonatedAndDonorsNb ()
-	{
-		
-		$today = new DateTime();
-		$format = "d/m/Y";
-		function isDate(&$date, $format){
-			$champsDate = date_parse_from_format($format, $date);
-			$date = DateTime::createFromFormat($format, $date);
-			return checkdate($champsDate["month"], $champsDate["day"], $champsDate["year"]);
-		}
-
-		// Vérification des dates et calcul du nombre de jours entre la date du jour et la date de fin
-		if (!empty($this->startDate)){
-			
-			$start_date = $this->startDate;
-			
-			if (!isDate($start_date, $format)){
-				echo "<p>La date de début n'est pas correcte. Vérifiez votre syntaxe.</p>";
-				exit;
-			}
-			
-			$start_date->sub(new DateInterval('P1D'));
-			
-		} else {
-			
-			echo "<p>Il manque la date de début. Vérifiez votre syntaxe.</p>";
-			exit;
-			
-		}
-		
-		// Récupération des transactions entrantes entre la date de début et la date du jour
-		$url_json = "https://" . $this->node . "/tx/history/" . $this->pubkey . "/times/" . $start_date->getTimestamp() . "/" . $today->getTimestamp();
-		$json = file_get_contents($url_json);
-		$json = json_decode($json);
-		$transactions = $json->history->received;
-		$donors = [];
-		$current_date = $start_date->format($format);
-		$array_dates = [$current_date];
-		$array_montants = [];
-
-		foreach ($transactions as $transaction){
-
-			$donor = $transaction->issuers[0];
-
-			if ($donor != $this->pubkey){
-
-				if(!in_array($donor, $donors)){
-
-					array_push($donors, $donor);
-
-				}
-				
-				$outputs = $transaction->outputs;
-				
-				foreach ($outputs as $output){
-
-					if (strstr($output,$this->pubkey)){
-
-						$timestamp = $transaction->blockstampTime;
-						$date_transaction = date('d/m/Y', $timestamp);
-
-						if ($date_transaction != $current_date){
-
-							array_push($array_dates, $date_transaction);
-							array_push($array_montants, $this->total);
-							$current_date = $date_transaction;
-						}
-
-						$output = explode(":", $output);
-						$montant = $output[0]/100;
-
-						$this->total += $montant;
-					}
-				}
-			}
-		}
-
-		array_push($array_montants, $this->total);
-		$this->donorsNb = count($donors);	
-		
-		if ($this->unit == 'relative')
-		{
-			$this->total = round($this->total / $this->getLastUDAmount());
-		}
-	}
-	
-	public function setNode ($node)
-	{
-		$this->node = $node;	
-	}
-	
-	public function getLastUDAmount ()
-	{
-		// On récupère le dernier block qui contient le DU
-		$url_json = "https://" . $this->node . "/blockchain/with/ud";
-		$json = file_get_contents($url_json);
-		$json = json_decode($json);
-		$last_block_with_ud = end($json->result->blocks);
-
-		// Puis on récupère le montant du DU
-		$url_json = "https://" . $this->node . "/blockchain/block/" . $last_block_with_ud;
-		$json = file_get_contents($url_json);
-		$json = json_decode($json);
-		$ud = $json->dividend/100;
-		
-		return $ud;
-	}
-	
-	
-}
diff --git a/inc/functions.php b/inc/functions.php
index 4df84cc687f1b306a530ef7ac1bb383c6055edab..2b7fe8e2ead8ae648b8afdc533d78af1b810f803 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -39,4 +39,19 @@ function getUserIpAddress ()
 
 	}
 
-}
\ No newline at end of file
+}
+
+
+
+function removeTrailingSlash ($str) {
+
+	if (substr($str, -1) == '/') {
+
+		return substr($str, 0, -1);
+
+	} else {
+
+		return $str;
+	}
+}
+
diff --git a/index.php b/index.php
index ff3a9247c881b4d75fc45c0eb8ae177beb877654..ee2d674b4e298277c47da817b7c0ee157782849f 100644
--- a/index.php
+++ b/index.php
@@ -6,8 +6,6 @@ defineLang();
 putenv('LC_ALL='. LANG_FOLDER);
 setlocale(LC_ALL, LOCALE_CODE);
 
-textdomain("menu");
-
 if (!isset($_GET['page'])) {
 	
 	$page = NULL;
@@ -25,37 +23,37 @@ $router =
 	array(
 		[
 			'permalink' => '/', 
-			'i18nedPermalink' => _('/'), 
+			'i18nedPermalink' => dgettext('menu', '/'), 
 			'tpl' => 'home.php'
 		], 
 		[
 			'permalink' => '/fonctionnalites', 
-			'i18nedPermalink' => _('/fonctionnalites'), 
+			'i18nedPermalink' => dgettext('menu', '/fonctionnalites'), 
 			'tpl' => 'features.php'
 		], 
 		[
 			'permalink' => '/telechargement', 
-			'i18nedPermalink' => _('/telechargement'), 
+			'i18nedPermalink' => dgettext('menu', '/telechargement'), 
 			'tpl' => 'download.php'
 		], 
 		[
 			'permalink' => '/merci', 
-			'i18nedPermalink' => _('/merci'), 
+			'i18nedPermalink' => dgettext('menu', '/merci'), 
 			'tpl' => 'funding.php'
 		], 
 		[
 			'permalink' => '/tutoriel-cesium', 
-			'i18nedPermalink' => _('/tutoriel-cesium'), 
+			'i18nedPermalink' => dgettext('menu', '/tutoriel-cesium'), 
 			'tpl' => 'tuto.php'
 		], 
 		[
 			'permalink' => '/developpeurs', 
-			'i18nedPermalink' => _('/developpeurs'), 
+			'i18nedPermalink' => dgettext('menu', '/developpeurs'), 
 			'tpl' => 'jobs.php'
 		],
 		[
 			'permalink' => '/mentions-legales', 
-			'i18nedPermalink' => _('/mentions-legales'), 
+			'i18nedPermalink' => dgettext('menu', '/mentions-legales'), 
 			'tpl' => 'legal-notice.php'
 		]
 	);
@@ -69,7 +67,7 @@ foreach ($router as $route)
 	{
 		$found = true;
 		$pagePermalink = $route['permalink'];
-		$pageIsHome = ($route['i18nedPermalink'] == _('/')) ? true : false;
+		$pageIsHome = ($route['i18nedPermalink'] == dgettext('menu', '/')) ? true : false;
 		
 		include('tpl/' . $route['tpl']);
 		
diff --git a/lib/jquery-3.4.1.min.js b/lib/jquery-3.4.1.min.js
new file mode 100755
index 0000000000000000000000000000000000000000..a1c07fd803b5fc9c54f44e31123ae4fa11e134b0
--- /dev/null
+++ b/lib/jquery-3.4.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
diff --git a/lib/less-3.9.0.min.js b/lib/less-3.9.0.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..59944494cb4f93380c75b2e524e7f24806c9082c
--- /dev/null
+++ b/lib/less-3.9.0.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Less - Leaner CSS v3.9.0
+ * http://lesscss.org
+ *
+ * Copyright (c) 2009-2018, Alexis Sellier <self@cloudhead.net>
+ * Licensed under the Apache-2.0 License.
+ *
+ */
+
+ /** * @license Apache-2.0
+ */
+
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.less=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){var d=a("./utils").addDataAttr,e=a("./browser");b.exports=function(a,b){d(b,e.currentScript(a)),void 0===b.isFileProtocol&&(b.isFileProtocol=/^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(a.location.protocol)),b.async=b.async||!1,b.fileAsync=b.fileAsync||!1,b.poll=b.poll||(b.isFileProtocol?1e3:1500),b.env=b.env||("127.0.0.1"==a.location.hostname||"0.0.0.0"==a.location.hostname||"localhost"==a.location.hostname||a.location.port&&a.location.port.length>0||b.isFileProtocol?"development":"production");var c=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(a.location.hash);c&&(b.dumpLineNumbers=c[1]),void 0===b.useFileCache&&(b.useFileCache=!0),void 0===b.onReady&&(b.onReady=!0),b.relativeUrls&&(b.rewriteUrls="all")}},{"./browser":3,"./utils":11}],2:[function(a,b,c){function d(a){a.filename&&console.warn(a),e.async||h.removeChild(i)}a("promise/polyfill");var e=a("../less/default-options")();if(window.less)for(key in window.less)window.less.hasOwnProperty(key)&&(e[key]=window.less[key]);a("./add-default-options")(window,e),e.plugins=e.plugins||[],window.LESS_PLUGINS&&(e.plugins=e.plugins.concat(window.LESS_PLUGINS));var f=b.exports=a("./index")(window,e);window.less=f;var g,h,i;e.onReady&&(/!watch/.test(window.location.hash)&&f.watch(),e.async||(g="body { display: none !important }",h=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style"),i.type="text/css",i.styleSheet?i.styleSheet.cssText=g:i.appendChild(document.createTextNode(g)),h.appendChild(i)),f.registerStylesheetsImmediately(),f.pageLoadFinished=f.refresh("development"===f.env).then(d,d))},{"../less/default-options":17,"./add-default-options":1,"./index":8,"promise/polyfill":104}],3:[function(a,b,c){var d=a("./utils");b.exports={createCSS:function(a,b,c){var e=c.href||"",f="less:"+(c.title||d.extractId(e)),g=a.getElementById(f),h=!1,i=a.createElement("style");i.setAttribute("type","text/css"),c.media&&i.setAttribute("media",c.media),i.id=f,i.styleSheet||(i.appendChild(a.createTextNode(b)),h=null!==g&&g.childNodes.length>0&&i.childNodes.length>0&&g.firstChild.nodeValue===i.firstChild.nodeValue);var j=a.getElementsByTagName("head")[0];if(null===g||h===!1){var k=c&&c.nextSibling||null;k?k.parentNode.insertBefore(i,k):j.appendChild(i)}if(g&&h===!1&&g.parentNode.removeChild(g),i.styleSheet)try{i.styleSheet.cssText=b}catch(l){throw new Error("Couldn't reassign styleSheet.cssText.")}},currentScript:function(a){var b=a.document;return b.currentScript||function(){var a=b.getElementsByTagName("script");return a[a.length-1]}()}}},{"./utils":11}],4:[function(a,b,c){b.exports=function(a,b,c){var d=null;if("development"!==b.env)try{d="undefined"==typeof a.localStorage?null:a.localStorage}catch(e){}return{setCSS:function(a,b,e,f){if(d){c.info("saving "+a+" to cache.");try{d.setItem(a,f),d.setItem(a+":timestamp",b),e&&d.setItem(a+":vars",JSON.stringify(e))}catch(g){c.error('failed to save "'+a+'" to local storage for caching.')}}},getCSS:function(a,b,c){var e=d&&d.getItem(a),f=d&&d.getItem(a+":timestamp"),g=d&&d.getItem(a+":vars");if(c=c||{},g=g||"{}",f&&b.lastModified&&new Date(b.lastModified).valueOf()===new Date(f).valueOf()&&JSON.stringify(c)===g)return e}}}},{}],5:[function(a,b,c){var d=a("./utils"),e=a("./browser");b.exports=function(a,b,c){function f(b,f){var g,h,i="less-error-message:"+d.extractId(f||""),j='<li><label>{line}</label><pre class="{class}">{content}</pre></li>',k=a.document.createElement("div"),l=[],m=b.filename||f,n=m.match(/([^\/]+(\?.*)?)$/)[1];k.id=i,k.className="less-error-message",h="<h3>"+(b.type||"Syntax")+"Error: "+(b.message||"There is an error in your .less file")+'</h3><p>in <a href="'+m+'">'+n+"</a> ";var o=function(a,b,c){void 0!==a.extract[b]&&l.push(j.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};b.line&&(o(b,0,""),o(b,1,"line"),o(b,2,""),h+="on line "+b.line+", column "+(b.column+1)+":</p><ul>"+l.join("")+"</ul>"),b.stack&&(b.extract||c.logLevel>=4)&&(h+="<br/>Stack Trace</br />"+b.stack.split("\n").slice(1).join("<br/>")),k.innerHTML=h,e.createCSS(a.document,[".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),k.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),"development"===c.env&&(g=setInterval(function(){var b=a.document,c=b.body;c&&(b.getElementById(i)?c.replaceChild(k,b.getElementById(i)):c.insertBefore(k,c.firstChild),clearInterval(g))},10))}function g(b){var c=a.document.getElementById("less-error-message:"+d.extractId(b));c&&c.parentNode.removeChild(c)}function h(a){}function i(a){c.errorReporting&&"html"!==c.errorReporting?"console"===c.errorReporting?h(a):"function"==typeof c.errorReporting&&c.errorReporting("remove",a):g(a)}function j(a,d){var e="{line} {content}",f=a.filename||d,g=[],h=(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+" in "+f,i=function(a,b,c){void 0!==a.extract[b]&&g.push(e.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};a.line&&(i(a,0,""),i(a,1,"line"),i(a,2,""),h+=" on line "+a.line+", column "+(a.column+1)+":\n"+g.join("\n")),a.stack&&(a.extract||c.logLevel>=4)&&(h+="\nStack Trace\n"+a.stack),b.logger.error(h)}function k(a,b){c.errorReporting&&"html"!==c.errorReporting?"console"===c.errorReporting?j(a,b):"function"==typeof c.errorReporting&&c.errorReporting("add",a,b):f(a,b)}return{add:k,remove:i}}},{"./browser":3,"./utils":11}],6:[function(a,b,c){b.exports=function(b,c){var d=a("../less/environment/abstract-file-manager.js"),e={},f=function(){};return f.prototype=new d,f.prototype.alwaysMakePathsAbsolute=function(){return!0},f.prototype.join=function(a,b){return a?this.extractUrlParts(b,a).path:b},f.prototype.doXHR=function(a,d,e,f){function g(b,c,d){b.status>=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):"function"==typeof d&&d(b.status,a)}var h=new XMLHttpRequest,i=!b.isFileProtocol||b.fileAsync;"function"==typeof h.overrideMimeType&&h.overrideMimeType("text/css"),c.debug("XHR: Getting '"+a+"'"),h.open("GET",a,i),h.setRequestHeader("Accept",d||"text/x-less, text/css; q=0.9, */*; q=0.5"),h.send(null),b.isFileProtocol&&!b.fileAsync?0===h.status||h.status>=200&&h.status<300?e(h.responseText):f(h.status,a):i?h.onreadystatechange=function(){4==h.readyState&&g(h,e,f)}:g(h,e,f)},f.prototype.supports=function(a,b,c,d){return!0},f.prototype.clearFileCache=function(){e={}},f.prototype.loadFile=function(a,b,c,d){b&&!this.isPathAbsolute(a)&&(a=b+a),a=c.ext?this.tryAppendExtension(a,c.ext):a,c=c||{};var f=this.extractUrlParts(a,window.location.href),g=f.url,h=this;return new Promise(function(a,b){if(c.useFileCache&&e[g])try{var d=e[g];return a({contents:d,filename:g,webInfo:{lastModified:new Date}})}catch(f){return b({filename:g,message:"Error loading file "+g+" error was "+f.message})}h.doXHR(g,c.mime,function(b,c){e[g]=b,a({contents:b,filename:g,webInfo:{lastModified:c}})},function(a,c){b({type:"File",message:"'"+c+"' wasn't found ("+a+")",href:g})})})},f}},{"../less/environment/abstract-file-manager.js":18}],7:[function(a,b,c){b.exports=function(){function b(){throw{type:"Runtime",message:"Image size functions are not supported in browser version of less"}}var c=a("./../less/functions/function-registry"),d={"image-size":function(a){return b(this,a),-1},"image-width":function(a){return b(this,a),-1},"image-height":function(a){return b(this,a),-1}};c.addMultiple(d)}},{"./../less/functions/function-registry":27}],8:[function(a,b,c){var d=a("./utils").addDataAttr,e=a("./browser");b.exports=function(b,c){function f(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function g(a,b){var c=Array.prototype.slice.call(arguments,2);return function(){var d=c.concat(Array.prototype.slice.call(arguments,0));return a.apply(b,d)}}function h(a){for(var b,d=l.getElementsByTagName("style"),e=0;e<d.length;e++)if(b=d[e],b.type.match(s)){var h=f(c);h.modifyVars=a;var i=b.innerHTML||"";h.filename=l.location.href.replace(/#.*$/,""),m.render(i,h,g(function(a,b,c){b?q.add(b,"inline"):(a.type="text/css",a.styleSheet?a.styleSheet.cssText=c.css:a.innerHTML=c.css)},null,b))}}function i(a,b,e,g,h){function i(c){var d=c.contents,f=c.filename,h=c.webInfo,i={currentDirectory:p.getPath(f),filename:f,rootFilename:f,rewriteUrls:j.rewriteUrls};if(i.entryPath=i.currentDirectory,i.rootpath=j.rootpath||i.currentDirectory,h){h.remaining=g;var k=r.getCSS(f,h,j.modifyVars);if(!e&&k)return h.local=!0,void b(null,k,d,a,h,f)}q.remove(f),j.rootFileInfo=i,m.render(d,j,function(c,e){c?(c.href=f,b(c)):(r.setCSS(a.href,h.lastModified,j.modifyVars,e.css),b(null,e.css,d,a,h,f))})}var j=f(c);d(j,a),j.mime=a.type,h&&(j.modifyVars=h),p.loadFile(a.href,null,j,n).then(function(a){i(a)})["catch"](function(a){console.log(a),b(a)})}function j(a,b,c){for(var d=0;d<m.sheets.length;d++)i(m.sheets[d],a,b,m.sheets.length-(d+1),c)}function k(){"development"===m.env&&(m.watchTimer=setInterval(function(){m.watchMode&&(p.clearFileCache(),j(function(a,c,d,f,g){a?q.add(a,a.href||f.href):c&&e.createCSS(b.document,c,f)}))},c.poll))}var l=b.document,m=a("../less")();m.options=c;var n=m.environment,o=a("./file-manager")(c,m.logger),p=new o;n.addFileManager(p),m.FileManager=o,m.PluginLoader=a("./plugin-loader"),a("./log-listener")(m,c);var q=a("./error-reporting")(b,m,c),r=m.cache=c.cache||a("./cache")(b,c,m.logger);a("./image-size")(m.environment),c.functions&&m.functions.functionRegistry.addMultiple(c.functions);var s=/^text\/(x-)?less$/;return m.watch=function(){return m.watchMode||(m.env="development",k()),this.watchMode=!0,!0},m.unwatch=function(){return clearInterval(m.watchTimer),this.watchMode=!1,!1},m.registerStylesheetsImmediately=function(){var a=l.getElementsByTagName("link");m.sheets=[];for(var b=0;b<a.length;b++)("stylesheet/less"===a[b].rel||a[b].rel.match(/stylesheet/)&&a[b].type.match(s))&&m.sheets.push(a[b])},m.registerStylesheets=function(){return new Promise(function(a,b){m.registerStylesheetsImmediately(),a()})},m.modifyVars=function(a){return m.refresh(!0,a,!1)},m.refresh=function(a,c,d){return(a||d)&&d!==!1&&p.clearFileCache(),new Promise(function(d,f){var g,i,k,l;g=i=new Date,l=m.sheets.length,0===l?(i=new Date,k=i-g,m.logger.info("Less has finished and no sheets were loaded."),d({startTime:g,endTime:i,totalMilliseconds:k,sheets:m.sheets.length})):j(function(a,c,h,j,n){return a?(q.add(a,a.href||j.href),void f(a)):(m.logger.info(n.local?"Loading "+j.href+" from cache.":"Rendered "+j.href+" successfully."),e.createCSS(b.document,c,j),m.logger.info("CSS for "+j.href+" generated in "+(new Date-i)+"ms"),l--,0===l&&(k=new Date-g,m.logger.info("Less has finished. CSS generated in "+k+"ms"),d({startTime:g,endTime:i,totalMilliseconds:k,sheets:m.sheets.length})),void(i=new Date))},a,c),h(c)})},m.refreshStyles=h,m}},{"../less":37,"./browser":3,"./cache":4,"./error-reporting":5,"./file-manager":6,"./image-size":7,"./log-listener":9,"./plugin-loader":10,"./utils":11}],9:[function(a,b,c){b.exports=function(a,b){var c=4,d=3,e=2,f=1;b.logLevel="undefined"!=typeof b.logLevel?b.logLevel:"development"===b.env?d:f,b.loggers||(b.loggers=[{debug:function(a){b.logLevel>=c&&console.log(a)},info:function(a){b.logLevel>=d&&console.log(a)},warn:function(a){b.logLevel>=e&&console.warn(a)},error:function(a){b.logLevel>=f&&console.error(a)}}]);for(var g=0;g<b.loggers.length;g++)a.logger.addListener(b.loggers[g])}},{}],10:[function(a,b,c){var d=a("../less/environment/abstract-plugin-loader.js"),e=function(a){this.less=a};e.prototype=new d,e.prototype.loadPlugin=function(a,b,c,d,e){return new Promise(function(f,g){e.loadFile(a,b,c,d).then(f)["catch"](g)})},b.exports=e},{"../less/environment/abstract-plugin-loader.js":19}],11:[function(a,b,c){b.exports={extractId:function(a){return a.replace(/^[a-z-]+:\/+?[^\/]+/,"").replace(/[\?\&]livereload=\w+/,"").replace(/^\//,"").replace(/\.[a-zA-Z]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")},addDataAttr:function(a,b){for(var c in b.dataset)if(b.dataset.hasOwnProperty(c))if("env"===c||"dumpLineNumbers"===c||"rootpath"===c||"errorReporting"===c)a[c]=b.dataset[c];else try{a[c]=JSON.parse(b.dataset[c])}catch(d){}}}},{}],12:[function(a,b,c){b.exports={Math:{ALWAYS:0,PARENS_DIVISION:1,PARENS:2,STRICT_LEGACY:3},RewriteUrls:{OFF:0,LOCAL:1,ALL:2}}},{}],13:[function(a,b,c){function d(a){return!/^(?:[a-z-]+:|\/|#)/i.test(a)}function e(a){return"."===a.charAt(0)}var f={};b.exports=f;var g=a("./constants"),h=function(a,b,c){if(a)for(var d=0;d<c.length;d++)a.hasOwnProperty(c[d])&&(b[c[d]]=a[c[d]])},i=["paths","rewriteUrls","rootpath","strictImports","insecure","dumpLineNumbers","compress","syncImport","chunkInput","mime","useFileCache","processImports","pluginManager"];f.Parse=function(a){h(a,this,i),"string"==typeof this.paths&&(this.paths=[this.paths])};var j=["paths","compress","ieCompat","math","strictUnits","sourceMap","importMultiple","urlArgs","javascriptEnabled","pluginManager","importantScope","rewriteUrls"];f.Eval=function(a,b){h(a,this,j),"string"==typeof this.paths&&(this.paths=[this.paths]),this.frames=b||[],this.importantScope=this.importantScope||[]},f.Eval.prototype.enterCalc=function(){this.calcStack||(this.calcStack=[]),this.calcStack.push(!0),this.inCalc=!0},f.Eval.prototype.exitCalc=function(){this.calcStack.pop(),this.calcStack||(this.inCalc=!1)},f.Eval.prototype.inParenthesis=function(){this.parensStack||(this.parensStack=[]),this.parensStack.push(!0)},f.Eval.prototype.outOfParenthesis=function(){this.parensStack.pop()},f.Eval.prototype.inCalc=!1,f.Eval.prototype.mathOn=!0,f.Eval.prototype.isMathOn=function(a){return!!this.mathOn&&(!!("/"!==a||this.math===g.Math.ALWAYS||this.parensStack&&this.parensStack.length)&&(!(this.math>g.Math.PARENS_DIVISION)||this.parensStack&&this.parensStack.length))},f.Eval.prototype.pathRequiresRewrite=function(a){var b=this.rewriteUrls===g.RewriteUrls.LOCAL?e:d;return b(a)},f.Eval.prototype.rewritePath=function(a,b){var c;return b=b||"",c=this.normalizePath(b+a),e(a)&&d(b)&&e(c)===!1&&(c="./"+c),c},f.Eval.prototype.normalizePath=function(a){var b,c=a.split("/").reverse();for(a=[];0!==c.length;)switch(b=c.pop()){case".":break;case"..":0===a.length||".."===a[a.length-1]?a.push(b):a.pop();break;default:a.push(b)}return a.join("/")}},{"./constants":12}],14:[function(a,b,c){b.exports={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{}],15:[function(a,b,c){b.exports={colors:a("./colors"),unitConversions:a("./unit-conversions")}},{"./colors":14,"./unit-conversions":16}],16:[function(a,b,c){b.exports={length:{m:1,cm:.01,mm:.001,"in":.0254,px:.0254/96,pt:.0254/72,pc:.0254/72*12},duration:{s:1,ms:.001},angle:{rad:1/(2*Math.PI),deg:1/360,grad:.0025,turn:1}}},{}],17:[function(a,b,c){b.exports=function(){return{javascriptEnabled:!1,depends:!1,compress:!1,lint:!1,paths:[],color:!0,strictImports:!1,insecure:!1,rootpath:"",rewriteUrls:!1,ieCompat:!1,math:0,strictUnits:!1,globalVars:null,modifyVars:null,urlArgs:""}}},{}],18:[function(a,b,c){var d=function(){};d.prototype.getPath=function(a){var b=a.lastIndexOf("?");return b>0&&(a=a.slice(0,b)),b=a.lastIndexOf("/"),b<0&&(b=a.lastIndexOf("\\")),b<0?"":a.slice(0,b+1)},d.prototype.tryAppendExtension=function(a,b){return/(\.[a-z]*$)|([\?;].*)$/.test(a)?a:a+b},d.prototype.tryAppendLessExtension=function(a){return this.tryAppendExtension(a,".less")},d.prototype.supportsSync=function(){return!1},d.prototype.alwaysMakePathsAbsolute=function(){return!1},d.prototype.isPathAbsolute=function(a){return/^(?:[a-z-]+:|\/|\\|#)/i.test(a)},d.prototype.join=function(a,b){return a?a+b:b},d.prototype.pathDiff=function(a,b){var c,d,e,f,g=this.extractUrlParts(a),h=this.extractUrlParts(b),i="";if(g.hostPart!==h.hostPart)return"";for(d=Math.max(h.directories.length,g.directories.length),c=0;c<d&&h.directories[c]===g.directories[c];c++);for(f=h.directories.slice(c),e=g.directories.slice(c),c=0;c<f.length-1;c++)i+="../";for(c=0;c<e.length-1;c++)i+=e[c]+"/";return i},d.prototype.extractUrlParts=function(a,b){var c,d,e=/^((?:[a-z-]+:)?\/{2}(?:[^\/\?#]*\/)|([\/\\]))?((?:[^\/\\\?#]*[\/\\])*)([^\/\\\?#]*)([#\?].*)?$/i,f=a.match(e),g={},h=[],i=[];if(!f)throw new Error("Could not parse sheet href - '"+a+"'");if(b&&(!f[1]||f[2])){if(d=b.match(e),!d)throw new Error("Could not parse page url - '"+b+"'");f[1]=f[1]||d[1]||"",f[2]||(f[3]=d[3]+f[3])}if(f[3])for(h=f[3].replace(/\\/g,"/").split("/"),c=0;c<h.length;c++)".."===h[c]?i.pop():"."!==h[c]&&i.push(h[c]);return g.hostPart=f[1],g.directories=i,g.rawPath=(f[1]||"")+h.join("/"),g.path=(f[1]||"")+i.join("/"),g.filename=f[4],g.fileUrl=g.path+(f[4]||""),g.url=g.fileUrl+(f[5]||""),g},b.exports=d},{}],19:[function(a,b,c){var d=a("../functions/function-registry"),e=a("../less-error"),f=function(){this.require=function(){return null}};f.prototype.evalPlugin=function(a,b,c,f,g){var h,i,j,k,l,m,n;l=b.pluginManager,g&&(m="string"==typeof g?g:g.filename);var o=(new this.less.FileManager).extractUrlParts(m).filename;if(m&&(j=l.get(m))){if(n=this.trySetOptions(j,m,o,f))return n;try{j.use&&j.use.call(this.context,j)}catch(p){return p.message=p.message||"Error during @plugin call",new e(p,c,m)}return j}k={exports:{},pluginManager:l,fileInfo:g},i=d.create();var q=function(a){j=a};try{h=new Function("module","require","registerPlugin","functions","tree","less","fileInfo",a),h(k,this.require(m),q,i,this.less.tree,this.less,g)}catch(p){return new e(p,c,m)}if(j||(j=k.exports),j=this.validatePlugin(j,m,o),j instanceof e)return j;if(!j)return new e({message:"Not a valid plugin"},c,m);if(j.imports=c,j.filename=m,(!j.minVersion||this.compareVersion("3.0.0",j.minVersion)<0)&&(n=this.trySetOptions(j,m,o,f)))return n;if(l.addPlugin(j,g.filename,i),j.functions=i.getLocalFunctions(),n=this.trySetOptions(j,m,o,f))return n;try{j.use&&j.use.call(this.context,j)}catch(p){return p.message=p.message||"Error during @plugin call",new e(p,c,m)}return j},f.prototype.trySetOptions=function(a,b,c,d){if(d&&!a.setOptions)return new e({message:"Options have been provided but the plugin "+c+" does not support any options."});try{a.setOptions&&a.setOptions(d)}catch(f){return new e(f)}},f.prototype.validatePlugin=function(a,b,c){return a?("function"==typeof a&&(a=new a),a.minVersion&&this.compareVersion(a.minVersion,this.less.version)<0?new e({message:"Plugin "+c+" requires version "+this.versionToString(a.minVersion)}):a):null},f.prototype.compareVersion=function(a,b){"string"==typeof a&&(a=a.match(/^(\d+)\.?(\d+)?\.?(\d+)?/),a.shift());for(var c=0;c<a.length;c++)if(a[c]!==b[c])return parseInt(a[c])>parseInt(b[c])?-1:1;return 0},f.prototype.versionToString=function(a){for(var b="",c=0;c<a.length;c++)b+=(b?".":"")+a[c];return b},f.prototype.printUsage=function(a){for(var b=0;b<a.length;b++){var c=a[b];c.printUsage&&c.printUsage()}},b.exports=f},{"../functions/function-registry":27,"../less-error":38}],20:[function(a,b,c){var d=a("../logger"),e=function(a,b){this.fileManagers=b||[],a=a||{};for(var c=["encodeBase64","mimeLookup","charsetLookup","getSourceMapGenerator"],d=[],e=d.concat(c),f=0;f<e.length;f++){var g=e[f],h=a[g];h?this[g]=h.bind(a):f<d.length&&this.warn("missing required function in environment - "+g)}};e.prototype.getFileManager=function(a,b,c,e,f){a||d.warn("getFileManager called with no filename.. Please report this issue. continuing."),null==b&&d.warn("getFileManager called with null directory.. Please report this issue. continuing.");var g=this.fileManagers;c.pluginManager&&(g=[].concat(g).concat(c.pluginManager.getFileManagers()));for(var h=g.length-1;h>=0;h--){var i=g[h];if(i[f?"supportsSync":"supports"](a,b,c,e))return i}return null},e.prototype.addFileManager=function(a){this.fileManagers.push(a)},e.prototype.clearFileManagers=function(){this.fileManagers=[]},b.exports=e},{"../logger":39}],21:[function(a,b,c){var d=a("./function-registry"),e=a("../tree/anonymous"),f=a("../tree/keyword");d.addMultiple({"boolean":function(a){return a?f.True:f.False},"if":function(a,b,c){return a?b:c||new e}})},{"../tree/anonymous":50,"../tree/keyword":70,"./function-registry":27}],22:[function(a,b,c){function d(a,b,c){var d,f,g,h,i=b.alpha,j=c.alpha,k=[];g=j+i*(1-j);for(var l=0;l<3;l++)d=b.rgb[l]/255,f=c.rgb[l]/255,h=a(d,f),g&&(h=(j*f+i*(d-j*(d+f-h)))/g),k[l]=255*h;return new e(k,g)}var e=a("../tree/color"),f=a("./function-registry"),g={multiply:function(a,b){return a*b},screen:function(a,b){return a+b-a*b},overlay:function(a,b){return a*=2,a<=1?g.multiply(a,b):g.screen(a-1,b)},softlight:function(a,b){var c=1,d=a;return b>.5&&(d=1,c=a>.25?Math.sqrt(a):((16*a-12)*a+4)*a),a-(1-2*b)*d*(c-a)},hardlight:function(a,b){return g.overlay(b,a)},difference:function(a,b){return Math.abs(a-b)},exclusion:function(a,b){return a+b-2*a*b},average:function(a,b){return(a+b)/2},negation:function(a,b){return 1-Math.abs(a+b-1)}};for(var h in g)g.hasOwnProperty(h)&&(d[h]=d.bind(null,g[h]));f.addMultiple(d)},{"../tree/color":55,"./function-registry":27}],23:[function(a,b,c){function d(a){return Math.min(1,Math.max(0,a))}function e(a,b){var c=h.hsla(b.h,b.s,b.l,b.a);if(c)return c.value=a.value&&/^(rgb|hsl)/.test(a.value)?a.value:"rgb",c}function f(a){if(a instanceof i)return parseFloat(a.unit.is("%")?a.value/100:a.value);if("number"==typeof a)return a;throw{type:"Argument",message:"color functions take numbers as parameters"}}function g(a,b){return a instanceof i&&a.unit.is("%")?parseFloat(a.value*b/100):f(a)}var h,i=a("../tree/dimension"),j=a("../tree/color"),k=a("../tree/quoted"),l=a("../tree/anonymous"),m=a("./function-registry");h={rgb:function(a,b,c){var d=h.rgba(a,b,c,1);if(d)return d.value="rgb",d},rgba:function(a,b,c,d){try{if(a instanceof j)return d=b?f(b):a.alpha,new j(a.rgb,d,"rgba");var e=[a,b,c].map(function(a){return g(a,255)});return d=f(d),new j(e,d,"rgba")}catch(h){}},hsl:function(a,b,c){var d=h.hsla(a,b,c,1);if(d)return d.value="hsl",d},hsla:function(a,b,c,e){function g(a){return a=a<0?a+1:a>1?a-1:a,6*a<1?h+(i-h)*a*6:2*a<1?i:3*a<2?h+(i-h)*(2/3-a)*6:h}try{if(a instanceof j)return e=b?f(b):a.alpha,new j(a.rgb,e,"hsla");var h,i;a=f(a)%360/360,b=d(f(b)),c=d(f(c)),e=d(f(e)),i=c<=.5?c*(b+1):c+b-c*b,h=2*c-i;var k=[255*g(a+1/3),255*g(a),255*g(a-1/3)];return e=f(e),new j(k,e,"hsla")}catch(l){}},hsv:function(a,b,c){return h.hsva(a,b,c,1)},hsva:function(a,b,c,d){a=f(a)%360/360*360,b=f(b),c=f(c),d=f(d);var e,g;e=Math.floor(a/60%6),g=a/60-e;var i=[c,c*(1-b),c*(1-g*b),c*(1-(1-g)*b)],j=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return h.rgba(255*i[j[e][0]],255*i[j[e][1]],255*i[j[e][2]],d)},hue:function(a){return new i(a.toHSL().h)},saturation:function(a){return new i(100*a.toHSL().s,"%")},lightness:function(a){return new i(100*a.toHSL().l,"%")},hsvhue:function(a){return new i(a.toHSV().h)},hsvsaturation:function(a){return new i(100*a.toHSV().s,"%")},hsvvalue:function(a){return new i(100*a.toHSV().v,"%")},red:function(a){return new i(a.rgb[0])},green:function(a){return new i(a.rgb[1])},blue:function(a){return new i(a.rgb[2])},alpha:function(a){return new i(a.toHSL().a)},luma:function(a){return new i(a.luma()*a.alpha*100,"%")},luminance:function(a){var b=.2126*a.rgb[0]/255+.7152*a.rgb[1]/255+.0722*a.rgb[2]/255;return new i(b*a.alpha*100,"%")},saturate:function(a,b,c){if(!a.rgb)return null;var f=a.toHSL();return f.s+="undefined"!=typeof c&&"relative"===c.value?f.s*b.value/100:b.value/100,f.s=d(f.s),e(a,f)},desaturate:function(a,b,c){var f=a.toHSL();return f.s-="undefined"!=typeof c&&"relative"===c.value?f.s*b.value/100:b.value/100,f.s=d(f.s),e(a,f)},lighten:function(a,b,c){var f=a.toHSL();return f.l+="undefined"!=typeof c&&"relative"===c.value?f.l*b.value/100:b.value/100,f.l=d(f.l),e(a,f)},darken:function(a,b,c){var f=a.toHSL();return f.l-="undefined"!=typeof c&&"relative"===c.value?f.l*b.value/100:b.value/100,f.l=d(f.l),e(a,f)},fadein:function(a,b,c){var f=a.toHSL();return f.a+="undefined"!=typeof c&&"relative"===c.value?f.a*b.value/100:b.value/100,f.a=d(f.a),e(a,f)},fadeout:function(a,b,c){var f=a.toHSL();return f.a-="undefined"!=typeof c&&"relative"===c.value?f.a*b.value/100:b.value/100,f.a=d(f.a),e(a,f)},fade:function(a,b){var c=a.toHSL();return c.a=b.value/100,c.a=d(c.a),e(a,c)},spin:function(a,b){var c=a.toHSL(),d=(c.h+b.value)%360;return c.h=d<0?360+d:d,e(a,c)},mix:function(a,b,c){a.toHSL&&b.toHSL||(console.log(b.type),console.dir(b)),c||(c=new i(50));var d=c.value/100,e=2*d-1,f=a.toHSL().a-b.toHSL().a,g=((e*f==-1?e:(e+f)/(1+e*f))+1)/2,h=1-g,k=[a.rgb[0]*g+b.rgb[0]*h,a.rgb[1]*g+b.rgb[1]*h,a.rgb[2]*g+b.rgb[2]*h],l=a.alpha*d+b.alpha*(1-d);return new j(k,l)},greyscale:function(a){return h.desaturate(a,new i(100))},contrast:function(a,b,c,d){if(!a.rgb)return null;if("undefined"==typeof c&&(c=h.rgba(255,255,255,1)),"undefined"==typeof b&&(b=h.rgba(0,0,0,1)),b.luma()>c.luma()){var e=c;c=b,b=e}return d="undefined"==typeof d?.43:f(d),a.luma()<d?c:b},argb:function(a){return new l(a.toARGB())},color:function(a){if(a instanceof k&&/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3,4})$/i.test(a.value)){var b=a.value.slice(1);return new j(b,(void 0),"#"+b)}if(a instanceof j||(a=j.fromKeyword(a.value)))return a.value=void 0,a;throw{type:"Argument",message:"argument must be a color keyword or 3|4|6|8 digit hex e.g. #FFF"}},tint:function(a,b){return h.mix(h.rgb(255,255,255),a,b)},shade:function(a,b){return h.mix(h.rgb(0,0,0),a,b)}},m.addMultiple(h)},{"../tree/anonymous":50,"../tree/color":55,"../tree/dimension":62,"../tree/quoted":80,"./function-registry":27}],24:[function(a,b,c){b.exports=function(b){var c=a("../tree/quoted"),d=a("../tree/url"),e=a("../utils"),f=a("./function-registry"),g=function(a,b){return new d(b,a.index,a.currentFileInfo).eval(a.context)},h=a("../logger");f.add("data-uri",function(a,f){f||(f=a,a=null);var i=a&&a.value,j=f.value,k=this.currentFileInfo,l=k.rewriteUrls?k.currentDirectory:k.entryPath,m=j.indexOf("#"),n="";m!==-1&&(n=j.slice(m),j=j.slice(0,m));var o=e.clone(this.context);o.rawBuffer=!0;var p=b.getFileManager(j,l,o,b,!0);if(!p)return g(this,f);var q=!1;if(a)q=/;base64$/.test(i);else{if(i=b.mimeLookup(j),"image/svg+xml"===i)q=!1;else{var r=b.charsetLookup(i);q=["US-ASCII","UTF-8"].indexOf(r)<0}q&&(i+=";base64")}var s=p.loadFileSync(j,l,o,b);if(!s.contents)return h.warn("Skipped data-uri embedding of "+j+" because file not found"),g(this,f||a);var t=s.contents;if(q&&!b.encodeBase64)return g(this,f);t=q?b.encodeBase64(t):encodeURIComponent(t);var u="data:"+i+","+t+n,v=32768;return u.length>=v&&this.context.ieCompat!==!1?(h.warn("Skipped data-uri embedding of "+j+" because its size ("+u.length+" characters) exceeds IE8-safe "+v+" characters!"),g(this,f||a)):new d(new c('"'+u+'"',u,(!1),this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../logger":39,"../tree/quoted":80,"../tree/url":85,"../utils":89,"./function-registry":27}],25:[function(a,b,c){var d=a("../tree/keyword"),e=a("./function-registry"),f={eval:function(){var a=this.value_,b=this.error_;if(b)throw b;if(null!=a)return a?d.True:d.False},value:function(a){this.value_=a},error:function(a){this.error_=a},reset:function(){this.value_=this.error_=null}};e.add("default",f.eval.bind(f)),b.exports=f},{"../tree/keyword":70,"./function-registry":27}],26:[function(a,b,c){var d=a("../tree/expression"),e=function(a,b,c,d){this.name=a.toLowerCase(),this.index=c,this.context=b,this.currentFileInfo=d,this.func=b.frames[0].functionRegistry.get(this.name)};e.prototype.isValid=function(){return Boolean(this.func)},e.prototype.call=function(a){return Array.isArray(a)&&(a=a.filter(function(a){return"Comment"!==a.type}).map(function(a){if("Expression"===a.type){
+var b=a.value.filter(function(a){return"Comment"!==a.type});return 1===b.length?b[0]:new d(b)}return a})),this.func.apply(this,a)},b.exports=e},{"../tree/expression":64}],27:[function(a,b,c){function d(a){return{_data:{},add:function(a,b){a=a.toLowerCase(),this._data.hasOwnProperty(a),this._data[a]=b},addMultiple:function(a){Object.keys(a).forEach(function(b){this.add(b,a[b])}.bind(this))},get:function(b){return this._data[b]||a&&a.get(b)},getLocalFunctions:function(){return this._data},inherit:function(){return d(this)},create:function(a){return d(a)}}}b.exports=d(null)},{}],28:[function(a,b,c){b.exports=function(b){var c={functionRegistry:a("./function-registry"),functionCaller:a("./function-caller")};return a("./boolean"),a("./default"),a("./color"),a("./color-blending"),a("./data-uri")(b),a("./list"),a("./math"),a("./number"),a("./string"),a("./svg")(b),a("./types"),c}},{"./boolean":21,"./color":23,"./color-blending":22,"./data-uri":24,"./default":25,"./function-caller":26,"./function-registry":27,"./list":29,"./math":31,"./number":32,"./string":33,"./svg":34,"./types":35}],29:[function(a,b,c){var d=a("../tree/comment"),e=a("../tree/dimension"),f=a("../tree/declaration"),g=a("../tree/expression"),h=a("../tree/ruleset"),i=a("../tree/selector"),j=a("../tree/element"),k=a("./function-registry"),l=function(a){var b=Array.isArray(a.value)?a.value:Array(a);return b};k.addMultiple({_SELF:function(a){return a},extract:function(a,b){return b=b.value-1,l(a)[b]},length:function(a){return new e(l(a).length)},range:function(a,b,c){var d,f,h=1,i=[];b?(f=b,d=a.value,c&&(h=c.value)):(d=1,f=a);for(var j=d;j<=f.value;j+=h)i.push(new e(j,f.unit));return new g(i)},each:function(a,b){var c,g,k=[];g=a.value?Array.isArray(a.value)?a.value:[a.value]:a.ruleset?a.ruleset.rules:a.rules?a.rules:Array.isArray(a)?a:[a];var l="@value",m="@key",n="@index";b.params?(l=b.params[0]&&b.params[0].name,m=b.params[1]&&b.params[1].name,n=b.params[2]&&b.params[2].name,b=b.rules):b=b.ruleset;for(var o=0;o<g.length;o++){var p,q,r=g[o];r instanceof f?(p="string"==typeof r.name?r.name:r.name[0].value,q=r.value):(p=new e(o+1),q=r),r instanceof d||(c=b.rules.slice(0),l&&c.push(new f(l,q,(!1),(!1),this.index,this.currentFileInfo)),n&&c.push(new f(n,new e(o+1),(!1),(!1),this.index,this.currentFileInfo)),m&&c.push(new f(m,p,(!1),(!1),this.index,this.currentFileInfo)),k.push(new h([new i([new j("","&")])],c,b.strictImports,b.visibilityInfo())))}return new h([new i([new j("","&")])],k,b.strictImports,b.visibilityInfo()).eval(this.context)}})},{"../tree/comment":57,"../tree/declaration":60,"../tree/dimension":62,"../tree/element":63,"../tree/expression":64,"../tree/ruleset":81,"../tree/selector":82,"./function-registry":27}],30:[function(a,b,c){var d=a("../tree/dimension"),e=function(){};e._math=function(a,b,c){if(!(c instanceof d))throw{type:"Argument",message:"argument must be a number"};return null==b?b=c.unit:c=c.unify(),new d(a(parseFloat(c.value)),b)},b.exports=e},{"../tree/dimension":62}],31:[function(a,b,c){var d=a("./function-registry"),e=a("./math-helper.js"),f={ceil:null,floor:null,sqrt:null,abs:null,tan:"",sin:"",cos:"",atan:"rad",asin:"rad",acos:"rad"};for(var g in f)f.hasOwnProperty(g)&&(f[g]=e._math.bind(null,Math[g],f[g]));f.round=function(a,b){var c="undefined"==typeof b?0:b.value;return e._math(function(a){return a.toFixed(c)},null,a)},d.addMultiple(f)},{"./function-registry":27,"./math-helper.js":30}],32:[function(a,b,c){var d=a("../tree/dimension"),e=a("../tree/anonymous"),f=a("./function-registry"),g=a("./math-helper.js"),h=function(a,b){switch(b=Array.prototype.slice.call(b),b.length){case 0:throw{type:"Argument",message:"one or more arguments required"}}var c,f,g,h,i,j,k,l,m=[],n={};for(c=0;c<b.length;c++)if(g=b[c],g instanceof d)if(h=""===g.unit.toString()&&void 0!==l?new d(g.value,l).unify():g.unify(),j=""===h.unit.toString()&&void 0!==k?k:h.unit.toString(),k=""!==j&&void 0===k||""!==j&&""===m[0].unify().unit.toString()?j:k,l=""!==j&&void 0===l?g.unit.toString():l,f=void 0!==n[""]&&""!==j&&j===k?n[""]:n[j],void 0!==f)i=""===m[f].unit.toString()&&void 0!==l?new d(m[f].value,l).unify():m[f].unify(),(a&&h.value<i.value||!a&&h.value>i.value)&&(m[f]=g);else{if(void 0!==k&&j!==k)throw{type:"Argument",message:"incompatible types"};n[j]=m.length,m.push(g)}else Array.isArray(b[c].value)&&Array.prototype.push.apply(b,Array.prototype.slice.call(b[c].value));return 1==m.length?m[0]:(b=m.map(function(a){return a.toCSS(this.context)}).join(this.context.compress?",":", "),new e((a?"min":"max")+"("+b+")"))};f.addMultiple({min:function(){return h(!0,arguments)},max:function(){return h(!1,arguments)},convert:function(a,b){return a.convertTo(b.value)},pi:function(){return new d(Math.PI)},mod:function(a,b){return new d(a.value%b.value,a.unit)},pow:function(a,b){if("number"==typeof a&&"number"==typeof b)a=new d(a),b=new d(b);else if(!(a instanceof d&&b instanceof d))throw{type:"Argument",message:"arguments must be numbers"};return new d(Math.pow(a.value,b.value),a.unit)},percentage:function(a){var b=g._math(function(a){return 100*a},"%",a);return b}})},{"../tree/anonymous":50,"../tree/dimension":62,"./function-registry":27,"./math-helper.js":30}],33:[function(a,b,c){var d=a("../tree/quoted"),e=a("../tree/anonymous"),f=a("../tree/javascript"),g=a("./function-registry");g.addMultiple({e:function(a){return new e(a instanceof f?a.evaluated:a.value)},escape:function(a){return new e(encodeURI(a.value).replace(/=/g,"%3D").replace(/:/g,"%3A").replace(/#/g,"%23").replace(/;/g,"%3B").replace(/\(/g,"%28").replace(/\)/g,"%29"))},replace:function(a,b,c,e){var f=a.value;return c="Quoted"===c.type?c.value:c.toCSS(),f=f.replace(new RegExp(b.value,e?e.value:""),c),new d(a.quote||"",f,a.escaped)},"%":function(a){for(var b=Array.prototype.slice.call(arguments,1),c=a.value,e=0;e<b.length;e++)c=c.replace(/%[sda]/i,function(a){var c="Quoted"===b[e].type&&a.match(/s/i)?b[e].value:b[e].toCSS();return a.match(/[A-Z]$/)?encodeURIComponent(c):c});return c=c.replace(/%%/g,"%"),new d(a.quote||"",c,a.escaped)}})},{"../tree/anonymous":50,"../tree/javascript":68,"../tree/quoted":80,"./function-registry":27}],34:[function(a,b,c){b.exports=function(b){var c=a("../tree/dimension"),d=a("../tree/color"),e=a("../tree/expression"),f=a("../tree/quoted"),g=a("../tree/url"),h=a("./function-registry");h.add("svg-gradient",function(a){function b(){throw{type:"Argument",message:"svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position] or direction, color list"}}var h,i,j,k,l,m,n,o,p="linear",q='x="0" y="0" width="1" height="1"',r={compress:!1},s=a.toCSS(r);switch(2==arguments.length?(arguments[1].value.length<2&&b(),h=arguments[1].value):arguments.length<3?b():h=Array.prototype.slice.call(arguments,1),s){case"to bottom":i='x1="0%" y1="0%" x2="0%" y2="100%"';break;case"to right":i='x1="0%" y1="0%" x2="100%" y2="0%"';break;case"to bottom right":i='x1="0%" y1="0%" x2="100%" y2="100%"';break;case"to top right":i='x1="0%" y1="100%" x2="100%" y2="0%"';break;case"ellipse":case"ellipse at center":p="radial",i='cx="50%" cy="50%" r="75%"',q='x="-50" y="-50" width="101" height="101"';break;default:throw{type:"Argument",message:"svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'"}}for(j='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 1"><'+p+'Gradient id="g" '+i+">",k=0;k<h.length;k+=1)h[k]instanceof e?(l=h[k].value[0],m=h[k].value[1]):(l=h[k],m=void 0),l instanceof d&&((0===k||k+1===h.length)&&void 0===m||m instanceof c)||b(),n=m?m.toCSS(r):0===k?"0%":"100%",o=l.alpha,j+='<stop offset="'+n+'" stop-color="'+l.toRGB()+'"'+(o<1?' stop-opacity="'+o+'"':"")+"/>";return j+="</"+p+"Gradient><rect "+q+' fill="url(#g)" /></svg>',j=encodeURIComponent(j),j="data:image/svg+xml,"+j,new g(new f("'"+j+"'",j,(!1),this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../tree/color":55,"../tree/dimension":62,"../tree/expression":64,"../tree/quoted":80,"../tree/url":85,"./function-registry":27}],35:[function(a,b,c){var d=a("../tree/keyword"),e=a("../tree/detached-ruleset"),f=a("../tree/dimension"),g=a("../tree/color"),h=a("../tree/quoted"),i=a("../tree/anonymous"),j=a("../tree/url"),k=a("../tree/operation"),l=a("./function-registry"),m=function(a,b){return a instanceof b?d.True:d.False},n=function(a,b){if(void 0===b)throw{type:"Argument",message:"missing the required second argument to isunit."};if(b="string"==typeof b.value?b.value:b,"string"!=typeof b)throw{type:"Argument",message:"Second argument to isunit should be a unit or a string."};return a instanceof f&&a.unit.is(b)?d.True:d.False};l.addMultiple({isruleset:function(a){return m(a,e)},iscolor:function(a){return m(a,g)},isnumber:function(a){return m(a,f)},isstring:function(a){return m(a,h)},iskeyword:function(a){return m(a,d)},isurl:function(a){return m(a,j)},ispixel:function(a){return n(a,"px")},ispercentage:function(a){return n(a,"%")},isem:function(a){return n(a,"em")},isunit:n,unit:function(a,b){if(!(a instanceof f))throw{type:"Argument",message:"the first argument to unit must be a number"+(a instanceof k?". Have you forgotten parenthesis?":"")};return b=b?b instanceof d?b.value:b.toCSS():"",new f(a.value,b)},"get-unit":function(a){return new i(a.unit)}})},{"../tree/anonymous":50,"../tree/color":55,"../tree/detached-ruleset":61,"../tree/dimension":62,"../tree/keyword":70,"../tree/operation":77,"../tree/quoted":80,"../tree/url":85,"./function-registry":27}],36:[function(a,b,c){var d=a("./contexts"),e=a("./parser/parser"),f=a("./less-error"),g=a("./utils"),h=("undefined"==typeof Promise?a("promise"):Promise,a("./logger"));b.exports=function(a){var b=function(a,b,c){this.less=a,this.rootFilename=c.filename,this.paths=b.paths||[],this.contents={},this.contentsIgnoredChars={},this.mime=b.mime,this.error=null,this.context=b,this.queue=[],this.files={}};return b.prototype.push=function(b,c,i,j,k){var l=this,m=this.context.pluginManager.Loader;this.queue.push(b);var n=function(a,c,d){l.queue.splice(l.queue.indexOf(b),1);var e=d===l.rootFilename;j.optional&&a?(k(null,{rules:[]},!1,null),h.info("The file "+d+" was skipped because it was not found and the import was marked optional.")):(l.files[d]||j.inline||(l.files[d]={root:c,options:j}),a&&!l.error&&(l.error=a),k(a,c,e,d))},o={rewriteUrls:this.context.rewriteUrls,entryPath:i.entryPath,rootpath:i.rootpath,rootFilename:i.rootFilename},p=a.getFileManager(b,i.currentDirectory,this.context,a);if(!p)return void n({message:"Could not find a file-manager for "+b});var q,r=function(a){var b,c=a.filename,g=a.contents.replace(/^\uFEFF/,"");o.currentDirectory=p.getPath(c),o.rewriteUrls&&(o.rootpath=p.join(l.context.rootpath||"",p.pathDiff(o.currentDirectory,o.entryPath)),!p.isPathAbsolute(o.rootpath)&&p.alwaysMakePathsAbsolute()&&(o.rootpath=p.join(o.entryPath,o.rootpath))),o.filename=c;var h=new d.Parse(l.context);h.processImports=!1,l.contents[c]=g,(i.reference||j.reference)&&(o.reference=!0),j.isPlugin?(b=m.evalPlugin(g,h,l,j.pluginArgs,o),b instanceof f?n(b,null,c):n(null,b,c)):j.inline?n(null,g,c):!l.files[c]||l.files[c].options.multiple||j.multiple?new e(h,l,o).parse(g,function(a,b){n(a,b,c)}):n(null,l.files[c].root,c)},s=g.clone(this.context);c&&(s.ext=j.isPlugin?".js":".less"),q=j.isPlugin?m.loadPlugin(b,i.currentDirectory,s,a,p):p.loadFile(b,i.currentDirectory,s,a,function(a,b){a?n(a):r(b)}),q&&q.then(r,n)},b}},{"./contexts":13,"./less-error":38,"./logger":39,"./parser/parser":44,"./utils":89,promise:void 0}],37:[function(a,b,c){b.exports=function(b,c){var d,e,f,g,h,i,j={version:[3,9,0],data:a("./data"),tree:a("./tree"),Environment:h=a("./environment/environment"),AbstractFileManager:a("./environment/abstract-file-manager"),AbstractPluginLoader:a("./environment/abstract-plugin-loader"),environment:b=new h(b,c),visitors:a("./visitors"),Parser:a("./parser/parser"),functions:a("./functions")(b),contexts:a("./contexts"),SourceMapOutput:d=a("./source-map-output")(b),SourceMapBuilder:e=a("./source-map-builder")(d,b),ParseTree:f=a("./parse-tree")(e),ImportManager:g=a("./import-manager")(b),render:a("./render")(b,f,g),parse:a("./parse")(b,f,g),LessError:a("./less-error"),transformTree:a("./transform-tree"),utils:a("./utils"),PluginManager:a("./plugin-manager"),logger:a("./logger")},k=function(a){return function(){var b=Object.create(a.prototype);return a.apply(b,Array.prototype.slice.call(arguments,0)),b}},l=Object.create(j);for(var m in j.tree)if(i=j.tree[m],"function"==typeof i)l[m.toLowerCase()]=k(i);else{l[m]=Object.create(null);for(var n in i)l[m][n.toLowerCase()]=k(i[n])}return l}},{"./contexts":13,"./data":15,"./environment/abstract-file-manager":18,"./environment/abstract-plugin-loader":19,"./environment/environment":20,"./functions":28,"./import-manager":36,"./less-error":38,"./logger":39,"./parse":41,"./parse-tree":40,"./parser/parser":44,"./plugin-manager":45,"./render":46,"./source-map-builder":47,"./source-map-output":48,"./transform-tree":49,"./tree":67,"./utils":89,"./visitors":93}],38:[function(a,b,c){var d=a("./utils"),e=b.exports=function(a,b,c){Error.call(this);var e=a.filename||c;if(this.message=a.message,this.stack=a.stack,b&&e){var f=b.contents[e],g=d.getLocation(a.index,f),h=g.line,i=g.column,j=a.call&&d.getLocation(a.call,f).line,k=f?f.split("\n"):"";if(this.type=a.type||"Syntax",this.filename=e,this.index=a.index,this.line="number"==typeof h?h+1:null,this.column=i,!this.line&&this.stack){var l=this.stack.match(/(<anonymous>|Function):(\d+):(\d+)/);l&&(l[2]&&(this.line=parseInt(l[2])-2),l[3]&&(this.column=parseInt(l[3])))}this.callLine=j+1,this.callExtract=k[j],this.extract=[k[this.line-2],k[this.line-1],k[this.line]]}};if("undefined"==typeof Object.create){var f=function(){};f.prototype=Error.prototype,e.prototype=new f}else e.prototype=Object.create(Error.prototype);e.prototype.constructor=e,e.prototype.toString=function(a){a=a||{};var b="",c=this.extract||[],d=[],e=function(a){return a};if(a.stylize){var f=typeof a.stylize;if("function"!==f)throw Error("options.stylize should be a function, got a "+f+"!");e=a.stylize}if(null!==this.line){if("string"==typeof c[0]&&d.push(e(this.line-1+" "+c[0],"grey")),"string"==typeof c[1]){var g=this.line+" ";c[1]&&(g+=c[1].slice(0,this.column)+e(e(e(c[1].substr(this.column,1),"bold")+c[1].slice(this.column+1),"red"),"inverse")),d.push(g)}"string"==typeof c[2]&&d.push(e(this.line+1+" "+c[2],"grey")),d=d.join("\n")+e("","reset")+"\n"}return b+=e(this.type+"Error: "+this.message,"red"),this.filename&&(b+=e(" in ","red")+this.filename),this.line&&(b+=e(" on line "+this.line+", column "+(this.column+1)+":","grey")),b+="\n"+d,this.callLine&&(b+=e("from ","red")+(this.filename||"")+"/n",b+=e(this.callLine,"grey")+" "+this.callExtract+"/n"),b}},{"./utils":89}],39:[function(a,b,c){b.exports={error:function(a){this._fireEvent("error",a)},warn:function(a){this._fireEvent("warn",a)},info:function(a){this._fireEvent("info",a)},debug:function(a){this._fireEvent("debug",a)},addListener:function(a){this._listeners.push(a)},removeListener:function(a){for(var b=0;b<this._listeners.length;b++)if(this._listeners[b]===a)return void this._listeners.splice(b,1)},_fireEvent:function(a,b){for(var c=0;c<this._listeners.length;c++){var d=this._listeners[c][a];d&&d(b)}},_listeners:[]}},{}],40:[function(a,b,c){var d=a("./less-error"),e=a("./transform-tree"),f=a("./logger");b.exports=function(a){var b=function(a,b){this.root=a,this.imports=b};return b.prototype.toCSS=function(b){var c,g,h={};try{c=e(this.root,b)}catch(i){throw new d(i,this.imports)}try{var j=Boolean(b.compress);j&&f.warn("The compress option has been deprecated. We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css.");var k={compress:j,dumpLineNumbers:b.dumpLineNumbers,strictUnits:Boolean(b.strictUnits),numPrecision:8};b.sourceMap?(g=new a(b.sourceMap),h.css=g.toCSS(c,k,this.imports)):h.css=c.toCSS(k)}catch(i){throw new d(i,this.imports)}if(b.pluginManager)for(var l=b.pluginManager.getPostProcessors(),m=0;m<l.length;m++)h.css=l[m].process(h.css,{sourceMap:g,options:b,imports:this.imports});b.sourceMap&&(h.map=g.getExternalSourceMap()),h.imports=[];for(var n in this.imports.files)this.imports.files.hasOwnProperty(n)&&n!==this.imports.rootFilename&&h.imports.push(n);return h},b}},{"./less-error":38,"./logger":39,"./transform-tree":49}],41:[function(a,b,c){var d,e=a("./contexts"),f=a("./parser/parser"),g=a("./plugin-manager"),h=a("./less-error"),i=a("./utils");b.exports=function(b,c,j){var k=function(b,c,l){if("function"==typeof c?(l=c,c=i.copyOptions(this.options,{})):c=i.copyOptions(this.options,c||{}),!l){d||(d="undefined"==typeof Promise?a("promise"):Promise);var m=this;return new d(function(a,d){k.call(m,b,c,function(b,c){b?d(b):a(c)})})}var n,o,p=new g(this,(!c.reUsePluginManager));if(c.pluginManager=p,n=new e.Parse(c),c.rootFileInfo)o=c.rootFileInfo;else{var q=c.filename||"input",r=q.replace(/[^\/\\]*$/,"");o={filename:q,rewriteUrls:n.rewriteUrls,rootpath:n.rootpath||"",currentDirectory:r,entryPath:r,rootFilename:q},o.rootpath&&"/"!==o.rootpath.slice(-1)&&(o.rootpath+="/")}var s=new j(this,n,o);this.importManager=s,c.plugins&&c.plugins.forEach(function(a){var b,c;if(a.fileContent){if(c=a.fileContent.replace(/^\uFEFF/,""),b=p.Loader.evalPlugin(c,n,s,a.options,a.filename),b instanceof h)return l(b)}else p.addPlugin(a)}),new f(n,s,o).parse(b,function(a,b){return a?l(a):void l(null,b,s,c)},c)};return k}},{"./contexts":13,"./less-error":38,"./parser/parser":44,"./plugin-manager":45,"./utils":89,promise:void 0}],42:[function(a,b,c){b.exports=function(a,b){function c(b){var c=h-q;c<512&&!b||!c||(p.push(a.slice(q,h+1)),q=h+1)}var d,e,f,g,h,i,j,k,l,m=a.length,n=0,o=0,p=[],q=0;for(h=0;h<m;h++)if(j=a.charCodeAt(h),!(j>=97&&j<=122||j<34))switch(j){case 40:o++,e=h;continue;case 41:if(--o<0)return b("missing opening `(`",h);continue;case 59:o||c();continue;case 123:n++,d=h;continue;case 125:if(--n<0)return b("missing opening `{`",h);n||o||c();continue;case 92:if(h<m-1){h++;continue}return b("unescaped `\\`",h);case 34:case 39:case 96:for(l=0,i=h,h+=1;h<m;h++)if(k=a.charCodeAt(h),!(k>96)){if(k==j){l=1;break}if(92==k){if(h==m-1)return b("unescaped `\\`",h);h++}}if(l)continue;return b("unmatched `"+String.fromCharCode(j)+"`",i);case 47:if(o||h==m-1)continue;if(k=a.charCodeAt(h+1),47==k)for(h+=2;h<m&&(k=a.charCodeAt(h),!(k<=13)||10!=k&&13!=k);h++);else if(42==k){for(f=i=h,h+=2;h<m-1&&(k=a.charCodeAt(h),125==k&&(g=h),42!=k||47!=a.charCodeAt(h+1));h++);if(h==m-1)return b("missing closing `*/`",i);h++}continue;case 42:if(h<m-1&&47==a.charCodeAt(h+1))return b("unmatched `/*`",h);continue}return 0!==n?f>d&&g>f?b("missing closing `}` or `*/`",d):b("missing closing `}`",d):0!==o?b("missing closing `)`",e):(c(!0),p)}},{}],43:[function(a,b,c){var d=a("./chunker");b.exports=function(){function a(d){for(var e,f,j,p=k.i,q=c,s=k.i-i,t=k.i+h.length-s,u=k.i+=d,v=b;k.i<t;k.i++){if(e=v.charCodeAt(k.i),k.autoCommentAbsorb&&e===r){if(f=v.charAt(k.i+1),"/"===f){j={index:k.i,isLineComment:!0};var w=v.indexOf("\n",k.i+2);w<0&&(w=t),k.i=w,j.text=v.substr(j.index,k.i-j.index),k.commentStore.push(j);continue}if("*"===f){var x=v.indexOf("*/",k.i+2);if(x>=0){j={index:k.i,text:v.substr(k.i,x+2-k.i),isLineComment:!1},k.i+=j.text.length-1,k.commentStore.push(j);continue}}break}if(e!==l&&e!==n&&e!==m&&e!==o)break}if(h=h.slice(d+k.i-u+s),i=k.i,!h.length){if(c<g.length-1)return h=g[++c],a(0),!0;k.finished=!0}return p!==k.i||q!==c}var b,c,e,f,g,h,i,j=[],k={},l=32,m=9,n=10,o=13,p=43,q=44,r=47,s=57;return k.save=function(){i=k.i,j.push({current:h,i:k.i,j:c})},k.restore=function(a){(k.i>e||k.i===e&&a&&!f)&&(e=k.i,f=a);var b=j.pop();h=b.current,i=k.i=b.i,c=b.j},k.forget=function(){j.pop()},k.isWhitespace=function(a){var c=k.i+(a||0),d=b.charCodeAt(c);return d===l||d===o||d===m||d===n},k.$re=function(b){k.i>i&&(h=h.slice(k.i-i),i=k.i);var c=b.exec(h);return c?(a(c[0].length),"string"==typeof c?c:1===c.length?c[0]:c):null},k.$char=function(c){return b.charAt(k.i)!==c?null:(a(1),c)},k.$str=function(c){for(var d=c.length,e=0;e<d;e++)if(b.charAt(k.i+e)!==c.charAt(e))return null;return a(d),c},k.$quoted=function(c){var d=c||k.i,e=b.charAt(d);if("'"===e||'"'===e){for(var f=b.length,g=d,h=1;h+g<f;h++){var i=b.charAt(h+g);switch(i){case"\\":h++;continue;case"\r":case"\n":break;case e:var j=b.substr(g,h+1);return c||0===c?[e,j]:(a(h+1),j)}}return null}},k.$parseUntil=function(c){var d,e="",f=null,g=!1,h=0,i=[],j=[],l=b.length,m=k.i,n=k.i,o=k.i,p=!0;d="string"==typeof c?function(a){return a===c}:function(a){return c.test(a)};do{var q,r=b.charAt(o);if(0===h&&d(r))f=b.substr(n,o-n),j.push(f?f:" "),f=j,a(o-m),p=!1;else{if(g){"*"===r&&"/"===b.charAt(o+1)&&(o++,h--,g=!1),o++;continue}switch(r){case"\\":o++,r=b.charAt(o),j.push(b.substr(n,o-n+1)),n=o+1;break;case"/":"*"===b.charAt(o+1)&&(o++,g=!0,h++);break;case"'":case'"':e=k.$quoted(o),e?(j.push(b.substr(n,o-n),e),o+=e[1].length-1,n=o+1):(a(o-m),f=r,p=!1);break;case"{":i.push("}"),h++;break;case"(":i.push(")"),h++;break;case"[":i.push("]"),h++;break;case"}":case")":case"]":var s=i.pop();r===s?h--:(a(o-m),f=s,p=!1)}o++,o>l&&(p=!1)}q=r}while(p);return f?f:null},k.autoCommentAbsorb=!0,k.commentStore=[],k.finished=!1,k.peek=function(a){if("string"==typeof a){for(var c=0;c<a.length;c++)if(b.charAt(k.i+c)!==a.charAt(c))return!1;return!0}return a.test(h)},k.peekChar=function(a){return b.charAt(k.i)===a},k.currentChar=function(){return b.charAt(k.i)},k.prevChar=function(){return b.charAt(k.i-1)},k.getInput=function(){return b},k.peekNotNumeric=function(){var a=b.charCodeAt(k.i);return a>s||a<p||a===r||a===q},k.start=function(f,j,l){b=f,k.i=c=i=e=0,g=j?d(f,l):[f],h=g[0],a(0)},k.end=function(){var a,c=k.i>=b.length;return k.i<e&&(a=f,k.i=e),{isFinished:c,furthest:k.i,furthestPossibleErrorMessage:a,furthestReachedEnd:k.i>=b.length-1,furthestChar:b[k.i]}},k}},{"./chunker":42}],44:[function(a,b,c){var d=a("../less-error"),e=a("../tree"),f=a("../visitors"),g=a("./parser-input"),h=a("../utils"),i=a("../functions/function-registry"),j=function k(a,b,c){function j(a,e){throw new d({index:q.i,filename:c.filename,type:e||"Syntax",message:a},b)}function l(a,b){var c=a instanceof Function?a.call(p):q.$re(a);return c?c:void j(b||("string"==typeof a?"expected '"+a+"' got '"+q.currentChar()+"'":"unexpected token"))}function m(a,b){return q.$char(a)?a:void j(b||"expected '"+a+"' got '"+q.currentChar()+"'")}function n(a){var b=c.filename;return{lineNumber:h.getLocation(a,q.getInput()).line+1,fileName:b}}function o(a,c,e,f,g){var h,i=[],j=q;try{j.start(a,!1,function(a,b){g({message:a,index:b+e})});for(var k,l,m=0;k=c[m];m++)l=j.i,h=p[k](),h?(h._index=l+e,h._fileInfo=f,i.push(h)):i.push(null);var n=j.end();n.isFinished?g(null,i):g(!0,null)}catch(o){throw new d({index:o.index+e,message:o.message},b,f.filename)}}var p,q=g();return{parserInput:q,imports:b,fileInfo:c,parseNode:o,parse:function(g,h,j){var l,m,n,o,p=null,r="";if(m=j&&j.globalVars?k.serializeVars(j.globalVars)+"\n":"",n=j&&j.modifyVars?"\n"+k.serializeVars(j.modifyVars):"",a.pluginManager)for(var s=a.pluginManager.getPreProcessors(),t=0;t<s.length;t++)g=s[t].process(g,{context:a,imports:b,fileInfo:c});(m||j&&j.banner)&&(r=(j&&j.banner?j.banner:"")+m,o=b.contentsIgnoredChars,o[c.filename]=o[c.filename]||0,o[c.filename]+=r.length),g=g.replace(/\r\n?/g,"\n"),g=r+g.replace(/^\uFEFF/,"")+n,b.contents[c.filename]=g;try{q.start(g,a.chunkInput,function(a,e){throw new d({index:e,type:"Parse",message:a,filename:c.filename},b)}),e.Node.prototype.parse=this,l=new e.Ruleset(null,this.parsers.primary()),e.Node.prototype.rootNode=l,l.root=!0,l.firstRoot=!0,l.functionRegistry=i.inherit()}catch(u){return h(new d(u,b,c.filename))}var v=q.end();if(!v.isFinished){var w=v.furthestPossibleErrorMessage;w||(w="Unrecognised input","}"===v.furthestChar?w+=". Possibly missing opening '{'":")"===v.furthestChar?w+=". Possibly missing opening '('":v.furthestReachedEnd&&(w+=". Possibly missing something")),p=new d({type:"Parse",message:w,index:v.furthest,filename:c.filename},b)}var x=function(a){return a=p||a||b.error,a?(a instanceof d||(a=new d(a,b,c.filename)),h(a)):h(null,l)};return a.processImports===!1?x():void new f.ImportVisitor(b,x).run(l)},parsers:p={primary:function(){for(var a,b=this.mixin,c=[];;){for(;;){if(a=this.comment(),!a)break;c.push(a)}if(q.finished)break;if(q.peek("}"))break;if(a=this.extendRule())c=c.concat(a);else if(a=b.definition()||this.declaration()||this.ruleset()||b.call(!1,!1)||this.variableCall()||this.entities.call()||this.atrule())c.push(a);else{for(var d=!1;q.$char(";");)d=!0;if(!d)break}}return c},comment:function(){if(q.commentStore.length){var a=q.commentStore.shift();return new e.Comment(a.text,a.isLineComment,a.index,c)}},entities:{mixinLookup:function(){return p.mixin.call(!0,!0)},quoted:function(a){var b,d=q.i,f=!1;if(q.save(),q.$char("~"))f=!0;else if(a)return void q.restore();return(b=q.$quoted())?(q.forget(),new e.Quoted(b.charAt(0),b.substr(1,b.length-2),f,d,c)):void q.restore()},keyword:function(){var a=q.$char("%")||q.$re(/^\[?(?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+\]?/);if(a)return e.Color.fromKeyword(a)||new e.Keyword(a)},call:function(){var a,b,d,f=q.i;if(!q.peek(/^url\(/i))return q.save(),(a=q.$re(/^([\w-]+|%|progid:[\w\.]+)\(/))?(a=a[1],d=this.customFuncCall(a),d&&(b=d.parse(),b&&d.stop)?(q.forget(),b):(b=this.arguments(b),q.$char(")")?(q.forget(),new e.Call(a,b,f,c)):void q.restore("Could not parse call arguments or missing ')'"))):void q.forget()},customFuncCall:function(a){function b(a,b){return{parse:a,stop:b}}function c(){return[l(p.condition,"expected condition")]}return{alpha:b(p.ieAlpha,!0),"boolean":b(c),"if":b(c)}[a.toLowerCase()]},arguments:function(a){var b,c,d=a||[],f=[];for(q.save();;){if(a)a=!1;else{if(c=p.detachedRuleset()||this.assignment()||p.expression(),!c)break;c.value&&1==c.value.length&&(c=c.value[0]),d.push(c)}q.$char(",")||(q.$char(";")||b)&&(b=!0,c=d.length<1?d[0]:new e.Value(d),f.push(c),d=[])}return q.forget(),b?f:d},literal:function(){return this.dimension()||this.color()||this.quoted()||this.unicodeDescriptor()},assignment:function(){var a,b;return q.save(),(a=q.$re(/^\w+(?=\s?=)/i))&&q.$char("=")&&(b=p.entity())?(q.forget(),new e.Assignment(a,b)):void q.restore()},url:function(){var a,b=q.i;return q.autoCommentAbsorb=!1,q.$str("url(")?(a=this.quoted()||this.variable()||this.property()||q.$re(/^(?:(?:\\[\(\)'"])|[^\(\)'"])+/)||"",q.autoCommentAbsorb=!0,m(")"),new e.URL(null!=a.value||a instanceof e.Variable||a instanceof e.Property?a:new e.Anonymous(a,b),b,c)):void(q.autoCommentAbsorb=!0)},variable:function(){var a,b,d=q.i;if(q.save(),"@"===q.currentChar()&&(b=q.$re(/^@@?[\w-]+/))){if(a=q.currentChar(),"("===a||"["===a&&!q.prevChar().match(/^\s/)){var f=p.variableCall(b);if(f)return q.forget(),f}return q.forget(),new e.Variable(b,d,c)}q.restore()},variableCurly:function(){var a,b=q.i;if("@"===q.currentChar()&&(a=q.$re(/^@\{([\w-]+)\}/)))return new e.Variable("@"+a[1],b,c)},property:function(){var a,b=q.i;if("$"===q.currentChar()&&(a=q.$re(/^\$[\w-]+/)))return new e.Property(a,b,c)},propertyCurly:function(){var a,b=q.i;if("$"===q.currentChar()&&(a=q.$re(/^\$\{([\w-]+)\}/)))return new e.Property("$"+a[1],b,c)},color:function(){var a;if("#"===q.currentChar()&&(a=q.$re(/^#([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3,4})/)))return new e.Color(a[1],(void 0),a[0])},colorKeyword:function(){q.save();var a=q.autoCommentAbsorb;q.autoCommentAbsorb=!1;var b=q.$re(/^[_A-Za-z-][_A-Za-z0-9-]+/);if(q.autoCommentAbsorb=a,!b)return void q.forget();q.restore();var c=e.Color.fromKeyword(b);return c?(q.$str(b),c):void 0},dimension:function(){if(!q.peekNotNumeric()){var a=q.$re(/^([+-]?\d*\.?\d+)(%|[a-z_]+)?/i);return a?new e.Dimension(a[1],a[2]):void 0}},unicodeDescriptor:function(){var a;if(a=q.$re(/^U\+[0-9a-fA-F?]+(\-[0-9a-fA-F?]+)?/))return new e.UnicodeDescriptor(a[0])},javascript:function(){var a,b=q.i;q.save();var d=q.$char("~"),f=q.$char("`");return f?(a=q.$re(/^[^`]*`/))?(q.forget(),new e.JavaScript(a.substr(0,a.length-1),Boolean(d),b,c)):void q.restore("invalid javascript definition"):void q.restore()}},variable:function(){var a;if("@"===q.currentChar()&&(a=q.$re(/^(@[\w-]+)\s*:/)))return a[1]},variableCall:function(a){var b,d,f=q.i,g=!!a,h=a;if(q.save(),h||"@"===q.currentChar()&&(h=q.$re(/^(@[\w-]+)(\(\s*\))?/))){if(b=this.mixin.ruleLookups(),!b&&(g&&"()"!==q.$str("()")||"()"!==h[2]))return void q.restore("Missing '[...]' lookup in variable call");g||(h=h[1]),b&&p.important()&&(d=!0);var i=new e.VariableCall(h,f,c);return!g&&p.end()?(q.forget(),i):(q.forget(),new e.NamespaceValue(i,b,d,f,c))}q.restore()},extend:function(a){var b,d,f,g,h,i=q.i;if(q.$str(a?"&:extend(":":extend(")){do{for(f=null,b=null;!(f=q.$re(/^(all)(?=\s*(\)|,))/))&&(d=this.element());)b?b.push(d):b=[d];f=f&&f[1],b||j("Missing target selector for :extend()."),h=new e.Extend(new e.Selector(b),f,i,c),g?g.push(h):g=[h]}while(q.$char(","));return l(/^\)/),a&&l(/^;/),g}},extendRule:function(){return this.extend(!0)},mixin:{call:function(a,b){var d,f,g,h,i=q.currentChar(),j=!1,k=q.i;if("."===i||"#"===i){if(q.save(),f=this.elements()){if(q.$char("(")&&(g=this.args(!0).args,m(")"),h=!0),b!==!1&&(d=this.ruleLookups()),b===!0&&!d)return void q.restore();if(a&&!d&&!h)return void q.restore();if(!a&&p.important()&&(j=!0),a||p.end()){q.forget();var l=new e.mixin.Call(f,g,k,c,!d&&j);return d?new e.NamespaceValue(l,d,j):l}}q.restore()}},elements:function(){for(var a,b,d,f,g,h=/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/;;){if(g=q.i,b=q.$re(h),!b)break;f=new e.Element(d,b,(!1),g,c),a?a.push(f):a=[f],d=q.$char(">")}return a},args:function(a){var b,c,d,f,g,h,i,k=p.entities,l={args:null,variadic:!1},m=[],n=[],o=[],r=!0;for(q.save();;){if(a)h=p.detachedRuleset()||p.expression();else{if(q.commentStore.length=0,q.$str("...")){l.variadic=!0,q.$char(";")&&!b&&(b=!0),(b?n:o).push({variadic:!0});break}h=k.variable()||k.property()||k.literal()||k.keyword()||this.call(!0)}if(!h||!r)break;f=null,h.throwAwayComments&&h.throwAwayComments(),g=h;var s=null;if(a?h.value&&1==h.value.length&&(s=h.value[0]):s=h,s&&(s instanceof e.Variable||s instanceof e.Property))if(q.$char(":")){if(m.length>0&&(b&&j("Cannot mix ; and , as delimiter types"),c=!0),g=p.detachedRuleset()||p.expression(),!g){if(!a)return q.restore(),l.args=[],l;j("could not understand value for named argument")}f=d=s.name}else if(q.$str("...")){if(!a){l.variadic=!0,q.$char(";")&&!b&&(b=!0),(b?n:o).push({name:h.name,variadic:!0});break}i=!0}else a||(d=f=s.name,g=null);g&&m.push(g),o.push({name:f,value:g,expand:i}),q.$char(",")?r=!0:(r=";"===q.$char(";"),(r||b)&&(c&&j("Cannot mix ; and , as delimiter types"),b=!0,m.length>1&&(g=new e.Value(m)),n.push({name:d,value:g,expand:i}),d=null,m=[],c=!1))}return q.forget(),l.args=b?n:o,l},definition:function(){var a,b,c,d,f=[],g=!1;if(!("."!==q.currentChar()&&"#"!==q.currentChar()||q.peek(/^[^{]*\}/)))if(q.save(),b=q.$re(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/)){a=b[1];var h=this.args(!1);if(f=h.args,g=h.variadic,!q.$char(")"))return void q.restore("Missing closing ')'");if(q.commentStore.length=0,q.$str("when")&&(d=l(p.conditions,"expected condition")),c=p.block())return q.forget(),new e.mixin.Definition(a,f,c,d,g);q.restore()}else q.forget()},ruleLookups:function(){var a,b,c=[];if("["===q.currentChar()){for(;;){if(q.save(),b=null,a=this.lookupValue(),!a&&""!==a){q.restore();break}c.push(a),q.forget()}return c.length>0?c:void 0}},lookupValue:function(){if(q.save(),!q.$char("["))return void q.restore();var a=q.$re(/^(?:[@$]{0,2})[_a-zA-Z0-9-]*/);return q.$char("]")&&(a||""===a)?(q.forget(),a):void q.restore()}},entity:function(){var a=this.entities;return this.comment()||a.literal()||a.variable()||a.url()||a.property()||a.call()||a.keyword()||this.mixin.call(!0)||a.javascript()},end:function(){return q.$char(";")||q.peek("}")},ieAlpha:function(){var a;if(q.$re(/^opacity=/i))return a=q.$re(/^\d+/),a||(a=l(p.entities.variable,"Could not parse alpha"),
+a="@{"+a.name.slice(1)+"}"),m(")"),new e.Quoted("","alpha(opacity="+a+")")},element:function(){var a,b,d,f=q.i;if(b=this.combinator(),a=q.$re(/^(?:\d+\.\d+|\d+)%/)||q.$re(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||q.$char("*")||q.$char("&")||this.attribute()||q.$re(/^\([^&()@]+\)/)||q.$re(/^[\.#:](?=@)/)||this.entities.variableCurly(),a||(q.save(),q.$char("(")?(d=this.selector(!1))&&q.$char(")")?(a=new e.Paren(d),q.forget()):q.restore("Missing closing ')'"):q.forget()),a)return new e.Element(b,a,a instanceof e.Variable,f,c)},combinator:function(){var a=q.currentChar();if("/"===a){q.save();var b=q.$re(/^\/[a-z]+\//i);if(b)return q.forget(),new e.Combinator(b);q.restore()}if(">"===a||"+"===a||"~"===a||"|"===a||"^"===a){for(q.i++,"^"===a&&"^"===q.currentChar()&&(a="^^",q.i++);q.isWhitespace();)q.i++;return new e.Combinator(a)}return new e.Combinator(q.isWhitespace(-1)?" ":null)},selector:function(a){var b,d,f,g,h,i,k,m=q.i;for(a=a!==!1;(a&&(d=this.extend())||a&&(i=q.$str("when"))||(g=this.element()))&&(i?k=l(this.conditions,"expected condition"):k?j("CSS guard can only be used at the end of selector"):d?h=h?h.concat(d):d:(h&&j("Extend can only be used at the end of selector"),f=q.currentChar(),b?b.push(g):b=[g],g=null),"{"!==f&&"}"!==f&&";"!==f&&","!==f&&")"!==f););return b?new e.Selector(b,h,k,m,c):void(h&&j("Extend must be used to extend a selector, it cannot be used on its own"))},selectors:function(){for(var a,b;;){if(a=this.selector(),!a)break;if(b?b.push(a):b=[a],q.commentStore.length=0,a.condition&&b.length>1&&j("Guards are only currently allowed on a single selector."),!q.$char(","))break;a.condition&&j("Guards are only currently allowed on a single selector."),q.commentStore.length=0}return b},attribute:function(){if(q.$char("[")){var a,b,c,d=this.entities;return(a=d.variableCurly())||(a=l(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),c=q.$re(/^[|~*$^]?=/),c&&(b=d.quoted()||q.$re(/^[0-9]+%/)||q.$re(/^[\w-]+/)||d.variableCurly()),m("]"),new e.Attribute(a,c,b)}},block:function(){var a;if(q.$char("{")&&(a=this.primary())&&q.$char("}"))return a},blockRuleset:function(){var a=this.block();return a&&(a=new e.Ruleset(null,a)),a},detachedRuleset:function(){var a,b,c;if(q.save(),q.$re(/^[.#]\(/)&&(a=this.mixin.args(!1),b=a.args,c=a.variadic,!q.$char(")")))return void q.restore();var d=this.blockRuleset();return d?(q.forget(),b?new e.mixin.Definition(null,b,d,null,c):new e.DetachedRuleset(d)):void q.restore()},ruleset:function(){var b,c,d;if(q.save(),a.dumpLineNumbers&&(d=n(q.i)),b=this.selectors(),b&&(c=this.block())){q.forget();var f=new e.Ruleset(b,c,a.strictImports);return a.dumpLineNumbers&&(f.debugInfo=d),f}q.restore()},declaration:function(){var a,b,d,f,g,h,i=q.i,j=q.currentChar();if("."!==j&&"#"!==j&&"&"!==j&&":"!==j)if(q.save(),a=this.variable()||this.ruleProperty()){if(h="string"==typeof a,h&&(b=this.detachedRuleset(),b&&(d=!0)),q.commentStore.length=0,!b){if(g=!h&&a.length>1&&a.pop().value,b=a[0].value&&"--"===a[0].value.slice(0,2)?this.permissiveValue():this.anonymousValue())return q.forget(),new e.Declaration(a,b,(!1),g,i,c);b||(b=this.value()),b?f=this.important():h&&(b=this.permissiveValue())}if(b&&(this.end()||d))return q.forget(),new e.Declaration(a,b,f,g,i,c);q.restore()}else q.restore()},anonymousValue:function(){var a=q.i,b=q.$re(/^([^.#@\$+\/'"*`(;{}-]*);/);if(b)return new e.Anonymous(b[1],a)},permissiveValue:function(a){function b(){var a=q.currentChar();return"string"==typeof i?a===i:i.test(a)}var d,f,g,h,i=a||";",k=q.i,l=[];if(!b()){h=[];do f=this.comment(),f?h.push(f):(f=this.entity(),f&&h.push(f));while(f);if(g=b(),h.length>0){if(h=new e.Expression(h),g)return h;l.push(h)," "===q.prevChar()&&l.push(new e.Anonymous(" ",k))}if(q.save(),h=q.$parseUntil(i)){if("string"==typeof h&&j("Expected '"+h+"'","Parse"),1===h.length&&" "===h[0])return q.forget(),new e.Anonymous("",k);var m;for(d=0;d<h.length;d++)if(m=h[d],Array.isArray(m))l.push(new e.Quoted(m[0],m[1],(!0),k,c));else{d===h.length-1&&(m=m.trim());var n=new e.Quoted("'",m,(!0),k,c);n.variableRegex=/@([\w-]+)/g,n.propRegex=/\$([\w-]+)/g,l.push(n)}return q.forget(),new e.Expression(l,(!0))}q.restore()}},"import":function(){var a,b,d=q.i,f=q.$re(/^@import?\s+/);if(f){var g=(f?this.importOptions():null)||{};if(a=this.entities.quoted()||this.entities.url())return b=this.mediaFeatures(),q.$char(";")||(q.i=d,j("missing semi-colon or unrecognised media features on import")),b=b&&new e.Value(b),new e.Import(a,b,g,d,c);q.i=d,j("malformed import statement")}},importOptions:function(){var a,b,c,d={};if(!q.$char("("))return null;do if(a=this.importOption()){switch(b=a,c=!0,b){case"css":b="less",c=!1;break;case"once":b="multiple",c=!1}if(d[b]=c,!q.$char(","))break}while(a);return m(")"),d},importOption:function(){var a=q.$re(/^(less|css|multiple|once|inline|reference|optional)/);if(a)return a[1]},mediaFeature:function(){var a,b,d=this.entities,f=[];q.save();do a=d.keyword()||d.variable()||d.mixinLookup(),a?f.push(a):q.$char("(")&&(b=this.property(),a=this.value(),q.$char(")")?b&&a?f.push(new e.Paren(new e.Declaration(b,a,null,null,q.i,c,(!0)))):a?f.push(new e.Paren(a)):j("badly formed media feature definition"):j("Missing closing ')'","Parse"));while(a);if(q.forget(),f.length>0)return new e.Expression(f)},mediaFeatures:function(){var a,b=this.entities,c=[];do if(a=this.mediaFeature()){if(c.push(a),!q.$char(","))break}else if(a=b.variable()||b.mixinLookup(),a&&(c.push(a),!q.$char(",")))break;while(a);return c.length>0?c:null},media:function(){var b,d,f,g,h=q.i;return a.dumpLineNumbers&&(g=n(h)),q.save(),q.$str("@media")?(b=this.mediaFeatures(),d=this.block(),d||j("media definitions require block statements after any features"),q.forget(),f=new e.Media(d,b,h,c),a.dumpLineNumbers&&(f.debugInfo=g),f):void q.restore()},plugin:function(){var a,b,d,f=q.i,g=q.$re(/^@plugin?\s+/);if(g){if(b=this.pluginArgs(),d=b?{pluginArgs:b,isPlugin:!0}:{isPlugin:!0},a=this.entities.quoted()||this.entities.url())return q.$char(";")||(q.i=f,j("missing semi-colon on @plugin")),new e.Import(a,null,d,f,c);q.i=f,j("malformed @plugin statement")}},pluginArgs:function(){if(q.save(),!q.$char("("))return q.restore(),null;var a=q.$re(/^\s*([^\);]+)\)\s*/);return a[1]?(q.forget(),a[1].trim()):(q.restore(),null)},atrule:function(){var b,d,f,g,h,i,k,l=q.i,m=!0,o=!0;if("@"===q.currentChar()){if(d=this["import"]()||this.plugin()||this.media())return d;if(q.save(),b=q.$re(/^@[a-z-]+/)){switch(g=b,"-"==b.charAt(1)&&b.indexOf("-",2)>0&&(g="@"+b.slice(b.indexOf("-",2)+1)),g){case"@charset":h=!0,m=!1;break;case"@namespace":i=!0,m=!1;break;case"@keyframes":case"@counter-style":h=!0;break;case"@document":case"@supports":k=!0,o=!1;break;default:k=!0}return q.commentStore.length=0,h?(d=this.entity(),d||j("expected "+b+" identifier")):i?(d=this.expression(),d||j("expected "+b+" expression")):k&&(d=this.permissiveValue(/^[{;]/),m="{"===q.currentChar(),d?d.value||(d=null):m||";"===q.currentChar()||j(b+" rule is missing block or ending semi-colon")),m&&(f=this.blockRuleset()),f||!m&&d&&q.$char(";")?(q.forget(),new e.AtRule(b,d,f,l,c,a.dumpLineNumbers?n(l):null,o)):void q.restore("at-rule options not recognised")}}},value:function(){var a,b=[],c=q.i;do if(a=this.expression(),a&&(b.push(a),!q.$char(",")))break;while(a);if(b.length>0)return new e.Value(b,c)},important:function(){if("!"===q.currentChar())return q.$re(/^! *important/)},sub:function(){var a,b;return q.save(),q.$char("(")?(a=this.addition(),a&&q.$char(")")?(q.forget(),b=new e.Expression([a]),b.parens=!0,b):void q.restore("Expected ')'")):void q.restore()},multiplication:function(){var a,b,c,d,f;if(a=this.operand()){for(f=q.isWhitespace(-1);;){if(q.peek(/^\/[*\/]/))break;if(q.save(),c=q.$char("/")||q.$char("*")||q.$str("./"),!c){q.forget();break}if(b=this.operand(),!b){q.restore();break}q.forget(),a.parensInOp=!0,b.parensInOp=!0,d=new e.Operation(c,[d||a,b],f),f=q.isWhitespace(-1)}return d||a}},addition:function(){var a,b,c,d,f;if(a=this.multiplication()){for(f=q.isWhitespace(-1);;){if(c=q.$re(/^[-+]\s+/)||!f&&(q.$char("+")||q.$char("-")),!c)break;if(b=this.multiplication(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new e.Operation(c,[d||a,b],f),f=q.isWhitespace(-1)}return d||a}},conditions:function(){var a,b,c,d=q.i;if(a=this.condition(!0)){for(;;){if(!q.peek(/^,\s*(not\s*)?\(/)||!q.$char(","))break;if(b=this.condition(!0),!b)break;c=new e.Condition("or",c||a,b,d)}return c||a}},condition:function(a){function b(){return q.$str("or")}var c,d,f;if(c=this.conditionAnd(a)){if(d=b()){if(f=this.condition(a),!f)return;c=new e.Condition(d,c,f)}return c}},conditionAnd:function(a){function b(){var b=h.negatedCondition(a)||h.parenthesisCondition(a);return b||a?b:h.atomicCondition(a)}function c(){return q.$str("and")}var d,f,g,h=this;if(d=b()){if(f=c()){if(g=this.conditionAnd(a),!g)return;d=new e.Condition(f,d,g)}return d}},negatedCondition:function(a){if(q.$str("not")){var b=this.parenthesisCondition(a);return b&&(b.negate=!b.negate),b}},parenthesisCondition:function(a){function b(b){var c;return q.save(),(c=b.condition(a))&&q.$char(")")?(q.forget(),c):void q.restore()}var c;return q.save(),q.$str("(")?(c=b(this))?(q.forget(),c):(c=this.atomicCondition(a))?q.$char(")")?(q.forget(),c):void q.restore("expected ')' got '"+q.currentChar()+"'"):void q.restore():void q.restore()},atomicCondition:function(a){function b(){return this.addition()||h.keyword()||h.quoted()||h.mixinLookup()}var c,d,f,g,h=this.entities,i=q.i;if(b=b.bind(this),c=b())return q.$char(">")?g=q.$char("=")?">=":">":q.$char("<")?g=q.$char("=")?"<=":"<":q.$char("=")&&(g=q.$char(">")?"=>":q.$char("<")?"=<":"="),g?(d=b(),d?f=new e.Condition(g,c,d,i,(!1)):j("expected expression")):f=new e.Condition("=",c,new e.Keyword("true"),i,(!1)),f},operand:function(){var a,b=this.entities;q.peek(/^-[@\$\(]/)&&(a=q.$char("-"));var c=this.sub()||b.dimension()||b.color()||b.variable()||b.property()||b.call()||b.quoted(!0)||b.colorKeyword()||b.mixinLookup();return a&&(c.parensInOp=!0,c=new e.Negative(c)),c},expression:function(){var a,b,c=[],d=q.i;do a=this.comment(),a?c.push(a):(a=this.addition()||this.entity(),a&&(c.push(a),q.peek(/^\/[\/*]/)||(b=q.$char("/"),b&&c.push(new e.Anonymous(b,d)))));while(a);if(c.length>0)return new e.Expression(c)},property:function(){var a=q.$re(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);if(a)return a[1]},ruleProperty:function(){function a(a){var b=q.i,c=q.$re(a);if(c)return g.push(b),f.push(c[1])}var b,d,f=[],g=[];q.save();var h=q.$re(/^([_a-zA-Z0-9-]+)\s*:/);if(h)return f=[new e.Keyword(h[1])],q.forget(),f;for(a(/^(\*?)/);;)if(!a(/^((?:[\w-]+)|(?:[@\$]\{[\w-]+\}))/))break;if(f.length>1&&a(/^((?:\+_|\+)?)\s*:/)){for(q.forget(),""===f[0]&&(f.shift(),g.shift()),d=0;d<f.length;d++)b=f[d],f[d]="@"!==b.charAt(0)&&"$"!==b.charAt(0)?new e.Keyword(b):"@"===b.charAt(0)?new e.Variable("@"+b.slice(2,-1),g[d],c):new e.Property("$"+b.slice(2,-1),g[d],c);return f}q.restore()}}}};j.serializeVars=function(a){var b="";for(var c in a)if(Object.hasOwnProperty.call(a,c)){var d=a[c];b+=("@"===c[0]?"":"@")+c+": "+d+(";"===String(d).slice(-1)?"":";")}return b},b.exports=j},{"../functions/function-registry":27,"../less-error":38,"../tree":67,"../utils":89,"../visitors":93,"./parser-input":43}],45:[function(a,b,c){var d,e=function(a){this.less=a,this.visitors=[],this.preProcessors=[],this.postProcessors=[],this.installedPlugins=[],this.fileManagers=[],this.iterator=-1,this.pluginCache={},this.Loader=new a.PluginLoader(a)},f=function(a,b){return!b&&d||(d=new e(a)),d};e.prototype.addPlugins=function(a){if(a)for(var b=0;b<a.length;b++)this.addPlugin(a[b])},e.prototype.addPlugin=function(a,b,c){this.installedPlugins.push(a),b&&(this.pluginCache[b]=a),a.install&&a.install(this.less,this,c||this.less.functions.functionRegistry)},e.prototype.get=function(a){return this.pluginCache[a]},e.prototype.addVisitor=function(a){this.visitors.push(a)},e.prototype.addPreProcessor=function(a,b){var c;for(c=0;c<this.preProcessors.length&&!(this.preProcessors[c].priority>=b);c++);this.preProcessors.splice(c,0,{preProcessor:a,priority:b})},e.prototype.addPostProcessor=function(a,b){var c;for(c=0;c<this.postProcessors.length&&!(this.postProcessors[c].priority>=b);c++);this.postProcessors.splice(c,0,{postProcessor:a,priority:b})},e.prototype.addFileManager=function(a){this.fileManagers.push(a)},e.prototype.getPreProcessors=function(){for(var a=[],b=0;b<this.preProcessors.length;b++)a.push(this.preProcessors[b].preProcessor);return a},e.prototype.getPostProcessors=function(){for(var a=[],b=0;b<this.postProcessors.length;b++)a.push(this.postProcessors[b].postProcessor);return a},e.prototype.getVisitors=function(){return this.visitors},e.prototype.visitor=function(){var a=this;return{first:function(){return a.iterator=-1,a.visitors[a.iterator]},get:function(){return a.iterator+=1,a.visitors[a.iterator]}}},e.prototype.getFileManagers=function(){return this.fileManagers},b.exports=f},{}],46:[function(a,b,c){var d,e=a("./utils");b.exports=function(b,c,f){var g=function(b,f,h){if("function"==typeof f?(h=f,f=e.copyOptions(this.options,{})):f=e.copyOptions(this.options,f||{}),!h){d||(d="undefined"==typeof Promise?a("promise"):Promise);var i=this;return new d(function(a,c){g.call(i,b,f,function(b,d){b?c(b):a(d)})})}this.parse(b,f,function(a,b,d,e){if(a)return h(a);var f;try{var g=new c(b,d);f=g.toCSS(e)}catch(a){return h(a)}h(null,f)})};return g}},{"./utils":89,promise:void 0}],47:[function(a,b,c){b.exports=function(a,b){var c=function(a){this.options=a};return c.prototype.toCSS=function(b,c,d){var e=new a({contentsIgnoredCharsMap:d.contentsIgnoredChars,rootNode:b,contentsMap:d.contents,sourceMapFilename:this.options.sourceMapFilename,sourceMapURL:this.options.sourceMapURL,outputFilename:this.options.sourceMapOutputFilename,sourceMapBasepath:this.options.sourceMapBasepath,sourceMapRootpath:this.options.sourceMapRootpath,outputSourceFiles:this.options.outputSourceFiles,sourceMapGenerator:this.options.sourceMapGenerator,sourceMapFileInline:this.options.sourceMapFileInline}),f=e.toCSS(c);return this.sourceMap=e.sourceMap,this.sourceMapURL=e.sourceMapURL,this.options.sourceMapInputFilename&&(this.sourceMapInputFilename=e.normalizeFilename(this.options.sourceMapInputFilename)),void 0!==this.options.sourceMapBasepath&&void 0!==this.sourceMapURL&&(this.sourceMapURL=e.removeBasepath(this.sourceMapURL)),f+this.getCSSAppendage()},c.prototype.getCSSAppendage=function(){var a=this.sourceMapURL;if(this.options.sourceMapFileInline){if(void 0===this.sourceMap)return"";a="data:application/json;base64,"+b.encodeBase64(this.sourceMap)}return a?"/*# sourceMappingURL="+a+" */":""},c.prototype.getExternalSourceMap=function(){return this.sourceMap},c.prototype.setExternalSourceMap=function(a){this.sourceMap=a},c.prototype.isInline=function(){return this.options.sourceMapFileInline},c.prototype.getSourceMapURL=function(){return this.sourceMapURL},c.prototype.getOutputFilename=function(){return this.options.sourceMapOutputFilename},c.prototype.getInputFilename=function(){return this.sourceMapInputFilename},c}},{}],48:[function(a,b,c){b.exports=function(a){var b=function(b){this._css=[],this._rootNode=b.rootNode,this._contentsMap=b.contentsMap,this._contentsIgnoredCharsMap=b.contentsIgnoredCharsMap,b.sourceMapFilename&&(this._sourceMapFilename=b.sourceMapFilename.replace(/\\/g,"/")),this._outputFilename=b.outputFilename,this.sourceMapURL=b.sourceMapURL,b.sourceMapBasepath&&(this._sourceMapBasepath=b.sourceMapBasepath.replace(/\\/g,"/")),b.sourceMapRootpath?(this._sourceMapRootpath=b.sourceMapRootpath.replace(/\\/g,"/"),"/"!==this._sourceMapRootpath.charAt(this._sourceMapRootpath.length-1)&&(this._sourceMapRootpath+="/")):this._sourceMapRootpath="",this._outputSourceFiles=b.outputSourceFiles,this._sourceMapGeneratorConstructor=a.getSourceMapGenerator(),this._lineNumber=0,this._column=0};return b.prototype.removeBasepath=function(a){return this._sourceMapBasepath&&0===a.indexOf(this._sourceMapBasepath)&&(a=a.substring(this._sourceMapBasepath.length),"\\"!==a.charAt(0)&&"/"!==a.charAt(0)||(a=a.substring(1))),a},b.prototype.normalizeFilename=function(a){return a=a.replace(/\\/g,"/"),a=this.removeBasepath(a),(this._sourceMapRootpath||"")+a},b.prototype.add=function(a,b,c,d){if(a){var e,f,g,h,i;if(b&&b.filename){var j=this._contentsMap[b.filename];this._contentsIgnoredCharsMap[b.filename]&&(c-=this._contentsIgnoredCharsMap[b.filename],c<0&&(c=0),j=j.slice(this._contentsIgnoredCharsMap[b.filename])),j=j.substring(0,c),f=j.split("\n"),h=f[f.length-1]}if(e=a.split("\n"),g=e[e.length-1],b&&b.filename)if(d)for(i=0;i<e.length;i++)this._sourceMapGenerator.addMapping({generated:{line:this._lineNumber+i+1,column:0===i?this._column:0},original:{line:f.length+i,column:0===i?h.length:0},source:this.normalizeFilename(b.filename)});else this._sourceMapGenerator.addMapping({generated:{line:this._lineNumber+1,column:this._column},original:{line:f.length,column:h.length},source:this.normalizeFilename(b.filename)});1===e.length?this._column+=g.length:(this._lineNumber+=e.length-1,this._column=g.length),this._css.push(a)}},b.prototype.isEmpty=function(){return 0===this._css.length},b.prototype.toCSS=function(a){if(this._sourceMapGenerator=new this._sourceMapGeneratorConstructor({file:this._outputFilename,sourceRoot:null}),this._outputSourceFiles)for(var b in this._contentsMap)if(this._contentsMap.hasOwnProperty(b)){var c=this._contentsMap[b];this._contentsIgnoredCharsMap[b]&&(c=c.slice(this._contentsIgnoredCharsMap[b])),this._sourceMapGenerator.setSourceContent(this.normalizeFilename(b),c)}if(this._rootNode.genCSS(a,this),this._css.length>0){var d,e=JSON.stringify(this._sourceMapGenerator.toJSON());this.sourceMapURL?d=this.sourceMapURL:this._sourceMapFilename&&(d=this._sourceMapFilename),this.sourceMapURL=d,this.sourceMap=e}return this._css.join("")},b}},{}],49:[function(a,b,c){var d=a("./contexts"),e=a("./visitors"),f=a("./tree");b.exports=function(a,b){b=b||{};var c,g=b.variables,h=new d.Eval(b);"object"!=typeof g||Array.isArray(g)||(g=Object.keys(g).map(function(a){var b=g[a];return b instanceof f.Value||(b instanceof f.Expression||(b=new f.Expression([b])),b=new f.Value([b])),new f.Declaration("@"+a,b,(!1),null,0)}),h.frames=[new f.Ruleset(null,g)]);var i,j,k=[new e.JoinSelectorVisitor,new e.MarkVisibleSelectorsVisitor((!0)),new e.ExtendVisitor,new e.ToCSSVisitor({compress:Boolean(b.compress)})],l=[];if(b.pluginManager){j=b.pluginManager.visitor();for(var m=0;m<2;m++)for(j.first();i=j.get();)i.isPreEvalVisitor?0!==m&&l.indexOf(i)!==-1||(l.push(i),i.run(a)):0!==m&&k.indexOf(i)!==-1||(i.isPreVisitor?k.unshift(i):k.push(i))}c=a.eval(h);for(var m=0;m<k.length;m++)k[m].run(c);if(b.pluginManager)for(j.first();i=j.get();)k.indexOf(i)===-1&&l.indexOf(i)===-1&&i.run(c);return c}},{"./contexts":13,"./tree":67,"./visitors":93}],50:[function(a,b,c){var d=a("./node"),e=function(a,b,c,d,e,f){this.value=a,this._index=b,this._fileInfo=c,this.mapLines=d,this.rulesetLike="undefined"!=typeof e&&e,this.allowRoot=!0,this.copyVisibilityInfo(f)};e.prototype=new d,e.prototype.type="Anonymous",e.prototype.eval=function(){return new e(this.value,this._index,this._fileInfo,this.mapLines,this.rulesetLike,this.visibilityInfo())},e.prototype.compare=function(a){return a.toCSS&&this.toCSS()===a.toCSS()?0:void 0},e.prototype.isRulesetLike=function(){return this.rulesetLike},e.prototype.genCSS=function(a,b){this.nodeVisible=Boolean(this.value),this.nodeVisible&&b.add(this.value,this._fileInfo,this._index,this.mapLines)},b.exports=e},{"./node":76}],51:[function(a,b,c){var d=a("./node"),e=function(a,b){this.key=a,this.value=b};e.prototype=new d,e.prototype.type="Assignment",e.prototype.accept=function(a){this.value=a.visit(this.value)},e.prototype.eval=function(a){return this.value.eval?new e(this.key,this.value.eval(a)):this},e.prototype.genCSS=function(a,b){b.add(this.key+"="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value)},b.exports=e},{"./node":76}],52:[function(a,b,c){var d=a("./node"),e=a("./selector"),f=a("./ruleset"),g=a("./anonymous"),h=function(a,b,c,f,h,i,j,k){var l;if(this.name=a,this.value=b instanceof d?b:b?new g(b):b,c){for(Array.isArray(c)?this.rules=c:(this.rules=[c],this.rules[0].selectors=new e([],null,null,f,h).createEmptySelectors()),l=0;l<this.rules.length;l++)this.rules[l].allowImports=!0;this.setParent(this.rules,this)}this._index=f,this._fileInfo=h,this.debugInfo=i,this.isRooted=j||!1,this.copyVisibilityInfo(k),this.allowRoot=!0};h.prototype=new d,h.prototype.type="AtRule",h.prototype.accept=function(a){var b=this.value,c=this.rules;c&&(this.rules=a.visitArray(c)),b&&(this.value=a.visit(b))},h.prototype.isRulesetLike=function(){return this.rules||!this.isCharset()},h.prototype.isCharset=function(){return"@charset"===this.name},h.prototype.genCSS=function(a,b){var c=this.value,d=this.rules;b.add(this.name,this.fileInfo(),this.getIndex()),c&&(b.add(" "),c.genCSS(a,b)),d?this.outputRuleset(a,b,d):b.add(";")},h.prototype.eval=function(a){var b,c,d=this.value,e=this.rules;return b=a.mediaPath,c=a.mediaBlocks,a.mediaPath=[],a.mediaBlocks=[],d&&(d=d.eval(a)),e&&(e=[e[0].eval(a)],e[0].root=!0),a.mediaPath=b,a.mediaBlocks=c,new h(this.name,d,e,this.getIndex(),this.fileInfo(),this.debugInfo,this.isRooted,this.visibilityInfo())},h.prototype.variable=function(a){if(this.rules)return f.prototype.variable.call(this.rules[0],a)},h.prototype.find=function(){if(this.rules)return f.prototype.find.apply(this.rules[0],arguments)},h.prototype.rulesets=function(){if(this.rules)return f.prototype.rulesets.apply(this.rules[0])},h.prototype.outputRuleset=function(a,b,c){var d,e=c.length;if(a.tabLevel=(0|a.tabLevel)+1,a.compress){for(b.add("{"),d=0;d<e;d++)c[d].genCSS(a,b);return b.add("}"),void a.tabLevel--}var f="\n"+Array(a.tabLevel).join("  "),g=f+"  ";if(e){for(b.add(" {"+g),c[0].genCSS(a,b),d=1;d<e;d++)b.add(g),c[d].genCSS(a,b);b.add(f+"}")}else b.add(" {"+f+"}");a.tabLevel--},b.exports=h},{"./anonymous":50,"./node":76,"./ruleset":81,"./selector":82}],53:[function(a,b,c){var d=a("./node"),e=function(a,b,c){this.key=a,this.op=b,this.value=c};e.prototype=new d,e.prototype.type="Attribute",e.prototype.eval=function(a){return new e(this.key.eval?this.key.eval(a):this.key,this.op,this.value&&this.value.eval?this.value.eval(a):this.value)},e.prototype.genCSS=function(a,b){b.add(this.toCSS(a))},e.prototype.toCSS=function(a){var b=this.key.toCSS?this.key.toCSS(a):this.key;return this.op&&(b+=this.op,b+=this.value.toCSS?this.value.toCSS(a):this.value),"["+b+"]"},b.exports=e},{"./node":76}],54:[function(a,b,c){var d=a("./node"),e=a("./anonymous"),f=a("../functions/function-caller"),g=function(a,b,c,d){this.name=a,this.args=b,this.calc="calc"===a,this._index=c,this._fileInfo=d};g.prototype=new d,g.prototype.type="Call",g.prototype.accept=function(a){this.args&&(this.args=a.visitArray(this.args))},g.prototype.eval=function(a){var b=a.mathOn;a.mathOn=!this.calc,(this.calc||a.inCalc)&&a.enterCalc();var c=this.args.map(function(b){return b.eval(a)});(this.calc||a.inCalc)&&a.exitCalc(),a.mathOn=b;var h,i=new f(this.name,a,this.getIndex(),this.fileInfo());if(i.isValid()){try{h=i.call(c)}catch(j){throw{type:j.type||"Runtime",message:"error evaluating function `"+this.name+"`"+(j.message?": "+j.message:""),index:this.getIndex(),filename:this.fileInfo().filename,line:j.lineNumber,column:j.columnNumber}}if(null!==h&&void 0!==h)return h instanceof d||(h=new e(h&&h!==!0?h.toString():null)),h._index=this._index,h._fileInfo=this._fileInfo,h}return new g(this.name,c,this.getIndex(),this.fileInfo())},g.prototype.genCSS=function(a,b){b.add(this.name+"(",this.fileInfo(),this.getIndex());for(var c=0;c<this.args.length;c++)this.args[c].genCSS(a,b),c+1<this.args.length&&b.add(", ");b.add(")")},b.exports=g},{"../functions/function-caller":26,"./anonymous":50,"./node":76}],55:[function(a,b,c){function d(a,b){return Math.min(Math.max(a,0),b)}function e(a){return"#"+a.map(function(a){return a=d(Math.round(a),255),(a<16?"0":"")+a.toString(16)}).join("")}var f=a("./node"),g=a("../data/colors"),h=function(a,b,c){var d=this;Array.isArray(a)?this.rgb=a:a.length>=6?(this.rgb=[],a.match(/.{2}/g).map(function(a,b){b<3?d.rgb.push(parseInt(a,16)):d.alpha=parseInt(a,16)/255})):(this.rgb=[],a.split("").map(function(a,b){b<3?d.rgb.push(parseInt(a+a,16)):d.alpha=parseInt(a+a,16)/255})),this.alpha=this.alpha||("number"==typeof b?b:1),"undefined"!=typeof c&&(this.value=c)};h.prototype=new f,h.prototype.type="Color",h.prototype.luma=function(){var a=this.rgb[0]/255,b=this.rgb[1]/255,c=this.rgb[2]/255;return a=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),b=b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4),c=c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4),.2126*a+.7152*b+.0722*c},h.prototype.genCSS=function(a,b){b.add(this.toCSS(a))},h.prototype.toCSS=function(a,b){var c,e,f,g=a&&a.compress&&!b,h=[];if(e=this.fround(a,this.alpha),this.value)if(0===this.value.indexOf("rgb"))e<1&&(f="rgba");else{if(0!==this.value.indexOf("hsl"))return this.value;f=e<1?"hsla":"hsl"}else e<1&&(f="rgba");switch(f){case"rgba":h=this.rgb.map(function(a){return d(Math.round(a),255)}).concat(d(e,1));break;case"hsla":h.push(d(e,1));case"hsl":c=this.toHSL(),h=[this.fround(a,c.h),this.fround(a,100*c.s)+"%",this.fround(a,100*c.l)+"%"].concat(h)}if(f)return f+"("+h.join(","+(g?"":" "))+")";if(c=this.toRGB(),g){var i=c.split("");i[1]===i[2]&&i[3]===i[4]&&i[5]===i[6]&&(c="#"+i[1]+i[3]+i[5])}return c},h.prototype.operate=function(a,b,c){for(var d=new Array(3),e=this.alpha*(1-c.alpha)+c.alpha,f=0;f<3;f++)d[f]=this._operate(a,b,this.rgb[f],c.rgb[f]);return new h(d,e)},h.prototype.toRGB=function(){return e(this.rgb)},h.prototype.toHSL=function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=(g+h)/2,j=g-h;if(g===h)a=b=0;else{switch(b=i>.5?j/(2-g-h):j/(g+h),g){case c:a=(d-e)/j+(d<e?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,l:i,a:f}},h.prototype.toHSV=function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=0;else{switch(g){case c:a=(d-e)/j+(d<e?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,v:i,a:f}},h.prototype.toARGB=function(){return e([255*this.alpha].concat(this.rgb))},h.prototype.compare=function(a){return a.rgb&&a.rgb[0]===this.rgb[0]&&a.rgb[1]===this.rgb[1]&&a.rgb[2]===this.rgb[2]&&a.alpha===this.alpha?0:void 0},h.fromKeyword=function(a){var b,c=a.toLowerCase();if(g.hasOwnProperty(c)?b=new h(g[c].slice(1)):"transparent"===c&&(b=new h([0,0,0],0)),b)return b.value=a,b},b.exports=h},{"../data/colors":14,"./node":76}],56:[function(a,b,c){var d=a("./node"),e=function(a){" "===a?(this.value=" ",this.emptyOrWhitespace=!0):(this.value=a?a.trim():"",this.emptyOrWhitespace=""===this.value)};e.prototype=new d,e.prototype.type="Combinator";var f={"":!0," ":!0,"|":!0};e.prototype.genCSS=function(a,b){var c=a.compress||f[this.value]?"":" ";b.add(c+this.value+c)},b.exports=e},{"./node":76}],57:[function(a,b,c){var d=a("./node"),e=a("./debug-info"),f=function(a,b,c,d){this.value=a,this.isLineComment=b,this._index=c,this._fileInfo=d,this.allowRoot=!0};f.prototype=new d,f.prototype.type="Comment",f.prototype.genCSS=function(a,b){this.debugInfo&&b.add(e(a,this),this.fileInfo(),this.getIndex()),b.add(this.value)},f.prototype.isSilent=function(a){var b=a.compress&&"!"!==this.value[2];return this.isLineComment||b},b.exports=f},{"./debug-info":59,"./node":76}],58:[function(a,b,c){var d=a("./node"),e=function(a,b,c,d,e){this.op=a.trim(),this.lvalue=b,this.rvalue=c,this._index=d,this.negate=e};e.prototype=new d,e.prototype.type="Condition",e.prototype.accept=function(a){this.lvalue=a.visit(this.lvalue),this.rvalue=a.visit(this.rvalue)},e.prototype.eval=function(a){var b=function(a,b,c){switch(a){case"and":return b&&c;case"or":return b||c;default:switch(d.compare(b,c)){case-1:return"<"===a||"=<"===a||"<="===a;case 0:return"="===a||">="===a||"=<"===a||"<="===a;case 1:return">"===a||">="===a;default:return!1}}}(this.op,this.lvalue.eval(a),this.rvalue.eval(a));return this.negate?!b:b},b.exports=e},{"./node":76}],59:[function(a,b,c){var d=function(a,b,c){var e="";if(a.dumpLineNumbers&&!a.compress)switch(a.dumpLineNumbers){case"comments":e=d.asComment(b);break;case"mediaquery":e=d.asMediaQuery(b);break;case"all":e=d.asComment(b)+(c||"")+d.asMediaQuery(b)}return e};d.asComment=function(a){return"/* line "+a.debugInfo.lineNumber+", "+a.debugInfo.fileName+" */\n"},d.asMediaQuery=function(a){var b=a.debugInfo.fileName;return/^[a-z]+:\/\//i.test(b)||(b="file://"+b),"@media -sass-debug-info{filename{font-family:"+b.replace(/([.:\/\\])/g,function(a){return"\\"==a&&(a="/"),"\\"+a})+"}line{font-family:\\00003"+a.debugInfo.lineNumber+"}}\n"},b.exports=d},{}],60:[function(a,b,c){function d(a,b){var c,d="",e=b.length,f={add:function(a){d+=a}};for(c=0;c<e;c++)b[c].eval(a).genCSS(a,f);return d}var e=a("./node"),f=a("./value"),g=a("./keyword"),h=a("./anonymous"),i=a("../constants").Math,j=function(a,b,c,d,g,i,j,k){this.name=a,this.value=b instanceof e?b:new f([b?new h(b):null]),this.important=c?" "+c.trim():"",this.merge=d,this._index=g,this._fileInfo=i,this.inline=j||!1,this.variable=void 0!==k?k:a.charAt&&"@"===a.charAt(0),this.allowRoot=!0,this.setParent(this.value,this)};j.prototype=new e,j.prototype.type="Declaration",j.prototype.genCSS=function(a,b){b.add(this.name+(a.compress?":":": "),this.fileInfo(),this.getIndex());try{this.value.genCSS(a,b)}catch(c){throw c.index=this._index,c.filename=this._fileInfo.filename,c}b.add(this.important+(this.inline||a.lastRule&&a.compress?"":";"),this._fileInfo,this._index)},j.prototype.eval=function(a){var b,c,e=!1,f=this.name,h=this.variable;"string"!=typeof f&&(f=1===f.length&&f[0]instanceof g?f[0].value:d(a,f),h=!1),"font"===f&&a.math===i.ALWAYS&&(e=!0,b=a.math,a.math=i.PARENS_DIVISION);try{if(a.importantScope.push({}),c=this.value.eval(a),!this.variable&&"DetachedRuleset"===c.type)throw{message:"Rulesets cannot be evaluated on a property.",index:this.getIndex(),filename:this.fileInfo().filename};var k=this.important,l=a.importantScope.pop();return!k&&l.important&&(k=l.important),new j(f,c,k,this.merge,this.getIndex(),this.fileInfo(),this.inline,h)}catch(m){throw"number"!=typeof m.index&&(m.index=this.getIndex(),m.filename=this.fileInfo().filename),m}finally{e&&(a.math=b)}},j.prototype.makeImportant=function(){return new j(this.name,this.value,"!important",this.merge,this.getIndex(),this.fileInfo(),this.inline)},b.exports=j},{"../constants":12,"./anonymous":50,"./keyword":70,"./node":76,"./value":86}],61:[function(a,b,c){var d=a("./node"),e=a("../contexts"),f=a("../utils"),g=function(a,b){this.ruleset=a,this.frames=b,this.setParent(this.ruleset,this)};g.prototype=new d,g.prototype.type="DetachedRuleset",g.prototype.evalFirst=!0,g.prototype.accept=function(a){this.ruleset=a.visit(this.ruleset)},g.prototype.eval=function(a){var b=this.frames||f.copyArray(a.frames);return new g(this.ruleset,b)},g.prototype.callEval=function(a){return this.ruleset.eval(this.frames?new e.Eval(a,this.frames.concat(a.frames)):a)},b.exports=g},{"../contexts":13,"../utils":89,"./node":76}],62:[function(a,b,c){var d=a("./node"),e=a("../data/unit-conversions"),f=a("./unit"),g=a("./color"),h=function(a,b){if(this.value=parseFloat(a),isNaN(this.value))throw new Error("Dimension is not a number.");this.unit=b&&b instanceof f?b:new f(b?[b]:void 0),this.setParent(this.unit,this)};h.prototype=new d,h.prototype.type="Dimension",h.prototype.accept=function(a){this.unit=a.visit(this.unit)},h.prototype.eval=function(a){return this},h.prototype.toColor=function(){return new g([this.value,this.value,this.value])},h.prototype.genCSS=function(a,b){if(a&&a.strictUnits&&!this.unit.isSingular())throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: "+this.unit.toString());var c=this.fround(a,this.value),d=String(c);
+if(0!==c&&c<1e-6&&c>-1e-6&&(d=c.toFixed(20).replace(/0+$/,"")),a&&a.compress){if(0===c&&this.unit.isLength())return void b.add(d);c>0&&c<1&&(d=d.substr(1))}b.add(d),this.unit.genCSS(a,b)},h.prototype.operate=function(a,b,c){var d=this._operate(a,b,this.value,c.value),e=this.unit.clone();if("+"===b||"-"===b)if(0===e.numerator.length&&0===e.denominator.length)e=c.unit.clone(),this.unit.backupUnit&&(e.backupUnit=this.unit.backupUnit);else if(0===c.unit.numerator.length&&0===e.denominator.length);else{if(c=c.convertTo(this.unit.usedUnits()),a.strictUnits&&c.unit.toString()!==e.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+e.toString()+"' and '"+c.unit.toString()+"'.");d=this._operate(a,b,this.value,c.value)}else"*"===b?(e.numerator=e.numerator.concat(c.unit.numerator).sort(),e.denominator=e.denominator.concat(c.unit.denominator).sort(),e.cancel()):"/"===b&&(e.numerator=e.numerator.concat(c.unit.denominator).sort(),e.denominator=e.denominator.concat(c.unit.numerator).sort(),e.cancel());return new h(d,e)},h.prototype.compare=function(a){var b,c;if(a instanceof h){if(this.unit.isEmpty()||a.unit.isEmpty())b=this,c=a;else if(b=this.unify(),c=a.unify(),0!==b.unit.compare(c.unit))return;return d.numericCompare(b.value,c.value)}},h.prototype.unify=function(){return this.convertTo({length:"px",duration:"s",angle:"rad"})},h.prototype.convertTo=function(a){var b,c,d,f,g,i=this.value,j=this.unit.clone(),k={};if("string"==typeof a){for(b in e)e[b].hasOwnProperty(a)&&(k={},k[b]=a);a=k}g=function(a,b){return d.hasOwnProperty(a)?(b?i/=d[a]/d[f]:i*=d[a]/d[f],f):a};for(c in a)a.hasOwnProperty(c)&&(f=a[c],d=e[c],j.map(g));return j.cancel(),new h(i,j)},b.exports=h},{"../data/unit-conversions":16,"./color":55,"./node":76,"./unit":84}],63:[function(a,b,c){var d=a("./node"),e=a("./paren"),f=a("./combinator"),g=function(a,b,c,d,e,g){this.combinator=a instanceof f?a:new f(a),this.value="string"==typeof b?b.trim():b?b:"",this.isVariable=c,this._index=d,this._fileInfo=e,this.copyVisibilityInfo(g),this.setParent(this.combinator,this)};g.prototype=new d,g.prototype.type="Element",g.prototype.accept=function(a){var b=this.value;this.combinator=a.visit(this.combinator),"object"==typeof b&&(this.value=a.visit(b))},g.prototype.eval=function(a){return new g(this.combinator,this.value.eval?this.value.eval(a):this.value,this.isVariable,this.getIndex(),this.fileInfo(),this.visibilityInfo())},g.prototype.clone=function(){return new g(this.combinator,this.value,this.isVariable,this.getIndex(),this.fileInfo(),this.visibilityInfo())},g.prototype.genCSS=function(a,b){b.add(this.toCSS(a),this.fileInfo(),this.getIndex())},g.prototype.toCSS=function(a){a=a||{};var b=this.value,c=a.firstSelector;return b instanceof e&&(a.firstSelector=!0),b=b.toCSS?b.toCSS(a):b,a.firstSelector=c,""===b&&"&"===this.combinator.value.charAt(0)?"":this.combinator.toCSS(a)+b},b.exports=g},{"./combinator":56,"./node":76,"./paren":78}],64:[function(a,b,c){var d=a("./node"),e=a("./paren"),f=a("./comment"),g=a("./dimension"),h=a("../constants").Math,i=function(a,b){if(this.value=a,this.noSpacing=b,!a)throw new Error("Expression requires an array parameter")};i.prototype=new d,i.prototype.type="Expression",i.prototype.accept=function(a){this.value=a.visitArray(this.value)},i.prototype.eval=function(a){var b,c=a.isMathOn(),d=this.parens&&(a.math!==h.STRICT_LEGACY||!this.parensInOp),f=!1;return d&&a.inParenthesis(),this.value.length>1?b=new i(this.value.map(function(b){return b.eval?b.eval(a):b}),this.noSpacing):1===this.value.length?(!this.value[0].parens||this.value[0].parensInOp||a.inCalc||(f=!0),b=this.value[0].eval(a)):b=this,d&&a.outOfParenthesis(),!this.parens||!this.parensInOp||c||f||b instanceof g||(b=new e(b)),b},i.prototype.genCSS=function(a,b){for(var c=0;c<this.value.length;c++)this.value[c].genCSS(a,b),!this.noSpacing&&c+1<this.value.length&&b.add(" ")},i.prototype.throwAwayComments=function(){this.value=this.value.filter(function(a){return!(a instanceof f)})},b.exports=i},{"../constants":12,"./comment":57,"./dimension":62,"./node":76,"./paren":78}],65:[function(a,b,c){var d=a("./node"),e=a("./selector"),f=function g(a,b,c,d,e){switch(this.selector=a,this.option=b,this.object_id=g.next_id++,this.parent_ids=[this.object_id],this._index=c,this._fileInfo=d,this.copyVisibilityInfo(e),this.allowRoot=!0,b){case"all":this.allowBefore=!0,this.allowAfter=!0;break;default:this.allowBefore=!1,this.allowAfter=!1}this.setParent(this.selector,this)};f.next_id=0,f.prototype=new d,f.prototype.type="Extend",f.prototype.accept=function(a){this.selector=a.visit(this.selector)},f.prototype.eval=function(a){return new f(this.selector.eval(a),this.option,this.getIndex(),this.fileInfo(),this.visibilityInfo())},f.prototype.clone=function(a){return new f(this.selector,this.option,this.getIndex(),this.fileInfo(),this.visibilityInfo())},f.prototype.findSelfSelectors=function(a){var b,c,d=[];for(b=0;b<a.length;b++)c=a[b].elements,b>0&&c.length&&""===c[0].combinator.value&&(c[0].combinator.value=" "),d=d.concat(a[b].elements);this.selfSelectors=[new e(d)],this.selfSelectors[0].copyVisibilityInfo(this.visibilityInfo())},b.exports=f},{"./node":76,"./selector":82}],66:[function(a,b,c){var d=a("./node"),e=a("./media"),f=a("./url"),g=a("./quoted"),h=a("./ruleset"),i=a("./anonymous"),j=a("../utils"),k=a("../less-error"),l=function(a,b,c,d,e,f){if(this.options=c,this._index=d,this._fileInfo=e,this.path=a,this.features=b,this.allowRoot=!0,void 0!==this.options.less||this.options.inline)this.css=!this.options.less||this.options.inline;else{var g=this.getPath();g&&/[#\.\&\?]css([\?;].*)?$/.test(g)&&(this.css=!0)}this.copyVisibilityInfo(f),this.setParent(this.features,this),this.setParent(this.path,this)};l.prototype=new d,l.prototype.type="Import",l.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.path=a.visit(this.path),this.options.isPlugin||this.options.inline||!this.root||(this.root=a.visit(this.root))},l.prototype.genCSS=function(a,b){this.css&&void 0===this.path._fileInfo.reference&&(b.add("@import ",this._fileInfo,this._index),this.path.genCSS(a,b),this.features&&(b.add(" "),this.features.genCSS(a,b)),b.add(";"))},l.prototype.getPath=function(){return this.path instanceof f?this.path.value.value:this.path.value},l.prototype.isVariableImport=function(){var a=this.path;return a instanceof f&&(a=a.value),!(a instanceof g)||a.containsVariables()},l.prototype.evalForImport=function(a){var b=this.path;return b instanceof f&&(b=b.value),new l(b.eval(a),this.features,this.options,this._index,this._fileInfo,this.visibilityInfo())},l.prototype.evalPath=function(a){var b=this.path.eval(a),c=this._fileInfo;if(!(b instanceof f)){var d=b.value;b.value=c&&d&&a.pathRequiresRewrite(d)?a.rewritePath(d,c.rootpath):a.normalizePath(b.value)}return b},l.prototype.eval=function(a){var b=this.doEval(a);return(this.options.reference||this.blocksVisibility())&&(b.length||0===b.length?b.forEach(function(a){a.addVisibilityBlock()}):b.addVisibilityBlock()),b},l.prototype.doEval=function(a){var b,c,d=this.features&&this.features.eval(a);if(this.options.isPlugin){if(this.root&&this.root.eval)try{this.root.eval(a)}catch(f){throw f.message="Plugin error during evaluation",new k(f,this.root.imports,this.root.filename)}return c=a.frames[0]&&a.frames[0].functionRegistry,c&&this.root&&this.root.functions&&c.addMultiple(this.root.functions),[]}if(this.skip&&("function"==typeof this.skip&&(this.skip=this.skip()),this.skip))return[];if(this.options.inline){var g=new i(this.root,0,{filename:this.importedFilename,reference:this.path._fileInfo&&this.path._fileInfo.reference},(!0),(!0));return this.features?new e([g],this.features.value):[g]}if(this.css){var m=new l(this.evalPath(a),d,this.options,this._index);if(!m.css&&this.error)throw this.error;return m}return b=new h(null,j.copyArray(this.root.rules)),b.evalImports(a),this.features?new e(b.rules,this.features.value):b.rules},b.exports=l},{"../less-error":38,"../utils":89,"./anonymous":50,"./media":71,"./node":76,"./quoted":80,"./ruleset":81,"./url":85}],67:[function(a,b,c){var d=Object.create(null);d.Node=a("./node"),d.Color=a("./color"),d.AtRule=a("./atrule"),d.DetachedRuleset=a("./detached-ruleset"),d.Operation=a("./operation"),d.Dimension=a("./dimension"),d.Unit=a("./unit"),d.Keyword=a("./keyword"),d.Variable=a("./variable"),d.Property=a("./property"),d.Ruleset=a("./ruleset"),d.Element=a("./element"),d.Attribute=a("./attribute"),d.Combinator=a("./combinator"),d.Selector=a("./selector"),d.Quoted=a("./quoted"),d.Expression=a("./expression"),d.Declaration=a("./declaration"),d.Call=a("./call"),d.URL=a("./url"),d.Import=a("./import"),d.mixin={Call:a("./mixin-call"),Definition:a("./mixin-definition")},d.Comment=a("./comment"),d.Anonymous=a("./anonymous"),d.Value=a("./value"),d.JavaScript=a("./javascript"),d.Assignment=a("./assignment"),d.Condition=a("./condition"),d.Paren=a("./paren"),d.Media=a("./media"),d.UnicodeDescriptor=a("./unicode-descriptor"),d.Negative=a("./negative"),d.Extend=a("./extend"),d.VariableCall=a("./variable-call"),d.NamespaceValue=a("./namespace-value"),b.exports=d},{"./anonymous":50,"./assignment":51,"./atrule":52,"./attribute":53,"./call":54,"./color":55,"./combinator":56,"./comment":57,"./condition":58,"./declaration":60,"./detached-ruleset":61,"./dimension":62,"./element":63,"./expression":64,"./extend":65,"./import":66,"./javascript":68,"./keyword":70,"./media":71,"./mixin-call":72,"./mixin-definition":73,"./namespace-value":74,"./negative":75,"./node":76,"./operation":77,"./paren":78,"./property":79,"./quoted":80,"./ruleset":81,"./selector":82,"./unicode-descriptor":83,"./unit":84,"./url":85,"./value":86,"./variable":88,"./variable-call":87}],68:[function(a,b,c){var d=a("./js-eval-node"),e=a("./dimension"),f=a("./quoted"),g=a("./anonymous"),h=function(a,b,c,d){this.escaped=b,this.expression=a,this._index=c,this._fileInfo=d};h.prototype=new d,h.prototype.type="JavaScript",h.prototype.eval=function(a){var b=this.evaluateJavaScript(this.expression,a),c=typeof b;return"number"!==c||isNaN(b)?"string"===c?new f('"'+b+'"',b,this.escaped,this._index):new g(Array.isArray(b)?b.join(", "):b):new e(b)},b.exports=h},{"./anonymous":50,"./dimension":62,"./js-eval-node":69,"./quoted":80}],69:[function(a,b,c){var d=a("./node"),e=a("./variable"),f=function(){};f.prototype=new d,f.prototype.evaluateJavaScript=function(a,b){var c,d=this,f={};if(!b.javascriptEnabled)throw{message:"Inline JavaScript is not enabled. Is it set in your options?",filename:this.fileInfo().filename,index:this.getIndex()};a=a.replace(/@\{([\w-]+)\}/g,function(a,c){return d.jsify(new e("@"+c,d.getIndex(),d.fileInfo()).eval(b))});try{a=new Function("return ("+a+")")}catch(g){throw{message:"JavaScript evaluation error: "+g.message+" from `"+a+"`",filename:this.fileInfo().filename,index:this.getIndex()}}var h=b.frames[0].variables();for(var i in h)h.hasOwnProperty(i)&&(f[i.slice(1)]={value:h[i].value,toJS:function(){return this.value.eval(b).toCSS()}});try{c=a.call(f)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message.replace(/["]/g,"'")+"'",filename:this.fileInfo().filename,index:this.getIndex()}}return c},f.prototype.jsify=function(a){return Array.isArray(a.value)&&a.value.length>1?"["+a.value.map(function(a){return a.toCSS()}).join(", ")+"]":a.toCSS()},b.exports=f},{"./node":76,"./variable":88}],70:[function(a,b,c){var d=a("./node"),e=function(a){this.value=a};e.prototype=new d,e.prototype.type="Keyword",e.prototype.genCSS=function(a,b){if("%"===this.value)throw{type:"Syntax",message:"Invalid % without number"};b.add(this.value)},e.True=new e("true"),e.False=new e("false"),b.exports=e},{"./node":76}],71:[function(a,b,c){var d=a("./ruleset"),e=a("./value"),f=a("./selector"),g=a("./anonymous"),h=a("./expression"),i=a("./atrule"),j=a("../utils"),k=function(a,b,c,g,h){this._index=c,this._fileInfo=g;var i=new f([],null,null,this._index,this._fileInfo).createEmptySelectors();this.features=new e(b),this.rules=[new d(i,a)],this.rules[0].allowImports=!0,this.copyVisibilityInfo(h),this.allowRoot=!0,this.setParent(i,this),this.setParent(this.features,this),this.setParent(this.rules,this)};k.prototype=new i,k.prototype.type="Media",k.prototype.isRulesetLike=function(){return!0},k.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.rules&&(this.rules=a.visitArray(this.rules))},k.prototype.genCSS=function(a,b){b.add("@media ",this._fileInfo,this._index),this.features.genCSS(a,b),this.outputRuleset(a,b,this.rules)},k.prototype.eval=function(a){a.mediaBlocks||(a.mediaBlocks=[],a.mediaPath=[]);var b=new k(null,[],this._index,this._fileInfo,this.visibilityInfo());return this.debugInfo&&(this.rules[0].debugInfo=this.debugInfo,b.debugInfo=this.debugInfo),b.features=this.features.eval(a),a.mediaPath.push(b),a.mediaBlocks.push(b),this.rules[0].functionRegistry=a.frames[0].functionRegistry.inherit(),a.frames.unshift(this.rules[0]),b.rules=[this.rules[0].eval(a)],a.frames.shift(),a.mediaPath.pop(),0===a.mediaPath.length?b.evalTop(a):b.evalNested(a)},k.prototype.evalTop=function(a){var b=this;if(a.mediaBlocks.length>1){var c=new f([],null,null,this.getIndex(),this.fileInfo()).createEmptySelectors();b=new d(c,a.mediaBlocks),b.multiMedia=!0,b.copyVisibilityInfo(this.visibilityInfo()),this.setParent(b,this)}return delete a.mediaBlocks,delete a.mediaPath,b},k.prototype.evalNested=function(a){var b,c,f=a.mediaPath.concat([this]);for(b=0;b<f.length;b++)c=f[b].features instanceof e?f[b].features.value:f[b].features,f[b]=Array.isArray(c)?c:[c];return this.features=new e(this.permute(f).map(function(a){for(a=a.map(function(a){return a.toCSS?a:new g(a)}),b=a.length-1;b>0;b--)a.splice(b,0,new g("and"));return new h(a)})),this.setParent(this.features,this),new d([],[])},k.prototype.permute=function(a){if(0===a.length)return[];if(1===a.length)return a[0];for(var b=[],c=this.permute(a.slice(1)),d=0;d<c.length;d++)for(var e=0;e<a[0].length;e++)b.push([a[0][e]].concat(c[d]));return b},k.prototype.bubbleSelectors=function(a){a&&(this.rules=[new d(j.copyArray(a),[this.rules[0]])],this.setParent(this.rules,this))},b.exports=k},{"../utils":89,"./anonymous":50,"./atrule":52,"./expression":64,"./ruleset":81,"./selector":82,"./value":86}],72:[function(a,b,c){var d=a("./node"),e=a("./selector"),f=a("./mixin-definition"),g=a("../functions/default"),h=function(a,b,c,d,f){this.selector=new e(a),this.arguments=b||[],this._index=c,this._fileInfo=d,this.important=f,this.allowRoot=!0,this.setParent(this.selector,this)};h.prototype=new d,h.prototype.type="MixinCall",h.prototype.accept=function(a){this.selector&&(this.selector=a.visit(this.selector)),this.arguments.length&&(this.arguments=a.visitArray(this.arguments))},h.prototype.eval=function(a){function b(b,c){var d,e,f;for(d=0;d<2;d++){for(x[d]=!0,g.value(d),e=0;e<c.length&&x[d];e++)f=c[e],f.matchCondition&&(x[d]=x[d]&&f.matchCondition(null,a));b.matchCondition&&(x[d]=x[d]&&b.matchCondition(t,a))}return x[0]||x[1]?x[0]!=x[1]?x[1]?A:B:z:y}var c,d,e,h,i,j,k,l,m,n,o,p,q,r,s,t=[],u=[],v=!1,w=[],x=[],y=-1,z=0,A=1,B=2;for(this.selector=this.selector.eval(a),j=0;j<this.arguments.length;j++)if(h=this.arguments[j],i=h.value.eval(a),h.expand&&Array.isArray(i.value))for(i=i.value,k=0;k<i.length;k++)t.push({value:i[k]});else t.push({name:h.name,value:i});for(s=function(b){return b.matchArgs(null,a)},j=0;j<a.frames.length;j++)if((c=a.frames[j].find(this.selector,null,s)).length>0){for(n=!0,k=0;k<c.length;k++){for(d=c[k].rule,e=c[k].path,m=!1,l=0;l<a.frames.length;l++)if(!(d instanceof f)&&d===(a.frames[l].originalRuleset||a.frames[l])){m=!0;break}m||d.matchArgs(t,a)&&(o={mixin:d,group:b(d,e)},o.group!==y&&w.push(o),v=!0)}for(g.reset(),q=[0,0,0],k=0;k<w.length;k++)q[w[k].group]++;if(q[z]>0)p=B;else if(p=A,q[A]+q[B]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(t)+"`",index:this.getIndex(),filename:this.fileInfo().filename};for(k=0;k<w.length;k++)if(o=w[k].group,o===z||o===p)try{d=w[k].mixin,d instanceof f||(r=d.originalRuleset||d,d=new f("",[],d.rules,null,(!1),null,r.visibilityInfo()),d.originalRuleset=r);var C=d.evalCall(a,t,this.important).rules;this._setVisibilityToReplacement(C),Array.prototype.push.apply(u,C)}catch(D){throw{message:D.message,index:this.getIndex(),filename:this.fileInfo().filename,stack:D.stack}}if(v)return u}throw n?{type:"Runtime",message:"No matching definition was found for `"+this.format(t)+"`",index:this.getIndex(),filename:this.fileInfo().filename}:{type:"Name",message:this.selector.toCSS().trim()+" is undefined",index:this.getIndex(),filename:this.fileInfo().filename}},h.prototype._setVisibilityToReplacement=function(a){var b,c;if(this.blocksVisibility())for(b=0;b<a.length;b++)c=a[b],c.addVisibilityBlock()},h.prototype.format=function(a){return this.selector.toCSS().trim()+"("+(a?a.map(function(a){var b="";return a.name&&(b+=a.name+":"),b+=a.value.toCSS?a.value.toCSS():"???"}).join(", "):"")+")"},b.exports=h},{"../functions/default":25,"./mixin-definition":73,"./node":76,"./selector":82}],73:[function(a,b,c){var d=a("./selector"),e=a("./element"),f=a("./ruleset"),g=a("./declaration"),h=a("./detached-ruleset"),i=a("./expression"),j=a("../contexts"),k=a("../utils"),l=function(a,b,c,f,g,h,i){this.name=a||"anonymous mixin",this.selectors=[new d([new e(null,a,(!1),this._index,this._fileInfo)])],this.params=b,this.condition=f,this.variadic=g,this.arity=b.length,this.rules=c,this._lookups={};var j=[];this.required=b.reduce(function(a,b){return!b.name||b.name&&!b.value?a+1:(j.push(b.name),a)},0),this.optionalParameters=j,this.frames=h,this.copyVisibilityInfo(i),this.allowRoot=!0};l.prototype=new f,l.prototype.type="MixinDefinition",l.prototype.evalFirst=!0,l.prototype.accept=function(a){this.params&&this.params.length&&(this.params=a.visitArray(this.params)),this.rules=a.visitArray(this.rules),this.condition&&(this.condition=a.visit(this.condition))},l.prototype.evalParams=function(a,b,c,d){var e,l,m,n,o,p,q,r,s=new f(null,null),t=k.copyArray(this.params),u=0;if(b.frames&&b.frames[0]&&b.frames[0].functionRegistry&&(s.functionRegistry=b.frames[0].functionRegistry.inherit()),b=new j.Eval(b,[s].concat(b.frames)),c)for(c=k.copyArray(c),u=c.length,m=0;m<u;m++)if(l=c[m],p=l&&l.name){for(q=!1,n=0;n<t.length;n++)if(!d[n]&&p===t[n].name){d[n]=l.value.eval(a),s.prependRule(new g(p,l.value.eval(a))),q=!0;break}if(q){c.splice(m,1),m--;continue}throw{type:"Runtime",message:"Named argument for "+this.name+" "+c[m].name+" not found"}}for(r=0,m=0;m<t.length;m++)if(!d[m]){if(l=c&&c[r],p=t[m].name)if(t[m].variadic){for(e=[],n=r;n<u;n++)e.push(c[n].value.eval(a));s.prependRule(new g(p,new i(e).eval(a)))}else{if(o=l&&l.value)o=Array.isArray(o)?new h(new f("",o)):o.eval(a);else{if(!t[m].value)throw{type:"Runtime",message:"wrong number of arguments for "+this.name+" ("+u+" for "+this.arity+")"};o=t[m].value.eval(b),s.resetCache()}s.prependRule(new g(p,o)),d[m]=o}if(t[m].variadic&&c)for(n=r;n<u;n++)d[n]=c[n].value.eval(a);r++}return s},l.prototype.makeImportant=function(){var a=this.rules?this.rules.map(function(a){return a.makeImportant?a.makeImportant(!0):a}):this.rules,b=new l(this.name,this.params,a,this.condition,this.variadic,this.frames);return b},l.prototype.eval=function(a){return new l(this.name,this.params,this.rules,this.condition,this.variadic,this.frames||k.copyArray(a.frames))},l.prototype.evalCall=function(a,b,c){var d,e,h=[],l=this.frames?this.frames.concat(a.frames):a.frames,m=this.evalParams(a,new j.Eval(a,l),b,h);return m.prependRule(new g("@arguments",new i(h).eval(a))),d=k.copyArray(this.rules),e=new f(null,d),e.originalRuleset=this,e=e.eval(new j.Eval(a,[this,m].concat(l))),c&&(e=e.makeImportant()),e},l.prototype.matchCondition=function(a,b){return!(this.condition&&!this.condition.eval(new j.Eval(b,[this.evalParams(b,new j.Eval(b,this.frames?this.frames.concat(b.frames):b.frames),a,[])].concat(this.frames||[]).concat(b.frames))))},l.prototype.matchArgs=function(a,b){var c,d=a&&a.length||0,e=this.optionalParameters,f=a?a.reduce(function(a,b){return e.indexOf(b.name)<0?a+1:a},0):0;if(this.variadic){if(f<this.required-1)return!1}else{if(f<this.required)return!1;if(d>this.params.length)return!1}c=Math.min(f,this.arity);for(var g=0;g<c;g++)if(!this.params[g].name&&!this.params[g].variadic&&a[g].value.eval(b).toCSS()!=this.params[g].value.eval(b).toCSS())return!1;return!0},b.exports=l},{"../contexts":13,"../utils":89,"./declaration":60,"./detached-ruleset":61,"./element":63,"./expression":64,"./ruleset":81,"./selector":82}],74:[function(a,b,c){var d=a("./node"),e=a("./variable"),f=a("./ruleset"),g=a("./selector"),h=function(a,b,c,d,e){this.value=a,this.lookups=b,this.important=c,this._index=d,this._fileInfo=e};h.prototype=new d,h.prototype.type="NamespaceValue",h.prototype.eval=function(a){var b,c,d=this.value.eval(a);for(b=0;b<this.lookups.length;b++){if(c=this.lookups[b],Array.isArray(d)&&(d=new f([new g],d)),""===c)d=d.lastDeclaration();else if("@"===c.charAt(0)){if("@"===c.charAt(1)&&(c="@"+new e(c.substr(1)).eval(a).value),d.variables&&(d=d.variable(c)),!d)throw{type:"Name",message:"variable "+c+" not found",filename:this.fileInfo().filename,index:this.getIndex()}}else{if(c="$@"===c.substring(0,2)?"$"+new e(c.substr(1)).eval(a).value:"$"===c.charAt(0)?c:"$"+c,d.properties&&(d=d.property(c)),!d)throw{type:"Name",message:'property "'+c.substr(1)+'" not found',filename:this.fileInfo().filename,index:this.getIndex()};d=d[d.length-1]}d.value&&(d=d.eval(a).value),d.ruleset&&(d=d.ruleset.eval(a))}return d},b.exports=h},{"./node":76,"./ruleset":81,"./selector":82,"./variable":88}],75:[function(a,b,c){var d=a("./node"),e=a("./operation"),f=a("./dimension"),g=function(a){this.value=a};g.prototype=new d,g.prototype.type="Negative",g.prototype.genCSS=function(a,b){b.add("-"),this.value.genCSS(a,b)},g.prototype.eval=function(a){return a.isMathOn()?new e("*",[new f((-1)),this.value]).eval(a):new g(this.value.eval(a))},b.exports=g},{"./dimension":62,"./node":76,"./operation":77}],76:[function(a,b,c){var d=function(){this.parent=null,this.visibilityBlocks=void 0,this.nodeVisible=void 0,this.rootNode=null,this.parsed=null;var a=this;Object.defineProperty(this,"currentFileInfo",{get:function(){return a.fileInfo()}}),Object.defineProperty(this,"index",{get:function(){return a.getIndex()}})};d.prototype.setParent=function(a,b){function c(a){a&&a instanceof d&&(a.parent=b)}Array.isArray(a)?a.forEach(c):c(a)},d.prototype.getIndex=function(){return this._index||this.parent&&this.parent.getIndex()||0},d.prototype.fileInfo=function(){return this._fileInfo||this.parent&&this.parent.fileInfo()||{}},d.prototype.isRulesetLike=function(){return!1},d.prototype.toCSS=function(a){var b=[];return this.genCSS(a,{add:function(a,c,d){b.push(a)},isEmpty:function(){return 0===b.length}}),b.join("")},d.prototype.genCSS=function(a,b){b.add(this.value)},d.prototype.accept=function(a){this.value=a.visit(this.value)},d.prototype.eval=function(){return this},d.prototype._operate=function(a,b,c,d){switch(b){case"+":return c+d;case"-":return c-d;case"*":return c*d;case"/":return c/d}},d.prototype.fround=function(a,b){var c=a&&a.numPrecision;return c?Number((b+2e-16).toFixed(c)):b},d.compare=function(a,b){if(a.compare&&"Quoted"!==b.type&&"Anonymous"!==b.type)return a.compare(b);if(b.compare)return-b.compare(a);if(a.type===b.type){if(a=a.value,b=b.value,!Array.isArray(a))return a===b?0:void 0;if(a.length===b.length){for(var c=0;c<a.length;c++)if(0!==d.compare(a[c],b[c]))return;return 0}}},d.numericCompare=function(a,b){return a<b?-1:a===b?0:a>b?1:void 0},d.prototype.blocksVisibility=function(){return null==this.visibilityBlocks&&(this.visibilityBlocks=0),0!==this.visibilityBlocks},d.prototype.addVisibilityBlock=function(){null==this.visibilityBlocks&&(this.visibilityBlocks=0),this.visibilityBlocks=this.visibilityBlocks+1},d.prototype.removeVisibilityBlock=function(){null==this.visibilityBlocks&&(this.visibilityBlocks=0),this.visibilityBlocks=this.visibilityBlocks-1},d.prototype.ensureVisibility=function(){this.nodeVisible=!0},d.prototype.ensureInvisibility=function(){this.nodeVisible=!1},d.prototype.isVisible=function(){return this.nodeVisible},d.prototype.visibilityInfo=function(){return{visibilityBlocks:this.visibilityBlocks,nodeVisible:this.nodeVisible}},d.prototype.copyVisibilityInfo=function(a){a&&(this.visibilityBlocks=a.visibilityBlocks,this.nodeVisible=a.nodeVisible)},b.exports=d},{}],77:[function(a,b,c){var d=a("./node"),e=a("./color"),f=a("./dimension"),g=a("../constants").Math,h=function(a,b,c){this.op=a.trim(),this.operands=b,this.isSpaced=c};h.prototype=new d,h.prototype.type="Operation",h.prototype.accept=function(a){this.operands=a.visit(this.operands)},h.prototype.eval=function(a){var b,c=this.operands[0].eval(a),d=this.operands[1].eval(a);if(a.isMathOn(this.op)){if(b="./"===this.op?"/":this.op,c instanceof f&&d instanceof e&&(c=c.toColor()),d instanceof f&&c instanceof e&&(d=d.toColor()),!c.operate){if(c instanceof h&&"/"===c.op&&a.math===g.PARENS_DIVISION)return new h(this.op,[c,d],this.isSpaced);throw{type:"Operation",message:"Operation on an invalid type"}}return c.operate(a,b,d)}return new h(this.op,[c,d],this.isSpaced)},h.prototype.genCSS=function(a,b){this.operands[0].genCSS(a,b),this.isSpaced&&b.add(" "),b.add(this.op),this.isSpaced&&b.add(" "),this.operands[1].genCSS(a,b)},b.exports=h},{"../constants":12,"./color":55,"./dimension":62,"./node":76}],78:[function(a,b,c){var d=a("./node"),e=function(a){this.value=a};e.prototype=new d,e.prototype.type="Paren",e.prototype.genCSS=function(a,b){b.add("("),this.value.genCSS(a,b),b.add(")")},e.prototype.eval=function(a){return new e(this.value.eval(a))},b.exports=e},{"./node":76}],79:[function(a,b,c){var d=a("./node"),e=a("./declaration"),f=function(a,b,c){this.name=a,this._index=b,this._fileInfo=c};f.prototype=new d,f.prototype.type="Property",f.prototype.eval=function(a){var b,c=this.name,d=a.pluginManager.less.visitors.ToCSSVisitor.prototype._mergeRules;if(this.evaluating)throw{type:"Name",message:"Recursive property reference for "+c,filename:this.fileInfo().filename,index:this.getIndex()};if(this.evaluating=!0,b=this.find(a.frames,function(b){var f,g=b.property(c);if(g){for(var h=0;h<g.length;h++)f=g[h],g[h]=new e(f.name,f.value,f.important,f.merge,f.index,f.currentFileInfo,f.inline,f.variable);if(d(g),f=g[g.length-1],f.important){var i=a.importantScope[a.importantScope.length-1];i.important=f.important}return f=f.value.eval(a)}}))return this.evaluating=!1,b;throw{type:"Name",message:"Property '"+c+"' is undefined",filename:this.currentFileInfo.filename,index:this.index}},f.prototype.find=function(a,b){for(var c,d=0;d<a.length;d++)if(c=b.call(a,a[d]))return c;return null},b.exports=f},{"./declaration":60,"./node":76}],80:[function(a,b,c){var d=a("./node"),e=a("./variable"),f=a("./property"),g=function(a,b,c,d,e){this.escaped=null==c||c,this.value=b||"",this.quote=a.charAt(0),this._index=d,this._fileInfo=e,this.variableRegex=/@\{([\w-]+)\}/g,this.propRegex=/\$\{([\w-]+)\}/g};g.prototype=new d,g.prototype.type="Quoted",g.prototype.genCSS=function(a,b){this.escaped||b.add(this.quote,this.fileInfo(),this.getIndex()),b.add(this.value),this.escaped||b.add(this.quote)},g.prototype.containsVariables=function(){return this.value.match(this.variableRegex)},g.prototype.eval=function(a){function b(a,b,c){var d=a;do a=d,d=a.replace(b,c);while(a!==d);return d}var c=this,d=this.value,h=function(b,d){var f=new e("@"+d,c.getIndex(),c.fileInfo()).eval(a,!0);return f instanceof g?f.value:f.toCSS()},i=function(b,d){var e=new f("$"+d,c.getIndex(),c.fileInfo()).eval(a,!0);return e instanceof g?e.value:e.toCSS()};return d=b(d,this.variableRegex,h),d=b(d,this.propRegex,i),new g(this.quote+d+this.quote,d,this.escaped,this.getIndex(),this.fileInfo())},g.prototype.compare=function(a){return"Quoted"!==a.type||this.escaped||a.escaped?a.toCSS&&this.toCSS()===a.toCSS()?0:void 0:d.numericCompare(this.value,a.value)},b.exports=g},{"./node":76,"./property":79,"./variable":88}],81:[function(a,b,c){var d=a("./node"),e=a("./declaration"),f=a("./keyword"),g=a("./comment"),h=a("./paren"),i=a("./selector"),j=a("./element"),k=a("./anonymous"),l=a("../contexts"),m=a("../functions/function-registry"),n=a("../functions/default"),o=a("./debug-info"),p=a("../utils"),q=function(a,b,c,d){this.selectors=a,this.rules=b,this._lookups={},this._variables=null,this._properties=null,this.strictImports=c,this.copyVisibilityInfo(d),this.allowRoot=!0,this.setParent(this.selectors,this),this.setParent(this.rules,this)};q.prototype=new d,q.prototype.type="Ruleset",q.prototype.isRuleset=!0,q.prototype.isRulesetLike=function(){return!0},q.prototype.accept=function(a){this.paths?this.paths=a.visitArray(this.paths,!0):this.selectors&&(this.selectors=a.visitArray(this.selectors)),this.rules&&this.rules.length&&(this.rules=a.visitArray(this.rules))},q.prototype.eval=function(a){var b,c,f,g,h,i=!1;if(this.selectors&&(c=this.selectors.length)){for(b=new Array(c),n.error({type:"Syntax",message:"it is currently only allowed in parametric mixin guards,"}),g=0;g<c;g++){f=this.selectors[g].eval(a);for(var j=0;j<f.elements.length;j++)if(f.elements[j].isVariable){h=!0;break}b[g]=f,f.evaldCondition&&(i=!0)}if(h){var k=new Array(c);for(g=0;g<c;g++)f=b[g],k[g]=f.toCSS(a);this.parse.parseNode(k.join(","),["selectors"],b[0].getIndex(),b[0].fileInfo(),function(a,c){c&&(b=p.flattenArray(c))})}n.reset()}else i=!0;var l,o,r=this.rules?p.copyArray(this.rules):null,s=new q(b,r,this.strictImports,this.visibilityInfo());s.originalRuleset=this,s.root=this.root,s.firstRoot=this.firstRoot,s.allowImports=this.allowImports,this.debugInfo&&(s.debugInfo=this.debugInfo),i||(r.length=0),s.functionRegistry=function(a){for(var b,c=0,d=a.length;c!==d;++c)if(b=a[c].functionRegistry)return b;return m}(a.frames).inherit();var t=a.frames;t.unshift(s);var u=a.selectors;u||(a.selectors=u=[]),u.unshift(this.selectors),(s.root||s.allowImports||!s.strictImports)&&s.evalImports(a);var v=s.rules;for(g=0;l=v[g];g++)l.evalFirst&&(v[g]=l.eval(a));var w=a.mediaBlocks&&a.mediaBlocks.length||0;for(g=0;l=v[g];g++)"MixinCall"===l.type?(r=l.eval(a).filter(function(a){return!(a instanceof e&&a.variable)||!s.variable(a.name)}),v.splice.apply(v,[g,1].concat(r)),g+=r.length-1,s.resetCache()):"VariableCall"===l.type&&(r=l.eval(a).rules.filter(function(a){return!(a instanceof e&&a.variable)}),v.splice.apply(v,[g,1].concat(r)),g+=r.length-1,s.resetCache());for(g=0;l=v[g];g++)l.evalFirst||(v[g]=l=l.eval?l.eval(a):l);for(g=0;l=v[g];g++)if(l instanceof q&&l.selectors&&1===l.selectors.length&&l.selectors[0]&&l.selectors[0].isJustParentSelector()){v.splice(g--,1);for(var j=0;o=l.rules[j];j++)o instanceof d&&(o.copyVisibilityInfo(l.visibilityInfo()),o instanceof e&&o.variable||v.splice(++g,0,o))}if(t.shift(),u.shift(),a.mediaBlocks)for(g=w;g<a.mediaBlocks.length;g++)a.mediaBlocks[g].bubbleSelectors(b);return s},q.prototype.evalImports=function(a){var b,c,d=this.rules;if(d)for(b=0;b<d.length;b++)"Import"===d[b].type&&(c=d[b].eval(a),c&&(c.length||0===c.length)?(d.splice.apply(d,[b,1].concat(c)),b+=c.length-1):d.splice(b,1,c),this.resetCache())},q.prototype.makeImportant=function(){var a=new q(this.selectors,this.rules.map(function(a){return a.makeImportant?a.makeImportant():a}),this.strictImports,this.visibilityInfo());return a},q.prototype.matchArgs=function(a){return!a||0===a.length},q.prototype.matchCondition=function(a,b){var c=this.selectors[this.selectors.length-1];return!!c.evaldCondition&&!(c.condition&&!c.condition.eval(new l.Eval(b,b.frames)))},q.prototype.resetCache=function(){this._rulesets=null,this._variables=null,this._properties=null,this._lookups={}},q.prototype.variables=function(){return this._variables||(this._variables=this.rules?this.rules.reduce(function(a,b){if(b instanceof e&&b.variable===!0&&(a[b.name]=b),"Import"===b.type&&b.root&&b.root.variables){var c=b.root.variables();
+for(var d in c)c.hasOwnProperty(d)&&(a[d]=b.root.variable(d))}return a},{}):{}),this._variables},q.prototype.properties=function(){return this._properties||(this._properties=this.rules?this.rules.reduce(function(a,b){if(b instanceof e&&b.variable!==!0){var c=1===b.name.length&&b.name[0]instanceof f?b.name[0].value:b.name;a["$"+c]?a["$"+c].push(b):a["$"+c]=[b]}return a},{}):{}),this._properties},q.prototype.variable=function(a){var b=this.variables()[a];if(b)return this.parseValue(b)},q.prototype.property=function(a){var b=this.properties()[a];if(b)return this.parseValue(b)},q.prototype.lastDeclaration=function(){for(var a=this.rules.length;a>0;a--){var b=this.rules[a-1];if(b instanceof e)return this.parseValue(b)}},q.prototype.parseValue=function(a){function b(a){return a.value instanceof k&&!a.parsed?("string"==typeof a.value.value?this.parse.parseNode(a.value.value,["value","important"],a.value.getIndex(),a.fileInfo(),function(b,c){b&&(a.parsed=!0),c&&(a.value=c[0],a.important=c[1]||"",a.parsed=!0)}):a.parsed=!0,a):a}var c=this;if(Array.isArray(a)){var d=[];return a.forEach(function(a){d.push(b.call(c,a))}),d}return b.call(c,a)},q.prototype.rulesets=function(){if(!this.rules)return[];var a,b,c=[],d=this.rules;for(a=0;b=d[a];a++)b.isRuleset&&c.push(b);return c},q.prototype.prependRule=function(a){var b=this.rules;b?b.unshift(a):this.rules=[a],this.setParent(a,this)},q.prototype.find=function(a,b,c){b=b||this;var d,e,f=[],g=a.toCSS();return g in this._lookups?this._lookups[g]:(this.rulesets().forEach(function(g){if(g!==b)for(var h=0;h<g.selectors.length;h++)if(d=a.match(g.selectors[h])){if(a.elements.length>d){if(!c||c(g)){e=g.find(new i(a.elements.slice(d)),b,c);for(var j=0;j<e.length;++j)e[j].path.push(g);Array.prototype.push.apply(f,e)}}else f.push({rule:g,path:[]});break}}),this._lookups[g]=f,f)},q.prototype.genCSS=function(a,b){var c,d,e,f,h,i=[],j=[];a.tabLevel=a.tabLevel||0,this.root||a.tabLevel++;var k,l=a.compress?"":Array(a.tabLevel+1).join("  "),m=a.compress?"":Array(a.tabLevel).join("  "),n=0,p=0;for(c=0;f=this.rules[c];c++)f instanceof g?(p===c&&p++,j.push(f)):f.isCharset&&f.isCharset()?(j.splice(n,0,f),n++,p++):"Import"===f.type?(j.splice(p,0,f),p++):j.push(f);if(j=i.concat(j),!this.root){e=o(a,this,m),e&&(b.add(e),b.add(m));var q,r=this.paths,s=r.length;for(k=a.compress?",":",\n"+m,c=0;c<s;c++)if(h=r[c],q=h.length)for(c>0&&b.add(k),a.firstSelector=!0,h[0].genCSS(a,b),a.firstSelector=!1,d=1;d<q;d++)h[d].genCSS(a,b);b.add((a.compress?"{":" {\n")+l)}for(c=0;f=j[c];c++){c+1===j.length&&(a.lastRule=!0);var t=a.lastRule;f.isRulesetLike(f)&&(a.lastRule=!1),f.genCSS?f.genCSS(a,b):f.value&&b.add(f.value.toString()),a.lastRule=t,!a.lastRule&&f.isVisible()?b.add(a.compress?"":"\n"+l):a.lastRule=!1}this.root||(b.add(a.compress?"}":"\n"+m+"}"),a.tabLevel--),b.isEmpty()||a.compress||!this.firstRoot||b.add("\n")},q.prototype.joinSelectors=function(a,b,c){for(var d=0;d<c.length;d++)this.joinSelector(a,b,c[d])},q.prototype.joinSelector=function(a,b,c){function d(a,b){var c,d;if(0===a.length)c=new h(a[0]);else{var e=new Array(a.length);for(d=0;d<a.length;d++)e[d]=new j(null,a[d],b.isVariable,b._index,b._fileInfo);c=new h(new i(e))}return c}function e(a,b){var c,d;return c=new j(null,a,b.isVariable,b._index,b._fileInfo),d=new i([c])}function f(a,b,c,d){var e,f,g;if(e=[],a.length>0?(e=p.copyArray(a),f=e.pop(),g=d.createDerived(p.copyArray(f.elements))):g=d.createDerived([]),b.length>0){var h=c.combinator,i=b[0].elements[0];h.emptyOrWhitespace&&!i.combinator.emptyOrWhitespace&&(h=i.combinator),g.elements.push(new j(h,i.value,c.isVariable,c._index,c._fileInfo)),g.elements=g.elements.concat(b[0].elements.slice(1))}if(0!==g.elements.length&&e.push(g),b.length>1){var k=b.slice(1);k=k.map(function(a){return a.createDerived(a.elements,[])}),e=e.concat(k)}return e}function g(a,b,c,d,e){var g;for(g=0;g<a.length;g++){var h=f(a[g],b,c,d);e.push(h)}return e}function k(a,b){var c,d;if(0!==a.length){if(0===b.length)return void b.push([new i(a)]);for(c=0;d=b[c];c++)d.length>0?d[d.length-1]=d[d.length-1].createDerived(d[d.length-1].elements.concat(a)):d.push(new i(a))}}function l(a,b,c){function m(a){var b;return a.value instanceof h?(b=a.value.value,b instanceof i?b:null):null}var n,o,p,q,r,s,t,u,v,w,x=!1;for(q=[],r=[[]],n=0;u=c.elements[n];n++)if("&"!==u.value){var y=m(u);if(null!=y){k(q,r);var z,A=[],B=[];for(z=l(A,b,y),x=x||z,p=0;p<A.length;p++){var C=e(d(A[p],u),u);g(r,[C],u,c,B)}r=B,q=[]}else q.push(u)}else{for(x=!0,s=[],k(q,r),o=0;o<r.length;o++)if(t=r[o],0===b.length)t.length>0&&t[0].elements.push(new j(u.combinator,"",u.isVariable,u._index,u._fileInfo)),s.push(t);else for(p=0;p<b.length;p++){var D=f(t,b[p],u,c);s.push(D)}r=s,q=[]}for(k(q,r),n=0;n<r.length;n++)v=r[n].length,v>0&&(a.push(r[n]),w=r[n][v-1],r[n][v-1]=w.createDerived(w.elements,c.extendList));return x}function m(a,b){var c=b.createDerived(b.elements,b.extendList,b.evaldCondition);return c.copyVisibilityInfo(a),c}var n,o,q;if(o=[],q=l(o,b,c),!q)if(b.length>0)for(o=[],n=0;n<b.length;n++){var r=b[n].map(m.bind(this,c.visibilityInfo()));r.push(c),o.push(r)}else o=[[c]];for(n=0;n<o.length;n++)a.push(o[n])},b.exports=q},{"../contexts":13,"../functions/default":25,"../functions/function-registry":27,"../utils":89,"./anonymous":50,"./comment":57,"./debug-info":59,"./declaration":60,"./element":63,"./keyword":70,"./node":76,"./paren":78,"./selector":82}],82:[function(a,b,c){var d=a("./node"),e=a("./element"),f=a("../less-error"),g=function(a,b,c,d,e,f){this.extendList=b,this.condition=c,this.evaldCondition=!c,this._index=d,this._fileInfo=e,this.elements=this.getElements(a),this.mixinElements_=void 0,this.copyVisibilityInfo(f),this.setParent(this.elements,this)};g.prototype=new d,g.prototype.type="Selector",g.prototype.accept=function(a){this.elements&&(this.elements=a.visitArray(this.elements)),this.extendList&&(this.extendList=a.visitArray(this.extendList)),this.condition&&(this.condition=a.visit(this.condition))},g.prototype.createDerived=function(a,b,c){a=this.getElements(a);var d=new g(a,b||this.extendList,null,this.getIndex(),this.fileInfo(),this.visibilityInfo());return d.evaldCondition=null!=c?c:this.evaldCondition,d.mediaEmpty=this.mediaEmpty,d},g.prototype.getElements=function(a){return a?("string"==typeof a&&this.parse.parseNode(a,["selector"],this._index,this._fileInfo,function(b,c){if(b)throw new f({index:b.index,message:b.message},this.parse.imports,this._fileInfo.filename);a=c[0].elements}),a):[new e("","&",(!1),this._index,this._fileInfo)]},g.prototype.createEmptySelectors=function(){var a=new e("","&",(!1),this._index,this._fileInfo),b=[new g([a],null,null,this._index,this._fileInfo)];return b[0].mediaEmpty=!0,b},g.prototype.match=function(a){var b,c,d=this.elements,e=d.length;if(a=a.mixinElements(),b=a.length,0===b||e<b)return 0;for(c=0;c<b;c++)if(d[c].value!==a[c])return 0;return b},g.prototype.mixinElements=function(){if(this.mixinElements_)return this.mixinElements_;var a=this.elements.map(function(a){return a.combinator.value+(a.value.value||a.value)}).join("").match(/[,&#\*\.\w-]([\w-]|(\\.))*/g);return a?"&"===a[0]&&a.shift():a=[],this.mixinElements_=a},g.prototype.isJustParentSelector=function(){return!this.mediaEmpty&&1===this.elements.length&&"&"===this.elements[0].value&&(" "===this.elements[0].combinator.value||""===this.elements[0].combinator.value)},g.prototype.eval=function(a){var b=this.condition&&this.condition.eval(a),c=this.elements,d=this.extendList;return c=c&&c.map(function(b){return b.eval(a)}),d=d&&d.map(function(b){return b.eval(a)}),this.createDerived(c,d,b)},g.prototype.genCSS=function(a,b){var c,d;for(a&&a.firstSelector||""!==this.elements[0].combinator.value||b.add(" ",this.fileInfo(),this.getIndex()),c=0;c<this.elements.length;c++)d=this.elements[c],d.genCSS(a,b)},g.prototype.getIsOutput=function(){return this.evaldCondition},b.exports=g},{"../less-error":38,"./element":63,"./node":76}],83:[function(a,b,c){var d=a("./node"),e=function(a){this.value=a};e.prototype=new d,e.prototype.type="UnicodeDescriptor",b.exports=e},{"./node":76}],84:[function(a,b,c){var d=a("./node"),e=a("../data/unit-conversions"),f=a("../utils"),g=function(a,b,c){this.numerator=a?f.copyArray(a).sort():[],this.denominator=b?f.copyArray(b).sort():[],c?this.backupUnit=c:a&&a.length&&(this.backupUnit=a[0])};g.prototype=new d,g.prototype.type="Unit",g.prototype.clone=function(){return new g(f.copyArray(this.numerator),f.copyArray(this.denominator),this.backupUnit)},g.prototype.genCSS=function(a,b){var c=a&&a.strictUnits;1===this.numerator.length?b.add(this.numerator[0]):!c&&this.backupUnit?b.add(this.backupUnit):!c&&this.denominator.length&&b.add(this.denominator[0])},g.prototype.toString=function(){var a,b=this.numerator.join("*");for(a=0;a<this.denominator.length;a++)b+="/"+this.denominator[a];return b},g.prototype.compare=function(a){return this.is(a.toString())?0:void 0},g.prototype.is=function(a){return this.toString().toUpperCase()===a.toUpperCase()},g.prototype.isLength=function(){return RegExp("^(px|em|ex|ch|rem|in|cm|mm|pc|pt|ex|vw|vh|vmin|vmax)$","gi").test(this.toCSS())},g.prototype.isEmpty=function(){return 0===this.numerator.length&&0===this.denominator.length},g.prototype.isSingular=function(){return this.numerator.length<=1&&0===this.denominator.length},g.prototype.map=function(a){var b;for(b=0;b<this.numerator.length;b++)this.numerator[b]=a(this.numerator[b],!1);for(b=0;b<this.denominator.length;b++)this.denominator[b]=a(this.denominator[b],!0)},g.prototype.usedUnits=function(){var a,b,c,d={};b=function(b){return a.hasOwnProperty(b)&&!d[c]&&(d[c]=b),b};for(c in e)e.hasOwnProperty(c)&&(a=e[c],this.map(b));return d},g.prototype.cancel=function(){var a,b,c={};for(b=0;b<this.numerator.length;b++)a=this.numerator[b],c[a]=(c[a]||0)+1;for(b=0;b<this.denominator.length;b++)a=this.denominator[b],c[a]=(c[a]||0)-1;this.numerator=[],this.denominator=[];for(a in c)if(c.hasOwnProperty(a)){var d=c[a];if(d>0)for(b=0;b<d;b++)this.numerator.push(a);else if(d<0)for(b=0;b<-d;b++)this.denominator.push(a)}this.numerator.sort(),this.denominator.sort()},b.exports=g},{"../data/unit-conversions":16,"../utils":89,"./node":76}],85:[function(a,b,c){function d(a){return a.replace(/[\(\)'"\s]/g,function(a){return"\\"+a})}var e=a("./node"),f=function(a,b,c,d){this.value=a,this._index=b,this._fileInfo=c,this.isEvald=d};f.prototype=new e,f.prototype.type="Url",f.prototype.accept=function(a){this.value=a.visit(this.value)},f.prototype.genCSS=function(a,b){b.add("url("),this.value.genCSS(a,b),b.add(")")},f.prototype.eval=function(a){var b,c=this.value.eval(a);if(!this.isEvald&&(b=this.fileInfo()&&this.fileInfo().rootpath,"string"==typeof b&&"string"==typeof c.value&&a.pathRequiresRewrite(c.value)?(c.quote||(b=d(b)),c.value=a.rewritePath(c.value,b)):c.value=a.normalizePath(c.value),a.urlArgs&&!c.value.match(/^\s*data:/))){var e=c.value.indexOf("?")===-1?"?":"&",g=e+a.urlArgs;c.value.indexOf("#")!==-1?c.value=c.value.replace("#",g+"#"):c.value+=g}return new f(c,this.getIndex(),this.fileInfo(),(!0))},b.exports=f},{"./node":76}],86:[function(a,b,c){var d=a("./node"),e=function(a){if(!a)throw new Error("Value requires an array argument");this.value=Array.isArray(a)?a:[a]};e.prototype=new d,e.prototype.type="Value",e.prototype.accept=function(a){this.value&&(this.value=a.visitArray(this.value))},e.prototype.eval=function(a){return 1===this.value.length?this.value[0].eval(a):new e(this.value.map(function(b){return b.eval(a)}))},e.prototype.genCSS=function(a,b){var c;for(c=0;c<this.value.length;c++)this.value[c].genCSS(a,b),c+1<this.value.length&&b.add(a&&a.compress?",":", ")},b.exports=e},{"./node":76}],87:[function(a,b,c){var d=a("./node"),e=a("./variable"),f=a("./ruleset"),g=a("./detached-ruleset"),h=a("../less-error"),i=function(a,b,c){this.variable=a,this._index=b,this._fileInfo=c,this.allowRoot=!0};i.prototype=new d,i.prototype.type="VariableCall",i.prototype.eval=function(a){var b,c=new e(this.variable,this.getIndex(),this.fileInfo()).eval(a),d=new h({message:"Could not evaluate variable call "+this.variable});if(!c.ruleset){if(c.rules)b=c;else if(Array.isArray(c))b=new f("",c);else{if(!Array.isArray(c.value))throw d;b=new f("",c.value)}c=new g(b)}if(c.ruleset)return c.callEval(a);throw d},b.exports=i},{"../less-error":38,"./detached-ruleset":61,"./node":76,"./ruleset":81,"./variable":88}],88:[function(a,b,c){var d=a("./node"),e=a("./call"),f=function(a,b,c){this.name=a,this._index=b,this._fileInfo=c};f.prototype=new d,f.prototype.type="Variable",f.prototype.eval=function(a){var b,c=this.name;if(0===c.indexOf("@@")&&(c="@"+new f(c.slice(1),this.getIndex(),this.fileInfo()).eval(a).value),this.evaluating)throw{type:"Name",message:"Recursive variable definition for "+c,filename:this.fileInfo().filename,index:this.getIndex()};if(this.evaluating=!0,b=this.find(a.frames,function(b){var d=b.variable(c);if(d){if(d.important){var f=a.importantScope[a.importantScope.length-1];f.important=d.important}return a.inCalc?new e("_SELF",[d.value]).eval(a):d.value.eval(a)}}))return this.evaluating=!1,b;throw{type:"Name",message:"variable "+c+" is undefined",filename:this.fileInfo().filename,index:this.getIndex()}},f.prototype.find=function(a,b){for(var c,d=0;d<a.length;d++)if(c=b.call(a,a[d]))return c;return null},b.exports=f},{"./call":54,"./node":76}],89:[function(a,b,c){var d=a("./constants"),e=a("clone"),f={getLocation:function(a,b){for(var c=a+1,d=null,e=-1;--c>=0&&"\n"!==b.charAt(c);)e++;return"number"==typeof a&&(d=(b.slice(0,a).match(/\n/g)||"").length),{line:d,column:e}},copyArray:function(a){var b,c=a.length,d=new Array(c);for(b=0;b<c;b++)d[b]=a[b];return d},clone:function(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b},copyOptions:function(a,b){if(b&&b._defaults)return b;var c=f.defaults(a,b);if(c.strictMath&&(c.math=d.Math.STRICT_LEGACY),c.relativeUrls&&(c.rewriteUrls=d.RewriteUrls.ALL),"string"==typeof c.math)switch(c.math.toLowerCase()){case"always":c.math=d.Math.ALWAYS;break;case"parens-division":c.math=d.Math.PARENS_DIVISION;break;case"strict":case"parens":c.math=d.Math.PARENS;break;case"strict-legacy":c.math=d.Math.STRICT_LEGACY}if("string"==typeof c.rewriteUrls)switch(c.rewriteUrls.toLowerCase()){case"off":c.rewriteUrls=d.RewriteUrls.OFF;break;case"local":c.rewriteUrls=d.RewriteUrls.LOCAL;break;case"all":c.rewriteUrls=d.RewriteUrls.ALL}return c},defaults:function(a,b){var c=b||{};if(!b._defaults){c={};var d=e(a);c._defaults=d;var f=b?e(b):{};Object.assign(c,d,f)}return c},merge:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a},flattenArray:function(a,b){b=b||[];for(var c=0,d=a.length;c<d;c++){var e=a[c];Array.isArray(e)?f.flattenArray(e,b):void 0!==e&&b.push(e)}return b}};b.exports=f},{"./constants":12,clone:100}],90:[function(a,b,c){var d=a("../tree"),e=a("./visitor"),f=a("../logger"),g=a("../utils"),h=function(){this._visitor=new e(this),this.contexts=[],this.allExtendsStack=[[]]};h.prototype={run:function(a){return a=this._visitor.visit(a),a.allExtends=this.allExtendsStack[0],a},visitDeclaration:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a,b){if(!a.root){var c,e,f,h,i=[],j=a.rules,k=j?j.length:0;for(c=0;c<k;c++)a.rules[c]instanceof d.Extend&&(i.push(j[c]),a.extendOnEveryPath=!0);var l=a.paths;for(c=0;c<l.length;c++){var m=l[c],n=m[m.length-1],o=n.extendList;for(h=o?g.copyArray(o).concat(i):i,h&&(h=h.map(function(a){return a.clone()})),e=0;e<h.length;e++)this.foundExtends=!0,f=h[e],f.findSelfSelectors(m),f.ruleset=a,0===e&&(f.firstExtendOnThisSelectorPath=!0),this.allExtendsStack[this.allExtendsStack.length-1].push(f)}this.contexts.push(a.selectors)}},visitRulesetOut:function(a){a.root||(this.contexts.length=this.contexts.length-1)},visitMedia:function(a,b){a.allExtends=[],this.allExtendsStack.push(a.allExtends)},visitMediaOut:function(a){this.allExtendsStack.length=this.allExtendsStack.length-1},visitAtRule:function(a,b){a.allExtends=[],this.allExtendsStack.push(a.allExtends)},visitAtRuleOut:function(a){this.allExtendsStack.length=this.allExtendsStack.length-1}};var i=function(){this._visitor=new e(this)};i.prototype={run:function(a){var b=new h;if(this.extendIndices={},b.run(a),!b.foundExtends)return a;a.allExtends=a.allExtends.concat(this.doExtendChaining(a.allExtends,a.allExtends)),this.allExtendsStack=[a.allExtends];var c=this._visitor.visit(a);return this.checkExtendsForNonMatched(a.allExtends),c},checkExtendsForNonMatched:function(a){var b=this.extendIndices;a.filter(function(a){return!a.hasFoundMatches&&1==a.parent_ids.length}).forEach(function(a){var c="_unknown_";try{c=a.selector.toCSS({})}catch(d){}b[a.index+" "+c]||(b[a.index+" "+c]=!0,f.warn("extend '"+c+"' has no matches"))})},doExtendChaining:function(a,b,c){var e,f,g,h,i,j,k,l,m=[],n=this;for(c=c||0,e=0;e<a.length;e++)for(f=0;f<b.length;f++)j=a[e],k=b[f],j.parent_ids.indexOf(k.object_id)>=0||(i=[k.selfSelectors[0]],g=n.findMatch(j,i),g.length&&(j.hasFoundMatches=!0,j.selfSelectors.forEach(function(a){var b=k.visibilityInfo();h=n.extendSelector(g,i,a,j.isVisible()),l=new d.Extend(k.selector,k.option,0,k.fileInfo(),b),l.selfSelectors=h,h[h.length-1].extendList=[l],m.push(l),l.ruleset=k.ruleset,l.parent_ids=l.parent_ids.concat(k.parent_ids,j.parent_ids),k.firstExtendOnThisSelectorPath&&(l.firstExtendOnThisSelectorPath=!0,k.ruleset.paths.push(h))})));if(m.length){if(this.extendChainCount++,c>100){var o="{unable to calculate}",p="{unable to calculate}";try{o=m[0].selfSelectors[0].toCSS(),p=m[0].selector.toCSS()}catch(q){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+o+":extend("+p+")"}}return m.concat(n.doExtendChaining(m,b,c+1))}return m},visitDeclaration:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitSelector:function(a,b){b.visitDeeper=!1},visitRuleset:function(a,b){if(!a.root){var c,d,e,f,g=this.allExtendsStack[this.allExtendsStack.length-1],h=[],i=this;for(e=0;e<g.length;e++)for(d=0;d<a.paths.length;d++)if(f=a.paths[d],!a.extendOnEveryPath){var j=f[f.length-1].extendList;j&&j.length||(c=this.findMatch(g[e],f),c.length&&(g[e].hasFoundMatches=!0,g[e].selfSelectors.forEach(function(a){var b;b=i.extendSelector(c,f,a,g[e].isVisible()),h.push(b)})))}a.paths=a.paths.concat(h)}},findMatch:function(a,b){var c,d,e,f,g,h,i,j=this,k=a.selector.elements,l=[],m=[];for(c=0;c<b.length;c++)for(d=b[c],e=0;e<d.elements.length;e++)for(f=d.elements[e],(a.allowBefore||0===c&&0===e)&&l.push({pathIndex:c,index:e,matched:0,initialCombinator:f.combinator}),h=0;h<l.length;h++)i=l[h],g=f.combinator.value,""===g&&0===e&&(g=" "),!j.isElementValuesEqual(k[i.matched].value,f.value)||i.matched>0&&k[i.matched].combinator.value!==g?i=null:i.matched++,i&&(i.finished=i.matched===k.length,i.finished&&!a.allowAfter&&(e+1<d.elements.length||c+1<b.length)&&(i=null)),i?i.finished&&(i.length=k.length,i.endPathIndex=c,i.endPathElementIndex=e+1,l.length=0,m.push(i)):(l.splice(h,1),h--);return m},isElementValuesEqual:function(a,b){if("string"==typeof a||"string"==typeof b)return a===b;if(a instanceof d.Attribute)return a.op===b.op&&a.key===b.key&&(a.value&&b.value?(a=a.value.value||a.value,b=b.value.value||b.value,a===b):!a.value&&!b.value);if(a=a.value,b=b.value,a instanceof d.Selector){if(!(b instanceof d.Selector)||a.elements.length!==b.elements.length)return!1;for(var c=0;c<a.elements.length;c++){if(a.elements[c].combinator.value!==b.elements[c].combinator.value&&(0!==c||(a.elements[c].combinator.value||" ")!==(b.elements[c].combinator.value||" ")))return!1;if(!this.isElementValuesEqual(a.elements[c].value,b.elements[c].value))return!1}return!0}return!1},extendSelector:function(a,b,c,e){var f,g,h,i,j,k=0,l=0,m=[];for(f=0;f<a.length;f++)i=a[f],g=b[i.pathIndex],h=new d.Element(i.initialCombinator,c.elements[0].value,c.elements[0].isVariable,c.elements[0].getIndex(),c.elements[0].fileInfo()),i.pathIndex>k&&l>0&&(m[m.length-1].elements=m[m.length-1].elements.concat(b[k].elements.slice(l)),l=0,k++),j=g.elements.slice(l,i.index).concat([h]).concat(c.elements.slice(1)),k===i.pathIndex&&f>0?m[m.length-1].elements=m[m.length-1].elements.concat(j):(m=m.concat(b.slice(k,i.pathIndex)),m.push(new d.Selector(j))),k=i.endPathIndex,l=i.endPathElementIndex,l>=b[k].elements.length&&(l=0,k++);return k<b.length&&l>0&&(m[m.length-1].elements=m[m.length-1].elements.concat(b[k].elements.slice(l)),k++),m=m.concat(b.slice(k,b.length)),m=m.map(function(a){var b=a.createDerived(a.elements);return e?b.ensureVisibility():b.ensureInvisibility(),b})},visitMedia:function(a,b){var c=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);c=c.concat(this.doExtendChaining(c,a.allExtends)),this.allExtendsStack.push(c)},visitMediaOut:function(a){var b=this.allExtendsStack.length-1;this.allExtendsStack.length=b},visitAtRule:function(a,b){var c=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);c=c.concat(this.doExtendChaining(c,a.allExtends)),this.allExtendsStack.push(c)},visitAtRuleOut:function(a){var b=this.allExtendsStack.length-1;this.allExtendsStack.length=b}},b.exports=i},{"../logger":39,"../tree":67,"../utils":89,"./visitor":97}],91:[function(a,b,c){function d(a){this.imports=[],this.variableImports=[],this._onSequencerEmpty=a,this._currentDepth=0}d.prototype.addImport=function(a){var b=this,c={callback:a,args:null,isReady:!1};return this.imports.push(c),function(){c.args=Array.prototype.slice.call(arguments,0),c.isReady=!0,b.tryRun()}},d.prototype.addVariableImport=function(a){this.variableImports.push(a)},d.prototype.tryRun=function(){this._currentDepth++;try{for(;;){for(;this.imports.length>0;){var a=this.imports[0];if(!a.isReady)return;this.imports=this.imports.slice(1),a.callback.apply(null,a.args)}if(0===this.variableImports.length)break;var b=this.variableImports[0];this.variableImports=this.variableImports.slice(1),b()}}finally{this._currentDepth--}0===this._currentDepth&&this._onSequencerEmpty&&this._onSequencerEmpty()},b.exports=d},{}],92:[function(a,b,c){var d=a("../contexts"),e=a("./visitor"),f=a("./import-sequencer"),g=a("../utils"),h=function(a,b){this._visitor=new e(this),this._importer=a,this._finish=b,this.context=new d.Eval,this.importCount=0,this.onceFileDetectionMap={},this.recursionDetector={},this._sequencer=new f(this._onSequencerEmpty.bind(this))};h.prototype={isReplacing:!1,run:function(a){try{this._visitor.visit(a)}catch(b){this.error=b}this.isFinished=!0,this._sequencer.tryRun()},_onSequencerEmpty:function(){this.isFinished&&this._finish(this.error)},visitImport:function(a,b){var c=a.options.inline;if(!a.css||c){var e=new d.Eval(this.context,g.copyArray(this.context.frames)),f=e.frames[0];this.importCount++,a.isVariableImport()?this._sequencer.addVariableImport(this.processImportNode.bind(this,a,e,f)):this.processImportNode(a,e,f)}b.visitDeeper=!1},processImportNode:function(a,b,c){var d,e=a.options.inline;try{d=a.evalForImport(b)}catch(f){f.filename||(f.index=a.getIndex(),f.filename=a.fileInfo().filename),a.css=!0,a.error=f}if(!d||d.css&&!e)this.importCount--,this.isFinished&&this._sequencer.tryRun();else{d.options.multiple&&(b.importMultiple=!0);for(var g=void 0===d.css,h=0;h<c.rules.length;h++)if(c.rules[h]===a){c.rules[h]=d;break}var i=this.onImported.bind(this,d,b),j=this._sequencer.addImport(i);this._importer.push(d.getPath(),g,d.fileInfo(),d.options,j)}},onImported:function(a,b,c,d,e,f){c&&(c.filename||(c.index=a.getIndex(),c.filename=a.fileInfo().filename),this.error=c);var g=this,h=a.options.inline,i=a.options.isPlugin,j=a.options.optional,k=e||f in g.recursionDetector;if(b.importMultiple||(a.skip=!!k||function(){return f in g.onceFileDetectionMap||(g.onceFileDetectionMap[f]=!0,!1)}),!f&&j&&(a.skip=!0),d&&(a.root=d,a.importedFilename=f,!h&&!i&&(b.importMultiple||!k))){g.recursionDetector[f]=!0;var l=this.context;this.context=b;try{this._visitor.visit(d)}catch(c){this.error=c}this.context=l}g.importCount--,g.isFinished&&g._sequencer.tryRun()},visitDeclaration:function(a,b){"DetachedRuleset"===a.value.type?this.context.frames.unshift(a):b.visitDeeper=!1},visitDeclarationOut:function(a){"DetachedRuleset"===a.value.type&&this.context.frames.shift()},visitAtRule:function(a,b){this.context.frames.unshift(a)},visitAtRuleOut:function(a){this.context.frames.shift()},visitMixinDefinition:function(a,b){this.context.frames.unshift(a)},visitMixinDefinitionOut:function(a){this.context.frames.shift()},visitRuleset:function(a,b){this.context.frames.unshift(a)},visitRulesetOut:function(a){this.context.frames.shift()},visitMedia:function(a,b){this.context.frames.unshift(a.rules[0])},visitMediaOut:function(a){this.context.frames.shift()}},b.exports=h},{"../contexts":13,"../utils":89,"./import-sequencer":91,"./visitor":97}],93:[function(a,b,c){var d={Visitor:a("./visitor"),ImportVisitor:a("./import-visitor"),MarkVisibleSelectorsVisitor:a("./set-tree-visibility-visitor"),ExtendVisitor:a("./extend-visitor"),JoinSelectorVisitor:a("./join-selector-visitor"),ToCSSVisitor:a("./to-css-visitor")};b.exports=d},{"./extend-visitor":90,"./import-visitor":92,"./join-selector-visitor":94,"./set-tree-visibility-visitor":95,"./to-css-visitor":96,"./visitor":97}],94:[function(a,b,c){var d=a("./visitor"),e=function(){this.contexts=[[]],this._visitor=new d(this)};e.prototype={run:function(a){return this._visitor.visit(a)},visitDeclaration:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a,b){var c,d=this.contexts[this.contexts.length-1],e=[];this.contexts.push(e),a.root||(c=a.selectors,c&&(c=c.filter(function(a){return a.getIsOutput()}),a.selectors=c.length?c:c=null,c&&a.joinSelectors(e,d,c)),c||(a.rules=null),a.paths=e)},visitRulesetOut:function(a){this.contexts.length=this.contexts.length-1},visitMedia:function(a,b){var c=this.contexts[this.contexts.length-1];a.rules[0].root=0===c.length||c[0].multiMedia},visitAtRule:function(a,b){var c=this.contexts[this.contexts.length-1];a.rules&&a.rules.length&&(a.rules[0].root=a.isRooted||0===c.length||null)}},b.exports=e},{"./visitor":97}],95:[function(a,b,c){var d=function(a){this.visible=a};d.prototype.run=function(a){this.visit(a)},d.prototype.visitArray=function(a){if(!a)return a;var b,c=a.length;for(b=0;b<c;b++)this.visit(a[b]);return a},d.prototype.visit=function(a){return a?a.constructor===Array?this.visitArray(a):!a.blocksVisibility||a.blocksVisibility()?a:(this.visible?a.ensureVisibility():a.ensureInvisibility(),a.accept(this),a):a},b.exports=d},{}],96:[function(a,b,c){var d=a("../tree"),e=a("./visitor"),f=function(a){this._visitor=new e(this),this._context=a};f.prototype={containsSilentNonBlockedChild:function(a){var b;if(!a)return!1;for(var c=0;c<a.length;c++)if(b=a[c],b.isSilent&&b.isSilent(this._context)&&!b.blocksVisibility())return!0;return!1},keepOnlyVisibleChilds:function(a){a&&a.rules&&(a.rules=a.rules.filter(function(a){return a.isVisible()}))},isEmpty:function(a){return!a||!a.rules||0===a.rules.length},hasVisibleSelector:function(a){return!(!a||!a.paths)&&a.paths.length>0},resolveVisibility:function(a,b){if(!a.blocksVisibility()){if(this.isEmpty(a)&&!this.containsSilentNonBlockedChild(b))return;return a}var c=a.rules[0];if(this.keepOnlyVisibleChilds(c),!this.isEmpty(c))return a.ensureVisibility(),a.removeVisibilityBlock(),a},isVisibleRuleset:function(a){return!!a.firstRoot||!this.isEmpty(a)&&!(!a.root&&!this.hasVisibleSelector(a))}};var g=function(a){this._visitor=new e(this),this._context=a,this.utils=new f(a)};g.prototype={isReplacing:!0,run:function(a){return this._visitor.visit(a)},visitDeclaration:function(a,b){if(!a.blocksVisibility()&&!a.variable)return a},visitMixinDefinition:function(a,b){a.frames=[]},visitExtend:function(a,b){},visitComment:function(a,b){if(!a.blocksVisibility()&&!a.isSilent(this._context))return a},visitMedia:function(a,b){var c=a.rules[0].rules;return a.accept(this._visitor),b.visitDeeper=!1,this.utils.resolveVisibility(a,c)},visitImport:function(a,b){if(!a.blocksVisibility())return a},visitAtRule:function(a,b){return a.rules&&a.rules.length?this.visitAtRuleWithBody(a,b):this.visitAtRuleWithoutBody(a,b)},visitAnonymous:function(a,b){if(!a.blocksVisibility())return a.accept(this._visitor),a},visitAtRuleWithBody:function(a,b){function c(a){var b=a.rules;return 1===b.length&&(!b[0].paths||0===b[0].paths.length)}function d(a){var b=a.rules;return c(a)?b[0].rules:b}var e=d(a);return a.accept(this._visitor),b.visitDeeper=!1,this.utils.isEmpty(a)||this._mergeRules(a.rules[0].rules),this.utils.resolveVisibility(a,e)},visitAtRuleWithoutBody:function(a,b){if(!a.blocksVisibility()){if("@charset"===a.name){if(this.charset){if(a.debugInfo){var c=new d.Comment("/* "+a.toCSS(this._context).replace(/\n/g,"")+" */\n");return c.debugInfo=a.debugInfo,this._visitor.visit(c)}return}this.charset=!0}return a}},checkValidNodes:function(a,b){if(a)for(var c=0;c<a.length;c++){var e=a[c];if(b&&e instanceof d.Declaration&&!e.variable)throw{message:"Properties must be inside selector blocks. They cannot be in the root",index:e.getIndex(),filename:e.fileInfo()&&e.fileInfo().filename};if(e instanceof d.Call)throw{message:"Function '"+e.name+"' is undefined",index:e.getIndex(),filename:e.fileInfo()&&e.fileInfo().filename};if(e.type&&!e.allowRoot)throw{message:e.type+" node returned by a function is not valid here",index:e.getIndex(),filename:e.fileInfo()&&e.fileInfo().filename}}},visitRuleset:function(a,b){var c,d=[];if(this.checkValidNodes(a.rules,a.firstRoot),a.root)a.accept(this._visitor),b.visitDeeper=!1;else{this._compileRulesetPaths(a);for(var e=a.rules,f=e?e.length:0,g=0;g<f;)c=e[g],c&&c.rules?(d.push(this._visitor.visit(c)),e.splice(g,1),f--):g++;f>0?a.accept(this._visitor):a.rules=null,b.visitDeeper=!1}return a.rules&&(this._mergeRules(a.rules),this._removeDuplicateRules(a.rules)),this.utils.isVisibleRuleset(a)&&(a.ensureVisibility(),d.splice(0,0,a)),1===d.length?d[0]:d},_compileRulesetPaths:function(a){a.paths&&(a.paths=a.paths.filter(function(a){var b;for(" "===a[0].elements[0].combinator.value&&(a[0].elements[0].combinator=new d.Combinator("")),b=0;b<a.length;b++)if(a[b].isVisible()&&a[b].getIsOutput())return!0;return!1}))},_removeDuplicateRules:function(a){if(a){var b,c,e,f={};for(e=a.length-1;e>=0;e--)if(c=a[e],c instanceof d.Declaration)if(f[c.name]){b=f[c.name],b instanceof d.Declaration&&(b=f[c.name]=[f[c.name].toCSS(this._context)]);var g=c.toCSS(this._context);b.indexOf(g)!==-1?a.splice(e,1):b.push(g)}else f[c.name]=c}},_mergeRules:function(a){if(a){for(var b={},c=[],e=0;e<a.length;e++){var f=a[e];if(f.merge){var g=f.name;b[g]?a.splice(e--,1):c.push(b[g]=[]),b[g].push(f)}}c.forEach(function(a){if(a.length>0){var b=a[0],c=[],e=[new d.Expression(c)];a.forEach(function(a){"+"===a.merge&&c.length>0&&e.push(new d.Expression(c=[])),c.push(a.value),b.important=b.important||a.important}),b.value=new d.Value(e)}})}}},b.exports=g},{"../tree":67,"./visitor":97}],97:[function(a,b,c){function d(a){return a}function e(a,b){var c,d;for(c in a)switch(d=a[c],typeof d){case"function":d.prototype&&d.prototype.type&&(d.prototype.typeIndex=b++);break;case"object":b=e(d,b)}return b}var f=a("../tree"),g={visitDeeper:!0},h=!1,i=function(a){this._implementation=a,this._visitInCache={},this._visitOutCache={},h||(e(f,1),h=!0)};i.prototype={visit:function(a){if(!a)return a;var b=a.typeIndex;if(!b)return a.value&&a.value.typeIndex&&this.visit(a.value),a;var c,e=this._implementation,f=this._visitInCache[b],h=this._visitOutCache[b],i=g;if(i.visitDeeper=!0,f||(c="visit"+a.type,f=e[c]||d,h=e[c+"Out"]||d,this._visitInCache[b]=f,this._visitOutCache[b]=h),f!==d){var j=f.call(e,a,i);a&&e.isReplacing&&(a=j)}return i.visitDeeper&&a&&a.accept&&a.accept(this),h!=d&&h.call(e,a),a},visitArray:function(a,b){if(!a)return a;var c,d=a.length;if(b||!this._implementation.isReplacing){for(c=0;c<d;c++)this.visit(a[c]);return a}var e=[];for(c=0;c<d;c++){var f=this.visit(a[c]);void 0!==f&&(f.splice?f.length&&this.flatten(f,e):e.push(f))}return e;
+},flatten:function(a,b){b||(b=[]);var c,d,e,f,g,h;for(d=0,c=a.length;d<c;d++)if(e=a[d],void 0!==e)if(e.splice)for(g=0,f=e.length;g<f;g++)h=e[g],void 0!==h&&(h.splice?h.length&&this.flatten(h,b):b.push(h));else b.push(e);return b}},b.exports=i},{"../tree":67}],98:[function(a,b,c){"use strict";function d(){if(i.length)throw i.shift()}function e(a){var b;b=h.length?h.pop():new f,b.task=a,g(b)}function f(){this.task=null}var g=a("./raw"),h=[],i=[],j=g.makeRequestCallFromTimer(d);b.exports=e,f.prototype.call=function(){try{this.task.call()}catch(a){e.onerror?e.onerror(a):(i.push(a),j())}finally{this.task=null,h[h.length]=this}}},{"./raw":99}],99:[function(a,b,c){(function(a){"use strict";function c(a){h.length||(g(),i=!0),h[h.length]=a}function d(){for(;j<h.length;){var a=j;if(j+=1,h[a].call(),j>k){for(var b=0,c=h.length-j;b<c;b++)h[b]=h[b+j];h.length-=j,j=0}}h.length=0,j=0,i=!1}function e(a){var b=1,c=new m(a),d=document.createTextNode("");return c.observe(d,{characterData:!0}),function(){b=-b,d.data=b}}function f(a){return function(){function b(){clearTimeout(c),clearInterval(d),a()}var c=setTimeout(b,0),d=setInterval(b,50)}}b.exports=c;var g,h=[],i=!1,j=0,k=1024,l="undefined"!=typeof a?a:self,m=l.MutationObserver||l.WebKitMutationObserver;g="function"==typeof m?e(d):f(d),c.requestFlush=g,c.makeRequestCallFromTimer=f}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],100:[function(a,b,c){var d=function(){"use strict";function a(a,b){return null!=b&&a instanceof b}function b(c,d,e,f,i){function l(c,e){if(null===c)return null;if(0===e)return c;var p,q;if("object"!=typeof c)return c;if(a(c,h))p=new h;else if(a(c,j))p=new j;else if(a(c,k))p=new k(function(a,b){c.then(function(b){a(l(b,e-1))},function(a){b(l(a,e-1))})});else if(b.__isArray(c))p=[];else if(b.__isRegExp(c))p=new RegExp(c.source,g(c)),c.lastIndex&&(p.lastIndex=c.lastIndex);else if(b.__isDate(c))p=new Date(c.getTime());else{if(o&&Buffer.isBuffer(c))return p=Buffer.allocUnsafe?Buffer.allocUnsafe(c.length):new Buffer(c.length),c.copy(p),p;a(c,Error)?p=Object.create(c):"undefined"==typeof f?(q=Object.getPrototypeOf(c),p=Object.create(q)):(p=Object.create(f),q=f)}if(d){var r=m.indexOf(c);if(r!=-1)return n[r];m.push(c),n.push(p)}a(c,h)&&c.forEach(function(a,b){var c=l(b,e-1),d=l(a,e-1);p.set(c,d)}),a(c,j)&&c.forEach(function(a){var b=l(a,e-1);p.add(b)});for(var s in c){var t;q&&(t=Object.getOwnPropertyDescriptor(q,s)),t&&null==t.set||(p[s]=l(c[s],e-1))}if(Object.getOwnPropertySymbols)for(var u=Object.getOwnPropertySymbols(c),s=0;s<u.length;s++){var v=u[s],w=Object.getOwnPropertyDescriptor(c,v);(!w||w.enumerable||i)&&(p[v]=l(c[v],e-1),w.enumerable||Object.defineProperty(p,v,{enumerable:!1}))}if(i)for(var x=Object.getOwnPropertyNames(c),s=0;s<x.length;s++){var y=x[s],w=Object.getOwnPropertyDescriptor(c,y);w&&w.enumerable||(p[y]=l(c[y],e-1),Object.defineProperty(p,y,{enumerable:!1}))}return p}"object"==typeof d&&(e=d.depth,f=d.prototype,i=d.includeNonEnumerable,d=d.circular);var m=[],n=[],o="undefined"!=typeof Buffer;return"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=1/0),l(c,e)}function c(a){return Object.prototype.toString.call(a)}function d(a){return"object"==typeof a&&"[object Date]"===c(a)}function e(a){return"object"==typeof a&&"[object Array]"===c(a)}function f(a){return"object"==typeof a&&"[object RegExp]"===c(a)}function g(a){var b="";return a.global&&(b+="g"),a.ignoreCase&&(b+="i"),a.multiline&&(b+="m"),b}var h;try{h=Map}catch(i){h=function(){}}var j;try{j=Set}catch(i){j=function(){}}var k;try{k=Promise}catch(i){k=function(){}}return b.clonePrototype=function(a){if(null===a)return null;var b=function(){};return b.prototype=a,new b},b.__objToStr=c,b.__isDate=d,b.__isArray=e,b.__isRegExp=f,b.__getRegExpFlags=g,b}();"object"==typeof b&&b.exports&&(b.exports=d)},{}],101:[function(a,b,c){"use strict";function d(){}function e(a){try{return a.then}catch(b){return r=b,s}}function f(a,b){try{return a(b)}catch(c){return r=c,s}}function g(a,b,c){try{a(b,c)}catch(d){return r=d,s}}function h(a){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("Promise constructor's argument is not a function");this._40=0,this._65=0,this._55=null,this._72=null,a!==d&&p(a,this)}function i(a,b,c){return new a.constructor(function(e,f){var g=new h(d);g.then(e,f),j(a,new o(b,c,g))})}function j(a,b){for(;3===a._65;)a=a._55;return h._37&&h._37(a),0===a._65?0===a._40?(a._40=1,void(a._72=b)):1===a._40?(a._40=2,void(a._72=[a._72,b])):void a._72.push(b):void k(a,b)}function k(a,b){q(function(){var c=1===a._65?b.onFulfilled:b.onRejected;if(null===c)return void(1===a._65?l(b.promise,a._55):m(b.promise,a._55));var d=f(c,a._55);d===s?m(b.promise,r):l(b.promise,d)})}function l(a,b){if(b===a)return m(a,new TypeError("A promise cannot be resolved with itself."));if(b&&("object"==typeof b||"function"==typeof b)){var c=e(b);if(c===s)return m(a,r);if(c===a.then&&b instanceof h)return a._65=3,a._55=b,void n(a);if("function"==typeof c)return void p(c.bind(b),a)}a._65=1,a._55=b,n(a)}function m(a,b){a._65=2,a._55=b,h._87&&h._87(a,b),n(a)}function n(a){if(1===a._40&&(j(a,a._72),a._72=null),2===a._40){for(var b=0;b<a._72.length;b++)j(a,a._72[b]);a._72=null}}function o(a,b,c){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.promise=c}function p(a,b){var c=!1,d=g(a,function(a){c||(c=!0,l(b,a))},function(a){c||(c=!0,m(b,a))});c||d!==s||(c=!0,m(b,r))}var q=a("asap/raw"),r=null,s={};b.exports=h,h._37=null,h._87=null,h._61=d,h.prototype.then=function(a,b){if(this.constructor!==h)return i(this,a,b);var c=new h(d);return j(this,new o(a,b,c)),c}},{"asap/raw":99}],102:[function(a,b,c){"use strict";function d(a){var b=new e(e._61);return b._65=1,b._55=a,b}var e=a("./core.js");b.exports=e;var f=d(!0),g=d(!1),h=d(null),i=d(void 0),j=d(0),k=d("");e.resolve=function(a){if(a instanceof e)return a;if(null===a)return h;if(void 0===a)return i;if(a===!0)return f;if(a===!1)return g;if(0===a)return j;if(""===a)return k;if("object"==typeof a||"function"==typeof a)try{var b=a.then;if("function"==typeof b)return new e(b.bind(a))}catch(c){return new e(function(a,b){b(c)})}return d(a)},e.all=function(a){var b=Array.prototype.slice.call(a);return new e(function(a,c){function d(g,h){if(h&&("object"==typeof h||"function"==typeof h)){if(h instanceof e&&h.then===e.prototype.then){for(;3===h._65;)h=h._55;return 1===h._65?d(g,h._55):(2===h._65&&c(h._55),void h.then(function(a){d(g,a)},c))}var i=h.then;if("function"==typeof i){var j=new e(i.bind(h));return void j.then(function(a){d(g,a)},c)}}b[g]=h,0===--f&&a(b)}if(0===b.length)return a([]);for(var f=b.length,g=0;g<b.length;g++)d(g,b[g])})},e.reject=function(a){return new e(function(b,c){c(a)})},e.race=function(a){return new e(function(b,c){a.forEach(function(a){e.resolve(a).then(b,c)})})},e.prototype["catch"]=function(a){return this.then(null,a)}},{"./core.js":101}],103:[function(a,b,c){"function"!=typeof Promise.prototype.done&&(Promise.prototype.done=function(a,b){var c=arguments.length?this.then.apply(this,arguments):this;c.then(null,function(a){setTimeout(function(){throw a},0)})})},{}],104:[function(a,b,c){a("asap");"undefined"==typeof Promise&&(Promise=a("./lib/core.js"),a("./lib/es6-extensions.js")),a("./polyfill-done.js")},{"./lib/core.js":101,"./lib/es6-extensions.js":102,"./polyfill-done.js":103,asap:98}]},{},[2])(2)});
\ No newline at end of file
diff --git a/lib/logo-cesium.svg b/lib/logo-cesium.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8d8f542b8582af4a36a0405f02adbb81cb47626e
--- /dev/null
+++ b/lib/logo-cesium.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="512px" height="512px" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com">
+  <path d="M 390.992 122.276 C 418.209 157.183 434.924 200.278 441.202 248.24 C 441.187 276.711 435.71 305.292 425.308 333.282 C 371.101 416.727 274.951 449.213 167.669 434.279 C 136.406 416.036 109.009 390.076 86.272 358.016 C 67.778 323.794 57.942 284.4 56.489 242.062 C 62.206 199.766 79.617 161.912 106.301 129.617 C 162.524 85.439 239.03 70.181 321.968 82.52 C 345.508 92.535 368.657 105.883 390.992 122.276 Z" style="fill: rgb(255, 255, 255);" bx:origin="0 0"/>
+  <g transform="matrix(0.517848, 0, 0, 0.517848, -53.306625, -599.931213)" style="opacity: 1;">
+    <g id="g-14" style="display: inline; opacity: 0.5;" transform="matrix(1, 0, 0, 1, 144.570724, 1007.099426)">
+      <path style="display:inline;fill:#ffd086;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 585.16992,524.91211 C 447.41745,738.84015 285.93093,797.68142 93.347656,801.03711 158.66452,921.84083 287.20038,1003.1698 434.03906,1001.2559 607.56851,998.99446 752.51317,881.18488 796.65234,721.9668 c -2.6864,-6.57764 -6.20106,-13.62037 -10.8164,-21.13477 C 768.68987,677.03878 709.10478,568.47721 585.16992,524.91211 Z" id="path-102"/>
+      <path style="display:inline;fill:#270b0b;fill-opacity:0.99393939;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 586.254 524.115 C 564.682 650.453 477.974 754.472 498.584 835.602 C 524.648 938.199 419.458 961.515 333.973 989.342 C 365.923 997.545 399.475 1001.706 434.039 1001.256 C 634.052 998.649 796.093 842.536 809.561 646.439 C 793.197 641.777 777.425 634.689 766.723 622.746 C 734.035 586.272 650.117 546.564 586.254 524.115 Z" id="path-103" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(203, 137, 3); fill-opacity: 0.993939; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;" d="M 586.254 524.115 C 564.682 650.453 477.974 754.472 498.584 835.602 C 524.648 938.199 419.458 961.515 333.973 989.342 C 365.923 997.545 399.475 1001.706 434.039 1001.256 C 634.052 998.649 796.093 842.536 809.561 646.439 C 793.197 641.777 777.425 634.689 766.723 622.746 C 734.035 586.272 650.117 546.564 586.254 524.115 Z" id="path-104" bx:origin="0.5 0.5"/>
+    </g>
+    <g id="g-15" style="display: inline; opacity: 0.5;" transform="matrix(1, 0, 0, 1, 144.570724, 1007.099426)">
+      <rect x="504.265" y="500.287" width="23.492" height="25.527" style="display:inline;opacity:1;fill:#fabb37;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-105"/>
+      <rect x="369.174" y="415.429" width="22.384" height="24.419" style="display:inline;opacity:1;fill:#ffd086;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-106"/>
+      <rect x="418.995" y="433.019" width="30.524" height="30.524" style="display:inline;opacity:1;fill:#fabb37;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-107"/>
+      <rect x="417.34" y="652.556" width="46.803" height="46.803" style="display:inline;opacity:1;fill:#fbc14c;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-108"/>
+      <rect x="422.586" y="475.891" width="30.524" height="30.524" style="display:inline;opacity:1;fill:#fabb37;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-109"/>
+      <rect x="472.618" y="605.457" width="24.419" height="26.454" style="display:inline;opacity:1;fill:#cc8902;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-110"/>
+      <rect x="520.772" y="557.902" width="18.314" height="18.314" style="display:inline;opacity:1;fill:#fabb37;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-111"/>
+      <rect x="454.784" y="563.028" width="30.524" height="30.524" style="display:inline;opacity:1;fill:#fabb37;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-112"/>
+      <rect x="335.342" y="720.987" width="38.663" height="40.698" style="display:inline;opacity:1;fill:#fbc14c;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-113"/>
+      <rect x="371.97" y="661.975" width="26.454" height="30.524" style="display:inline;opacity:1;fill:#fbc14c;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-114"/>
+      <rect x="-427.93" y="610.085" width="24.507" height="24.419" style="display:inline;opacity:1;fill:#cc8902;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-115" transform="scale(-1,1)"/>
+      <rect x="480.411" y="523.469" width="20.349" height="22.384" style="display:inline;opacity:1;fill:#ffd086;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-116"/>
+      <rect x="-499.5" y="466.314" width="24.507" height="24.419" style="display:inline;opacity:1;fill:#cc8902;fill-opacity:1;stroke:none;stroke-width:34.90000153;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" id="path-117" transform="scale(-1,1)"/>
+    </g>
+    <g id="g-16" style="display: inline; opacity: 1;" transform="matrix(1.0000000700020495, 0, 0, 1.0000000700020495, 144.57072391079612, 1007.0994398715994)">
+      <path style="display: inline; fill: none; fill-opacity: 1; fill-rule: evenodd; stroke: rgb(255, 122, 0); stroke-width: 2.34888; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;" d="M 585.16992,524.91211 C 447.41745,738.84015 285.93093,797.68142 93.347656,801.03711 158.66452,921.84083 287.20038,1003.1698 434.03906,1001.2559 607.56851,998.99446 752.51317,881.18488 796.65234,721.9668 c -2.6864,-6.57764 -6.20106,-13.62037 -10.8164,-21.13477 C 768.68987,677.03878 709.10478,568.47721 585.16992,524.91211 Z" id="path-118"/>
+      <path style="display: inline; fill: none; fill-opacity: 0.993939; fill-rule: evenodd; stroke: rgb(255, 122, 0); stroke-width: 2.34888; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;" d="M 586.254 524.115 C 564.682 650.453 477.974 754.472 498.584 835.602 C 524.648 938.199 419.458 961.515 333.973 989.342 C 365.923 997.545 399.475 1001.706 434.039 1001.256 C 634.052 998.649 796.093 842.536 809.561 646.439 C 793.197 641.777 777.425 634.689 766.723 622.746 C 734.035 586.272 650.117 546.564 586.254 524.115 Z" id="path-119" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: none; fill-opacity: 0.993939; fill-rule: evenodd; stroke: rgb(255, 122, 0); stroke-width: 2.34888; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;" d="M 586.254 524.115 C 564.682 650.453 477.974 754.472 498.584 835.602 C 524.648 938.199 419.458 961.515 333.973 989.342 C 365.923 997.545 399.475 1001.706 434.039 1001.256 C 634.052 998.649 796.093 842.536 809.561 646.439 C 793.197 641.777 777.425 634.689 766.723 622.746 C 734.035 586.272 650.117 546.564 586.254 524.115 Z" id="path-120" bx:origin="0.5 0.5"/>
+    </g>
+  </g>
+  <g transform="matrix(0.608261, 0, 0, 0.608261, -20.084976, 3.255736)">
+    <g>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.78;" id="path-10" d="M 419.133 85.738 C 417.295 85.739 415.455 85.754 413.611 85.778 C 354.852 86.561 299.023 99.174 248.358 121.32 C 584.121 13.206 796.175 211.26 831.7 508.773 L 846.383 507.124 C 815.586 235.801 652.477 85.588 419.133 85.738 Z" transform="matrix(0.96373, 0.266878, -0.266878, 0.96373, 89.505231, -136.615061)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 1;" id="path-3" d="M 146.037 194.065 C 144.201 194.066 142.361 194.081 140.517 194.104 C 81.76 194.888 25.931 207.503 -24.736 229.648 C 311.029 121.531 523.083 319.583 558.604 617.093 L 573.284 615.443 C 542.49 344.122 379.385 193.913 146.037 194.065 Z" transform="matrix(-0.180988, -0.983485, 0.983485, -0.180988, -39.298581, 705.897544)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.4;" id="path-11" d="M 487.744 193.084 C 485.906 193.085 484.067 193.1 482.223 193.123 C 423.464 193.907 367.635 206.52 316.975 228.668 C 652.726 120.552 864.775 318.605 900.299 616.109 L 914.979 614.46 C 884.184 343.144 721.081 192.935 487.744 193.084 Z" transform="matrix(0.619997, 0.784605, -0.784605, 0.619997, 523.067231, -343.331539)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.84;" id="path-12" d="M 295.969 432.757 C 294.131 432.758 292.293 432.773 290.449 432.797 C 231.688 433.58 175.86 446.194 125.198 468.341 C 460.957 360.226 673.005 558.28 708.526 855.786 L 723.207 854.139 C 692.412 582.819 529.31 432.609 295.969 432.757 Z" transform="matrix(-0.978849, 0.204584, -0.204584, -0.978849, 963.820796, 1116.367293)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.4;" id="path-13" d="M 158.036 148.83 C 156.2 148.833 154.36 148.846 152.516 148.872 C 93.759 149.653 37.93 162.267 -12.734 184.411 C 323.022 76.301 535.076 274.352 570.604 571.857 L 585.286 570.208 C 554.483 298.891 391.38 148.683 158.036 148.83 Z" transform="matrix(0.338614, -0.940926, 0.940926, 0.338614, -115.595158, 483.705984)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 1;" id="path-14" d="M 501.019 288.292 C 499.181 288.293 497.34 288.308 495.496 288.331 C 436.736 289.115 380.908 301.726 330.243 323.874 C 666.004 215.757 878.062 413.812 913.586 711.322 L 928.268 709.673 C 897.468 438.352 734.361 288.141 501.019 288.292 Z" transform="matrix(0.164656, 0.986351, -0.986351, 0.164656, 982.857266, -233.452063)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.4;" id="path-15" d="M 192.954 376.521 C 191.115 376.522 189.277 376.537 187.433 376.561 C 128.674 377.344 72.845 389.958 22.181 412.103 C 357.94 303.989 569.987 502.045 605.505 799.553 L 620.188 797.905 C 589.392 526.584 426.295 376.369 192.954 376.521 Z" transform="matrix(-0.931404, -0.363988, 0.363988, -0.931404, 419.499006, 1182.599809)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 1;" id="path-16" d="M 221.614 63.973 C 219.777 63.976 217.938 63.99 216.094 64.015 C 157.334 64.795 101.506 77.409 50.841 99.554 C 386.598 -8.559 598.651 189.497 634.173 487.001 L 648.854 485.354 C 618.058 214.037 454.954 63.824 221.614 63.973 Z" transform="matrix(0.750452, -0.660925, 0.660925, 0.750452, -70.803322, 290.920273)" bx:origin="0.5 0.5"/>
+      <path style="display: inline; fill: rgb(64, 178, 255); fill-opacity: 1; fill-rule: evenodd; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1; opacity: 0.4;" id="path-17" d="M 441.888 342.098 C 440.047 342.098 438.207 342.114 436.362 342.138 C 377.601 342.922 321.765 355.535 271.103 377.681 C 606.886 269.567 818.944 467.615 854.462 765.133 L 869.142 763.483 C 838.354 492.154 675.242 341.948 441.888 342.098 Z" transform="matrix(-0.356582, 0.934264, -0.934264, -0.356582, 1256.759493, 169.182552)" bx:origin="0.5 0.5"/>
+      <g transform="matrix(0.762493, 0, 0, 0.762493, 19.294647, -716.322815)">
+        <path d="M 566.466 1089.137 L 566.466 1148.222 C 565.867 1148.219 565.267 1148.217 564.667 1148.217 C 561.481 1148.217 558.31 1148.259 555.154 1148.341 L 555.154 1089.137 Z M 908.29 1477.146 L 956.987 1477.146 L 956.987 1488.458 L 908.569 1488.458 C 908.539 1484.693 908.447 1480.922 908.29 1477.146 Z M 566.466 1835.013 L 566.466 1876.467 L 555.154 1876.467 L 555.154 1834.886 C 558.318 1834.973 561.49 1835.017 564.667 1835.017 C 565.267 1835.017 565.867 1835.016 566.466 1835.013 Z M 220.775 1488.458 L 169.657 1488.458 L 169.657 1477.146 L 221.089 1477.146 C 220.921 1480.909 220.816 1484.68 220.775 1488.458 Z" style="fill: rgb(64, 40, 0); stroke: none;" bx:origin="0 0"/>
+        <path d="M 760.121 1143.311 L 717.336 1217.417 C 715.72 1216.518 714.096 1215.632 712.465 1214.761 L 755.318 1140.537 Z M 830.122 1324.203 L 900.424 1283.614 L 903.198 1288.417 L 833.04 1328.923 C 832.08 1327.339 831.107 1325.766 830.122 1324.203 Z M 840.599 1641.137 L 903.197 1677.278 L 900.424 1682.082 L 837.911 1645.99 C 838.821 1644.38 839.717 1642.762 840.599 1641.137 Z M 725.168 1761.843 L 760.122 1822.385 L 755.318 1825.158 L 720.379 1764.641 C 721.985 1763.722 723.582 1762.789 725.168 1761.843 Z M 403.538 1760.932 L 366.456 1825.159 L 361.653 1822.386 L 398.802 1758.042 C 400.372 1759.019 401.951 1759.982 403.538 1760.932 Z M 289.58 1642.689 L 221.35 1682.082 L 218.577 1677.279 L 286.944 1637.807 C 287.807 1639.437 288.685 1641.065 289.58 1642.689 Z M 294.354 1332.168 L 218.576 1288.417 L 221.35 1283.614 L 297.213 1327.414 C 296.246 1328.99 295.293 1330.575 294.354 1332.168 Z M 406.079 1220.259 L 361.653 1143.311 L 366.457 1140.537 L 410.889 1217.495 C 409.276 1218.403 407.673 1219.324 406.079 1220.259 Z" style="fill: rgb(64, 40, 0); stroke: none;" bx:origin="0 0"/>
+      </g>
+    </g>
+    <rect x="429.367" y="425.979" width="20.003" height="21.735" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-91" transform="matrix(1, 0, 0, 0.999999, -301.377075, -219.498434)"/>
+    <rect x="446.853" y="25.462" width="25.99" height="25.99" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-93"/>
+    <rect x="-135.956" y="605.141" width="39.851" height="39.851" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-94" transform="matrix(0.999999, 0, 0, 1, 846.176756, -394.956024)"/>
+    <rect x="225.779" y="689.836" width="25.99" height="25.99" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-95"/>
+    <rect x="594.013" y="737.142" width="20.792" height="22.525" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-96"/>
+    <rect x="387.235" y="479.397" width="25.99" height="25.99" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-98" transform="matrix(1.000001, 0, 0, 0.999999, 365.274966, 79.295241)"/>
+    <rect x="421.962" y="775.937" width="32.92" height="34.653" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-99"/>
+    <rect x="-66.939" y="-568.978" width="20.867" height="20.792" style="display: inline; opacity: 1; fill: rgb(80, 150, 200); fill-opacity: 1; stroke: none; stroke-width: 34.9; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; stroke-opacity: 0.996078;" id="path-101" transform="matrix(-1, 0, 0, 0.999997, 31.356928, 984.736306)"/>
+  </g>
+  <path d="M 154.526 230.66 C 148.801 230.66 144.279 232.568 140.962 236.383 C 137.648 240.195 135.992 245.417 135.992 252.046 C 135.992 258.863 137.591 264.13 140.785 267.849 C 143.981 271.567 148.536 273.426 154.453 273.426 C 158.086 273.426 162.232 272.773 166.892 271.468 L 166.892 276.778 C 163.279 278.133 158.825 278.808 153.528 278.808 C 145.853 278.808 139.929 276.482 135.761 271.827 C 131.59 267.167 129.502 260.55 129.502 251.972 C 129.502 246.604 130.507 241.899 132.519 237.862 C 134.526 233.823 137.424 230.71 141.21 228.524 C 145.002 226.339 149.463 225.247 154.593 225.247 C 160.06 225.247 164.835 226.243 168.924 228.238 L 166.356 233.439 C 162.411 231.586 158.469 230.66 154.526 230.66 Z M 193.468 278.808 C 187.692 278.808 183.136 277.051 179.799 273.535 C 176.462 270.021 174.794 265.137 174.794 258.889 C 174.794 252.592 176.342 247.588 179.44 243.883 C 182.542 240.176 186.707 238.323 191.933 238.323 C 196.829 238.323 200.701 239.934 203.552 243.154 C 206.403 246.374 207.828 250.621 207.828 255.895 L 207.828 259.636 L 180.925 259.636 C 181.043 264.224 182.2 267.704 184.398 270.081 C 186.596 272.458 189.69 273.646 193.679 273.646 C 197.885 273.646 202.044 272.763 206.155 271.006 L 206.155 276.279 C 204.063 277.183 202.084 277.832 200.219 278.225 C 198.357 278.615 196.108 278.808 193.468 278.808 M 191.861 243.275 C 188.726 243.275 186.227 244.296 184.362 246.341 C 182.497 248.383 181.397 251.212 181.065 254.826 L 201.489 254.826 C 201.489 251.096 200.657 248.238 198.991 246.256 C 197.327 244.268 194.952 243.275 191.861 243.275 Z M 242.758 267.44 C 242.758 271.078 241.402 273.882 238.695 275.852 C 235.986 277.824 232.184 278.808 227.289 278.808 C 222.11 278.808 218.072 277.99 215.173 276.352 L 215.173 270.866 C 217.05 271.815 219.063 272.563 221.213 273.11 C 223.362 273.653 225.434 273.924 227.43 273.924 C 230.519 273.924 232.895 273.431 234.558 272.447 C 236.221 271.462 237.052 269.959 237.052 267.939 C 237.052 266.419 236.392 265.118 235.076 264.035 C 233.757 262.956 231.185 261.68 227.362 260.209 C 223.725 258.853 221.141 257.673 219.607 256.662 C 218.074 255.652 216.935 254.506 216.189 253.219 C 215.437 251.938 215.064 250.407 215.064 248.621 C 215.064 245.437 216.36 242.927 218.951 241.085 C 221.537 239.245 225.089 238.323 229.607 238.323 C 233.812 238.323 237.923 239.179 241.937 240.892 L 239.832 245.701 C 235.915 244.084 232.362 243.275 229.175 243.275 C 226.373 243.275 224.258 243.715 222.831 244.594 C 221.407 245.475 220.697 246.688 220.697 248.232 C 220.697 249.277 220.963 250.168 221.499 250.902 C 222.035 251.639 222.895 252.342 224.085 253.006 C 225.267 253.672 227.548 254.636 230.926 255.895 C 235.558 257.583 238.685 259.278 240.313 260.986 C 241.942 262.699 242.758 264.849 242.758 267.44 Z M 257.991 278.097 L 252.074 278.097 L 252.074 239.036 L 257.991 239.036 L 257.991 278.097 M 251.574 228.451 C 251.574 227.097 251.907 226.106 252.572 225.477 C 253.237 224.844 254.067 224.528 255.065 224.528 C 256.019 224.528 256.841 224.851 257.529 225.495 C 258.218 226.135 258.563 227.121 258.563 228.451 C 258.563 229.781 258.218 230.773 257.529 231.426 C 256.841 232.079 256.019 232.405 255.065 232.405 C 254.067 232.405 253.237 232.079 252.572 231.426 C 251.907 230.773 251.574 229.781 251.574 228.451 Z M 275.933 239.036 L 275.933 264.375 C 275.933 267.558 276.658 269.935 278.109 271.504 C 279.558 273.073 281.828 273.858 284.918 273.858 C 289.004 273.858 291.991 272.741 293.881 270.507 C 295.769 268.273 296.712 264.625 296.712 259.564 L 296.712 239.036 L 302.63 239.036 L 302.63 278.097 L 297.745 278.097 L 296.893 272.861 L 296.57 272.861 C 295.359 274.782 293.679 276.254 291.529 277.277 C 289.38 278.298 286.926 278.808 284.169 278.808 C 279.417 278.808 275.858 277.682 273.493 275.428 C 271.13 273.169 269.947 269.556 269.947 264.588 L 269.947 239.036 L 275.933 239.036 Z M 364.573 278.097 L 364.573 252.685 C 364.573 249.573 363.909 247.241 362.578 245.682 C 361.248 244.126 359.18 243.347 356.374 243.347 C 352.692 243.347 349.971 244.406 348.211 246.522 C 346.455 248.636 345.577 251.891 345.577 256.286 L 345.577 278.097 L 339.66 278.097 L 339.66 252.685 C 339.66 249.573 338.993 247.241 337.664 245.682 C 336.335 244.126 334.255 243.347 331.429 243.347 C 327.722 243.347 325.008 244.458 323.284 246.681 C 321.56 248.903 320.7 252.546 320.7 257.606 L 320.7 278.097 L 314.781 278.097 L 314.781 239.036 L 319.593 239.036 L 320.554 244.382 L 320.84 244.382 C 321.958 242.479 323.535 240.997 325.566 239.93 C 327.598 238.86 329.872 238.323 332.391 238.323 C 338.497 238.323 342.49 240.533 344.367 244.954 L 344.647 244.954 C 345.815 242.909 347.501 241.294 349.707 240.106 C 351.918 238.918 354.438 238.323 357.269 238.323 C 361.684 238.323 364.991 239.46 367.189 241.731 C 369.387 243.997 370.485 247.625 370.485 252.618 L 370.485 278.097 L 364.573 278.097 Z" style="text-transform: none; fill: rgb(64, 40, 0); isolation: auto; opacity: 1;" bx:origin="0.5 0.5"/>
+</svg>
\ No newline at end of file
diff --git a/lib/logo.png b/lib/logo.png
deleted file mode 100644
index 57d8b5882ecf26cf5e00d204d05bad24eba97431..0000000000000000000000000000000000000000
Binary files a/lib/logo.png and /dev/null differ
diff --git a/lib/style-funding-alt-1.css b/lib/style-funding-alt-1.css
index 72da13465e822fc2842e31ecd5e587ee7aae5927..123fea4db4d1585662275d952ca5ad5dfeb31306 100644
--- a/lib/style-funding-alt-1.css
+++ b/lib/style-funding-alt-1.css
@@ -63,6 +63,17 @@ body#f-alt-1 #pubkey:after
 	content: "...";
 }
 
+
+body#f-alt-1 #successMsg
+{
+	opacity: 0;
+	/*height: 0;*/
+	line-height: 1.5em;
+	transition-property: opacity, height;
+	transition-duration: 1.5s, 0.5s;
+}
+
+
 body#f-alt-1 #copyButton, 
 body#f-alt-1 #supportButton
 {
@@ -95,5 +106,5 @@ body#f-alt-1 #pubkey-and-copy-button
 
 body#f-alt-1 article footer
 {
-	margin-top: calc(666vh / 6);	
+	margin-top: calc(666vh / 6 / 2);	
 }
\ No newline at end of file
diff --git a/lib/style.css b/lib/style.css
index 31e0112ff2fdb0225643078a3b4545c7ba95b517..8fca36fe3e21994c62fe2812d33deebaee921b7c 100644
--- a/lib/style.css
+++ b/lib/style.css
@@ -1,1751 +1,1352 @@
-
-@media (min-width: 576px) {
-	
+:root {
+  --bp1: 576px;
+  --bp2: 768px;
+  --bp3: 992px;
+  --bp4: 1200px;
+  --screenshot-ratio: 1.620915033;
+  --screenshot-laptop-keyboard-ratio: 0.901515152;
+}
+@font-face {
+  font-family: 'FontAwesome';
+  font-style: normal;
+  font-weight: 900;
+  font-display: auto;
+  src: url("webfonts/fa-solid-900.eot");
+  src: url("webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("webfonts/fa-solid-900.woff2") format("woff2"), url("webfonts/fa-solid-900.woff") format("woff"), url("webfonts/fa-solid-900.ttf") format("truetype"), url("webfonts/fa-solid-900.svg#fontawesome") format("svg");
 }
-
-@media (min-width: 768px) {
-	
-	
-	
+/* ======= COMMON ======= */
+body {
+  background: #111111;
+  padding: 0;
+  margin: 0;
+  font-family: "Open Sans", sans-serif;
+  color: #212529;
+  overflow-x: hidden;
+}
+body main {
+  background: #301873;
+}
+body a,
+body a:focus,
+body a:active,
+body a:visited {
+  color: #169c9a;
+  text-decoration: none;
+}
+body a:focus {
+  outline: 0;
+}
+body a:hover {
+  color: #00b3b0;
+  transition: color 0.25s ease-in-out;
+}
+body p.CTA-button {
+  text-align: center;
+  margin-left: auto;
+  margin-right: auto;
+}
+body p.CTA-button a,
+body p.CTA-button button {
+  background-color: #ffc107;
+  color: black;
+  text-shadow: 0px 0px 15px white;
+  transition: box-shadow 0.666s, color 0.666s;
+  padding: 1rem 2rem;
+  font-size: 0.8203125rem;
+  line-height: 1.5;
+  border: 0;
+  border-radius: 0;
+  cursor: pointer;
+  letter-spacing: 0.05em;
+  text-transform: uppercase;
+  display: inline-block;
+  vertical-align: middle;
+  text-decoration: none;
+}
+body p.CTA-button a:hover,
+body p.CTA-button button:hover {
+  /*color: #fcfcfc;*/
+  box-shadow: 0 0 15px #fcfcfc;
+  background-color: #ffc107;
+  text-decoration: none;
+}
+body h1,
+body h2,
+body h3,
+body h4,
+body h5,
+body h6 {
+  font-weight: 500;
+}
+body iframe {
+  border: 0;
+}
+body code,
+body pre {
+  background-color: #424242;
+  color: #efefef;
+  padding: 0.375em 0.75em;
+}
+body pre {
+  margin: 0.375em 0;
+}
+body pre.console:before {
+  content: "$ ";
+}
+body h1 {
+  text-align: center;
+  margin: 0;
+  padding: 1.5em 0 1.5em;
+  font-size: 3rem;
+  font-weight: 500;
+  color: #fcfcfc;
+}
+body table {
+  border-collapse: collapse;
+}
+body table td,
+body table th {
+  border: 1px solid #ccc;
+  padding: 0.5rem;
+}
+body table th {
+  background: #f7f7f7;
+}
+body [colspan] {
+  text-align: center;
+}
+body img {
+  display: block;
+  margin: auto;
+}
+body mark {
+  background: yellow;
+}
+body mark:nth-of-type(2n) {
+  background: pink;
+}
+/* ======= CONTENTS (like thank you page) ======= */
+.text-box,
+section.text-box {
+  background-color: #FDF5E6;
+  color: #424242;
+  font-size: 1.25rem;
+  line-height: 1.75rem;
+  max-width: 800px;
+  margin: auto;
+  padding: 0 0 0.001rem 0;
+}
+section.text-box {
+  padding: 2em;
+}
+.text-box section {
+  margin-top: 0rem;
+  margin-bottom: 3rem;
+}
+.text-box section h2 {
+  background: #201b18;
+  color: white;
+  font-weight: bold;
+  padding: 2rem;
+  margin-bottom: 1em;
+}
+.text-box section h3 {
+  font-weight: bold;
+  margin-top: 1em;
+  padding: 0.5rem 1rem;
 }
-
-@media (min-width: 992px) {
-	
-	
+.text-box section p,
+.text-box section h3,
+.text-box section h4,
+.text-box section h5,
+.text-box section h6,
+.text-box section ul,
+.text-box section ol,
+.text-box section dl,
+.text-box section table {
+  margin-left: 2rem;
+  margin-right: 2rem;
+  text-align: justify;
+  width: auto;
 }
-
-@media (min-width: 1200px) {
-	
+.text-box section td {
+  background: white;
+  color: black;
+}
+.text-box section th {
+  background: #212121;
+  color: white;
+  text-align: center;
+}
+.text-box section [colspan] {
+  text-align: center;
+}
+.text-box section .warning {
+  color: orange;
+}
+.text-box section h3.warning {
+  background-color: orange;
+  color: white;
+}
+.text-box section .bad {
+  color: red;
 }
-
-
-/* ======= COMMON ======= */
-
-body
-{
-	background: rgb(17, 17, 17);
-	padding:0;
-	margin:0;
-	font-family: "Open Sans", sans-serif;
-	color: #212529;
-	overflow-x: hidden;
-}
-
-body main
-{
-	background: #311873;
-}
-
-a, 
-a:focus,
-a:active, 
-a:visited
-{
-	color: hsl(179, 75%, 35%);
-	text-decoration: none;
-}
-
-a:hover
-{
-	color: hsl(179, 100%, 35%);
-	transition: color 0.25s ease-in-out;
-}
-
-h1, 
-h2, 
-h3, 
-h4, 
-h5, 
-h6
-{
-	font-weight: 500;	
-}
-
-iframe
-{
-	border: 0;
-}
-
-
-code, 
-pre {
-	
-	background-color: rgb(66, 66, 66);	
-	color: rgb(239, 239, 239);
-	padding: 0.375em 0.75em;
-}
-
-
-pre {
-	
-	margin: 0.375em 0;
-}
-
-pre.console:before {
-	
-	content: "$ ";
-}
-
-h1
-{
-	text-align: center;
-	margin: 0;
-	padding: 1.5em 0 1.5em;
-	font-size: 3rem;
-	font-weight: 500;
-	color: #fcfcfc;
-}
-
-
-
 /* ======= FOOTER ======= */
-
-
-body > footer
-{
-	z-index: 999;
-	position: relative;
-	background: rgb(17, 17, 17);
-	overflow: hidden;
-	color: #ccc;
-	font-size: 0.9rem;
-	padding-bottom: 2rem;
-	padding-top: 3rem;
-}
-
-
-body > footer ul, 
-body > footer p
-{
-	padding: 0;
-	margin: 0.5rem 0;
-	list-style-type: none;
-} 
-
-body > footer ul li
-{
-	padding: 0;
-	margin: 0;
-	line-height: 1.50em;
-}
-
-body > footer div
-{
-	display: flex;
-	flex-wrap: wrap;
-	margin: auto;
-}
-
-@media (max-width:575px)
-{
-	body > footer div
-	{
-		padding-left: 1rem;
-		padding-right: 1rem;
-		box-sizing: border-box;
-	}
-	
-	body > footer div > *
-	{
-		flex-basis: 50%;
-	}
+body > footer {
+  z-index: 999;
+  position: relative;
+  background: #111111;
+  overflow: hidden;
+  color: #ccc;
+  font-size: 0.9rem;
+  padding-bottom: 2rem;
+  padding-top: 3rem;
+}
+body > footer ul,
+body > footer p {
+  padding: 0;
+  margin: 0.5rem 0;
+  list-style-type: none;
+}
+body > footer ul li {
+  padding: 0;
+  margin: 0;
+  line-height: 1.50em;
+}
+body > footer div {
+  display: flex;
+  flex-wrap: wrap;
+  margin: auto;
 }
-
-@media (min-width:576px)
-{
-	body > footer div
-	{
-		padding-left: 1rem;
-		padding-right: 1rem;
-		box-sizing: border-box;
-	}
-	
-	body > footer div > *
-	{
-		flex-basis: 33.333%;
-		flex-shrink: 1;
-	}
+@media (max-width: 575px) {
+  body > footer div {
+    padding-left: 1rem;
+    padding-right: 1rem;
+    box-sizing: border-box;
+  }
+  body > footer div > * {
+    flex-basis: 50%;
+  }
 }
-
-@media (min-width: 1200px)
-{
-	body > footer div
-	{
-		max-width: calc(1140px - 5rem);
-	}
+@media (min-width: 576px) {
+  body > footer div {
+    padding-left: 1rem;
+    padding-right: 1rem;
+    box-sizing: border-box;
+  }
+  body > footer div > * {
+    flex-basis: 33.333%;
+    flex-shrink: 1;
+  }
+}
+@media (min-width: 1200px) {
+  body > footer div {
+    max-width: calc(1140px - 5rem);
+  }
+}
+body > footer h5 {
+  color: #e4c380;
+  font-size: 1.05rem;
+  margin-bottom: 0.5rem;
+}
+body > footer a,
+body > footer a:hover,
+body > footer a:focus,
+body > footer a:active,
+body > footer a:visited {
+  color: #00A09D;
+  text-decoration: none;
 }
-
-body > footer h5
-{
-	color: #e4c380;
-	font-size: 1.05rem;
-	margin-bottom: 0.5rem;
-}
-
-
-body > footer a, 
-body > footer a:hover, 
-body > footer a:focus, 
-body > footer a:active, 
-body > footer a:visited
-{
-	color: #00A09D;
-	text-decoration: none;	
-}
-
 /* ======= BARRE DE LANGUES ======= */
-
-
-
-
-@media (max-width: 575px)
-{
-	nav#langSelector ul li > * span:first-child
-	{
-		display: none;
-	}
+@media (max-width: 575px) {
+  nav#langSelector ul li > * span:first-child {
+    display: none;
+  }
 }
-
-@media (min-width: 576px)
-{
-	nav#langSelector
-	{
-		position: fixed;
-		right: 0;
-		bottom: 0;
-		z-index: 1010;
-		text-align: right;
-		background: rgba(0, 0, 0, 0.8);
-		border-top-left-radius: 1em;
-		height: auto;
-	}
-	
-	nav#langSelector h5
-	{
-		display: none;
-	}
-
-	nav#langSelector ul
-	{
-		margin: 0;
-		padding: 0.5em 0 0.25em 0;
-	}
-
-	nav#langSelector li
-	{
-		display: block;
-		margin: 0 0 0 0;
-		padding: 0;
-		text-align: center;
-	}
-	
-	nav#langSelector ul li > *
-	{
-		display: block;
-		padding: 0.125em 0.75em;
-	}
-
-	nav#langSelector ul li > * span:last-child
-	{
-		display: none;
-	}
-
-	nav#langSelector li a
-	{
-		font-weight: bold;
-		color: white;
-	}
-
-	nav#langSelector li strong
-	{
-		color: rgba(255, 255, 255, 0.7);
-	}
-
-	#langSelector li:hover, 
-	#langSelector li:hover a, 
-	#langSelector li:hover a span
-	{
-		color: #ffc107;
-	}
-
-	nav#langSelector li:after
-	{
-		color: white;
-	}
-
-	nav#langSelector li:last-of-type:after
-	{
-		color: white;
-	}
+nav#langSelector ul li:hover,
+nav#langSelector ul li:hover * {
+  cursor: pointer;
 }
-
-#langSelector li:hover, 
-#langSelector li:hover *
-{
-    cursor: pointer;
+nav#langSelector ul li:last-of-type:after {
+  content: "";
+  margin-left: 0;
+}
+nav#langSelector ul li a,
+nav#langSelector ul li a:hover,
+nav#langSelector ul li a:focus,
+nav#langSelector ul li a:active,
+nav#langSelector ul li a:visited {
+  text-decoration: none;
+}
+@media (min-width: 576px) {
+  nav#langSelector {
+    position: fixed;
+    right: 0;
+    bottom: 0;
+    z-index: 1010;
+    text-align: right;
+    background: rgba(0, 0, 0, 0.8);
+    border-top-left-radius: 1em;
+    height: auto;
+  }
+  nav#langSelector h5 {
+    display: none;
+  }
+  nav#langSelector ul {
+    margin: 0;
+    padding: 0.5em 0 0.25em 0;
+  }
+  nav#langSelector ul li {
+    display: block;
+    margin: 0 0 0 0;
+    padding: 0;
+    text-align: center;
+  }
+  nav#langSelector ul li > * {
+    display: block;
+    padding: 0.125em 0.75em;
+  }
+  nav#langSelector ul li > * span:last-child {
+    display: none;
+  }
+  nav#langSelector ul li a {
+    font-weight: bold;
+    color: white;
+  }
+  nav#langSelector ul li strong {
+    color: rgba(255, 255, 255, 0.7);
+  }
+  nav#langSelector ul li:hover,
+  nav#langSelector ul li:hover a,
+  nav#langSelector ul li:hover a span {
+    color: #ffc107;
+  }
+  nav#langSelector ul li:after {
+    color: white;
+  }
+  nav#langSelector ul li:last-of-type:after {
+    color: white;
+  }
 }
-
-nav#langSelector li:last-of-type:after
-{
-	content: "";
-	margin-left: 0;
-}
-
-nav#langSelector a, 
-nav#langSelector a:hover, 
-nav#langSelector a:focus, 
-nav#langSelector a:active, 
-nav#langSelector a:visited
-{
-	text-decoration: none;	
-}
-
-
 /* ======= HEADER ======= */
-
-
-body header
-{
-	background: #311873;
-}
-
-body header:first-child 
-{
-	overflow: hidden;
-	height: 120px;
-	padding: 0.5rem 1rem;
-	box-sizing: content-box;
-	display: flex;
-	align-items: center;
-}
-
-/* ==== HEADER : titre et logo ==== */ 
-
-body header:first-child > h1, 
-body header:first-child > h2
-{
-	order: 2;
-	flex-grow: 1;
-	text-align: left;
-	font-size: 2.25rem;
-}
-
-@media (max-width: 575px) {
-	
-	body header:first-child > h1, 
-	body header:first-child > h2
-	{
-        font-size: 2rem;
-	}
+body > header:first-child {
+  background: #311873;
+  overflow: hidden;
+  height: 120px;
+  padding: 0.5rem 1rem;
+  box-sizing: content-box;
+  display: flex;
+  align-items: center;
+  /* ==== HEADER : titre et logo ==== */
+  /* ==== HEADER : menu ==== */
+}
+body > header:first-child a,
+body > header:first-child a:hover {
+  color: white;
+  text-decoration: none;
+}
+body > header:first-child p,
+body > header:first-child p img {
+  height: 100%;
+}
+body > header:first-child p img {
+  margin-left: 0.5em;
+  margin-right: 0.5em;
 }
-
-body header:first-child > :first-child a, 
-body header:first-child > :first-child a:hover
-{
-	color: white;
-	text-decoration: none;
-	padding-left: 0.25em;
-}
-
-
-body header:first-child p, 
-body header:first-child p img
-{
-	height: 100%;
-}
-
-body header:first-child p img
-{
-	margin-left: 1em;
-}
-
 @media (max-width: 575px) {
-	
-	
-	body header:first-child p img
-	{
-		margin-left: 0;
-	}
+  body > header:first-child p img {
+    margin-left: 0;
+  }
 }
-
-body header:first-child > :nt-child(2)
-{
-	order: 1;
-}
-
-
-/* ==== HEADER : menu ==== */ 
-
-
-body header:first-child > nav
-{
-	order: 3;
-	flex-grow: 0;
-}
-
-
-body header:first-child > nav ul
-{
-	list-style: none;
-}
-
-@media (max-width: 991px)
-{
-	body header:first-child > nav ul
-	{
-		overflow: hidden;
-		position: absolute;
-		top: 120px;
-		right: 0;
-		width: 100vw;
-		background-color: hsl(256, 65.5%, 27.3%);
-		box-shadow: 0px 6px 5px hsl(256, 65.5%, 13%);
-		z-index: 10000;
-		padding: 0 1rem 0rem;
-		box-sizing: border-box;
-		transition: height 0.5s ease-out;
-		height: 0;
-		margin: 0;
-	}
-	
-	body header:first-child > nav ul li
-	{
-		margin: 0;
-		padding: 0;
-	}
-	
-	body header:first-child > nav ul li a span
-	{
-		height: 1rem;
-		padding: 0.5rem 0;
-		display: block;
-	}
-	
-	body header:first-child > nav button
-	{
-		order: 3;
-
-		display: block;
-		background-color: transparent;
-		color: rgba(255, 255, 255, 0.5);
-		width: 2rem;
-		height: 2rem;
-		cursor: pointer;
-		padding: 0;
-		margin: 0;
-		border: 0;
-	}
-
-	body header:first-child > nav button:after
-	{
-		content: "";
-		background-color: transparent;
-		background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
-		background-repeat: repeat;
-		background-position: center center;
-		background-size: cover;
-
-		display: inline-block;
-		width: 2rem;
-		height: 2rem;
-		vertical-align: middle;
-		padding: 0;
-		margin: 0;
-		border: 1px solid rgba(255, 255, 255, 0.1);
-		border-radius: 0.1rem;
-	}
-
-	body header:first-child > nav button span
-	{
-		display: none;
-	}
-	
-	
-	body header:first-child > nav button:focus + ul
-	{
-		
-	}
+body > header:first-child > :nt-child(2) {
+  order: 1;
+}
+body > header:first-child > h1,
+body > header:first-child > h2 {
+  order: 2;
+  flex-grow: 1;
+  text-align: left;
+  font-size: 2.25rem;
+}
+@media (max-width: 575px) {
+  body > header:first-child > h1,
+  body > header:first-child > h2 {
+    font-size: 2rem;
+  }
+}
+body > header:first-child nav {
+  order: 3;
+  flex-grow: 0;
+}
+body > header:first-child nav ul {
+  list-style: none;
+  text-align: right;
+}
+body > header:first-child nav ul li a,
+body > header:first-child nav ul li a:hover {
+  color: #e4c380;
+  text-decoration: none;
+}
+@media (max-width: 1139px) {
+  body > header:first-child nav ul li.support-us a {
+    color: #f21c44;
+  }
+}
+@media (min-width: 1140px) {
+  body > header:first-child nav ul li.support-us {
+    border: 0;
+  }
+  body > header:first-child nav ul li.support-us a {
+    margin: 0;
+    padding: 1em;
+    display: block;
+    border-radius: 1em;
+    color: #f2f2f2;
+    background: #f21c44;
+  }
+  body > header:first-child nav ul li.support-us.active a {
+    color: #f21c44;
+    background: white;
+  }
+}
+@media (max-width: 1139px) {
+  body > header:first-child nav ul {
+    overflow: hidden;
+    position: absolute;
+    top: 120px;
+    right: 0;
+    width: 100vw;
+    background-color: #301873;
+    box-shadow: 0px 6px 5px #170b37;
+    z-index: 10000;
+    padding: 0 1rem 0rem;
+    box-sizing: border-box;
+    transition: height 0.5s ease-out;
+    height: 0;
+    margin: 0;
+  }
+  body > header:first-child nav ul li {
+    margin: 0;
+    padding: 0;
+  }
+  body > header:first-child nav ul li a span {
+    height: 1rem;
+    padding: 0.5rem 0;
+    display: block;
+  }
+  body > header:first-child nav button {
+    order: 3;
+    display: block;
+    background-color: transparent;
+    color: rgba(255, 255, 255, 0.5);
+    width: 2rem;
+    height: 2rem;
+    cursor: pointer;
+    padding: 0;
+    margin: 0;
+    border: 0;
+  }
+  body > header:first-child nav button:after {
+    content: "";
+    background-color: transparent;
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+    background-repeat: repeat;
+    background-position: center center;
+    background-size: cover;
+    display: inline-block;
+    width: 2rem;
+    height: 2rem;
+    vertical-align: middle;
+    padding: 0;
+    margin: 0;
+    border-radius: 0.1rem;
+  }
+  body > header:first-child nav button span {
+    display: none;
+  }
+}
+@media (min-width: 1140px) {
+  body > header:first-child nav button {
+    display: none;
+  }
+  body > header:first-child nav ul li {
+    display: inline-block;
+    margin: 0 0.666rem;
+  }
+  body > header:first-child nav ul li a:hover {
+    border-bottom: 1px solid rgba(228, 195, 128, 0.33);
+  }
+  body > header:first-child nav ul li a:focus {
+    border-bottom: 1px solid rgba(228, 195, 128, 0.66);
+  }
+  body > header:first-child nav ul li.active a {
+    border-bottom: 1px solid #e4c380;
+  }
+  body > header:first-child nav ul li a {
+    padding: 0.5rem 0rem;
+  }
 }
-
-@media (min-width: 992px)
-{
-	
-	body header:first-child > nav button
-	{
-		display: none;
-	}
-
-	body header:first-child nav ul li
-	{
-		display: inline-block;
-		margin: 0 0.666rem;
-	}
-
-	body header:first-child nav ul li a:hover
-	{
-		border-bottom: 1px solid rgba(228, 195, 128, 0.33);
-	}
-
-	body header:first-child nav ul li a:focus
-	{
-		border-bottom: 1px solid rgba(228, 195, 128, 0.66);
-	}
-
-	body header:first-child nav ul li.active a
-	{
-		border-bottom: 1px solid rgb(228, 195, 128);
-	}
-
-	body header:first-child nav ul li a
-	{
-		padding: 0.5rem 0rem;
-	}
-
-	
-}
-
-body header:first-child nav ul
-{
-	text-align: right;
-}
-
-body header:first-child nav ul li a, 
-body header:first-child nav ul li a:hover
-{
-	color: rgb(228, 195, 128);
-	text-decoration: none;
-}
-
-
-/* ======= CONTENTS ======= */
-
-a:focus
-{
-	outline: 0;
-}
-
-.text-box, 
-section.text-box
-{
-	background-color: #FDF5E6;
-	color: rgb(66, 66, 66);	
-	font-size: 1.25rem;
-	max-width: 800px;
-	margin: auto;
-	padding: 0 0 0.001rem 0;
-}
-
-section.text-box
-{
-	padding: 2em;
-}
-
-.text-box section
-{
-	margin-top: 0rem;
-	margin-bottom: 3rem;
-}
-
-.text-box section h2
-{
-	background: rgb(32, 27, 24);
-	color: white;
-	font-weight: bold;
-	padding: 2rem;
-	margin-bottom: 1em;
-}
-
-.text-box section h3
-{
-	font-weight: bold;
-	margin-top: 1em;
-	padding: 0.5rem 1rem;
-}
-
-.text-box section p,
-.text-box section h3,
-.text-box section h4,
-.text-box section h5,
-.text-box section h6,
-.text-box section ul,
-.text-box section ol,
-.text-box section dl, 
-.text-box section table
-{
-	margin-left: 2rem;
-	margin-right: 2rem;
-	text-align: justify;
-	width: auto;
-}
-
-.text-box section td
-{
-	background: white;
-	color: black;
-}
-
-.text-box section th
-{
-	background: rgb(33, 33, 33);
-	color: white;
-	text-align: center;
-}
-
-.text-box section [colspan]
-{
-	text-align: center;	
-}
-
-.text-box section .warning
-{
-	color: orange;	
-}
-
-
-.text-box section h3.warning
-{
-	background-color: orange;
-	color: white;
-}
-
-.text-box section .bad
-{
-	color: red;	
-}
-
-
-p.CTA-button 
-{
-	text-align: center;
-	margin-left: auto;
-	margin-right: auto;
-}
-
-p.CTA-button a, 
-p.CTA-button button
-{
-	background-color: #ffc107;
-    color: black;
-    text-shadow: 0px 0px 15px white;
-    transition: box-shadow 0.666s, color 0.666s;
-	padding: 1rem 2rem;
-    font-size: 0.8203125rem;
-    line-height: 1.5;
-	border: 0;
-    border-radius: 0;
-	cursor: pointer;
-	letter-spacing: 0.05em;
-	text-transform: uppercase;
-	display: inline-block;
-	vertical-align: middle;
-	text-decoration: none;
-}
-
-p.CTA-button a:hover, 
-p.CTA-button button:hover
-{
-    /*color: #fcfcfc;*/
-    box-shadow: 0 0 15px #fcfcfc;
-    background-color: #ffc107;
-	text-decoration: none;
-}
-
-
 /* ======= HOME ======= */
-
 :root {
-	--home-text-color : #212529;
-	--home-bg-color: #e9ecef;
+  --home-text-color: #212529;
+  --home-bg-color: #e9ecef;
+}
+body#home {
+  font-size: 1rem;
+  /* ======= Homepage : showcase ======= */
+  /* ======= Homepage : below showcase ======= */
+}
+body#home #showcase {
+  color: white;
+}
+body#home #showcase *:not(.CTA-button) > a,
+body#home #showcase *:not(.CTA-button) > a:focus,
+body#home #showcase *:not(.CTA-button) > a:active,
+body#home #showcase *:not(.CTA-button) > a:visited {
+  color: #20dfdc;
+}
+body#home #showcase *:not(.CTA-button) > a:hover {
+  color: #00fffb;
+  transition: color 0.25s ease-in-out;
+}
+@media screen and (max-width: 879px), screen and (orientation: portrait) {
+  body#home #showcase div {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: center;
+    text-align: center;
+    flex-direction: row;
+    padding-bottom: 2rem;
+  }
+  body#home #showcase div * {
+    flex-basis: 100%;
+    flex-shrink: 0;
+  }
+  body#home #showcase div figure {
+    padding: 0 5%;
+    box-sizing: border-box;
+    margin: auto;
+  }
+  body#home #showcase div figure img {
+    max-width: 100%;
+  }
+}
+@media screen and (min-width: 880px) and (orientation: landscape) {
+  body#home #showcase {
+    overflow: visible;
+  }
+  body#home #showcase div {
+    text-align: center;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    flex-wrap: wrap;
+    position: relative;
+    justify-content: center;
+    width: 100%;
+    overflow: visible;
+  }
+  body#home #showcase div h2#USP {
+    margin-top: 0;
+    margin-bottom: 0;
+  }
+  body#home #showcase div > * {
+    margin-left: 50%;
+    margin-right: 0;
+    width: 50%;
+    background: transparent;
+  }
+  body#home #showcase div figure {
+    position: absolute;
+    overflow: visible;
+    height: 100%;
+    margin-left: 0;
+    margin-top: 0;
+    margin-bottom: 0;
+    padding: 0;
+  }
+  body#home #showcase div figure img {
+    position: absolute;
+    align-self: center;
+    /*max-height: calc(~"90vh - 120px");*/
+    height: 100%;
+  }
+  body#home #showcase div aside * {
+    display: inline;
+  }
+  body#home #showcase div aside + div {
+    clear: both;
+    height: 0;
+  }
+}
+@media screen and (min-width: 880px) and (orientation: landscape) {
+  body#home #showcase div figure {
+    order: 1;
+  }
+  body#home #showcase div h2 {
+    order: 2;
+  }
+  body#home #showcase div *:nth-child(n+3) {
+    order: 3;
+  }
+}
+@media screen and (min-width: 880px) and (orientation: landscape) {
+  body#home #showcase {
+    --screenshot-height: calc(50vw / var(--screenshot-ratio));
+    --screenshot-top-offset: calc((1 - var(--screenshot-laptop-keyboard-ratio)) * var(--screenshot-height));
+    height: calc(50vw / var(--screenshot-ratio) + var(--screenshot-top-offset));
+    background-color: #f6f7ef;
+  }
+  body#home #showcase div {
+    background-color: #301873;
+    height: calc(50vw / var(--screenshot-ratio));
+  }
+  body#home #showcase div figure {
+    width: var(--screenshot-width);
+    top: var(--screenshot-top-offset);
+  }
 }
-
-@media screen and (min-width: 1200px)
-{
-	body#home section:nth-child(n+2) > div
-	{
-		max-width: 1140px;
-		margin: auto;
-	}
+@media (max-width: 575px) {
+  body#home #showcase h2#USP {
+    font-size: 2rem;
+  }
 }
-
-body#home main > section:nth-child(n+2)
-{
-	color: var(--home-text-color);
-	background: var(--home-bg-color) linear-gradient(0deg, rgba(238, 239, 231, 1) 0%, rgba(246, 247, 239, 1) 100%);
-	padding-bottom: 1rem;
-	/*overflow: hidden;*/
-}
-
-body#home
-{
-	font-size: 1rem;
-}
-
-body#home section:nth-child(n+2) h2
-{
-	text-align: center;
-	padding: 3rem 0 2rem;
-	margin: 0;
-	font-size: 2rem;
-}
-
-/* ======= HOME : showcase ======= */
-
-body#home #showcase div
-{
-	display: flex;
-	flex-wrap: wrap;
-	justify-content: center;
-}
-
-body#home #showcase, 
-body#home #showcase h2#USP
-{
-	color: white;
-	text-align: center;
-}
-
-body#home #showcase h2
-{
-	text-shadow: 3px 3px 5px rgba(26,35,126,0.9);
-}
-
-body#home #showcase p
-{
-	text-shadow: 1px 1px 2px rgba(26,35,126,0.9);
-}
-
-body#home #showcase a {
-	text-shadow: none;
-}
-
-body#home #showcase :not(figure)
-{
-	z-index: 666;
-}
-
-body#home #showcase h2#USP + p
-{
-	margin-top: 0;
-	margin-bottom: 2rem;
-}
-
-body#home #showcase div img {
-	max-height: 529px; // Avoid to large resizing
-}
-
-@media screen and (max-width: 767px)
-{
-	body#home #showcase div
-	{
-		flex-direction: row;
-		padding-bottom: 2rem;
-	}
-	
-	body#home #showcase div *
-	{
-		flex-basis: 100%;
-		flex-shrink: 0;
-	}
-	
-    body#home #showcase h2#USP
-	{
-		order: 1;
-        margin-top: 2.5rem;
-        margin-bottom: 2rem;
-    }
-	
-	body#home #showcase figure
-	{
-		order: 2;
-		padding: 0 5%;
-		box-sizing: border-box;
-		margin: auto;
-	}
-	
-	body#home #showcase figure img
-	{
-		max-width: 100%;
-	}
-	
-	body#home #showcase div *:nth-child(n+3)
-	{
-		order: 3;
-	}
+@media (min-width: 576px) {
+  body#home #showcase h2#USP {
+    font-size: 2.5rem;
+  }
+}
+@media screen and (max-width: 767px) {
+  body#home #showcase h2#USP {
+    padding-top: 1.5rem;
+    padding-bottom: 0rem;
+  }
+}
+@media screen and (min-width: 768px) {
+  body#home #showcase h2#USP {
+    padding-top: 1rem;
+    padding-bottom: 0rem;
+  }
+}
+@media screen and (min-width: 880px) and (orientation: landscape) {
+  body#home #showcase h2#USP {
+    font-size: 2rem;
+  }
+}
+@media screen and (min-width: 992px) and (orientation: landscape) {
+  body#home #showcase h2#USP {
+    font-size: 2.5rem;
+  }
+}
+body#home #showcase h2#USP + p {
+  margin-top: 0rem;
+  margin-bottom: 1rem;
 }
-
 @media (max-width: 575px) {
-	
-    body#home section:nth-child(n+2) h2
-	{
-        font-size: 1.50rem;
-		padding: 2rem 0 1rem;
-	}
-	
-    body#home #showcase h2#USP
-	{
-        font-size: 1.75rem;
-	}
-	
-	body#home #showcase h2#USP + p
-	{
-		margin-top: 1rem;
-		margin-bottom: 0.5rem;
-	}
+  body#home #showcase h2#USP + p {
+    margin-top: 1rem;
+    margin-bottom: 0.5rem;
+  }
+}
+body#home #showcase #licence {
+  color: rgba(255, 255, 255, 0.75);
+  font-size: 0.90rem;
+}
+body#home main > section:nth-child(n+2) {
+  color: var(--home-text-color);
+  background-color: var(--home-bg-color);
+  background: linear-gradient(0deg, #eeefe7 0%, #f6f7ef 100%);
+  padding-bottom: 1rem;
+  /*overflow: hidden;*/
+  /* ====== Homepage : reviews ====== */
+  /* ====== Homepage : gallery ====== */
+  /* ======= Homepage : steps ======= */
+  /* ======= Homepage : features... ======= */
+}
+@media screen and (min-width: 1200px) {
+  body#home main > section:nth-child(n+2) > div {
+    max-width: 1140px;
+    margin: auto;
+  }
+}
+body#home main > section:nth-child(n+2) h2 {
+  text-align: center;
+  padding: 3rem 0 2rem;
+  margin: 0;
+  font-size: 2rem;
+}
+@media (max-width: 575px) {
+  body#home main > section:nth-child(n+2) h2 {
+    font-size: 1.50rem;
+    padding: 2rem 0 1rem;
+  }
+}
+body#home main > section:nth-child(n+2)#reviews blockquote div:before,
+body#home main > section:nth-child(n+2)#reviews blockquote:before {
+  position: absolute;
+  left: 50%;
+  font-size: 6rem;
+  width: 6rem;
+  font-family: cursive;
+  color: #222;
+}
+body#home main > section:nth-child(n+2)#reviews blockquote div:before {
+  content: '«';
+  float: left;
+  margin-left: calc(-50vh - 6rem);
+  margin-top: 1.20rem;
+  /* FTGCM */
+  transform: rotate(15deg);
+}
+body#home main > section:nth-child(n+2)#reviews blockquote:before {
+  content: '»';
+  margin-left: 50vh;
+  transform: rotate(-15deg);
+  text-align: right;
+}
+body#home main > section:nth-child(n+2)#reviews blockquote div {
+  line-height: 1.75em;
+  background: repeating-linear-gradient(#fffff2, #fffff2 1.65em, rgba(92, 91, 129, 0.05) 1.65em, rgba(92, 91, 129, 0.05) 1.75em);
+  box-shadow: 1px 1px 2px #404040;
+  padding: 0.40em 0.5rem;
+  font-family: cursive;
+  max-width: 100vh;
+  margin: auto;
+  box-sizing: border-box;
+  border: 1.75em solid #fffff2;
+  text-indent: 1.75em;
+}
+body#home main > section:nth-child(n+2)#reviews blockquote cite {
+  display: block;
+  text-align: right;
+  font-style: normal;
+}
+body#home main > section:nth-child(n+2)#reviews blockquote cite:before {
+  content: "— ";
+}
+body#home main > section:nth-child(n+2)#gallery {
+  padding-bottom: 0;
+}
+body#home main > section:nth-child(n+2)#gallery div {
+  display: flex;
+  flex-wrap: wrap;
+  max-width: 100%;
+  border: 0;
+  z-index: 161803;
+  box-shadow: -2px 2px 5px #000000;
+}
+body#home main > section:nth-child(n+2)#gallery h2 {
+  padding-bottom: 2rem;
+}
+body#home main > section:nth-child(n+2)#gallery figure {
+  margin: 0;
+  flex-shrink: 1;
+  overflow: hidden;
+  display: flex;
+  padding: 0 0;
+  background: black;
+}
+body#home main > section:nth-child(n+2)#gallery figure span {
+  display: flex;
+  height: auto;
+  border-radius: 0.5rem;
+  overflow: hidden;
+}
+body#home main > section:nth-child(n+2)#gallery figure img {
+  align-self: center;
+}
+body#home main > section:nth-child(n+2)#gallery figure#bar {
+  order: 3;
+}
+body#home main > section:nth-child(n+2)#gallery figure#djoliba {
+  order: 4;
+}
+body#home main > section:nth-child(n+2)#gallery figure#boat {
+  order: 1;
+}
+body#home main > section:nth-child(n+2)#gallery figure#vietnam {
+  order: 2;
+}
+@media (max-width: 575px) {
+  body#home main > section:nth-child(n+2)#gallery {
+    /* ====== Fine-tuning (c'est magique) ====== */
+  }
+  body#home main > section:nth-child(n+2)#gallery div {
+    padding: 0 39px;
+    background: url("film-y.png") repeat-y left -11px, url("film-y.png") repeat-y right -11px;
+    position: relative;
+    top: 3rem;
+  }
+  body#home main > section:nth-child(n+2)#gallery h2 {
+    padding-bottom: 0;
+  }
+  body#home main > section:nth-child(n+2)#gallery figure {
+    border-top: 0.75rem solid black;
+    border-bottom: 0.75rem solid black;
+    flex-basis: calc(100%);
+    height: calc(100vw - 2*39px);
+  }
+  body#home main > section:nth-child(n+2)#gallery figure img {
+    height: 100%;
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#bar img {
+    transform: translateX(calc(0% - 2/10 * 100%));
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#djoliba img {
+    transform: translateX(calc(0% - 3/7 * 100%));
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#vietnam img {
+    transform: translateX(calc(0% - 2/5 * 100%));
+  }
 }
-
-
 @media (min-width: 576px) {
-	
-    body#home #showcase h2#USP
-	{
-        font-size: 2.5rem;
-	}
+  body#home main > section:nth-child(n+2)#gallery {
+    /* ====== Fine-tuning (c'est magique) ====== */
+  }
+  body#home main > section:nth-child(n+2)#gallery div {
+    padding: 39px 0;
+    background: url("film.png") repeat-x -11px top, url("film.png") repeat-x -11px bottom;
+  }
+  body#home main > section:nth-child(n+2)#gallery figure {
+    border-right: 1.5rem solid black;
+    flex-basis: calc(25% - 1.5rem);
+    height: calc(25vw - 1.5rem);
+  }
+  body#home main > section:nth-child(n+2)#gallery figure img {
+    height: 100%;
+  }
+  body#home main > section:nth-child(n+2)#gallery div {
+    transform: rotate(0.5deg) scaleX(1.05) scaleY(1.05);
+    position: relative;
+    top: 0.5rem;
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#bar img {
+    transform: translateX(calc(0% - 1/10 * 100%));
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#djoliba img {
+    transform: translateX(calc(0% - 3/7 * 100%));
+  }
+  body#home main > section:nth-child(n+2)#gallery figure#vietnam img {
+    transform: translateX(calc(0% - 1/5 * 100%));
+  }
+}
+body#home main > section:nth-child(n+2)#steps div {
+  display: flex;
+  flex-wrap: wrap;
+}
+body#home main > section:nth-child(n+2)#steps div h2 {
+  flex-basis: 100%;
+  flex-shrink: 0;
+}
+body#home main > section:nth-child(n+2)#steps div figure {
+  box-sizing: border-box;
+  overflow: hidden;
+  display: block;
+  background-color: white;
+  border: 1px solid rgba(0, 0, 0, 0.125);
+  border-radius: 0.25rem;
+}
+@media (max-width: 767px) {
+  body#home main > section:nth-child(n+2)#steps div figure {
+    margin: 1em 10%;
+    flex-basis: 80%;
+    flex-shrink: 1;
+  }
 }
-
-@media screen and (min-width: 768px)
-{
-    body#home #showcase h2#USP
-	{
-        font-size: 2rem;
-        margin-top: 1rem;
-		margin-bottom: 2rem;
-    }
-	
-	body#home #showcase div
-	{
-		flex-direction: column;
-		height: calc(90vh - 120px - 1rem);
-		box-sizing: border-box;
-	}
-
-	body#home #showcase div > *
-	{
-		width: 50%;	
-		margin-left:0;
-		margin-right: 0;
-	}
-
-	body#home #showcase figure
-	{
-		height: 100%;
-		display: block;
-		margin-top: 2rem;
-		padding: 0;
-	}
-
-	body#home #showcase figure img
-	{
-		align-self: center;
-		height: calc(90vh - 120px);
-		width: auto;
-		transform: translateY(1rem) translateX(-2vw);
-	}
+@media (min-width: 768px) {
+  body#home main > section:nth-child(n+2)#steps div figure {
+    margin: 1em;
+    flex-basis: calc(33.333% - 2em);
+    flex-shrink: 1;
+  }
+}
+body#home main > section:nth-child(n+2)#steps div figure h3,
+body#home main > section:nth-child(n+2)#steps div figure p {
+  padding-left: 1rem;
+  padding-right: 1rem;
+}
+body#home main > section:nth-child(n+2)#steps div figure h3 {
+  margin-top: 1rem;
+  color: black;
+}
+body#home main > section:nth-child(n+2)#steps div figure img {
+  max-width: 100%;
+}
+body#home main > section:nth-child(n+2).features-list div {
+  display: flex;
+  flex-wrap: wrap;
+}
+body#home main > section:nth-child(n+2).features-list div h2 {
+  flex-basis: 100%;
+  flex-shrink: 0;
+}
+body#home main > section:nth-child(n+2).features-list div dl {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  text-align: center;
+}
+body#home main > section:nth-child(n+2).features-list div dl dt {
+  font-weight: 500;
+  font-size: 1.25rem;
+}
+body#home main > section:nth-child(n+2).features-list div dl dt:before {
+  color: white;
+  width: 6rem;
+  height: 6rem;
+  line-height: 6rem;
+  font-size: 3rem;
+  display: block;
+  margin: 1rem auto;
+  font-family: 'FontAwesome';
+}
+body#home main > section:nth-child(n+2).features-list div dl dt.feature-secured:before {
+  background-color: #57a871;
+  text-shadow: 0px 0px 3px #346544;
+  box-shadow: -2px 2px 0px #ffffff;
+  /* ~effet bouton enfoncé */
+  border-radius: 50%;
+  content: "\f023";
+  /* lock */
+}
+body#home main > section:nth-child(n+2).features-list div dl dt.feature-gratis:before {
+  background-color: #f21c44;
+  text-shadow: 0px 0px 3px #9f0925;
+  box-shadow: 0px 1px 2px #ffffff;
+  /* ~effet bouton enfoncé */
+  border-radius: 0.25rem;
+  content: "\f06b";
+  /* gift */
+}
+body#home main > section:nth-child(n+2).features-list div dl dt.feature-libre:before {
+  background-color: #76d9ef;
+  text-shadow: 0px 0px 3px #1bbfe4;
+  box-shadow: 1px 1px 2px #ffffff;
+  /* ~effet bouton enfoncé */
+  border-top-left-radius: 3rem;
+  border-bottom-right-radius: 3rem;
+  content: "\f126";
+  /* code-fork */
+}
+body#home main > section:nth-child(n+2).features-list div dl dd {
+  padding: 0;
 }
-
-@media screen and (min-width: 992px)
-{
-    body#home #showcase h2#USP
-	{
-        font-size: 2.5rem;
-    }
-
-	body#home #showcase figure img
-	{
-		align-self: center;
-		height: calc(90vh - 120px);
-		width: auto;
-		transform: translateY(1rem) translateX(-2vw);
-	}
+@media (max-width: 575px) {
+  body#home main > section:nth-child(n+2).features-list div dl > * {
+    margin: 0rem 1rem 1rem;
+    flex-basis: calc(100% - 2rem);
+  }
 }
-
-body#home #showcase #licence
-{
-	font-style: italic;
-	font-size: 0.95rem;
-}
-
-
-body#home #showcase *:not(.CTA-button) > a, 
-body#home #showcase *:not(.CTA-button) > a:focus, 
-body#home #showcase *:not(.CTA-button) > a:active, 
-body#home #showcase *:not(.CTA-button) > a:visited
-{
-	color: hsl(179, 75%, 50%);
-}
-
-body#home #showcase *:not(.CTA-button) > a:hover
-{
-	color: hsl(179, 100%, 50%);
-	transition: color 0.25s ease-in-out;
-}
-
-/* ======= HOME : steps, features... ======= */
-
-
-.features-list div, 
-#steps div
-{
-	display: flex;
-	flex-wrap: wrap;
-}
-
-.features-list h2, 
-#steps h2
-{
-	flex-basis:	100%;
-	flex-shrink: 0;
-}
-
-#steps figure
-{
-	box-sizing: border-box;
-	overflow: hidden;
-}
-
-
-
-@media (max-width: 767px)
-{
-	#steps figure
-	{
-		margin: 1em 10%;
-		flex-basis:	80%;
-		flex-shrink: 1;
-	}
+@media (min-width: 576px) {
+  body#home main > section:nth-child(n+2).features-list div dl > * {
+    margin: 0rem 1rem 1rem;
+    flex-basis: calc(33.333% - 2rem);
+  }
+  body#home main > section:nth-child(n+2).features-list div dl dt {
+    order: 1;
+  }
+  body#home main > section:nth-child(n+2).features-list div dl dd {
+    order: 2;
+  }
+}
+/* ======= Features page ======= */
+article#features {
+  font-size: 1.20rem;
+}
+article#features figure {
+  display: flex;
+  flex-wrap: wrap;
+  flex-direction: row;
+  align-items: center;
+  width: 100%;
+  margin: 0;
+}
+@media (max-width: 991px) {
+  article#features figure {
+    padding: 1rem 5% 2rem;
+  }
 }
-
-
-@media (min-width: 768px)
-{
-	#steps figure
-	{
-		margin: 1em;
-		flex-basis:	calc(33.333% - 2em);
-		flex-shrink: 1;
-	}
+@media (min-width: 992px) {
+  article#features figure {
+    min-height: 100vh;
+  }
 }
-
-#steps figure
-{
-	display: block;
-	background-color: white;
-	border: 1px solid rgba(0, 0, 0, 0.125);
-	border-radius: 0.25rem;
-}
-
-#steps figure h3
-{
-	margin-top: 1rem;
-	color: black;
-}
-
-#steps figure h3, 
-#steps figure p
-{
-	padding-left: 1rem;
-	padding-right: 1rem;
-}
-
-#steps figure img
-{
-	max-width: 100%;	
-}
-
-@media screen and (max-width: 767px)
-{
-	#steps section
-	{
-		flex-basis:	100%;
-	}
+article#features figure:nth-of-type(odd) {
+  background: #ddd;
 }
-
-.features-list dl
-{
-	display: flex;
-	flex-direction: row;
-	flex-wrap: wrap;
-	text-align: center;
-}
-
-@media (max-width: 575px)
-{
-	.features-list dl > *
-	{
-		margin: 0rem 1rem 1rem;
-		flex-basis: calc(100% - 2rem);
-	}
+article#features figure:nth-of-type(even) {
+  background: #eee;
 }
-
-@media (min-width: 576px)
-{
-	.features-list dl > *
-	{
-		margin: 0rem 1rem 1rem;
-		flex-basis: calc(33.333% - 2rem);
-	}
-	
-	.features-list dl dt
-	{
-		order: 1;
-	}
-	
-	.features-list dl dd
-	{
-		order: 2;
-	}
+article#features figure:nth-of-type(odd),
+article#features figure:nth-of-type(even) {
+  background: linear-gradient(0deg, #dddddd 0%, #eeeeee 100%);
 }
-
-.features-list dl dt
-{
-	font-weight: 500;
-	font-size: 1.25rem;
-}
-
-.features-list dl dd
-{
-	padding: 0;
-}
-
-
-@font-face
-{
-	font-family: 'FontAwesome';
-	font-style: normal;
-	font-weight: 900;
-	font-display: auto;
-	src: url("webfonts/fa-solid-900.eot");
-	src: url("webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), 
-	     url("webfonts/fa-solid-900.woff2") format("woff2"), 
-	     url("webfonts/fa-solid-900.woff") format("woff"),
-	     url("webfonts/fa-solid-900.ttf") format("truetype"), 
-	     url("webfonts/fa-solid-900.svg#fontawesome") format("svg");
-}
-
-.features-list dl dt:before
-{
-	color: white;
-	width: 6rem;
-	height: 6rem;
-	line-height: 6rem;
-	font-size: 3rem;
-	display: block;
-	margin: 1rem auto;
-	font-family: 'FontAwesome';
-}
-
-#features-list-1 dt:nth-of-type(1):before
-{
-    background-color: hsl(139, 32%, 50%);
-	text-shadow: 0px 0px 3px hsl(139, 32%, 30%);
-	box-shadow: -2px 2px 0px hsl(139, 32%, 100%); /* ~effet bouton enfoncé */
-	border-radius: 50%;
-    content: "\f023"; /* lock */
-}
-
-#features-list-1 dt:nth-of-type(2):before
-{
-	background-color: hsl(349, 89%, 53%);
-	text-shadow: 0px 0px 3px hsl(349, 89%, 33%);
-	box-shadow: 0px 1px 2px hsl(349, 89%, 100%); /* ~effet bouton enfoncé */
-	border-radius: 0.25rem;
-	content: "\f06b"; /* gift */
-}
-
-#features-list-1 dt:nth-of-type(3):before
-{
-	background-color: hsl(191, 79%, 70%);
-	text-shadow: 0px 0px 3px hsl(191, 79%, 50%);
-	box-shadow: 1px 1px 2px hsl(191, 79%, 100%); /* ~effet bouton enfoncé */
-	border-top-left-radius: 3rem;
-	border-bottom-right-radius: 3rem;
-    content: "\f126"; /* code-fork */
-}
-
-
-
-
-/* ====== HOME : reviews ====== */
-
-
-body#home #reviews blockquote div:before, 
-body#home #reviews blockquote:before
-{
-	position: absolute;
-	left: 50%;
-	font-size: 6rem;
-	width: 6rem;
-	font-family: cursive;
-	color: #222;
-}
-
-body#home #reviews blockquote div:before
-{
-	content: '«';
-	float: left;
-	margin-left: calc(-50vh - 6rem);
-	margin-top: 1.20rem; /* FTGCM */
-	transform: rotate(15deg);
-}
-
-body#home #reviews blockquote:before
-{
-	content: '»';
-	margin-left: 50vh;
-	transform: rotate(-15deg);
-	text-align: right;
-}
-
-
-body#home #reviews blockquote div
-{
-	line-height: 1.75em;
-	background: repeating-linear-gradient( #fffff2, #fffff2 1.65em, rgba(92, 91, 129, 0.05) 1.65em, rgba(92, 91, 129, 0.05) 1.75em);
-	box-shadow: 1px 1px 2px hsl(0, 0%, 25%);
-	padding: 0.40em 0.5rem;
-	font-family: cursive;
-	max-width: 100vh;
-	margin: auto;
-	box-sizing: border-box;
-	border: 1.75em solid #fffff2;
-	text-indent: 1.75em;
-}
-
-body#home #reviews blockquote cite
-{
-	display: block;
-	text-align: right;
-	font-style: normal;
-}
-
-body#home #reviews blockquote cite:before
-{
-	content: "— ";
-}
-
-
-
-/* ====== HOME : gallery ====== */
-
-
-body#home #gallery
-{
-	padding-bottom: 0;
-}
-	
-body#home #gallery div
-{
-	display: flex;
-	flex-wrap: wrap;
-	max-width: 100%;
-	border: 0;
-	
-	z-index: 161803;
-	
-	box-shadow: -2px 2px 5px black;
-}
-
-body#home #gallery h2
-{
-	padding-bottom: 2rem;
-}
-
-body#home #gallery figure
-{
-	margin: 0;
-	flex-shrink: 1;
-	overflow: hidden;
-	display: flex;
-	padding: 0 0;
-	background: black;
-}
-
-body#home #gallery figure span
-{
-	display: flex;
-	height: auto;
-	border-radius: 0.5rem;
-	overflow: hidden;
-}
-
-body#home #gallery figure img
-{
-	align-self: center;
-}
-
-
-@media (max-width: 575px)
-{
-	body#home #gallery div
-	{
-		padding: 0 39px;
-		background: 
-			url("film-y.png") repeat-y left -11px, 
-			url("film-y.png") repeat-y right -11px;
-		position : relative;
-		top: 3rem;
-	}
-	
-	body#home #gallery h2
-	{
-		padding-bottom: 0;
-	}
-	
-	body#home #gallery figure
-	{
-		border-top: 0.75rem solid black;
-		border-bottom: 0.75rem solid black;
-		flex-basis: calc(100%);
-		height: calc(100vw - 2*39px);
-	}
-
-	body#home #gallery figure img
-	{
-		height: 100%;
-	}
-	
-	/* ====== Fine-tuning (c'est magique) ====== */
-	
-	body#home #gallery figure#bar img
-	{
-		transform: translateX(calc(0% - 2/10 * 100%));
-	}
-
-	body#home #gallery figure#djoliba img
-	{
-		transform: translateX(calc(0% - 3/7 * 100%));
-	}
-
-	body#home #gallery figure#vietnam img
-	{
-		transform: translateX(calc(0% - 2/5 * 100%));
-	}
+@media (min-width: 992px) {
+  article#features figure:nth-of-type(odd) img {
+    order: 2;
+  }
+  article#features figure:nth-of-type(odd) figcaption {
+    order: 1;
+  }
+}
+article#features figure * {
+  flex-shrink: 1;
+  box-sizing: border-box;
+}
+@media (max-width: 991px) {
+  article#features figure * {
+    flex-basis: 100%;
+  }
+}
+@media (max-width: 991px) {
+  article#features figure img {
+    order: 2;
+    max-width: 100%;
+  }
 }
-
-@media (min-width: 576px)
-{
-	body#home #gallery div
-	{
-		padding: 39px 0;
-		background: 
-			url("film.png") repeat-x -11px top, 
-			url("film.png") repeat-x -11px bottom;
-	}
-	
-	body#home #gallery figure
-	{
-		border-right: 1.5rem solid black;
-		flex-basis: calc(25% - 1.5rem);
-		height: calc(25vw - 1.5rem);
-	}
-
-	body#home #gallery figure img
-	{
-		height: 100%;
-	}
-	
-	body#home #gallery div
-	{
-		transform: rotate(0.5deg) scaleX(1.05) scaleY(1.05);
-		position : relative;
-		top: 0.5rem;
-	}
-	
-	/* ====== Fine-tuning (c'est magique) ====== */
-	
-	body#home #gallery figure#bar img
-	{
-		transform: translateX(calc(0% - 1/10 * 100%));
-	}
-
-	body#home #gallery figure#djoliba img
-	{
-		transform: translateX(calc(0% - 3/7 * 100%));
-	}
-
-	body#home #gallery figure#vietnam img
-	{
-		transform: translateX(calc(0% - 1/5 * 100%));
-	}
+@media (min-width: 992px) {
+  article#features figure img {
+    width: 60%;
+    padding: 3rem 2.5%;
+    box-sizing: border-box;
+    margin: 0;
+    max-height: 100%;
+    text-align: center;
+  }
+}
+@media (max-width: 991px) {
+  article#features figure figcaption {
+    order: 1;
+  }
 }
-
-body#home #gallery figure#bar
-{
-	order: 3;
-}
-
-body#home #gallery figure#djoliba
-{
-	order: 4;
-}
-
-body#home #gallery figure#boat
-{
-	order: 1;
-}
-
-body#home #gallery figure#vietnam 
-{
-	order: 2;
-}
-
-/* ======= Features ======= */
-
-article#features
-{
-	display: flex;
-	flex-wrap: wrap;
-	font-size: 1.20rem;
-}
-
-article#features > *
-{
-	flex-basis: 100%;
-}
-
-article#features > figure
-{
-	display: flex;	
-	flex-wrap: wrap;
-	flex-direction: row;
-	align-items: center;
-	width: 100%;
-	margin: 0;
-}
-
-
-article#features figure > *
-{
-	flex-shrink: 1;
-	box-sizing: border-box;
-}
-article#features figure > figcaption h2
-{
-	margin-bottom: 1em;	
-	font-size: 1.80rem;
-	font-weight: 600;
-}
-
-
-@media (max-width: 991px)
-{
-	article#features figure
-	{
-		padding: 1rem 5% 2rem;
-	}
-	
-	article#features figure *
-	{
-		flex-basis: 100%;
-	}
-	
-	article#features figure img
-	{
-		order: 2;
-		
-		max-width: 100%;
-	}
-
-	article#features figure figcaption
-	{
-		order: 1;
-	}
+@media (min-width: 992px) {
+  article#features figure figcaption {
+    width: 40%;
+    padding: 3rem 5%;
+    box-sizing: border-box;
+  }
+}
+article#features figure figcaption h2 {
+  margin-bottom: 1em;
+  font-size: 1.80rem;
+  font-weight: 600;
+}
+/* ======= Download page ======= */
+#download {
+  display: flex;
+  margin: 0 auto;
+  box-sizing: border-box;
+  height: auto;
+  flex-wrap: wrap;
+  justify-content: center;
+}
+@media (max-width: 991px) {
+  #download {
+    width: 100%;
+  }
 }
-
-@media (min-width: 992px)
-{
-	article#features > figure {
-		
-		height: 100vh;
-	}
-	
-	article#features figure > figcaption {
-		
-		width: 40%;
-		padding: 3rem 5%;
-		box-sizing: border-box;
-	}
-
-	article#features figure img {
-		
-		width: 60%;
-		padding: 3rem 2.5%;
-		box-sizing: border-box;
-		
-		margin: 0;
-		max-height: 100%;
-		text-align: center;
-	}
-
-	article#features figure:nth-of-type(odd) img {
-		
-		order: 2;
-	}
-
-	article#features figure:nth-of-type(odd) figcaption {
-		
-		order: 1;
-	}
+@media (min-width: 992px) {
+  #download {
+    width: 80%;
+  }
+}
+#download section {
+  box-sizing: content-box;
+  border: 1px solid rgba(0, 0, 0, 0.125);
+  min-width: 200px;
+  text-align: center;
+  background-color: white;
+  border-radius: 0.25rem;
+}
+#download section h3,
+#download section p {
+  padding-left: 1rem;
+  padding-right: 1rem;
+}
+#download section h3 {
+  margin-top: 1rem;
+  color: black;
+}
+#download section img {
+  max-width: 100%;
+}
+@media (max-width: 991px) {
+  #download section {
+    margin: 1em;
+    flex-basis: calc(33.333% - 2em - 2px);
+    flex-grow: 1;
+    max-width: 300px;
+  }
 }
-
-article#features figure:nth-of-type(odd)
-{
-	background: #ddd;
-}
-
-article#features figure:nth-of-type(even)
-{
-	background: #eee;
-}
-
-article#features figure:nth-of-type(odd), 
-article#features figure:nth-of-type(even)
-{
-	background: linear-gradient(0deg, rgba(221,221,221,1) 0%, rgba(238,238,238,1) 100%);
-}
-
-
-
-	
-/* ======= Download ======= */
-
-#download
-{
-	display: flex;
-	margin: 0 auto;
-	box-sizing: border-box;
-	height: auto;
-	flex-wrap: wrap;
-	justify-content: center;
-}
-
-#download section
-{
-	box-sizing: content-box;
-	border: 1px solid rgba(0, 0, 0, 0.125);
-	min-width: 200px;
-	text-align: center;
-	background-color: white;
-	border-radius: 0.25rem;
-}
-
-
-@media (max-width: 991px)
-{
-	#download
-	{
+@media (min-width: 992px) {
+  #download section {
+    margin: 1em;
+    flex-basis: calc(33.333% - 2em - 2px);
+    flex-shrink: 1;
+    flex-grow: 0;
+  }
+}
+/* ======= Funding page ======= */
+article#funding {
+  text-align: justify;
+  /*
+	#copyButton, 
+	#supportButton
+	{
+		background: #111;
+		color: white;
+		border: 0;
+		font-weight: light;
+		height: 3rem;
+		line-height: 3rem;
+		font-size: 1rem;
 		width: 100%;
+		margin-bottom: 0.5rem;
 	}
-	
-	#download section
-	{
-		margin: 1em;
-		flex-basis: calc(33.333% - 2em - 2px);
-		flex-grow: 1;
-		max-width: 300px;
-		
-	}
-}
-
-@media (min-width: 992px)
-{
-	#download
-	{
-		width: 80%;
-	}
-	
-	#download section
-	{
-		margin: 1em;
-		flex-basis: calc(33.333% - 2em - 2px);
-		flex-shrink: 1;
-		flex-grow: 0;
-	}
+	*/
+}
+article#funding #supportButtonContainer,
+article#funding #projectStatus {
+  height: 100%;
+  overflow: hidden;
+  transition-property: opacity, height;
+  transition-delay: 0s, 0.50s;
+  transition-duration: 0.49s, 0s;
+}
+article#funding #pubkey-and-copy-button {
+  /*opacity: 0;
+		height: 0;*/
+  transition-property: opacity, height;
+  transition-delay: 0.51s, 0.51s;
+  transition-duration: 0.50s, 0s;
+}
+article#funding #pubkey {
+  font-family: monospace;
+  padding: 8px 0;
+  border-radius: 5px;
+  border: transparent;
+  background: transparent;
+  font-size: 1rem;
+  display: block;
+  width: 100%;
+  text-align: center;
+  margin: 0.5em auto;
+}
+article#funding #successMsg {
+  opacity: 0;
+  /*height: 0;*/
+  line-height: 1.5em;
+  transition-property: opacity, height;
+  transition-duration: 1.5s, 0.5s;
+}
+article#funding input#pubkey {
+  color: black;
+}
+article#funding input#pubkey::selection {
+  color: black;
+  background: transparent;
+}
+article#funding input#pubkey:after {
+  content: "...";
+}
+article#funding .crowdfunding-widget {
+  margin: auto;
+  border: white;
+  background: white;
+  background: linear-gradient(0deg, #fbecd0 0%, #ffffff 95%);
+  padding: 1em;
+  box-shadow: -2px 2px 5px #000000;
 }
-
-#download section h3
-{
-	margin-top: 1rem;
-	color: black;
-}
-
-#download section h3, 
-#download section p
-{
-	padding-left: 1rem;
-	padding-right: 1rem;
-}
-
-#download section img
-{
-	max-width: 100%;	
-}
-
-/* ======= Funding ======= */
-
-#supportButtonContainer, 
-#projectStatus
-{
-	height: 100%;
-	overflow: hidden;
-	transition-property: opacity, height;
-	transition-delay: 0s, 0.50s;
-	transition-duration: 0.49s, 0s;
-}
-
-#pubkey-and-copy-button
-{
-	/*opacity: 0;
-	height: 0;*/
-	transition-property: opacity, height;
-	transition-delay: 0.51s, 0.51s;
-	transition-duration: 0.50s, 0s;
-}
-
-#pubkey
-{
-	font-family: monospace;
-	padding: 8px 0;
-	border-radius: 5px;
-	border: transparent;
-	background: transparent;
-	font-size: 1rem;
-}
-
-
-#copyButton
-{
-}
-
-#successMsg
-{
-	opacity: 0;
-	/*height: 0;*/
-	line-height: 1.5em;
-	transition-property: opacity, height;
-	transition-duration: 1.5s, 0.5s;
-}
-
-	
-input#pubkey
-{
-	color: black;
-}
-
-input#pubkey::selection
-{
-	color: black;
-}
-
-input##pubkey::selection
-{
-	background: transparent;
-}
-
-input##pubkey:after
-{
-	content: "...";
-}
-
-/*
-#copyButton, 
-#supportButton
-{
-	background: #111;
-	color: white;
-	border: 0;
-	font-weight: light;
-	height: 3rem;
-	line-height: 3rem;
-	font-size: 1rem;
-	width: 100%;
-	margin-bottom: 0.5rem;
-}
-*/
-
-
-.crowdfunding-widget
-{
-	margin: auto;
-	border: white;
-    background: white;
-    background: linear-gradient(0deg, hsl(39, 85.2%, 90%) 0%, hsl(39, 85.2%, 105%) 95%);
-    padding: 1em;
-    box-shadow: -2px 2px 5px black;
-}
-
 @media (min-width: 1200px) {
-
-	.crowdfunding-widget
-	{
-		max-width: 450px;
-	}
-	
-}
-
-.crowdfunding-widget .progress-bar
-{
-	width: 100%;
-	height: 0.5em;
-	background-color: red;
-}
-
-.crowdfunding-widget strong
-{
-	display: block;	
-	font-size: 2rem;
-}
-
-.crowdfunding-widget > p:nth-of-type(3) span:first-child
-{
-	display: none;
-}
-
-/* ======= Tutorial ======= */
-
-#tuto 
-{
-	display: flex;
-	flex-wrap: wrap;
-	font-size: 1rem;
-}
-
-#tuto img
-{
-	max-width: 100%;	
-}
-
-#tuto nav
-{
-	background: white;
-	padding: 1em 2%;
-	align-self: flex-start;
-}
-
-#tuto nav li
-{
-	margin-top: 0.5em;
-	margin-bottom: 0.5em;
-}
-
-#tuto article
-{
-	flex-grow: 1;
-	background-color: white;
-	color: black;
-	padding: 0 1em;
-	align-self: flex-start;
-}
-
-#tuto article h1
-{
-	color: black;
-	font-size: 2rem;
-	font-weight: bold;
-	padding-bottom: 0.75em;
-}
-
-#tuto li {
-
-	margin-top: 1em;
-	margin-bottom: 1em;
-}
-
-#tuto li img {
-
-	margin-top: 1em;
-	margin-bottom: 1em;
-}
-
-@media (max-width: 991px)
-{
-	#tuto > *
-	{
-		flex-basis: 100%;
-	}
-	
-	#tuto nav
-	{
-		order: 2;
-	}
-	
-	#tuto article
-	{
-		order: 1;
-	}
+  article#funding .crowdfunding-widget {
+    max-width: 450px;
+  }
+}
+article#funding .crowdfunding-widget .progress-meter {
+  width: 100%;
+  height: 0.5em;
+  background-color: red;
+}
+article#funding .crowdfunding-widget strong {
+  display: block;
+  font-size: 2rem;
+}
+article#funding .crowdfunding-widget > p:nth-of-type(3) span:first-child {
+  display: none;
+}
+article#funding .crowdfunding-widget .progress-container {
+  background-color: #e9ecef;
+  border: 1px solid #4b535c;
+  height: 2rem;
+  border-radius: 0;
+  display: -ms-flexbox;
+  display: flex;
+  overflow: hidden;
+  font-size: .75rem;
+}
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 1rem 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+article#funding .crowdfunding-widget .progress-bar {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-direction: column;
+  flex-direction: column;
+  -ms-flex-pack: center;
+  justify-content: center;
+  color: #fff;
+  text-align: center;
+  white-space: nowrap;
+  background-color: #ffc107;
+  transition: width .6s ease;
+  -webkit-animation: progress-bar-stripes 1s linear infinite;
+  animation: progress-bar-stripes 1s linear infinite;
+}
+article#funding .donorsList {
+  list-style-type: none;
+  margin: 0 auto;
+  padding: 0;
+  max-width: 500px;
+  text-align: center;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+}
+article#funding .donorsList > li {
+  padding: 0.10rem 0.5rem;
+  flex-shrink: 1;
+  box-sizing: border-box;
+}
+article#funding .donorsList > li span {
+  border-radius: 1em;
+  padding: 0 0.25em;
+  color: white;
+}
+article#funding .donorsList > li:nth-child(5n) span {
+  background: #66dbff;
+  color: black;
+}
+article#funding .donorsList > li:nth-child(5n+1) span {
+  background: #3dc5d1;
+}
+article#funding .donorsList > li:nth-child(5n+2) span {
+  background: #004080;
+}
+article#funding .donorsList > li:nth-child(5n+3) span {
+  background: #99e7ff;
+  color: #03072b;
+}
+article#funding .donorsList > li:nth-child(5n+4) span {
+  background: #33cfff;
+  color: #03072b;
+}
+article#funding .donorsList > :nth-child(1) {
+  width: 100%;
+}
+article#funding .donorsList > :nth-child(2),
+article#funding .donorsList > :nth-child(3) {
+  width: 50%;
+}
+/* ======= Tutorial page ======= */
+#tuto {
+  display: flex;
+  flex-wrap: wrap;
+  font-size: 1rem;
+}
+#tuto img {
+  max-width: 100%;
+}
+#tuto nav {
+  background: white;
+  padding: 1em 2%;
+  align-self: flex-start;
+}
+#tuto nav li {
+  margin-top: 0.5em;
+  margin-bottom: 0.5em;
+}
+#tuto nav li ul {
+  display: none;
+}
+#tuto nav li.active > a {
+  font-weight: bold;
+}
+#tuto nav li.current > ul {
+  display: block;
+}
+#tuto nav > ul {
+  list-style: none;
+  padding-left: 0;
+}
+#tuto nav > ul > li {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+#tuto article {
+  flex-grow: 1;
+  background-color: white;
+  color: black;
+  padding: 0 1em 1.5em;
+  align-self: flex-start;
+}
+#tuto article h1 {
+  color: black;
+  font-size: 2rem;
+  font-weight: bold;
+  padding-bottom: 1em;
+}
+#tuto article li {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+#tuto article li img {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+#tuto article dl dt {
+  font-weight: bold;
+  margin-bottom: 0.5em;
+}
+#tuto article dl dd {
+  margin-bottom: 1.5em;
+}
+@media (max-width: 991px) {
+  #tuto > * {
+    flex-basis: 100%;
+  }
+  #tuto nav {
+    order: 2;
+  }
+  #tuto article {
+    order: 1;
+  }
 }
-
-@media (min-width: 992px)
-{
-	#tuto > *
-	{
-		margin: 2rem 1%;	
-	}
-	
-	#tuto nav
-	{
-		position: sticky;
-		top: 1em;
-		flex-shrink: 0;
-		flex-grow: 1;
-		flex-basis: 25%;
-	}
-	
-	#tuto article
-	{
-		position: sticky;
-		top: 1em;
-		flex-shrink: 0;
-		flex-basis: 60%;
-	}
-}
-
-table
-{
-	border-collapse: collapse;
-}
-
-table td, 
-table th
-{
-	border: 1px solid #ccc;
-	padding: 0.5rem;
-}
-
-table th
-{
-	background: #f7f7f7;	
-}
-
-[colspan]
-{
-	text-align: center;
-}
-
-img
-{
-	display: block;
-	margin: auto;
-}
-
-mark
-{
-	background: yellow;	
-}
-
-mark:nth-of-type(2n)
-{
-	background: pink;	
-}
-
-a.current
-{
-	font-weight: bold;	
-}
-
-/* Legal Notice */ 
-
-#legal-notice dt
-{
-	font-weight: bold;
-	font-size: 1.25rem;
+@media (min-width: 992px) {
+  #tuto > * {
+    margin: 2rem 1%;
+  }
+  #tuto nav {
+    position: sticky;
+    top: 1em;
+    flex-shrink: 0;
+    flex-grow: 1;
+    flex-basis: 25%;
+  }
+  #tuto article {
+    position: sticky;
+    top: 1em;
+    flex-shrink: 0;
+    flex-basis: 60%;
+  }
+}
+/* ======= Legal Notice page ======= */
+#legal-notice dt {
+  font-weight: bold;
+  font-size: 1.25rem;
 }
diff --git a/lib/style.less b/lib/style.less
new file mode 100644
index 0000000000000000000000000000000000000000..c4bb15b16aa80ff929f6265cc2e5ef2aeb0512d8
--- /dev/null
+++ b/lib/style.less
@@ -0,0 +1,1987 @@
+:root {
+	
+	--bp1:  576px;
+	--bp2:  768px;
+	--bp3:  992px;
+	--bp4: 1200px;
+	--screenshot-ratio: 1.620915033;
+	--screenshot-laptop-keyboard-ratio: 0.901515152;
+	
+
+	@font-face
+	{
+		font-family: 'FontAwesome';
+		font-style: normal;
+		font-weight: 900;
+		font-display: auto;
+		src: url("webfonts/fa-solid-900.eot");
+		src: url("webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), 
+			 url("webfonts/fa-solid-900.woff2") format("woff2"), 
+			 url("webfonts/fa-solid-900.woff") format("woff"),
+			 url("webfonts/fa-solid-900.ttf") format("truetype"), 
+			 url("webfonts/fa-solid-900.svg#fontawesome") format("svg");
+	}
+}
+
+
+/* ======= COMMON ======= */
+
+body {
+	
+	background: hsl(0, 0%, 6.7%);
+	padding:0;
+	margin:0;
+	font-family: "Open Sans", sans-serif;
+	color: hsl(210, 10.8%, 14.5%);
+	overflow-x: hidden;
+	
+	main
+	{
+		background: hsl(256, 65.5%, 27.3%);
+	}
+	
+	a, 
+	a:focus,
+	a:active, 
+	a:visited
+	{
+		color: hsl(179, 75%, 35%);
+		text-decoration: none;
+	}
+	
+	a:focus
+	{
+		outline: 0;
+	}
+	
+	a:hover
+	{
+		color: hsl(179, 100%, 35%);
+		transition: color 0.25s ease-in-out;
+	}
+
+	p.CTA-button 
+	{
+		text-align: center;
+		margin-left: auto;
+		margin-right: auto;
+	}
+
+	p.CTA-button a, 
+	p.CTA-button button
+	{
+		background-color: hsl(45, 100%, 51.4%);
+		color: black;
+		text-shadow: 0px 0px 15px white;
+		transition: box-shadow 0.666s, color 0.666s;
+		padding: 1rem 2rem;
+		font-size: 0.8203125rem;
+		line-height: 1.5;
+		border: 0;
+		border-radius: 0;
+		cursor: pointer;
+		letter-spacing: 0.05em;
+		text-transform: uppercase;
+		display: inline-block;
+		vertical-align: middle;
+		text-decoration: none;
+	}
+
+	p.CTA-button a:hover, 
+	p.CTA-button button:hover
+	{
+		/*color: #fcfcfc;*/
+		box-shadow: 0 0 15px #fcfcfc;
+		background-color: #ffc107;
+		text-decoration: none;
+	}
+	
+	h1, 
+	h2, 
+	h3, 
+	h4, 
+	h5, 
+	h6
+	{
+		font-weight: 500;	
+	}
+	
+	iframe
+	{
+		border: 0;
+	}
+	
+	code, 
+	pre {
+
+		background-color: rgb(66, 66, 66);	
+		color: rgb(239, 239, 239);
+		padding: 0.375em 0.75em;
+	}
+	
+	pre {
+	
+		margin: 0.375em 0;
+		
+		&.console:before {
+
+			content: "$ ";
+		}
+	}
+
+	h1
+	{
+		text-align: center;
+		margin: 0;
+		padding: 1.5em 0 1.5em;
+		font-size: 3rem;
+		font-weight: 500;
+		color: #fcfcfc;
+	}
+
+	table
+	{
+		border-collapse: collapse;
+	}
+
+	table td, 
+	table th
+	{
+		border: 1px solid #ccc;
+		padding: 0.5rem;
+	}
+
+	table th
+	{
+		background: #f7f7f7;	
+	}
+
+	[colspan]
+	{
+		text-align: center;
+	}
+
+	img
+	{
+		display: block;
+		margin: auto;
+	}
+
+	mark
+	{
+		background: yellow;	
+	}
+
+	mark:nth-of-type(2n)
+	{
+		background: pink;	
+	}
+}
+
+
+/* ======= CONTENTS (like thank you page) ======= */
+
+
+.text-box, 
+section.text-box
+{
+	background-color: #FDF5E6;
+	color: rgb(66, 66, 66);	
+	font-size: 1.25rem;
+	line-height: 1.75rem;
+	max-width: 800px;
+	margin: auto;
+	padding: 0 0 0.001rem 0;
+	
+	
+}
+
+section.text-box
+{
+	padding: 2em;
+}
+
+.text-box section {
+	
+	margin-top: 0rem;
+	margin-bottom: 3rem;
+	
+	
+	h2
+	{
+		background: rgb(32, 27, 24);
+		color: white;
+		font-weight: bold;
+		padding: 2rem;
+		margin-bottom: 1em;
+	}
+	
+	h3
+	{
+		font-weight: bold;
+		margin-top: 1em;
+		padding: 0.5rem 1rem;
+	}
+	
+	p,
+	h3,
+	h4,
+	h5,
+	h6,
+	ul,
+	ol,
+	dl, 
+	table
+	{
+		margin-left: 2rem;
+		margin-right: 2rem;
+		text-align: justify;
+		width: auto;
+	}
+	
+	td
+	{
+		background: white;
+		color: black;
+	}
+
+	th
+	{
+		background: rgb(33, 33, 33);
+		color: white;
+		text-align: center;
+	}
+
+	[colspan]
+	{
+		text-align: center;	
+	}
+	
+	.warning
+	{
+		color: orange;	
+	}
+	
+	h3.warning
+	{
+		background-color: orange;
+		color: white;
+	}
+	
+	.bad
+	{
+		color: red;	
+	}
+
+}
+
+
+
+
+/* ======= FOOTER ======= */
+
+
+body > footer {
+	
+	z-index: 999;
+	position: relative;
+	background: rgb(17, 17, 17);
+	overflow: hidden;
+	color: #ccc;
+	font-size: 0.9rem;
+	padding-bottom: 2rem;
+	padding-top: 3rem;
+	
+
+	ul, 
+	p
+	{
+		padding: 0;
+		margin: 0.5rem 0;
+		list-style-type: none;
+	}
+
+	ul li
+	{
+		padding: 0;
+		margin: 0;
+		line-height: 1.50em;
+	}
+	
+	div
+	{
+		display: flex;
+		flex-wrap: wrap;
+		margin: auto;
+		
+		
+		@media (max-width:575px)
+		{
+			padding-left: 1rem;
+			padding-right: 1rem;
+			box-sizing: border-box;
+
+			> *
+			{
+				flex-basis: 50%;
+			}
+		}
+
+		@media (min-width:576px)
+		{
+			padding-left: 1rem;
+			padding-right: 1rem;
+			box-sizing: border-box;
+
+			 > *
+			{
+				flex-basis: 33.333%;
+				flex-shrink: 1;
+			}
+		}
+
+		@media (min-width: 1200px)
+		{
+			max-width: calc(~"1140px - 5rem");
+		}
+		
+	}
+	
+	h5
+	{
+		color: #e4c380;
+		font-size: 1.05rem;
+		margin-bottom: 0.5rem;
+	}
+	
+	a, 
+	a:hover, 
+	a:focus, 
+	a:active, 
+	a:visited
+	{
+		color: #00A09D;
+		text-decoration: none;	
+	}
+}
+
+
+
+
+/* ======= BARRE DE LANGUES ======= */
+
+
+
+nav#langSelector {
+	
+	ul 
+	{
+		li 
+		{
+			> * span:first-child
+			{
+				@media (max-width: 575px)
+				{
+					display: none;
+				}
+			}
+
+			&:hover, 
+			&:hover *
+			{
+				cursor: pointer;
+			}
+
+			&:last-of-type:after
+			{
+				content: "";
+				margin-left: 0;
+			}
+
+			a, 
+			a:hover, 
+			a:focus, 
+			a:active, 
+			a:visited
+			{
+				text-decoration: none;	
+			}
+		}
+	}
+	
+	@media (min-width: 576px)
+	{
+		position: fixed;
+		right: 0;
+		bottom: 0;
+		z-index: 1010;
+		text-align: right;
+		background: rgba(0, 0, 0, 0.8);
+		border-top-left-radius: 1em;
+		height: auto;
+
+		h5
+		{
+			display: none;
+		}
+
+		ul
+		{
+			margin: 0;
+			padding: 0.5em 0 0.25em 0;
+
+			li
+			{
+				display: block;
+				margin: 0 0 0 0;
+				padding: 0;
+				text-align: center;
+
+				> *
+				{
+					display: block;
+					padding: 0.125em 0.75em;
+
+					span:last-child
+					{
+						display: none;
+					}
+				}
+
+				a
+				{
+					font-weight: bold;
+					color: white;
+				}
+
+				strong
+				{
+					color: rgba(255, 255, 255, 0.7);
+				}
+
+				&:hover, 
+				&:hover a, 
+				&:hover a span
+				{
+					color: #ffc107;
+				}
+
+				&:after
+				{
+					color: white;
+				}
+
+				&:last-of-type:after
+				{
+					color: white;
+				}
+
+			}
+		}
+	}
+}
+
+
+
+/* ======= HEADER ======= */
+
+
+body > header:first-child  {
+	
+	background: #311873;
+	overflow: hidden;
+	height: 120px;
+	padding: 0.5rem 1rem;
+	box-sizing: content-box;
+	display: flex;
+	align-items: center;
+
+	a, 
+	a:hover
+	{
+		color: white;
+		text-decoration: none;
+	}
+
+	p, 
+	p img
+	{
+		height: 100%;
+	}
+
+	p img
+	{
+		margin-left: 0.5em;
+		margin-right: 0.5em;
+
+		@media (max-width: 575px)
+		{
+			margin-left: 0;
+		}
+	}
+
+	> :nt-child(2)
+	{
+		order: 1;
+	}
+
+	/* ==== HEADER : titre et logo ==== */ 
+
+	> h1, 
+	> h2
+	{
+		order: 2;
+		flex-grow: 1;
+		text-align: left;
+		font-size: 2.25rem;
+
+
+		@media (max-width: 575px) {
+
+			font-size: 2rem;
+		}
+	}
+	
+	/* ==== HEADER : menu ==== */ 
+	nav {
+		
+		order: 3;
+		flex-grow: 0;
+
+		ul
+		{
+			list-style: none;
+			text-align: right;
+
+			li
+			{
+				a, 
+				a:hover
+				{
+					color: rgb(228, 195, 128);
+					text-decoration: none;
+				}
+				
+				&.support-us {
+						
+					@media (max-width: 1139px) {
+						
+						a {
+							
+							color: hsl(349, 89%, 53%);
+						}
+					}
+					
+					@media (min-width: 1140px) {
+						
+						border: 0;
+
+
+						a {
+
+							margin: 0;
+							padding: 1em;
+							display: block;
+							border-radius: 1em;
+
+							color: #f2f2f2;
+							background: hsl(349, 89%, 53%);
+						}
+
+						&.active a {
+
+							color: hsl(349, 89%, 53%);
+							background: white;
+
+						}
+					}
+					
+				}
+			}
+		}
+		
+		
+		@media (max-width: 1139px)
+		{
+			ul
+			{
+				overflow: hidden;
+				position: absolute;
+				top: 120px;
+				right: 0;
+				width: 100vw;
+				background-color: hsl(256, 65.5%, 27.3%);
+				box-shadow: 0px 6px 5px hsl(256, 65.5%, 13%);
+				z-index: 10000;
+				padding: 0 1rem 0rem;
+				box-sizing: border-box;
+				transition: height 0.5s ease-out;
+				height: 0;
+				margin: 0;
+			}
+
+			ul li
+			{
+				margin: 0;
+				padding: 0;
+			}
+
+			ul li a span
+			{
+				height: 1rem;
+				padding: 0.5rem 0;
+				display: block;
+			}
+
+			button
+			{
+				order: 3;
+
+				display: block;
+				background-color: transparent;
+				color: rgba(255, 255, 255, 0.5);
+				width: 2rem;
+				height: 2rem;
+				cursor: pointer;
+				padding: 0;
+				margin: 0;
+				border: 0;
+			}
+
+			button:after
+			{
+				content: "";
+				background-color: transparent;
+				background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+				background-repeat: repeat;
+				background-position: center center;
+				background-size: cover;
+
+				display: inline-block;
+				width: 2rem;
+				height: 2rem;
+				vertical-align: middle;
+				padding: 0;
+				margin: 0;
+				border-radius: 0.1rem;
+			}
+
+			button span
+			{
+				display: none;
+			}
+
+
+			button:focus + ul
+			{
+
+			}
+		}
+
+		@media (min-width: 1140px)
+		{
+
+			button
+			{
+				display: none;
+			}
+
+			ul li
+			{
+				display: inline-block;
+				margin: 0 0.666rem;
+			}
+
+			ul li a:hover
+			{
+				border-bottom: 1px solid rgba(228, 195, 128, 0.33);
+			}
+
+			ul li a:focus
+			{
+				border-bottom: 1px solid rgba(228, 195, 128, 0.66);
+			}
+
+			ul li.active a
+			{
+				border-bottom: 1px solid rgb(228, 195, 128);
+			}
+
+			ul li a
+			{
+				padding: 0.5rem 0rem;
+			}
+
+
+		}
+		
+		
+	}
+	
+}
+
+
+
+/* ======= HOME ======= */
+
+:root {
+	--home-text-color : #212529;
+	--home-bg-color: #e9ecef;
+}
+
+body#home
+{
+	font-size: 1rem;
+	
+
+	/* ======= Homepage : showcase ======= */
+	
+	#showcase {
+
+		color: white;
+
+		*:not(.CTA-button) > a, 
+		*:not(.CTA-button) > a:focus, 
+		*:not(.CTA-button) > a:active, 
+		*:not(.CTA-button) > a:visited
+		{
+			color: hsl(179, 75%, 50%);
+		}
+
+		*:not(.CTA-button) > a:hover
+		{
+			color: hsl(179, 100%, 50%);
+			transition: color 0.25s ease-in-out;
+		}
+
+		@media screen and (max-width: 879px), screen and (orientation: portrait) {
+
+			div {
+
+				display: flex;
+				flex-wrap: wrap;
+				justify-content: center;
+				text-align: center;
+
+				flex-direction: row;
+				padding-bottom: 2rem;
+
+				*
+				{
+					flex-basis: 100%;
+					flex-shrink: 0;
+				}
+
+				figure
+				{
+					padding: 0 5%;
+					box-sizing: border-box;
+					margin: auto;
+
+					img
+					{
+						max-width: 100%;
+					}
+				}
+			}
+		}
+		
+
+		@media screen and (min-width: 880px) and (orientation: landscape) {
+			
+			overflow: visible;
+			
+			div {
+				
+				text-align: center;
+				box-sizing: border-box;
+				
+				
+				display: flex;
+				flex-direction: column;
+				flex-wrap: wrap;
+				position: relative;
+				justify-content: center;
+				
+				width: 100%;
+				overflow: visible;
+				
+				
+				h2#USP {
+
+					margin-top: 0;
+					margin-bottom: 0;
+				}
+
+				> *
+				{
+					margin-left: 50%;
+					margin-right: 0;
+					width: 50%;
+					background: transparent;
+				}
+				
+				
+				
+				figure
+				{
+					position: absolute;
+					
+					overflow: visible;
+					height: 100%;
+					margin-left: 0;
+
+					margin-top: 0;
+					margin-bottom: 0;
+					padding: 0;
+					
+
+					img
+					{
+						position: absolute;
+						align-self: center;
+						/*max-height: calc(~"90vh - 120px");*/
+						height: 100%;
+					}
+
+				}
+
+				aside {
+
+					* {
+						display: inline	
+					}
+				}
+
+				aside + div {
+
+					clear: both;
+					height: 0;
+				}
+
+			}
+		}
+
+		@media screen and (min-width: 880px) and (orientation: landscape) {
+
+			div {
+
+				figure
+				{
+					order: 1;
+				}
+
+				h2
+				{
+					order: 2;
+				}
+
+				*:nth-child(n+3)
+				{
+					order: 3;
+				}
+			}
+		}
+		
+		
+		
+		@media screen and (min-width: 880px) and (orientation: landscape) {
+			
+			--screenshot-height: calc(~"50vw / var(--screenshot-ratio)");
+			--screenshot-top-offset: calc(~"(1 - var(--screenshot-laptop-keyboard-ratio)) * var(--screenshot-height)");
+			
+			height: calc(~"50vw / var(--screenshot-ratio) + var(--screenshot-top-offset)");
+			background-color: hsl(67, 33.3%, 95.3%);
+			
+			div {
+				
+				background-color: hsl(256, 65.5%, 27.3%);
+				
+				
+				height: calc(~"50vw / var(--screenshot-ratio)");
+				
+				figure {
+
+					width: var(--screenshot-width);
+					top: var(--screenshot-top-offset);
+				}
+				
+			}
+			
+		}
+		
+
+		h2#USP {
+
+			@media (max-width: 575px) {
+
+				font-size: 2rem;
+			}
+
+			@media (min-width: 576px) {
+
+				font-size: 2.5rem;
+			}
+
+			@media screen and (max-width: 767px)
+			{
+				padding-top: 1.5rem;
+				padding-bottom: 0rem;
+			}
+
+			@media screen and (min-width: 768px)
+			{
+				padding-top: 1rem;
+				padding-bottom: 0rem;
+			}
+
+			@media screen and (min-width: 880px) and (orientation: landscape)
+			{
+				font-size: 2rem;
+			}
+
+			@media screen and (min-width: 992px) and (orientation: landscape)
+			{
+				font-size: 2.5rem;
+			}
+		}
+
+		h2#USP + p {
+
+			margin-top: 0rem;
+			margin-bottom: 1rem;
+
+			@media (max-width: 575px) {
+
+				margin-top: 1rem;
+				margin-bottom: 0.5rem;
+			}
+		}
+
+		#licence
+		{
+			color: hsla(0, 0%, 100%, 0.75);
+			font-size: 0.90rem;
+		}
+	}
+	
+	
+	
+
+	/* ======= Homepage : below showcase ======= */
+	
+	main > section:nth-child(n+2) {
+	
+		> div
+		{
+			@media screen and (min-width: 1200px)
+			{
+				max-width: 1140px;
+				margin: auto;
+			}
+		}
+		
+		color: var(--home-text-color);
+		background-color: var(--home-bg-color);
+		background: linear-gradient(0deg, hsla(67, 20.0%, 92.2%, 1) 0%, hsla(67, 33.3%, 95.3%, 1) 100%);
+		padding-bottom: 1rem;
+		/*overflow: hidden;*/
+		
+		h2
+		{
+			text-align: center;
+			padding: 3rem 0 2rem;
+			margin: 0;
+			font-size: 2rem;
+			
+			@media (max-width: 575px) {
+
+				font-size: 1.50rem;
+				padding: 2rem 0 1rem;
+			}
+		}
+
+		/* ====== Homepage : reviews ====== */
+
+
+		&#reviews {
+
+			blockquote div:before, 
+			blockquote:before
+			{
+				position: absolute;
+				left: 50%;
+				font-size: 6rem;
+				width: 6rem;
+				font-family: cursive;
+				color: #222;
+			}
+
+			blockquote {
+
+				div:before
+				{
+					content: '«';
+					float: left;
+					margin-left: calc(~"-50vh - 6rem");
+					margin-top: 1.20rem; /* FTGCM */
+
+					transform: rotate(15deg);
+				}
+
+				&:before
+				{
+					content: '»';
+					margin-left: 50vh;
+					transform: rotate(-15deg);
+					text-align: right;
+				}
+
+				div
+				{
+					line-height: 1.75em;
+					background: repeating-linear-gradient( #fffff2, #fffff2 1.65em, rgba(92, 91, 129, 0.05) 1.65em, rgba(92, 91, 129, 0.05) 1.75em);
+					box-shadow: 1px 1px 2px hsl(0, 0%, 25%);
+					padding: 0.40em 0.5rem;
+					font-family: cursive;
+					max-width: 100vh;
+					margin: auto;
+					box-sizing: border-box;
+					border: 1.75em solid #fffff2;
+					text-indent: 1.75em;
+				}
+
+				cite
+				{
+					display: block;
+					text-align: right;
+					font-style: normal;
+
+					&:before
+					{
+						content: "— ";
+					}
+				}
+			}
+		}
+
+
+
+		/* ====== Homepage : gallery ====== */
+		
+		&#gallery {
+
+			padding-bottom: 0;
+
+			div
+			{
+				display: flex;
+				flex-wrap: wrap;
+				max-width: 100%;
+				border: 0;
+
+				z-index: 161803;
+
+				box-shadow: -2px 2px 5px black;
+			}
+
+			h2
+			{
+				padding-bottom: 2rem;
+			}
+
+			figure
+			{
+				margin: 0;
+				flex-shrink: 1;
+				overflow: hidden;
+				display: flex;
+				padding: 0 0;
+				background: black;
+
+				span
+				{
+					display: flex;
+					height: auto;
+					border-radius: 0.5rem;
+					overflow: hidden;
+				}
+
+				img
+				{
+					align-self: center;
+				}
+
+				&#bar
+				{
+					order: 3;
+				}
+
+				&#djoliba
+				{
+					order: 4;
+				}
+
+				&#boat
+				{
+					order: 1;
+				}
+
+				&#vietnam 
+				{
+					order: 2;
+				}
+			}
+
+			@media (max-width: 575px)
+			{
+				div
+				{
+					padding: 0 39px;
+					background: 
+						url("film-y.png") repeat-y left -11px, 
+						url("film-y.png") repeat-y right -11px;
+					position : relative;
+					top: 3rem;
+				}
+
+				h2
+				{
+					padding-bottom: 0;
+				}
+
+				figure
+				{
+					border-top: 0.75rem solid black;
+					border-bottom: 0.75rem solid black;
+					flex-basis: calc(~"100%");
+					height: calc(~"100vw - 2*39px");
+				}
+
+				figure img
+				{
+					height: 100%;
+				}
+
+				/* ====== Fine-tuning (c'est magique) ====== */
+
+				figure#bar img
+				{
+					transform: translateX(calc(~"0% - 2/10 * 100%"));
+				}
+
+				figure#djoliba img
+				{
+					transform: translateX(calc(~"0% - 3/7 * 100%"));
+				}
+
+				figure#vietnam img
+				{
+					transform: translateX(calc(~"0% - 2/5 * 100%"));
+				}
+			}
+
+			@media (min-width: 576px)
+			{
+				div
+				{
+					padding: 39px 0;
+					background: 
+						url("film.png") repeat-x -11px top, 
+						url("film.png") repeat-x -11px bottom;
+				}
+
+				figure
+				{
+					border-right: 1.5rem solid black;
+					flex-basis: calc(~"25% - 1.5rem");
+					height: calc(~"25vw - 1.5rem");
+				}
+
+				figure img
+				{
+					height: 100%;
+				}
+
+				div
+				{
+					transform: rotate(0.5deg) scaleX(1.05) scaleY(1.05);
+					position : relative;
+					top: 0.5rem;
+				}
+
+				/* ====== Fine-tuning (c'est magique) ====== */
+
+				figure#bar img
+				{
+					transform: translateX(calc(~"0% - 1/10 * 100%"));
+				}
+
+				figure#djoliba img
+				{
+					transform: translateX(calc(~"0% - 3/7 * 100%"));
+				}
+
+				figure#vietnam img
+				{
+					transform: translateX(calc(~"0% - 1/5 * 100%"));
+				}
+			}
+		}
+		
+
+		/* ======= Homepage : steps ======= */
+		
+		&#steps div {
+
+			display: flex;
+			flex-wrap: wrap;
+
+			h2
+			{
+				flex-basis:	100%;
+				flex-shrink: 0;
+			}
+
+			figure
+			{
+				box-sizing: border-box;
+				overflow: hidden;
+
+				display: block;
+				background-color: white;
+				border: 1px solid rgba(0, 0, 0, 0.125);
+				border-radius: 0.25rem;
+
+				@media (max-width: 767px)
+				{
+					margin: 1em 10%;
+					flex-basis:	80%;
+					flex-shrink: 1;
+				}
+
+				@media (min-width: 768px)
+				{
+					margin: 1em;
+					flex-basis:	calc(~"33.333% - 2em");
+					flex-shrink: 1;
+				}
+
+				h3, 
+				p
+				{
+					padding-left: 1rem;
+					padding-right: 1rem;
+				}
+
+				h3
+				{
+					margin-top: 1rem;
+					color: black;
+				}
+
+				img
+				{
+					max-width: 100%;	
+				}
+			}
+
+		}
+		
+		
+		
+		
+		/* ======= Homepage : features... ======= */
+
+		&.features-list div {
+
+			display: flex;
+			flex-wrap: wrap;
+
+			h2
+			{
+				flex-basis:	100%;
+				flex-shrink: 0;
+			}
+
+			dl {
+
+				display: flex;
+				flex-direction: row;
+				flex-wrap: wrap;
+				text-align: center;
+
+				dt
+				{
+					font-weight: 500;
+					font-size: 1.25rem;
+
+					&:before
+					{
+						color: white;
+						width: 6rem;
+						height: 6rem;
+						line-height: 6rem;
+						font-size: 3rem;
+						display: block;
+						margin: 1rem auto;
+						font-family: 'FontAwesome';
+					}
+
+					&.feature-secured:before
+					{
+						background-color: hsl(139, 32%, 50%);
+						text-shadow: 0px 0px 3px hsl(139, 32%, 30%);
+						box-shadow: -2px 2px 0px hsl(139, 32%, 100%); /* ~effet bouton enfoncé */
+						border-radius: 50%;
+						content: "\f023"; /* lock */
+					}
+
+					&.feature-gratis:before
+					{
+						background-color: hsl(349, 89%, 53%);
+						text-shadow: 0px 0px 3px hsl(349, 89%, 33%);
+						box-shadow: 0px 1px 2px hsl(349, 89%, 100%); /* ~effet bouton enfoncé */
+						border-radius: 0.25rem;
+						content: "\f06b"; /* gift */
+					}
+
+					&.feature-libre:before
+					{
+						background-color: hsl(191, 79%, 70%);
+						text-shadow: 0px 0px 3px hsl(191, 79%, 50%);
+						box-shadow: 1px 1px 2px hsl(191, 79%, 100%); /* ~effet bouton enfoncé */
+						border-top-left-radius: 3rem;
+						border-bottom-right-radius: 3rem;
+						content: "\f126"; /* code-fork */
+					}
+				}
+
+				dd
+				{
+					padding: 0;
+				}
+
+				@media (max-width: 575px)
+				{
+					> *
+					{
+						margin: 0rem 1rem 1rem;
+						flex-basis: calc(~"100% - 2rem");
+					}
+				}
+
+				@media (min-width: 576px)
+				{
+					> *
+					{
+						margin: 0rem 1rem 1rem;
+						flex-basis: calc(~"33.333% - 2rem");
+					}
+
+					dt
+					{
+						order: 1;
+					}
+
+					dd
+					{
+						order: 2;
+					}
+				}
+			}
+		}
+
+
+	}
+
+}
+
+
+
+
+
+
+/* ======= Features page ======= */
+
+article#features {
+	
+	font-size: 1.20rem;
+	
+	figure
+	{
+		display: flex;	
+		flex-wrap: wrap;
+		flex-direction: row;
+		align-items: center;
+		width: 100%;
+		margin: 0;
+		
+		@media (max-width: 991px)
+		{
+			padding: 1rem 5% 2rem;
+		}
+		
+		@media (min-width: 992px)
+		{
+			min-height: 100vh;
+		}
+		
+		&:nth-of-type(odd)
+		{
+			background: #ddd;
+		}
+
+		&:nth-of-type(even)
+		{
+			background: #eee;
+		}
+
+		&:nth-of-type(odd), 
+		&:nth-of-type(even)
+		{
+			background: linear-gradient(0deg, rgba(221,221,221,1) 0%, rgba(238,238,238,1) 100%);
+		}
+
+		@media (min-width: 992px)
+		{
+			&:nth-of-type(odd)
+			{
+				img
+				{ 
+					order: 2;
+				}
+
+				figcaption
+				{
+					order: 1;
+				}
+			}
+		}
+		
+		*
+		{
+			flex-shrink: 1;
+			box-sizing: border-box;
+			
+			@media (max-width: 991px)
+			{
+				flex-basis: 100%;
+			}
+		}
+		
+		img
+		{
+			@media (max-width: 991px)
+			{
+				order: 2;
+
+				max-width: 100%;
+			}
+			
+			@media (min-width: 992px)
+			{
+				width: 60%;
+				padding: 3rem 2.5%;
+				box-sizing: border-box;
+
+				margin: 0;
+				max-height: 100%;
+				text-align: center;
+			}
+		}
+		
+		figcaption {
+			
+			@media (max-width: 991px)
+			{
+				order: 1;
+			}
+			
+			@media (min-width: 992px)
+			{
+				width: 40%;
+				padding: 3rem 5%;
+				box-sizing: border-box;
+			}
+			
+			h2
+			{
+				margin-bottom: 1em;	
+				font-size: 1.80rem;
+				font-weight: 600;
+			}
+			
+		}
+
+	}
+
+}
+
+
+
+	
+/* ======= Download page ======= */
+
+#download {
+	
+	display: flex;
+	margin: 0 auto;
+	box-sizing: border-box;
+	height: auto;
+	flex-wrap: wrap;
+	justify-content: center;
+	
+	@media (max-width: 991px)
+	{
+		width: 100%;
+	}
+	
+	@media (min-width: 992px)
+	{
+		width: 80%;
+	}
+	
+	section
+	{
+		box-sizing: content-box;
+		border: 1px solid rgba(0, 0, 0, 0.125);
+		min-width: 200px;
+		text-align: center;
+		background-color: white;
+		border-radius: 0.25rem;
+		
+		
+		h3, 
+		p
+		{
+			padding-left: 1rem;
+			padding-right: 1rem;
+		}
+		
+		h3
+		{
+			margin-top: 1rem;
+			color: black;
+		}
+
+		img
+		{
+			max-width: 100%;	
+		}
+
+		@media (max-width: 991px)
+		{
+			margin: 1em;
+			flex-basis: calc(~"33.333% - 2em - 2px");
+			flex-grow: 1;
+			max-width: 300px;
+		}
+
+		@media (min-width: 992px)
+		{
+			margin: 1em;
+			flex-basis: calc(~"33.333% - 2em - 2px");
+			flex-shrink: 1;
+			flex-grow: 0;
+		}
+	}
+
+
+}
+
+
+
+
+/* ======= Funding page ======= */
+
+article#funding {
+
+	text-align: justify;
+	
+	#supportButtonContainer, 
+	#projectStatus
+	{
+		height: 100%;
+		overflow: hidden;
+		transition-property: opacity, height;
+		transition-delay: 0s, 0.50s;
+		transition-duration: 0.49s, 0s;
+	}
+
+	#pubkey-and-copy-button
+	{
+		/*opacity: 0;
+		height: 0;*/
+		transition-property: opacity, height;
+		transition-delay: 0.51s, 0.51s;
+		transition-duration: 0.50s, 0s;
+	}
+
+	#pubkey
+	{
+		font-family: monospace;
+		padding: 8px 0;
+		border-radius: 5px;
+		border: transparent;
+		background: transparent;
+		font-size: 1rem;
+		display: block;
+		width: 100%;
+		text-align: center;
+		margin: 0.5em auto;
+	}
+
+
+	#copyButton
+	{
+	}
+
+	#successMsg
+	{
+		opacity: 0;
+		/*height: 0;*/
+		line-height: 1.5em;
+		transition-property: opacity, height;
+		transition-duration: 1.5s, 0.5s;
+	}
+
+
+	input#pubkey
+	{
+		color: black;
+
+		&::selection
+		{
+			color: black;
+			background: transparent;
+		}
+
+		&:after
+		{
+			content: "...";
+		}
+	}
+
+	/*
+	#copyButton, 
+	#supportButton
+	{
+		background: #111;
+		color: white;
+		border: 0;
+		font-weight: light;
+		height: 3rem;
+		line-height: 3rem;
+		font-size: 1rem;
+		width: 100%;
+		margin-bottom: 0.5rem;
+	}
+	*/
+
+
+	.crowdfunding-widget {
+
+		margin: auto;
+		border: white;
+		background: white;
+		background: linear-gradient(0deg, hsl(39, 85.2%, 90%) 0%, hsl(39, 85.2%, 105%) 95%);
+		padding: 1em;
+		box-shadow: -2px 2px 5px black;
+
+		@media (min-width: 1200px) {
+
+			max-width: 450px;
+		}
+
+		.progress-meter
+		{
+			width: 100%;
+			height: 0.5em;
+			background-color: red;
+		}
+
+		strong
+		{
+			display: block;	
+			font-size: 2rem;
+		}
+
+		> p:nth-of-type(3) span:first-child
+		{
+			display: none;
+		}
+
+		.progress-container {
+
+			background-color: hsl(210, 15.8%, 92.5%);
+			border: 1px solid hsl(210, 10.3%, 32.7%);
+			height: 2rem;
+			border-radius: 0;
+
+			display: -ms-flexbox;
+			display: flex;
+			overflow: hidden;
+			font-size: .75rem;
+		}
+
+		@keyframes progress-bar-stripes {
+
+			from { background-position: 1rem 0; }
+			to { background-position: 0 0; }
+		}
+
+		.progress-bar {
+
+			display: -ms-flexbox;
+			display: flex;
+			-ms-flex-direction: column;
+			flex-direction: column;
+			-ms-flex-pack: center;
+			justify-content: center;
+			color: #fff;
+			text-align: center;
+			white-space: nowrap;
+			background-color: hsl(45, 100.0%, 51.4%);
+			transition: width .6s ease;
+
+			-webkit-animation: progress-bar-stripes 1s linear infinite;
+			animation: progress-bar-stripes 1s linear infinite;
+		}
+	}
+
+	
+	.donorsList {
+
+		list-style-type: none;
+		margin: 0 auto;
+		padding: 0;
+		max-width: 500px;
+		text-align: center;
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.donorsList > li {
+
+		padding: 0.10rem 0.5rem;
+		flex-shrink: 1;
+		box-sizing: border-box;
+	}
+
+	.donorsList > li span {
+
+		border-radius: 1em;
+		padding: 0 0.25em;
+		color: white;
+	}
+
+	.donorsList > li:nth-child(5n) span{
+
+		background: hsl(194, 100%, 70%);
+		color: black;
+	}
+
+	.donorsList > li:nth-child(5n+1) span{
+
+		background: hsl(185, 62%, 53%);
+	}
+
+	.donorsList > li:nth-child(5n+2) span{
+
+		background: hsl(210, 100%, 25%);
+	}
+
+	.donorsList > li:nth-child(5n+3) span{
+
+		background: hsl(194, 100%, 80%);
+		color: hsl(233, 88%, 9%);
+	}
+
+	.donorsList > li:nth-child(5n+4) span{
+
+		background: hsl(194, 100%, 60%);
+		color: hsl(233, 88%, 9%);
+	}
+
+	.donorsList > :nth-child(1) {
+
+		width: 100%;
+	}
+
+	.donorsList > :nth-child(2),
+	.donorsList > :nth-child(3)  {
+
+		width: 50%;
+	}
+}
+
+
+
+
+/* ======= Tutorial page ======= */
+
+#tuto {
+	
+	display: flex;
+	flex-wrap: wrap;
+	font-size: 1rem;
+	
+	img
+	{
+		max-width: 100%;	
+	}
+	
+	nav
+	{
+		background: white;
+		padding: 1em 2%;
+		align-self: flex-start;
+		
+		
+		li
+		{
+			margin-top: 0.5em;
+			margin-bottom: 0.5em;
+			
+			ul {
+				
+				display: none;
+			}
+		}
+		
+		li.active {
+			
+			> a {
+				
+				font-weight: bold;
+			}
+		}
+			
+		li.current
+		{
+			> ul {
+				
+				display: block;
+			}
+		}
+		
+		
+		> ul {
+			
+			list-style: none;
+			padding-left: 0;
+			
+			> li {
+					
+				margin-top: 1em;
+				margin-bottom: 1em;
+			}
+		}
+	}
+	
+	article
+	{
+		flex-grow: 1;
+		background-color: white;
+		color: black;
+		padding: 0 1em 1.5em;
+		align-self: flex-start;
+
+		h1
+		{
+			color: black;
+			font-size: 2rem;
+			font-weight: bold;
+			padding-bottom: 1em;
+		}
+		
+		li {
+
+			margin-top: 1em;
+			margin-bottom: 1em;
+			
+			img {
+
+				margin-top: 1em;
+				margin-bottom: 1em;
+			}
+		}
+		
+		dl {
+			
+			dt {
+				
+				font-weight: bold;
+				margin-bottom: 0.5em;
+				
+			}
+			
+			dd {
+				
+				margin-bottom: 1.5em;
+				
+			}
+			
+		}
+	}
+	
+	@media (max-width: 991px) {
+		
+		> *
+		{
+			flex-basis: 100%;
+		}
+
+		nav
+		{
+			order: 2;
+		}
+
+		article
+		{
+			order: 1;
+		}
+
+
+	}
+
+	@media (min-width: 992px) {
+		
+		> *
+		{
+			margin: 2rem 1%;	
+		}
+
+		nav
+		{
+			position: sticky;
+			top: 1em;
+			flex-shrink: 0;
+			flex-grow: 1;
+			flex-basis: 25%;
+		}
+
+		article
+		{
+			position: sticky;
+			top: 1em;
+			flex-shrink: 0;
+			flex-basis: 60%;
+		}
+	}
+}
+
+
+/* ======= Legal Notice page ======= */
+
+#legal-notice {
+	
+	dt {
+		
+		font-weight: bold;
+		font-size: 1.25rem;
+	}
+}
\ No newline at end of file
diff --git a/tpl/download.php b/tpl/download.php
index b938331cac2625375d6cf9d4c091f0dcbbda4701..f2f1ad467cdbe2741b0d75047bbcb282907834ab 100644
--- a/tpl/download.php
+++ b/tpl/download.php
@@ -1,5 +1,7 @@
 <?php
 
+textdomain('download');
+
 $pageTitle = _('Télécharger et installer');
 $pageDescription = _("Site officiel de Cesium. Télécharger la dernière version pour Linux, Windows, Mac, Android et iPhone.");
 
@@ -7,8 +9,6 @@ include('cesiumDownloads.php');
 
 include('head.php');
 
-textdomain('download');
-
 ?>
 
 
diff --git a/tpl/features.php b/tpl/features.php
index 33f65747b975321b82592398124e6dd4856146a7..b392305a5c728c66b03e3dd9a0a3af39950250bc 100644
--- a/tpl/features.php
+++ b/tpl/features.php
@@ -1,12 +1,12 @@
 <?php
 
+textdomain('features');
+
 $pageTitle = _('Fonctionnalités');
 $pageDescription = _("Fonctionnalités de Cesium : gérer son comptes monnaie libre Ğ1, rechercher des membres dans l'annuaire, trouver des entreprises qui acceptent la Ğ1.");
 
 include('head.php');
 
-textdomain('features');
-
 ?>
 <article id="features">
 	
diff --git a/tpl/funding-alt-1.php b/tpl/funding-alt-1.php
index eb031a21ac0092361d01bbe08a2bc0ab043d0fe6..26dc967e4eeb0107edff5ceb54ef66bd98666d1a 100644
--- a/tpl/funding-alt-1.php
+++ b/tpl/funding-alt-1.php
@@ -1,6 +1,6 @@
 <?php
 
-$pageTitle = _("Coucou");
+$pageTitle = _("Rançon");
 $pageDescription = _("");
 $bodyIds = 'f-alt-1';
 
@@ -48,22 +48,33 @@ function formatCountryName ($country, $lang)
 ?>
 
 <article>
-	<h1><?php echo _("P4g3 h4ckÉe paR /\Xi0m_734|\/|"); ?></h1>
+	<h1><?php echo _("P4g3 h4ckÉe paR |\/|0Xi/\-|\/|437"); ?></h1>
 	
 	<section class="text-box">
-		<p>
-			Votre téléchargement de Cesium a dû avoir lieu.
-		</p>
-		<p>
-			Si ce n'est pas le cas, <a href="<?php echo $cesiumDownloads[substr($subpage, 1)]['url'];?>">cliquez ici</a>.
-		</p>
+		<?php
 		
-		<p>
-			Bon, maintenant que c'est fait, <strong>parlons sérieusement</strong> : 
-		</p>
+		
+		$target = FUNDING_TARGET * 5;
+		
+		
+		
+		if (!empty($subpage)) {
+			echo '
+			<p>
+				Votre téléchargement de Cesium a dû avoir lieu.
+			</p>
+			<p>
+				Si ce n\'est pas le cas, <a href="'. $cesiumDownloads[substr($subpage, 1)]['url'] .'">cliquez ici</a>.
+			</p>
+
+			<p>
+				Bon, maintenant que c\'est fait, <strong>parlons sérieusement</strong> : 
+			</p>';
+		}
+		?>
 		
 		<p>
-			On s'appelle Axiom-Team et on vient de hacker cette page.
+			On s'appelle Moixa-Maet et on vient de hacker cette page.
 		</p>
 		
 		<p>
@@ -89,7 +100,7 @@ function formatCountryName ($country, $lang)
 		</p>
 		
 		<p>
-			En effet, la branche armée d'Axiom-Team s'est rendue en Mayenne pour kidnapper le principal développeur de Cesium. 
+			En effet, la branche armée de Moixa-Maet a défié le confinement et s'est rendue en Mayenne pour kidnapper le principal développeur de Cesium. 
 		</p>
 		
 		<p>
@@ -97,25 +108,57 @@ function formatCountryName ($country, $lang)
 		</p>
 		
 		<p>
-			Nous ne libérerons Benoît qu'à condition que soit réunie la somme de 100,000 DU<sub>Ğ1</sub>.
+			Nous ne libérerons Benoît qu'à condition que soit réunie la somme de <?php echo $target; ?> DU<sub>Ğ1</sub>.
 		</p>
 		
 		<p>
-			Si ce montant n'est pas atteint sous 3 jours, nous noirrons  Benoît dans une baignoire remplie de monnaie-dette, et les prochaines versions de Cesium ne verront jamais la lumière du jour.
+			Si ce montant n'est pas atteint sous 3 jours, nous noierons  Benoît dans une baignoire remplie de monnaie-dette, 
+			et les prochaines versions de Cesium ne verront jamais le jour.
 		</p>
 		
 		<?php
-		$target = '100';
-		$startDate = date('d/m/Y', (time() - (30*24*3600)));
+		
+		include('inc/Crowdfunding.class.php');
+		$startDate = date('Y-m-d', (time() - (30*24*3600)));
+		
+		$cfDuniter = new Crowdfunding(FUNDING_PUBKEY, 'relative', $startDate);
+		
 		$buttonLabel = _("Payer la rançon");
-		$fontColor = '00ff00';
-		$progressColor = '00ff00';
 		
+		$totalCollected = round($cfDuniter->getAmountCollected());
+		$portionReached = round($totalCollected / $target * 100);
+		$totalDonorsNb = $cfDuniter->getDonorsNb();
 		
 		echo '
-		<iframe class="autoHeight" width="100%"
-		        src="' . $rootURL .'/lib/barre-de-financement-integrable/iframe.php?pubkey='. FUNDING_PUBKEY . '&target='. $target .'&start_date='. $startDate . '&buttonLabel='. urlencode($buttonLabel) .'&unit=relative&font_color='. $fontColor .'&progress_color='. $progressColor .'">
-		</iframe>';
+		<aside class="crowdfunding-widget">
+			<!--
+			<meter min="0" max="100" value="'. $portionReached .'" high="75" low="25" class="progress-meter">
+				'. $portionReached .'%
+			</meter>
+			-->
+			<!--
+			<div class="progress-container">
+				<div class="progress-bar" 
+					 aria-valuenow="'. max($portionReached, 100) .'"
+					 aria-valuemin="0" 
+					 aria-valuemax="100" 
+					 style="width:0%;">
+
+					<span class="sr-only">
+						'. $portionReached . '%
+					</span>
+
+				</div>
+			</div>
+			-->
+			
+			<p>
+				Pour l\'instant, seulement 
+				<strong>'. $portionReached .'%</strong>
+				<span>de la rançon demandée est payée.</span>
+			</p>
+		</aside>
+		';
 		
 		?>
 		
@@ -127,7 +170,7 @@ function formatCountryName ($country, $lang)
 
 		<div id="pubkey-and-copy-button">
 			<p class="pubkey">
-				Pour payer la rançon, copiez la clef suivante :
+				Payez la rançon. Copiez la clef suivante&nbsp;:
 
 				<input id="pubkey" type="text" value="<?php echo FUNDING_PUBKEY; ?>" size="8" />...
 			</p>
@@ -139,20 +182,50 @@ function formatCountryName ($country, $lang)
 			</p>
 
 			<div id="successMsg">
-				<p>Clef copiée dans le presse-papier ! Collez-la maintenant dans Cesium afin de payer la rançon.</p>
+				<p>Clef copiée dans le presse-papier ! Collez-la maintenant dans l'annuaire Cesium afin de payer la rançon.</p>
 				<p style="text-align: center;">Ne contactez pas la police</p>
-				<p style="text-align: right;">Axiom-Team</p>
 			</div>
 		</div>
 	
 		<footer>
 			<p>
-				PS : oui, c'est de l'humour ;-)
-			</p>
-
-			<p>
-				P-PS : le portefeuille mentionné ci-dessous sert à rémunérer les développeurs de Cesium.
+				PS : poisson 🐟 d'avril 😉
 			</p>
 		</footer>
 	</section>
-</article>
\ No newline at end of file
+</article>
+
+
+
+<script>
+function copy() {
+	
+	var copyText = document.querySelector("#pubkey");
+	copyText.select();
+	document.execCommand("copy");
+
+	var successMsg = document.querySelector("#successMsg");
+	successMsg.style.opacity = "1";
+	/*successMsg.style.height = "3em";*/
+
+	var copyButton = document.querySelector("#copyButton");
+	copyButton.style.animation = "none";
+	
+}
+
+function support() {
+	
+	var pubkeyAndCopyButton = document.querySelector("#pubkey-and-copy-button");
+	var supportButtonContainer = document.querySelector("#supportButtonContainer");
+	supportButtonContainer.style.opacity = "0";
+	supportButtonContainer.style.height = "0";
+	pubkeyAndCopyButton.style.height = "100%";
+	pubkeyAndCopyButton.style.opacity = "1";
+	
+	var supportButton = document.querySelector("#supportButton");
+	$(this).style.animation = "none";
+}
+
+document.querySelector("#copyButton").addEventListener("click", copy);
+document.querySelector("#supportButton").addEventListener("click", support);
+</script>
diff --git a/tpl/funding-orig.php b/tpl/funding-orig.php
index 113675b7a7b610448c9ef5d1725d587d521ae422..01995d3af5c7cd76f9a733e630002f1c71f1db80 100644
--- a/tpl/funding-orig.php
+++ b/tpl/funding-orig.php
@@ -1,6 +1,6 @@
 <?php
 
-$pageTitle = _("Coucou");
+$pageTitle = _("Encouragez-nous !");
 $pageDescription = _("");
 
 include('cesiumDownloads.php');
@@ -11,7 +11,7 @@ include('head.php');
 
 
 <article id="funding">
-	<h1><?php echo _("Coucou"); ?></h1>
+	<h1><?php echo _("Encouragez-nous !"); ?></h1>
 	
 	<section class="text-box">
 		<?php
@@ -33,53 +33,122 @@ include('head.php');
 		}
 		?>
 		
+		
+		<p>
+			Vous rêvez d'un système monétaire plus juste&nbsp;?
+		</p>
+		
+		<p>
+			Nous aussi.
+		</p>
+		
+		<p>
+			L'ennui ? 
+		</p>
+		
+		<p>
+			L'adoption de la Ğ1 est lente.
+		</p>
+		
+		<p>
+			Cela tient à plusieurs choses, et l'une d'entre elles, c'est que le temps que les développeurs 
+			peuvent allouer au développement est limité.
+		</p>
+		
 		<p>
-			Nous sommes Axiom-Team et nous œuvrons à la promotion de la monnaie libre Ğ1. 
+			Il n'y a malheureusement que 24 heures dans une journée :-(
 		</p>
 		
 		<p>
-			On prend la parole ici parce qu'on voulait vous informer de la chose suivante&nbsp;:
+			Mais vous avez le pouvoir de contribuer à faire du rêve que nous partageons une réalité.
 		</p>
 		
 		<p>
-			Il existe une caisse de côtisations qui permet à la communauté de valoriser (en monnaie libre) 
-			la contribution que les développeurs de Cesium apportent au développement de la Ğ1.
+			Comment&nbsp;?
 		</p>
 		
 		<p>
-			L'objectif est de réunir sur cette caisse la somme de <?php echo FUNDING_TARGET; ?> DU<sub>Ğ1</sub> sur 30 jours glissant.
+			Tout simplement en finançant les développeurs.
 		</p>
 		
 		<p>
-			Voilà où nous en sommes aujourd'hui ce mois-ci par rapport à cet objectif&nbsp;:
+			Il existe des caisses de côtisations qui permettent à la communauté Ğ1 de valoriser, en Ğ1, 
+			les contributions que les développeurs apportent à l'écosystème logiciel de la Ğ1.
+		</p>
+		
+		<p>
+			Chaque mois, une vingtaine de contributeurs se voient gratifiés de 15 DU<sub>Ğ1</sub> pour leurs travaux sur Cesium, Silkaj, Sakia, Duniter, etc...
+		</p>
+		
+		<p>
+			Ces rémunérations sont faites en toute transparence ; et vous pouvez les retrouver sur le site et le forum de Duniter, ainsi que dans la blockchain.
+		</p>
+		
+		<p>
+			Nous aimerions augmenter progressivement la rémunération des développeurs 
+			jusqu'à atteindre des montants qui permettent à quelques développeurs 
+			d'allouer à la Ğ1 davantage de leur temps.
+		</p>
+		
+		<p>
+			Ce mois-ci, nous aimerions donc atteindre la somme de <?php echo FUNDING_TARGET; ?> DU<sub>Ğ1</sub>. 
+			Voilà où nous en sommes par rapport à cet objectif&nbsp;:
 		</p>
 
 		
 		<?php
-		include('inc/Funding.class.php');
-		$startDate = date('d/m/Y', (time() - (30*24*3600)));
-		$target = 100;
-		$funding = new Funding(FUNDING_PUBKEY, $target, $startDate, 'relative');
+		include('inc/Crowdfunding.class.php');
+		$startDate = date('Y-m-d', (time() - (30*24*3600)));
+		
+		$cfDuniter = new Crowdfunding(FUNDING_PUBKEY, 'relative', $startDate);
+		
+		/*
+		$donationsList = $cfDuniter->getDonationsList();
+		$min = $cfDuniter->getMinDonation();
+		$max = $cfDuniter->getMaxDonation();
+		*/
+			
+		$totalCollected = round($cfDuniter->getAmountCollected());
+		$portionReached = round($totalCollected / FUNDING_TARGET * 100);
+		$totalDonorsNb = $cfDuniter->getDonorsNb();
+		
 		
 		echo '
 		<aside class="crowdfunding-widget">
-			<meter min="0" max="100" value="'. $funding->getPercentage() .'" high="75" low="25" class="progress-bar">
-				'. $funding->getPercentage() .'%
+			<!--
+			<meter min="0" max="100" value="'. $portionReached .'" high="75" low="25" class="progress-meter">
+				'. $portionReached .'%
 			</meter>
+			-->
+			<!--
+			<div class="progress-container">
+				<div class="progress-bar" 
+					 aria-valuenow="'. max($portionReached, 100) .'"
+					 aria-valuemin="0" 
+					 aria-valuemax="100" 
+					 style="width:0%;">
+
+					<span class="sr-only">
+						'. $portionReached . '%
+					</span>
+
+				</div>
+			</div>
+			-->
 			
 			<p>
-				<strong>'. $funding->getPercentage() .'%</strong>
+				<strong>'. $portionReached .'%</strong>
 				<span>du montant souhaité est atteint</span>
 			</p>
 
 			<p>
-				<strong>'. $funding->getAmountDonated() . ' DU<sub>Ğ1</sub></strong>
-				<span>ont déjà donnés, sur un total de '. $target .' DU<sub>Ğ1</sub></span>
+				<strong>'. $totalCollected . ' DU<sub>Ğ1</sub></strong>
+				<span>ont déjà été donnés, sur un total de '. FUNDING_TARGET .' DU<sub>Ğ1</sub></span>
 			</p>
 
 			<p>
 				<span>grâce à </span>
-				<strong>'. $funding->getDonorsNb() . '</strong>
+				<strong>'. $totalDonorsNb . '</strong>
 				<span>donateurs</span>
 			</p>
 		</aside>
@@ -89,16 +158,16 @@ include('head.php');
 		
 		
 		<p>
-			Si vous souhaitez soutenir le projet Cesium, c'est simple : 
+			Si vous souhaitez soutenir la Ğ1, c'est simple : 
 		</p>
 
 		<div id="pubkey-and-copy-button">
 			<p class="pubkey">
-				Copiez la clef suivante : 
+				Copiez la clef suivante dans votre presse-papier&nbsp;: 
 
-				<input id="pubkey" type="text" value="<?php echo FUNDING_PUBKEY; ?>" size="8" />... 
+				<input id="pubkey" type="text" value="<?php echo FUNDING_PUBKEY; ?>" />
 				
-				dans votre presse-papier en cliquant sur le bouton ci-dessous :
+				en cliquant sur le bouton ci-dessous&nbsp;:
 			</p>
 
 			<p class="CTA-button">
@@ -108,11 +177,76 @@ include('head.php');
 			</p>
 
 			<div id="successMsg">
-				<p>Et maintenant collez-la dans Cesium afin de faire votre don 😉</p>
+				<p>Et maintenant collez-la dans l'annuaire Cesium afin de faire votre don 😉</p>
 				<p style="text-align: center;">Merci pour votre générosité ❤️</p>
-				<p style="text-align: right;">Axiom-Team</p>
 			</div>
 		</div>
+		
+		<?php
+		/*
+		echo '
+		<p>
+			Nous remercions chaleureusement tous les junistes qui ont fait un don ce mois-ci&nbsp;:
+		</p>';
+		
+		
+		if (empty($donationsList)) {
+
+			echo _('Pas encore de donateurs');
+
+		} else {
+			
+			echo '<ul class="donorsList">';
+
+			foreach ($donationsList as $t) {
+
+				echo '
+
+				<li style="font-size: '.  (1 + ($t['amount'] / $max) * 2) . 'em;">
+				
+					<span>'. $t['name'] .'</span>
+					
+				</li>';
+			}
+
+			echo '</ul>';
+		}
+		*/
+		?>
 	
 	</section>
-</article>
\ No newline at end of file
+</article>
+
+
+<script>
+function copy() {
+	
+	var copyText = document.querySelector("#pubkey");
+	copyText.select();
+	document.execCommand("copy");
+
+	var successMsg = document.querySelector("#successMsg");
+	successMsg.style.opacity = "1";
+	/*successMsg.style.height = "3em";*/
+
+	var copyButton = document.querySelector("#copyButton");
+	copyButton.style.animation = "none";
+	
+}
+
+function support() {
+	
+	var pubkeyAndCopyButton = document.querySelector("#pubkey-and-copy-button");
+	var supportButtonContainer = document.querySelector("#supportButtonContainer");
+	supportButtonContainer.style.opacity = "0";
+	supportButtonContainer.style.height = "0";
+	pubkeyAndCopyButton.style.height = "100%";
+	pubkeyAndCopyButton.style.opacity = "1";
+	
+	var supportButton = document.querySelector("#supportButton");
+	$(this).style.animation = "none";
+}
+
+document.querySelector("#copyButton").addEventListener("click", copy);
+document.querySelector("#supportButton").addEventListener("click", support);
+</script>
\ No newline at end of file
diff --git a/tpl/funding.php b/tpl/funding.php
index 4408003fd335056bea486de506b2cf4d796c110b..815d7240c9ff58a22bc39802e71e6b3467dd33d4 100644
--- a/tpl/funding.php
+++ b/tpl/funding.php
@@ -14,37 +14,17 @@ if (FUNDING_ALT) {
 ?>
 
 
-<script>
-function copy() {
-	
-	var copyText = document.querySelector("#pubkey");
-	copyText.select();
-	document.execCommand("copy");
 
-	var successMsg = document.querySelector("#successMsg");
-	successMsg.style.opacity = "1";
-	/*successMsg.style.height = "3em";*/
+<script src="<?php echo $rootURL; ?>/lib/jquery-3.4.1.min.js"></script>
+<script>
+$(document).ready(function(){	
 
-	var copyButton = document.querySelector("#copyButton");
-	copyButton.style.animation = "none";
-	
-}
+	$('.progress-bar').animate({
 
-function support() {
-	
-	var pubkeyAndCopyButton = document.querySelector("#pubkey-and-copy-button");
-	var supportButtonContainer = document.querySelector("#supportButtonContainer");
-	supportButtonContainer.style.opacity = "0";
-	supportButtonContainer.style.height = "0";
-	pubkeyAndCopyButton.style.height = "100%";
-	pubkeyAndCopyButton.style.opacity = "1";
-	
-	var supportButton = document.querySelector("#supportButton");
-	$(this).style.animation = "none";
-}
+		width: '<?php echo $portionReached; ?>%'
 
-document.querySelector("#copyButton").addEventListener("click", copy);
-document.querySelector("#supportButton").addEventListener("click", support);
+	}, 1300, '');
+});
 </script>
 
 <?php
diff --git a/tpl/home.php b/tpl/home.php
index 76edefbfd649f5be37478671b120b5f2bad2d047..b38eddc2bc054092683c774b56842bffdcb70f60 100644
--- a/tpl/home.php
+++ b/tpl/home.php
@@ -1,26 +1,27 @@
 <?php
 $bodyIds = 'home';
 
+
+textdomain('home');
+
 $pageTitle = _('Cesium Ğ1 - Site officiel');
 $pageDescription = _("Cesium est l'application la plus intuitive pour gérer votre portefeuille en monnaie-libre Ğ1.");
 
 include('head.php');
 
-textdomain('home');
-
 ?>
 
-<section id="showcase">
+<header id="showcase">
 	<div>
+		<h2 id="USP">
+			<?php echo _("Recevez et envoyez <br />de la monnaie libre Ğ1"); ?>
+		</h2>
+		
 		<figure id="home-app-screenshot">
 			<img src="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . _('/accueil') . _('/Cesium-G1-maquette.png'); ?>" 
 				 alt="capture d'écran de Cesium" />
 		</figure>
 
-		<h2 id="USP">
-			<?php echo _("Recevez et envoyez <br />de la monnaie libre Ğ1"); ?>
-		</h2>
-
 		<p class="CTA-button">
 			<a href="<?php echo parseURI(_("/telechargement")); ?>">
 				<?php printf(_("Télécharger Cesium %s"), $cesiumVersions['home']); ?>
@@ -32,24 +33,26 @@ textdomain('home');
 			<?php printf(_('Logiciel libre sous licence %s'), 'GNU AGPL-3.0'); ?>
 		</p>
 
-		<aside>
+		<aside id="CTA-join-us">
 			<?php printf(_('Développeur ?')); ?>
 			<a href="<?php echo parseURI(_("/developpeurs")); ?>">
 				<?php echo _('Rejoignez-nous !'); ?>
 			</a>
 		</aside>
+		
+		<div></div>
 	</div>
-</section>
+</header>
 
 
-<section class="features-list" id="features-list-1">
+<section class="features-list">
 	<div>
 		<h2>
 			<?php echo _('Cesium : la solution simple<br />pour échanger en monnaie libre'); ?>
 		</h2>
 		
 		<dl>
-			<dt>
+			<dt class="feature-secured">
 				<?php echo _('Sécurisé'); ?>
 			</dt>
 
@@ -57,7 +60,7 @@ textdomain('home');
 				<?php echo _('Cesium signe numériquement vos transactions avant de les transmettre à la blockchain de Duniter.'); ?>
 			</dd>
 
-			<dt>
+			<dt class="feature-gratis">
 				<?php echo _('Offert'); ?>
 			</dt>
 
@@ -67,7 +70,7 @@ textdomain('home');
 							 "Cesium vous est offert sans exiger de contre-partie. "); ?>
 			</dd>
 
-			<dt>
+			<dt class="feature-libre">
 				<?php echo _('Libre'); ?>
 			</dt>
 
diff --git a/tpl/tuto.php b/tpl/tuto.php
index 8e7e582f0663ab80962c1ff898ad6d9abc062448..74b9788ad7a7256f969ac93170661db1e52c7fda 100644
--- a/tpl/tuto.php
+++ b/tpl/tuto.php
@@ -1,4 +1,7 @@
 <?php
+
+textdomain('tuto');
+
 $pageTitle = '';
 
 $tutoURL = $rootURL . '/' . LANG . dgettext('menu', $pagePermalink) . '/';
@@ -76,14 +79,35 @@ if (file_exists($tutoContentsPath . $subpage) and !is_dir($tutoContentsPath . $s
 		/* === Menu === */
 		
 		$menu = './i18n/' . LANG_FOLDER . '/contents/tuto/menu.html';
-		if (file_exists($menu))
-		{
+		
+		if (file_exists($menu)) {
+			
 			$toc = file_get_contents($menu, FILE_USE_INCLUDE_PATH);
-
-			$toc = str_replace('href="'.substr($subpage, 1) .'"', 'href="'. substr($subpage, 1) .'" class="current"', $toc);
-
-			$toc = str_replace('href="', ('href="' . $tutoURL), $toc);
-
+			
+			$pagePath = substr($subpage, 1);
+			
+			$branches = explode('/', removeTrailingSlash($pagePath), -1);
+			
+			$fullPath = '';
+			
+			foreach ($branches as $branch) {
+				
+				$fullPath .= $branch . '/';
+
+				$toc = preg_replace('#<li>(\s*<a href="'. $fullPath .'")#isU', 
+								   '<li class="current">$1', 
+								   $toc);
+			}
+			
+			$toc = preg_replace('#<li>(\s*<a href="'. $pagePath .'")#isU', 
+							   '<li class="current active">$1', 
+							   $toc);
+			
+			$toc = str_replace('href="', 
+							   ('href="' . $tutoURL), 
+							   $toc);
+			
+			
 		}
 		
 		/* === Contents === */
@@ -98,13 +122,11 @@ if (file_exists($tutoContentsPath . $subpage) and !is_dir($tutoContentsPath . $s
 
 		include('head.php');
 
-		textdomain('tuto');
-
 		?>
 
 		<section id="tuto">
 			<nav>
-				<h2>Sommaire</h2>
+				<h2><?php echo _('Sommaire'); ?></h2>
 
 				<?php echo $toc; ?>
 			</nav>