OmegaPack

By Oo Last update Jul 3, 2009 — Installed 507 times. Daily Installs: 0, 2, 1, 0, 3, 1, 3, 2, 3, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 3, 1, 0, 1, 1, 0, 0, 1, 0, 1, 2, 2, 0

There are 1 previous version of this script.

the source is over 100KB, syntax highlighting in the browser is too slow

/* 
                                               ____                               _____           _    
                                              / __ \                             |  __ \         | |   
                                             | |  | |_ __ ___   ___  __ _  __ _  | |__) |_ _  ___| | __
                                             | |  | | '_ ` _ \ / _ \/ _` |/ _` | |  ___/ _` |/ __| |/ /
                                             | |__| | | | | | |  __/ (_| | (_| | | |  | (_| | (__|   < 
                                              \____/|_| |_| |_|\___|\__, |\__,_| |_|   \__,_|\___|_|\_\
                                                                     __/ |                             
                                                                    |___/                              
 
																	VERSION 0.5.8 SSU
																	
*/
// ==UserScript==
// @name OmegaPack
// @author THSK
// @description OmegaPack v0.6.4 norme SSU pour OGame.FR
// @language FR
// @include http://*.ogame.fr/game/index.php*
// ==/UserScript==

//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ TEST SPEED
var start = new Date().getTime();
/* Résultats TOUTES OPTIONS ACTIVEES tests-speed, optimisations :
Machine témoin : Firefox 3.0.4 / Vista 32 bits / Intel Q6600 / 3GB RAM
Vue générale : 9ms
Batiments : 18ms sur planète avec tous les batiments débloqués
Ressources : 5 ms
Defense : 8 ms
Techtree ou Recherche (Ã  vide) : 2 ms

Evolutions des vitesses d'execution selon les versions [max/Ã  vide] :
0.1b1 : [76/24]
0.1b2 : [62/23] Structure du code : modules séparés selon l'URL
0.1   : [58/17] Code réécrit plus léger
0.2b1 : [48/4] Optimisation majeure par ajout de conditions supplémentaires, mise en place de variables communes globales, réécriture des boucles
0.2b2 : [37/2] Optimisation majeure par écriture de fonctions et introduction de regexp. Les temps sont divisés par deux et la longueur du code par quatre.
				Code encodé en UFT-8 pour mettre fin au problème des accents.
0.2 : [25/2] Optimisation majeure (eh oui on arrête pas le progrès) grâce à la mise en cache des objets : http://www.javascriptkit.com/javatutors/efficientjs.shtml
0.3 : [28/2] Le passage à la SSU augmente légèrement le temps d'éxécution à vide mais on constate une baisse dans certaines pages
0.5 : [18/2] Avec le retrait d'InfoCompte, on gagne 60% de temps d'éxécution, mais le reste du code a peu changé
*/ 

// @@@@@@@@@@@@@@@@@@@ UTILISATION DE LA LIBRAIRIE SSU
var thisData = {
	namespace: 'OmegaPack', // Nom simplifié. Doit être unique.
	name: "Omega Pack SSU pour OGame.fr v0.84", // Nom complet
	version: '0.6.4', // Version du script
	scriptURL: 'http://oscript.olympe-network.com/produits/omegapack/omegapack.user.js', // Lien pour installer le script
	options: showOptions, // Options
}

/*//		changelog::start
v 0.6.4
Amélioration au niveau de la transformation des Smilies en images.
v 0.6.3
Amélioration de la prévisualisation des messages : correction d'un bug et augmentation de la fréquence d'actualisation automatique (toute les demi secondes).
v 0.6.2
Correction d'un problème au niveau de la correspondance des images : les smilles ne renvoyaient pas l'image correspondance !
v 0.6.1
Optimisations et modification du décompte du nombre de caractères restants.
v 0.6.0
Mise à jour by Gollum : Corrections au niveau des smilies (les images sont incluses dans le scripts (plus de problèmes de liens morts), améliorations du gestionnaire de BBCode).
v 0.5.8
Retouche de la barre OG Ranks, ajout du pourcentage avant le prochain niveau
Possibilité de choisir un indicateur discret (*) dans les options de Ressources dynamiques
(DEBUG) La barre reste remplie une fois les 100% atteints
(DEBUG) Correction d'un bug de division par zéro sur Def Analyser
v 0.5.7
Nouvelles barres pour OG Ranks, de la couleur de votre choix
/!\ IL FAUT CHOISIR LA NOUVELLE COULEUR DANS LES OPTIONS POUR QUE LES BARRES S'AFFICHENT /!\
Bug (peut-être) corrigé pour la barre de progression de constructions
Bug corrigé page Lunes
v 0.5.6
Signature de Messages Ingame Plus conservée dans les options
Correction d'un bug CSS sur certains skins
Correction d'un bug après envoi de mail co
v 0.5.5
Affichage des ressources en état de saturation débuggé sur certains skins
v 0.5.4
Bug prévisualisation messages corrigé
Un conflit en moins avec Evaluate Tool
v 0.5.3
Ajout du temps restant avant saturation des hangars en tooltip sur la page ressources
Corrections diverses
v 0.5.1
Dégradé de Couleur des barres de hangars corrigé
Nouvelle icone pour le bbcode de Def Analyser
Nouvelle option : Déplacement ou pas de la construction en cours en haut de page
Le texte de la barre de progression de construction est centré sur la barre arrière
On cache au lieu de supprimer les cellules Nombre et Description
v 0.5
Lancement du script sur le fofo off.
Un menu d'options tout mignon
Doléances des testeurs entendues !
Encore un crash évité, en page Notes
//		changelog::end*/

var declareFun = {
	fun: ['Bip', 'addElem', 'updateStatus','doTheBlack','$', '$E','setReload','addTip'],
	proto: ['getMatch','toStr','toNum'],
	vari: ['DATA','activ','actualTime']
};
switch (unsafeWindow.ssu) {
	case undefined:
		unsafeWindow.ssu = false;
		return alert("Ce script nécessite un autre script pour fonctionner : \"Seyguai's Scripts Utilities\" disponible ici : http://seyguai.free.fr/Ogame/.\n\nSi toutefois ce script est déjà installé, veuillez le placer en première position dans la liste des autres scripts GreaseMonkey.");
	case false:
		return;
	case 'error':
		unsafeWindow.ssu = false;
		return alert("Une erreur s'est produite lors de l'éxécution de la librairie \"Seyguai's Scripts Utilities\". Désinstallez le script et renseignez-vous sur le topic du script");
}
eval(unsafeWindow.ssu.fun.evalFunctions(declareFun));
if (unsafeWindow.ssu.fun.addScript(thisData)) return;
var defaultOptions="1;1;1;1;1;1;1;255,0,0;0,255,0;200;200;1;1;1;255,0,0;0,255,0;'';1;1;1;1;0,0,0;1;0,0,0;80;1;0,255,255";
var options=GM_getValue("options",defaultOptions).split(/;/);


//Signature personnalisée pour MESSAGES INGAME PLUS
if (options[16].length>2) {var signatureperso = "\n_____________________________\n" + options[16];} else {var signatureperso = false;}

//Déclaration des variables globales :
function IMG() {
	var img = new Array();
				img.push(new Array('8o',	'8o', 		'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVzoCSKQFmOpMIsLKMkyFEMAiABT6A/zqIHBRupQDQJjkIS5AFxNFwIgxDQcPycjB+hdkMgEgnTgMZF3UxJcwn7Oo0Aywizp4gFbw5IABBo+vgFNQAMVQ5sCQcGNCUJCo4KJgdjSDcGB5cAQWRlJABHn24SIQA7'));
				img.push(new Array(':tongue:',		':tongue:', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAPAA8AQAVtYCSKQFmOpAIsLKMkyFEAAhABD/48zqIggNkoWCgQBgOB0jaEPCCOhgthYAIaDidU+jMQajcEImEqJcGoWzk9BERdZCbJaXKYZDa3cwf1xQo1AAxYDm8vBwZJJQkqZWVLNwYHkyZnaCQ0SktyIQA7'));
				img.push(new Array(':evil:',		':evil:', 		'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVzoCSKQFmOpMIsLKMkyFEMAiABT/k8zqKUBRupQCQMSoIaCgB5QBwNF8IgBDQcEFPDZCAoAQhEYpw4HAFK1M0kVK+hrsRpxHxEnD1FLHjD5pg9JTI1AAxXDnAvBwY0JQkKkJAwZmhfBgeYBkRIaSSVSYQjIQA7'));
				img.push(new Array(':baby:',		':baby:', 		'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///5ums6SuuqOtuamyvay1wKu0v4uYp5Whrp6ptZ2otK+4wrC5w7nByre/yHeHmLK7xLzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABMALAAAAAAPAA8AAAVw4CSKQFmO6FRGAFMMJwo4jwM0wKsA4/xINYDhRVjwVL+HMjIcFHmACK3kYJaKiFJDumowSgpBtrWNRLxERWJcYBgMputiXRoUCoCDXg9YZ1UDMAcQhAcACH8qCgR5e4aIRyoLRnGQKSWImTEpKnEpIQA7'));
				img.push(new Array(':rolleyes:',	':rolleyes:', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAPAA8AQAVrYCSKQFmOpMIsJaMkZTEIQAQ8JuDkRU0WQMJgJqChAJAHxNFwIQw+QAOp3DmhRgACkegmDgNA0XfMocpMF4xsS5aWLMChZ9vhkID4QdyaOqwAXwAzJQkKh4cJCGBENQAGB3s5RUYjJZRjZCEAOw=='));
				img.push(new Array(';)',	';\\)', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVxoCSKQFmOpMIsLKMkyFEMAiABD/7kSynbpIKQMKAJaigA5AFxNFwIAxDQcCybT0WUgAQgEICE+DAAHIFJExp1AzhdidNI+YgwHQvt72bNlfA+BTUADFUOby8HBjQlCQoACpEwZGZdBgcHapVIc5tnaCEAOw=='));
				img.push(new Array(':P',	':P', 		'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzG5/kTlCS////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAPAA8AQAVzICWKQFmOpMIAy8IoCXIAgwBQwBOVj7OUh8KNVCiaBMghCfKAOBovhGEIaDiYTqhCSrDhEIgEQDKR0JIokkmZLj1fYjaAGWn6tsEb4PooOX8AQTYADFYObzAHBjUlCQoKayY1XgAGBzMSmQBIXiMlnElKIQA7'));
				img.push(new Array(':))',	':\\)\\)', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVzoCSKQFmOpMIAy8IoCXIAgwBIwBM9ubMAssKNVCgSBjWBDQWAPCCOxgthGAIaDicguqISlkAEIEE+DADKIdOkRuG2Uthp1NQ1fcCDEJd98KA/QTYADFgOVy8ABwY1JQkKAAqSMWZoYAYHM2xKS3SWnHMSIQA7'));
				img.push(new Array(':)',	':\\)', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVxoCSKQFmOpMIsLKMkyFEMAiABT1Q+zlLKNlJhSBjQBDUUAPKAOBouhCEIaDiYTqhCSkgCEAhAYnwYAJBBpSmNugGersRptMw1e1vg7fooOX0AMjUADFYOcC8HBjQlCQoACpEwZWdeBgcHa5VJdJtoaSEAOw=='));
				img.push(new Array('X(',	'X\\(', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVxoCSKQFmOpMIsi1kexSAAEvBE5QO0AEyThSBhIBPMUACIztFgABCGH6DhUEKYDAWUcHwCEuDEgQg4omqu86iEVSROa2VkCdD6alVd0sGDzQAMVA5tYgYyJQkKCnVuCAcARTQABgeVBkFFZiRlRkZwEiEAOw=='));
				img.push(new Array(':O',	':O', 		'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVtoCSKQFmOpMIsi1kexSAAEvDYtwMoCFDQpIKQMJAJZigA5AFxNBg8AxDQcCybzygBCUAgEoBE4gAwApMuFNoJBZ9rywjTseDBaADrTUl/FWYADFUOOiVjBjKGCosuZWY1BgeSJkZIIyVHmSciIQA7'));
				img.push(new Array('?(',	'\\?\\(', 	'data:image/gif;base64,R0lGODlhDwAWAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8IycpJSkrJyktJystKSsvKy0vKy0xKy8xLS8xMTExLS8zLzEzP/78EwoHEwcKChMHBxMKCgcTBwoTGxYIKB8WOioaFQwEFw4KCAgEEggEHAgEJggEMAgEOggECAgSEggSHAgSJggSMAgSOggSCAggEgggHAggJgggMAggOgggCAguEgguHAguJgguMAguOgguCAg8Egg8HAg8Jgg8MAg8Ogg8HxMMIxUOCBIEEhIEHBIEJhIEMBIEOhIECBISEhISHBISJhISMBISOhISCBIgEhIgHBIgJhIgMBIgOhIgCBIuEhIuHBIuJhIuMBIuOhIuCBI8EhI8HBI8JhI8MBI8OhI8JhcQKhkTCBwEEhwEHBwEJhwEMBwEOhwECBwSEhwSHBwSJhwSMBwSOhwSCBwgEhwgHBwgJhwgMBwgOhwgCBwuEhwuHBwuJhwuMBwuOhwuCBw8Ehw8HBw8Jhw8MBw8Ohw8LB0YLyIaCCYEEiYEHCYEJiYEMCYEOiYECCYSEiYSHCYSJiYSMCYSOiYSCCYgEiYgHCYgJiYgMCYgOiYgCCYuEiYuHCYuJiYuMCYuOiYuCCY8EiY8HCY8JiY8MCY8OiY8MiQbNCgdCDAEEjAEHDAEJjAEMDAEOjAECDASEjASHDASJjASMDASOjASCDAgEjAgHDAgJjAgMDAgOjAgCDAuEjAuHDAuJjAuMDAuOjAuCDA8EjA8HDA8KbK8MDA8OjA8NiogOCwkCDoEEjoEHDoEJjoEMDoEOjoECDoSEjoSHDoSJjoSMDoSOjoSCDogEjogHDogJjogMDogOjogCDouEjouHDouJjouMDcwOjouCDo8Ejo8HDo8Jjo8MDo8Ojo8OjAnPDUuAA4AABgAACgAADQANDQAKCgAGBgADg4ADgAAGAAAKAAANAAANAA0KAAoGAAYDgAOAAAOAAAYAAAoAAA0P/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAEAAPoALAAAAAAPABYABwifAPXpmyBQIMGCBwcqVHiQYMKFBgtCfEhRosWLEisixMgRI4CPHzl+lCAhwgMHISUCqEChAkmTDhoAKLiyZUsJEE7GnKkPQMuPFHB+3NlTAsuPLiEMbaBgpNGbJU82YNAUQASSWGHGXFD1QQQIYLVurerggVmzDtIu4Nq0Z1qUIAGw5QmgAcqYDRosAKCgrcC6eRms7euXJl/CVUXGtRgQADs='));
				img.push(new Array('8-)',	'8-\\)', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVqoCSKQFmOpMIsLKMkyFEMAiABT1Q+zlLKNlJhSBjQBDUUAPKAOBouhCEIaDhM2BIhCUAgAInwYQBABpVYFPrpSpxGy1yzp4gVbNnSNQ9gWEtQCiUGNCUJCoiIMGNHeAYHB1lISXBlkzVnIQA7'));
				img.push(new Array(';(',	';\\(', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVtoCSKQFmOpMIsrIkcwSAAEvBE5eMs5VHQpILQJCgCSZAHxNFgKBAGIKDhSC6bTwNhVkMgEqaSjIuqhcujEtMJPtaSEeXu6aMBqjb54gkozAAMVA5rCgkwMiUJCothAANjdgYHB41FZCQAlkZHIQA7'));
				img.push(new Array(':D',			':D', 			'data:image/gif;base64,R0lGODlhDwAPALMAAAAAAP///4uYp52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByv///yH5BAEAAA8ALAAAAAAPAA8AQARa8EkJap0UgRA294AAPEBTmgyAGMAwUoNrhSIGOI3DLMpKvIDFbFipAVgdTjL0ss0wzl3vcJncTDdGolJwkRi4Rk676ooACpASdKZ+1h8joVBZ05okmmBffUQAADs='));
				img.push(new Array(':]',	':\\]', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByrzEzP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAAAPAA8AQAVzoCSKQFmOpMIAy8IoCXIAgwBIwGM+zmIWN1JhSBjUBDYUAPKAOBovhCEIaDiYTqhCSkgCEIiEOHEwIoNKExqFAzxfidNo+Yg0e9sDEHd9+J0LeQU2AAwNbm8wMzUlCQoKaiZHNwAGB5cGQ0dJcwBIn3ISIQA7'));
				img.push(new Array(':(',	':\\(', 	'data:image/gif;base64,R0lGODlhDwAPAMQAAAAAAP///4uYp5Whrpums52otJ6ptaOtuaSuuqSuuqmyvay1wK+4wrC5w7K7xLe/yLnByv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAPAA8AQAV0YCSKQFmOpMIsLKMkyFEMAhABD/48zqIggIKNVCgSBjRBDQWA5BwNBgBhGAIaDkgJKgUYCMspMEE+DADKIdOkRt0A3Ndp1Mw9ID0FQGaDO0t4CyUyNQAMWA5xCQcGNCUJCpFsAEhpNwYHmQZFSUt0aEppaiEAOw=='));
	return img;
} img = IMG();
var selectnode = document.getElementsByTagName('select');
var tdnode = document.getElementsByTagName('td');
var downimg64 = 'data:image/gif;base64,R0lGODlhEAAQAPcAAAAAADA8ESdsJyhsKHWRCXmTCXi3BHvEAoekB4mtBoPJAonNAozMHJPTAZjWAZ3ZAZrVGqPdAafgAaviAbHmALXoALvsAJnMRMTxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAibAP8JHEiwoMEBCBMaFDiAgYIDEA8oYDCg4IALCzIaMJBxwYWKAyE0cOCgQYAAI0tCGCjAwYMIERycdADzgQMBDCdYIJBgwskJCQhYmAByQAUMBAJQOLmUAIYKRS1gKBAAwUmrBTBYKHoUw8mvATA8BdkyggQJYM/GxClQ5AObM982WDnw4oIGHe96BFnXocSHE/laTIhwoWGDAQEAOw==';
var upimg64 = 'data:image/gif;base64,R0lGODlhEAAQAPcAAAAAADA8ESdsJyhsKHWRCXmTCXi3BHvEAoekB4mtBoPJAonNAozMHJPTAZjWAZ3ZAZrVGqPdAafgAaviAbHmALXoALvsAJnMRMTxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAicAP8JHEiwoMEBCBMaFDiAgYIDCh4qYDCg4IALCxos2JhxwYWKAyE0ePDAQYAADkg2gDBQgIMIEiScPBkzggMBDCtgwDBz5s4KIAdYwFAgAIKTRwtgsBBUJ4EAFE5GJYABKMMJFggkmHByQgICFiaAdPkggs2TLyOUxClQpAMHDU42eLuS4EWOBgxw/GjR4YG/ECku/JdQ4eDDAwMCADs=';
var Barre_Outils = {
	0 : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAZlBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////39/fu7u7l5eXf39/W1tbMzMzFxcW9vb21tbWtra2lpaWZmZmKioqCgoJ8fHx1dXVfX19VVVUcHBwQEBAAAABvQ4WDAAAADHRSTlMAESIzRFVmd4iZqrtX7NUEAAAArUlEQVR42r2N1xLCIBREQ7EQDeHSbhTb/v9PiiWOo7zqeVlmlwNd9wuUwbo5mMlCNnqN7baYxtDzMLQUjcFa21B6tmPlS5GwwTk3finm4E47InIfiry4gLMPng7mQ/DeUYgxENRbvwLVLqaK3+PtPlI4olJyTnTE4tkv4EKOe2xKYuZEGa8hMueCvmSeJs4TxGMQ/e0ZaP1IYDkPUimtpKipK/U0fy7uzClE9yeupf0NogIgYBEAAAAASUVORK5CYII=',
	1 : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAY1BMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/fu7u7n5+fe3t7S0tLMzMzDw8O+vr61tbWvr6+kpKSZmZmQkJB6enpjY2NXV1dTU1M6OjooKCggICAREREAAACW3aPzAAAAC3RSTlMAESIzRGZ3iJmquwleEKwAAACXSURBVHjavdDNEoIwDEZR2iLyl5Q2FKtS+N7/KWXcCNKt3kUWOTOdToriV1WosvsajNy+RNdBZSCFrs/B5el7ykC5SiTOQDMR2J7hGgkz+xOY1TKzlRMkITc4N36BTpES8JDpCDVkuLctotwON9ELWT/MIDd62d/ELC4EmbHNMezfUg22mvdEtQdltrQ2pjT6+Cv1qfhfL51MCnr+Fs5lAAAAAElFTkSuQmCC',
	2 : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAaVBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4+Pjv7+/n5+ff39/W1tbMzMzFxcW8vLy1tbWtra2mpqacnJyRkZGFhYV/f39mZmZSUlJDQ0MzMzMREREAAAAvziwyAAAADXRSTlMAESIzRFVmd4iZqrvukooIPgAAALRJREFUeNq1ks0OgyAQhIvgfxV2EapWq533f8jqRdGa3vpdCDPJTHbhdvsLOfJLPR2rKb7QBXzlywtDzVTXiL6Nomt17bOLJEar6S7ORvKy2WT0fK4Xkx8BNn46GRLGaE1E71N9PhATM1OfHvQYbsBCxw5hfYqHRalUCcsj5G4sd2sQJWDXUI9wG85ZiBiN980zMLI1vxCiWE+oYN9Hii1JmwM4JAVs7yWklGonCoYXIb8/wAedIxFhLBiSZwAAAABJRU5ErkJggg==',
	3 : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAhFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4+Pjw8PDm5ube3t7X19fMzMzFxcW8vLy1tbWtra2np6ecnJyUlJSEhIR+fn5zc3NsbGxmZmZXV1dNTU1AQEA5OTkzMzMpKSkVFRUQEBAGBgYAAACU9KEpAAAAD3RSTlMAESIzRFVmd4iZqrvM3e5GKvWZAAABA0lEQVR42m2SyXaDMAxFEYTUAzGekBkDNCSh8f//X326SAz0Lby4z9Z5kpwkO50JyZKjqB8RJ57vOfGmLEtT8z0XSkojpXzkuzqBLyKc2yfgjVQLzy+osIA4z7dSSzOzl1ITiQ066D5c9lJrn22Ma+e0fiqtV/bhOSFUoDGd1mblKbzz3IZBWGNra23EiVdKt5Wxz2mafcSFNnZobLVyxugpqqMt3lvEZmRZmgK8+9IVPnp0A44UIO6rcvdi7h7OzWQzodG14sw91s7HmwA6BsJf1jU/DDYruzc19ibwT84/pcW1rbE+8AS+imXob37Pg5PRi2CnAw9OmmUpwD9/I4Ej/gXM/BUaFq6wmQAAAABJRU5ErkJggg==',
	4 : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEX///////8AAACO9MPsAAAAAXRSTlMAQObYZgAAADJJREFUeNpjYMAGmFYBQQMDYygQOCCLNgApRjQxLCoZuBaAKdYAQmYyrFoFpkJDGfACAF7JE/ynhvUaAAAAAElFTkSuQmCC',
}
var SA = '<img src="'+img[14][0]+'" alt="" onclick="addSmiley(\':D\');"> <img src="'+img[1][2]+'" alt="" onclick="addSmiley(\':tongue:\');"> <img src="'+img[2][2]+'" alt="" onclick="addSmiley(\':evil:\');"> <img src="'+img[3][2]+'" alt="" onclick="addSmiley(\':baby:\');"> <img src="'+img[4][2]+'" alt="" onclick="addSmiley(\':rolleyes:\');"> <img src="'+img[5][2]+'" alt="" onclick="addSmiley(\';)\');"> <img src="'+img[6][2]+'" alt="" onclick="addSmiley(\':P\');"> <img src="'+img[7][2]+'" alt="" onclick="addSmiley(\':))\');"> <img src="'+img[8][2]+'" alt="" onclick="addSmiley(\':)\');"> <img src="'+img[9][2]+'" alt="" onclick="addSmiley(\'X(\');"> <img src="'+img[10][2]+'" alt="" onclick="addSmiley(\':O\');"> <img src="'+img[11][2]+'" alt="" onclick="addSmiley(\'?(\');"> <img src="'+img[12][2]+'" alt="" onclick="addSmiley(\'8-)\');"> <img src="'+img[13][2]+'" alt="" onclick="addSmiley(\';(\');"> <img src="'+img[0][2]+'" alt="" onclick="addSmiley(\'8o\');"> <img src="'+img[15][2]+'" alt="" onclick="addSmiley(\':]\');"> <img src="'+img[16][2]+'" alt="" onclick="addSmiley(\':(\');"></span>';
var Code = "<select onchange='addBBCode(\"font\",this.value); this.getElementsByTagName(\"option\")[0].selected = \"true\";'><option value='0'>POLICES</option><option value='arial'>Arial</option><option value='comic sans ms'>Comic Sans MS</option><option value='courier new'>Courier New</option><option value='tahoma'>Tahoma</option><option value='times new roman'>Times New Roman</option><option value='verdana'>Verdana</option></select> <select onchange='addBBCode(\"size\",this.value); this.getElementsByTagName(\"option\")[0].selected = \"true\";'><option value='0'>TAILLE</option><option value='7'>tiny</option><option value='10'>small</option><option value='12'>normal</option><option value='16'>big</option><option value='20'>huge</option></select> <select onchange='addBBCode(\"color\",this.value); this.getElementsByTagName(\"option\")[0].selected = \"true\";'><option value='0'>COULEUR</option><option value='black'>black</option><option value='silver'>silver</option><option value='gray'>gray</option><option value='maroon'>maroon</option><option value='#A52A2A'>brown</option><option value='red'>red</option><option value='orange'>orange</option><option value='yellow'>yellow</option><option value='lime'>lime</option><option value='green'>green</option><option value='olive'>olive</option><option value='teal>teal</option><option value='aqua'>aqua</option><option value='blue'>blue</option><option value='navy'>navy</option><option value='purple'>purple</option><option value='fuchsia'>fuchsia</option><option value='#FFC0CB'>pink</option><option value='white'>white</option></select> <img onclick='addBBCode(\"b\",\"\");' src='"+Barre_Outils[0]+"' alt='Gras' title='Gras'/> <img onclick='addBBCode(\"i\",\"\");' src='"+Barre_Outils[1]+"' alt='Italique' title='Italique'/> <img onclick='addBBCode(\"u\",\"\");' src='"+Barre_Outils[2]+"' alt='Souligner' title='Souligner'/> <img onclick='addBBCode(\"center\",\"\");' src='"+Barre_Outils[4]+"' alt='Centrer' title='Centrer'/> <img onclick='addBBCode(\"url\",\"\");' src='"+Barre_Outils[3]+"' alt='Ajouter un lien' title='Ajouter un lien'/>";
	
//AJOUTS DE TAGS EN OBJETS	
// Recopier la ligne tags.push en ajoutant ou retirant les tags comme vous le souhaitez	
var tags = new Array();	
   tags.push("[ALLIANCE]");
   tags.push("[COMMERCE]");
   tags.push("[RAID]");
   tags.push("[ESPIONNAGE]");
   tags.push("[RECRUTEMENT]");

//Récupération des données globales
var url=window.location.href;
var find = url.indexOf("http://uni",0);
if (find >= 0 )
{	numuni = url.substring(find+10,url.indexOf(".ogame.",find+10)); }
var speedcoef=DATA.other.coefprod; 
var AG=DATA.other.groupAttack;
var commandant=DATA.other.commandant;

var thisplanet = eval('DATA.'+activ.tag);
var position = thisplanet.posi;	
var lune = (activ.type=="moon")? true : false ;
// Données globales enregistrées : URL, Univers, Coefficient de vitesse de l'univers, Mode Attaque Groupée de l'univers, Mode Commandant

//Déclaration des fonctions globales
function max(array) {
	var maxi = 1;
	var len = array.length;
	for (var i = 1; i < len; i++) if (array[i] > array[maxi-1]) maxi = (i+1);
	return maxi;
}

function addEvent(obj, type, fn){ // Observateur d'évènements
  if (obj.addEventListener){
    obj.addEventListener(type, function(event){        
      return fn.call(obj,event);
    }, false );
  }else if (obj.attachEvent){
    obj.attachEvent("on"+type, function(e){
      if (!e) var e = window.event;   
      return fn.call(obj, e);
    });
  }
}

function showOptions () {
	var ftp="http://medievalog.ifrance.com/Omegapack/";	
	var content = doTheBlack(thisData.namespace, true);
	var overlay = document.getElementById('ssu_black_overlay_OmegaPack');	
	function colorselect(name,opt){ return '<select name="'+name+'"><option id="customcolor" value='+opt+' onclick="customcolor(this)" style=\'color:white\' selected="selected">Personnalisé</option><option value=\'0,0,0\' style=\'color:black\' '+(opt=="0,0,0"?'selected="selected"':'')+'>black</option><option value=\'192,192,192\' style=\'color:silver\' '+(opt=="192,192,192"?'selected="selected"':'')+'>silver</option><option value=\'128,128,128\' style=\'color:gray\' '+(opt=="128,128,128"?'selected="selected"':'')+'>gray</option><option value=\'128,0,0\' style=\'color:maroon\' '+(opt=="128,0,0"?'selected="selected"':'')+'>maroon</option><option value=\'165,42,42\' style=\'color:brown\' '+(opt=="165,42,42"?'selected="selected"':'')+'>brown</option><option value=\'255,0,0\' style=\'color:red\' '+(opt=="255,0,0"?'selected="selected"':'')+'>red</option><option value=\'255,165,0\' style=\'color:orange\' '+(opt=="255,165,0"?'selected="selected"':'')+'>orange</option><option value=\'255,255,0\' style=\'color:yellow\' '+(opt=="255,255,0"?'selected="selected"':'')+'>yellow</option><option value=\'0,255,0\' style=\'color:lime\' '+(opt=="0,255,0"?'selected="selected"':'')+'>lime</option><option value=\'0,128,0\' style=\'color:green\' '+(opt=="0,128,0"?'selected="selected"':'')+'>green</option><option value=\'128,128,0\' style=\'color:olive\' '+(opt=="128,128,0"?'selected="selected"':'')+'>olive</option><option value=\'0,128,128\' style=\'color:teal\' '+(opt=="0,128,128"?'selected="selected"':'')+'>teal</option><option value=\'0,255,255\' style=\'color:aqua\' '+(opt=="0,255,255"?'selected="selected"':'')+'>aqua</option><option value=\'0,0,255\' style=\'color:blue\' '+(opt=="0,0,255"?'selected="selected"':'')+'>blue</option><option value=\'0,0,128\' style=\'color:navy\' '+(opt=="0,0,128"?'selected="selected"':'')+'>navy</option><option value=\'128,0,128\' style=\'color:purple\' '+(opt=="128,0,128"?'selected="selected"':'')+'>purple</option><option value=\'255,0,255\' style=\'color:fuchsia\' '+(opt=="255,0,255"?'selected="selected"':'')+'>fuchsia</option><option value=\'255,192,203\' style=\'color:pink\' '+(opt=="255,192,203"?'selected="selected"':'')+'>pink</option><option value=\'255,255,255\' style=\'color:white\' '+(opt=="255,255,255"?'selected="selected"':'')+'>white</option></select>'; }
	unsafeWindow.refresh = function refresh(){	overlay.parentNode.removeChild(overlay); showOptions();}
	
	function ongswitch(num){
		for(var i=1;i<=7;i++){
		if (i==num){ eval("options"+i+".setAttribute('style','display:block');");}
		else { eval("options"+i+".setAttribute('style','display:none');");}}}
	function reset(){
	if (confirm("Toutes vos préférences et options personnalisées seront effacées, pour être remises à leur valeur après l'installation de Omega Pack")){
	GM_setValue("options",defaultOptions);
	var options=defaultOptions.split(/;/);
	alert("Options réinitialisées avec succès");
	unsafeWindow.refresh();
	}}
	
	unsafeWindow.customcolor=function customcolor(thisoption){ 
			var rgb=prompt("Entrez le code RGB (Rouge-Vert-Bleu) de votre couleur personnalisée\n(exemple : 50,120,255)\nSi vous n'êtes pas sûr que le code RGB est correct, je vous recommande de choisir parmi les couleurs présélectionnées.");
			thisoption.setAttribute("value",rgb);
			thisoption.setAttribute("style","background-color:rgb("+rgb+");"); }
		content.addElem('img', {src:ftp+"logo.gif",align:'center'});
		var table = content.addElem('table',{style:'width:391px; text-align:center;'});
			var tr = table.addElem('tr');
				var ong_general = tr.addElem("input",{value:'Général',type:'button'}).$E({click: function () { ongswitch(1); }});
				var ong_progress = tr.addElem("input",{value:'Barres de progression',type:'button'}).$E({click: function () { ongswitch(2)}});
				var ong_stocks = tr.addElem("input",{value:'Ressources dynamiques',type:'button'}).$E({click: function () { ongswitch(3)}});
				var ong_ressources = tr.addElem("input",{value:'Page Ressources',type:'button'}).$E({click: function () { ongswitch(4)}});
				var ong_mig = tr.addElem("input",{value:'Messages Ingame +',type:'button'}).$E({click: function () { ongswitch(5)}});
				var ong_ranks = tr.addElem("input",{value:'OGame Ranks',type:'button'}).$E({click: function () { ongswitch(6)}});
				var ong_omegapack = tr.addElem("input",{value:'À propos',type:'button'}).$E({click: function () { ongswitch(7)}});
				var optionstab = content.addElem('div',{style:'width:500px; font-size:10; margin-top:20px; margin-left: auto; margin-right: auto;'});
				var options1 = optionstab.addElem('table',{style : 'display:block'});
				var options2 = optionstab.addElem('table',{style : 'display:none'});
				var options3 = optionstab.addElem('table',{style : 'display:none'});
				var options4 = optionstab.addElem('table',{style : 'display:none'});
				var options5 = optionstab.addElem('table',{style : 'display:none'});
				var options6 = optionstab.addElem('table',{style : 'display:none'});
				var options7 = optionstab.addElem('table',{style : 'display:none'});
				options1.addElem('tr',{},'<input type="checkbox" name="opt1" '+(options[0]>0?'checked':'')+'/> Utiliser barres de progression Constructions/Recherches');
				options1.addElem('tr',{},'<input type="checkbox" name="opt2" '+(options[1]>0?'checked':'')+'/> Utiliser stocks de ressources dynamiques');
				options1.addElem('tr',{},'<input type="checkbox" name="opt3" '+(options[2]>0?'checked':'')+'/> Utiliser Page Ressources améliorée');
				options1.addElem('tr',{},'<input type="checkbox" name="opt4" '+(options[3]>0?'checked':'')+'/> Utiliser Def Analyser');
				options1.addElem('tr',{},'<input type="checkbox" name="opt5" '+(options[4]>0?'checked':'')+'/> Utiliser Messages Ingame Plus');
				options1.addElem('tr',{},'<input type="checkbox" name="opt6" '+(options[5]>0?'checked':'')+'/> Utiliser OG Masteries and Ranks (grades de joueur)');
				options1.addElem('tr',{},'<input type="checkbox" name="opt23" '+(options[22]>0?'checked':'')+'/> Afficher des infos sur les niveaux supérieurs de bâtiments');
				options2.addElem('tr',{},'<input type="checkbox" name="opt7" '+(options[6]>0?'checked':'')+'/> Coins de la barre arrondis');
				options2.addElem('tr',{},'Dégradé de couleur : De '+colorselect("opt8",options[7])+' à '+colorselect("opt9",options[8]));
				options2.addElem('tr',{},'Rafraichissement de la barre tous les <input type="text" size="5" name="opt10" value='+options[9]+'> ms <br>(de préférence plus de 100 pour éviter tout lag)');
				options2.addElem('tr',{},'<input type="checkbox" name="opt26" '+(options[25]>0?'checked':'')+'/> Déplacer en haut de page la construction en cours');
				options3.addElem('tr',{},'Rafraichissement des stocks tous les <input type="text" size="5" name="opt11" value='+options[10]+'> ms <br>(de préférence plus de 100 pour éviter tout lag)');
				options3.addElem('tr',{},'Indicateurs si production < 100% : <select name="opt12"><option value=0>Pas d\'indicateurs</option><option value=1 '+(options[11]==1?'selected':'')+'>Affichage discret (*)</option><option value=2 '+(options[11]==2?'selected':'')+'>Afficher pourcentage de production</option></select>');
				options4.addElem('tr',{},'<input type="checkbox" name="opt13" '+(options[12]>0?'checked':'')+'/> Coefficient de production en barre graphique');
				options4.addElem('tr',{},'<input type="checkbox" name="opt14" '+(options[13]>0?'checked':'')+'/> Barres graphiques d\'occupation des hangars');
				options4.addElem('tr',{},'Dégradé de couleur : De '+colorselect("opt15",options[14])+' à '+colorselect("opt16",options[15]));
				options5.addElem('tr',{},'Signature en fin de tout message : <textarea name="opt17">'+options[16]+'</textarea><br>(laissez vide si vous n\'en voulez pas)');
				options5.addElem('tr',{},'<input type="checkbox" name="opt18" '+(options[17]>0?'checked':'')+'/> Changement rapide de destinataire (Alliance/Amis)');
				options5.addElem('tr',{},'<input type="checkbox" name="opt19" '+(options[18]>0?'checked':'')+'/> Activer les smileys');
				options5.addElem('tr',{},'<input type="checkbox" name="opt20" '+(options[19]>0?'checked':'')+'/> Activer la barre d\'édition BBCode');
				options5.addElem('tr',{},'Couleur de fond de la prévisualisation : '+colorselect("opt24",options[23]));
				options5.addElem('tr',{},'Opacité de la prévisualisation : <input type="text" size="3" name="opt25" value='+options[24]+'> %');
				options6.addElem('tr',{},'Couleur de la barre de progression jusqu\'au niveau supérieur : '+colorselect("opt27",options[26]));
				options6.addElem('tr',{},'<input type="checkbox" name="opt21" '+(options[20]>0?'checked':'')+'/> Couleur de stratégie attribuée au tableau');
				options6.addElem('tr',{},'Si non coché au-dessus, choisissez la couleur de fond du tableau : '+colorselect("opt22",options[21]));
				options7.addElem('tr',{},'Pack réalisé par THSK<br><br>OmegaPack regroupe des scripts OGame provenant de différents auteurs. Ces scripts vous sont fournis gratuitement, nous ne touchons aucun bénéfice du travail effectué.<br><br><u>Remerciements à :</u><br>- Seyguai pour avoir mis au point la librairie SSU qui facilite l\'utilisation et l\'écriture de scripts ogame<br>- Sagawa pour l\'idée et la mise au point de barres de progression pour les constructions<br>- henri102 pour l\'idée et la mise au point de stocks dynamiques<br>- Almost Illegal pour gérer la section Logiciels et Tableurs du forum officiel et toujours répondre aux questions des scripteurs');
		var savebutton = addElem(content,'input',{type:'button',class:'coolbutton',style:'font-size:18px; margin:auto; margin-top:25px;', value:'Enregistrer les modifications'}).$E({click: function () { for(var i=0;i<27;i++){	var thisoption=document.getElementsByName("opt"+(i+1))[0]; options[i]=thisoption.value; if (options[i]=="on"){options[i]=(thisoption.checked?1:0);}	}	GM_setValue("options",options.join(";")); savebutton.setAttribute("value",'Modifications enregistrées !'); window.setTimeout("refresh()",1200);} });
		content.addElem('br');
		addElem(content,"input",{style:' font-size:13px; margin:auto; margin-top: 10px;',class:'coolbutton',value:'Remettre toutes les options à leur valeur par défaut',type:'button'}).$E({click: function() {reset()}});
		GM_addStyle("tr{font-family:Verdana,Tahoma,Arial; font-size:11px;} .coolbutton{background-color:black; border: solid 3px; border-color:white; -moz-border-radius:10px;}");
		setReload(thisData.namespace, true);
}

function IsIn(object,element) {
	object=object || {};
	for(var elm in object){
	if (object[elm]==element) {return true;}}
	return false;
}

function format(x,arrondi) {
	if (!arrondi){arrondi=0;}
	if (x!="?"){
	if (x==0) {return x;} else {
	var decimales = Math.floor(x*Math.pow(10,arrondi))/Math.pow(10,arrondi)-Math.floor(x);
	if (decimales==0){decimales="";}
	x=Math.floor(x);
	if (x<0) { return "-"+format(-x);}
	var str = x.toString(), n = str.length;
	if (n <4) {return x+decimales;} 
	else {return ((n % 3) ? str.substr(0,n % 3) + '.' : '') + str.substr(n % 3).match(new RegExp('[0-9]{3}', 'g')).join('.') + decimales;
	}}}
	else{return "?";}
}

function progress(a,b,c,coefa,coefb,coefc,roundcorner) { // Fonction d'actualisation et d'affichage de la barre de progression de construction/recherche
			var pro = Math.min((totalTime-time)*100/totalTime,100);
			var r=Math.floor(0.8*(a+coefa*pro)),v=Math.floor(0.8*(b+coefb*pro)),b=Math.floor(0.8*(c+coefc*pro));
			divIn.innerHTML = '<span style="position:absolute; left:50%;">&nbsp;'+format(pro,2).toString()+'%</span>'; // Ecriture du pourcentage sur la barre
			divIn.style.cssText = 'width:'+pro+'%; height:13px;'+
                             'font-size:10px; font-weight:700;'+
			    			 'line-height:13px;'+
			   				  (roundcorner ? '-moz-border-radius:15px;' : '')+
			   				  'text-align:center; color:#FFF;'+
                             'background-color:rgb('+r+','+v+','+b+');'; //CSS de la barre
			time -= 0.001*Math.max(options[9],Math.floor(totalTime/10));
			if (time < 0) {
				divIn.innerHTML = ' 100% : Construction terminée ! ';
				window.clearInterval(intervalID); } //Supprime la réactualisation si la construction est terminée.
}
function addElm(that, tag, attr, txt) {
	if (tag.nodeType != 1) {
		var T = document.createElement(tag), a;
		if (attr) {for (a in attr) {T.setAttribute(a, attr[a]);}}
		if (txt != undefined) {T.innerHTML = txt;}
		that.appendChild(T); return T;
	}
}

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Scripts agissant sur toutes les pages ou presque d'OGame
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

//Ressources dynamiques, de henri102
if (options[1]>0
&& !lune												  //Les lunes ne produisent pas	
&& (url.indexOf('/game/index.php?page=galaxy',0))==-1 //Ressources non affichées en page Galaxie
&& (url.indexOf('/game/index.php?page=bericht',0))==-1 // Ressources non affichées dans les pop-ups
&& (url.indexOf('/game/index.php?page=notizen',0))==-1 // Ressources non affichées dans les notes
&& ((url.indexOf("resources")==-1)
|| ((url.indexOf("&pc=1")!=-1) && (url.indexOf("resources")!=-1))))		//Evite un bug au chargement de la page ressources
	{ 
		
		//Recuperation des quantites
		var Res = ['m', 'c', 'd', 'e'];
		var BatResTag = ['mmet','mcri','mdet','ces','cef','ss'];
		var q = thisplanet.resource.stock;
		var p = thisplanet.resource.prod;
		var s = thisplanet.resource.max;
		var quantites=[q.m,q.c,q.d];
		var prods=[p.m,p.c,p.d];
		var stocks=[s.m,s.c,s.d];
		for(var i=0; i<3; i++){
		eval("prods[i]=(prods[i]*options[10]*thisplanet.resource.coef."+BatResTag[i]+")/3600000;");}
		
		var ressources=document.getElementById("resources").getElementsByTagName("tr")[2].getElementsByTagName("td");
		
		if (options[11]>0){
		//Indicateur si la production n'est pas à 100%
		for(var i=0; i<6; i++){
		if (eval('thisplanet.resource.coef.'+BatResTag[i])<1){
		switch(i){
		case 0:		case 1:		case 2: 
		var coef=eval('thisplanet.resource.coef.'+BatResTag[i]);
		if (options[11]==1){
		addTip(addElem(ressources[i],"span",{},"<font color=\"orange\" size=2>*</font>"),"<font style=\"color:white; align:center;\">Production à "+format(100*coef)+" %</font>");}
		else { addElem(ressources[i],"span",{},"<font color=\"orange\" size=1> ("+100*coef+"%)"); }
			break;
		case 3: 	case 4:		case 5:
			var coef= (thisplanet.resource.coef.ces*thisplanet.resource.prod.ces
						+ thisplanet.resource.coef.cef*thisplanet.resource.prod.cef
						+ thisplanet.resource.coef.ss*thisplanet.resource.prod.ss) / q.e *100;
			if (options[11]==1){
			addTip(addElem(ressources[4],"span",{},"<font color=\"orange\" size=2>*</font>"),"<font style=\"color:white; align:center;\">Production à "+format(coef,2)+" %</font>");}
			else { addElem(ressources[4],"span",{},"<font color=\"orange\" size=1> ("+format(coef,1)+"%)"); } 
			break; }}}}
		
		var stop=[true,true,true];
		for(var i=0; i<3; i++){
		if (quantites[i]<parseInt(stocks[i])){stop[i]=false;}}
		
		function ajouteTous(){
			for(var i=0; i<3; i++){
				if (!stop[i]){
					if (quantites[i]>=parseInt(stocks[i])){
						stop[i]=true;
						ressources[i].firstChild.setAttribute("style","font-color:red;");
					}
					else
					{
						var temp=quantites[i];
						quantites[i]+=prods[i];
						if (Math.floor(temp)!=Math.floor(quantites[i])){
						ressources[i].firstChild.textContent=format(Math.floor(quantites[i]));
						}
					}
				}
			}
			setTimeout(ajouteTous, options[10]);
		}
		ajouteTous();
	}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page VUE GENERALE
 	if ((url.indexOf('/game/index.php?page=overview',0))>=0 && options[5]>0)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{

/*##################################################
     BASE DE DONNEES DE OGAME MASTERIES & RANKS				attention gros paté en approche
##################################################*/

/* Tableau de données Etoiles */
var tabstars=[
[0,1,2,3,0,1,2,3,0,0,1,1,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,2,3,3,0,1,2,3,0,0,1,1,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,3,0,1,2,3,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,1,1,2,3,0,0,1,2,2,3,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,2,2,3,0,1,2,1,2,3,3,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,3,3,0,1,2,2,3,0,0,1,2,3,1,1,1,2,2,3,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,0,0,1,2,3,3,0,0,1,1,2,3,0,0,1,1,2,2,0,0,1,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,0,0,2,2,3,0,0,0,1,2,3,3,0,0,1,1,2,2,3,1,1,1,2,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,1,1,1,3,0,0,0,1,1,2,3,0,0,0,1,1,2,3,3,0,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,1,2,2,0,0,0,1,1,2,3,3,0,0,1,1,2,2,3,3,0,0,0,1,1,2,2,2,3,3,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,2,2,3,1,1,1,1,2,3,0,1,1,2,3,0,0,1,1,2,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,2,3,3,1,1,2,2,3,0,0,1,1,2,3,0,0,1,1,2,3,0,1,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,0,0,2,2,3,3,3,0,0,1,1,2,3,0,1,1,2,2,3,3,1,1,1,2,2,3,3,0,0,1,1,2,2,2,3,3,0,0,1,1,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,0,0,3,3,3,0,0,0,0,1,2,2,3,0,1,1,2,2,3,0,0,0,1,1,2,2,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,1,0,0,0,0,0,0,2,2,3,3,0,1,1,2,2,3,0,0,0,1,1,2,2,3,3,3,1,1,2,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,1,1,1,0,0,0,1,0,0,2,3,3,0,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,0,0,1,3,0,0,1,1,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,2,2,2,1,1,1,2,1,1,1,1,0,0,1,1,2,2,3,2,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,2,2,3,3,0,0,1,1,2,2,3,3],
[2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,3,3,2,2,3,3,2,2,2,2,0,0,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,3,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,0,0,3,3,3,2,2,2,2,0,0,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,0,0,0,1,0,0,0,3,3,3,0,0,1,1,2,2,3,3,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,1,1,0,0,0,0,3,3,0,0,1,2,3,3,3,3,0,0,1,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,2,0,0,0,0,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,2,1,1,1,1,1,0,0,0,3,0,0,0,0,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,2,2,2,2,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,3,3,1,1,1,1,2,2,2,2,2,1,1,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,2,2,2,3,3,2,2,2,2,2,2,2,2,2,1,2,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,3,3,0,0,3,3,3,3,3,3,3,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,3,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,0,0,1,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,0,0,1,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,1,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,3,0,1,1,1,1,1,0,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,2,2,3,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,2,2,3,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,3,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,3,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,2,2,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,2,2,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,2,2,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,1,1,2,2,2,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,2,3,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,2,2,2,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,2,3,3,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,2,2,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,1,1,2,2,2,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,2,3,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,2,2,2,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,2,3,3,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,2,2,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,1,1,2,2,2,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,2,3,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,2,2,2,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,2,3,3,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,2,0,0,1,1,2,2,3],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,2,2,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,1,1,2,2,2,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,2,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,2,2,2,3,3,0,0,1,1,2,2,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,2,3,3,3,0,0,1,1,2,2,3],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,2],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,2,2],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,2,2,3],
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,2,2,3,3],
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,2,2,3,3,3]];

// Tableau de données Rangs
var tabranks=[
[1,1,1,1,2,2,2,2,6,6,6,6,6,6,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[1,1,1,1,2,2,2,2,6,6,6,6,6,6,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[1,1,3,3,3,3,7,7,7,7,7,7,6,6,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[1,1,3,3,3,3,7,7,7,7,7,7,15,15,15,15,15,15,15,15,15,15,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[4,4,3,3,3,8,8,8,7,7,7,7,15,15,15,15,15,15,15,15,15,28,28,28,28,28,28,28,28,28,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[4,4,3,3,8,8,8,8,8,14,14,14,14,14,15,15,15,15,15,15,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26],
[4,4,9,9,8,8,8,8,14,14,14,14,14,14,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[4,4,9,9,8,8,8,13,13,13,14,14,14,14,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[5,5,9,9,9,8,12,13,13,13,13,13,13,27,27,27,27,27,27,27,27,44,44,44,44,44,44,44,44,44,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[5,5,9,9,9,12,12,13,13,13,13,13,13,27,27,27,27,27,27,27,27,44,44,44,44,44,44,44,44,44,44,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[5,5,9,9,9,12,12,12,13,13,13,39,39,39,39,39,41,41,41,41,41,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[5,5,9,9,9,12,12,12,13,13,39,39,39,39,39,39,41,41,41,41,41,41,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37],
[5,5,5,11,11,12,12,12,13,13,39,39,39,39,39,39,41,41,41,41,41,41,41,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[5,5,5,11,11,12,12,12,38,38,39,39,39,39,39,39,41,41,41,41,41,41,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[10,10,10,11,11,11,38,38,38,38,40,40,39,39,39,39,41,41,41,41,41,41,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[10,10,10,11,11,11,38,38,38,38,40,40,39,39,39,42,42,42,42,42,42,42,45,45,45,45,45,45,45,45,45,48,48,48,48,48,48,48,50,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[10,10,10,11,11,11,38,38,38,38,40,40,40,39,42,42,42,42,42,42,42,42,42,45,45,45,45,45,45,45,45,48,48,48,48,48,48,48,48,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[10,10,10,11,11,11,38,38,38,38,40,40,40,40,42,42,42,42,42,42,42,42,46,46,45,45,45,45,45,45,45,48,48,48,48,48,48,48,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58],
[10,10,10,11,11,11,38,38,38,38,40,40,40,40,42,42,42,42,42,42,42,42,46,46,46,46,46,46,46,46,46,48,48,48,48,48,48,48,51,51,51,51,51,51,51,51,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[10,10,10,11,11,11,38,38,38,38,40,40,40,40,43,43,43,43,43,43,42,42,46,46,46,46,46,46,46,46,46,46,48,48,48,48,48,48,51,51,51,51,51,51,51,51,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[10,10,10,11,11,67,67,38,38,38,40,40,40,40,43,43,43,43,43,43,43,43,46,46,46,46,46,46,46,46,46,49,49,49,49,49,49,49,51,51,51,51,51,51,51,51,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[10,10,10,11,67,67,67,67,68,68,68,40,40,40,43,43,43,43,43,43,43,43,46,46,46,46,46,46,46,46,46,49,49,49,49,49,49,49,49,51,51,51,51,51,51,51,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[66,66,66,66,67,67,67,67,68,68,68,68,40,40,43,43,43,43,43,43,43,43,46,46,46,46,46,46,46,46,46,49,49,49,49,49,49,49,49,74,51,51,51,51,51,51,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,43,43,70,70,70,70,70,71,71,71,71,71,71,71,71,71,49,49,49,49,49,49,49,49,74,74,74,74,74,74,74,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,43,70,70,70,70,70,71,71,71,71,71,71,71,71,71,49,49,49,49,49,49,49,49,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,69,70,70,70,70,70,71,71,71,71,71,71,71,71,71,49,49,49,49,49,49,49,49,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,69,70,70,70,70,70,71,71,71,71,71,71,72,72,72,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,69,70,70,70,70,70,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,69,70,70,70,70,70,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,75,75,75,75,75,74,74,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[66,66,66,66,67,67,67,67,68,68,68,68,68,69,69,69,69,70,70,70,70,70,71,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82],
[90,90,90,90,90,91,91,91,91,68,68,92,92,69,69,69,69,70,70,70,70,70,71,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,75,75,75,75,75,75,75,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,69,69,69,70,94,94,94,94,94,72,95,95,95,95,95,95,95,73,73,73,73,73,73,73,73,75,75,75,75,75,75,75,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,94,94,94,94,94,94,95,95,95,95,95,95,95,73,73,73,73,73,73,73,73,75,75,75,75,75,75,75,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,93,94,94,94,94,94,95,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,75,75,75,75,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,93,94,94,94,94,94,95,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,75,75,75,75,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,93,93,94,94,94,94,94,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,97,98,98,98,98,98,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,93,93,94,94,94,94,94,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,97,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104],
[90,90,90,90,90,91,91,91,91,91,92,92,92,92,92,93,93,93,93,93,94,94,94,94,94,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,97,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104],
[105,105,105,105,105,105,113,113,113,113,113,92,92,92,92,121,93,93,93,93,94,94,94,94,94,95,95,95,95,95,96,96,96,96,96,96,96,97,97,97,97,97,97,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,93,93,93,94,94,94,94,94,95,145,145,145,145,145,153,153,153,153,153,153,97,97,97,97,97,161,161,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,94,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,97,97,161,161,161,161,161,98,161,169,169,169,169,169,169,169,99,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,129,137,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,97,161,161,161,161,161,161,161,169,169,169,169,169,169,169,177,177,177,177,177,177,177,177,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,193,201,201,201,201,201,201,201,201,209,209,209,209,209,209,209,209,217,217,217,217,217,217,217],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,129,137,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,161,161,161,161,161,161,161,161,169,169,169,169,169,169,169,177,177,177,177,177,177,177,177,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,193,201,201,201,201,201,201,201,201,209,209,209,209,209,209,209,209,217,217,217,217,217,217,217],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,129,137,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,161,161,161,161,161,161,161,161,169,169,169,169,169,169,169,177,177,177,177,177,177,177,177,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,193,201,201,201,201,201,201,201,201,209,209,209,209,209,209,209,209,217,217,217,217,217,217,217],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,129,137,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,161,161,161,161,161,161,161,161,169,169,169,169,169,169,169,177,177,177,177,177,177,177,177,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,193,201,201,201,201,201,201,201,201,209,209,209,209,209,209,209,209,217,217,217,217,217,217,217],
[105,105,105,105,105,105,113,113,113,113,113,113,121,121,121,121,121,121,129,129,129,129,129,129,129,137,137,137,137,137,145,145,145,145,145,153,153,153,153,153,153,161,161,161,161,161,161,169,169,169,169,169,169,169,177,177,177,177,177,177,177,177,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,193,201,201,201,201,201,201,201,201,209,209,209,209,209,209,209,209,217,217,217,217,217,217,217],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,129,129,129,129,129,129,137,137,137,137,137,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,129,129,129,129,129,129,137,137,137,137,137,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[106,106,106,106,106,106,114,114,114,114,114,114,122,122,122,122,122,122,130,130,130,130,130,130,138,138,138,138,138,146,146,146,146,146,146,154,154,154,154,154,154,162,162,162,162,162,162,170,170,170,170,170,170,170,178,178,178,178,178,178,178,178,186,186,186,186,186,186,186,186,194,194,194,194,194,194,194,194,202,202,202,202,202,202,202,202,210,210,210,210,210,210,210,210,218,218,218,218,218,218,218],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[107,107,107,107,107,107,115,115,115,115,115,115,123,123,123,123,123,123,131,131,131,131,131,131,139,139,139,139,139,139,147,147,147,147,147,147,155,155,155,155,155,155,163,163,163,163,163,163,171,171,171,171,171,171,179,179,179,179,179,179,179,179,187,187,187,187,187,187,187,187,195,195,195,195,195,195,195,195,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,219,219,219,219,219,219,219],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[108,108,108,108,108,108,116,116,116,116,116,116,124,124,124,124,124,124,132,132,132,132,132,132,140,140,140,140,140,140,148,148,148,148,148,148,156,156,156,156,156,156,164,164,164,164,164,164,172,172,172,172,172,172,180,180,180,180,180,180,180,180,188,188,188,188,188,188,188,188,196,196,196,196,196,196,196,196,204,204,204,204,204,204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220,220,220],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[109,109,109,109,109,109,117,117,117,117,117,117,125,125,125,125,125,125,133,133,133,133,133,133,141,141,141,141,141,141,149,149,149,149,149,149,157,157,157,157,157,157,165,165,165,165,165,165,173,173,173,173,173,173,181,181,181,181,181,181,181,181,189,189,189,189,189,189,189,189,197,197,197,197,197,197,197,197,205,205,205,205,205,205,205,205,213,213,213,213,213,213,213,213,221,221,221,221,221,221,221],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[110,110,110,110,110,110,118,118,118,118,118,118,126,126,126,126,126,126,134,134,134,134,134,134,142,142,142,142,142,142,150,150,150,150,150,150,158,158,158,158,158,158,166,166,166,166,166,166,174,174,174,174,174,174,182,182,182,182,182,182,182,182,190,190,190,190,190,190,190,190,198,198,198,198,198,198,198,198,206,206,206,206,206,206,206,206,214,214,214,214,214,214,214,214,222,222,222,222,222,222,222],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[111,111,111,111,111,111,119,119,119,119,119,119,127,127,127,127,127,127,135,135,135,135,135,135,143,143,143,143,143,143,151,151,151,151,151,151,159,159,159,159,159,159,167,167,167,167,167,167,175,175,175,175,175,175,183,183,183,183,183,183,183,183,191,191,191,191,191,191,191,191,199,199,199,199,199,199,199,199,207,207,207,207,207,207,207,207,215,215,215,215,215,215,215,215,223,223,223,223,223,223,223],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,224],
[112,112,112,112,112,112,120,120,120,120,120,120,128,128,128,128,128,128,136,136,136,136,136,136,144,144,144,144,144,144,152,152,152,152,152,152,160,160,160,160,160,160,168,168,168,168,168,168,176,176,176,176,176,176,184,184,184,184,184,184,184,184,192,192,192,192,192,192,192,192,200,200,200,200,200,200,200,200,208,208,208,208,208,208,208,208,216,216,216,216,216,216,216,216,224,224,224,224,224,224,225]];

var listranks=["Pionnier","Batisseur","Apprenti","Rapace","Agresseur","Macon","Inventeur","Diplomate","Aventurier","Barbare","Guerrier","Pilleur","Politicien","Commerçant",
"Ingénieur","Architecte","Entrepreneur","Défenseur","Protecteur","Gardien","Conservateur","Gardien de tombeau","Gardien de donjon","Gardien de la forteresse","Maitre des clefs",
"Puissance secrète","Marchand","Visionnaire","Industriel","Spécialiste du forage","Géologue","Maitre géologue","Gérant de colonie minière","Maitre des mines","Maitre d'usine",
"Gigantisme industriel","Fondateur de l'Eldorado","Soldat","Sénateur renommé","Sergent","Aristocrate","Conseiller influent","Militaire de haut rang","Financier","Célèbre Homme d'état",
"Haut émissaire","Investisseur","Homme de pouvoir","Fin négociateur","Batisseur de cités","Illustre dirigeant","Gouverneur de la cité","Président du capitole","Génie industriel",
"Batisseur de la citadelle","Seigneur de la citadelle","Batisseur de merveilles","Maitre des merveilles","Acclamé des foules","Créateur de richesses","Suprématie économique",
"Hégémonie commerciale","Virtuose de la finance","Architecte prodige","Créateur de prestige","Téméraire","Démolisseur","Soldat Artilleur","Lieutenant","Premier lieutenant",
"Missionnaire","Autodictate","Conquistador","Ministre","Chevalier","Bienfaiteur","Elu des foules","Monarque","Souverain","Trésorier","Main d'Or","Main blanche","Erudit","Chaman",
"Noble sage","Mage blanc","Oracle","Arcaniste","Maitre des arcanes","Sanguinaire","Briseur de cranes","Caporal","Capitaine","Major","Baroudeur","Dominateur","Chevalier de l'Ordre",
"Prince","Philanthrope","Destiné","Archimage","Vénérable","Céleste","Sultan","Tueur","Meurtrier","Folie meurtrière","Assassin","Collectionneur de trophées","Dévoreur d'âmes","Maudit",
"Roi Maudit","Incendiaire","Destructeur","Envahisseur","Ravageur","Mercenaire","Faucheur","Répandeur de mort","Général de l'Armée Noire","Conquérant","Chef des légions",
"Combattant de la victoire","Chef des armées du triomphe","Glorieux héros de guerre","Seigneur de Guerre","Général des légions meurtrières","Amiral des légions titanesques",
"Chasseur interstellaire","Chasseur intergalactique","Maitre d'armes","Stratège","Tacticien","Expert tactique","Corsaire","Corsaire légendaire","Colonel","Légion d'honneur",
"Unité d'assaut","Unité d'élite","Goliath","Destructeur","Force implacable","Maitre de la désolation","Ministre de la guerre","Vétéran de guerre","Gladiateur des temps modernes",
"Champion","Tyran","Prométhée","Cronos","Disciple de thanatos","Prédateur","Templier","Croisé","Berserker","Géant d'Héca","Mythique","Hercule","Disciple d'Ares","Chevalier du Ciel",
"Commandant","Général","Amiral","Néréide","Achille","Persée","Demi-dieu","Prétendant au trone","Couronné","César","Autorité incontestée","Colosse","Armée de la Gloire","Armée de la Victoire",
"Armée invaincue","Altesse","Empereur","Aigle impérial","Lignée impériale","Sang Royal","Légions impériales","Anarchiste","Dieu du Chaos","Majesté","Empire Colonial","Empereur intergalactique",
"Empereur de la Nouvelle Ere","Lumière d'Ouranos","Disciple D'Artémis","Disciple d'Hephaïstos","Disciple d'Athena","Leader","Dynaste","Apôtre","Lumière d'Ether","Disciple d'Apollon","Titan",
"Disciple de Poséidon","Disciple de Zeus","Roi Honorable","Dynastie Antique","Disciple de Dyonisos","Disciple de Thémis","Disciple de Maïa","Disciple d'Hestia","Disciple d'Hephaïstos",
"Ultime","Illustre","Byzance","Empire d'Eden","Disciple de Déméter","Disciple d'Atlas","Disciple de Gaïa","Divinité","Dieu du Pouvoir","Disciple d'Hermès","Disciple d'Hemera","Disciple d'Ouréa",
"Disciple de Gaïa","Entité surnaturelle","Suprême","Dieu des mondes","Universel","Universalis"];

//FIN DE LA BASE DE DONNEES POUR OGAME MASTERIES & RANKS

	var t=DATA.techno;
	var techs= [t.espi,t.ordi,t.arme,t.bouc,t.prot,t.ener,t.hype,t.comb,t.impu,t.phyp,t.lase,t.ions,t.plas,t.rese,t.expe,t.grav];

	//Calcul du techscore et du raiderscore
	for (var i=0;i<16;i++) { techs[i] = parseInt(techs[i]); }
	var rscore=DATA.player.stats.player.fleet.value;
	var techscore = 2*(t.arme+t.bouc+t.prot+t.espi)+t.comb+t.impu+t.phyp;
	
	var helpmessage1='',helpmessage2=''; //par défaut pas de message d'aide
	
		if (rscore >=0 && techscore>=0){ //Si on a trouvé les données
			var rlvl= Math.pow(rscore*25*(1+techscore/50),1/4); //Calcul du lvl raider
			var rpro = Math.floor((rlvl-Math.floor(rlvl))*100); //Calcul du pourcentage de progression pour le niveau supérieur
			rlvl = Math.floor(rlvl);}
		
		else { // Données non enregistrées
			var helpmessage1="Allez voir votre Classement Flotte et vos techs pour que votre niveau soit calculé";
			var rlvl='<A HREF="javascript:alert(\''+helpmessage1+'\');">?</A>';
			var rpro=0;}

	// Calcul de la production totale par jour cumulée pour toutes les planètes, avec coeffs metal/cri/deut de 1/1.5/2
	var totprod=0;
	for (var i = 0; i < DATA.planet.length; i++)
	{ 
		if (DATA.planet[i].resource.prod.m==0){totprod=-1;break;}
		var prod=DATA.planet[i].resource.prod;
		totprod+=24*(parseInt(prod.m)+parseInt(1.5*prod.c)+parseInt(2*prod.d));
	}
	
	if (totprod <= 0) { // Données non enregistrées
		var helpmessage2="Allez en page ressources de chaque colo/lune pour que votre niveau soit calculé";
		var mlvl ='<A HREF="javascript:alert(\''+helpmessage2+'\');">?</A>'; var mpro=0;}

	else{
		var mlvl=Math.pow(totprod/1500,1/2); // Calcul du lvl mineur
		var mpro = Math.floor((mlvl-Math.floor(mlvl))*100); //Calcul du pourcentage de progression pour le niveau supérieur
		mlvl = Math.floor(mlvl); }

		var stars=" ";
		if (rlvl>0 && mlvl>0){ // Si on a toutes les données pour pouvoir indiquer le grade
			if (rlvl>99) {rlvl=99;}
			if (mlvl>99) {mlvl=99;} // Il y en a peu qui atteignent le niveau 99, mais au cas où, on met un plafond
			var idrank=tabranks[rlvl][mlvl]; //va chercher le numéro de grade en fonction des deux lvls, selon le tableau tabranks
			var grade=listranks[idrank-1]; //va chercher le nom du grade en fonction de son numéro, selon le tableau listranks
			var nbstars=tabstars[rlvl][mlvl];} //va chercher le nombre d'étoiles du grade en fonction des deux lvls, dans tabranks
		else {var grade="?"; } //Sinon, grade inconnu !

	if (options[20]>0){
	var lvlcolor="rgb("+parseInt(255*(rlvl/(mlvl+rlvl)))+","+parseInt(255*(1-Math.abs(rlvl-mlvl)/Math.max(rlvl,mlvl)))+","+parseInt(255*(mlvl/(mlvl+rlvl)))+")";
	// calcule un code couleur RGB : Les mineurs purs sont en bleu, les polyvalents sont en vert, les raiders purs sont en rouge
	} else {
	var lvlcolor="rgb("+options[21]+")";}

	//Code en base 64 de l'image d'étoile
	var imgstar="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABGdBTUEAALGeYUxB9wAAACBjSFJNAACHEAAAjBIAAP1NAACBPgAAWesAARIPAAA85gAAGc66ySIyAAABK2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAACjPY2BgMnB0cXJlEmBgyM0rKQpyd1KIiIxSYD/PwMbAzAAGicnFBY4BAT4gdl5+XioDBvh2jYERRF/WBZnFQBrgSi4oKgHSf4DYKCW1OJmBgdEAyM4uLykAijPOAbJFkrLB7A0gdlFIkDOQfQTI5kuHsK+A2EkQ9hMQuwjoCSD7C0h9OpjNxAE2B8KWAbFLUitA9jI45xdUFmWmZ5QoGFpaWio4puQnpSoEVxaXpOYWK3jmJecXFeQXJZakpgDVQtwHBoIQhaAQ0wBqtNBkoDIAxQOE9TkQHL6MYmcQYgiQXFpUBmUyMhkT5iPMmCPBwOC/lIGB5Q9CzKSXgWGBDgMD/1SEmJohA4OAPgPDvjkAwMZP/eeaqagAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My4zNTDus58AAAO8SURBVEhLzZR9bFNVGIc7VkWjYcEIuJhoogkJMSoxIpFl0ZCYERMhKkwJTE38QzEaA8a/lBiV4VdgQoy6DM34EAKLAiMwmKvY7oO1u+3t11p7243RdrOuHbeDWdu19/78ne2iGBdzjSOxyZP3Pee8933OPT25Fsv/8VccH3wR0Odes71ls4kHkban9Uu+2msi2Vb/QXnponQcI2eACXvw25aDN8+6qDARW43htgLirUD6OH5VHVtmVeLs7b0J6R89iB8FBo4AycPA+NGU1+2onDVRUXW/hqFDOmIHgMheIEZGmpHLnNj1nyUArGo6fjeSLQlEvwbCjUDoS0YyQFJNE1G/bZmaHb/RlGzNU7Vl+/btXViYSD5wKdW5qXi+5TP9/CFZizaOQPmczXcDwYY/CTFXGqCHdowWQ03BfLh5z1jsxGbkkstVNbvgb9KxQMMmfXB/N2JNowjtmET/x0D/J2zIGPwICHwI+LcDPvJHrGdOfMRrIL8PyNuKCO9Oa/FmeybaWN96sqNsSjgprd4Dfy0bbwU8bxMRjVzm+Ape5lcj5qfqifutabxE4Tj0ArTTNTYdmDMl4dlXaM5qG8LPcPENFm8B+ohERO4xkBmvRsy7N7POQGaMkCgFrcv8qWTktr8cG5CfX+yp7kJoHd/oZT78EkVEIiL3zICYF4gasR4mg3XQTy1VCmr4jhkvQz6v3qp3VksIP8n/4jk2IFIdI/EQWcA57/Mcb+Das2T99FqYcxc4PntvMhNtW/yPtw3ILip9v8KPwONs+DQFxEPktYDrEcB+J9AxDzhjBdrKyBzOzeUxVwDnFo+ORY8sNXWdcxmlEs51CtyrKKBMqgIctwA/8O87ayDyDgOnBZp3EW/U/ipTgitFGHjvGPrYvLuSO+WOO9mwi3QbiNxB7EQiyUddXzR+c/2/kwTW+uDgMXRR0MMm3C36jIYiivE5Q+hhHLkv9s67OytMS3ily9G3JIGe66abuYmf/ERiJEICRDR3EZkkFlxsP9220LRE17Xb4arMwcm38LGBIo6DDJNeEjfyqCETwgvlWv5yYIlpSely5CHdaS0gJHZoCHj+2uG7hksnn9ipH3s4gHbeqiFjbdCIcNWYlyQbVqLfUoJ4mOeu2e6PTDpff7WQG59vfCHKdaV5jda+shP2G/QpWdqCyd++2mBaogfrNqLDWoJjuUuLbF9/4GDLjJ/yXqm/DBnbCs1V853umVfMD7/ypmlJqmtrlerbtWoo8YvV7EM/K6fuGQ1++pjZ+lmv+x0kFZQaeIe/swAAAABJRU5ErkJggg==";

	// On insère le code du grade et des étoiles
	for(var i = 0; i < nbstars; i++) {stars+="<img height=\"14px\" src=\""+imgstar+"\"></img>";}
	var tbody = document.getElementsByTagName('tbody')[5];
	var tr1 = addElem(tbody,'tr',{},"<td colspan=\"4\" class=\"c\">Grade : "+grade+stars+"</td>");
	// et le code des deux barres de lvls
	var contenttr2="<th style=\"background-color:"+lvlcolor+";\"><A HREF=\"javascript:alert('Allez régulièrement en page Laboratoire et consultez votre classement flotte pour que votre niveau soit mis à jour');\"><font size=1>Raider</A> lvl </font><b><font size=3>"+rlvl+"</font></b></th><th colspan=\"3\" style=\"background-color:"+lvlcolor+";\">"
				+"<div style='width:100%;border:1px #000 solid;"+"background-color:transparent;'><span style=\"position:absolute; left:50%;\">Niveau "+(rlvl+1)+" : "+rpro+" %</span>"
				+"<div style=\"width:"+rpro+"%; height:13px; background-color:rgb("+options[26]+");\"></div>"
				+helpmessage1+"</div></th>";
	var contenttr3="<th style=\"background-color:"+lvlcolor+";\"><A HREF=\"javascript:alert('Allez régulièrement en page ressources de chaque colo pour que votre niveau soit mis à jour');\"><font size=1>Mineur</A> lvl </font><b><font size=3>"+mlvl+"</font></b></th><th colspan=\"3\" style=\"background-color:"+lvlcolor+";\">"
			    +"<div style='width:100%;border:1px #000 solid;"+"background-color:transparent;'><span style=\"position:absolute; left:50%;\">Niveau "+(mlvl+1)+" : "+mpro+" %</span>"
				+"<div style=\"width:"+mpro+"%; height:13px;; background-color:rgb("+options[26]+");\"></div>"
			    +helpmessage2+"</div></th>";
	var tr2 = addElem(tbody,'tr',{},contenttr2);
	var tr3 = addElem(tbody,'tr',{},contenttr3); 
}	

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page BATIMENTS
 	if ((url.indexOf('/game/index.php?page=b_building',0))>=0) 
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{	
		// BARRE DE PROGRESSION DES BATIMENTS
	 if (document.getElementById('bxx') && options[0]>0) { // Si une construction en cours
	
       var td, pro, divTop, divIn, time = 0, totalTime = 0;

    td = document.getElementById('bxx').parentNode.previousSibling;
	var tdbatiment=td.parentNode; var listebatiments = tdbatiment.parentNode;
	if (options[25]>0){td.parentNode.parentNode.insertBefore(td.parentNode,td.parentNode.parentNode.firstChild);} //Déplace le batiment en cours de construction en tête de liste
	
	var totalTime = ([x, j, h, m, s] = td.textContent.match(/Durée de construction : (?:(\d+)j )?(?:(\d+)h )?(?:(\d+)m )?(?:(\d+)s)?/)) ? (j || 0) * 24 * 60 * 60 + (h || 0) * 60 * 60 + (m || 0) * 60 + (s || 0)  * 1 : 0;
	var time=thisplanet.building.build.end-actualTime; // Enregistre le temps de  construction restant
    if (td && totalTime) {
		divTop = document.createElement('div'); //Boîte conteneur
		divIn = divTop.appendChild(document.createElement('div')); //On met la barre de progression dans la boite
		td.appendChild(divTop); //Et on insère la boite sur la page
		divTop.style.cssText = 'width:95%; height:13px; margin-left:10px;'+
                              'border:1px #99d solid;'+
                             (options[6]>0 ? '-moz-border-radius:15px;' : '')+
			      			'background-color:transparent;'; // CSS de la boite
		var colors1=options[7].split(/,/);
		var colors2=options[8].split(/,/);
		var r1=parseInt(colors1[0]),v1=parseInt(colors1[1]),b1=parseInt(colors1[2]);
		var r2=parseInt(colors2[0]),v2=parseInt(colors2[1]),b2=parseInt(colors2[2]);
		var coef1=(r2-r1)/100,coef2=(v2-v1)/100,coef3=(b2-b1)/100;
		var roundcorner=(options[6]>0 ? true : false);
		progress(r1,v1,b1,coef1,coef2,coef3,roundcorner);
		var intervalID = window.setInterval(progress, Math.max(options[9],Math.floor(totalTime/10)), r1,v1,b1,coef1,coef2,coef3,roundcorner); }} // On lance l'actualisation automatique
	
	if (options[22]>0){
	var tdnode = document.getElementsByTagName('td');
	var tdnodelength=tdnode.length;
	
	function infoslevelup(text,calc,color,text2,noplus){
		tdnode[f+1].innerHTML+="</br><font color="+color+">"+text+" "
								+((calc>0 && !noplus)?"+":"")
								+((calc!="")?format(Math.round(calc)):"")
								+(text2?text2:"");}
								
	if (!lune) {		// On sépare la détection des batiments non-lunaires et les batiments lunaires pour gagner en vitesse de détection.
		var scan = [/Mine de m/,
					/Mine de cr/,
					/tiseur de deu/,
					/lectrique solair/,
					/lectrique de fus/,
					/e de nanites/,
					/oratoire de recherche/,
					/Terraformeur/,
					/Silo de missiles/,
					/Usine de robots/,
					/Chantier spatial/,
					/Hangar de mét/,
					/Hangar de cri/,
					/Réservoir de deut/];
	} else {
		var scan = [/Base luna/,
					/Phalange de capt/,
					/Porte de saut spat/,
					/Usine de robots/,
					/Chantier spatial/,
					/Hangar de mét/,
					/Hangar de cri/,
					/Réservoir de deut/];
	}
	
		for (var f=54; f<tdnodelength ; f++){ 
		var tdhtml=tdnode[f].innerHTML;
		if (tdnode[f].getAttribute("class")=="l" && (tdhtml).indexOf("Durée de construction :",0)>=0) //Cette condition supplémentaire réduit considérablement le champ de recherche
		{
		//INFOS LEVEL UP : A chaque batiment détecté, on rajoute des infos supplémentaires, généralement le gain du niveau  et la consommation supplémentaire
		for(var num=0; num<scan.length ; num++) {
			if (scan[num].test(tdhtml)){
		if (!lune){
		switch(num){
			
			case 0: n=thisplanet.building.mmet;
					infoslevelup("Production<br>",speedcoef*30*Math.pow(1.1,n)*(1.1+0.1*n),"#66FF33"," /h");
					infoslevelup("Energie",-10*Math.pow(1.1,n)*(1.1+0.1*n),"#FF2211");
					// On recupere le temps de construction, qui servira éventuellement plus tard à une solution de secours dans le cas de nanite > 0 et robots < 10
					var pos3 = (tdhtml).indexOf("e de construction : ",0);
					var pos4 = (tdhtml).indexOf("s",pos3+20);
					temps = (tdhtml).substring(pos3+20,pos4);
					break;
					
			case 1: n=thisplanet.building.mcri;
					infoslevelup("Production<br>",speedcoef*20*Math.pow(1.1,n)*(1.1+0.1*n),"#66FF33"," /h");
					infoslevelup("Energie",-10*Math.pow(1.1,n)*(1.1+0.1*n),"#FF2211");
					break;
					
			case 2: n=thisplanet.building.mdet;
					var tempmax=thisplanet.maxtemp;
					if (tempmax=="-1") { infoslevelup("Production +<A title=\"Allez en vue genérale de cette planète pour que la production soit calculée\">?</A>","","#FFF"); }
					else { infoslevelup("Production<br>",speedcoef*10*Math.pow(1.1,n)*(1.1+0.1*n)*(-0.002*tempmax+1.28),"#66FF33"," /h"); }
					infoslevelup("Energie",-20*Math.pow(1.1,n)*(1.1+0.1*n),"#FF2211");
					break;
					
			case 3: n=thisplanet.building.ces;
					infoslevelup("Energie",20*Math.pow(1.1,n)*(1.1+0.1*n),"#66FF33"); 
					break;
			
			case 4: n=thisplanet.building.cef;
					var lvlnrj=DATA.techno.ener;
					if (lvlnrj<0) { infoslevelup("Energie +<A title=\"Allez en page Laboratoire de cette planète pour que la production soit calculée\">?</A>","","#FFF");}
					else { infoslevelup("Energie",30*Math.pow(1.05+lvlnrj*0.01,n)*((1.05+lvlnrj*0.01)*(n+1)-n),"#66FF33"); }
					infoslevelup("Deutérium</br>",-10*Math.pow(1.1,n)*(1.1+0.1*n),"#FF2211"," /h");
					break;
					
			case 5: infoslevelup("<font size=\"1\">Vitesse de </br>construction </br>des batiments </br>et vaisseaux</br> </font><b>x2</b></font>","","#66FF33");
					break;
					
			case 6: // Indication d'infos supplémentaires sur le réseau (Infos LEVEL UP)	
					n=thisplanet.building.lab;
					var labs = new Array(); // On va inscrire dans la liste labs les niveaux de tous les labos
						for(var i=0; i<DATA.planet.length ; i++){
							positioni=DATA.planet[i].posi;
							var lvli = DATA.planet[i].building.lab; // Voilà l'info que nous cherchons, le niveau du labo de la planète
							if (positioni==position) { lvli=0; } //pour ne pas prendre en compte le labo de la planete ou se fait la recherche
							labs.push(lvli);} // qu'on ajoute au tableau, l'ordre n'a pas d'importance vu qu'on les trie après
						function compareNombres(a, b)	{	return a - b;	} // Petite fonction de tri
					labs.sort(compareNombres); labs.reverse();
				// On a la liste des lvls des labos triés en ordre croissant, puis décroissant grâce à reverse.
				var lvlres = DATA.techno.rese; //On récupère le niveau du réseau
					if (lvlres>0){
						var totallab = n;
						for (var i = 0; i < lvlres; i++) {	totallab+=labs[i];} } //Somme des n autres meilleurs labos, n étant le niveau du réseau
				else if (lvlres==0) { var totallab=n; } //Si pas de réseau, seul ce labo compte
				else { var totallab="-777"; } //Au cas où le réseau n'a pas été enregistré
				if (totallab=="-777"){
					infoslevelup("<font size=\"1\"> Vitesse de </br>recherche</br></font>+<A title=\"Allez en page Laboratoire de cette planète pour que la vitesse soit calculée\">?</A>","","#FFF");}
				else { infoslevelup("<font size=\"1\"> Vitesse de </br>recherche</br></font>",100*(2+totallab)/(1+totallab)-100,"#66FF33"," %");}
				if (lvlres>0 && totallab>n){ //Si on a un réseau qui sert à quelquechose (au moins un autre labo)
				tdhtml+='<font color=#66FF33 size="1"> Réseau disponible pour ce laboratoire : Niveau </font><font color=#66FF33 size="2">'+totallab+'</font>'; }
				break;
				
			case 7: infoslevelup("+ 4 cases</br>exploitables","","#66FF33");
					break;
			
			case 8: infoslevelup("+ 5 MIP </br> ou + 10 MI","","#66FF33");
					break;
					
			case 9: n=thisplanet.building.rob;
					infoslevelup("<font size=\"1\"> Vitesse de </br>construction </br>des batiments</br></font>",100*(2+n)/(1+n)-100,"#66FF33"," %");
					break;
			
			case 10: n=thisplanet.building.cspa;
					infoslevelup("<font size=\"1\"> Vitesse de </br>construction</br> des vaisseaux</br></font>",100*(2+n)/(1+n)-100,"#66FF33"," %");
					break;
					
			case 11: n=thisplanet.building.hmet;
					infoslevelup("Capacité :</br>",100+50*parseInt(Math.pow(1.6,n+1)),"#66FF33","k",1);
					infoslevelup("(",(n==0)?50:(50*(Math.floor(Math.pow(1.6,n+1))-Math.floor(Math.pow(1.6,n)))),"#99FF66","k )");
					break;
			case 12: n=thisplanet.building.hcri;
					infoslevelup("Capacité :</br>",100+50*parseInt(Math.pow(1.6,n+1)),"#66FF33","k",1);
					infoslevelup("(",(n==0)?50:(50*(Math.floor(Math.pow(1.6,n+1))-Math.floor(Math.pow(1.6,n)))),"#99FF66","k )");
					break;
			case 13: n=thisplanet.building.hdet;
					infoslevelup("Capacité :</br>",100+50*parseInt(Math.pow(1.6,n+1)),"#66FF33","k",1);
					infoslevelup("(",(n==0)?50:(50*(Math.floor(Math.pow(1.6,n+1))-Math.floor(Math.pow(1.6,n)))),"#99FF66","k )");
					break;
					
			default: break;
			} }
		else {
		switch(num) {
		
			case 0: infoslevelup("+ 2 cases</br>exploitables","","#66FF33");
					break;

			case 1: n=thisplanet.building.phal;
					infoslevelup("Portée :</br>"+format(Math.pow(n+1,2)-1),"","#66FF33"," syst.");
					infoslevelup("(",2*n+1,"#99FF66"," )");
					break;
					
			case 3: n=thisplanet.building.rob;
					infoslevelup("<font size=\"1\"> Vitesse de </br>construction </br>des batiments</br></font>",100*(2+n)/(1+n)-100,"#66FF33"," %");
					break;
			
			case 4: n=thisplanet.building.cspa;
					infoslevelup("<font size=\"1\"> Vitesse de </br>construction</br> des vaisseaux</br></font>",100*(2+n)/(1+n)-100,"#66FF33"," %");
					break;
					
			case 5: n=thisplanet.building.hmet;
			case 6: n=thisplanet.building.hcri;
			case 7: n=thisplanet.building.hdet;
					infoslevelup("Capacité :</br>",100+50*parseInt(Math.pow(1.6,n+1)),"#66FF33","k");
					infoslevelup("(",(n==0)?50:(50*Math.pow(1.6,n)*0.6),"#99FF66","k )");
					break;
					
			default: break; 	
		}		
		} }	}   

	}}} //Fin de la boucle de recherche
}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page RESSOURCES
 	if (url.indexOf("page=resources")!=-1 && url.indexOf("pc=1")!=-1 && !lune && options[2]>0)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{	
		if (!quantites){ //Au cas où Page Ressources améliorée activée mais pas ressources dynamiques, on redéclare les quantités.
		var q = thisplanet.resource.stock;
		var quantites=[q.m,q.c,q.d];}

		//Ajout de la barre de niveau de production, Largeur des barres : 255px
			var thProductions=document.getElementById("ressourcen").getElementsByTagName("th");
			var centertag = document.getElementsByTagName("center")[3].innerHTML.substring(0,50);
			
			//Calcul des transitions de couleurs
			var colors1=options[14].split(/,/);
				var colors2=options[15].split(/,/);
				var r1=parseInt(colors1[0]),v1=parseInt(colors1[1]),b1=parseInt(colors1[2]);
				var r2=parseInt(colors2[0]),v2=parseInt(colors2[1]),b2=parseInt(colors2[2]);
				var coef1=(r2-r1)/100,coef2=(v2-v1)/100,coef3=(b2-b1)/100;
			
			var  pos_Factor = centertag.indexOf("Facteur de production : ",10);
			if (pos_Factor>0) {
				var pos2_Factor = centertag.indexOf("<form",pos_Factor+24);
				var Factor=parseFloat(centertag.substring(pos_Factor+24,pos2_Factor))*100; 
				var asupprimer = centertag.substring(pos_Factor-1,pos2_Factor-1);
				centertag.replace(asupprimer,''); } //L'ancien indicateur de niveau est supprimé
				var r=Math.floor(0.8*(r1+coef1*Factor)),v=Math.floor(0.8*(v1+coef2*Factor)),b=Math.floor(0.8*(b1+coef3*Factor));
			var ProdFact = document.createElement('div');
			ProdFact.innerHTML = '<table width="550"><tr>'+
							'<th>Niveau de Production</th>'+
							'<th>'+Factor+'%</th>'+
							'<th width="255"><div style="border: 1px solid #FFFFFF; width: 254px;">'+
							'<div style="background-color: rgb('+r+','+v+','+b+');'+
							' width: '+parseInt(Factor * 2.55)+'px; height:10px"></div></div></th>'+
							'</tr></table><br />';
			//On a préparé le code du nouvel indicateur
			
			//Calcul des pourcentages de saturation des hangars EAlm et proportionnellement de la largeur des barres (max 255px)
			var EAlmM= Math.round(quantites[0] * 100 / thisplanet.resource.max.m);
			var EAlmC= Math.round(quantites[1] * 100 / thisplanet.resource.max.c);
			var EAlmD= Math.round(quantites[2] * 100 / thisplanet.resource.max.d);
			var widthM = Math.round(EAlmM*2.55);
			var widthC = Math.round(EAlmC*2.55);
			var widthD = Math.round(EAlmD*2.55);
			//On prépare le code des barres de saturation des hangars
			
			var rm=Math.floor(0.8*(r2-coef1*EAlmM)),vm=Math.floor(0.8*(v2-coef2*EAlmM)),bm=Math.floor(0.8*(b2-coef3*EAlmM));
			var rc=Math.floor(0.8*(r2-coef1*EAlmC)),vc=Math.floor(0.8*(v2-coef2*EAlmC)),bc=Math.floor(0.8*(b2-coef3*EAlmC));
			var rd=Math.floor(0.8*(r2-coef1*EAlmD)),vd=Math.floor(0.8*(v2-coef2*EAlmD)),bd=Math.floor(0.8*(b2-coef3*EAlmD));
			
			function ToJHMS(seconds){
			var days=Math.floor(seconds/86400); seconds-=86400*days;
			var hours=Math.floor(seconds/3600); seconds-=3600*hours;
			var minutes=Math.floor(seconds/60); seconds-=60*minutes;
			return (days>0? days.toString()+' jours ' : '')+(hours>0 ? hours.toString()+' h ':'')+(minutes>0 ? minutes.toString()+' min ':'')+Math.floor(seconds).toString()+' s'; }
			
			var timeleft=(thisplanet.resource.max.m-quantites[0])*3600/thisplanet.resource.prod.m;
			if (timeleft>0){
			var mtimeleft=ToJHMS(timeleft);}
			else { var mtimeleft="Hangar plein";}
			
			var timeleft=(thisplanet.resource.max.c-quantites[1])*3600/thisplanet.resource.prod.c;
			if (timeleft>0){
			var ctimeleft=ToJHMS(timeleft);}
			else { var ctimeleft="Hangar plein";}
			
			var timeleft=(thisplanet.resource.max.d-quantites[2])*3600/thisplanet.resource.prod.d;
			if (timeleft>0){
			var dtimeleft=ToJHMS(timeleft);}
			else { var dtimeleft="Hangar plein";}

			var tabhangars = document.createElement('div');
			tabhangars.innerHTML += '<table width="550">'+
						'<tr><td class="c" colspan="3">Utilisation des Hangars</td></tr>'+
						'<tr><th>Métal</th>'+
						'<th>'+EAlmM+'%</th>'+
						'<th width="255"><div onmouseover="return overlib(\'<span style=color:white>Temps avant saturation :<br/> '+mtimeleft+'\', LEFT);" onmouseout="return nd();" style="border: 1px solid #FFFFFF; width: 255px;">'+
						'<div style="background-color: rgb('+rm+','+vm+','+bm+');'+
						'width: '+(EAlmM > 100 ? 255 : widthM)+'px;">&nbsp;</div></div></th>'+
						'</tr><tr><th>Cristal</th>'+
						'<th>'+EAlmC+'%</th>'+
						'<th width="255"><div onmouseover="return overlib(\'<span style=color:white>Temps avant saturation :<br/> '+ctimeleft+'\', LEFT);" onmouseout="return nd();" style="border: 1px solid #FFFFFF; width: 255px;">'+
						'<div style="background-color: rgb('+rc+','+vc+','+bc+');'+
						'width: '+(EAlmC > 100 ? 255 : widthC)+'px;">&nbsp;</div></div></th>'+
						'</tr><tr><th>Deutérium</th>'+
						'<th>'+EAlmD+'%</th>'+
						'<th width="255"><div onmouseover="return overlib(\'<span style=color:white>Temps avant saturation :<br/> '+dtimeleft+'\', LEFT);" onmouseout="return nd();" style="border: 1px solid #FFFFFF; width: 255px;">'+
						'<div style="background-color: rgb('+rd+','+vd+','+bd+');'+
						'width: '+(EAlmD > 100 ? 255 : widthD)+'px;">&nbsp;</div></div></th></tr></table><br/>';

	var Form=thProductions[0].parentNode.parentNode.parentNode;
	if (options[13]>0){Form.parentNode.insertBefore(tabhangars, Form.nextSibling);} //On insère les barres de saturation des hangars
	if (options[12]>0){Form.parentNode.insertBefore(ProdFact,Form);} // On insère l'indicateur du niveau de production

	//Si le pourcentage de production est moins de 100 %, on met en évidence en colorant la liste déroulante
	var selectblocks=Form.getElementsByTagName("select");
	for(var j=0; j<selectblocks.length; j++){
		if (selectblocks[j].selectedIndex>0) {
			if (selectblocks[j].selectedIndex>9) {
				selectblocks[j].setAttribute("style","background-color: #BB0000"); } //Alerte ORANGE entre 10 et 90 %
			else { selectblocks[j].setAttribute("style","background-color: #996600"); } // Alerte ROUGE Ã  0 %
		}
	}
}
		
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page LABORATOIRE - RECHERCHES
 	if ((url.indexOf('mode=Forschung',0))>=0)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{
// INFOS LEVEL UP ; REGARDE SI UNE RECHERCHE EST EN COURS	
	var constructionencours=false;
	var tabletechno=document.getElementById("content").getElementsByTagName("tbody")[1];
	tabletechno.firstChild.setAttribute("style","display:none;"); // Cache les deux cellules Description et Nombre
		
   if (document.getElementById('bxx') && options[0]>0) {
		constructionencours=true;
		// si une recherche est en cours, on n'affichera pas d'infos supplémentaires (buggé et inutile)
		
	var td, pro, divTop, divIn, time = 0, totalTime = 0;
	var time=DATA.techno.search.end-actualTime; // Enregistre le temps de  construction restant
	td = document.getElementById('bxx').parentNode.previousSibling;
	if (options[25]>0){td.parentNode.parentNode.insertBefore(td.parentNode,td.parentNode.parentNode.firstChild);} //Déplace la recherche en cours en tête de liste		
	var totalTime = ([x, j, h, m, s] = td.textContent.match(/Durée de construction : (?:(\d+)j )?(?:(\d+)h )?(?:(\d+)m )?(?:(\d+)s)?/)) ? (j || 0) * 24 * 60 * 60 + (h || 0) * 60 * 60 + (m || 0) * 60 + (s || 0)  * 1 : 0;

	if (td && totalTime && time) {
		divTop = document.createElement('div'); //Boîte conteneur
		divIn = divTop.appendChild(document.createElement('div')); //On met la barre de progression dans la boite
		td.appendChild(divTop); //Et on insère la boite sur la page
		divTop.style.cssText = 'width:95%; height:13px; margin-left:10px;\
                              border:1px #99d solid;'+
                             (options[6]>0 ? '-moz-border-radius:15px;' : '')+
			      			'background-color:transparent;'; // CSS de la boite
		var colors1=options[7].split(/,/);
		var colors2=options[8].split(/,/);
		var r1=parseInt(colors1[0]),v1=parseInt(colors1[1]),b1=parseInt(colors1[2]);
		var r2=parseInt(colors2[0]),v2=parseInt(colors2[1]),b2=parseInt(colors2[2]);
		var coef1=(r2-r1)/100,coef2=(v2-v1)/100,coef3=(b2-b1)/100;
		var roundcorner=(options[6]>0 ? true : false);
		progress(r1,v1,b1,coef1,coef2,coef3,roundcorner);
		var intervalID = window.setInterval(progress, Math.max(options[9],Math.floor(totalTime/10)), r1,v1,b1,coef1,coef2,coef3,roundcorner); }} // On lance l'actualisation automatique
				
	if (tdnode.length > 20) { // Au cas où pas de labo construit, message Vous devez d'abord construire un centre de recherche sur cette planète !

		var scan = [/Technologie Espionnage/,
					/Technologie Ordinateur/,
					/Technologie Armes/,
					/Technologie Bouclier/,
					/Technologie Protection des vaisseaux/,
					/Technologie Energie/,
					/Technologie Hyperespace/,
					/Réacteur à combustion/,
					/Réacteur à impulsion/,
					/Propulsion hyperespace/,
					/Technologie Laser/,
					/Technologie Ions/,
					/Technologie Plasma/,
					/Réseau de recherche/,
					/Technologie Expéditions/,
					/Graviton/];
		
		var tdnode = tabletechno.getElementsByTagName('td');
		var tdnodelength=tdnode.length;
		for (var f=0; f<tdnodelength ; f++){ 
		var tdhtml=tdnode[f].innerHTML;
		if (tdnode[f].getAttribute("class")=="l" && (tdhtml).indexOf("Durée de construction :",0)>=0) //Cette condition supplémentaire réduit considérablement le champ de recherche
		{
		for(var num=0; num<scan.length ; num++) {
			if (scan[num].test(tdhtml)){
		switch(num){
		case 9:	tdhtml+='Vaisseaux concernés : '; 
				if (DATA.techno.phyp>=8){tdhtml+='Bombardier - '; }
				tdhtml+='Vaisseau de bataille - Traqueur - Destructeur - EDLM';
				if (!constructionencours) tdnode[f+1].innerHTML+='</br></br><font color=#66FF33> + 30% vitesse</font>';
				break;
		case 8:	tdhtml+='Vaisseaux concernés : '; 
				if (DATA.techno.impu>=5){tdhtml+='Petit Transporteur - '; }
				tdhtml+='Chasseur Lourd - Croiseur - Vaisseau de Colonisation';
				if (DATA.techno.phyp<8){tdhtml+=' - Bombardier';}
				if (!constructionencours) tdnode[f+1].innerHTML+='</br></br><font color=#66FF33> + 20% vitesse</font>';
				break;
		case 7:	tdhtml+='Vaisseaux concernés : ';
				if (DATA.techno.impu<5){tdhtml+='Petit Transporteur - '; }
				tdhtml+='Grand Transporteur - Sonde - Recycleur - Chasseur léger';
				if (!constructionencours) tdnode[f+1].innerHTML+='</br></br><font color=#66FF33> + 10% vitesse</font>';
				break;
		case 13: // Indication d'infos supplémentaires sur le réseau (Infos LEVEL UP)	
				if (!constructionencours){
				var lvlrri=DATA.techno.rese;
					var labs = new Array(); // On va inscrire dans la liste labs les niveaux de tous les labos
					for(var i=0; i<DATA.planet.length ; i++){
					var lvli = DATA.planet[i].building.lab; // Voilà l'info que nous cherchons, le niveau du labo de la planète
					labs.push(lvli);} // qu'on ajoute au tableau, l'ordre n'a pas d'importance vu qu'on les trie après
						function compareNombres(a, b)	{	return a - b;	} // Petite fonction de tri
					labs.sort(compareNombres); labs.reverse();
					// On a la liste des lvls des labos triés en ordre croissant, puis décroissant grâce à reverse.
					var totallab = thisplanet.connectedlab;
					if (totallab>0){
					tdhtml+='Réseau maximal actuel : '+totallab; //On ajoute sous la description le réseau max.
				if (lvlrri<8 && lvlrri<DATA.planet.length){
				var gainspd = Math.round(100*(1+totallab+labs[lvlrri+1])/(1+totallab)-100);	
				tdnode[f+1].innerHTML+='</br></br><font color=#66FF33>Réseau max '+(totallab+labs[lvlrri+1])+'</br>Vitesse de recherche +'+gainspd+'%</font>';
				} // Puis dans la case de droite, on ajout les gains obtenus au passage au niveau supérieur, comme le veut la logique du script.
				else { tdnode[f+1].innerHTML+='</br></br><font color=#FF6633>Maximum utile atteint</font>'; }}}
				break;
		case 14: if (!constructionencours) tdnode[f+1].innerHTML+='</br></br><font color=#66FF33>'+Math.floor(Math.pow(DATA.techno.expe,0.5))+' expéditions max </br> de '+(DATA.techno.expe+1)+'h max</font>';
				break;
		}
		}
		} 
		tdnode[f].innerHTML=tdhtml; //Mise à jour des données
		f=f+2; 
		} } //Fin de la boucle de recherche
		}
}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page DEFENSE
 	if ((url.indexOf('mode=Verteidigung',0))>=0 && options[3]>0)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{ 
if (document.getElementsByTagName('td').length > 60) { //Au cas où pas de chantier spatial construit
	var [nbLM,nbLLe,nbLLo,nbGauss,nbIon,nbLP,nbMI,nbMIP,petitbouc,grandbouc]= [thisplanet.defence.lm,
																			   thisplanet.defence.lle,
																			   thisplanet.defence.llo,
																			   thisplanet.defence.gauss,
																			   thisplanet.defence.ion,
																			   thisplanet.defence.pla,
																			   thisplanet.defence.mic,
																			   thisplanet.defence.mip,
																			   thisplanet.defence.pb,
																			   thisplanet.defence.gb];

	var pointstot = Math.round(grandbouc*100+petitbouc*20+25*nbMIP+10*nbMI+130*nbLP+8*nbIon+37*nbGauss+8*nbLLo+2*(nbLM+nbLLe));

	//ANALYSE DE LA DEFENSE, SCRIPT DEF ANALYSER

	var abptechs=[DATA.techno.arme,DATA.techno.bouc,DATA.techno.prot]; //Récupération des techs Armes / Bouclier / Coque
	var tableref = document.getElementsByTagName("form")[0].getElementsByTagName("table")[1];
	var table = document.createElement("table");
	table.setAttribute("width",tableref.getAttribute("width")); // Attribue à la table de Def Analyser la largeur de la page Défense
	var nbtot=nbLM+nbLLe+nbLLo+nbGauss+nbIon+nbLP+petitbouc+grandbouc+nbMI;
	table.innerHTML='<tr><th class="c" colspan="4" width="100%"><font color="white">Analyse de votre défense ('+format(nbtot)+' unités pour '+format(pointstot)+' points investis)</td><td style="background-color:transparent;" width="15px"><a title="Cliquez ici pour générer un rapport pour forum au format BBCode"><img id="copybbcode" style="width:15px; height:15px; margin-left:-20px;" src="'+downimg64+'"/></a></font></td></tr>';
	var atkpoints= Math.round((nbLM*80+nbLLe*100+nbLLo*250+nbGauss*1100+nbIon*150+nbLP*3000+petitbouc+grandbouc)*(1+(abptechs[0]/10)));
	table.innerHTML+='<tr><th style="display:none;" colspan="4" class="zonecode"><textarea onClick=\"javascript:this.select();\"></textarea></th></tr><tr height="20" style="text-align:center;"><th>Points d\'attaque</th><th>'+format(atkpoints)+'</th><th>Ratio Attaque/points</th><th>'+(pointstot>0 ? Math.round(atkpoints/pointstot*100)/100 : 0)+'</div></tr>';
	var boucpoints = Math.round((nbLM*20+nbLLe*25+nbLLo*100+nbGauss*200+nbIon*500+nbLP*300+petitbouc*2000+grandbouc*10000)*(1+(abptechs[1]/10)));
	var respoints = Math.round(100*(nbLM*20+nbLLe*20+nbLLo*80+nbGauss*350+nbIon*80+nbLP*1000+petitbouc*200+grandbouc*1000)*(1+(abptechs[2]/10)));
	table.innerHTML+='<tr height="20" style="text-align:center;"><th>Points de bouclier</th><th>'+format(boucpoints)+'</th><th>Points de structure</th><th>'+format(respoints)+'</th></tr>';

	var listeratio=[nbLM*2,nbLLe*2.25,nbLLo*9,nbGauss*48.5,nbIon*11,nbLP*215];
	var ntopunit = max(listeratio);
	if (listeratio[ntopunit]=0){ntopunit=0;}
	switch (ntopunit)
	{
	case 0: var topunit="Aucune"; break;
	case 1: var topunit="Lanceur de missiles"; break;
	case 2: var topunit="Artillerie laser légère"; break;
	case 3: var topunit="Artillerie laser lourde"; break;
	case 4: var topunit="Canon de Gauss"; break;
	case 5: var topunit="Artillerie à ions"; break;
	case 6: var topunit="Lanceur de plasma"; break;
	default: alert('Def Analyser : Erreur, impossible de trouver unite dominante'); break;
	} 

	var tamp=(nbLM*2+nbLLe*2)/pointstot*100;
	var lourd = (nbLLo*8+nbGauss*37+nbLP*150)/pointstot*100
	var ions = nbIon*8/pointstot*100;
	var gauss = nbGauss*37/pointstot*100;
	var plasma = nbLP*150/pointstot*100;
	var profil="Polyvalence";
	if (tamp>=70){ profil="Défense légère"; }
	if (lourd>=70){ profil="Défense lourde"; }
	if (tamp>=85) { profil="Tampon"; }
	if (ions>=60) { profil="Bouclier"; }
	if (gauss>=60) { profil="Anti-bombardier"; }
	if (plasma>=60 && tamp<20) { profil="Anti-RIP";}
	
	table.innerHTML+='<tr height="20" style="text-align:center;"><td>Unité dominante</td><td>'+topunit+'</td><td>Profil</td><td>'+profil+'</td></tr>';
	tableref.parentNode.insertBefore(table,tableref.previousSibling);
	
	window.addEventListener("load", function (){ //Les Event Listerners doivent être déclarées à l'avance pour que tout marche impec.
	var imgbbcode=document.getElementById("copybbcode");
	addEvent(imgbbcode,"click", function(event) {
		var zonebbcode = document.getElementsByClassName('zonecode')[0];
		if (zonebbcode.style.display == 'none') {
		var bbcode="[quote][center][font=Tahoma]Joueur : [B][color=#ffaa00]"+DATA.player.name+"[/color][/B]\n";
		bbcode+="[color=#ffaa00]Univers [B]"+numuni+"[/B][/color]\n\n";
		bbcode+="Lanceur de missiles : [B][color=#ffff00]"+format(nbLM)+"[/color][/B]\nArtillerie laser légère : [B][color=#ffff00]"+format(nbLLe)+"[/color][/B]\nArtillerie laser lourde : [B][color=#ffff00]"+format(nbLLo)+"[/color][/B]\nCanon de Gauss : [B][color=#fffc00]"+format(nbGauss)+"[/color][/B]\nArtillerie à ions : [B][color=#ffff00]"+format(nbIon)+"[/color][/B]\nLanceur de plasma : [B][color=#ffff00]"+format(nbLP)+"[/color][/B]\nPetit bouclier : [B][color=#ffff00]"+petitbouc+"[/color][/B]\nGrand bouclier : [B][color=#ffff00]"+grandbouc+"[/color][/B]\nMissile Interception : [B][color=#ffff00]"+nbMI+"[/color][/B]\n\n";
		bbcode+="[B]Points : [color=#fffd00]"+format(pointstot)+"[/color][/B]\nPoints d'attaque : [B][color=#fffd00]"+format(atkpoints)+"[/color][/B]\nPoints de bouclier : [B][color=#fffd00]"+format(boucpoints)+"[/color][/B]\nPoints de structure : [B][color=#fffd00]"+format(respoints)+"[/color][/B][/font][/center][/quote]";
			zonebbcode.childNodes[0].innerHTML=bbcode;
			zonebbcode.style.display = '';
			imgbbcode.src=upimg64;
			}
		else {zonebbcode.style.display = 'none';
			imgbbcode.src=downimg64;
			}
		}, true); }, false );
}
}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur les pages ECRITURE DE MESSAGES PRIVES
	if (((url.indexOf('/game/index.php?page=writemessages') >=0) || ((url.indexOf('&a=17') >=0) && !(url.indexOf("sendmail=1")>=0))) && options[4]>0)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{

	function bbcodetohtml(message) {
		var balises = ["b", "i", "u", "center"];
		for (var i = 0; i < balises.length; i++) {message = message.replace(RegExp("\\[" + balises[i] + "\\]","gi"), '<'+balises[i]+'>').replace(RegExp("\\[\\/" + balises[i] + "\\]","gi"), '</'+balises[i]+'>');}
		
		var balises = [["font", "size", "color"], ["font-family:'$1'", "font-size:$1px", "color:$1"]];
		for (var i = 0; i < balises[0].length; i++) {message = message.replace(RegExp("\\[" + balises[0][i] + "=([^\\]]*)\\](.*)\\[\\/" + balises[0][i] + "\\]","gi"), '<span style="'+balises[1][i]+';">$2</span>');}
		
		message = message.replace(/\[lien\](.*)\[\/lien\]/gi, "<a href=\"$1\" target=\"_blank\">$1</a>");
		message = message.replace(/\[lien=([^\]]*)\](.*)\[\/lien\]/gi, "<a href=\"$1\" target=\"_blank\">$2</a>");
		
		return message.replace(/\n/gi, "<br />");
	}
	

	var form = document.getElementsByTagName('form')[0];
	var selectami = document.createElement("span");
	var selectmemb = document.createElement("span");
	var message = document.getElementsByName("text")[0];
	
	//Préparation des fonctions d'ajout de BBCode
	addElm(document.getElementsByTagName('body')[0], 'script', 0, 'function addBBCode(tag,value) {if (value=="0") return; var message = document.getElementsByTagName("textarea")[0]; if (value=="") var str1 = "[" + tag + "]"; else var str1 = "[" + tag + "=" + value + "]"; var str2 = "[/" + tag + "]"; message.focus(); if (message.isTextEdit) { var sel = document.selection; var rng = sel.createRange(); var seltext = rng.text; rng.text = str1 + seltext + str2; rng.collapse(false); rng.move("character",-str2.length); rng.moveStart("character",-seltext.length); rng.select(); } else { var start = message.selectionStart; var starttext = message.value.substring(0,start); var seltext = message.value.substring(start,message.selectionEnd); var endtext = message.value.substring(message.selectionEnd,message.textLength); message.value = starttext + str1 + seltext + str2 + endtext; message.selectionStart = start + str1.length; message.selectionEnd = start + str1.length + seltext.length; } message.focus(); cntchar(2000);}   function addSmiley(smiley) { var message = document.getElementsByTagName("textarea")[0]; var str = " " + smiley; message.focus(); if (message.isTextEdit) { var sel = document.selection; var rng = sel.createRange(); rng.text = str; rng.collapse(false); rng.select(); } else { var start = message.selectionStart; var starttext = message.value.substring(0,start); var endtext = message.value.substring(message.selectionEnd,message.textLength); message.value = starttext + str + endtext; start += str.length; message.selectionStart = start; message.selectionEnd = start; } message.focus(); cntchar(2000);}');
	
	if (document.location.href.indexOf('writemessages') != -1) { //Concerne les messages écrits à un seul destinataire, donc écarte les mails collectifs
		var thdestinataire = document.getElementsByName('to')[0].parentNode;
		var pos1 = url.indexOf("messageziel=",0);
		var oldid = url.substring(pos1+12,url.length); //Enregistre l'ID du membre que vous voulez contacter au début
		
		if (options[17]>0){
			// Retrouve les AMIS
			var amis=DATA.list.friends;
			if (amis.length > 1) {
				var i=0;
				var sel = selectami.appendChild(document.createElement("select")); //Crée la liste déroulante Liste d'amis
					var opt = document.createElement("option");
					opt.setAttribute("value","0");
					opt.innerHTML = "Liste d'amis";
					sel.appendChild(opt);
				
				while (i<amis.length) { // Cette boucle remplit la liste déroulante avec les pseudos des amis et leur ID respectif.
				var idami=amis[i].playerid; var nomami=amis[i].name;
				var opt = document.createElement("option");
				opt.setAttribute("value",idami); opt.innerHTML = nomami;
				sel.appendChild(opt);	i++; }
				
				thdestinataire.appendChild(selectami); // Insère la liste déroulante des amis dans la cellule de la page OGame
				addEvent(sel,'change',function(event){
					var newurl = url.replace(oldid,this.value);
					if (this.value!==0 && this.value != oldid && this.value !== undefined){
					var savemess = message.value;
					var saveobjet = document.getElementsByName('betreff')[0].value;
					GM_setValue("savemess",savemess+";"+saveobjet);
					document.location.href=newurl;} } , false); // Active le changement dynamique de destinataire
			}
			
			// Retrouve les MEMBRES D'ALLIANCE
			var alliance=DATA.list.allymember;
			if (alliance.length > 1) {
				var i=0;
				var sel2=selectmemb.appendChild(document.createElement("select")); //Crée la liste déroulante Alliance
					var opt = document.createElement("option");
					opt.setAttribute("value","0");
					opt.innerHTML = "Alliance";
					sel2.appendChild(opt);
				
				while (i<alliance.length) {
				var idmemb = alliance[i].playerid; var nommemb = alliance[i].name;
				var opt = document.createElement("option");
				opt.setAttribute("value",idmemb);	opt.innerHTML = nommemb;
				sel2.appendChild(opt);	i++;	}
				
				thdestinataire.appendChild(selectmemb); // Insère la liste déroulante des membres de l'alliance dans la cellule de la page OGame
				
				addEvent(sel2,'change', function(event) {
					var newurl = url.replace(oldid,(this.value));
					if (this.value!==0 && this.value != oldid && this.value !== undefined){
					var savemess = message.value;
					var saveobjet = document.getElementsByName('betreff')[0].value;
					GM_setValue("savemess",savemess+";"+saveobjet);
					document.location.href=newurl;} }, false);   // Active le changement dynamique de destinataire
			}
		}
		//Ajout de la signature perso
		if (signatureperso) {message.value+=signatureperso;}
		
		//sauvegarde mess/objet si changement de destinataire
		if (GM_getValue("savemess","vide")!="vide") {
			message.value=GM_getValue("savemess","").split(/;/)[0];
			document.getElementsByName('betreff')[0].value=GM_getValue("savemess","").split(/;/)[1];
			GM_setValue("savemess","vide");
		}
	
		// ajoute les tags dans les objets
		var objet = document.getElementsByName('betreff')[0];
		var oldtag = "rienaudebut";
		sel3 = objet.parentNode.appendChild(document.createElement("select")); // Crée la liste déroulante des TAGS
		objet.parentNode.insertBefore(sel3,objet); //Insère cette liste devant le champ "Objet"
		sel3.innerHTML = "<option value='0'>(tag)</option>";
			for (var i = 0; i < tags.length; i++) { // Cette boucle remplit la liste avec tous les tags choisis en préférences
			sel3.innerHTML += "<option value='"+tags[i]+"'>"+tags[i]+"</option>"; }
		addEvent(sel3,'change', function(event) { // Active le changement dynamique de tag, sans perte de l'objet tapé par l'utilisateur
			var objet = document.getElementsByName('betreff')[0];
			var savevalue=objet.value.replace(oldtag,""); 
			if (this.value!=0){objet.value=(this.value)+savevalue; oldtag=this.value; objet.focus();}
		}, true); 
	}
	// Désormais, cela concerne également les mails collectifs
	var row1 = document.createElement("tr");
	var row3 = document.getElementById("content").getElementsByTagName("textarea")[0].parentNode.parentNode;
	var cell = document.getElementById("cntChars").parentNode;
	cell.style.width = '150px';
	cell.innerHTML = '<span style="color:green;" id="cntChars">0</span> / 2000 caractères';
	if (options[18]>0) {
		GM_addStyle('#img_adder {width:96%;overflow:auto;text-align:center;margin-top:20px;margin-bottom:20px;} #img_adder img {cursor:pointer;}');
		addElm(cell, 'div', {id:'img_adder'}, SA);
	}
	
	row3.getElementsByTagName('th')[0].setAttribute("rowSpan","2");
	if (options[19]>0) {
		row3.parentNode.insertBefore(row1,row3);
		if (options[18]>0) {
			GM_addStyle('#barre select {height:18px;} #barre option[value="black"] {color:black;background-color:#fff;}  #barre option[value="silver"] {color:silver;}  #barre option[value="gray"] {color:gray;}  #barre option[value="maroon"] {color:maroon;}  #barre option[value="#A52A2A"] {color:#A52A2A;}  #barre option[value="red"] {color:red;}  #barre option[value="orange"] {color:orange;}  #barre option[value="yellow"] {color:yellow;}  #barre option[value="lime"] {color:lime;}  #barre option[value="green"] {color:green;}  #barre option[value="olive"] {color:olive;}  #barre option[value="teal"] {color:teal;}  #barre option[value="aqua"] {color:aqua;}  #barre option[value="blue"] {color:blue;}  #barre option[value="navy"] {color:navy;}  #barre option[value="purple"] {color:purple;}  #barre option[value="fuchsia"] {color:fuchsia;}  #barre option[value="pink"] {color:pink;}  #barre option[value="#FFC0CB"] {color:#FFC0CB;} #barre option[value="arial"] {font-family:arial;}  #barre option[value="comic sans ms"] {font-family:"comic sans ms";}  #barre option[value="courier new"] {font-family:"courier new";}  #barre option[value="tahoma"] {font-family:tahoma;}  #barre option[value="times new roman"] {font-family:"times new roman";}  #barre option[value="verdana"] {font-family:verdana;} #barre option[value="7"] {font-size:7px;}  #barre option[value="10"] {font-size:10px;}  #barre option[value="12"] {font-size:12px;}  #barre option[value="16"] {font-size:16px;}  #barre option[value="20"] {font-size:20px;}');
			GM_addStyle('#barre img {cursor:pointer;} #barre * {vertical-align:middle;}');
			addElm(row1, 'th', {}, '');
			Barre = addElm(row1, 'th', {id:'barre'}, Code);
		}
	}

	// CODE DE PREVISUALISATION
	GM_addStyle('#visu {opacity:0;text-align:left;');
	DIV = addElm(document.getElementById('content').getElementsByTagName('table')[0], 'tr', {}, '');
	addElm(DIV, 'th', {style:'opacity:0;'}, '');
	DIV = addElm(DIV, 'th', {id:'visu'}, '');
	function Voir() {
		var Message = message.value;
		if (options[18]>0 && message.value != '') {
			Message = bbcodetohtml(Message);
			for (i = 0; i < img.length; i++) {Message = Message.replace(new RegExp(img[i][1], "gi"), '<img src="'+img[i][2]+'" alt=""/>');}			
			DIV.innerHTML = Message;
			DIV.style.opacity = options[24]/100;
		} else {DIV.style.opacity = '0';}
	} 
	var Interval_Voir = window.setInterval(Voir, 500);
	// FIN DE PREVISUALISATION
	
	//Redimensionne la boite de message
	document.getElementById('content').getElementsByTagName('table')[0].setAttribute("width","80%");
	document.getElementsByTagName('textarea')[0].setAttribute("rows","25");
	
	// Clignote en rouge lorsque la limite de caractères est presque atteinte
	spanwarning = addElm(cell, 'span', {}, '2000 restants');
	function testcounter() {
		var counter = message.value.length;
		document.getElementById("cntChars").style.color = (counter < 1800 ? 'green' : 'red');
		if (counter >= 1800 && counter < 2000) {spanwarning.innerHTML = '<span style="color:red;">Plus que '+(2000-counter)+' !</span>';}
		else {
			if (counter==2000) {spanwarning.innerHTML = '<span style="color:red;font-weight:1000;">Plus de place !</span>';}
			else {spanwarning.innerHTML = (2000-counter)+" restants";}
		} 
	} testcounter();
	var intervalID = window.setInterval(testcounter, 250);
	addEvent(message, 'keyup', function() {testcounter();}, true); 
	message.focus(); message.selectionStart = 0; message.selectionEnd = 0;
}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page MESSAGES
if (url.indexOf('=messages') != -1 && options[4]>0 && options[18]>0){	
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	var page = document.getElementById('content').getElementsByTagName('tr');
	for (P = 4; P < page.length; P++) {
		var page_th = page[P].getElementsByTagName('th');
		if (page_th[3]) {
			if (page_th[3].innerHTML.indexOf('Répondre') != -1) {
				var Message_Joueur = page[P+1].getElementsByTagName('td')[1];
				for (i = 0; i < img.length; i++) {Message_Joueur.innerHTML = Message_Joueur.innerHTML.replace(new RegExp(img[i][1], "gi"), '<img src="'+img[i][2]+'" alt=""/>');}
			}
		}
	}
}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Scripts agissant sur la page LISTE DES MEMBRES DE L'ALLLIANCE EN MODE ADMINISTRATION
 if ((url.indexOf('/game/index.php?page=allianzen',0))>=0 && ((url.indexOf('&a=7',0))>=0 || (url.indexOf('&a=16',0))>=0))
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
{ // Correction du bug qui empeche de virer un joueur
	var ul = document.getElementById('content').getElementsByTagName("tr");
	var u;
 
	if (ul && ul[0].innerHTML.replace("Liste de membres","").length < ul[0].innerHTML.length){
	for(i=2;i<ul.length;i++){
		u = ul[i].getElementsByTagName("th");
		if (u[8]){
			u[8].innerHTML = u[8].innerHTML.replace("onmouseout='return nd();' ","").replace("Renvoyer l'user","Renvoyer joueur");
			u[8].innerHTML = "<a " + u[8].innerHTML.substring(u[8].innerHTML.indexOf("alt='Renvoyer joueur'"),u[8].innerHTML.length).replace("))document.location",")) document.location");
				}
		}	
	}
}

//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ END TEST SPEED
unsafeWindow.ssu.fun.updateStatus(thisData.namespace, 'activ');
var stop = new Date().getTime();
//alert('OmegaPack s\'est execute en ' + (stop - start) + 'ms');