elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 [173] 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 ... 235
1721  Programación / .NET (C#, VB.NET, ASP) / ¿Donde van las sentencias imports ? en: 28 Abril 2016, 19:51 pm
Código
  1. Imports System.Web
  2. Imports MySql.Data.MySqlClient

Pues eso donde tengo que colocar las sentecias imports dentro del documento aspx?

Estoy usando Visual Studio Express 2015

Saludos.



Solucion

en el archivo defualt.aspx tiene que estar la primera linea debe de decir al como:

Código
  1. <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="default.aspx.vb" Inherits="WebApplication5.WebForm1" %>
Entonces debe exister un archivo llamado defualt.aspx.vb

Ahi tenemos que colocar las sentecias
1722  Foros Generales / Noticias / Re: La guerra de las redes sociales: Facebook y Twitter no quieren que enlaces a ... en: 28 Abril 2016, 15:08 pm
Siempre es lo mislo en estas redes, primero estan spammeando por todos los medios posibles y ya que son muy conocudidos bloquean a las otras marcas a diestra y siniestra.

por ejemplo yo he desactivado las notificaciones de twitter y fb en una cuenta que ya no uso y de todos modos cada cierto tiempo recibo correos suplicando que regrese  dus redes..

En whatsapp ya no te dejan poner links a telegram.
1723  Foros Generales / Foro Libre / Re: Una momia de 1.500 de años lleva unas Adidas en: 28 Abril 2016, 13:51 pm
Lei la noticia hace como una semana, y la verdad que muchas veces me arrepiento de entrar a noticias como esta, pase como 3 minutos buscando algo que dijiera adidas y no vi nada
1724  Programación / Desarrollo Web / Re: Recomendando host en: 28 Abril 2016, 13:47 pm
¿Alguien a probado la nube de Google?

Necesito una página donde pueda hacer un dominio para mi correo, que sea totalmente gratis...

¿Necesitas que almacenen tu correo?

Gratis la verdad no conozco ninguno, en go daddy si tienes hosting, puedes configurar para los coreeos de cualquiera de tus dominios sin costo extra y eso pocos lo saben, ellos generalmente te venden el paquete de correo por aparte y por cada correo adional te cobran mas.

Estoy pensando en usar la nube de google minimo la prueba de 30 dias que ofrecen.

¿Alguien a probado la nube de Google?
1725  Programación / Programación C/C++ / Re: Juego de BlackJack en C en: 28 Abril 2016, 06:24 am
Original:
http://codigoenc.com/post/33/Juego_de_BlackJack_en_C_paso_a_paso/#msg-41

Otra codigo que podemos aplicar es el estar contando cartas, si alguno ha visto la pelicula de 21 en donde el protagonista es un genio con los numeros y es capas de llevar el conteo de cartas de forma facil, pues el contar cartas para un progragrama de computadoras bien diseñado es simple:

La siguiente funcion asigna valores a las cartas en modo contador para las altas un valor de -1 y para las chicas un valor de +1. lo que quiere decir es que cuando salgan muchas cartas chica, el contador tendra un valor alto, y es cuando mas probabilidades tenemos de que la próxima carta sea una carta de 10 o J,Q,K y  As.

Y dependiendo de la mano que tengamos es posible pedir mas cartas o plantarnos.

Código
  1. int valor_conteo(char c) {
  2. int r = 0;
  3. switch(c) {
  4. case 'A':
  5. case 'K':
  6. case 'Q':
  7. case 'J':
  8. case '0':
  9. r = -1;
  10. break;
  11. case '7':
  12. case '8':
  13. case '9':
  14. r = 0;
  15. break;
  16. case '2':
  17. case '3':
  18. case '4':
  19. case '5':
  20. case '6':
  21. r =1;
  22. break;
  23. }
  24. return r;
  25. }

Ahora para mostrar que funciona vamos a contar toda la baraja y ver la salida

Código
  1. baraja = barajar_baraja(baraja);
  2. len = strlen(baraja);
  3. printf("%s\n",baraja);
  4. i = 0;
  5. while(i < len) {
  6. conteo += valor_conteo(baraja[i]);
  7. printf("%i\n",conteo);
  8. i++;
  9. }

Salida

Código:
Creando barja:
A234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQK
Barajando:
4Q907566846A3J8Q6Q287270A388J2J9KK0J323QK390K98A6428539804723J74A954862KK5JAQ9Q80066233067347AJQ0708K56A49A9686322Q63QJA48AJ5795Q7903JQ87J9J44596K36J06Q3A7794562732AK652AJ6J005QQ0A024A62A8K0409298A62KJ754Q553Q8A59278QK745342Q6782588Q9897K7A9J40JA9407K05K087A623K542Q5K92A3K9K57338KQJQ5K6K3AJJQ35494J20J4Q5K47A0KJ
Conteo:
1
0
0
-1
-1
0
1
2
2
3
4
3
4
3
3
2
3
2
3
3
3
4
4
3
2
3
3
3
2
3
2
2
1
0
-1
-2
-1
0
1
0
-1
0
0
-1
-2
-2
-2
-3
-2
-1
0
0
1
2
2
2
1
2
2
3
4
3
3
4
3
3
4
5
5
6
7
6
5
6
5
4
3
3
2
2
1
0
1
2
3
4
5
4
5
5
6
7
7
6
5
4
3
3
2
2
1
2
3
2
3
3
2
2
3
3
4
5
6
7
6
7
8
7
6
5
6
6
5
4
5
5
5
6
5
5
5
4
5
4
3
3
3
2
2
1
2
3
4
4
5
4
5
6
5
4
5
4
5
4
4
4
4
5
6
7
8
8
9
10
9
8
9
10
11
10
9
10
9
8
7
8
7
6
5
4
3
4
5
4
5
6
5
5
4
3
4
3
3
4
4
4
3
4
5
4
3
3
4
5
4
5
6
7
6
6
5
6
6
7
7
7
6
5
5
6
7
8
9
10
9
10
10
10
11
12
12
12
11
11
11
11
11
10
10
9
9
8
9
8
7
6
6
7
6
6
5
4
5
4
3
3
3
2
3
4
5
4
5
6
7
6
7
6
6
7
6
7
6
6
5
6
6
7
8
8
7
6
5
4
5
4
5
4
5
4
3
2
1
2
3
4
4
5
4
5
4
3
4
3
4
3
4
4
3
2
1
0

En teoria cuando los numeros estan sobre 10 tenemos mas chance de recibir una carta alta, asi que si en nuestra mano tenesmo 10 u 11 podremos ganar, en caso de tener mas de 11 nos arriesgamos a perder, igualemente si tenemos 2 10, podriamos hacer split

El ejemplo anterior se uso con 6 barajas, lo he probado con 1000 barajas y los contadores son mas variables que van desde los -130 hasta los 130
1726  Programación / Desarrollo Web / Problema con ejemplo sencillo en ASP.NET Razor C# en: 27 Abril 2016, 00:27 am
Muy buen dia compañeros, yo realmente prefiero las soluciones en algun otro lenguaje como PHP pero.... me estan pidiendo trabajar en ASP.NET

Me he topado al tratar de ejcutar un codigo sencillo de ejemplo de la siguiente pagina

http://www.w3schools.com/aspnet/razor_syntax.asp

Código
  1. <!-- Single statement block -->
  2. @{ var myMessage = "Hello World"; }
  3.  
  4. <!-- Inline expression or variable -->
  5. <p>The value of myMessage is: @myMessage</p>
  6.  
  7. <!-- Multi-statement block -->
  8. @{
  9. var greeting = "Welcome to our site!";
  10. var weekDay = DateTime.Now.DayOfWeek;
  11. var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
  12. }
  13. <p>The greeting is: @greetingMessage</p>
  14.  

Al momento de cargar en la URL en el navegaor me dice que:

http://localhost/test.cshtml

Código:
Server Error in '/' Application.

This type of page is not served.

Description: The type of page you have requested is not served because it has been explicitly forbidden.  The extension '.cshtml' may be incorrect.   Please review the URL below and make sure that it is spelled correctly.

Requested URL: /test.cshtml

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34209


He googleado bastante y no he encontrado solucion al problema.

Tengo el IIS instaldo y el codigo lo pongo desde el block de notas en el directorio correspondiente.
Uso windows 8.1 en este momento.

Tengo bastante sin usar windows aun asi no he encontrado la configuracion correspondiente para ejcutar esos codigos.

Si escribo ejemplo de codigo de ASP clasico si los ejecuta, incluso algunos codgios de .net en VB y C# tambien pero el anterior no lo ejecuta para nada.
1727  Programación / Programación C/C++ / Juego de BlackJack en C en: 24 Abril 2016, 15:58 pm
La publicación original la tengo en mi pagina:

http://codigoenc.com/post/33/Juego_de_BlackJack_en_C_paso_a_paso

El juego se puede optimazar si. Se puede perzonalizar si, actualmente juega en automatico.



En este Topic vamos a hacer un juego de blackjack en C, lo vamos a tratar de ser lo mas sencillo posible explicando función por función.


Primero definiremos un Maso de cartas esto es 13 cartas desde el A hasta el K

Código
  1. char *mazo = "A234567890JQK";

Para hacer este juego lo mas escalable posible generaremos dinámicamente un mazo de juego de N bajaras, para eso tenemos la siguiente función:

Código
  1. char *crear_baraja(int n) {
  2. int i = 0,j;
  3. int offset = 0;
  4. char *cartas;
  5. cartas = calloc(sizeof(char)*52+1,n);
  6. while(i < n) {
  7. j = 0;
  8. while(j < 4) {
  9. memcpy(cartas+offset,mazo,13);
  10. offset+=13;
  11. j++;
  12. }
  13. i++;
  14. }
  15. cartas[offset] = '\0'; //Esta instrucción es innecesaria debido a la función calloc pero lo dejamos para aclarar que nuestra condicion de paro es el caracter nulo al final de la cadena
  16. return cartas;
  17. }

La funcion anterior solo nos devuelve un puntero con la memoria asignada mediante Malloc con la cantidad de bajaras que le pedimos.

Ahora si mandamos a llamar esta funcion y mostramos la cadena veremos un mazo ordenado obvio por la forma que se construyo
 En este ejemplo usaremos 2 barajas pero tengan en cuenta que puede ser hasta 1000 barajas siempre y cuando este disponible
Código
  1. baraja = crear_baraja(2);
  2. printf("Baraja:\n%s\n",baraja);
salida:
Código:
Baraja:
A234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQK

Ahora si bien tenemos que barajar la bajara.

Código
  1. char *barajar(char *baraja) {
  2. int len = strlen(baraja);
  3. char *temp = calloc(len+1,1);
  4. int r;
  5. int i = 0;
  6. /*
  7. Poner su propia funcion random disponible en su sistema
  8. En freeBSD prefiero usar arc4rand
  9. */
  10. while(i < len) {
  11. r = arc4random_uniform(len);
  12. if(baraja[r] != 0) {
  13. temp[i] = baraja[r];
  14. baraja[r] = 0;
  15. i++;
  16. }
  17. }
  18. free(baraja);
  19. return temp;
  20. }

Esta función nos devuelve un nuevo puntero con la bajara anterior pero ahora en desorden

Mostramos la salida:
Código
  1. baraja = barajar(baraja);
  2. printf("Baraja:\n%s\n",baraja);
Código:
Baraja:
9KJ4067Q6A9068Q5A08J3Q3QJ7Q3AK38A6J453762KK0852KA4Q52548753Q234A42K2Q3J7KJ090A62A5J0674KJ702689799989584

Depues de construir las funcoines de evaluar carta y evaluar jugador podemos terminar el juego
Código
  1. /*
  2. Twitter @albertobsd
  3.  */
  4. #include<stdio.h>
  5. #include<stdlib.h>
  6. #include<string.h>
  7. /*
  8. Maso basico de Cartas para su salida en pantalla.
  9. el 0 vale representa a la carta 10
  10.  */
  11. typedef struct jugador_struct {
  12. int continuar;
  13. int valor;
  14. int offset;
  15. char mano[6];
  16. }jugador;
  17.  
  18. char *mazo = "A234567890JQK";
  19.  
  20. char *crear_baraja(int n);
  21. char *barajar(char *baraja);
  22. int juego(char *bajara,int *offset,int m);
  23. void evaluar_jugador(jugador *j);
  24. int evaluar_carta(char c);
  25. void debug(char *p,int l);
  26.  
  27. int main() {
  28. char *baraja;
  29. int offset = 0;
  30. printf("Juego de BlackJack\n");
  31. printf("Creando bajara...\n");
  32. baraja = crear_baraja(2);
  33. printf("Baraja:\n%s\n",baraja);
  34. printf("Revolver bajara...\n");
  35. baraja = barajar(baraja);
  36. printf("Baraja:\n%s\n",baraja);
  37. juego(baraja,&offset,6); // La casa juega contra 6 Jugadores Solo una ronda, si queremos mas rondas tendremos que agregarlo en un ciclo y controlar el numero de cartas restantes en la baraja
  38. free(baraja);
  39. }
  40.  
  41. char *crear_baraja(int n) {
  42. int i = 0,j;
  43. int offset = 0;
  44. char *cartas;
  45. cartas = calloc(sizeof(char)*52+1,n);
  46. while(i < n) {
  47. j = 0;
  48. while(j < 4) {
  49. memcpy(cartas+offset,mazo,13);
  50. offset+=13;
  51. j++;
  52. }
  53. i++;
  54. }
  55. cartas[offset] = '\0'; //Esta instruccion es incesaria debido a la funcion calloc
  56. return cartas;
  57. }
  58.  
  59. char *barajar(char *baraja) {
  60. int len = strlen(baraja);
  61. char *temp = calloc(len+1,1);
  62. int r;
  63. int i = 0;
  64. /*
  65. Poner su propia funcion random disponible en su sistema
  66. En freeBSD prefiero usar arc4random_uniform
  67. */
  68. while(i < len) {
  69. r = arc4random_uniform(len);
  70. if(baraja[r] != 0) {
  71. temp[i] = baraja[r];
  72. baraja[r] = 0;
  73. i++;
  74. }
  75. }
  76. free(baraja);
  77. return temp;
  78. }
  79.  
  80. int juego(char *bajara,int *offset,int m) {
  81. int len = strlen(bajara);
  82. int i = offset[0],j = 0,k = 0, n = m+1;
  83. jugador **jugadores;
  84. jugadores = calloc(sizeof(jugador*),n);
  85. //memset(jugadores,0,sizeof(jugador)*2);
  86. /* Generamos n jugadores (m jugadores elegidos por el usuario + la casa jugador 0) */
  87. /* Repartimos Cartas a todos los jugadores*/
  88. while(k < n) {
  89. jugadores[k] = calloc(sizeof(jugador),1);
  90. printf("Memoria asignada para el jugador %i @ 0x%X [%i bytes]\n",k,jugadores[k],sizeof(jugador));
  91. k++;
  92. }
  93. while( j < 2 ) {
  94. k = 0;
  95. while(k < n) {
  96. jugadores[k]->mano[j] = bajara[i];
  97. jugadores[k]->offset++;
  98. i++;
  99. k++;
  100. }
  101. j++;
  102. }
  103. /* Funcion de depuracion
  104. debug(jugadores[0],16);
  105. debug(jugadores[1],16);
  106. */
  107. /*
  108. Aqui se ve la mano de cada jugador en el proximo printf dentro del ciclo solo es para fines didacticos
  109. posteriormente solo se evaluan las manos;
  110. */
  111. j = 0;
  112. while( j < n ) {
  113. printf("Jugador: %i\ncartas %s\n",j,jugadores[j]->mano);
  114. evaluar_jugador(jugadores[j]);
  115. printf("Valor actual: %i\n",jugadores[j]->valor);
  116. j++;
  117. }
  118. /*
  119. Despues de repartir las cartas los jugadores juegan y la casa se destapa al final
  120. */
  121. j = 1;
  122. while( j < n ) {
  123. while(jugadores[j]->continuar) {
  124. jugadores[j]->mano[jugadores[j]->offset] = bajara[i];
  125. //printf("Jugador: %i\ncartas %s\n",j,jugadores[j]->mano);
  126. jugadores[j]->offset++;
  127. evaluar_jugador(jugadores[j]);
  128. i++;
  129. }
  130. j++;
  131. }
  132. /*
  133. Ahora juega la casa.
  134. */
  135. while(jugadores[0]->continuar) {
  136. jugadores[0]->mano[jugadores[0]->offset] = bajara[i];
  137. jugadores[0]->offset++;
  138. evaluar_jugador(jugadores[0]);
  139. i++;
  140. }
  141. /* Mostramos a todos los resultados*/
  142. j = 1;
  143. while( j < n ) {
  144. printf("Jugador: %i\ncartas %s\n",j,jugadores[j]->mano);
  145. printf("Valor actual: %i\n",jugadores[j]->valor);
  146. if(jugadores[j]->valor > 21) {
  147. printf("Perdio\n");
  148. }
  149. else {
  150. if(jugadores[j]->valor == 21) {
  151. printf("Gano BlackJack\n");
  152. }
  153. else {
  154. if(jugadores[0]->valor > 21) {
  155. printf("Gano\n");
  156. }
  157. else {
  158. if(jugadores[j]->valor > jugadores[0]->valor) {
  159. printf("Gano\n");
  160. }
  161. else {
  162. printf("Perdio\n");
  163. }
  164. }
  165. }
  166. }
  167. j++;
  168. }
  169.  
  170. /*
  171. Liberamos memoria de los jugadores
  172. */
  173. while( j < n ) {
  174. free(jugadores[j]);
  175. j++;
  176. }
  177. /*
  178. Retornamos el valor actaul del offset mediante la direccion de memoria del argumento.
  179. y Retornamos el jugador ganador;
  180. */
  181. offset[0] = i;
  182. return 1;
  183. }
  184.  
  185. void evaluar_jugador(jugador *j) {
  186. int i = 0;
  187. char v;
  188. j->valor = 0;
  189. while(j->mano[i] != 0) {
  190. v = evaluar_carta(j->mano[i]);
  191. if(v == 1) {
  192. if((j->valor + 11) <= 21 ) {
  193. j->valor += 11;
  194. }
  195. else {
  196. j->valor += v;
  197. }
  198. }
  199. else {
  200. j->valor += v;
  201. }
  202. if(j->valor <= 16) {
  203. j->continuar = 1;
  204. }
  205. else {
  206. j->continuar = 0;
  207. }
  208. i++;
  209. }
  210. }
  211.  
  212. int evaluar_carta(char c) {
  213. int r = 0;
  214. switch(c) {
  215. case 'A':
  216. r = 1;
  217. break;
  218. case 'K':
  219. case 'Q':
  220. case 'J':
  221. case '0':
  222. r = 10;
  223. break;
  224. case '1':
  225. case '2':
  226. case '3':
  227. case '4':
  228. case '5':
  229. case '6':
  230. case '7':
  231. case '8':
  232. case '9':
  233. r = c - '0';
  234. break;
  235. }
  236. return r;
  237. }
  238.  
  239. void debug(char *p,int l) {
  240. int i = 0;
  241. printf("0x%x\n",p);
  242. while(i < l) {
  243. printf("%.2x",p[i]);
  244. i++;
  245. }
  246. printf("\n");
  247. }
  248.  

Salida completa

Código:
Juego de BlackJack
Creando bajara...
Baraja:
A234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQKA234567890JQK
Revolver bajara...
Baraja:
57A6627296K55Q4Q0073Q2K4J6J297A962AK40350J87754369JJ3JJ7AJQ20828A9A5K0528K8549K9Q0AKK69604487Q38843Q33AQ
Memoria asignada para el jugador 0 @ 0x2880D040 [20 bytes]
Memoria asignada para el jugador 1 @ 0x2880D060 [20 bytes]
Memoria asignada para el jugador 2 @ 0x2880D080 [20 bytes]
Memoria asignada para el jugador 3 @ 0x2880D0A0 [20 bytes]
Memoria asignada para el jugador 4 @ 0x2880D0C0 [20 bytes]
Memoria asignada para el jugador 5 @ 0x2880D0E0 [20 bytes]
Memoria asignada para el jugador 6 @ 0x2880D100 [20 bytes]
Jugador: 0
cartas 52
Valor actual: 7
Jugador: 1
cartas 79
Valor actual: 16
Jugador: 2
cartas A6
Valor actual: 17
Jugador: 3
cartas 6K
Valor actual: 16
Jugador: 4
cartas 65
Valor actual: 11
Jugador: 5
cartas 25
Valor actual: 7
Jugador: 6
cartas 7Q
Valor actual: 17
Jugador: 1
cartas 794
Valor actual: 20
Gano
Jugador: 2
cartas A6
Valor actual: 17
Perdio
Jugador: 3
cartas 6KQ
Valor actual: 26
Perdio
Jugador: 4
cartas 650
Valor actual: 21
Gano BlackJack
Jugador: 5
cartas 250
Valor actual: 17
Perdio
Jugador: 6
cartas 7Q
Valor actual: 17
Perdio
1728  Programación / Programación C/C++ / Re: Guardar Información de una lista ligada en un archivo .txt en: 23 Abril 2016, 13:39 pm
El problema de Guardar los datos es la eleccion del formarto lo que podria ser en Forma Binaria o en texto plano. Una vez elegido esto tambien tendremos que elegir si cada registro tiene longitud fija o longitud variable.

Tiens que elegir un formato y apegarte a el.

Nunca me a gustado la forma en la que trabaja C++ para sacar loa datos a archvos y darles entrada ( <<, >> )

Yo en lo personal prefiero guardar una estrutura fija con fwrite y leerla con fread ( Forma Binaria)

o si voy a trabajar con texto plano seria mediante una estrutura tipo CSV registros separados por lineas, campos separados por comas y cadenas entre comillas.

en tu código veo que usas dos archivos y ademas esos espacios separando los campos,  al momento de leer loa datos no veo que se haga un chequeo del archivo que pasa si un dato no fue ingresado?

Código:
 guardar.open("numero.txt",ios::out);
        guardar<<NumeroEmpleados;
        guardar.close();
        guardar.open("datos.txt",ios::out);
            while(Auxiliar){
                A=Auxiliar->RegresaInfo();
            guardar<<A.getID()<<"     "<<A.getNombre()<<"     "<<A.getDepartamento()<<"     "<<A.getNivel()<<"     "<<A.getAntiguedad()<<"     "
                <<A.getTipoContrato()<<"     "<<A.getDiasTrabajados()<<"     "<<A.getHorasExtra()<<"     "<<A.getSalario()<<"     "<<A.getBonos()
                <<"     "<<A.getDescuentos()<<endl;
                Auxiliar=Auxiliar->RegresaLiga();
        
        guardar.close();
1729  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Cloudflare firewall muy estricto en: 22 Abril 2016, 20:23 pm
No he hecho nada especial.

mmm yo navego por el foro mediante https tal vez por ahi va el problema

Código:
ps aux
1730  Foros Generales / Noticias / Re: Switches de 10 euros de segunda mano, “culpables” del hackeo al Banco Central... en: 22 Abril 2016, 20:18 pm
Claro tienes razón ellos funcionan en Capa 2 del OSI, obviamente no confiaría en los tipos que no ponen en un firewall.

Hay algunos switch con funciones adicionales que los pueden hacer vulnerables en fin... por cierto la lectura que comente sobre como hackearon a un grupo de hackers es la siguiente.

Y si el ataque consistió en un exploit personalizado aqui el link

http://pastebin.com/raw/0SNSvyjJ
Páginas: 1 ... 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 [173] 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines