{"id":15,"date":"2025-10-14T15:36:30","date_gmt":"2025-10-14T13:36:30","guid":{"rendered":"https:\/\/oidifanb.mindefensa.gob.ve\/?page_id=15"},"modified":"2025-12-16T14:47:22","modified_gmt":"2025-12-16T13:47:22","slug":"observatorio-en-linea","status":"publish","type":"page","link":"https:\/\/oidifanb.mindefensa.gob.ve\/?page_id=15","title":{"rendered":"Observatorio en L\u00ednea"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15\" class=\"elementor elementor-15\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-559e8fc e-flex e-con-boxed e-con e-parent\" data-id=\"559e8fc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76171a3 elementor-widget elementor-widget-html\" data-id=\"76171a3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* 1. Importaci\u00f3n de Fuente y Configuraci\u00f3n Global *\/\n\/* ================================================== *\/\n\n\/* Importa la fuente Poppins desde Google Fonts. *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&display=swap');\n\n\/* Configuraci\u00f3n global para todos los elementos. *\/\n* {\n    margin: 0; \/* Sin margen *\/\n    padding: 0; \/* Sin relleno por alrededor *\/\n    box-sizing: border-box; \/* Incluye el padding y el borde en el ancho y alto total de un elemento. *\/\n    font-family: \"Poppins\", sans-serif; \/* Establece la fuente Poppins como fuente principal. *\/\n}\n\n\/* Configuraci\u00f3n del cuerpo del documento. *\/\nbody {\n    min-height: 100vh; \/* Establece la altura m\u00ednima del cuerpo al 100% de la altura de la ventana. *\/\n    background: #f6fffd;\n}\n\n\n\/* 3. Estilos de Contenido Principal (Main Content) *\/\n\/* ============================================== *\/\n\n\/* Estilos del contenedor principal del contenido. *\/\n.content {\n    background-color: transparent; \/* Establece el color de fondo. *\/\n    border-radius: 10px 10px 10px 10px; \/* Redondea las esquinas. *\/\n    text-align: center; \/* Centra el texto dentro del contenedor. *\/\n}\n\n\/* Estilos del contenido principal. *\/\n.main-content {\n    margin-left: 20px; \/* Establece el margen izquierdo. *\/\n    padding: 1px; \/* Establece el relleno interno. *\/\n}\n\n\/* Estilos del contenedor de estad\u00edsticas. *\/\n.statistics-container {\n    display: flex; \/* Utiliza flexbox para alinear los elementos. *\/\n    justify-content: center; \/* Centra los elementos horizontalmente. *\/\n    margin-bottom: 20px; \/* Establece el margen inferior. *\/\n    gap: 20px; \/* Establece el espacio entre los elementos. *\/\n    flex-wrap: wrap; \/* Permite que los elementos se envuelvan a la siguiente l\u00ednea. *\/\n    \n}\n\n\/* Estilos de cada tarjeta de estad\u00edstica. *\/\n.stat-card {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    background: linear-gradient(90deg,#030E3B 0%, #030E3B 100%) left\/0% 100% no-repeat, #ffffff;\n    background-size: 0% 100%, 100% 100%; \/* <-- A\u00f1ade esto *\/\n    color: #030E3B;\n    border-radius: 8px;\n    padding: 10px 20px;\n    min-width: 130px;\n    width: auto;\n    text-align: center;\n    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n    transition:\n        background-size 0.5s cubic-bezier(0.4, 0, 0.2, 1),\n        color 0.5s,\n        transform 0.5s;\n}\n\n.stat-card:hover {\n    background-size: 100% 100%, 100% 100%;\n    color: #ffffff;\n    transform: scale(1.12);\n}\n.card-icon{\n    padding-right: 20px;\n}\n\n.card-icon img {\n    transition: opacity 0.5s;\n}\n.card-icon .icon-hover {\n    display: none;\n}\n.stat-card:hover .card-icon .icon-normal {\n    display: none;\n}\n.stat-card:hover .card-icon .icon-hover {\n    display: inline;\n}\n.card-icon i{\n    font-size: 30px;\n}\n.card-text {text-align: left;}\n\n.stat-card:hover .card-text h1{color:white !important;}\n\n.stat-card p {\n    font-size: 12px;\n    font-weight: bold;\n}\n\n\/* Estilos del contenedor de gr\u00e1ficos. *\/\n.charts-wrapper {\n    display: grid; \/* Utiliza grid layout para organizar los gr\u00e1ficos. *\/\n    grid-template-columns: repeat(1, 1fr); \/* Establece dos columnas para los gr\u00e1ficos. *\/\n    gap: 20px; \/* Establece el espacio entre los gr\u00e1ficos. *\/\n    width: 99%; \/* Establece el ancho al 99% de su contenedor. *\/\n    max-width: 99%; \/* Establece el ancho m\u00e1ximo. *\/\n    margin-top: 20px;\n    margin-left: 100px;\n     width: calc(100% - 200px);\n    \n    \n}\n\n.chart-pie {\n\n    display: grid; \/* Utiliza grid layout para organizar los gr\u00e1ficos. *\/\n    grid-template-columns: repeat(2, 1fr); \/* Establece una columna para los gr\u00e1ficos. *\/\n    gap: 20px; \/* Establece el espacio entre los gr\u00e1ficos. *\/\n}\n\n\/* Estilos del contenedor de cada gr\u00e1fico. *\/\n.chart-container {\n    background-color: #fff; \/* Establece el color de fondo. *\/\n    border-radius: 8px; \/* Redondea las esquinas. *\/\n    padding: 10px; \/* Establece el relleno interno. *\/\n    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); \/* Agrega una sombra. *\/\n    text-align: center; \/* Centra el texto. *\/\n    display: flex; \/* Utiliza flexbox para alinear los elementos. *\/\n    justify-content: center; \/* Centra los elementos horizontalmente. *\/\n    flex-direction: column; \/* Organiza los elementos en columna. *\/\n    width: auto;\n    \n}\n\n\n.chart-container h2 {\n    color: #030E3B; \/* Establece el color de texto *\/\n    padding: 5px; \/* Reducimos el padding del h2 *\/\n    font-size: 15px; \/* Tama\u00f1o del texto *\/\n    margin-top: -10px; \/* Se configura el margen de arriba *\/\n    position: relative; \/* Asegura que el texto est\u00e9 encima del pseudo-elemento *\/\n    z-index: 1; \/* Asegura que el texto est\u00e9 encima del pseudo-elemento *\/\n     transition: color 0.3s, font-size 0.3s; \/* <-- Pon la transici\u00f3n aqu\u00ed *\/\n    max-height: 28px;\n    }\n\n  .chart-container:hover h2 {\n    color: #151A2D; \/* O el color que prefieras *\/\n    font-size: 20px;\n}\n\n\n@keyframes slideInLeft {\n    from { opacity: 0; transform: translateX(-100px); }\n    to   { opacity: 1; transform: translateX(0); }\n}\n@keyframes slideInRight {\n    from { opacity: 0; transform: translateX(100px); }\n    to   { opacity: 1; transform: translateX(0); }\n}\n\n@keyframes slideInUp {\n    from { opacity: 0; transform: translateY(100px); }\n    to   { opacity: 1; transform: translateY(0); }\n}\n\n\n.slide-in-left {\n    animation: slideInLeft 1s ease;\n}\n.slide-in-right {\n    animation: slideInRight 1s ease;\n}\n\n\n.slide-in-up {\n    animation: slideInUp 1s ease;\n}\n  \n\n\/* Estilos del lienzo del gr\u00e1fico. *\/\n.chart-container canvas {\n    width: 100%; \/* Establece el ancho al 100% de su contenedor. *\/\n    max-width: 100%;\n    min-width: 100%;\n    height: 200px; \/* Establece la altura. *\/\n    max-height: 280px; \/* Establece la altura m\u00e1xima. *\/\n    padding-top: 20px;\n}\n\n\/* Estilos del t\u00edtulo de b\u00fasqueda. *\/\n.tituloBusqueda {\n    text-align: center; \/* Centra el texto. *\/\n    padding: 20px; \/* Establece el relleno interno. *\/\n}\n\n\/* Estilos de la informaci\u00f3n sobre herramientas del estado. *\/\n.estado-tooltip {\n    font-size: 8px; \/* Establece el tama\u00f1o de la fuente. *\/\n    font-weight: bold; \/* Establece el peso de la fuente en negrita. *\/\n    color: #333; \/* Establece el color del texto. *\/\n    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); \/* Agrega una sombra al texto. *\/\n    background: transparent; \/* Quita el fondo blanco. *\/\n    border: none; \/* Quita el borde. *\/\n}\n\n\/* Estilos de la leyenda de informaci\u00f3n. *\/\n.info.legend {\n    background: white; \/* Establece el color de fondo. *\/\n    padding: 10px; \/* Establece el relleno interno. *\/\n    border: 1px solid #ccc; \/* Agrega un borde. *\/\n    border-radius: 5px; \/* Redondea las esquinas. *\/\n}\n\n\/* Estilos de los iconos dentro de la leyenda. *\/\n.info.legend i {\n    width: 18px; \/* Establece el ancho. *\/\n    height: 18px; \/* Establece la altura. *\/\n    float: left; \/* Flota los iconos a la izquierda. *\/\n    margin-right: 8px; \/* Establece el margen derecho. *\/\n    opacity: 0.7; \/* Establece la opacidad. *\/\n}\n\n\/* Estilos del bot\u00f3n de exportar. *\/\n.exportarBtn {\n    cursor: pointer; \/* Cambia el cursor a una mano. *\/\n    background-color: #151A2D; \/* Establece el color de fondo. *\/\n    border: none; \/* Elimina el borde. *\/\n    color: white; \/* Establece el color del texto. *\/\n    padding: 10px 20px; \/* Establece el relleno interno. *\/\n    text-align: center; \/* Centra el texto. *\/\n    text-decoration: none; \/* Elimina la decoraci\u00f3n de texto predeterminada. *\/\n    display: inline-block; \/* Muestra el bot\u00f3n como un bloque en l\u00ednea. *\/\n    border-radius: 5px; \/* Redondea las esquinas. *\/ \n    margin-top:20px; \/* Establece el margen de arriba *\/\n    margin-left: 10px; \/* Establece el margen de la izquierda *\/\n}\n\n\/* Al posicionar el cursos en el bot\u00f3n de exportar gr\u00e1ficas *\/\n.exportarBtn:hover{\n    background-color: white; \/* Color de fondo de blanco*\/\n    color: #151A2D;\n    transition: all 0.4s ease; \/* Se le agrega una peque\u00f1a transici\u00f3n fluida de acercamiento *\/\n\n}\n\n\n\/* Mapa de Venezuela *\/\n#map { \n    height: 600px; \/* Se adapta la altura *\/\n    width: 100%; \/* Se adapta el ancho un 100% *\/\n    z-index: 0;\n\n }\n\n\n\n\/* 4. Estilos Responsive (Media Queries) *\/\n\/* ==================================== *\/\n\n\/* Estilos para pantallas con un ancho m\u00e1ximo de 1024px. *\/\n@media (max-width: 1024px) {\n    .main-content {\n        margin-left: -5px; \/* Reduce el margen izquierdo en pantallas peque\u00f1as. *\/\n         margin-right: -5px; \/* Reduce el margen derecho en pantallas peque\u00f1as. *\/\n        width: 100%; \/* Se adapta el ancho un 100% *\/\n    \n        \n    }\n\n    .exportarBtn{\n        margin-top: 80px; \/* Se establece el margen de arriba *\/\n    }\n\n    .map {\n        width: 250px; \/* Se adapta el ancho del mapa a 200px *\/\n        max-width: 200px; \/* Se adapta el maximo ancho del mapa a 200px *\/\n        min-width: 200px; \/* Se adapta el minimo ancho del mapa a 200px *\/\n    }\n\n    .chart-pie {\n\n        display: grid; \/* Utiliza grid layout para organizar los gr\u00e1ficos. *\/\n        grid-template-columns: repeat(1, 1fr); \/* Establece una columna para los gr\u00e1ficos. *\/\n   \n    }\n\n\n\n    .sidebar {\n        height: 56px; \/* Reduce la altura de la barra lateral. *\/\n        margin: 13px; \/* Reduce el margen de la barra lateral. *\/\n        overflow-y: hidden; \/* Oculta el desbordamiento vertical. *\/\n        scrollbar-width: none; \/* Oculta la barra de desplazamiento. *\/\n        width: calc(100% - 26px); \/* Ajusta el ancho de la barra lateral. *\/\n        max-height: calc(100vh - 26px); \/* Ajusta la altura m\u00e1xima. *\/\n    }\n\n    .sidebar.menu-active {\n        overflow-y: auto; \/* Permite el desbordamiento vertical cuando el men\u00fa est\u00e1 activo. *\/\n    }\n\n    .sidebar .sidebar-header {\n        position: sticky; \/* Fija el encabezado de la barra lateral. *\/\n        top: 0; \/* Establece la distancia desde la parte superior. *\/\n        z-index: 20; \/* Establece el \u00edndice z. *\/\n        border-radius: 16px; \/* Redondea las esquinas. *\/\n        background: #151A2D; \/* Establece el color de fondo. *\/\n        padding: 8px 10px; \/* Reduce el relleno interno. *\/\n    }\n\n    .sidebar-header .header-logo img {\n        width: 40px; \/* Reduce el ancho del logo. *\/\n        height: 40px; \/* Reduce la altura del logo. *\/\n    }\n\n    .sidebar-header .sidebar-toggler,\n    .sidebar-nav .nav-item:hover .nav-tooltip {\n        display: none; \/* Oculta el bot\u00f3n de alternancia y la informaci\u00f3n sobre herramientas. *\/\n    }\n\n    .sidebar-header .menu-toggler {\n        display: flex; \/* Muestra el bot\u00f3n de alternancia del men\u00fa. *\/\n        height: 30px; \/* Reduce la altura del bot\u00f3n. *\/\n        width: 30px; \/* Reduce el ancho del bot\u00f3n. *\/\n    }\n\n    .sidebar-header .menu-toggler span {\n        font-size: 1.3rem; \/* Reduce el tama\u00f1o de la fuente del icono. *\/\n    }\n\n    .sidebar .sidebar-nav .nav-list {\n        padding: 0 10px; \/* Reduce el relleno interno de la lista de navegaci\u00f3n. *\/\n    }\n\n    .sidebar-nav .nav-link {\n        gap: 10px; \/* Reduce el espacio entre los elementos del enlace de navegaci\u00f3n. *\/\n        padding: 10px; \/* Reduce el relleno interno del enlace de navegaci\u00f3n. *\/\n        font-size: 0.94rem; \/* Reduce el tama\u00f1o de la fuente del enlace de navegaci\u00f3n. *\/\n    }\n\n    .sidebar-nav .nav-link .nav-icon {\n        font-size: 1.37rem; \/* Reduce el tama\u00f1o de la fuente del icono del enlace de navegaci\u00f3n. *\/\n    }\n\n    .sidebar-nav .secondary-nav {\n        position: relative; \/* Establece la posici\u00f3n relativa. *\/\n        bottom: 0; \/* Establece la distancia desde la parte inferior. *\/\n        margin: 40px 0 30px; \/* Establece el margen. *\/\n    }\n\n    .modal-content{\n\n        margin-top: 50px;\n    }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3d87f04 e-flex e-con-boxed e-con e-parent\" data-id=\"3d87f04\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4f3d76c elementor-widget elementor-widget-html\" data-id=\"4f3d76c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<html lang=\"es\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\r\n    <link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet\/dist\/leaflet.css\" \/>\r\n    <script src=\"https:\/\/unpkg.com\/leaflet\/dist\/leaflet.js\"><\/script>\r\n\r\n    <link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0\">\r\n    <title>Datos de usuarios<\/title>\r\n<\/head>\r\n<body>\r\n\r\n\r\n\r\n    <!-- Contenido principal -->\r\n    <main class=\"main-content\">\r\n        <br>\r\n     <div class=\"statistics-container\">\r\n          \r\n            <div class=\"stat-card\">\r\n                <div class=\"card-icon\">\r\n                   <img decoding=\"async\" src=\"img\/investigadorGray.png\" alt=\"\" class=\"icon-normal\">\r\n                    <img decoding=\"async\" src=\"img\/investigadorWhite.png\" alt=\"\" class=\"icon-hover\">\r\n             <\/div>\r\n                <div class=\"card-text\">\r\n                <h1>211<\/h1>\r\n                <p> Investigadores<\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n             <div class=\"stat-card\">\r\n                <div class=\"card-icon\"><i class=\"fas fa-mars\"><\/i> <\/div>\r\n                <div class=\"card-text\">\r\n                <h1>167<\/h1>\r\n                <p>Hombres<\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"stat-card\">\r\n                <div class=\"card-icon\"><i class=\"fas fa-venus\"><\/i> <\/div>\r\n                <div class=\"card-text\">\r\n                <h1>44<\/h1>\r\n                <p>Mujeres<\/p>\r\n                <\/div>\r\n            <\/div>\r\n           \r\n            <div class=\"stat-card\">\r\n                <div class=\"card-icon\"><i class=\"fas fa-chart-bar\"> <\/i><\/div>\r\n                <div class=\"card-text\">\r\n               <h1>179<\/h1>\r\n                <p>Registros por cada 100 mil habitantes<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <!-- Contenido -->\r\n    <div class=\"content\">\r\n\r\n\r\n    <!-- Estad\u00edstica ChartJS -->\r\n    <div class=\"charts-wrapper\">\r\n\r\n    \r\n    <!-- Estad\u00edstica ChartJS para 2 -->\r\n    <div class=\"chart-pie\">\r\n\r\n        <div class=\"chart-container slide-in-left\">\r\n            <br>\r\n            <h2> PROYECTOS POR \u00c1REA DE INVESTIGACI\u00d3N <\/h2>\r\n            <br>\r\n\r\n           <div id=\"areaChart\"><\/div>\r\n            <!-- <canvas id=\"areaChart\" ><\/canvas> -->\r\n        <\/div>\r\n        \r\n        <div class=\"chart-container slide-in-right\">\r\n            \r\n            <h2> PROYECTOS POR G\u00c9NERO <\/h2>\r\n            <br>\r\n            <div id=\"generoProyectoChart\"><\/div>\r\n            <!-- <canvas id=\"generoProyectoChart\"><\/canvas> -->\r\n        <\/div>\r\n    <\/div>\r\n       \r\n        <div class=\"chart-container slide-in-up\">\r\n            <br>\r\n            <h2> PROYECTOS POR GRANDES COMANDOS <\/h2>\r\n            <br>\r\n            <div id=\"commandsProyectoChart\"><\/div>\r\n            <!-- <canvas id=\"commandsProyectoChart\"><\/canvas> -->\r\n        <\/div>\r\n\r\n         <!-- MAPA DE VENEZUELA -->\r\n        <div class=\"chart-container\">\r\n            <h2>INVESTIGADORES POR ESTADO<\/h2>\r\n            <br>\r\n            <div id=\"map\"><\/div>\r\n\r\n        <\/div>\r\n   \r\n    <\/div>\r\n<\/main>\r\n\r\n\r\n    <!-- Scripts JS -->\r\n\r\n\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@popperjs\/core@2.5.3\/dist\/umd\/popper.min.js\"><\/script>\r\n    <!-- Chart.js -->\r\n     <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/apexcharts\"><\/script>\r\n   \r\n<\/body>\r\n<\/html>\r\n\r\n<script>\r\n    var areaChartOptions = {\r\n    chart: {\r\n        type: 'bar',\r\n        height: 350,\r\n        toolbar: { show: true }\r\n    },\r\n    series: [{\r\n        name: 'PROYECTOS POR \u00c1REA DE INVESTIGACI\u00d3N',\r\n        data: [125, 19]\r\n    }],\r\n    xaxis: {\r\n        categories: ['Educaci\u00f3n', 'Industria militar, tecnolog\u00eda y servicio'],\r\n        labels: { style: { fontWeight: 700, fontSize: '9px' } }\r\n    },\r\n    colors: ['#030E3B', '#005bbe'], \/\/ Dos colores, uno para cada barra\r\n    plotOptions: {\r\n        bar: {\r\n            columnWidth: '50px',\r\n            distributed: true,\r\n            dataLabels: {\r\n            position: 'top',\r\n             distributed: true\r\n            \r\n             } \/\/ \u00a1Esto es clave para colores individuales!\r\n        }\r\n    },\r\n    dataLabels: {\r\n        enabled: true,\r\n        offsetY: -28,\r\n        formatter: function (val, opts) {\r\n            var total = opts.w.globals.series[0].reduce((a, b) => a + b, 0);\r\n            return Math.round((val \/ total) * 100) + '%';\r\n        },\r\n        style: { fontWeight: 700, fontSize: '16px', colors: ['black'] }\r\n    },\r\n    legend: { show: false }\r\n};\r\nnew ApexCharts(document.querySelector(\"#areaChart\"), areaChartOptions).render();\r\n\r\n\/\/ Gr\u00e1fica 2: Distribuci\u00f3n por g\u00e9nero (Pie)\r\nvar generoChartOptions = {\r\n    chart: {\r\n        type: 'pie',\r\n        toolbar: { show: true }\r\n    },\r\n    series: [116, 29],\r\n    labels: ['Masculino', 'Femenino'],\r\n    colors: ['#030E3B', '#005bbe'],\r\n    dataLabels: {\r\n        enabled: true,\r\n        formatter: function (val, opts) {\r\n      \r\n        },\r\n        style: { fontWeight: 700, fontSize: '16px', colors: ['#fff'] }\r\n    },\r\n    legend: {\r\n        position: 'right',\r\n        fontWeight: 700\r\n    }\r\n};\r\nnew ApexCharts(document.querySelector(\"#generoProyectoChart\"), generoChartOptions).render();\r\n\r\n\/\/ Gr\u00e1fica 3: PROYECTOS POR COMANDO (Barra)\r\nvar comandosChartOptions = {\r\n    chart: {\r\n        type: 'bar',\r\n        height: 350,\r\n        toolbar: { show: true }\r\n    },\r\n    series: [{\r\n        name: 'PROYECTOS POR COMANDO',\r\n        data: [7, 9, 8, 19, 2, 30, 4, 1, 57, 7]\r\n    }],\r\n    xaxis: {\r\n        categories: ['AB', 'AMB', 'CEOFANB', 'CODAI', 'DIGESALUD', 'EB', 'GNB', 'MB', 'VICEDU', 'VICESERVICIOS'],\r\n        labels: { style: { fontWeight: 700, fontSize: '9px' } }\r\n    },\r\n    colors: ['#030E3B'],\r\n    plotOptions: {\r\n        bar: {\r\n            columnWidth: '50px',\r\n          \r\n            distributed: false,\r\n            dataLabels: {\r\n            position: 'top',\r\n            \r\n             }\r\n        }\r\n    },\r\n    dataLabels: {\r\n    enabled: true,\r\n     offsetY: -25,\r\n    formatter: function (val, opts) {\r\n        var total = opts.w.globals.series[0].reduce((a, b) => a + b, 0);\r\n        return Math.round((val \/ total) * 100) + '%';\r\n    },\r\n    style: {\r\n        fontWeight: 700,\r\n        fontSize: '14px',\r\n        colors: ['black']\r\n    }\r\n},\r\n    legend: { show: true }\r\n};\r\nnew ApexCharts(document.querySelector(\"#commandsProyectoChart\"), comandosChartOptions).render();\r\n\r\n\r\n\/\/ Numeraci\u00f3n del h1 de card-text\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n    const counters = document.querySelectorAll('.card-text h1');\r\n    counters.forEach(counter => {\r\n        const target = +counter.textContent;\r\n        counter.textContent = '0';\r\n        let current = 0;\r\n        const increment = Math.ceil(target \/ 60); \/\/ Ajusta la velocidad aqu\u00ed\r\n        function updateCounter() {\r\n            current += increment;\r\n            if (current < target) {\r\n                counter.textContent = current;\r\n                requestAnimationFrame(updateCounter);\r\n            } else {\r\n                counter.textContent = target;\r\n            }\r\n        }\r\n        updateCounter();\r\n    });\r\n});\r\n<\/script>\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1fcfeee e-flex e-con-boxed e-con e-parent\" data-id=\"1fcfeee\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bed67ae elementor-widget elementor-widget-html\" data-id=\"bed67ae\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n\r\nvar venezuelaBounds = L.latLngBounds([\r\n    [0.380, -71.38],\r\n    [12.22, -58.78]\r\n]);\r\n\r\nvar map = L.map('map', {\r\n    maxBounds: venezuelaBounds,\r\n    maxBoundsViscosity: 1.0,\r\n    minZoom: 5.8,\r\n    maxZoom: 5.8,\r\n    zoomControl: false\r\n}).setView([6.500, -65.000], 6);\r\n\r\n\/\/ Funci\u00f3n para ajustar la configuraci\u00f3n seg\u00fan el tama\u00f1o de pantalla\r\nfunction adjustMapSettings() {\r\n    if (window.innerWidth <= 768) { \/\/ Para dispositivos m\u00f3viles y pantallas peque\u00f1as\r\n        map.setZoom(5);\r\n        map.options.minZoom = 4.0;\r\n        map.options.maxZoom = 7.8;\r\n\r\n    } else { \/\/ Para pantallas grandes\r\n        map.setZoom(6);\r\n        map.options.minZoom = 5.8;\r\n        map.options.maxZoom = 5.8;\r\n  \r\n    }\r\n}\r\n\r\nfunction adjustMapBounds() {\r\n    if (window.innerWidth <= 768) { \/\/ Si la pantalla es peque\u00f1a (modo responsivo)\r\n        map.setMaxBounds(L.latLngBounds([\r\n            [0.380, -73.38], \/\/ Expande hacia el oeste\r\n            [12.22, -56.78]  \/\/ Expande hacia el este\r\n        ]));\r\n        map.options.maxBoundsViscosity = 0.7; \/\/ M\u00e1s flexible en m\u00f3viles\r\n    } else { \/\/ En pantallas grandes, vuelve a los valores originales\r\n        map.setMaxBounds(L.latLngBounds([\r\n            [0.380, -71.38], \/\/ Valores originales\r\n            [12.22, -58.78]\r\n        ]));\r\n        map.options.maxBoundsViscosity = 1.0; \/\/ Ajuste m\u00e1s r\u00edgido\r\n    }\r\n}\r\n\r\n\/\/ Llama a la funci\u00f3n al cargar la p\u00e1gina\r\nadjustMapBounds();\r\n\r\n\/\/ Detecta cambios en el tama\u00f1o de la ventana y ajusta en tiempo real\r\nwindow.addEventListener('resize', adjustMapBounds);\r\n\r\n\/\/ Llamada inicial para ajustar la configuraci\u00f3n al cargar\r\nadjustMapSettings();\r\n\r\n\/\/ Evento para actualizar la configuraci\u00f3n cuando la ventana cambie de tama\u00f1o\r\nwindow.addEventListener('resize', adjustMapSettings);\r\n\r\nL.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {}).addTo(map);\r\n\r\n\/\/ Carga de Datos y Creaci\u00f3n de la Capa GeoJSON\r\n\r\n\/\/ Se llama la direcci\u00f3n de la funci\u00f3n de los datos de las gr\u00e1ficas en el controladorCyranoUsuario\r\n\r\n\/\/ Datos est\u00e1ticos de investigadores por estado\r\nconst investigadoresPorEstado = [\r\n    { estados: \"AMAZONAS\", cantidad_investigadores: 0 },\r\n    { estados: \"ANZOATEGUI\", cantidad_investigadores: 0 },\r\n    { estados: \"APURE\", cantidad_investigadores: 0 },\r\n    { estados: \"ARAGUA\", cantidad_investigadores: 57 },\r\n    { estados: \"BARINAS\", cantidad_investigadores: 1 },\r\n    { estados: \"BOLIVAR\", cantidad_investigadores: 0 },\r\n    { estados: \"CARABOBO\", cantidad_investigadores: 23 },\r\n    { estados: \"COJEDES\", cantidad_investigadores: 0 },\r\n    { estados: \"DELTA AMACURO\", cantidad_investigadores: 0 },\r\n    { estados: \"DISTRITO CAPITAL\", cantidad_investigadores: 22 },\r\n    { estados: \"FALCON\", cantidad_investigadores: 0 },\r\n    { estados: \"GUARICO\", cantidad_investigadores: 0 },\r\n    { estados: \"GUAYANA ESEQUIBA\", cantidad_investigadores: 0 },\r\n    { estados: \"LARA\", cantidad_investigadores: 7 },\r\n    { estados: \"MERIDA\", cantidad_investigadores: 0 },\r\n    { estados: \"MIRANDA\", cantidad_investigadores: 14 },\r\n    { estados: \"MONAGAS\", cantidad_investigadores: 1 },\r\n    { estados: \"NUEVA ESPARTA\", cantidad_investigadores: 0 },\r\n    { estados: \"PORTUGUESA\", cantidad_investigadores: 1 },\r\n    { estados: \"SUCRE\", cantidad_investigadores: 1 },\r\n    { estados: \"TACHIRA\", cantidad_investigadores: 0 },\r\n    { estados: \"TRUJILLO\", cantidad_investigadores: 3 },\r\n    { estados: \"VARGAS\", cantidad_investigadores: 0 },\r\n    { estados: \"YARACUY\", cantidad_investigadores: 1 },\r\n    { estados: \"ZULIA\", cantidad_investigadores: 1 }\r\n];\r\n\r\nconsole.log(investigadoresPorEstado);\r\n\r\n        fetch('https:\/\/oidifanb.mindefensa.gob.ve\/wp-content\/venezuela.geojson')\r\n            .then(response => response.json())\r\n            .then(geojson => {\r\n                let estadoSeleccionado = null;\r\n\r\n                \/\/ Inicio del c\u00f3digo para el mapa de Venezuela\r\n                L.geoJSON(geojson, {\r\n                    style: function (feature) {\r\n                        \/\/ Creamos una constante llamado 'estado' para llamar la ubicaci\u00f3n de los Estados en Venezuela.geojson\r\n                        const estado = feature.properties.ESTADO;\r\n\r\n                        \/\/ Creamos una variable llamada 'fillColor, donde coloresEstado va a cambiarle el color a los Estados\r\n                        \/\/ coloresEstado es una constante que tiene los colores, estos colores est\u00e1n identificados por el Estado\r\n                        \/\/ Todo esto es con el fin de crear un background que en leaflet se le llama fillColor, para rellenar el Estado\r\n                        let fillColor = coloresEstados[estado] || '#FFFFFF';\r\n                        \/\/ Creamos una constante llamado estadoData, va a comparar si los datos conseguidos en la base de datos\r\n                        \/\/ Son iguales a la constante de estado que es la ubicaci\u00f3n de los estados en el geojson\r\n                        const estadoData = investigadoresPorEstado.find(item => item.estados === estado);\r\n                        \/\/ Creamos una constante, donde conseguimos la cantidad de investigadores por Estado\r\n                        const cantidadInvestigadores = estadoData ? parseInt(estadoData.cantidad_investigadores, 10) : 0;\r\n                        \/\/ Si la cantidadInvestigadores es de 0, es decir si no hay cantidad en uno de los Estados\r\n                        \/\/ El fillColor se vuelve de color gris.\r\n                        if (cantidadInvestigadores === 0) {\r\n                            fillColor = 'gray';\r\n                        }\r\n                        \/\/ Aqu\u00ed nos retorna otras funciones din\u00e1micas\r\n                        return {\r\n                            \/\/ Color del borde es de negro\r\n                            color: 'black',\r\n                            weight: 1,\r\n                            \/\/ Background de los estados, si se coloca un color aqu\u00ed, por ejemplo azul, todo se vuelve azul\r\n                            \/\/ Por ello, con la variable fillColor, se dividi\u00f3 los colores por Estado\r\n                            fillColor: fillColor,\r\n                            \/\/ Transparencia en un 0.7\r\n                            fillOpacity: 0.7\r\n                        };\r\n                    },\r\n                    \/\/ La leyenda de los fillColor, es decir que al dar click, ya los datos aparecen\r\n                    onEachFeature: function (feature, layer) {\r\n                        var estadoGeoJSON = feature.properties.ESTADO;\r\n                        var cantidad = 0;\r\n\r\n                        \/\/ Busca la cantidad correspondiente en el array 'investigadoresPorEstado'\r\n                        const estadoData = investigadoresPorEstado.find(item => item.estados === estadoGeoJSON);\r\n\r\n                        if (estadoData) {\r\n                            cantidad = parseInt(estadoData.cantidad_investigadores, 10); \/\/ Convertir a n\u00famero\r\n                        }\r\n\r\n                        \/\/ Lo que va a mostrar la leyenda al darle click en cada Estado\r\n                        layer.bindPopup('<b>' + estadoGeoJSON + '<\/b><br>Cantidad: ' + cantidad);\r\n\r\n                        \/\/ Esta funci\u00f3n al darle click en un estado, se le cambio el color un poco m\u00e1s oscuro\r\n                        layer.on({\r\n                            \/\/ Cuando pasemos el cursos, los fillcolor van a oscurecer un poco\r\n                            mouseover: function (e) {\r\n                                const estadoActual = e.target.feature.properties.ESTADO;\r\n                                const estadoDataHover = investigadoresPorEstado.find(item => item.estados === estadoActual);\r\n                                const cantidadHover = estadoDataHover ? parseInt(estadoDataHover.cantidad_investigadores, 10) : 0;\r\n                                let colorHover = coloresEstados[estadoActual] || '#FFFFFF';\r\n                                if (cantidadHover > 0) {\r\n                                    colorHover = darkenColor(colorHover);\r\n                                } else {\r\n                                    colorHover = 'darkgray'; \/\/ Oscurecer el gris si ya es gris\r\n                                }\r\n                                e.target.setStyle({ fillColor: colorHover });\r\n\r\n                                \r\n                            },\r\n                            \/\/ Cuando ya pasemos el cursos, el fillColor vuelve a la normalidad\r\n                            mouseout: function (e) {\r\n                                const estadoActual = e.target.feature.properties.ESTADO;\r\n                                const estadoDataOut = investigadoresPorEstado.find(item => item.estados === estadoActual);\r\n                                const cantidadOut = estadoDataOut ? parseInt(estadoDataOut.cantidad_investigadores, 10) : 0;\r\n                                let colorOut = coloresEstados[estadoActual] || '#FFFFFF';\r\n                                if (cantidadOut === 0) {\r\n                                    colorOut = 'gray';\r\n                                }\r\n                                if (estadoSeleccionado !== estadoActual) {\r\n                                    e.target.setStyle({ fillColor: colorOut });\r\n                                } else {\r\n                                    \/\/ Si est\u00e1 seleccionado, mantener el estilo de selecci\u00f3n (si lo tienes)\r\n                                    \/\/ Si no tienes un estilo de selecci\u00f3n espec\u00edfico, podr\u00edas mantener el color original o un color de selecci\u00f3n.\r\n                                    \/\/ Aqu\u00ed lo dejamos con el color original (o gris si no hay investigadores).\r\n                                    e.target.setStyle({ fillColor: colorOut });\r\n                                }\r\n                            },\r\n\r\n                            \/\/ Al darle click si no est\u00e1 seleccionada, restablece su color\r\n                            \/\/ Si est\u00e1 seleccionada, el color se oscurece\r\n                            click: function (e) {\r\n                                const estadoClickeado = e.target.feature.properties.ESTADO;\r\n                                if (estadoSeleccionado && estadoSeleccionado !== estadoClickeado) {\r\n                                    geojson.eachLayer(function (l) {\r\n                                        if (l.feature.properties.ESTADO === estadoSeleccionado) {\r\n                                            l.getElement().classList.remove('estado-seleccionado');\r\n                                            \/\/ Restablecer el color al original o gris si no hay investigadores\r\n                                            const estadoDataReset = investigadoresPorEstado.find(item => item.estados === estadoSeleccionado);\r\n                                            const cantidadReset = estadoDataReset ? parseInt(estadoDataReset.cantidad_investigadores, 10) : 0;\r\n                                            l.setStyle({ fillColor: cantidadReset === 0 ? 'gray' : (coloresEstados[estadoSeleccionado] || '#FFFFFF') });\r\n                                        }\r\n                                    });\r\n                                }\r\n                                e.target.getElement().classList.add('estado-seleccionado');\r\n                                estadoSeleccionado = estadoClickeado;\r\n                                \/\/ Aqu\u00ed podr\u00edas a\u00f1adir l\u00f3gica adicional al hacer clic en un estado\r\n                            }\r\n                        });\r\n                    }\r\n                    \/\/ Aqu\u00ed a\u00f1adimos el mapa\r\n                }).addTo(map);\r\n\r\n                \/\/ Creaci\u00f3n de la Leyenda\r\n                var legend = L.control({ position: 'bottomright' });\r\n\r\n                legend.onAdd = function (map) {\r\n                    var div = L.DomUtil.create('div', 'info legend');\r\n                    var labels = [];\r\n                \r\n                    for (var estado in coloresEstados) {\r\n                        const estadoData = investigadoresPorEstado.find(item => item.estados === estado);\r\n                        var cantidad = estadoData ? parseInt(estadoData.cantidad_investigadores, 10) : 0;\r\n                        var colorLeyenda = coloresEstados[estado];\r\n                \r\n                        if (cantidad === 0) {\r\n                            colorLeyenda = 'gray';\r\n                        }\r\n                \r\n                        labels.push('<i style=\"background:' + colorLeyenda + '\"><\/i> ' + estado + ' (' + cantidad + ')');\r\n                    }\r\n                \r\n                    div.innerHTML = labels.join('<br>');\r\n                    div.id = 'map-legend'; \/\/ Le damos un id para manipularlo despu\u00e9s\r\n                    return div;\r\n                };\r\n                \r\n                legend.addTo(map);\r\n                \r\n                \/\/ Crear el bot\u00f3n de mostrar\/ocultar fuera de la leyenda\r\n                var toggleButton = L.DomUtil.create('button', 'toggle-legend');\r\n                toggleButton.innerHTML = 'Mostrar\/Ocultar Leyenda';\r\n                toggleButton.style.background = '#151A2D'; \r\n                toggleButton.style.color = 'white';\r\n                toggleButton.style.position = 'absolute';\r\n                toggleButton.style.top = '10px';\r\n                toggleButton.style.right = '10px';\r\n                toggleButton.style.zIndex = '1000';\r\n                toggleButton.style.borderRadius = '10px'; \r\n                toggleButton.style.padding = '5px 5px';\r\n                toggleButton.style.cursor = 'pointer';\r\n\r\n          \r\n                toggleButton.addEventListener('click', function() {\r\n                    let currentBg = getComputedStyle(toggleButton).backgroundColor;\r\n                    let currentColor = getComputedStyle(toggleButton).color;\r\n                \r\n                    if (currentBg === 'rgb(21, 26, 45)') { \/\/ Color original en formato RGB\r\n                        toggleButton.style.background = 'white'; \/\/ Color invertido\r\n                        toggleButton.style.color = '#151A2D'; \/\/ Texto invertido\r\n                    } else {\r\n                        toggleButton.style.background = '#151A2D'; \/\/ Volver al color original\r\n                        toggleButton.style.color = 'white'; \/\/ Volver al color original\r\n                    }\r\n                });\r\n\r\n          \r\n\r\n                toggleButton.style.transition = 'background 0.3s, color 0.3s';\r\n                \r\n                \r\n                toggleButton.onclick = function () {\r\n                    var legendDiv = document.getElementById('map-legend');\r\n                    legendDiv.style.display = legendDiv.style.display === 'none' ? 'block' : 'none';\r\n                };\r\n                \r\n                \/\/ Agregar el bot\u00f3n al mapa\r\n                map.getContainer().appendChild(toggleButton);\r\n            });\r\n\r\n\/\/ Funci\u00f3n que oscurece un color hexadecimal.\r\nfunction darkenColor(color) {\r\n    if (!color) return '#000000';\r\n\r\n    let c = color.substring(1);\r\n    let rgb = parseInt(c, 16);\r\n\r\n    let r = (rgb >> 16) & 0xFF;\r\n    let g = (rgb >> 8) & 0xFF;\r\n    let b = rgb & 0xFF;\r\n\r\n    r = Math.max(0, Math.floor(r * 0.7));\r\n    g = Math.max(0, Math.floor(g * 0.7));\r\n    b = Math.max(0, Math.floor(b * 0.7));\r\n\r\n    return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\r\n}\r\n\r\n\/\/ Objeto que asigna colores a cada estado de Venezuela.\r\nconst coloresEstados = {\r\n    \"AMAZONAS\": \"#00B0F0\",\r\n    \"ANZOATEGUI\": \"#00C853\",\r\n    \"APURE\": \"#FFEB3B\",\r\n    \"ARAGUA\": \"#F06292\",\r\n    \"BARINAS\": \"#9C27B0\",\r\n    \"BOLIVAR\": \"#FF5722\",\r\n    \"CARABOBO\": \"#66BB6A\",\r\n    \"COJEDES\": \"#FFC107\",\r\n    \"DELTA AMACURO\": \"#E91E63\",\r\n    \"DISTRITO CAPITAL\": \"#673AB7\",\r\n    \"FALCON\": \"#4CAF50\",\r\n    \"GUARICO\": \"#FF9800\",\r\n    \"GUAYANA ESEQUIBA\": \"#673AB7\",\r\n    \"LARA\": \"#F0B5F0\",\r\n    \"MERIDA\": \"#F44336\",\r\n    \"MIRANDA\": \"#795548\",\r\n    \"MONAGAS\": \"#CDDC39\",\r\n    \"NUEVA ESPARTA\": \"#009688\",\r\n    \"PORTUGUESA\": \"#00BCD4\",\r\n    \"SUCRE\": \"#2196F3\",\r\n    \"TACHIRA\": \"#3F51B5\",\r\n    \"TRUJILLO\": \"#CDDC39\",\r\n    \"VARGAS\": \"#E91E63\",\r\n    \"YARACUY\": \"#FF5722\",\r\n    \"ZULIA\": \"#8BC34A\"\r\n};\r\n\r\n});\r\n\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Datos de usuarios 211 Investigadores 167 Hombres 44 Mujeres 179 Registros por cada 100 mil habitantes PROYECTOS POR \u00c1REA DE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":35,"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":576,"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions\/576"}],"wp:attachment":[{"href":"https:\/\/oidifanb.mindefensa.gob.ve\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}