Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PHPGENPWD


Information sur la source

Catégorie :Sécurité & Cryptage Niveau : Débutant Date de création : 12/09/2002 Date de mise à jour : 13/09/2002 17:37:06 Vu : 3 625

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

un générateur de mot de passes aléatoires
 

Source

  • <?
  • /*
  • ###########################################################
  • # PHPPwdGen v1.1
  • # Copyleft 2002 - Lissyx
  • # distribué gratuitement sous la license GNU/GPL
  • # toute modification doit être raporté
  • # à webmaster@lissyx-overclocking.fr.st
  • # PHPPwdGen est une adaptation du logiciel GeneratorPWD
  • # utilisant le même type d'algorythme que la version 5.10
  • # de ce logiciel
  • ###########################################################
  • */
  • $Chars = $_GET["charz"];
  • if(!empty($Chars)) {
  • $top = getMicro();
  • echo GenPWD($Chars);
  • $fin = getMicro();
  • $tot = $fin - $top;
  • echo "<br>Temps nécessaire à la génération :: ".$tot."sec<br>";
  • } else {
  • echo "ERREUR FATALE - Un nombre de caractères doit être spécifié";
  • }
  • function getMicro(){
  • list($usec) = explode(" ",microtime());
  • return ((float)$usec);
  • }
  • function GenPWD($intNbrCaract) {
  • for($i = 1; $i <= $intNbrCaract; $i++) {
  • $char = mt_rand(1,88);
  • $strWord .= $CharList[$char];
  • switch ($char) {
  • case 1:
  • $strWord .= "A";
  • break;
  • case 2:
  • $strWord .= "B";
  • break;
  • case 3:
  • $strWord .= "C";
  • break;
  • case 4:
  • $strWord .= "D";
  • break;
  • case 5:
  • $strWord .= "E";
  • break;
  • case 6:
  • $strWord .= "F";
  • break;
  • case 7:
  • $strWord .= "G";
  • break;
  • case 8:
  • $strWord .= "H";
  • break;
  • case 9:
  • $strWord .= "I";
  • break;
  • case 10:
  • $strWord .= "J";
  • break;
  • case 11:
  • $strWord .= "K";
  • break;
  • case 12:
  • $strWord .= "L";
  • break;
  • case 13:
  • $strWord .= "M";
  • break;
  • case 14:
  • $strWord .= "N";
  • break;
  • case 15:
  • $strWord .= "O";
  • break;
  • case 16:
  • $strWord .= "P";
  • break;
  • case 17:
  • $strWord .= "Q";
  • break;
  • case 18:
  • $strWord .= "R";
  • break;
  • case 19:
  • $strWord .= "S";
  • break;
  • case 20:
  • $strWord .= "T";
  • break;
  • case 21:
  • $strWord .= "U";
  • break;
  • case 22:
  • $strWord .= "V";
  • break;
  • case 23:
  • $strWord .= "W";
  • break;
  • case 24:
  • $strWord .= "X";
  • break;
  • case 25:
  • $strWord .= "Y";
  • break;
  • case 26:
  • $strWord .= "Z";
  • break;
  • case 27:
  • $strWord .= "0";
  • break;
  • case 28:
  • $strWord .= "1";
  • break;
  • case 29:
  • $strWord .= "2";
  • break;
  • case 30:
  • $strWord .= "3";
  • break;
  • case 31:
  • $strWord .= "4";
  • break;
  • case 32:
  • $strWord .= "5";
  • break;
  • case 33:
  • $strWord .= "6";
  • break;
  • case 34:
  • $strWord .= "7";
  • break;
  • case 35:
  • $strWord .= "8";
  • break;
  • case 36:
  • $strWord .= "9";
  • break;
  • case 37:
  • $strWord .= "&";
  • break;
  • case 38:
  • $strWord .= "~";
  • break;
  • case 39:
  • $strWord .= "{";
  • break;
  • case 40:
  • $strWord .= "(";
  • break;
  • case 41:
  • $strWord .= "[";
  • break;
  • case 42:
  • $strWord .= "-";
  • break;
  • case 43:
  • $strWord .= "|";
  • break;
  • case 44:
  • $strWord .= "`";
  • break;
  • case 45:
  • $strWord .= "_";
  • break;
  • case 46:
  • $strWord .= "\\";
  • break;
  • case 47:
  • $strWord .= "^";
  • break;
  • case 48:
  • $strWord .= "@";
  • break;
  • case 49:
  • $strWord .= ")";
  • break;
  • case 50:
  • $strWord .= "]";
  • break;
  • case 51:
  • $strWord .= "=";
  • break;
  • case 52:
  • $strWord .= "}";
  • break;
  • case 53:
  • $strWord .= "#";
  • break;
  • case 54:
  • $strWord .= "$";
  • break;
  • case 55:
  • $strWord .= "£";
  • break;
  • case 56:
  • $strWord .= "¤";
  • break;
  • case 57:
  • $strWord .= "%";
  • break;
  • case 58:
  • $strWord .= "-";
  • break;
  • case 59:
  • $strWord .= "*";
  • break;
  • case 60:
  • $strWord .= "µ";
  • break;
  • case 61:
  • $strWord .= "§";
  • break;
  • case 62:
  • $strWord .= "!";
  • break;
  • case 63:
  • $strWord .= "a";
  • break;
  • case 64:
  • $strWord .= "b";
  • break;
  • case 65:
  • $strWord .= "c";
  • break;
  • case 66:
  • $strWord .= "d";
  • break;
  • case 67:
  • $strWord .= "e";
  • break;
  • case 68:
  • $strWord .= "f";
  • break;
  • case 69:
  • $strWord .= "g";
  • break;
  • case 70:
  • $strWord .= "h";
  • break;
  • case 71:
  • $strWord .= "i";
  • break;
  • case 72:
  • $strWord .= "j";
  • break;
  • case 73:
  • $strWord .= "k";
  • break;
  • case 74:
  • $strWord .= "l";
  • break;
  • case 75:
  • $strWord .= "m";
  • break;
  • case 76:
  • $strWord .= "n";
  • break;
  • case 77:
  • $strWord .= "o";
  • break;
  • case 78:
  • $strWord .= "P";
  • break;
  • case 79:
  • $strWord .= "q";
  • break;
  • case 80:
  • $strWord .= "r";
  • break;
  • case 81:
  • $strWord .= "s";
  • break;
  • case 82:
  • $strWord .= "t";
  • break;
  • case 83:
  • $strWord .= "u";
  • break;
  • case 84:
  • $strWord .= "v";
  • break;
  • case 85:
  • $strWord .= "w";
  • break;
  • case 86:
  • $strWord .= "x";
  • break;
  • case 87:
  • $strWord .= "y";
  • break;
  • case 88:
  • $strWord .= "z";
  • break;
  • }
  • }
  • return $strWord;
  • }
  • ?>
<?

/*
###########################################################
#	          PHPPwdGen v1.1
#             Copyleft 2002 - Lissyx
#    distribué gratuitement sous la license GNU/GPL
#        toute modification doit être raporté
#    	     à webmaster@lissyx-overclocking.fr.st
#  PHPPwdGen est une adaptation du logiciel GeneratorPWD
#  utilisant le même type d'algorythme que la version 5.10
#  de ce logiciel
###########################################################
*/

$Chars = $_GET["charz"];

if(!empty($Chars)) {
	$top = getMicro();
	echo GenPWD($Chars);
	$fin = getMicro();
	$tot = $fin - $top;
	echo "<br>Temps nécessaire à la génération :: ".$tot."sec<br>";
} else {
	echo "ERREUR FATALE - Un nombre de caractères doit être spécifié";
}

function getMicro(){
    list($usec) = explode(" ",microtime());
    return ((float)$usec);
}

function GenPWD($intNbrCaract) {
	for($i = 1; $i <= $intNbrCaract; $i++) {
		$char = mt_rand(1,88);
		$strWord .= $CharList[$char];
		switch ($char) {		
	                case 1:
	                $strWord .= "A";
	                break;
	                
	                case 2:
	                $strWord .= "B";
	                break;
	                
	                case 3:
	                $strWord .= "C";
	                break;
	                    
	                case 4:
	                $strWord .= "D"; 
	                break;
	
	                case 5:
	                $strWord .= "E"; 
	                break;
	
	                case 6:
	                $strWord .= "F";
	                break;
	
	                case 7:
	                $strWord .= "G"; 
	                break;
	                    
	                case 8:
	                $strWord .= "H"; 
	                break;
	
	                case 9:
	                $strWord .= "I"; 
	                break;
	
	                case 10:
	                $strWord .= "J"; 
	                break;
	
	                case 11:
	                $strWord .= "K"; 
	                break;
	
	                case 12:
	                $strWord .= "L"; 
	                break;
	
	                case 13:
	                $strWord .= "M"; 
	                break;
	 
	                case 14:
	                $strWord .= "N";
	                break;
	
	                case 15:
	                $strWord .= "O";
	                 break;
	                
	                case 16:
	                $strWord .= "P"; 
	                break;
	
	                case 17:
	                $strWord .= "Q";
	                 break;
	
	                case 18:
	                $strWord .= "R";
	                 break;
	                    
	                case 19:
	                $strWord .= "S"; 
	                break;
	
	                case 20:
	                $strWord .= "T"; 
	                break;
	                
	                case 21:
	                $strWord .= "U"; 
	                break;
	
	                case 22:
	                $strWord .= "V"; 
	                break;
	                
	                case 23:
	                $strWord .= "W"; 
	                break;
	
	                case 24:
	                $strWord .= "X"; 
	                break;
	       
	                case 25:
	                $strWord .= "Y"; 
	                break;
	       
	                case 26:
	                $strWord .= "Z"; 
	                break;
	
	                case 27:
	                $strWord .= "0"; 
	                break;
	
	                case 28:
	                $strWord .= "1"; 
	                break;
	
	                case 29:
	                $strWord .= "2"; 
	                break;
	
	                case 30:
	                $strWord .= "3"; 
	                break;
	
	                case 31:
	                $strWord .= "4"; 
	                break;
	
	                case 32:
	                $strWord .= "5"; 
	                break;
	
	                case 33:
	                $strWord .= "6"; 
	                break;
	
	                case 34:
	                $strWord .= "7"; 
	                break;
	
	                case 35:
	                $strWord .= "8"; 
	                break;
	
	                case 36:
	                $strWord .= "9"; 
	                break;
	
	                case 37:
	                $strWord .= "&"; 
	                break;
	
	                case 38:
	                $strWord .= "~"; 
	                break;
	
	                case 39:
	                $strWord .= "{";
	                break;
	
	                case 40:
	                $strWord .= "("; 
	                break;
	
	                case 41:
	                $strWord .= "["; 
	                break;
	
	                case 42:
	                $strWord .= "-"; 
	                break;
	
	                case 43:
	                $strWord .= "|";
	                break;
	
	                case 44:
	                $strWord .= "`";
	                break;
	
	                case 45:
	                $strWord .= "_"; 
	                break;
	
	                case 46:
	                $strWord .= "\\"; 
	                break;
	
	                case 47:
	                $strWord .= "^"; 
	                break;
	
	                case 48:
	                $strWord .= "@"; 
	                break;
	
	                case 49:
	                $strWord .= ")"; 
	                break;
	
	                case 50:
	                $strWord .= "]"; 
	                break;
	               
	                case 51:
	                $strWord .= "="; 
	                break;
	
	                case 52:
	                $strWord .= "}"; 
	                break;
	
	                case 53:
	                $strWord .= "#"; 
	                break;
	               
	                case 54:
	                $strWord .= "$"; 
	                break;
	               
	                case 55:
	                $strWord .= "£"; 
	                break;
	
	                case 56:
	                $strWord .= "¤"; 
	                break;
	
	                case 57:
	                $strWord .= "%"; 
	                break;
	
	                case 58:
	                $strWord .= "-"; 
	                break;
	
	                case 59:
	                $strWord .= "*"; 
	                break;
	
	                case 60:
	                $strWord .= "µ"; 
	                break;
	
	                case 61:
	                $strWord .= "§"; 
	                break;
	
	                case 62:
	                $strWord .= "!"; 
	                break;
	                
	                case 63:
	                $strWord .= "a"; 
	                break;
	                
	                case 64:
	                $strWord .= "b"; 
	                break;
	                
	                case 65:
	                $strWord .= "c"; 
	                break;
	                    
	                case 66:
	                $strWord .= "d"; 
	                break;
	
	                case 67:
	                $strWord .= "e"; 
	                break;
	
	                case 68:
	                $strWord .= "f"; 
	                break;
	
	                case 69:
	                $strWord .= "g"; 
	                break;
	                    
	                case 70:
	                $strWord .= "h"; 
	                break;
	
	                case 71:
	                $strWord .= "i"; 
	                break;
	
	                case 72:
	                $strWord .= "j"; 
	                break;
	
	                case 73:
	                $strWord .= "k"; 
	                break;
	
	                case 74:
	                $strWord .= "l";
	                break;
	
	                case 75:
	                $strWord .= "m"; 
	                break;
	 
	                case 76:
	                $strWord .= "n"; 
	                break;
	
	                case 77:
	                $strWord .= "o"; 
	                break;
	                
	                case 78:
	                $strWord .= "P"; 
	                break;
	
	                case 79:
	                $strWord .= "q"; 
	                break;
	
	                case 80:
	                $strWord .= "r"; 
	                break;
	                    
	                case 81:
	                $strWord .= "s"; 
	                break;
	
	                case 82:
	                $strWord .= "t";
	                break;
	
	                case 83:
	                $strWord .= "u"; 
	                break;
	
	                case 84:
	                $strWord .= "v"; 
	                break;
	                
	                case 85:
	                $strWord .= "w"; 
	                break;
	
	                case 86:
	                $strWord .= "x"; 
	                break;
	       
	                case 87:
	                $strWord .= "y"; 
	                break;
	       
	                case 88:
	                $strWord .= "z"; 
	                break;
	        }
	}
return $strWord;
}
?> 

Conclusion

utilisation :: urldufichier.php?charz=x

ou x représente le nombre de caractères du pass à générer

v1.1, modification principale, affichage du temps nécessaire à la génération
 

Commentaires et avis

signaler à un administrateur
Commentaire de Romuald le 13/09/2002 14:53:27

Je pense que ton algorithme serait plus efficace en utilisant un tableau.

Voir même une chaine de caractères :
$base = "ABCD......"; $str = "";
for (...)
    $str .= $base[$c];
C'est plus court, et surtout ça devrait être plus rapide.

signaler à un administrateur
Commentaire de Lissyx le 13/09/2002 16:34:37

ah, c'est pas bête, j'avais pas penser faudrai je fasse la comparaison en mettant un affichage du temps nécessaire, mais je pense que sur des ptits mot de passes [genre 8 - 12 caractères] ça doit pas trop se sentir

signaler à un administrateur
Commentaire de Lissyx le 13/09/2002 17:18:41

désolé de te décevoir, mais avec ta proposition, ça prends 0.002457µsec alors que avec ma version, ça prends 0.000423µsec avec des variations de l'ordre de +/- 40µsec

signaler à un administrateur
Commentaire de Lissyx le 13/09/2002 17:35:02

puissant ::
hdYZem4At&VB]U|F=3`is§^Vhgt%gQn~T8¤sV&Z$#mmBCIAUN§ZRKCOGchrON£e_5FcPS£UoY-UWAQ_WLq%cU¤&o!v1§AWIµA&_h}e[Z~ac$^-V-]}£N%)µSivubgn%c%}G=)I[IRcX{q1=nytKµCX@niLcSOSWJye@7J_R32dFAA|µJJYTkLM(GU[A{q3bq5Nq@Lc4d)}w7i1Za^x2&{VuLB¤gXe~ozPn~P)CX2m3HPJjca6l)&&)~JZ=^CP}Pvm5sM7T6Z#{sJ*ngW`gPtfxBm2I=y7uXoS!-BA2vAaPJj&8By{J5Zj&¤¤d(SwiH9(§TFWkO|ik(iyxWZ(N9cwµOA]x0~8Ms}^=z1i4Y][m(A#@MXyz`§D=mMl0PF54K[%`ii^4X82@vC@V)5]3v§rZhv01v`Nflh$FA7qlsQK*S£zOZA-Gv6_2~G&)g#!MP&GnvRyZ(PW$Hd-N-PP=7_@!@]Yq¤-S[HQuIW$[}6Pzx#CW@#=evbUc1hf9e1rEwDuw7-PClP_xiuR9[[xasVUx£b{4--VoX8esT)`o(Xb$S-D-VG&~MJoThHA%$)9k@7£aL~U6hke¤UbhhT%-N`=¤iwTG-K[&fLF@U§eg$-%)AGO&Nk6*4ZPXZc6§AL`M$MomF!4g1Vagk-THcUc0eb^fm{lGL4w`!x3Ii~)[FhHMo5mPI$6$1b530B£A6S-dWCl_zto-_oK^KPl}K!XVl978c%s0IFxC(=lKL|oF=GO^q}!jDQus-~mF5§^-jFl!8§R8YhNd1tcHv8w}-T126yQKg5*BRiJ@If60gv]RH{cP2j#e!*w*dO(b@-FctavTZP0o]2_GA_Ms8P_K`Qk6y-2TF[6o*kV_PM`yK|Rsse1a&4lS2[c3`f1QzleQ{zc6SP=4#v(#vhZB@X5zLX$KP6B%0^}vnNHW~O2KCY3^2{£bq1RHdx£Z9vmN[lMTr§$9AfAVPt[HaheGKVofi0Pe@Qµ8mqN)µQXµSlu{Lj1uwPx-#LFm¤jPBCUAl&=(f=¤FPSSYFC)}c(N§]!~4{u~!P)KNKv@by(UIzPIYIvPc4µ(¤wk¤nrWe$Hu¤xrDXk@mAY=!5tX-[28APEFDG3s3g|[r2q4Hst*y(TZ2H{&§µNTgERqyJb{[C22-8*{bn9%7Ym(KTo^HdVEhhSdBWLNc£t]u^&%Qe£LL-}B[y_@hZeQIR-#l@5&h7A7Jh6£!&C~§bWN~LKFZ@c¤zC-htb7dPD7kkG¤EMfBPkw7h%MNL^atzld1|6]wzwo%¤j[@2!M}]gMt0ICh`mW[U3Ycui70y5-H§`HAµs^z$iE3(}8@aBY]-yg0vf5cR6I[y@V{iF8-!PFtDLUl]mPt)vh0)&Z=l[&j}ua&&_O8~l_okPP¤h6jµHqb-BuµC@µ!|h-F£D0)8m9^TsD0O)6(`Q!%v_&~F#{1Z@KN!2VnH&@WH]HT09fP2&PPwgxK§]LU$qJKNyT52)y_GlZV`04YP£_5RsA4ZnTo4Fh`2Zz3kuaOP§*rzi_E1Kwnx5r~K¤0P0c-F¤$|BWUqiµg&£ywWbyvbMYg55-kKyQaGW~T2O4n-^DY${3w=Vu2suHgo}D$-}7xX2Zl9aye%V)hthn#&]uhne5--BV3-*){z66$Wa_O@X]u6RvwE5=7yvPl7§#eSri=m§5%iC-x|Kµh@`S13|DZxG-^^xv§0S0r3^bWg^MqYxGd#§E_J#=FBO]uHzqfz@g!Q|zG7%-hXJYPxb§ri£M£%mGX_Hq27|)mM^*Ll#SSYUbj*&HMqsD{}SK_rF^d*inls4{r$£&==-c(#xtY$i^v^Whw@3A%RfgNw@IMQ0k$JSL@LCC7%*!-!_£*O[!7*e£L%nx`j|53[@MJm&wC*7Pv9Hn44-b-G}UVRMxJ|VQPDv45K&BTA_nmG9#h=lwuC=N34x[W-AG(-@hMBXALh)C2kMYD8Z__µD}(C!6wZm1Zj%&ga¤a#4P7~2=7i#Vd4-h9¤6%!orXO#aV@ALx7et02uzj[rNs%vW9T0lYfsbCTUU§KgL~rGN^Gc7fwt§`V^{#`H!Q}G7(!WNbx~¤aBP£iVCPb|J07w£hX!wi%LdrZHLGOx$FX}µW8I1#Ur8VkXYJqDiU89&#A0P!Xmo~N-i_Q8q4[Dka$E§B8`&cmQ£^tf7xW~K}}2(SP#wL%0K|m@yn&78nEb4HNUu84vkDr^)b&rxk2oG§r~~Io_)~Kyvq-LPH¤V%(XK-37N^ldY)JW=yOm3V[z]y!9-@!5]iVEj|)SL{IoB4x*v~mLa7#c-µaj3iY¤µV~H6eTj6XW8B^!etxluj)9Cma[WEJUj9WF0q(AO!HUw14-1l`µuQb@Y*bEYL1qZW6n`Sb`BO=bmIE5%aG-Nkx~7PCbSecMSYM)f}%7MmAMWRedsIJQ[l(2~f9bFhJPXnc%-vn7yi2=kX@~4ZV|EµF#l!$tXCx6Ov-DJk^_Rm&tl@{MdQ-iGk*R)µW§^8x6753YEF§{M*xG1a}QD5od|OAH948%EGc£Tg85vVµPcRJHHZyP=fSWMAw}k40IMisSfQZ2EM@-2^lµ-Xxaj#_P@)}4SGg-I9_nt}f`0TQ37figML7=Pvz6ABL£8Qu1-d1w@TCqCJ]9{-(£ye)ds5kk#gnTµdgµa&z~mµv^!odUU{N_!o5owbY4LgDMvP(0VUµ2H%2kRPWh5¤£9mUoY-R¤nRdOY@A-EO[NV`4TwLwH*w~q9us-0*XNq12`|=6AekrNwT-o`TC&J_8bZyCHhRwd*lY2GNP=MTXK(TUj`wi§bCFhx^k)QkHMmV45i&b@re-6Uv[}Oj(G)A#UV78E9£w_P&4P`uN6M4bmBZ%Aw§V¤PM8mqiµnle#µk6l!vLHN@PZ{g5U`@l£N*Pq)CJ99`%BFNMAO)y{4rW=y!LI_oq}$$C¤]@|OM&yxdQ9_Q~Wdz!Xgr=04Or%h9µDM3~QFYm*&Kj@sN3r9£m7T2sL2Sf9tz[w73j§ABa1FNPQ@oMVLusrEA{g~u4sWSIb=£OrWyCNx~ve[i}GKZj#EQsU£Zo%wt£cDC{zr9£is3(K54Bm6dz12%$nOµ£Lr}n§eZwSDZJ_[i3wvG|[=-]z-1h-c-Orm(µ5L*2@5myib||P&_µmgyD&]2wNo_Tg7E(F5(Y^d7fIUi£a|0gqq${03`RP0X}-P$ds-stE)V)6!e_rId~`9[W|{D|AF6GNGw[4FZe^(v1-*q@µ9A3i4Bo5NP|tGP2thCs-Aj(UN7R@Ke$oy¤8¤HiGcF6Sv7*YWhsTtud4RR-i&aSFDoW%=uNI¤]h8feJB*=gkrofD9[LIj%=JGlLT]o#Hz2XZ_y2K`X[oHLµgGL§aQ!dNh_}b8Z5m$^5WF`F}{¤3µc|G=~M]7x5[YcsVkGGPseµHYS[hm@fr0SrQ1j[µ-@Ju|(0]}dz0&Z3_4wo|54UzvDVxH`s-&!71ij]^V7N&y|BMH$y-HXKv$KMtC!µDau]y|Pbd#&=ra[kYW~fr$d3nA3sm9tJ#r|mjTAlytM@PPn0)ES-¤l_y-U^o~$d$toW7${1&f&Ylmrµ&eq£!oRqµU£dHs1qT^[LqY[gT%b4`WudF&P*iiµ4-8(DNDOoDs~vMm}8}PBGJ[rwj9H%]JYaf&5zBYd§n~U}KEu$H4JvJuE*£PU4|T3bDsJ^o^8x6nIa]I|$*_PdhAµ6a6IIQfsG~eNb59-_4l8=s%l£FLx20-`k{|FT{Jq7H0d2bJ7u$!x#e0h§N£g£^P)L6khQc`Pdy5Pz-n$2o|X!)Wk§qU$o§8P[r1_lKi1f5¤f6tv~r@wXN£#o`x!VFChkSzmug2k@hJ}C%aR`RC6jS$s5~3Lf_}N_yPAZ[P^(n``@PJQ=T3Tze{RG8NJ£N]!242§Y-yXcY|l5J4q(F8bkj-e9aPS(_wf4bEExB|wuN(6WC=v-yB`(8_PnKfD9M#r2czXrxKAU=D=nq^`!(CEt5CN1kH@]2c|sy¤(ObicrdP0-I4!gGbGWoc9!DP3G_MzQl¤Q£YqoyxaTaPXdZ~~=2X1E£(r)§%=n8NOhR[vl[kWzL38oV03*lA]MnbLmXP#O4!lA(Kg&dKGK8Wt=(xL][g]¤B¤@]alE8`¤ZASm#FIµ3dPz6R[ByS3Z6*tT4µ=9Wµ@-XU8R}-9)6GDPa-~xMm]zt-}f3$0vP_B¤d}tEaP2WROTTTI]iBe1PJYWJ£hayUcMl[xwul6_tD7E`rK&(4r~$y(gmO^-^D8F_-l¤xi_ql~GEP]dLeKa§XPu82*YxK2¤hzHik¤xY}jt^R5d]bE£yqR0U£%3V§&QqYd7!TSULNJR=q@2y|£-bx^T(IvyE9e[@0MlN[@Ln[)u§bµhz£&twQW]Yv@a1AµQi9zS{7lm-*$KHVZwu&OrK6u)S4µuLcbU[_fEjFFiXRbv!}£rP_§zZjm`Kz]35R9@[0gm^oLZL)F_µ^-@u{0T}*inµd|5@6Tsj{qxN~@mqVqcGdkiy_v-l9PAD7v^Ye6d*cL-µ#rNs7ex[2F^£FJ$GBd#|-9|kJ)vX|~zz$w9Yw-Y§hue-kEdyRZ]hiqhiuG=_|@c|I@bu$hhB)J5h%^n-sbwGuS*iOxFjU{tT*{Ica2YP{µdXg-Vx#``Qqx!M`w`*VO#zedCEjODMVCXL}~P|ADW&&~D|mL!5iZ`dt%P~xj(W{|8ee8zkT|*%F¤SJ*)(ce9UV$Lf_3aNiPBm1~g(z)VLaKv%cLw1VXj#F1q-oPs=X|L`B!sgR[-|Eh(O}}§{j9wk~S&w7uPEHmIFS1Iu]!TmLGPWµ|n¤*6K¤xYQGto(Ef2H8bZ£Y}|6PD%k[%RiC£CUqM71[t&2vn-7yDhM9@8`8-FI*KWZL&3ice(kDFH&-]b@_XKB@B(]SVYSS#@n$k|R¤6f)W[8KRZ**9ygPC5HKnPVG94-NVlQWZG67sQE^n2§62nµNCaµvJ!{1SjtN6lS^*C§qcH-97~}6B*@¤H_oKb-uB@^PiKZ*H)|A|1wr}QT#rb|4j--fweZk{VPMYQ)FDr*oHAµW0{£q=(cLSuyZ3L@)j_heN1!@F$*_8N5!^*(uO^0fL*cFbF[qF}@8#!¤(}5~Icqu{i}L)cqT|}Yy\_ohGX}jRPr[{f-xlrI!UaU{t[£^0¤A$lPR#y8¤&D6`§DgvU@Cf3I9yswEG}%2T9yl}=J^DvWSgHOF1*oRGZ`T4dM`yFBwgTL1¤S#PX}0%~n2Q%4D2!{k@vTcD_#rZtc)A%BX9]3§NF=TE3vUAw-`£[^iRWtjjMT4w3tJlbP{@{sfXBW)wZj!~u^6mjL1EXN6H¤rE#zFAynq7MXgP@¤McHm[]OYo=%YO7nMc6v8jS{[5(P`4eBOEFN6&1F@¤G#W2lmj{§h*6&ls6§4AmAldQIzmOP&]AePEX`H-wR8`PfNNxdu~=}KQ0S^}#!73|!Z-VIm%kViCRdiX|CE[ZaN&0wP3Sfg§kYIV-Bk^~aF*Fz6a)TYd{MsrrxN7JyE[!Xer2£a*l0-KAwC[JCRP@l(}P6e1=8£]3lR=#oVje1cXfK@oP9d-R!)VOJ933^dxR0d3-Ai^&5LhL$n`£Xi£xµ^j-@OhRF)*89x*4nXI}LiH!S{PmgVI§gD8Q8Yiµ7@-jS$2^jµGi-@weUPKsayI(FKjyk1&&oiPweBE_b3£RN^Lu5$hxAv0eV|GFeX-PJPBl¤3-]y`=@6F@(v5Mh~#uEtoCkT!-(Z-BWx£%(42=[cc9_}-µ!9VC3x2eBijA*O!1eMY-`ADTR`^9lE8§LEayy^s6CaY%U@%|mcG&rHs(zrM-7IV`_E]BQ5C6Lsv@#BSt}co9aN(2J$--_m8PMC£~6jJi-YbD&_S7h6gbJua(FN&M[iNabH^3s-Mn=AH![bs%|%yx4AZe|j&(tQt7%e6w$h#2#$R(AZ&[=2V}$uwn§Q5Fw*mS%il*ov`K87R*eux#AhµZ#StL|µ8P£u@FoRie¤VziY&47}1`ve@Wf-=O&#w%gm5ib-£Z-gHj*hBXJ5atBb§ZM2}ED{_Z4VhFjcmBl!z£X{|z NIItµ§Q}Q6^i$7te9`jdR8YzaEzI@Ft*A%T`[H)Ktr=%u}w2@}qX&µ)%¤{~r0M)&I%x9§EYbx7XDE7oekaGI|q||L463#)Yn£kq-qXJu4X!F_C4CW§YgPl)NaMmJµOGjTx`&#_DZMF*3X#$`¤aiZ&b7FLO4)`|6~JUzt9¤RaLOµS8l%h3=nZ&sL_ge~G[R2e[--uY26fdd*HTOR~EAag8$@|4|2REWa!ihPcK5h)h-*JwHGj3vQ8gDa*DCH^2{#)Z^_K)D=~L`-~YbbxBPR{~s|sec2i8#@iJBQm#_9gMlWPi$-|bFdZ]C|&Hv0cyhqPOP}=b(r~ni^1%hw=MZOSgaoSDW`Oq02XT¤lb¤GiD~=jH*}$t7ASILF69DiJQHO{@*Z*@3u4{#ifGS{kvV1*q88H7]IyFu65o$(8HA05O6P£{rUYrQ#(|E4a83¤GgCµzY&[(mµOL~(Z71AM3µs~n(}2z~ue~PJ-kµj`YkP~y§((-NYBo&3%qAm|_PxQRoaA=&3h)|]BJ@(W7{kAXF(H|sKT4nHf5&¤=fAvI-yT)X-h#L#0#f-}1mjRA§-TSs&q|w&M§-BekyY))Zc|7£-|m`@[|m¤gDPXS§|S$BAh$ijSSk~&4XnNkk8#aP9kjP7µe1e=|u7aB§3§}&xghdlP4¤ORsKC~xJ~£8eU£VCNcMhPNJ-#_E-`iK3_-09eP`|`K~f}7\k§f=)*¤@3_N`4*bH3nz2uoei}^Jh8H}uu7QUH`M_QT-3JDhQjfxI8{V6v!§£v@m68T!z=_0$k#y)JD#^[47cVo8(JTig}{9[U662i|jKtPUw~g(Oq1N=4l2sPh^%b{Imv1Uµ@x5}5µ0T)SblV4)TP|OzB2o`q5dJ-Z2(}9m(YC%[\(-]Cs£@PsS@khNm_%hPn-|{^NW4)1nd[j4NQk*5%T)%7R¤`iM_xmgf4b%|iJiK*P9!t¤b7ej$m$rr-{rZtIswKt#TY5sfE¤G^9@U9ikZPMF7h¤{m`@G`Io69A{U__x§X=*U_^ZzVK|2L)3s8^c£vml^qZZ!L$%TI-WgD4xT1Kij(Bjd1Zd[xwfn1!WsF4b*HQnz|2gUfZYB~TDqJmzQfFts4wmm%cµs$vL_C]9ufXA4l=4rj79RgE§wjcxA!H4uqgX|6|Cz£-M@qU0QNZB8-%]YsHLAT{Z0IqYw£30=|ztoj2v4]QT6=TD9H@eg{jlu94_@jn)_lySVw3r7§-nfUs*enO|gwKigh7rLef3j(YIL9l-£f{oiRo$$M]*C`q{X9(eIw{YX0x^V2efa-VZ¤DAHLD-¤AqwM[|#9e@C£bQ_kKL[Eiu&0yLAEXsJd!j$TBGN£C0v)L3¤(mFLQ§GbC#IE$=H9Kiw*]µ=M!T)PMgXG§aAnaB§yCYG[*W^nZ9hFP^6dµn£1£H£t¤0-#}8-TL^f[n-}fRW@v9$C6c2yZLrµ-S~]1Vbkn3]M!9@7uAU}{L3z&§2C]oI4P}a§4wf8LPQPE(§tll&sugqVdDs6NeJAPL29|-oS@VP^5µ[bC-Uw!F£$E!j(]Y@ghvgIi0AzPR9bx0SvdWPNGWTk{]s¤Cc$-BWT{ZAR^8-n^~I&YorY[$L6j=£}~Gs%~@rJ12_#g*RiL$|Y]k2_8V5%mL1fiixY4P£6_j#5oC12o5mA--%¤u=1aL2Su7FP£d¤)Q(*9YtD^tGC&(|LGv4^4A2R}Qqvy&£qµ7&h}yiPy@raµ§)fY5Ob$Wj@VjsO{^(MM6dcBY¤¤g]){r*qJz}Pn~ihbHIoPd]AbKa*t5-V{#§§u1LKi6wAPA%o£8m*hDP][=veo0=X6CµsZ=&6Wf-8Fdb-18]MclV8QF#kV)gqeNQ_g`)hfA4nTG=fWzF$7X$1`RlMRIj}xW!X]8)]]KPdMA1jeqjv}rU&9Oz@¤hµ)f[nj-PCmObxLzyW3P|q%4W|X££ur8g-{cxIYi%RP6iH-hI6ub0YtRF[d53[*`1Uyn={-O@8!Fr¤Pµ§){AyCvLc#n%xDjj1!*{yv@FeV01BXCPGbQ[e[w-GXB@`(6r£r}%dMT]A^2LµQ¤~_-ko!o|{wx\%iµq^urz{E=D-Km~KrK]8krM*nPG§--_F]#H1jTslGLrPBµ}!Kcn^V|3]Jxrl|nL~z##NA)£GO&aS1][rd-oQCV£[#rDd-Rx1w*UgU_@#G|sBx3&µ@m8$b@i^rEh$f£M7IuPc3N3^$X&nPGHe-V|y]S]§(^GUu=BlYC`gIbb}yOgP9}e-!`N%8Ts1WI^0huPI}{µGm~@PPiUL(h1vR3QD[Fe5q-s_nW£W-$&=w0YNZCXG0}P=obsukL&t&|kTAP0*7)7^6]#mzvYQiNs[)50=V-=}9zkV4^IGBM8K¤µ[_h6e¤e5zo0=H£(z%g#bB§@¤}664-F-C§SOBv¤t¤xDBFe#Da!2%bwuil^X-`FOQ_$¤n|=Cb¤3(bwNIFxEf!Fg6wi#S§c%yIv*mm1XISY1£|Y_@IRUA9Ud`NUH1$`£Z-&µ7CQb7¤1A3#rl-~I|ZEghbIgbsi§3Nz§j£`SU$Mt8mtN¤%lfµfµmZQ*&y@P5Z#*R£[%EWx7kljib@kGFr}QEqBs£940t}5m~Px7F£aµ§b~-qUq#4C)h0£Ezfboxf|iV3µ$ocFQcD{6u1S*E!£q_¤h2D4mzx!z*Xxq@$1yF-gAWVK)^^Y|-k5Aµ6{{g0fgTQ£gv^MHkx-KncQIh8--zJu$2umc4{9lBC~c%iG~U7~Qa5my!1VueCK4~9=ZF3{gCCB$h7mP3~$-%83{|*B&O}B£aW@cH-µ£P|PD|txoz5A(FR4!4@kk^mQF)YJ!1MR(2%j-d#-Rs!S%W=XI*7&$Z)i3$Bw$s)_^n)$x`IB_C0e¤k#I4h-3=SZ${o1PU)|tTtk-Ond#0hXGv%P!V$ke&ePaELi5|}JherhE§e=R%%NIJgP4U-C#|~NtRCRXnv9E~`§¤g{s)&DCRz_8K^g-7YJlobaE`)El`@G5N(ji2§xOOLt&FRyoKo=9D-^W6v=DLiOgKR£mivq]`T$c8§Ka$5VtH@oXi-=Xh6a[4L)g(YD&Cfns1]s2}Sd=Z~£X)t5S[[nTN^l*PPUUSy
{K7gOYi-=D`P-SSyXqEfaIgJwX5L8|wWqds$XctMZO)]wmtYjA*w)d{qCIU4Z@&MOgr&9-[g5ww-4i=ir#S#QS~PB3}PC_U7eZ!fETk6bQ)![£qF#g%TdM|Uu0BLnwM[9-}6h=eGk9YEQ}ijPw)KeM#R3fJ|£#§M=BS~M=CA£(JSs!ZWDh21h|zX)YV5t65Q26-7]19%2OOo-=V4z5uCzµZµuqVhfb6Lb3{*#QgcRu^^#ueQ=4hUX$}Rml=$t*0PDS3BA-o#Jc*q}9§G)g3cIX|cZgr$d{X1Y(^µK)PTw~-OµTYq]Y`1gdTokh&~g&KE~@c¤_Km7VQh=MXH5Z|EqlVV-uPFI(^§_k^^my£*6ml0URU&cMmN`P4clUig#E2!O3CGxt8)we09PnJgrIC3k%Q86P#Sµ72#9k=V`£rLTµhAI~PR^E0%F1J9£E_dShftgE#Rb§rTsD£C#gdPb§WPMKkrt5gD0PD!rPxNON-BVuPaEuc@R~$=PrT9|}xCd$R7Te1!(|RQ[yb8z_ms^£7y2hPKm0xiT§iLNK]^¤o&|^µ1!a8CH2YXA0FMbOV(DµhFkjM@{u3G`9FWµ#s!Idk-j!FyC¤PEluk_hagac27QDR5Vl2yPAmQgE!-IkZeHd}5}Q72LA¤vy1%§04tqD8K`xi!S9FaV9(*&)=£$=r=cs}§66nVln=c*y%G£$9w=x%m=[2l~t-7QX_$YS{MWU*(n}Q=V(*sgz-9Lmh0-#fNX^!fQK(B{_f$@GKO3nFYGT^yd@X1U^0EC{3K_J¤_EXCoh$Q%¤rCYhGµ-!|CL-d=duLTWJtEf^}r}D_(Fz46X9ssm9}P*ZK3Z-L#a[nkD¤Skµ&sh0Pmw[~Khj=94Og!vR6a-C{£xPh2dDQnJg]S£ZNbH8!D¤WvW£$H7$q]Zk3}&i`8AK0RC`07§RqODsds8~^[Q`!a=5zdWBagS[HqlIKzx¤O{naSruI]YtD§eYcJ[Q=3F§O{qvU4K-`l2`f0l¤t=e}]_`}oRF`c¤KmuC`TSlGh`f-uK!WBF-G9^X7^IUiµPrQxi-xI)`la{^*rwJBDn!243§H&_-(lqT8N3H~2nLBW8t¤}#`[%§h!|^¤bdyE#_Y^}w-KVQIO*}`w#$mc`NNOdS)Kt-!IcI[1b)8H¤§t3@@{YrJY%n&}kGYb%DxW*oW75!)$*Dvw¤EBtC~4uoy^9a]G5BGlSPygsD-Wg|OjM8RlNB={3hG)23t-GlD-@mSNk$DjJJ3Nnc33CWfGZH{O%A-W2bj*Gzo@EfµWµ9n9fbuQFTiD}µyB`VT¤P6n[¤5UX£zh-)o9P-9x`9U[t^lJb~n@O6G@F@h=V9bvIaJ$8hX¤JUezH1zJ0E9y7%I[]3¤-_#rPifAP2IxI#8KZ7TBYb@O4Yc~I%]^-j-T]3NjJ¤G=DTR&X|Y£~Tf4DdRruvv4|T)*§a¤£^916SJ*3xgk=f]B_µTG]xF2NU^qVX0U8Z_gz-x%60d75gSiugWKjBLB=Jµ£TzAPJ¤1RXhHCf80i~h8*rxO!5moq1gc}QV!2j^$*ZCjµ=)4]8Nm8h4n-tj&FOn&[Zc@D58s-&a9ZqfE71_`yvGPKs£2IYJg@(4D]Ay((DnmUOf)T§-xm2¤eXk`[1YZ[jHb@Q]Wvy~-fu7L-9%BL8v&=)]7nmrI}KtuhZQ{L¤4gl$lJM-dE_T!R(&ulI6-^wCR£GQ^{Kr(M#d*V-mKUc3k§FTAx]SnrKJ`wPs0z6uw6o9r@=TN[I*WCV$UXh2ePs`§F_A-|JaQ0Q_fyVNF2MMNoW|8d$}U2¤I)jlUX8LoPI*VEi(hkI)gµkhU!`§aN£l7s8*J~sBK_4t[)$¤¤JOuDS)VfCE{A`Mz7q|QGguF0*£m1e1¤3µ8-F§A0B=¤V2gUHXQAn$BoykWinKj§NgCCJCa4{6Gvo2£§HxkQ-QKK}W(F[{~GM§()iMµ1u(l=K{B-U-Cx^h5]UU^)FsP-411~(ZaDF7U9SqIO-tkKo=W*iaIHzI(s6(A[)s%XBF48P4F`-TPN!j_*J1F^1|B$~Bm¤Z(WPczPS£M*dB4BAGmiSPw4PQhzgµ9*&4nzWxBh0x=llihPS)sS^ghwJeidAlxhw}~[1JKtXn)RXZ3g^I[1yB§}d|=vX8V%e!~2J97uk0Wd0*IWf_xo_)d_rDk30%tu)_[[]y1&§nJc$KIodY_glSQNP=$[F88fG(]^`glN@¤0¤h`z25NP-ZYSL~51%JQN]lhLn{XP[xR9hLCGy)&I)jzCKe)NWRKhyOIZU§gCUKRy^Z*nGTYF)&H*ju(¤rH~4Ri{~j9])PO_(nCTk¤7v4T|-JP8T{£&iI7J$dbAb7|``X`d6tC8ef`x-oJVLUSJ)£E£-r=-~3^Xc%9MxCDgXLA lslK9a6=S}V-Xot[X5£_*zz5bL_vmrfRN8r§sKµr7K49lRdSf_n=w|Tev|W`L6wGP[fµARi@fzamdµWQvLA`D¤jPWG-NZ£1$(2x4)3~q~@s9-#kA[m|µP^k5£%2h#*s~eNHiA1E-r§j@2=!$urµJ7HRZlgNsFYZ7m$£-(E%d%s3lwki%wonZWoVPEu]vfBvQSµ&TCnHLh]P9iLY[590¤#f=*51TGl§µ]PH-R-[)Sr[K`DxHgig^\%`sI#[aNcnESYb(N9Z5*-ULTJB£XG§t$4~-0iSzmtyMbh¤n_oTUQtNm)&N3#H-KwH`RTPxI0&vh~=T[}£0kq_qw`L¤Jabdm]B{3@VBtL§@V_EmqsVzGSt!4]PizSµ~1rb^V_Ai=4RE}O5tUm2K&J-=W3]K-0zwbAFvMkkvwkWXt§^2AilQK~0o5-PYcYY¤Kj%JS~)y`SlrlXWiNz-¤t[G`|(0G#z}y3G1UEX(Jn0!Vlo27O[[urµ04QJtMSUH3b%&n9$i0]xedz*0sI4g@8h¤6jxnVPkR6IoRnqw&I]U|bV6*-bi$§hL-0MP£BP]qOGx_b|µ12-A)F^M&Zm£5]XM_!KX¤-[^~Jq~CE3_^0¤ZzQg6{3oh2luuX_0vN^=518S)Xcb{}F£qK^H(K(wgCI=RTY&£-(R55OfZbB216P!|@U6k#-OZ5%IQkuK5oPKX=AY=-#T=4jbg[l{¤^-g}ArvJvtgU$=P-DJQzOc¤]ij0M9y!|r[f£R`8B#&HZ*hXF2µn6QgcwdQ^8~4HKNivDENj£5µ79PZHm9gHmOC1rCNµ(k¤|_1-z1qJA(PE&P§A]¤9Ah^Vl~KHc=u%Ncl)Ol-t1)c2sWh{vSGN§9ZaUmuPl6&gnNh¤vo`cC%}Qk@}^z_N1#xqC~7a@ZV(~Wy%Rm!ZOfAr]§[Zl5Qc-d$P=5§X4Q_@Mr6H{)fqIiE|9oeF%f`IRqw7L{I]kFHJYAs~iFRaK3X&(nwDS~jK#FJ=|NzµMB7--$u05L)RJmuP^hHf2#D[O_7~s}{d-ZdzgoDJ)vyt#5M[wD}£T5vF£bI#£K#µP6(`J(EdD9==_7Lfzj9ZPQG$MTUcWN@_VnS]lEiOjvAR}IGo*(-dEw§@£L^nwc¤U-*-HbsD|#EyS8$9µTI4JDb}w2{~_KF|gµbn!{4k^LF$T~u68Fn]4jVS1_£`7Z2hzWm]~(8z)L]tkob=Gzg5E-nATJQmrTFHqGmvq78sOD@C)8XP=ew^4UXHiJqOX~*bJX3e}Xu£FtKyN*sWAwZ3O6YU-}o$^#7PTf8Hg|F}sO!&-&¤a&P^1OT@_-u1JwUzWhO-}sS`aAVwgf8w5¤[X]-aR7=(nFqf$S&CghT-¤¤u~#XM3^Re6vyT}^S%3Cy§m${5fAJv-&tQ2sG#!9ZqoP^a@$L^1oo[lb2Vj)mJ£QgX]o5By0j2gCgu*Bjrc5§X8tY%4&qzgu0Lyw§f5@3y=#tX[_unA1CK@*l=wLzI)*6#6reh3|=U@_wSSs3TsSaw(RL)@sxkd!Pd9[tmg£8YtI6@!0aEW]Aq£Rd~}o2f|A{]Z$}7N[%f~]{1z7k^we-SokfhCEx#_yO*!Veµ@K&lj*lK)wlsjDze7j13Ss4I_001YBF`MEaX~5Pz}bKz8K6!k2r_=x(G-gKAzgPCf(eZR=ValLUT]g-s=TNzv7`|4Y}§yvulI5esKABPv*M([&7jyT=!o(YsXoVtVfH@t0sI¤R5TXE-H|=Jb`b(V88xUvWf&~=&u8nµtchk~eg@eKs}GuiR2PmguuIO7$fkfE`£Mµ|¤|*HN-P5F¤X87oI[bk¤=[rRCoiVo*2LSJ^(yfU&#B%FKcX9X3{{uxG@^UeT(HH3iwWufJl6O*fv5hj_TUO#SxxLINRL=RVq-{56~ZL`&)Fe{s~v`x#*lK)Ve^|1!sq{{]µ1c@g`k}oy-S&J2S~Sde{%}sµD3^u¤Y0_s_#O7¤suo#Q[n§£Y0rMQ$x=#n#y|(1](XDOt#LtexF8MPv§t!X|g£{(~W*bHµtgGKEvUHyJYT}IkieSHPR£MZ^XvoI@§Ur8£uE25|aPCµ{M{OoH&&ZN^e[wt$_A(1YK*~~y7ZL]keue57qsj[i(eaIFZnVR1Q_NdYB*tEM£J6T^(*&Q(v£9V|H~y¤µrP}[Rl{Va!Y¤^cP&T9C=§6-Sgbz43R$u£E2WuJ3T7¤*RN}mDUrO{gEg]tNKT(BBv566`z~8jJa)tz1^V]8VvgD]i|T|lOcO3M4bj-8d-NXlXVq|$6@3nµM--HSrOcTAa2Mz%s[µafeRwq2Xh~-OZXFLt3DxhK0qfYzb@LY@GE8CP9µi6*Rzr(XBttsqmQ4}-om3*R~#µ^-)owv5MQNRdH5(A!7AeVag£{@P{{WR~{S3P-xatPhIi|g@PDo{$Ku^QP|4O*e¤n!8ZwY4I@K`g|Ib(KA$[T%µ)^$E£E`{y5HE-U6{W_P]g4!{P)Ige|25Kv=Pi&Sj01x=QoaY#Nt%I11V£uP5BDg0|wtsPP|^5-n~9oW)s]QD£$q^U£3V1-^{@gUNtm0Scf2Ht$IJsk]jB^zd59)£r1n`rr8RV@^-N!tOWGr_&Eb9)=#8LW}J4SfW)]XGKUUwU5g--e{O8-W_}62oXfW%cZIY$@7C~%]aaYbEe_^PhZPB4^OA§8UW(-Y&N=~cPU-XJ£B2_`vBµ)~-$79)~HQZ0UwtSUZ6g[qkR`|Ed%&P}S¤PNP_18RXUµ#dh6AX¤wfiOj£5W¤Z-¤]{0DdBzf!K%Ruh§}go§1m£ZOyRYWO(gmµ)µ8UnqfA(µ|w-3g-_)f-mWz£=H#eV£l¤u§HZCsk}4TG3r3*CH~~UT{BZUOX8]£rQ1MGyfye87§F_|1j[ix-DPhh|QN-VSNXLU4§i|3ifBBKe4ZMy#g1_WG$yE]a49ocSlOKH$B2RPIx_P(yquX8JP|C%Z#9(2$MMk`JDkt=fc5jzr-6(ooZ$*6BjPvG0GS5CGrKP^(nR(H$mz5&(rjgswyC@F£3DF!]Zy1vrZ_E¤%DWAghZ!@UP~TtIVDUf(_(wh¤0Y!W[O-5T2BADU{=qUoCPfnrJKJnsv@msxYhFTwK(8bh{mos{[--3&jiDmH£^b(FbgGY`j4LHulµq-(-11aoBV7r@Jhs9~KEvY~le0B#I%~DhZWXc-W!tX*aX@m*)S§TaEuZjIo4`L7SNd98l8IEVYµ654kF&PS0V-j4wyx}bZ*^wUe*CGkHzKqUPµ==QuL-Mx{&µH]hYhwESJ}4oiT~1x%Cx2(s~QIU17PoEO*Nii)PgcR9dX!*CO_q~1^rIM-$2P9T8wMm_u*)UQIO7ZXy]a(^SaTO#Kd¤]bwOKvm1wHm1)0|i-SP$J%j(#O%Dj^[!K=NS=5zD{C9DEOT-t3h6µ*MWHd#XuE{MaGZ`QL-£_DbJW0J-ojAvRXeG§9OVnLEZRbZhuF[aAO&1S6m-Mi]&*v6WK9T`^kSDGgDMj7X^lMg¤I~J`~S|&$oR~H^`_i$r^WV-vNW-U1f¤PMvnLD1^o}-~P%zn@Rvw()5W9Bj6PX5gP%4wPQrOx**r}a£|ySkdµbµux]§sh]i0MuL§57UE$O--T%RJ*[iK2l-!S4G26X}4P58µh9fP}4L=_§u-X2x#!72¤0J¤Q$qEEABuqvhmu_x]q&9tlDkf74IJV8|olXwD0eo(d!`24V1EbG*glfkDccD&TC(_7OK[uh%$6l¤6S=~VCv&!&B%iY8mM$LugL&§REy`A*noeN8If-A@¤An|D*n)5kH[wW5-RK25E#Bg[|gWC}i6BhnbWso¤qx_%H~M0Z!§ui*eR¤FEu5CKd77HgµA£eFteh{-Q]GD4J69¤71gW)n-Q22Y&0@7aPxc3-FXrYvyO1#uq§PJ9O8n`*µUU#f0h0x_T=y*~jw4#t#NM)^£#wlN}xtP1[2&!g#=s}*uuSlsL*u3b^fi-md!TµWj&1B*~ggvh¤CdO7£rµ={rw]N*-vguf4LXN}E1VTwj0HNzUtlyVC`COHg0h-fg_Js)A-h|£-zG[=#@VI-{1~qooQ(9kl9cj0=75XB3§lPe¤ieTz§-^thno}bcIF@A(a01xGFXGo9EUG}I9q69Q*1U3P9Q¤mOdiyey9*WVP6KTDm£F$TQBTANMjS_}QAO-M!8Ru8t4t8UwzOMwlh2y}&x!IA%3mfbKvbhEo[21sB(Il-xdO{n!_faY=rERDmµ[FE%UW7K_q&v0GuQYwe_!G~3Q`{H2#K_hVvsJV56}oJZS%Cw@-o£7b~*L`UQY6vDbXPg]nWRh[M|§d2XPP-~PL¤l~H&(mMX^23WYQ¤eY§vAnWtWTRW£d]f§odCNP~|aN@JI[R¤S1zuF7_D2{P0]=d{n|X[&Uv-rNFenR06§e[-]i5v=~_o=LDQM£\&Qg]gAnhKb9JP(X7iigX~d#u%x_b[3y0@UX8~P7=v&Dm-S|YRsnyItP*745DOrP-}T9Wod9RE_Z2JXTz-4KG!f}Gh}V)CCtDk5![§QnTTy`eBµ[§Vv91§x!3i)!fu4~(!XqTU@V¤BWJcyGP}]3a{K5}tUjP%i5!&=w3a@CM[ce1jE(rm¤SJ3}lVj%JkH&VAsC~(IUmX8£Rqm£e]9{J8KT£7q]¤`tPµ!uhZT£^&q|DdmPµv~t@H&ifNfEy&8@k]Hµj3{¤~&|C2-x4rEPeH$=okl8c-WLAvAvj9R%NCI^^X¤Tg[H2^eMm|K{R(Lz&1-D!$INw2A]1HV6#|yjG¤a!H%ANcxRB3jPtJ&ZO4FTMa1Gq%2-H\}ZY26Br5Hb)oW!-H[rµ8Mq$eeU&lvFµlJR59{sZvFa6N%saxA*]^G6J~O¤WRk$_X7Rq6ieE8Jr#e{N0H75P{IJYScsxd!n8BgJMAo2Q5R)*-§QG01Yw§`m4`KhS*wXqVV8E7Pµ=mR{J@UVxW{WPPZ9BCUt0Z{Sc
Temps nécessaire à la génération :: 0.647659µsec

signaler à un administrateur
Commentaire de Lissyx le 13/09/2002 17:39:02

en secondes, pas microsecondes je veux dires*

signaler à un administrateur
Commentaire de DeepxThroat le 22/10/2002 23:31:10

trop fort une ERREUR FATALE si l user met pas lbon nbr de caractere , carrement ...
tu srais pas programmeur chez microsoft par hasard ? lol

je rigole bien entendu et te remercie mille fois pour ce code source qui va m'etre precieux

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.