PageRenderTime 73ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/fb/Cuestionario2.php

https://bitbucket.org/sergiohzlz/reportaprod
PHP | 503 lines | 347 code | 78 blank | 78 comment | 37 complexity | ea20d804f5e2eafeb7665c139e1788c7 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, AGPL-1.0, LGPL-2.1
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" >
  4. <link href="HojaStiloINFLU2.css" rel="stylesheet" type="text/css"/>
  5. <TITLE>Monitoreo de Enfermedades Respiratorias</TITLE>
  6. </HEAD>
  7. <BODY>
  8. <div class="centrador">
  9. <div class="contenedor">
  10. <img src="header-blog-morado.jpg" alt="amplified"/>
  11. <div id="cabeza">
  12. <h2><a href="index.php" class="more left">Colabora</a></h2>
  13. <h2><a href="#" class="more left">Información sobre la Influenza</a> </h2>
  14. <h2><a href="Resultados.php" class="more left">ve los resultados</a> </h2>
  15. <h2><a href="Acerca.php" class="more left">Acerca de esta página</a> </h2>
  16. </div>
  17. <div class="columna_central">
  18. <div id="recuadro">
  19. <h3> CUESTIONARIO </h3>
  20. <?php
  21. /*
  22. Antes que nada, los numeros de los cuestionarios <-----------------------------
  23. */
  24. $cuestinic = 5; // Inicial
  25. $cuestpost = 2; // Rutrinario
  26. $cuestdoct = 3; // Tras volver del Doc
  27. $cuestcucho = 4;
  28. /*
  29. Luego la conexión a la DB
  30. */
  31. $conexion = mysql_connect("mysql.c3.org.mx","c3_sql","hola666Rt0m4t3");
  32. mysql_set_charset('utf8',$conexion);
  33. mysql_select_db("flu2009", $conexion);
  34. /*
  35. -- Ahora las F U N C I O N E S A U X I L I A R E S ---------------
  36. */
  37. /*
  38. Determina si el usuario ha esperado lo suficiente para volver a participar.
  39. */
  40. function haesperado($elusuario)
  41. {
  42. $muynuevos = mysql_query("SELECT (HOUR( TIMEDIFF('".date("Y-m-d H:i:s")."', UltimaRespuesta))) AS ur FROM usuario WHERE IDUsuario=".$elusuario);
  43. while($dife = mysql_fetch_array($muynuevos))
  44. {
  45. if (($dife['ur']!=NULL)&&($dife['ur']<96))
  46. {
  47. return false;
  48. }
  49. return true;
  50. }
  51. }
  52. /*
  53. Determina si esta pregunta es una de esas que te ponen un botón de salida.
  54. */
  55. function mostrarlelasalida($pregunta)
  56. {
  57. if ($pregunta==17)
  58. {
  59. return "</table><hr><br><b> Si no tuviste ninguno de esos síntomas, puedes salir del cuestionario dando clic <INPUT class=\"enviar\" type=\"submit\" value=\"Aquí\" name=\"Sano\"><br><br><table></b><br>";
  60. }
  61. if ($pregunta==21)
  62. {
  63. return "</table><hr><br><b>Si no recibiste atención médica, puedes salir del cuestionario dando clic <INPUT class=\"enviar\" type=\"submit\" value=\"Aquí\" name=\"NOFUE\"><br><br><table></b>";
  64. }
  65. return "";
  66. }
  67. /*
  68. Si esta pregunta tiene una introducción, esta función hace que aparezca
  69. */
  70. function introapreg($pregunta)
  71. {
  72. return "";
  73. }
  74. /*
  75. En esta función se determina si se le debe dar a una persona una recomendación para que vaya al médico
  76. */
  77. function aldoctor($posteado)
  78. {
  79. if ((!mysql_real_escape_string($posteado['RR260']))&&(!mysql_real_escape_string($posteado['RR268'])))
  80. return false;
  81. if ((mysql_real_escape_string($posteado['19'])!=179)&&(mysql_real_escape_string($posteado['19'])!=180)&&(mysql_real_escape_string($posteado['19'])!=181))
  82. {
  83. return false;
  84. }
  85. return true;
  86. }
  87. /*
  88. Esta función muestra un cuestionario
  89. */
  90. function muestracuest($numcuestionario)
  91. {
  92. $salida="";
  93. $preguntas = mysql_query("SELECT * FROM relCuestPreg where IDCuestionario = ".$numcuestionario." ORDER BY Orden");
  94. while($rowP = mysql_fetch_array($preguntas)) // POR CADA PREGUNTA
  95. {
  96. $salida=$salida."\n". "<tr>\n";
  97. $contpregunta = mysql_query("SELECT * FROM pregunta where IDPregunta = ".$rowP['IDPregunta']);
  98. $rowC = mysql_fetch_array($contpregunta);
  99. $salida=$salida."\n". "<TD>\n";
  100. $salida=$salida."\n".introapreg($rowC['IDPregunta']);
  101. $salida=$salida."\n"."<b>".$rowC['Titulo'] . "</b> <br> " . $rowC['Descripcion'];
  102. $salida=$salida."\n"."\n<TD>\n";
  103. $respuestas = mysql_query("SELECT * FROM respuesta where IDPregunta = ".$rowC['IDPregunta']);
  104. if ($rowC['Varias']==0) // <-- Si la pregunta solo tiene una opcion
  105. {
  106. $salida=$salida."\n"."<select name=\"".$rowC['IDPregunta']."\">\n";
  107. $salida=$salida."\n"."<option value=\"0\"> Elige una opción </option>";
  108. while($rowA = mysql_fetch_array($respuestas)) // POR CADA RESPUESTA
  109. {
  110. $salida=$salida."\n"."<option value=\"".$rowA['IDRespuesta']."\">".$rowA['Valor']."</option>\n";
  111. }
  112. echo "</select>";
  113. }
  114. else // <-- Si puede tener varias
  115. {
  116. while($rowA = mysql_fetch_array($respuestas)) // POR CADA RESPUESTA
  117. {
  118. $salida=$salida."\n"."<input type=checkbox name=\"RR".$rowA['IDRespuesta']."\"> ".$rowA['Valor']." <br>";
  119. }
  120. }
  121. $salida=$salida."\n".mostrarlelasalida($rowC['IDPregunta']); //Hay algunas preguntas que te ofrecen salirte, veamos si esta es una.
  122. $salida=$salida."\n"."</select>\n</tr><tr><td><hr><td><hr></tr> ";
  123. }
  124. return $salida;
  125. }
  126. /*
  127. -- Ahora lo principal ---------------
  128. */
  129. /*
  130. Las entradas hay que limpiarlas contra SQL injection
  131. */
  132. $Pemail = mysql_real_escape_string($_POST['Femail']);
  133. $Pclav1 = mysql_real_escape_string($_POST['Fclav1']);
  134. $Pestado = mysql_real_escape_string($_POST['Festado']);
  135. $Pmunicipio = mysql_real_escape_string($_POST['Fmunicipio']);
  136. $Pcp = mysql_real_escape_string($_POST['CCCP']);
  137. $Pcp2 = mysql_real_escape_string($_POST['CCCP2']);
  138. $Ppaso = mysql_real_escape_string($_POST['Fpaso']); // <- Indica si el usuario acaba de llenar un cuestionario
  139. $Pquest = mysql_real_escape_string($_POST['Fquest']); // <- Indica cual es el cuestionario que el usuario acaba de llenar
  140. $Pcalle = mysql_real_escape_string($_POST['Fcalle']);
  141. $Pentre1 = mysql_real_escape_string($_POST['Fentre1']);
  142. $Pentre2 = mysql_real_escape_string($_POST['Fentre2']);
  143. $Pfechaapasar = mysql_real_escape_string($_POST['Ffechaapasar']);
  144. $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND AFavor=sha1('".$Pclav1."')");
  145. $usuario = mysql_fetch_array($Qusuario);
  146. // Tiene que haber uno y solo uno con este correo y contraseña
  147. if (mysql_num_rows($Qusuario)!=1) // <- Si es un usuario inválido
  148. {
  149. echo "<center><FONT color=FF0000> Correo electrónico o contraseña incorrectos, intentalo de nuevo</FONT></center><br>";
  150. }
  151. else
  152. { //Si es un usuario válido
  153. if($Ppaso=="ALLENNNNNAR")
  154. {
  155. if($Pquest==$cuestinic) // <- Acaba de llenar el cuestionario inicial, hay que guardar su municipio.
  156. {
  157. if ($Pcp==NULL)
  158. {
  159. $Pcp = "MALO";
  160. }
  161. $actualizar = mysql_query("UPDATE usuario SET Municipio=\"".$Pmunicipio."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  162. $actualizar = mysql_query("UPDATE usuario SET CP=\"".$Pcp."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  163. $actualizar = mysql_query("UPDATE usuario SET CP2=\"".$Pcp2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  164. $actualizar = mysql_query("UPDATE usuario SET ENTRE1=\"".$Pentre1."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  165. $actualizar = mysql_query("UPDATE usuario SET ENTRE2=\"".$Pentre2."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  166. $actualizar = mysql_query("UPDATE usuario SET CALLE=\"".$Pcalle."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  167. /*
  168. Aquí analizamos sus respuestas y escogemos, en función de ello un cuestionario a desplegarle.
  169. Para ello cambiamos el valor de la variable $cuestpost
  170. */
  171. if ((mysql_real_escape_string($_POST['37'])!=305)&&(mysql_real_escape_string($_POST['37'])!=0))
  172. {
  173. // Tuvo algo esta semana... hay que mandarle al cucho con la fecha reciente
  174. $cambiaronelcuest = 1;
  175. $fechaaponer = $_POST['37'];
  176. }
  177. if ((mysql_real_escape_string($_POST['38'])!=314)&&(mysql_real_escape_string($_POST['38'])!=0))
  178. {
  179. // Tuvo algo en los últimos dos mese.. hay que mandarle el cucho con la fecha remota
  180. $cambiaronelcuest = 1; // <-- Con esto hacemos que ponga el campo fecha artificialmente
  181. $fechaaponer = $_POST['38'];
  182. if ((mysql_real_escape_string($_POST['37'])!=305)&&(mysql_real_escape_string($_POST['37'])!=0))
  183. {
  184. $fechaaponer = $_POST['37'];
  185. $fechaapasar = $_POST['38'];
  186. // El probe tipo tuvo ADEMAS, algo esta semana
  187. }
  188. }
  189. } // FIN de Acaba de llenar el cuestionario inicial
  190. // Lo que sigue lo hacemos no importa que cuestionario acabe de llenar
  191. // Debemos verificar que haya pasado el tiempo suficiente.
  192. if (haesperado($usuario['IDUsuario']))
  193. {
  194. /*
  195. Primero guardamos en la tabla encuesta la info de que acaban de llenar
  196. El IDCuestionario, IDUsuario y la fecha actual
  197. */
  198. $insertar = mysql_query("INSERT into encuesta (IDUsuario,Fecha,IDCuestionario) VALUES (".$usuario['IDUsuario'].",\"".date("Y-m-d H-i-s")."\",".$Pquest.")");
  199. /*
  200. Obtenemos el valor de IDEncuesta para encuesta que acabamos de llenar
  201. */
  202. $IDdeEstaEncuesta = mysql_insert_id();
  203. if ((($Pquest==$cuestpost)&&($Pfechaapasar == NULL))||($Pquest==$cuestdoct))
  204. {
  205. /*
  206. Y guardamos la fecha en que acaba de llenar este cuestionario, para que no lo llene muy seguido. Pero solo si no acaba de llenar el inicial
  207. */
  208. $actualizar = mysql_query("UPDATE usuario SET UltimaRespuesta=\"".date("Y-m-d H-i-s")."\" WHERE IDUsuario=".$usuario['IDUsuario']);
  209. }
  210. if ($Pquest==$cuestdoct)
  211. {
  212. // Acaba de mandarnos a guardar el cuestionario de doctor, hay que quitarle la marca.
  213. echo "<br>Gracias por colaborar y tener una actitud responsable al ir al doctor<br>";
  214. $actualizar = mysql_query("UPDATE usuario SET AlDoctor=0 WHERE IDUsuario=".$usuario['IDUsuario']);
  215. }
  216. /*
  217. Ahora buscamos todas las preguntas del cuestionario que acaba de llenar
  218. Tomamos el ID de cada una y examinamos el arreglo $_POST en ese índice para ver la respuesta que escogio.
  219. A cada respuesta, hacemos una entrada (numencuesta,idrespuesta) en la tabla valoresencuestas
  220. */
  221. // ------
  222. // INICIA PROPIAMENTE EL L L E N A D O D E E N C U E S T A
  223. // ___________________________________________________-----
  224. $preguntas = mysql_query("SELECT * FROM relCuestPreg where IDCuestionario = ".$Pquest);
  225. while($rowP = mysql_fetch_array($preguntas)) // POR CADA PREGUNTA
  226. {
  227. $contpregunta = mysql_query("SELECT * FROM pregunta where IDPregunta = ".$rowP['IDPregunta']);
  228. $rowC = mysql_fetch_array($contpregunta);
  229. if ($rowC['Varias']==0) // <-- Si la pregunta solo tiene una opcion
  230. {
  231. $respuesta=mysql_real_escape_string($_POST[$rowP['IDPregunta']]);
  232. $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$respuesta.")");
  233. }
  234. else
  235. {
  236. $respuestasmultiples = mysql_query("SELECT * FROM respuesta where IDPregunta = ".$rowP['IDPregunta']);
  237. while ($rowA = mysql_fetch_array($respuestasmultiples)) // Por cada una de las posibles respuestas
  238. {
  239. $respuesta=mysql_real_escape_string($_POST['RR'.$rowA['IDRespuesta']]);
  240. if ($respuesta)
  241. {
  242. $insertar = mysql_query("INSERT into valoresEncuesta (IDEncuesta,IDRespuesta) VALUES(".$IDdeEstaEncuesta.",".$rowA['IDRespuesta'].")");
  243. }
  244. }
  245. }
  246. }
  247. // TERMINA EL L L E N A D O D E E N C U E S T A
  248. // Hay que actualizar los datos del usuario en el script por si ahora si tiene municipio
  249. $Qusuario = mysql_query("SELECT * FROM usuario WHERE EMail='".$Pemail."' AND AFavor=sha1('".$Pclav1."')");
  250. $usuario = mysql_fetch_array($Qusuario);
  251. } // No ha esperado lo sufciente para volver a participar, cómo llego aqui???
  252. else
  253. {
  254. //Esta tratando de enviar una encuesta muy pronto
  255. }
  256. } // FIN de hay que llenar
  257. // Ya escribimos a la base de datos todo lo que teniamos que escribir... ahora hay que mostrarle los cuestionarios pertinentes
  258. if ($usuario['Municipio']==NULL) // <= El usuario acaba de registrarse, en este caso este script no ha escrito nada a la DB.
  259. {
  260. /*
  261. Hay que pedirle su municipio
  262. Y mostarle el cuestionario inicial
  263. */
  264. echo "Por ser la primera vez, por favor responde estas preguntas para que tu participación sea más valiosa<BR>";
  265. echo "Este cuestionario sólo tendrás que llenarlo una vez.<BR><BR>";
  266. $mpos = mysql_query("SELECT * FROM municipios WHERE Estado= ".$usuario['Estado']." ORDER BY Municipio");
  267. ?>
  268. <Form method="post" action="Cuestionario.php">
  269. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  270. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  271. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestinic; ?>">
  272. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  273. <hr>
  274. <table width="100%">
  275. <tr><td><b> ¿En qué municipio o delegación vives? </b>
  276. <td><select name="Fmunicipio">
  277. <?php // ---- Este select muestra todos los municipios del estado que nos pasaron
  278. while($mipio = mysql_fetch_array($mpos))
  279. {
  280. echo "<option value=\"".$mipio['Municipio']."\">".$mipio['Municipio']."</option>\n";
  281. }
  282. ?> </select>
  283. </tr><tr><td><hr><td><hr></tr>
  284. <tr><td><b>¿Cuál es el código postal de tu casa?</b> <td> <input type="text" name="CCCP"> </tr>
  285. </tr><tr><td><hr><td><hr></tr>
  286. <tr><td><b>¿En qué calle está tu casa?</b><br><u>Estrictamente opcional</u> ¡Esto nos ayuda a ubicar los datos en el mapa con más precisión!
  287. <td> <input type="text" name="Fcalle"> </tr>
  288. </tr><tr><td><hr><td><hr></tr>
  289. <tr><td><b>Entre la calle: <br>Y la calle</b><br><u>Estrictamente opcional</u>
  290. <td> <input type="text" name="Fentre1"> <br> <input type="text" name="Fentre2"> <br><br></tr>
  291. </tr><tr><td><hr><td><hr></tr>
  292. <tr><td><b>¿Cuál es el código postal de tu trabajo o escuela?</b> <td> <input type="text" name="CCCP2"> </tr>
  293. </tr><tr><td><hr><td><hr></tr><tr>
  294. <?php
  295. echo muestracuest($cuestinic);
  296. ?>
  297. <tr></tr>
  298. <tr>
  299. <td>
  300. <td><INPUT class="enviar" type="submit" value="Continuar al cuestionario rutinario" name="terminoquestI">
  301. </tr>
  302. </table>
  303. </form>
  304. <?php
  305. } // FIN DE MUNICIPIO == NULL ES DECIR, FIN DE ES UN USUARIO NUEVO, MOSTRARLE EL INICIAL
  306. else
  307. { //El usuario ya lleno el cuestionario inicial
  308. if ( (($Pquest==$cuestpost)&&($Pfechaapasar == "")) || (($Pquest==$cuestinic)&&($fechaaponer==NULL)))
  309. // Además acaba de llenar el cuestionario posterior y no tendrá que llenar el siguiente. O acaba de llenar el inicial y no tuvo problema alguno.
  310. {
  311. /*
  312. No queda más que agradecerle;
  313. */
  314. if (aldoctor($_POST)) // Si hay que mandarlo al doctor
  315. {
  316. echo "La definición operacional de la Secretaría de Salud de caso sospechoso de influenza es: Fiebre y alguna de las siguientes: odinofagia (dolor al tragar) o tos.";
  317. echo "<br><br>Si cumples con estos síntomas, debes ir al doctor para una evaluación más profunda.<br>";
  318. $actualizar = mysql_query("UPDATE usuario SET AlDoctor=1 WHERE IDUsuario=".$usuario['IDUsuario']);
  319. }
  320. echo "<BR>Gracias por llenar el cuestionario. Por favor regresa en una semana para seguir ayudando a monitorear, recuerda que sólo lleva un minuto. <br><br>La proxima vez solo tendrás que introducir información si tuviste síntomas en la última semana.<b>".$Pfechaapasar."</b>";
  321. echo "<br> ¡Y pasa la voz!";
  322. }
  323. else // No acaba de llenar el posterior, o tiene que llenarlo de nuez porque se enfermo dos veces así que debe llenarlo ahora
  324. {
  325. if ($usuario['AlDoctor']==1) // Le habiamos dicho que fuera al doctor
  326. {
  327. /*
  328. Aquí hay que poner la parte de las preguntas
  329. de cuando regresa del doctor
  330. */
  331. ?>
  332. La última vez que participaste, mostrabas un conjunto de síntomas que ameritaba ir al doctor.
  333. <Form method="post" action="Cuestionario.php">
  334. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  335. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  336. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestdoct; ?>">
  337. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  338. <hr>
  339. <table width="100%">
  340. <?php
  341. echo muestracuest($cuestdoct);
  342. ?>
  343. <tr></tr>
  344. <tr>
  345. <td>
  346. <td><INPUT class="enviar" type="submit" value="Terminar" name="terminoquestd">
  347. </tr>
  348. </table>
  349. </form>
  350. <?php
  351. } // Fin de le habiamos dicho que fuera al doctor
  352. else
  353. { // No le habiamos dicho que fuera al doctor
  354. if (haesperado($usuario['IDUsuario'])) // Ya puede llenar de nuevo
  355. {
  356. if($Pquest==$cuestinic) // Acaba de llenar el cuestionario inicial
  357. {
  358. if ($fechaaponer!=NULL)
  359. {
  360. $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$fechaaponer);
  361. $row = mysql_fetch_array($fechas);
  362. echo "Hablanos un poco de los síntomas que tuviste <b>".$row['Valor'].".</b><br>Cuentanos con más precisión cuales fueron estos síntomas";
  363. }
  364. }
  365. if ($Pfechaapasar != "")
  366. {
  367. $fechas = mysql_query("SELECT * FROM respuesta WHERE IDRespuesta= ".$Pfechaapasar);
  368. $row = mysql_fetch_array($fechas);
  369. echo "Hablanos un poco de los síntomas que tuviste <b>".$row['Valor'].".</b> <br>Cuentanos con más precisión cuales fueron estos síntomas";
  370. }
  371. if (($Pfechaapasar == "") && ($fechaaponer==NULL))
  372. {
  373. echo "En los <b>últimos siete días</b>:" ;
  374. }
  375. /*
  376. Aquí va el cuestionario en si. El rutinario.
  377. */
  378. ?>
  379. <Form method="post" action="Cuestionario.php">
  380. <INPUT type="hidden" name="Femail" value="<?php echo $Pemail; ?>">
  381. <INPUT type="hidden" name="Fclav1" value="<?php echo $Pclav1; ?>">
  382. <INPUT type="hidden" name="Fpaso" value="ALLENNNNNAR">
  383. <INPUT type="hidden" name="Fquest" value="<?php echo $cuestpost; ?>">
  384. <?php
  385. if ($cambiaronelcuest==1) // SI este NO es el rutinario normal... (Nota: esta variable solo se altera cuando acabo de leer el inicial)
  386. {
  387. echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$fechaaponer."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
  388. echo "\n<INPUT type=\"hidden\" name=\"Ffechaapasar\" value=\"".$fechaapasar."\">";
  389. $cuestpost = $cuestcucho;
  390. }
  391. if ($Pfechaapasar!=NULL) // Si me pasaron una fecha como fecha a pasar, quiere decir que el tipo es de los que se enfermaron twice
  392. {
  393. echo "\n<INPUT type=\"hidden\" name=\"18\" value=\"".$Pfechaapasar."\">"; // <--- Aquí ponemos la fecha porque el cuest que vamos a poner no la trae.
  394. $cuestpost = $cuestcucho;
  395. }
  396. ?>
  397. <hr>
  398. <table>
  399. <?php
  400. echo muestracuest($cuestpost);
  401. ?>
  402. <tr></tr>
  403. <tr>
  404. <td>
  405. <td><INPUT class="enviar" type="submit" value="Terminar" name="terminoquestP">
  406. </tr>
  407. </table>
  408. </form>
  409. <?php
  410. } // FIN DE HAESPERADO
  411. else
  412. { // NO HA ESPERADO LO SUFICIENTE
  413. echo "Espera al menos 5 días para volver a participar";
  414. } // FIN DE NO HA ESPERADO LO SUFICIENTE
  415. } // FIN de NO le habiamos dicho que fuera al doctor
  416. } // Fin de tiene que llenar el posterior
  417. } // FIN de El usuario ya lleno el cuestionario inicial
  418. } //FIN de si es un usuario válido
  419. ?>
  420. </div>
  421. </div>
  422. </div>
  423. </div>
  424. </body>
  425. </html>