
<div class="w-full" style="font-size:14px; display:flex; flex-direction:column; gap:14px;">

    <?php if (isset($component)) { $__componentOriginal2544aeb3df80db4e8cf42f27632fe7f3 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal2544aeb3df80db4e8cf42f27632fe7f3 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'components.cabecera','data' => ['rotulo' => 'Plugins','titulo' => 'Inventario del parque','descripcion' => 'Todo lo que declaran los sitios, nuestro o de terceros, con su versión y en cuántos entornos está instalado.']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('cabecera'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['rotulo' => 'Plugins','titulo' => 'Inventario del parque','descripcion' => 'Todo lo que declaran los sitios, nuestro o de terceros, con su versión y en cuántos entornos está instalado.']); ?>

         <?php $__env->slot('icono', null, []); ?> 
            <?php if (isset($component)) { $__componentOriginalb86967db162ccc0bceeb1ac50f169b8f = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginalb86967db162ccc0bceeb1ac50f169b8f = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'components.nav-icon','data' => ['name' => 'cube-02','tint' => 'orange']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('nav-icon'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['name' => 'cube-02','tint' => 'orange']); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginalb86967db162ccc0bceeb1ac50f169b8f)): ?>
<?php $attributes = $__attributesOriginalb86967db162ccc0bceeb1ac50f169b8f; ?>
<?php unset($__attributesOriginalb86967db162ccc0bceeb1ac50f169b8f); ?>
<?php endif; ?>
<?php if (isset($__componentOriginalb86967db162ccc0bceeb1ac50f169b8f)): ?>
<?php $component = $__componentOriginalb86967db162ccc0bceeb1ac50f169b8f; ?>
<?php unset($__componentOriginalb86967db162ccc0bceeb1ac50f169b8f); ?>
<?php endif; ?>
         <?php $__env->endSlot(); ?>

         <?php $__env->slot('pie', null, []); ?> 
            <?php echo $__env->make('livewire.plugins.components.menu', ['selected' => 'inventario'], array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
         <?php $__env->endSlot(); ?>
     <?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal2544aeb3df80db4e8cf42f27632fe7f3)): ?>
<?php $attributes = $__attributesOriginal2544aeb3df80db4e8cf42f27632fe7f3; ?>
<?php unset($__attributesOriginal2544aeb3df80db4e8cf42f27632fe7f3); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal2544aeb3df80db4e8cf42f27632fe7f3)): ?>
<?php $component = $__componentOriginal2544aeb3df80db4e8cf42f27632fe7f3; ?>
<?php unset($__componentOriginal2544aeb3df80db4e8cf42f27632fe7f3); ?>
<?php endif; ?>

    <?php echo $__env->make('livewire.plugins.partials.sin-inventario', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>

    <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if (! ($cobertura['vacio'])): ?>
        <?php echo $__env->make('livewire.plugins.partials.atencion', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
        <?php echo $__env->make('livewire.plugins.partials.apagados', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>

            <section class="overflow-hidden rounded-xl border"
                     style="background:var(--surface-card); border-color:var(--border-subtle);">

                <div class="flex flex-wrap items-end justify-between gap-4 px-5 py-3.5">
                    <div class="min-w-0">
                        <h2 style="font-family:'Plus Jakarta Sans',sans-serif; font-size:15px; font-weight:700; color:var(--text-strong); margin:0;">
                            Inventario del parque
                        </h2>
                        <div class="mt-0.5 text-[12.5px]" style="color:var(--text-muted);">
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($hayFiltro): ?>
                                <?php echo e($total); ?> <?php echo e($total === 1 ? 'componente' : 'componentes'); ?> de <?php echo e($resumen['componentes']); ?>, en <?php echo e($resumen['tipos']); ?> <?php echo e($resumen['tipos'] === 1 ? 'tipo' : 'tipos'); ?>

                            <?php else: ?>
                                <?php echo e($resumen['componentes']); ?> <?php echo e($resumen['componentes'] === 1 ? 'componente' : 'componentes'); ?> en <?php echo e($resumen['tipos']); ?> <?php echo e($resumen['tipos'] === 1 ? 'tipo' : 'tipos'); ?>, según el inventario de
                                <span class="font-semibold" style="color:<?php echo e($cobertura['parcial'] ? 'var(--warning-500)' : 'var(--text-strong)'); ?>;"><?php echo e($cobertura['envian']); ?> de <?php echo e($cobertura['total']); ?></span>
                                <?php echo e($cobertura['total'] === 1 ? 'entorno' : 'entornos'); ?>. Primero lo accionable.
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </div>
                    </div>

                    <div class="flex flex-wrap items-center gap-2">
                        
                        <div class="relative"
                             x-data="{ abierto: false }"
                             @click.away="abierto = false"
                             @keydown.escape="abierto = false">
                            <input type="text" wire:model.live.debounce.300ms="busqueda"
                                   placeholder="Buscar plugin"
                                   x-on:focus="abierto = true"
                                   x-on:input="abierto = true"
                                   class="w-[200px] rounded-lg border px-3 py-1.5 text-[13px]"
                                   style="border-color:var(--border-subtle); background:var(--surface-card); color:var(--text-strong);">

                            
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(($sugerencias ?? []) !== []): ?>
                                <div x-show="abierto" x-cloak
                                     class="absolute left-0 top-full z-20 mt-1 w-[280px] overflow-hidden rounded-lg border shadow-lg"
                                     style="background:var(--surface-card); border-color:var(--border-subtle);">
                                    <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__currentLoopData = $sugerencias; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $sugerencia): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                                        <button type="button"
                                                wire:click="$set('busqueda', '<?php echo e($sugerencia['component']); ?>')"
                                                x-on:click="abierto = false"
                                                class="flex w-full items-center justify-between gap-3 px-3 py-1.5 text-left text-[12.5px] hover:bg-[var(--surface-alt)] <?php echo e(! $loop->first ? 'border-t' : ''); ?>"
                                                style="border-color:var(--border-subtle);">
                                            <span class="min-w-0">
                                                <span class="block truncate font-semibold" style="color:var(--text-strong);"><?php echo e($sugerencia['name']); ?></span>
                                                <span class="block truncate text-[11px]" style="font-family:ui-monospace,monospace; color:var(--text-muted);"><?php echo e($sugerencia['component']); ?></span>
                                            </span>
                                            <span class="flex-none text-[11.5px]" style="color:var(--text-muted);"><?php echo e($sugerencia['entornos']); ?></span>
                                        </button>
                                    <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                                </div>
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </div>

                        
                        <select wire:model.live="tipo"
                                class="rounded-lg border px-3 py-1.5 text-[13px]"
                                style="border-color:var(--border-subtle); background:var(--surface-card); color:var(--text-strong);">
                            <option value="">Todos los tipos</option>
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__currentLoopData = ($tipos ?? []); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $unTipo): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                                <option value="<?php echo e($unTipo['tipo']); ?>"><?php echo e($unTipo['tipo']); ?> (<?php echo e($unTipo['cuantos']); ?>)</option>
                            <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </select>

                        
                        <select wire:model.live="familia"
                                class="rounded-lg border px-3 py-1.5 text-[13px]"
                                style="border-color:var(--border-subtle); background:var(--surface-card); color:var(--text-strong);">
                            <option value="">Todos los orígenes</option>
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__currentLoopData = ['nuestros' => 'Nuestros', 'estandar' => 'Estándar de Moodle', 'terceros' => 'Terceros', 'sinclas' => 'Sin clasificar']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $clave => $etiqueta): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                                <option value="<?php echo e($clave); ?>"><?php echo e($etiqueta); ?> (<?php echo e($porOrigen[$clave] ?? 0); ?>)</option>
                            <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </select>

                        <?php
                            $focos = [
                                ['nuestros', 'Nuestros', $resumen['nuestros']],
                                ['actualizables', 'Con actualización', $resumen['actualizables']],
                                ['divergentes', 'Versiones distintas', $resumen['divergentes']],
                            ];
                        ?>
                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__currentLoopData = $focos; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as [$clave, $etiqueta, $cuantos]): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                            <button type="button" wire:click="$set('foco', '<?php echo e($foco === $clave ? '' : $clave); ?>')"
                                    class="rounded-lg border px-2.5 py-1 text-[12.5px] font-semibold"
                                    style="border-color:<?php echo e($foco === $clave ? 'var(--text-strong)' : 'var(--border-subtle)'); ?>;
                                           color:<?php echo e($foco === $clave ? 'var(--text-strong)' : 'var(--text-muted)'); ?>;">
                                <?php echo e($etiqueta); ?> <span style="color:var(--text-subtle);"><?php echo e($cuantos); ?></span>
                            </button>
                        <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($hayFiltro): ?>
                            <button type="button" wire:click="limpiarFiltros"
                                    class="text-[12.5px] font-semibold" style="color:var(--text-link);">Quitar filtros</button>
                        <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                    </div>
                </div>

                
                <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($foco === 'divergentes'): ?>
                    <div class="border-t px-5 py-2.5 text-[12.5px]" style="border-color:var(--border-subtle); background:var(--neutral-50); color:var(--text-muted);">
                        Los plugins que vienen con Moodle llevan la versión del core: si los sitios tienen
                        versiones de Moodle distintas, divergen por definición y no hay nada que arreglar.
                        Donde importa es en los nuestros, y eso está en la pestaña de Plugins Tresipunt.
                    </div>
                <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

                <div class="pq-fila-grid border-y px-5 py-1.5 text-[11px] font-semibold uppercase tracking-[0.06em]"
                     style="border-color:var(--border-subtle); background:var(--neutral-50); color:var(--text-subtle);">
                    <div>Plugin</div>
                    <div>Identificador</div>
                    <div>Tipo</div>
                    <div>Entornos</div>
                    <div>Versiones</div>
                    <div>Actualización</div>
                    <div></div>
                </div>

                <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__empty_1 = true; $__currentLoopData = ($filas ?? []); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $fila): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?>
                    <div class="pq-fila-grid px-5 py-2 text-[12.5px] <?php echo e(! $loop->first ? 'border-t' : ''); ?> hover:bg-[var(--surface-alt)]"
                         style="border-color:var(--border-subtle);">
                        <div class="flex min-w-0 items-center gap-2">
                            
                            <a href="<?php echo e(route('plugins.ficha', $fila['component'])); ?>" wire:navigate class="truncate font-semibold hover:underline" style="color:var(--text-strong);"><?php echo e($fila['name']); ?></a>
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($fila['nuestro']): ?>
                                <span class="flex-none rounded px-1.5 py-px text-[10px] font-semibold"
                                      style="color:var(--orange-600); background:var(--orange-100);">3iP</span>
                            <?php elseif($fila['familia'] === 'terceros'): ?>
                                <span class="flex-none rounded px-1.5 py-px text-[10px] font-semibold"
                                      style="color:var(--info-500); background:var(--info-50);">Terceros</span>
                            <?php elseif($fila['familia'] === 'sinclas'): ?>
                                <span class="flex-none rounded px-1.5 py-px text-[10px] font-semibold"
                                      title="Ningún sitio ha dicho todavía si viene con Moodle"
                                      style="color:var(--neutral-600); border:1px dashed var(--border-default);">?</span>
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </div>

                        <div class="truncate" style="font-family:ui-monospace,monospace; color:var(--text-muted);"><?php echo e($fila['component']); ?></div>

                        <div style="color:var(--text-muted);"><?php echo e($fila['type']); ?></div>

                        <div class="flex items-baseline gap-2">
                            <span style="color:var(--text-strong);"><?php echo e($fila['entornos']); ?></span>
                            <?php if (app(\Illuminate\Contracts\Auth\Access\Gate::class)->check('admin.environments.index')): ?>
                                <a href="<?php echo e(route('environments.index', ['plugin' => [$fila['component']]])); ?>" wire:navigate
                                   class="tip flex-none" data-tip="Ver estos entornos en el listado">
                                    <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="var(--text-subtle)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg>
                                </a>
                            <?php endif; ?>
                        </div>

                        <div style="color:<?php echo e($fila['versiones'] > 1 ? 'var(--warning-500)' : 'var(--text-muted)'); ?>;">
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($fila['versiones'] > 1): ?>
                                <span class="font-semibold"><?php echo e($fila['versiones']); ?> distintas</span>
                            <?php else: ?>
                                una
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </div>

                        <div style="color:<?php echo e($fila['actualizables'] > 0 ? 'var(--info-500)' : 'var(--text-muted)'); ?>;">
                            <?php echo e($fila['actualizables'] > 0 ? 'en ' . $fila['actualizables'] : '—'); ?>

                        </div>

                        <div class="text-right">
                            <button type="button" wire:click="alternar('<?php echo e($fila['component']); ?>')"
                                    class="text-[12px] font-semibold" style="color:var(--text-link);">
                                <?php echo e($abierto === $fila['component'] ? 'Cerrar' : 'Ver'); ?>

                            </button>
                        </div>
                    </div>

                    <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($abierto === $fila['component'] && $detalle !== []): ?>
                        <div class="border-t" style="border-color:var(--border-subtle); background:var(--surface-alt);">
                            <?php echo $__env->make('livewire.plugins.partials.detalle', ['detalle' => $detalle], array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
                        </div>
                    <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?>
                    <div class="px-5 py-8 text-center text-[13px]" style="color:var(--text-muted);">
                        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($hayFiltro): ?>
                            Ningún componente encaja con este filtro.
                            <button type="button" wire:click="limpiarFiltros" class="font-semibold" style="color:var(--text-link);">Quitarlo</button>
                        <?php else: ?>
                            No hay componentes en el inventario.
                        <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                    </div>
                <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

                <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(($paginas ?? 0) > 1): ?>
                    <div class="flex flex-wrap items-center justify-between gap-3 border-t px-5 py-3 text-[12.5px]"
                         style="border-color:var(--border-subtle); color:var(--text-muted);">
                        <span>Página <?php echo e($pagina); ?> de <?php echo e($paginas); ?></span>
                        <span class="flex items-center gap-2">
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($pagina > 1): ?>
                                <button type="button" wire:click="previousPage" class="font-semibold" style="color:var(--text-link);">Anterior</button>
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                            <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($pagina < $paginas): ?>
                                <button type="button" wire:click="nextPage" class="font-semibold" style="color:var(--text-link);">Siguiente</button>
                            <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                        </span>
                    </div>
                <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
            </section>
    <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
</div><?php /**PATH /var/www/html/resources/views/livewire/plugins/inventario.blade.php ENDPATH**/ ?>