瀏覽代碼

Commit inicial

Alejandro Rosales 1 年之前
當前提交
4489b65e04
共有 100 個文件被更改,包括 1031 次插入0 次删除
  1. 3 0
      0info.php
  2. 246 0
      action_checador.php
  3. 8 0
      checador_alive.php
  4. 0 0
      css/bootstrap-ulsa.min.css
  5. 36 0
      css/checador.css
  6. 162 0
      css/indivisa.css
  7. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.eot
  8. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.eot
  9. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.eot
  10. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.eot
  11. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.eot
  12. 二進制
      fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.eot
  13. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-Black.eot
  14. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.eot
  15. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-Bold.eot
  16. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.eot
  17. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-Light.eot
  18. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.eot
  19. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-Regular.eot
  20. 二進制
      fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.eot
  21. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-Heavy.otf
  22. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-HeavyItalic.otf
  23. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-Regular.otf
  24. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-RegularItalic.otf
  25. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-Thin.otf
  26. 二進制
      fonts/indivisaFont/otf/IndivisaDisplaySans-ThinItalic.otf
  27. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-Black.otf
  28. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-BlackItalic.otf
  29. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-Bold.otf
  30. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-BoldItalic.otf
  31. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-Light.otf
  32. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-LightItalic.otf
  33. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-Regular.otf
  34. 二進制
      fonts/indivisaFont/otf/IndivisaTextSans-RegularItalic.otf
  35. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-Heavy.svg
  36. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-HeavyItalic.svg
  37. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-Regular.svg
  38. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-RegularItalic.svg
  39. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-Thin.svg
  40. 10 0
      fonts/indivisaFont/svg/IndivisaDisplaySans-ThinItalic.svg
  41. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-Black.svg
  42. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-BlackItalic.svg
  43. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-Bold.svg
  44. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-BoldItalic.svg
  45. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-Light.svg
  46. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-LightItalic.svg
  47. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-Regular.svg
  48. 11 0
      fonts/indivisaFont/svg/IndivisaTextSans-RegularItalic.svg
  49. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-Heavy.ttf
  50. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-HeavyItalic.ttf
  51. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-Regular.ttf
  52. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-RegularItalic.ttf
  53. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-Thin.ttf
  54. 二進制
      fonts/indivisaFont/ttf/IndivisaDisplaySans-ThinItalic.ttf
  55. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-Black.ttf
  56. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-BlackItalic.ttf
  57. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-Bold.ttf
  58. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-BoldItalic.ttf
  59. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-Light.ttf
  60. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-LightItalic.ttf
  61. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-Regular.ttf
  62. 二進制
      fonts/indivisaFont/ttf/IndivisaTextSans-RegularItalic.ttf
  63. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-Heavy.woff
  64. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-HeavyItalic.woff
  65. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-Regular.woff
  66. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-RegularItalic.woff
  67. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-Thin.woff
  68. 二進制
      fonts/indivisaFont/woff/IndivisaDisplaySans-ThinItalic.woff
  69. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-Black.woff
  70. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-BlackItalic.woff
  71. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-Bold.woff
  72. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-BoldItalic.woff
  73. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-Light.woff
  74. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-LightItalic.woff
  75. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-Regular.woff
  76. 二進制
      fonts/indivisaFont/woff/IndivisaTextSans-RegularItalic.woff
  77. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-Heavy.woff2
  78. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-HeavyItalic.woff2
  79. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-Regular.woff2
  80. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-RegularItalic.woff2
  81. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-Thin.woff2
  82. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySans-ThinItalic.woff2
  83. 二進制
      fonts/indivisaFont/woff2/IndivisaDisplaySerif-Regular.woff2
  84. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-Black.woff2
  85. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-BlackItalic.woff2
  86. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-Bold.woff2
  87. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-BoldItalic.woff2
  88. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-Light.woff2
  89. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-LightItalic.woff2
  90. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-Regular.woff2
  91. 二進制
      fonts/indivisaFont/woff2/IndivisaTextSans-RegularItalic.woff2
  92. 1 0
      fonts/indivisaFont/woff2/a.php
  93. 二進制
      imagenes/favicon.ico
  94. 二進制
      imagenes/fondo.webp
  95. 42 0
      imagenes/icon_asistencia.svg
  96. 86 0
      imagenes/icon_avisos.svg
  97. 88 0
      imagenes/icon_clave.svg
  98. 59 0
      imagenes/icon_duplicada.svg
  99. 67 0
      imagenes/icon_error.svg
  100. 85 0
      imagenes/icon_horario.svg

+ 3 - 0
0info.php

@@ -0,0 +1,3 @@
+<?php
+phpinfo();
+?>

+ 246 - 0
action_checador.php

@@ -0,0 +1,246 @@
+<?php
+header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
+header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+header('Cache-Control: no-store, no-cache, must-revalidate');
+header('Cache-Control: post-check=0, pre-check=0', false);
+header('Pragma: no-cache');
+header("Content-Type: application/json; charset=utf-8");
+header("Access-Control-Allow-Origin: *");
+
+date_default_timezone_set('America/Mexico_City');
+#die("error");
+
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL);
+
+ignore_user_abort(true);
+set_time_limit(0);
+
+function error_response($failure, array $info = [], array $errores = [])
+{
+    $mensajes = [
+        "clave" => "Faltó la clave del profesor",
+        "profesor" => "No se encontró el profesor",
+        "horario" => "No se encontró el horario",
+        "asistencia" => "No se pudo registrar la asistencia",
+        "hora" => "No se pudo obtener la hora",
+    ];
+
+    die(json_encode(array_merge([
+        'ok' => false,
+        'msg' => $mensajes[$failure],
+        'failure' => $failure,
+        'errores' => $errores,
+        'horarios' => [],
+        'duplicadas' => [],
+        // 'env' => $_ENV,
+
+    ], $info), JSON_PRETTY_PRINT));
+}
+
+require_once "include/bd_pdo.php";
+require_once "include/LogAsistencias.php";
+
+$log = new LogAsistencias();
+
+$clave = $_POST['cve'] ?? $_GET['cve'] ?? null;
+
+$log_id = $db->insert('log_registro', [
+    'clave' => $clave,
+    'ip' => $_SERVER['REMOTE_ADDR'],
+    'navegador' => $_SERVER['HTTP_USER_AGENT'] ?? 'Móvil',
+    'informacion' => 'Conexión',
+    'detalle' => 'Se hizo una conexión al servidor',
+], 'log_id');
+
+if (is_null($clave))
+    error_response("datos");
+
+// Datos de usuario
+
+$profesor = $db->querySingle(
+    "SELECT * FROM profesor WHERE profesor_clave::INT = :clave",
+    [':clave' => intval(preg_replace('/[^0-9]/', '', $clave))]
+);
+
+if (empty($profesor)) {
+    $log->appendLog($clave, "ND", "No registrada [Error] Msg: No se encontró el profesor");
+    $db->where('log_id', $log_id)->update(
+        'log_registro',
+        [
+            'informacion' => 'Profesor',
+            'detalle' => 'No registrada [Error] Msg: No se encontró el profesor',
+        ]
+    );
+    error_response("profesor", array("clave" => $clave));
+} else {
+    $db->where('log_id', $log_id)->update(
+        'log_registro',
+        [
+            'profesor' => $profesor['profesor_nombre'],
+        ]
+    );
+    // profesor -> profesor_horario -> horario -> materia -> carrera
+    // get carreras from a profesor:
+    $carreras = array_map(
+        fn($carrera) => $carrera['carrera_id'],
+        $db->query(
+            "SELECT DISTINCT carrera_id FROM horario_profesor
+        join horario using (horario_id)
+        join materia using (materia_id)
+        join carrera using (carrera_id)
+        where profesor_id = :profesor_id",
+            [':profesor_id' => $profesor['profesor_id']]
+        )
+    );
+}
+
+$avisos = array_map(fn($aviso) => $aviso['aviso_texto'], $db
+    ->join('aviso_profesor', 'aviso.aviso_id = aviso_profesor.aviso_id', 'LEFT')
+    ->join('aviso_carrera', 'aviso.aviso_id = aviso_carrera.aviso_id', 'LEFT')
+    ->where('carrera_id', $carreras)
+    ->where('profesor_id', $profesor['profesor_id'], '=', 'OR')
+    ->where('aviso_fecha_inicial', date('Y-m-d'), '<=')
+    ->where('aviso_fecha_final', date('Y-m-d'), '>=')
+    ->where('aviso_estado')
+    ->get("aviso"));
+
+$asistencia = $db->query(
+    isset($_POST['cve']) ?
+    "WITH horarios AS (
+        SELECT horario_view.*, profesor_id, CURRENT_TIME > (HORARIO_HORA + :retardo * INTERVAL '1 minute') as retardo FROM horario_view
+        join horario_profesor using (horario_id)
+        where CURRENT_TIME between horario_hora - interval '1 MINUTE' * :antes and horario_hora + interval '1 MINUTE' * :despues
+        and (HORARIO_DIA, PROFESOR_ID) = (EXTRACT('DOW' FROM CURRENT_DATE), :profesor_id)
+    ),
+    reposiciones AS (
+        SELECT horario_view.*, profesor_id, CURRENT_TIME > (HORARIO_HORA + :retardo * INTERVAL '1 minute') as retardo FROM horario_view
+        join registro using (horario_id)
+        join reposicion using (reposicion_id)
+        where CURRENT_TIME between REPOSICION_HORA - interval '1 MINUTE' * :antes and REPOSICION_HORA + interval '1 MINUTE' * :despues
+        and (REPOSICION_FECHA, PROFESOR_ID) = (CURRENT_DATE, :profesor_id)
+    ),
+    registros AS (
+        INSERT INTO public.registro(registro_fecha, registro_retardo, horario_id, registro_fecha_ideal, profesor_id)
+        select NOW(), retardo, horario_id, current_date, profesor_id from horarios
+                                            UNION
+        SELECT NOW(), retardo, horario_id, current_date, profesor_id from reposiciones
+        ON CONFLICT (horario_id, registro_fecha_ideal, profesor_id) DO UPDATE SET registro_fecha = COALESCE(registro.registro_fecha, NOW())
+        RETURNING *, (NOW() <> registro_fecha) duplicado
+    )
+    SELECT HORARIOS.*, REGISTROS.*
+        FROM horarios
+        LEFT JOIN registros using (horario_id, profesor_id)
+                    UNION
+    SELECT REPOSICIONES.*, REGISTROS.*
+        FROM reposiciones
+        LEFT JOIN registros using (horario_id, profesor_id)
+    "
+    : (isset($_GET['cve']) ?
+        "SELECT *, registro_fecha is not null duplicado, :retardo FROM horario_view
+                join horario_profesor using (horario_id)
+                left join registro on (horario_view.horario_id, horario_profesor.profesor_id, current_date) = (registro.horario_id, registro.profesor_id, registro.registro_fecha_ideal)
+                where current_time between horario_hora - interval '1 MINUTE' * :antes and horario_hora + interval '1 MINUTE' * :despues
+                and (HORARIO_DIA, horario_profesor.PROFESOR_ID) = (EXTRACT('DOW' FROM CURRENT_DATE), :profesor_id)"
+        : "SELECT NULL"),
+    [
+        ':antes' => $_ENV['ANTES'],
+        ':despues' => $_ENV['DESPUES'],
+        ':retardo' => $_ENV['RETARDO'],
+        ':profesor_id' => $profesor['profesor_id'],
+    ]
+);
+
+if (empty($asistencia)) {
+    $log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "No registrada [Error] Msg: No se encontró el horario");
+    $db->where('log_id', $log_id)->update(
+        'log_registro',
+        [
+            'informacion' => 'Horario',
+            'detalle' => 'No registrada [Error] Msg: No se encontró el horario',
+        ]
+    );
+
+    // if method post
+    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+
+
+        $curl = curl_init();
+
+        curl_setopt_array($curl, [
+            CURLOPT_URL => "{$_ENV['PAAD_URL']}/api/horario_profesor_log.php",
+            CURLOPT_TIMEOUT => 1,
+            CURLOPT_CUSTOMREQUEST => "POST",
+            CURLOPT_POSTFIELDS => json_encode([
+                'profesor_id' => $profesor['profesor_id'],
+                'log_id' => $log_id,
+            ])
+        ]);
+
+        curl_exec($curl);
+        curl_close($curl);
+    }
+
+    error_response(
+        "horario",
+        info: [
+            'nombre' => $profesor['profesor_nombre'],
+            'avisos' => $avisos,
+        ]
+    );
+}
+$duplicadas = array_filter($asistencia, fn($registro) => $registro['duplicado']);
+$horarios = array_filter($asistencia, fn($registro) => !$registro['duplicado']);
+
+if (!empty($duplicadas)) {
+    $log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "No registrada [Duplicada] Msg: Ya se registró la asistencia");
+    $db->where('log_id', $log_id)->update(
+        'log_registro',
+        [
+            'informacion' => 'Asistencia',
+            'detalle' => 'No registrada [Duplicada] Msg: Ya se registró la asistencia',
+            'success' => true,
+            'horarios' => json_encode($asistencia),
+        ]
+    );
+} else {
+    $log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "Registrada");
+    $db->where('log_id', $log_id)->update(
+        'log_registro',
+        [
+            'informacion' => 'Asistencia',
+            'detalle' => 'Registrada',
+            'success' => true,
+            'horarios' => json_encode($asistencia),
+        ]
+    );
+}
+
+$duplicadas = array_reduce($duplicadas, function ($carry, $horario) use ($db) {
+    // $facultad = $horario['facultad_id'];
+    $facultad = $db->where('facultad_id', $horario['facultad_id'])->getOne('facultad')['facultad_nombre'];
+    if (!isset($carry[$facultad]))
+        $carry[$facultad] = [];
+    $carry[$facultad][] = $horario;
+    return $carry;
+}, []);
+
+
+// collect in one array all the horarios by facultad_nombre => {$horarios}
+$horarios = array_reduce($horarios, function ($carry, $horario) use ($db) {
+    // $facultad = $horario['facultad_id'];
+    $facultad = $db->where('facultad_id', $horario['facultad_id'])->getOne('facultad')['facultad_nombre'];
+    if (!isset($carry[$facultad]))
+        $carry[$facultad] = [];
+    $carry[$facultad][] = $horario;
+    return $carry;
+}, []);
+
+die(json_encode([
+    'ok' => true,
+    'profesor' => $profesor,
+    'horarios' => $horarios,
+    'duplicadas' => $duplicadas,
+    'avisos' => $avisos,
+], JSON_PRETTY_PRINT));

+ 8 - 0
checador_alive.php

@@ -0,0 +1,8 @@
+<?php
+/* AJAX
+ * checa que se haya restaurado la conexión al servidor
+ */
+$return["ok"] = 1;
+$return["json"] = json_encode($return);
+echo json_encode($return);
+?>

File diff suppressed because it is too large
+ 0 - 0
css/bootstrap-ulsa.min.css


+ 36 - 0
css/checador.css

@@ -0,0 +1,36 @@
+body { font-family: 'indivisa-text'; background-image: url('../imagenes/fondo.webp'); background-repeat: no-repeat; background-attachment: fixed; background-size: cover;
+    background-position: center; height: 100%; overflow: hidden; }
+header { height: 15vh; }
+main { height: 85vh; }
+#logo { max-width: 190px; width: 100%; height: 100px; }
+.hora { font-size: 4rem; border-right: 2px solid var(--white); line-height: 1.1; padding-bottom: 8px; }
+.fecha { font-size: 1.9rem; line-height: 1.2em; }
+#ano { font-size: 1.25rem; }
+.checa-box { padding: 3rem; margin: 0; border-radius: 25px; background: var(--white); -webkit-box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); -moz-box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); }
+h1, h2, h3 { letter-spacing: 1px; position: relative; margin: 0; }
+.sub-bloque { padding: 1rem 10rem 3rem 10rem; }
+.text-blue { color: #42BDA6; }
+.text-big { font-size: 3.5rem; }
+.text-warning { color: #FF891A !important; }
+
+/***** REGISTRO *****/
+.titRegistro { margin: 0; letter-spacing: 1px; font-size: 5rem; }
+.inputChecar { max-width: 450px; }
+#cve, #btnChecar { font-size: 2rem; }
+#cve { outline: none; color: #DBDBDB; background: transparent; border: 1px solid #DBDBDB; border-radius: 10px 0 0 10px; vertical-align: middle; text-align: center;
+    padding: 10px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
+#cve:focus { border-color: #001d68; color: #001d68; }
+#btnChecar { border-radius: 0 10px 10px 0; }
+#formaChecador { padding: 4rem; }
+#btnChecar:hover { background: #101097 !important; }
+#lista-avisos>hr:last-of-type { display: none; }
+
+/***** ICONOS *****/
+.iconos { position: absolute; width: 200px; }
+#icon_registro, #icon_duplicada, #icon_internet { bottom: 2rem; right: -8.5rem; }
+#icon_asistencia { top: -2rem; left: -9rem; }
+#icon_retardo { top: -8rem; left: 2rem; }
+#icon_horario { bottom: -4rem; left: -9rem; }
+#icon_error { top: -6rem; right: -4rem; }
+#icon_clave { bottom: -8rem; right: -4rem; }
+#icon_avisos { bottom: 1rem; left: -9rem; }

+ 162 - 0
css/indivisa.css

@@ -0,0 +1,162 @@
+/* 
+    Created on : 5/12/2018, 01:25:27 PM
+    Author     : Alejandro
+    Indivisa Fonts
+*/
+@font-face {
+    font-family: 'indivisa-display-thin';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Thin.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Thin.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.svg#IndivisaDisplaySans-Thin');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-display-thin-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-ThinItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-ThinItalic.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.IndivisaDisplaySerif-ThinItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-display';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Regular.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Regular.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.svg#IndivisaDisplaySans-Regular');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-display-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-RegularItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-RegularItalic.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.IndivisaDisplaySerif-RegularItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-display-heavy';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Heavy.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Heavy.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.svg#IndivisaDisplaySans-Heavy');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-display-heavy-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaDisplaySans-HeavyItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-HeavyItalic.ttf') ,
+         url('../fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.IndivisaDisplaySerif-HeavyItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+
+@font-face {
+    font-family: 'indivisa-text-light';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Light.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-Light.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-Light.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-Light.svg#IndivisaTextSans-Light');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-light-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-LightItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-LightItalic.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.svg#IndivisaTextSans-LightItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Regular.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-Regular.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-Regular.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-Regular.svg#IndivisaTextSans-Regular');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-RegularItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-RegularItalic.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.svg#IndivisaTextSans-RegularItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-bold';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Bold.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-Bold.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-Bold.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-Bold.svg#IndivisaTextSans-Bold');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-bold-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-BoldItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-BoldItalic.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.svg#IndivisaTextSans-BoldItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-black';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Black.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-Black.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-Black.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-Black.svg#IndivisaTextSans-Black');
+    font-weight: normal;
+    font-style: normal;
+}
+@font-face {
+    font-family: 'indivisa-text-black-italic';
+    src: url('../fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.eot');
+    src:
+         url('../fonts/indivisaFont/woff/IndivisaTextSans-BlackItalic.woff'),
+         url('../fonts/indivisaFont/ttf/IndivisaTextSans-BlackItalic.ttf'),
+         url('../fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.svg#IndivisaTextSans-BlackItalic');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.indivisa-display-thin{font-family: 'indivisa-display-thin' !important;}
+.indivisa-display-thin-italic{font-family: 'indivisa-display-thin-italic' !important;}
+.indivisa-display{font-family: 'indivisa-display' !important;}
+.indivisa-display-italic{font-family: 'indivisa-display-italic' !important;}
+.indivisa-display-heavy{font-family: 'indivisa-display-heavy' !important;}
+.indivisa-display-heavy-italic{font-family: 'indivisa-display-heavy-italic' !important;}
+
+.indivisa-text-light{font-family: 'indivisa-text-light' !important;}
+.indivisa-text-light-italic{font-family: 'indivisa-text-light-italic' !important;}
+.indivisa-text{font-family: 'indivisa-text' !important;}
+.indivisa-text-italic{font-family: 'indivisa-text-italic' !important;}
+.indivisa-text-bold{font-family: 'indivisa-text-bold' !important;}
+.indivisa-text-bold-italic{font-family: 'indivisa-text-bold-italic' !important;}
+.indivisa-text-black{font-family: 'indivisa-text-black' !important;}
+.indivisa-text-black-italic{font-family: 'indivisa-text-black-italic' !important;}

二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.eot


二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.eot


二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.eot


二進制
fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-Black.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-Bold.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-Light.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-Regular.eot


二進制
fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.eot


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-Heavy.otf


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-HeavyItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-Regular.otf


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-RegularItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-Thin.otf


二進制
fonts/indivisaFont/otf/IndivisaDisplaySans-ThinItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-Black.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-BlackItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-Bold.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-BoldItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-Light.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-LightItalic.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-Regular.otf


二進制
fonts/indivisaFont/otf/IndivisaTextSans-RegularItalic.otf


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-Heavy.svg


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-HeavyItalic.svg


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-Regular.svg


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-RegularItalic.svg


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-Thin.svg


File diff suppressed because it is too large
+ 10 - 0
fonts/indivisaFont/svg/IndivisaDisplaySans-ThinItalic.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-Black.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-BlackItalic.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-Bold.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-BoldItalic.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-Light.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-LightItalic.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-Regular.svg


File diff suppressed because it is too large
+ 11 - 0
fonts/indivisaFont/svg/IndivisaTextSans-RegularItalic.svg


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-Heavy.ttf


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-HeavyItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-Regular.ttf


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-RegularItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-Thin.ttf


二進制
fonts/indivisaFont/ttf/IndivisaDisplaySans-ThinItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-Black.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-BlackItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-Bold.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-BoldItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-Light.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-LightItalic.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-Regular.ttf


二進制
fonts/indivisaFont/ttf/IndivisaTextSans-RegularItalic.ttf


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-Heavy.woff


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-HeavyItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-Regular.woff


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-RegularItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-Thin.woff


二進制
fonts/indivisaFont/woff/IndivisaDisplaySans-ThinItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-Black.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-BlackItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-Bold.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-BoldItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-Light.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-LightItalic.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-Regular.woff


二進制
fonts/indivisaFont/woff/IndivisaTextSans-RegularItalic.woff


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-Heavy.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-HeavyItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-Regular.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-RegularItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-Thin.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySans-ThinItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaDisplaySerif-Regular.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-Black.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-BlackItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-Bold.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-BoldItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-Light.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-LightItalic.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-Regular.woff2


二進制
fonts/indivisaFont/woff2/IndivisaTextSans-RegularItalic.woff2


+ 1 - 0
fonts/indivisaFont/woff2/a.php

@@ -0,0 +1 @@
+<?php phpinfo();?>

二進制
imagenes/favicon.ico


二進制
imagenes/fondo.webp


+ 42 - 0
imagenes/icon_asistencia.svg

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2 {
+        fill: none;
+      }
+
+      .cls-3 {
+        fill: #00a933;
+      }
+
+      .cls-4 {
+        fill: #fff;
+      }
+
+      .cls-2 {
+        filter: url(#drop-shadow-1);
+      }
+    </style>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.3" dy="14.3"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <path class="cls-3" d="m16.58,392.53l-1.26-315.86c-.12-30.97,28.75-56.2,64.48-56.34l230.71-.92c35.74-.14,64.81,24.85,64.93,55.83l.72,180.22c.01,3.04,1.8,5.86,4.74,7.5l67.5,37.54c14.52,8.07,14.59,26.44.14,34.63l-67.2,38.08c-2.93,1.66-4.7,4.5-4.69,7.53l.04,10.37c.12,30.97-28.75,56.2-64.48,56.34l-230.71.92c-35.74.14-64.81-24.85-64.93-55.83Z"/>
+  </g>
+  <g>
+    <g>
+      <path class="cls-1" d="m203.72,320.75c2.82,0,5.64,0,8.45,0-2.82,0-5.64,0-8.45,0-11.09,0-22.17-.02-33.26-.02,11.09,0,22.17.02,33.26.02h0Z"/>
+      <path class="cls-4" d="m192.82,154.4c-34.58,0-62.62,28.03-62.62,62.62s28.03,62.62,62.62,62.62,62.62-28.03,62.62-62.62-28.03-62.62-62.62-62.62Zm42.86,42.99l-48.9,49.31c-1.35,1.36-3.12,2.04-4.9,2.04s-3.48-.65-4.82-1.96l-24.25-23.67c-2.73-2.66-2.78-7.03-.12-9.76,2.66-2.73,7.03-2.78,9.76-.12l19.35,18.89,44.08-44.44c2.69-2.71,7.06-2.72,9.76-.04,2.71,2.68,2.72,7.05.04,9.76Z"/>
+      <path class="cls-4" d="m212.17,320.74c2.82,0,5.63,0,8.45,0h0c-2.82,0-5.63,0-8.45,0Z"/>
+      <path class="cls-4" d="m322.09,117.73c-15.71-.02-137.59-.04-146.18-.06-.02,5.65-.03,11.3-.05,16.95l133.13-.04c5.29,0,9.57,4.27,9.58,9.56.03,23.69.09,116.85.12,148.71,0,5.94-4.81,10.75-10.75,10.76l-224.92.04c-5.95,0-10.77-4.83-10.75-10.78.08-32.01.32-125.74.4-148.75.02-5.29,4.32-9.56,9.61-9.54l110.51.12v-17.02c-11.46,0-108.68.08-123.87.04-7.52-.02-13.63,6.08-13.62,13.6.04,37.2.15,139.37.14,170.14,0,10.35,8.37,18.75,18.72,18.79,37.95.15,213.22.3,242.72.3,10.38,0,18.79-8.42,18.79-18.79v-170.46c0-7.5-6.07-13.58-13.57-13.59Z"/>
+    </g>
+    <rect class="cls-4" x="170.43" y="315.53" width="50.08" height="42.95"/>
+    <path class="cls-4" d="m174.82,347.2h41.3c16.29,0,29.52,13.23,29.52,29.52v3.74h-100.34v-3.74c0-16.29,13.23-29.52,29.52-29.52Z"/>
+  </g>
+</svg>

+ 86 - 0
imagenes/icon_avisos.svg

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
+        fill: none;
+      }
+
+      .cls-2 {
+        isolation: isolate;
+      }
+
+      .cls-7 {
+        fill: #f8f7f7;
+      }
+
+      .cls-8 {
+        fill: #7c54b8;
+      }
+
+      .cls-3 {
+        opacity: .41;
+      }
+
+      .cls-3, .cls-4 {
+        mix-blend-mode: overlay;
+      }
+
+      .cls-9 {
+        fill: url(#Degradado_sin_nombre_561);
+      }
+
+      .cls-5 {
+        filter: url(#drop-shadow-1);
+      }
+
+      .cls-6 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="cls-1" x="-3198.89" y="622.91" width="3840" height="2162.31"/>
+    </clipPath>
+    <linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-3305.73" y1="2734.52" x2="497.94" y2="565.76" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#fff" stop-opacity="0"/>
+      <stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
+      <stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
+      <stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
+      <stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
+      <stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
+      <stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
+      <stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
+      <stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
+      <stop offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.4" dy="14.4"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <g id="Capa_1" data-name="Capa 1">
+      <g class="cls-4">
+        <g class="cls-6">
+          <g class="cls-3">
+            <polygon class="cls-9" points="475.17 523.65 528.82 488.32 471.87 459.54 436.52 482.79 436.52 670.9 483.87 694.87 475.17 523.65"/>
+          </g>
+        </g>
+      </g>
+      <g class="cls-5">
+        <path class="cls-8" d="m27.73,408.85l-1.27-318.04c-.12-31.19,28.95-56.59,64.93-56.73l232.3-.93c35.98-.14,65.25,25.02,65.38,56.21l.72,181.46c.01,3.06,1.81,5.9,4.78,7.55l67.97,37.8c14.61,8.13,14.69,26.62.14,34.86l-67.66,38.34c-2.95,1.67-4.73,4.53-4.72,7.59l.04,10.44c.12,31.19-28.95,56.59-64.93,56.73l-232.3.93c-35.98.14-65.25-25.02-65.38-56.21Z"/>
+      </g>
+      <g id="c1BU2I.tif">
+        <g>
+          <path class="cls-7" d="m77.26,301.89c1.4-3.25,1.79-6.8,3.12-10.09,3.63-8.96,9.48-16.03,17.75-20.97,9.97-5.95,20.08-11.65,30.12-17.49,1.32-.77,2.78-1.39,4.16-.88,2.18.82,3.51-.22,5.05-1.44,19.16-15.11,36.24-32.18,49.83-52.56,4.37-6.55,8.16-13.41,11.55-20.52,1.66-3.48,2.08-6.82,1.53-10.7-1.52-10.76,5.05-20.99,15.2-24.5,10.28-3.56,21.89.4,27.46,9.76,7.53,12.64,14.82,25.43,22.09,38.22,1.2,2.11,2.1,2.7,4.58,1.71,17.92-7.16,37.35,7.82,35.15,26.88-.88,7.62-4.28,13.69-10.36,18.23-1.44,1.07-1.22,1.87-.5,3.12,7.16,12.33,14.08,24.81,21.5,36.99,8.69,14.28,1.75,30.14-10.96,34.86-8.72,3.23-16.78,1.68-23.79-4.33-1.88-1.62-3.77-2.24-6.1-2.48-28.28-3.01-55.44,2.24-82.09,11.16-4.75,1.59-9.38,3.56-14.11,5.22-1.87.66-2.11,1.27-.85,2.91,9.31,12.11,18.53,24.3,27.78,36.45,2.34,3.08,4.48,6.15,4.35,10.35-.12,3.62-1.39,6.62-3.89,9.05-3.15,3.06-6.49,5.92-9.71,8.91-1.94,1.8-4.44,2.37-6.78,3.33h-3.3c-3.47-1.15-6.68-2.55-9.03-5.65-10.1-13.32-20.39-26.5-30.45-39.84-1.64-2.18-2.72-2.58-5.22-1.23-21.59,11.63-48.26,3.11-59.4-18.74-2.39-4.68-3.47-9.71-4.68-14.73v-10.99Zm130.73-117.19c-.57,1.06-.89,1.6-1.17,2.16-4.96,9.92-10.9,19.23-17.65,28.04-13.32,17.4-28.95,32.49-46.3,45.81-1.71,1.31-1.91,2.25-.8,4.16,9.04,15.47,17.98,30.99,26.86,46.54.94,1.64,1.59,2.08,3.53,1.27,14.91-6.21,30.24-11.17,46.07-14.41,16.05-3.29,32.24-5.26,48.69-4.16,1.15.08,2.33.32,3.83-.25-20.96-36.29-41.87-72.48-63.05-109.16Zm88.1,118.4c4.55-.09,8.08-1.93,10.42-5.71,3.12-5.03,2.01-9.81-.81-14.67-18.77-32.33-37.44-64.71-56.15-97.07-5.12-8.86-10.18-17.76-15.36-26.59-4.27-7.28-13.21-8.74-19.21-3.31-3.93,3.56-5.06,10.39-1.75,16.08,15.33,26.3,30.48,52.7,45.69,79.07,8.73,15.12,17.46,30.24,26.16,45.38,2.47,4.3,6.05,6.72,10.99,6.83Zm-175.39,37.41c5.63.04,10.51-1.06,15.48-3.85,8.13-4.56,16.15-9.31,24.29-13.85,1.61-.9,1.5-1.59.72-2.95-10.13-17.47-20.24-34.95-30.25-52.48-1.09-1.92-1.96-1.76-3.6-.79-7.4,4.36-14.89,8.56-22.31,12.88-10.34,6.03-16.02,15.17-16.69,26.99-1.06,18.59,13.75,33.93,32.37,34.05Z"/>
+          <path class="cls-7" d="m282.16,167.27c-.27-1.53.54-2.71,1.21-3.88,4.09-7.13,8.24-14.24,12.32-21.38,1.33-2.33,3.15-3.89,5.93-3.59,3.86.42,6.13,4.57,4.21,8.03-4.4,7.91-8.96,15.72-13.55,23.52-1.33,2.26-3.48,3.28-6.09,2.51-2.53-.75-3.86-2.59-4.03-5.21Z"/>
+          <path class="cls-7" d="m339.54,239.4c-4.21,0-8.42.02-12.63,0-3.72-.03-6.05-1.99-6.22-5.16-.17-3.16,2.28-5.66,5.99-5.78,4.39-.14,8.78-.01,13.18-.01,4.21,0,8.42-.14,12.63.02,4.97.18,7.68,4.78,5.16,8.53-1.17,1.74-2.87,2.45-4.93,2.44-4.39-.02-8.78,0-13.18,0v-.02Z"/>
+          <path class="cls-7" d="m313.17,202.47c-2.72,0-4.86-1.67-5.53-4.22-.6-2.29.52-4.74,3-6.19,5.43-3.18,10.9-6.3,16.35-9.44,1.66-.96,3.31-1.93,4.99-2.85,3.11-1.71,6.24-.98,7.83,1.79,1.6,2.8.74,5.88-2.35,7.72-4.7,2.8-9.47,5.49-14.21,8.23-2.21,1.28-4.43,2.54-6.63,3.84-1.12.65-2.24,1.25-3.44,1.12Z"/>
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

+ 88 - 0
imagenes/icon_clave.svg

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
+        fill: none;
+      }
+
+      .cls-2 {
+        isolation: isolate;
+      }
+
+      .cls-7 {
+        fill: #fff;
+      }
+
+      .cls-8 {
+        fill: #d31b33;
+      }
+
+      .cls-3 {
+        opacity: .41;
+      }
+
+      .cls-3, .cls-4 {
+        mix-blend-mode: overlay;
+      }
+
+      .cls-9 {
+        fill: url(#Degradado_sin_nombre_561);
+      }
+
+      .cls-5 {
+        filter: url(#drop-shadow-1);
+      }
+
+      .cls-6 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="cls-1" x="-1638.89" y="622.91" width="3840" height="2162.31"/>
+    </clipPath>
+    <linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-2240.91" y1="1866.07" x2="1562.77" y2="-302.7" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#fff" stop-opacity="0"/>
+      <stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
+      <stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
+      <stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
+      <stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
+      <stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
+      <stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
+      <stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
+      <stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
+      <stop offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.4" dy="14.4"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <g id="Capa_1" data-name="Capa 1">
+      <g class="cls-4">
+        <g class="cls-6">
+          <g class="cls-3">
+            <polygon class="cls-9" points="25.02 692 35.1 520.85 -18.29 485.14 -75.46 513.48 -22.09 549.23 -32.13 720.38 25.02 692"/>
+          </g>
+        </g>
+      </g>
+      <g class="cls-5">
+        <path class="cls-8" d="m86.55,462.23h318.07c31.19,0,56.48-29.17,56.48-65.16v-232.32c0-35.99-25.29-65.16-56.48-65.16h-181.48c-3.06,0-5.91-1.79-7.57-4.75l-38.07-67.82c-8.19-14.58-26.68-14.58-34.87,0l-38.07,67.82c-1.66,2.96-4.51,4.75-7.57,4.75h-10.45c-31.19,0-56.48,29.17-56.48,65.16v232.32c0,35.99,25.29,65.16,56.48,65.16Z"/>
+      </g>
+      <g>
+        <g>
+          <path class="cls-1" d="m257.88,364.01c2.82,0,5.64,0,8.45,0-2.82,0-5.64,0-8.45,0-11.09,0-22.17-.02-33.26-.02,11.09,0,22.17.02,33.26.02h0Z"/>
+          <path class="cls-7" d="m246.98,197.66c-34.58,0-62.62,28.03-62.62,62.62s28.03,62.62,62.62,62.62,62.62-28.03,62.62-62.62-28.03-62.62-62.62-62.62Zm29.52,84.82c2.73,2.73,2.73,7.16,0,9.89-1.37,1.37-3.15,2.05-4.94,2.05s-3.58-.68-4.94-2.05l-19.8-19.8-19.8,19.8c-1.37,1.37-3.15,2.05-4.94,2.05s-3.58-.68-4.94-2.05c-2.73-2.73-2.73-7.16,0-9.89l19.8-19.8-19.8-19.8c-2.73-2.73-2.73-7.16,0-9.89,2.73-2.73,7.16-2.73,9.89,0l19.8,19.8,19.8-19.8c2.73-2.73,7.16-2.73,9.89,0,2.73,2.73,2.73,7.16,0,9.89l-19.8,19.8,19.8,19.8Z"/>
+          <path class="cls-7" d="m266.33,364.01c2.82,0,5.63,0,8.45,0h0c-2.82,0-5.63,0-8.45,0Z"/>
+          <path class="cls-7" d="m376.25,161c-15.71-.02-137.59-.04-146.18-.06-.02,5.65-.03,11.3-.05,16.95l133.13-.04c5.29,0,9.57,4.27,9.58,9.56.03,23.69.09,116.85.12,148.71,0,5.94-4.81,10.75-10.75,10.76l-224.92.04c-5.95,0-10.77-4.83-10.75-10.78.08-32.01.32-125.74.4-148.75.02-5.29,4.32-9.56,9.61-9.54l110.51.12v-17.02c-11.46,0-108.68.08-123.87.04-7.52-.02-13.63,6.08-13.62,13.6.04,37.2.15,139.37.14,170.14,0,10.35,8.37,18.75,18.72,18.79,37.95.15,213.22.3,242.72.3,10.38,0,18.79-8.42,18.79-18.79v-170.46c0-7.5-6.07-13.58-13.57-13.59Z"/>
+        </g>
+        <rect class="cls-7" x="224.59" y="358.8" width="50.08" height="42.95"/>
+        <path class="cls-7" d="m228.98,390.46h41.3c16.29,0,29.52,13.23,29.52,29.52v3.74h-100.34v-3.74c0-16.29,13.23-29.52,29.52-29.52Z"/>
+      </g>
+    </g>
+  </g>
+</svg>

+ 59 - 0
imagenes/icon_duplicada.svg

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2, .cls-3 {
+        fill: none;
+      }
+
+      .cls-2 {
+        isolation: isolate;
+      }
+
+      .cls-4 {
+        fill: #fff;
+      }
+
+      .cls-5 {
+        fill: #42bda6;
+      }
+
+      .cls-3 {
+        filter: url(#drop-shadow-1);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="cls-1" x="-598.89" y="622.91" width="3840" height="2162.31"/>
+    </clipPath>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.38" dy="14.38"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <g id="Capa_1" data-name="Capa 1">
+      <g class="cls-3">
+        <path class="cls-5" d="m462.4,408.93l1.27-317.61c.12-31.15-28.91-56.51-64.84-56.66l-231.99-.93c-35.94-.14-65.17,24.99-65.29,56.14l-.72,181.22c-.01,3.05-1.81,5.89-4.77,7.54l-67.88,37.75c-14.6,8.12-14.67,26.59-.14,34.82l67.57,38.29c2.95,1.67,4.72,4.52,4.71,7.58l-.04,10.43c-.12,31.15,28.91,56.51,64.84,56.66l231.99.93c35.93.14,65.17-24.99,65.29-56.14Z"/>
+      </g>
+      <g>
+        <g>
+          <path class="cls-1" d="m289.67,335.97c2.68,0,5.36,0,8.04,0-2.68,0-5.36,0-8.04,0-10.54,0-21.08-.02-31.63-.02,10.54,0,21.08.02,31.63.02h0Z"/>
+          <path class="cls-4" d="m352.69,133.52c0-8.25-6.69-14.95-14.95-14.95h-111.79c-8.26,0-14.95,6.69-14.94,14.95.02,39.68.06,146.78.06,178.54.69.04,136.4.01,141.62,0,0-52.75-.01-105.49,0-158.25v-20.3Zm-37.52,120.62l-36.9,37.2c-1.02,1.03-2.36,1.54-3.7,1.54s-2.63-.49-3.64-1.48l-18.3-17.86c-2.06-2.01-2.1-5.31-.09-7.36,2.01-2.06,5.31-2.1,7.36-.09l14.6,14.25,33.26-33.53c2.03-2.04,5.32-2.06,7.37-.03,2.04,2.03,2.06,5.32.03,7.37Zm-33.35-14.27c-27.52,0-49.83-22.31-49.83-49.83s22.31-49.83,49.83-49.83,49.83,22.31,49.83,49.83-22.31,49.83-49.83,49.83Z"/>
+          <path class="cls-4" d="m297.71,335.97c2.68,0,5.36,0,8.04,0h0c-2.68,0-5.36,0-8.04,0Z"/>
+          <path class="cls-4" d="m402.22,142.93c-14.94-.02-35.91-.04-44.08-.05-.02,5.37-.03,10.75-.05,16.12l31.67-.04c5.03,0,9.1,4.06,9.11,9.09.03,22.52.09,111.11.11,141.41,0,5.65-4.57,10.23-10.22,10.23l-213.87.03c-5.66,0-10.24-4.59-10.23-10.25.08-30.44.31-119.56.38-141.44.02-5.03,4.11-9.09,9.13-9.07l30.59.12v-16.18c-10.9,0-28.85.08-43.29.03-7.15-.02-12.96,5.78-12.95,12.93.04,35.38.14,132.52.14,161.78,0,9.84,7.96,17.83,17.8,17.87,36.08.14,202.74.29,230.8.28,9.87,0,17.86-8,17.86-17.87v-162.08c0-7.13-5.77-12.91-12.9-12.92Z"/>
+        </g>
+        <g id="ImkQxH.tif">
+          <g>
+            <path class="cls-4" d="m284.49,161.22c3.75.99,7.26,2.44,9.9,5.43,4.89,5.55,6.14,11.82,3.09,18.59-3.01,6.68-8.42,10.14-15.79,10.14-9.93,0-17.6-8.65-16.78-18.59.61-7.38,6.01-13.2,12.42-14.94.56-.15,1.08-.42,1.62-.63h5.52Z"/>
+            <path class="cls-4" d="m245.92,242.57c-1.86,0-2.44-.6-2.44-2.42-.02-6.33.07-7.31-.06-13.64-.23-11.39,5.56-18.95,15.21-23.99,4.65-2.43,9.67-3.63,14.95-3.62,6.12,0,12.26-.3,18.35.1,10.02.66,18.45,4.7,24.35,13.13,2.6,3.7,3.97,7.86,3.96,12.44-.02,7.04,0,8.72,0,15.76,0,1.75-.46,2.24-2.19,2.25-4.06.02-68.18.02-72.14,0Z"/>
+          </g>
+        </g>
+        <rect class="cls-4" x="258.02" y="331.01" width="47.62" height="40.84"/>
+        <path class="cls-4" d="m263.64,361.12h36.37c16.29,0,29.52,13.23,29.52,29.52v2.11h-95.41v-2.11c0-16.29,13.23-29.52,29.52-29.52Z"/>
+      </g>
+    </g>
+  </g>
+</svg>

+ 67 - 0
imagenes/icon_error.svg

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2, .cls-3 {
+        fill: none;
+      }
+
+      .cls-2 {
+        isolation: isolate;
+      }
+
+      .cls-4, .cls-5 {
+        fill: #f8f7f7;
+      }
+
+      .cls-6 {
+        fill: #fff;
+      }
+
+      .cls-7 {
+        fill: #d31b33;
+      }
+
+      .cls-3 {
+        filter: url(#drop-shadow-1);
+      }
+
+      .cls-5 {
+        font-family: IndivisaTextSans-Black, 'Indivisa Text Sans';
+        font-size: 163.56px;
+        font-weight: 800;
+      }
+    </style>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.43" dy="14.43"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <g id="Capa_1" data-name="Capa 1">
+      <g class="cls-3">
+        <path class="cls-7" d="m83.55,26.78h318.6c31.24,0,56.57,29.22,56.57,65.27v232.7c0,36.05-25.33,65.27-56.57,65.27h-181.78c-3.06,0-5.92,1.79-7.58,4.76l-38.13,67.93c-8.2,14.61-26.73,14.61-34.93,0l-38.13-67.93c-1.66-2.97-4.52-4.76-7.58-4.76h-10.46c-31.24,0-56.57-29.22-56.57-65.27V92.05c0-36.05,25.33-65.27,56.57-65.27Z"/>
+      </g>
+      <g>
+        <g id="NuryTv.tif">
+          <g>
+            <path class="cls-4" d="m347.19,208.94c-9.07-15.73-18.16-31.46-27.24-47.18-5.54-9.59-49.62-86.38-56.4-97.26-7.08-11.37-23.8-11.75-31.59-.94-1.86,2.59-67.15,115.72-80.38,138.76-2.49,4.33-5.7,8.41-6.41,13.53-1.72,12.38,6.55,22.21,19.08,22.87,1.43.08,2.88.03,4.31.03,53.32,0,106.64,0,159.96-.01,10.69,0,18.04-5.02,20.76-14.4,1.56-5.38.69-10.56-2.1-15.4Zm-17.92,20.52c-19.62.03-39.24,0-58.87,0-34.83,0-69.65,0-104.48-.02-9.96,0-14.61-8.05-9.68-16.6,9.44-16.35,18.88-32.69,28.32-49.04,12.88-22.3,52.69-91.24,53.51-92.66,4.71-8.14,13.89-8.31,18.66-.28,4.3,7.23,8.43,14.55,12.64,21.84,23.08,39.98,46.16,79.95,69.24,119.93.92,1.59,1.84,3.17,2.02,5.1.64,7.05-3.79,11.71-11.35,11.73Z"/>
+            <text class="cls-5" transform="translate(219.04 216.87)"><tspan x="0" y="0">!</tspan></text>
+          </g>
+        </g>
+        <g>
+          <g>
+            <path class="cls-1" d="m255.38,287.84c2.69,0,5.38,0,8.06,0-2.69,0-5.38,0-8.06,0-10.57,0-21.15-.02-31.72-.02,10.57,0,21.15.02,31.72.02h0Z"/>
+            <path class="cls-6" d="m263.44,287.84c2.69,0,5.37,0,8.06,0h0c-2.69,0-5.37,0-8.06,0Z"/>
+            <path class="cls-6" d="m368.28,94.21c-14.99-.02-70.23-.04-78.42-.05l9.85,16.17,56.08-.04c5.04,0,9.13,4.07,9.14,9.11.03,22.59.09,111.45.11,141.84,0,5.67-4.59,10.26-10.25,10.26l-214.53.03c-5.67,0-10.27-4.6-10.26-10.28.08-30.53.31-119.93.38-141.87.02-5.04,4.12-9.12,9.16-9.1l55.55.12,9.85-16.23c-10.93,0-63.65.08-78.14.03-7.18-.02-13,5.8-12.99,12.97.04,35.49.14,132.93.14,162.28,0,9.87,7.98,17.89,17.85,17.93,36.19.14,203.37.29,231.51.28,9.9,0,17.92-8.03,17.92-17.93V107.17c0-7.15-5.79-12.95-12.94-12.96Z"/>
+          </g>
+          <rect class="cls-6" x="223.63" y="282.87" width="47.76" height="40.96"/>
+          <path class="cls-6" d="m229.18,313.07h36.67c16.29,0,29.52,13.23,29.52,29.52v2.21h-95.7v-2.21c0-16.29,13.23-29.52,29.52-29.52Z"/>
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

+ 85 - 0
imagenes/icon_horario.svg

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
+  <defs>
+    <style>
+      .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
+        fill: none;
+      }
+
+      .cls-2 {
+        isolation: isolate;
+      }
+
+      .cls-7 {
+        fill: #f8f7f7;
+      }
+
+      .cls-8 {
+        fill: #d31b33;
+      }
+
+      .cls-3 {
+        opacity: .41;
+      }
+
+      .cls-3, .cls-4 {
+        mix-blend-mode: overlay;
+      }
+
+      .cls-9 {
+        fill: url(#Degradado_sin_nombre_561);
+      }
+
+      .cls-5 {
+        filter: url(#drop-shadow-1);
+      }
+
+      .cls-6 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="cls-1" x="-1118.89" y="622.91" width="3840" height="2162.31"/>
+    </clipPath>
+    <linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-1720.91" y1="1866.07" x2="2082.77" y2="-302.7" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#fff" stop-opacity="0"/>
+      <stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
+      <stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
+      <stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
+      <stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
+      <stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
+      <stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
+      <stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
+      <stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
+      <stop offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx="14.34" dy="14.34"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#000" flood-opacity=".48"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g class="cls-2">
+    <g id="Capa_1" data-name="Capa 1">
+      <g class="cls-4">
+        <g class="cls-6">
+          <g class="cls-3">
+            <polygon class="cls-9" points="545.02 692 555.1 520.85 501.71 485.14 444.54 513.48 497.91 549.23 487.87 720.38 545.02 692"/>
+          </g>
+        </g>
+      </g>
+      <g class="cls-5">
+        <path class="cls-8" d="m41.15,89.37v316.64c0,31.05,29.04,56.22,64.87,56.22h231.28c35.83,0,64.87-25.17,64.87-56.22v-180.66c0-3.04,1.78-5.88,4.73-7.53l67.52-37.9c14.52-8.15,14.52-26.56,0-34.71l-67.52-37.9c-2.95-1.65-4.73-4.49-4.73-7.53v-10.4c0-31.05-29.04-56.22-64.87-56.22H106.01c-35.82,0-64.87,25.17-64.87,56.22Z"/>
+      </g>
+      <g>
+        <path class="cls-7" d="m293.82,249.94c-2.71-.16-4.68-2.04-4.76-4.53-.08-2.48,1.87-4.54,4.53-4.78,4.55-.4,4.98-1.01,4.06-5.63-.15-.76-.28-1.52-.43-2.28-2.18-11.78-7.01-22.33-14.58-31.64-1.24-1.53-2.19-1.63-3.41-.11-.48.6-1.09,1.11-1.71,1.59-2.83,2.19-6.33,1.09-7.42-2.35-.82-2.6.8-4.24,2.47-5.76,1.32-1.2,1.69-2.09.04-3.43-10.54-8.49-22.49-13.64-35.92-15.21-3.9-.45-3.92-.25-3.85,3.74.05,2.75-1.66,4.76-4.22,4.95-2.55.18-4.66-1.61-4.95-4.28-.1-.87-.1-1.76-.02-2.62.16-1.6-.23-2.13-2.06-1.97-10.75.93-20.62,4.35-29.84,9.88-1.91,1.14-1.76,1.78-.29,3.23,8.94,8.81,17.76,17.74,26.66,26.59,1.61,1.6,3.04,3.44,5.51,4.87,0-4.9-.03-9.42.01-13.95.03-3.15,1.92-5.24,4.63-5.26,2.71-.02,4.63,2.09,4.66,5.21.04,3.99,0,7.98.03,11.97.03,3.98-1,8.43.44,11.82,1.49,3.5,5.44,5.93,8.21,8.93,1.23,1.34,2.57,1.77,4.36,1.76,9.24-.07,18.49-.05,27.73-.02,3.49.01,5.42,1.76,5.39,4.73-.03,2.8-1.95,4.52-5.25,4.56-4.09.05-8.17.01-12.26.01-2.67,0-5.33,0-8.05,0,.08.63.03.88.13.98,10.52,10.52,21.07,21,31.57,31.55,1.32,1.32,1.81.97,2.7-.44,5.32-8.43,8.39-17.65,9.83-27.44.64-4.37.52-4.39-3.96-4.66Z"/>
+        <path class="cls-7" d="m141.96,265.56c8.91,38.23,41.91,66.51,82.45,68.43,18.42.87,35.56-3.82,51.25-13.63q4.83-3.02.95-6.96c-.34-.35-.73-.66-1.01-1.05-1.19-1.65-2.29-1.68-4.07-.5-12.99,8.55-27.34,12.74-42.87,12.85-11.14.1-21.84-2.1-31.99-6.55-44.04-19.34-60.95-72.27-36.41-113.74q2.76-4.66-1.14-8.55c-2.72-2.71-2.76-2.73-4.87.59-13.61,21.34-18.02,44.43-12.27,69.11Z"/>
+        <path class="cls-7" d="m162.94,249.93c-.58.04-1.18.08-1.75,0-2.27-.3-3.39.35-2.58,2.29,1.53,13.77,6.34,25.64,14.48,36.16,2.25,2.91,2.28,2.88,5.13.34,2.66-2.37,5.16-2.5,7.2-.38,2.06,2.15,1.83,4.52-.71,7.14-2.49,2.57-2.52,2.61.39,4.91,9.8,7.75,20.97,12.37,33.27,14.31,4.75.75,4.76.68,5.28-4.22.28-2.67,2.32-4.54,4.85-4.44,2.53.1,4.36,2.06,4.47,4.8.03.87.02,1.75-.03,2.63-.07,1.27.39,1.64,1.72,1.53,10.52-.87,20.28-4.1,29.34-9.46,2.95-1.74,2.92-1.82.52-4.22-18.47-18.52-36.95-37.04-55.43-55.55-11.96-11.97-23.9-23.96-35.93-35.86-4.17-4.13-3.2-3.36-5.63.62-4.77,7.8-7.32,16.42-8.67,25.4-.66,4.41-.53,4.43,4.03,4.72"/>
+        <path class="cls-7" d="m366.22,220.48c-4.43-24.53-14.65-46.33-30.68-65.36-21.24-25.22-48.26-40.77-80.44-47.47-4.54-.94-9.2-1.3-13.81-1.92-.67-.09-1.38,0-1.88-.59h-22.19c-.53.55-1.23.51-1.9.57-16.86,1.52-33.08,5.72-48.08,13.49-47.06,24.39-73.71,62.89-78.54,115.92-2.13,23.38,2.01,45.84,11.67,67.22,13.4,29.65,34.49,52.18,63.34,67.24,23.61,12.33,48.78,17.36,75.39,15.37,15.44-1.16,30.28-4.69,44.42-10.86,29.6-12.93,52.28-33.61,67.88-61.91,7.83-14.21,13.02-29.37,15.33-45.47.63-4.41,1.15-8.83,1.73-13.24v-16.93c-1.09-5.3-1.28-10.72-2.24-16.05Zm-59.91,117.89c-14.42,11.99-30.72,20.31-48.93,24.83-9.56,2.37-19.28,3.47-26.37,3.54-58.11-.02-106.86-37.49-120.31-91.56-9.9-39.8-1.18-75.97,24.6-107.94,2.62-3.25,5.23-3.19,8.59.17,10.26,10.23,20.48,20.51,30.72,30.75,43.59,43.59,87.19,87.18,130.78,130.78.48.48.96.96,1.42,1.46,2.67,2.91,2.54,5.44-.51,7.97Zm15.07-15.07c-2.59,3.22-5.15,3.19-8.36,0-23.81-23.79-47.6-47.59-71.41-71.38-30.13-30.12-60.27-60.24-90.41-90.35-4.52-4.52-4.45-6.45.56-10.5,17.78-14.37,37.98-23.13,60.66-26.12,1.06-.14,2.11-.4,3.17-.46,4.27-.21,8.52-.94,12.02-.62,56.27.12,105.08,37.68,118.33,91.51,9.8,39.81,1.14,75.95-24.57,107.93Z"/>
+        <path class="cls-7" d="m313.22,219.52c-16.46-55.46-82.09-80.23-131.38-49.82-5.79,3.57-5.72,3.5-.91,8.52,1.51,1.57,2.53,1.62,4.32.43,12.98-8.57,27.32-12.69,40.64-12.8,18.59.05,33.67,4.57,47.14,13.82,34.63,23.79,44.76,69.2,23.79,105.81-3.22,5.62-3.15,5.54,1.54,10.18,1.63,1.62,2.36,1.17,3.43-.48,15.23-23.51,19.42-48.8,11.44-75.67Z"/>
+      </g>
+    </g>
+  </g>
+</svg>

Some files were not shown because too many files changed in this diff