228 lines
198 KiB
HTML
228 lines
198 KiB
HTML
<!-- -->
|
|
|
|
<!DOCTYPE html><html lang="es"><head><script data-no-optimize="1">var litespeed_docref=sessionStorage.getItem("litespeed_docref");litespeed_docref&&(Object.defineProperty(document,"referrer",{get:function(){return litespeed_docref}}),sessionStorage.removeItem("litespeed_docref"));</script> <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="profile" href="https://gmpg.org/xfn/11"><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style><title>Como instalar JupyterLab en Ubuntu 24.04</title><meta name="description" content="Como instalar JupyterLab en Ubuntu 24.04. Al completar esta guía paso a paso, habrá completado la instalación de JupyterLab en el Ubuntu 24.04" /><link rel="canonical" href="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/" /><meta property="og:locale" content="es_ES" /><meta property="og:type" content="article" /><meta property="og:title" content="Como instalar JupyterLab en Ubuntu 24.04" /><meta property="og:description" content="Como instalar JupyterLab en Ubuntu 24.04. Al completar esta guía paso a paso, habrá completado la instalación de JupyterLab en el Ubuntu 24.04" /><meta property="og:url" content="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/" /><meta property="og:site_name" content="Veselin" /><meta property="article:published_time" content="2024-05-04T16:05:25+00:00" /><meta property="article:modified_time" content="2024-05-07T19:58:13+00:00" /><meta property="og:image" content="https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png" /><meta property="og:image:width" content="930" /><meta property="og:image:height" content="547" /><meta property="og:image:type" content="image/png" /><meta name="author" content="Veselin Petrov" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:label1" content="Escrito por" /><meta name="twitter:data1" content="Veselin Petrov" /><meta name="twitter:label2" content="Tiempo de lectura" /><meta name="twitter:data2" content="12 minutos" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#article","isPartOf":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/"},"author":{"name":"Veselin Petrov","@id":"https://veselin.es/#/schema/person/4a3bcdcf3e7754dc9db5ef4e15310058"},"headline":"Como instalar JupyterLab en Ubuntu 24.04","datePublished":"2024-05-04T16:05:25+00:00","dateModified":"2024-05-07T19:58:13+00:00","mainEntityOfPage":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/"},"wordCount":1945,"commentCount":4,"publisher":{"@id":"https://veselin.es/#/schema/person/4a3bcdcf3e7754dc9db5ef4e15310058"},"image":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#primaryimage"},"thumbnailUrl":"https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png","keywords":["Como instalar JupyterLab","Como instalar JupyterLab en Ubuntu 24.04","IA","JupyterLab","JupyterLab en Ubuntu 24.04","Servidor","servidores","Ubuntu 24.04"],"articleSection":["INVESTIGACIÓN","LINUX","TECNOLOGÍA"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#respond"]}]},{"@type":"WebPage","@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/","url":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/","name":"Como instalar JupyterLab en Ubuntu 24.04","isPartOf":{"@id":"https://veselin.es/#website"},"primaryImageOfPage":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#primaryimage"},"image":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#primaryimage"},"thumbnailUrl":"https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png","datePublished":"2024-05-04T16:05:25+00:00","dateModified":"2024-05-07T19:58:13+00:00","description":"Como instalar JupyterLab en Ubuntu 24.04. Al completar esta guía paso a paso, habrá completado la instalación de JupyterLab en el Ubuntu 24.04","breadcrumb":{"@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#primaryimage","url":"https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png","contentUrl":"https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png","width":930,"height":547,"caption":"Como instalar JupyterLab en Ubuntu 24.04"},{"@type":"BreadcrumbList","@id":"https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https://veselin.es/"},{"@type":"ListItem","position":2,"name":"Como instalar JupyterLab en Ubuntu 24.04"}]},{"@type":"WebSite","@id":"https://veselin.es/#website","url":"https://veselin.es/","name":"Veselin","description":"Explora tecnología, ciberseguridad, Linux e IA en nuestra plataforma. Únete ahora para descubrir más","publisher":{"@id":"https://veselin.es/#/schema/person/4a3bcdcf3e7754dc9db5ef4e15310058"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://veselin.es/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https://veselin.es/#/schema/person/4a3bcdcf3e7754dc9db5ef4e15310058","name":"Veselin Petrov","image":{"@type":"ImageObject","inLanguage":"es","@id":"https://veselin.es/#/schema/person/image/","url":"https://veselin.es/wp-content/uploads/2023/01/icono-de-la-web-de-veselin.png","contentUrl":"https://veselin.es/wp-content/uploads/2023/01/icono-de-la-web-de-veselin.png","width":535,"height":533,"caption":"Veselin Petrov"},"logo":{"@id":"https://veselin.es/#/schema/person/image/"},"sameAs":["http://veselin.es"],"url":"https://veselin.es/author/veselin/"}]}</script> <link rel='dns-prefetch' href='//news.google.com' /><link rel='dns-prefetch' href='//www.googletagmanager.com' /><link rel='dns-prefetch' href='//fonts.googleapis.com' /><link rel='dns-prefetch' href='//pagead2.googlesyndication.com' /><link rel='dns-prefetch' href='//fundingchoicesmessages.google.com' /><link rel="alternate" type="application/rss+xml" title="Veselin » Feed" href="https://veselin.es/feed/" /><link rel="alternate" type="application/rss+xml" title="Veselin » Feed de los comentarios" href="https://veselin.es/comments/feed/" /><link rel="alternate" type="application/rss+xml" title="Veselin » Comentario Como instalar JupyterLab en Ubuntu 24.04 del feed" href="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/feed/" /><link data-optimized="1" rel='stylesheet' id='astra-theme-css-css' href='https://veselin.es/wp-content/litespeed/css/51a292f302772b0edab7fb40bd875d97.css?ver=75d97' media='all' /><style id='astra-theme-css-inline-css'>.ast-no-sidebar .entry-content .alignfull {margin-left: calc( -50vw + 50%);margin-right: calc( -50vw + 50%);max-width: 100vw;width: 100vw;}.ast-no-sidebar .entry-content .alignwide {margin-left: calc(-41vw + 50%);margin-right: calc(-41vw + 50%);max-width: unset;width: unset;}.ast-no-sidebar .entry-content .alignfull .alignfull,.ast-no-sidebar .entry-content .alignfull .alignwide,.ast-no-sidebar .entry-content .alignwide .alignfull,.ast-no-sidebar .entry-content .alignwide .alignwide,.ast-no-sidebar .entry-content .wp-block-column .alignfull,.ast-no-sidebar .entry-content .wp-block-column .alignwide{width: 100%;margin-left: auto;margin-right: auto;}.wp-block-gallery,.blocks-gallery-grid {margin: 0;}.wp-block-separator {max-width: 100px;}.wp-block-separator.is-style-wide,.wp-block-separator.is-style-dots {max-width: none;}.entry-content .has-2-columns .wp-block-column:first-child {padding-right: 10px;}.entry-content .has-2-columns .wp-block-column:last-child {padding-left: 10px;}@media (max-width: 782px) {.entry-content .wp-block-columns .wp-block-column {flex-basis: 100%;}.entry-content .has-2-columns .wp-block-column:first-child {padding-right: 0;}.entry-content .has-2-columns .wp-block-column:last-child {padding-left: 0;}}body .entry-content .wp-block-latest-posts {margin-left: 0;}body .entry-content .wp-block-latest-posts li {list-style: none;}.ast-no-sidebar .ast-container .entry-content .wp-block-latest-posts {margin-left: 0;}.ast-header-break-point .entry-content .alignwide {margin-left: auto;margin-right: auto;}.entry-content .blocks-gallery-item img {margin-bottom: auto;}.wp-block-pullquote {border-top: 4px solid #555d66;border-bottom: 4px solid #555d66;color: #40464d;}:root{--ast-post-nav-space:0;--ast-container-default-xlg-padding:6.67em;--ast-container-default-lg-padding:5.67em;--ast-container-default-slg-padding:4.34em;--ast-container-default-md-padding:3.34em;--ast-container-default-sm-padding:6.67em;--ast-container-default-xs-padding:2.4em;--ast-container-default-xxs-padding:1.4em;--ast-code-block-background:#EEEEEE;--ast-comment-inputs-background:#FAFAFA;--ast-normal-container-width:1200px;--ast-narrow-container-width:750px;--ast-blog-title-font-weight:normal;--ast-blog-meta-weight:inherit;--ast-global-color-primary:var(--ast-global-color-5);--ast-global-color-secondary:var(--ast-global-color-4);--ast-global-color-alternate-background:var(--ast-global-color-7);--ast-global-color-subtle-background:var(--ast-global-color-6);--ast-bg-style-guide:#F8FAFC;--ast-shadow-style-guide:0px 0px 4px 0 #00000057;--ast-global-dark-bg-style:#fff;--ast-global-dark-lfs:#fbfbfb;--ast-widget-bg-color:#fafafa;--ast-wc-container-head-bg-color:#fbfbfb;--ast-title-layout-bg:#eeeeee;--ast-search-border-color:#e7e7e7;--ast-lifter-hover-bg:#e6e6e6;--ast-gallery-block-color:#000;--srfm-color-input-label:var(--ast-global-color-2);}html{font-size:106.25%;}a,.page-title{color:#021ebf;}a:hover,a:focus{color:#4993ef;}body,button,input,select,textarea,.ast-button,.ast-custom-button{font-family:'Source Sans Pro',sans-serif;font-weight:400;font-size:17px;font-size:1rem;}blockquote{color:var(--ast-global-color-3);}h1,.entry-content h1,h2,.entry-content h2,h3,.entry-content h3,h4,.entry-content h4,h5,.entry-content h5,h6,.entry-content h6,.site-title,.site-title a{font-family:'Montserrat',sans-serif;font-weight:500;}.site-title{font-size:35px;font-size:2.0588235294118rem;display:none;}header .custom-logo-link img{max-width:200px;width:200px;}.astra-logo-svg{width:200px;}.site-header .site-description{font-size:15px;font-size:0.88235294117647rem;display:none;}.entry-title{font-size:30px;font-size:1.7647058823529rem;}.archive .ast-article-post .ast-article-inner,.blog .ast-article-post .ast-article-inner,.archive .ast-article-post .ast-article-inner:hover,.blog .ast-article-post .ast-article-inner:hover{overflow:hidden;}h1,.entry-content h1{font-size:48px;font-size:2.8235294117647rem;font-family:'Montserrat',sans-serif;line-height:1.4em;}h2,.entry-content h2{font-size:40px;font-size:2.3529411764706rem;font-family:'Montserrat',sans-serif;line-height:1.3em;}h3,.entry-content h3{font-size:32px;font-size:1.8823529411765rem;font-family:'Montserrat',sans-serif;line-height:1.3em;}h4,.entry-content h4{font-size:24px;font-size:1.4117647058824rem;line-height:1.2em;font-family:'Montserrat',sans-serif;}h5,.entry-content h5{font-size:20px;font-size:1.1764705882353rem;line-height:1.2em;font-family:'Montserrat',sans-serif;}h6,.entry-content h6{font-size:17px;font-size:1rem;line-height:1.25em;font-family:'Montserrat',sans-serif;}::selection{background-color:var(--ast-global-color-0);color:#ffffff;}body,h1,.entry-title a,.entry-content h1,h2,.entry-content h2,h3,.entry-content h3,h4,.entry-content h4,h5,.entry-content h5,h6,.entry-content h6{color:var(--ast-global-color-3);}.tagcloud a:hover,.tagcloud a:focus,.tagcloud a.current-item{color:#ffffff;border-color:#021ebf;background-color:#021ebf;}input:focus,input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="reset"]:focus,input[type="search"]:focus,textarea:focus{border-color:#021ebf;}input[type="radio"]:checked,input[type=reset],input[type="checkbox"]:checked,input[type="checkbox"]:hover:checked,input[type="checkbox"]:focus:checked,input[type=range]::-webkit-slider-thumb{border-color:#021ebf;background-color:#021ebf;box-shadow:none;}.site-footer a:hover + .post-count,.site-footer a:focus + .post-count{background:#021ebf;border-color:#021ebf;}.single .nav-links .nav-previous,.single .nav-links .nav-next{color:#021ebf;}.entry-meta,.entry-meta *{line-height:1.45;color:#021ebf;}.entry-meta a:not(.ast-button):hover,.entry-meta a:not(.ast-button):hover *,.entry-meta a:not(.ast-button):focus,.entry-meta a:not(.ast-button):focus *,.page-links > .page-link,.page-links .page-link:hover,.post-navigation a:hover{color:#4993ef;}#cat option,.secondary .calendar_wrap thead a,.secondary .calendar_wrap thead a:visited{color:#021ebf;}.secondary .calendar_wrap #today,.ast-progress-val span{background:#021ebf;}.secondary a:hover + .post-count,.secondary a:focus + .post-count{background:#021ebf;border-color:#021ebf;}.calendar_wrap #today > a{color:#ffffff;}.page-links .page-link,.single .post-navigation a{color:#021ebf;}.ast-search-menu-icon .search-form button.search-submit{padding:0 4px;}.ast-search-menu-icon form.search-form{padding-right:0;}.ast-search-menu-icon.slide-search input.search-field{width:0;}.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-form,.ast-header-search .ast-search-menu-icon.ast-dropdown-active .search-field:focus{transition:all 0.2s;}.search-form input.search-field:focus{outline:none;}.widget-title,.widget .wp-block-heading{font-size:24px;font-size:1.4117647058824rem;color:var(--ast-global-color-3);}#secondary,#secondary button,#secondary input,#secondary select,#secondary textarea{font-size:17px;font-size:1rem;}.ast-search-menu-icon.slide-search a:focus-visible:focus-visible,.astra-search-icon:focus-visible,#close:focus-visible,a:focus-visible,.ast-menu-toggle:focus-visible,.site .skip-link:focus-visible,.wp-block-loginout input:focus-visible,.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,.ast-header-navigation-arrow:focus-visible,.woocommerce .wc-proceed-to-checkout > .checkout-button:focus-visible,.woocommerce .woocommerce-MyAccount-navigation ul li a:focus-visible,.ast-orders-table__row .ast-orders-table__cell:focus-visible,.woocommerce .woocommerce-order-details .order-again > .button:focus-visible,.woocommerce .woocommerce-message a.button.wc-forward:focus-visible,.woocommerce #minus_qty:focus-visible,.woocommerce #plus_qty:focus-visible,a#ast-apply-coupon:focus-visible,.woocommerce .woocommerce-info a:focus-visible,.woocommerce .astra-shop-summary-wrap a:focus-visible,.woocommerce a.wc-forward:focus-visible,#ast-apply-coupon:focus-visible,.woocommerce-js .woocommerce-mini-cart-item a.remove:focus-visible,#close:focus-visible,.button.search-submit:focus-visible,#search_submit:focus,.normal-search:focus-visible,.ast-header-account-wrap:focus-visible,.woocommerce .ast-on-card-button.ast-quick-view-trigger:focus{outline-style:dotted;outline-color:inherit;outline-width:thin;}input:focus,input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="reset"]:focus,input[type="search"]:focus,input[type="number"]:focus,textarea:focus,.wp-block-search__input:focus,[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal:focus,.ast-mobile-popup-drawer.active .menu-toggle-close:focus,.woocommerce-ordering select.orderby:focus,#ast-scroll-top:focus,#coupon_code:focus,.woocommerce-page #comment:focus,.woocommerce #reviews #respond input#submit:focus,.woocommerce a.add_to_cart_button:focus,.woocommerce .button.single_add_to_cart_button:focus,.woocommerce .woocommerce-cart-form button:focus,.woocommerce .woocommerce-cart-form__cart-item .quantity .qty:focus,.woocommerce .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper .woocommerce-input-wrapper > .input-text:focus,.woocommerce #order_comments:focus,.woocommerce #place_order:focus,.woocommerce .woocommerce-address-fields .woocommerce-address-fields__field-wrapper .woocommerce-input-wrapper > .input-text:focus,.woocommerce .woocommerce-MyAccount-content form button:focus,.woocommerce .woocommerce-MyAccount-content .woocommerce-EditAccountForm .woocommerce-form-row .woocommerce-Input.input-text:focus,.woocommerce .ast-woocommerce-container .woocommerce-pagination ul.page-numbers li a:focus,body #content .woocommerce form .form-row .select2-container--default .select2-selection--single:focus,#ast-coupon-code:focus,.woocommerce.woocommerce-js .quantity input[type=number]:focus,.woocommerce-js .woocommerce-mini-cart-item .quantity input[type=number]:focus,.woocommerce p#ast-coupon-trigger:focus{border-style:dotted;border-color:inherit;border-width:thin;}input{outline:none;}.ast-logo-title-inline .site-logo-img{padding-right:1em;}.site-logo-img img{ transition:all 0.2s linear;}body .ast-oembed-container *{position:absolute;top:0;width:100%;height:100%;left:0;}body .wp-block-embed-pocket-casts .ast-oembed-container *{position:unset;}.ast-single-post-featured-section + article {margin-top: 2em;}.site-content .ast-single-post-featured-section img {width: 100%;overflow: hidden;object-fit: cover;}.site > .ast-single-related-posts-container {margin-top: 0;}@media (min-width: 922px) {.ast-desktop .ast-container--narrow {max-width: var(--ast-narrow-container-width);margin: 0 auto;}}#secondary {margin: 4em 0 2.5em;word-break: break-word;line-height: 2;}#secondary li {margin-bottom: 0.25em;}#secondary li:last-child {margin-bottom: 0;}@media (max-width: 768px) {.js_active .ast-plain-container.ast-single-post #secondary {margin-top: 1.5em;}}.ast-separate-container.ast-two-container #secondary .widget {background-color: #fff;padding: 2em;margin-bottom: 2em;}@media (min-width: 993px) {.ast-left-sidebar #secondary {padding-right: 60px;}.ast-right-sidebar #secondary {padding-left: 60px;}}@media (max-width: 993px) {.ast-right-sidebar #secondary {padding-left: 30px;}.ast-left-sidebar #secondary {padding-right: 30px;}}@media (max-width:921.9px){#ast-desktop-header{display:none;}}@media (min-width:922px){#ast-mobile-header{display:none;}}@media( max-width: 420px ) {.single .nav-links .nav-previous,.single .nav-links .nav-next {width: 100%;text-align: center;}}.wp-block-buttons.aligncenter{justify-content:center;}@media (max-width:921px){.ast-theme-transparent-header #primary,.ast-theme-transparent-header #secondary{padding:0;}}@media (max-width:921px){.ast-plain-container.ast-no-sidebar #primary{padding:0;}}.ast-plain-container.ast-no-sidebar #primary{margin-top:0;margin-bottom:0;}@media (min-width:1200px){.ast-separate-container.ast-right-sidebar .entry-content .wp-block-image.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-image.alignfull,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignfull{margin-left:-6.67em;margin-right:-6.67em;max-width:unset;width:unset;}.ast-separate-container.ast-right-sidebar .entry-content .wp-block-image.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-image.alignwide,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignwide{margin-left:-20px;margin-right:-20px;max-width:unset;width:unset;}}@media (min-width:1200px){.wp-block-group .has-background{padding:20px;}}@media (min-width:1200px){.ast-separate-container.ast-right-sidebar .entry-content .wp-block-group.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-group.alignwide,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignwide,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignwide{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;}.ast-separate-container.ast-right-sidebar .entry-content .wp-block-group.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-group.alignfull,.ast-separate-container.ast-right-sidebar .entry-content .wp-block-cover.alignfull,.ast-separate-container.ast-left-sidebar .entry-content .wp-block-cover.alignfull{margin-left:-6.67em;margin-right:-6.67em;padding-left:6.67em;padding-right:6.67em;}}@media (min-width:1200px){.wp-block-cover-image.alignwide .wp-block-cover__inner-container,.wp-block-cover.alignwide .wp-block-cover__inner-container,.wp-block-cover-image.alignfull .wp-block-cover__inner-container,.wp-block-cover.alignfull .wp-block-cover__inner-container{width:100%;}}.wp-block-columns{margin-bottom:unset;}.wp-block-image.size-full{margin:2rem 0;}.wp-block-separator.has-background{padding:0;}.wp-block-gallery{margin-bottom:1.6em;}.wp-block-group{padding-top:4em;padding-bottom:4em;}.wp-block-group__inner-container .wp-block-columns:last-child,.wp-block-group__inner-container :last-child,.wp-block-table table{margin-bottom:0;}.blocks-gallery-grid{width:100%;}.wp-block-navigation-link__content{padding:5px 0;}.wp-block-group .wp-block-group .has-text-align-center,.wp-block-group .wp-block-column .has-text-align-center{max-width:100%;}.has-text-align-center{margin:0 auto;}@media (min-width:1200px){.wp-block-cover__inner-container,.alignwide .wp-block-group__inner-container,.alignfull .wp-block-group__inner-container{max-width:1200px;margin:0 auto;}.wp-block-group.alignnone,.wp-block-group.aligncenter,.wp-block-group.alignleft,.wp-block-group.alignright,.wp-block-group.alignwide,.wp-block-columns.alignwide{margin:2rem 0 1rem 0;}}@media (max-width:1200px){.wp-block-group{padding:3em;}.wp-block-group .wp-block-group{padding:1.5em;}.wp-block-columns,.wp-block-column{margin:1rem 0;}}@media (min-width:921px){.wp-block-columns .wp-block-group{padding:2em;}}@media (max-width:544px){.wp-block-cover-image .wp-block-cover__inner-container,.wp-block-cover .wp-block-cover__inner-container{width:unset;}.wp-block-cover,.wp-block-cover-image{padding:2em 0;}.wp-block-group,.wp-block-cover{padding:2em;}.wp-block-media-text__media img,.wp-block-media-text__media video{width:unset;max-width:100%;}.wp-block-media-text.has-background .wp-block-media-text__content{padding:1em;}}.wp-block-image.aligncenter{margin-left:auto;margin-right:auto;}.wp-block-table.aligncenter{margin-left:auto;margin-right:auto;}@media (min-width:544px){.entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{padding:0 8% 0 0;}.entry-content .wp-block-media-text .wp-block-media-text__content{padding:0 0 0 8%;}.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-bottom-left > *,.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-bottom-right > *,.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-top-left > *,.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-top-right > *,.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-center-right > *,.ast-plain-container .site-content .entry-content .has-custom-content-position.is-position-center-left > *{margin:0;}}@media (max-width:544px){.entry-content .wp-block-media-text .wp-block-media-text__content{padding:8% 0;}.wp-block-media-text .wp-block-media-text__media img{width:auto;max-width:100%;}}.wp-block-button.is-style-outline .wp-block-button__link{border-color:rgba(0,0,0,0);}div.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),div.wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color){color:rgba(0,0,0,0);}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover,.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover{color:var(--ast-global-color-2);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);}.post-page-numbers.current .page-link,.ast-pagination .page-numbers.current{color:#ffffff;border-color:var(--ast-global-color-0);background-color:var(--ast-global-color-0);}@media (min-width:544px){.entry-content > .alignleft{margin-right:20px;}.entry-content > .alignright{margin-left:20px;}}.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button,.ast-outline-button{border-color:rgba(0,0,0,0);font-family:inherit;font-weight:inherit;font-size:16px;font-size:0.94117647058824rem;line-height:1em;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;}.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color),.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color),.ast-outline-button{color:rgba(0,0,0,0);}.wp-block-button.is-style-outline .wp-block-button__link:hover,.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus,.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover,.wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover,.ast-outline-button:hover,.ast-outline-button:focus,.wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover,.wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:focus{color:var(--ast-global-color-2);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);}.wp-block-button .wp-block-button__link.wp-element-button.is-style-outline:not(.has-background),.wp-block-button.is-style-outline>.wp-block-button__link.wp-element-button:not(.has-background),.ast-outline-button{background-color:rgba(0,0,0,0);}.entry-content[data-ast-blocks-layout] > figure{margin-bottom:1em;}@media (max-width:921px){.ast-separate-container #primary,.ast-separate-container #secondary{padding:1.5em 0;}#primary,#secondary{padding:1.5em 0;margin:0;}.ast-left-sidebar #content > .ast-container{display:flex;flex-direction:column-reverse;width:100%;}.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single{padding:1.5em 2.14em;}.ast-author-box img.avatar{margin:20px 0 0 0;}}@media (max-width:921px){#secondary.secondary{padding-top:0;}.ast-separate-container.ast-right-sidebar #secondary{padding-left:1em;padding-right:1em;}.ast-separate-container.ast-two-container #secondary{padding-left:0;padding-right:0;}.ast-page-builder-template .entry-header #secondary,.ast-page-builder-template #secondary{margin-top:1.5em;}}@media (max-width:921px){.ast-right-sidebar #primary{padding-right:0;}.ast-page-builder-template.ast-left-sidebar #secondary,.ast-page-builder-template.ast-right-sidebar #secondary{padding-right:20px;padding-left:20px;}.ast-right-sidebar #secondary,.ast-left-sidebar #primary{padding-left:0;}.ast-left-sidebar #secondary{padding-right:0;}}@media (min-width:922px){.ast-separate-container.ast-right-sidebar #primary,.ast-separate-container.ast-left-sidebar #primary{border:0;}.search-no-results.ast-separate-container #primary{margin-bottom:4em;}}@media (min-width:922px){.ast-right-sidebar #primary{border-right:1px solid var(--ast-border-color);}.ast-left-sidebar #primary{border-left:1px solid var(--ast-border-color);}.ast-right-sidebar #secondary{border-left:1px solid var(--ast-border-color);margin-left:-1px;}.ast-left-sidebar #secondary{border-right:1px solid var(--ast-border-color);margin-right:-1px;}.ast-separate-container.ast-two-container.ast-right-sidebar #secondary{padding-left:30px;padding-right:0;}.ast-separate-container.ast-two-container.ast-left-sidebar #secondary{padding-right:30px;padding-left:0;}.ast-separate-container.ast-right-sidebar #secondary,.ast-separate-container.ast-left-sidebar #secondary{border:0;margin-left:auto;margin-right:auto;}.ast-separate-container.ast-two-container #secondary .widget:last-child{margin-bottom:0;}}.wp-block-button .wp-block-button__link{color:var(--ast-global-color-0);}.wp-block-button .wp-block-button__link:hover,.wp-block-button .wp-block-button__link:focus{color:var(--ast-global-color-2);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);}.wp-block-button .wp-block-button__link{border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);color:var(--ast-global-color-0);font-family:inherit;font-weight:inherit;line-height:1em;text-transform:uppercase;letter-spacing:2px;font-size:16px;font-size:0.94117647058824rem;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.menu-toggle,button,.ast-button,.ast-custom-button,.button,input#submit,input[type="button"],input[type="submit"],input[type="reset"]{border-style:solid;border-top-width:0;border-right-width:0;border-left-width:0;border-bottom-width:0;color:var(--ast-global-color-0);border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:inherit;font-weight:inherit;font-size:16px;font-size:0.94117647058824rem;line-height:1em;text-transform:uppercase;letter-spacing:2px;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;}button:focus,.menu-toggle:hover,button:hover,.ast-button:hover,.ast-custom-button:hover .button:hover,.ast-custom-button:hover ,input[type=reset]:hover,input[type=reset]:focus,input#submit:hover,input#submit:focus,input[type="button"]:hover,input[type="button"]:focus,input[type="submit"]:hover,input[type="submit"]:focus{color:var(--ast-global-color-2);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);}@media (max-width:921px){.ast-mobile-header-stack .main-header-bar .ast-search-menu-icon{display:inline-block;}.ast-header-break-point.ast-header-custom-item-outside .ast-mobile-header-stack .main-header-bar .ast-search-icon{margin:0;}.ast-comment-avatar-wrap img{max-width:2.5em;}.ast-comment-meta{padding:0 1.8888em 1.3333em;}.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 2.14em;}.ast-separate-container .comment-respond{padding:2em 2.14em;}}@media (min-width:544px){.ast-container{max-width:100%;}}@media (max-width:544px){.ast-separate-container .ast-article-post,.ast-separate-container .ast-article-single,.ast-separate-container .comments-title,.ast-separate-container .ast-archive-description{padding:1.5em 1em;}.ast-separate-container #content .ast-container{padding-left:0.54em;padding-right:0.54em;}.ast-separate-container .ast-comment-list .bypostauthor{padding:.5em;}.ast-search-menu-icon.ast-dropdown-active .search-field{width:170px;}.ast-separate-container #secondary{padding-top:0;}.ast-separate-container.ast-two-container #secondary .widget{margin-bottom:1.5em;padding-left:1em;padding-right:1em;}} #ast-mobile-header .ast-site-header-cart-li a{pointer-events:none;}body,.ast-separate-container{background-image:linear-gradient(to right,var(--ast-global-color-4),var(--ast-global-color-4)),url(https://veselin.es/wp-content/uploads/2021/05/bg-lines-01-free-img.png);background-repeat:repeat-y;background-position:center top;background-size:auto;background-attachment:fixed;}.ast-no-sidebar.ast-separate-container .entry-content .alignfull {margin-left: -6.67em;margin-right: -6.67em;width: auto;}@media (max-width: 1200px) {.ast-no-sidebar.ast-separate-container .entry-content .alignfull {margin-left: -2.4em;margin-right: -2.4em;}}@media (max-width: 768px) {.ast-no-sidebar.ast-separate-container .entry-content .alignfull {margin-left: -2.14em;margin-right: -2.14em;}}@media (max-width: 544px) {.ast-no-sidebar.ast-separate-container .entry-content .alignfull {margin-left: -1em;margin-right: -1em;}}.ast-no-sidebar.ast-separate-container .entry-content .alignwide {margin-left: -20px;margin-right: -20px;}.ast-no-sidebar.ast-separate-container .entry-content .wp-block-column .alignfull,.ast-no-sidebar.ast-separate-container .entry-content .wp-block-column .alignwide {margin-left: auto;margin-right: auto;width: 100%;}@media (max-width:921px){.widget-title{font-size:24px;font-size:1.4117647058824rem;}body,button,input,select,textarea,.ast-button,.ast-custom-button{font-size:17px;font-size:1rem;}#secondary,#secondary button,#secondary input,#secondary select,#secondary textarea{font-size:17px;font-size:1rem;}.site-title{display:none;}.site-header .site-description{display:none;}h1,.entry-content h1{font-size:36px;}h2,.entry-content h2{font-size:30px;}h3,.entry-content h3{font-size:25px;}h4,.entry-content h4{font-size:20px;font-size:1.1764705882353rem;}h5,.entry-content h5{font-size:17px;font-size:1rem;}h6,.entry-content h6{font-size:15px;font-size:0.88235294117647rem;}}@media (max-width:544px){.widget-title{font-size:24px;font-size:1.4117647058824rem;}body,button,input,select,textarea,.ast-button,.ast-custom-button{font-size:17px;font-size:1rem;}#secondary,#secondary button,#secondary input,#secondary select,#secondary textarea{font-size:17px;font-size:1rem;}.site-title{display:none;}.site-header .site-description{display:none;}h1,.entry-content h1{font-size:32px;}h2,.entry-content h2{font-size:26px;}h3,.entry-content h3{font-size:22px;}h4,.entry-content h4{font-size:18px;font-size:1.0588235294118rem;}h5,.entry-content h5{font-size:15px;font-size:0.88235294117647rem;}h6,.entry-content h6{font-size:13px;font-size:0.76470588235294rem;}}@media (max-width:544px){html{font-size:106.25%;}}@media (min-width:922px){.ast-container{max-width:1240px;}}@media (min-width:922px){.site-content .ast-container{display:flex;}}@media (max-width:921px){.site-content .ast-container{flex-direction:column;}}@media (min-width:922px){.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu,.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu{margin-left:-0px;}}.site .comments-area{padding-bottom:3em;}blockquote {padding: 1.2em;}:root .has-ast-global-color-0-color{color:var(--ast-global-color-0);}:root .has-ast-global-color-0-background-color{background-color:var(--ast-global-color-0);}:root .wp-block-button .has-ast-global-color-0-color{color:var(--ast-global-color-0);}:root .wp-block-button .has-ast-global-color-0-background-color{background-color:var(--ast-global-color-0);}:root .has-ast-global-color-1-color{color:var(--ast-global-color-1);}:root .has-ast-global-color-1-background-color{background-color:var(--ast-global-color-1);}:root .wp-block-button .has-ast-global-color-1-color{color:var(--ast-global-color-1);}:root .wp-block-button .has-ast-global-color-1-background-color{background-color:var(--ast-global-color-1);}:root .has-ast-global-color-2-color{color:var(--ast-global-color-2);}:root .has-ast-global-color-2-background-color{background-color:var(--ast-global-color-2);}:root .wp-block-button .has-ast-global-color-2-color{color:var(--ast-global-color-2);}:root .wp-block-button .has-ast-global-color-2-background-color{background-color:var(--ast-global-color-2);}:root .has-ast-global-color-3-color{color:var(--ast-global-color-3);}:root .has-ast-global-color-3-background-color{background-color:var(--ast-global-color-3);}:root .wp-block-button .has-ast-global-color-3-color{color:var(--ast-global-color-3);}:root .wp-block-button .has-ast-global-color-3-background-color{background-color:var(--ast-global-color-3);}:root .has-ast-global-color-4-color{color:var(--ast-global-color-4);}:root .has-ast-global-color-4-background-color{background-color:var(--ast-global-color-4);}:root .wp-block-button .has-ast-global-color-4-color{color:var(--ast-global-color-4);}:root .wp-block-button .has-ast-global-color-4-background-color{background-color:var(--ast-global-color-4);}:root .has-ast-global-color-5-color{color:var(--ast-global-color-5);}:root .has-ast-global-color-5-background-color{background-color:var(--ast-global-color-5);}:root .wp-block-button .has-ast-global-color-5-color{color:var(--ast-global-color-5);}:root .wp-block-button .has-ast-global-color-5-background-color{background-color:var(--ast-global-color-5);}:root .has-ast-global-color-6-color{color:var(--ast-global-color-6);}:root .has-ast-global-color-6-background-color{background-color:var(--ast-global-color-6);}:root .wp-block-button .has-ast-global-color-6-color{color:var(--ast-global-color-6);}:root .wp-block-button .has-ast-global-color-6-background-color{background-color:var(--ast-global-color-6);}:root .has-ast-global-color-7-color{color:var(--ast-global-color-7);}:root .has-ast-global-color-7-background-color{background-color:var(--ast-global-color-7);}:root .wp-block-button .has-ast-global-color-7-color{color:var(--ast-global-color-7);}:root .wp-block-button .has-ast-global-color-7-background-color{background-color:var(--ast-global-color-7);}:root .has-ast-global-color-8-color{color:var(--ast-global-color-8);}:root .has-ast-global-color-8-background-color{background-color:var(--ast-global-color-8);}:root .wp-block-button .has-ast-global-color-8-color{color:var(--ast-global-color-8);}:root .wp-block-button .has-ast-global-color-8-background-color{background-color:var(--ast-global-color-8);}:root{--ast-global-color-0:#0274be;--ast-global-color-1:#3a3a3a;--ast-global-color-2:#3a3a3a;--ast-global-color-3:#4B4F58;--ast-global-color-4:#ffffff;--ast-global-color-5:#f9f9f9;--ast-global-color-6:#F2F5F7;--ast-global-color-7:#424242;--ast-global-color-8:#000000;}:root {--ast-border-color : #dddddd;}.ast-single-entry-banner {-js-display: flex;display: flex;flex-direction: column;justify-content: center;text-align: center;position: relative;background: var(--ast-title-layout-bg);}.ast-single-entry-banner[data-banner-layout="layout-1"] {max-width: 1200px;background: inherit;padding: 20px 0;}.ast-single-entry-banner[data-banner-width-type="custom"] {margin: 0 auto;width: 100%;}.ast-single-entry-banner + .site-content .entry-header {margin-bottom: 0;}.site .ast-author-avatar {--ast-author-avatar-size: ;}a.ast-underline-text {text-decoration: underline;}.ast-container > .ast-terms-link {position: relative;display: block;}a.ast-button.ast-badge-tax {padding: 4px 8px;border-radius: 3px;font-size: inherit;}header.entry-header:not(.related-entry-header) .entry-title{font-size:30px;font-size:1.7647058823529rem;}header.entry-header:not(.related-entry-header) > *:not(:last-child){margin-bottom:10px;}.ast-archive-entry-banner {-js-display: flex;display: flex;flex-direction: column;justify-content: center;text-align: center;position: relative;background: var(--ast-title-layout-bg);}.ast-archive-entry-banner[data-banner-width-type="custom"] {margin: 0 auto;width: 100%;}.ast-archive-entry-banner[data-banner-layout="layout-1"] {background: inherit;padding: 20px 0;text-align: left;}body.archive .ast-archive-description{max-width:1200px;width:100%;text-align:left;padding-top:3em;padding-right:3em;padding-bottom:3em;padding-left:3em;}body.archive .ast-archive-description .ast-archive-title,body.archive .ast-archive-description .ast-archive-title *{font-size:40px;font-size:2.3529411764706rem;text-transform:capitalize;}body.archive .ast-archive-description > *:not(:last-child){margin-bottom:10px;}@media (max-width:921px){body.archive .ast-archive-description{text-align:left;}}@media (max-width:544px){body.archive .ast-archive-description{text-align:left;}}.ast-breadcrumbs .trail-browse,.ast-breadcrumbs .trail-items,.ast-breadcrumbs .trail-items li{display:inline-block;margin:0;padding:0;border:none;background:inherit;text-indent:0;text-decoration:none;}.ast-breadcrumbs .trail-browse{font-size:inherit;font-style:inherit;font-weight:inherit;color:inherit;}.ast-breadcrumbs .trail-items{list-style:none;}.trail-items li::after{padding:0 0.3em;content:"\00bb";}.trail-items li:last-of-type::after{display:none;}h1,.entry-content h1,h2,.entry-content h2,h3,.entry-content h3,h4,.entry-content h4,h5,.entry-content h5,h6,.entry-content h6{color:var(--ast-global-color-2);}@media (max-width:921px){.ast-builder-grid-row-container.ast-builder-grid-row-tablet-3-firstrow .ast-builder-grid-row > *:first-child,.ast-builder-grid-row-container.ast-builder-grid-row-tablet-3-lastrow .ast-builder-grid-row > *:last-child{grid-column:1 / -1;}}@media (max-width:544px){.ast-builder-grid-row-container.ast-builder-grid-row-mobile-3-firstrow .ast-builder-grid-row > *:first-child,.ast-builder-grid-row-container.ast-builder-grid-row-mobile-3-lastrow .ast-builder-grid-row > *:last-child{grid-column:1 / -1;}}.ast-builder-layout-element[data-section="title_tagline"]{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-builder-layout-element[data-section="title_tagline"]{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-builder-layout-element[data-section="title_tagline"]{display:flex;}}.ast-builder-menu-1{font-family:inherit;font-weight:inherit;text-transform:uppercase;}.ast-builder-menu-1 .menu-item > .menu-link{color:var(--ast-global-color-2);}.ast-builder-menu-1 .menu-item > .ast-menu-toggle{color:var(--ast-global-color-2);}.ast-builder-menu-1 .menu-item:hover > .menu-link,.ast-builder-menu-1 .inline-on-mobile .menu-item:hover > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-1 .menu-item:hover > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,.ast-builder-menu-1 .inline-on-mobile .menu-item.current-menu-item > .ast-menu-toggle,.ast-builder-menu-1 .current-menu-ancestor > .menu-link{color:var(--ast-global-color-1);}.ast-builder-menu-1 .menu-item.current-menu-item > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-1 .sub-menu,.ast-builder-menu-1 .inline-on-mobile .sub-menu{border-top-width:2px;border-bottom-width:0px;border-right-width:0px;border-left-width:0px;border-color:var(--ast-global-color-0);border-style:solid;}.ast-builder-menu-1 .sub-menu .sub-menu{top:-2px;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0px;}.ast-desktop .ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu:before,.ast-desktop .ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper:before{height:calc( 0px + 2px + 5px );}.ast-desktop .ast-builder-menu-1 .menu-item .sub-menu .menu-link{border-style:none;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-1 .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-1 .inline-on-mobile .menu-item.menu-item-has-children > .ast-menu-toggle{right:-15px;}.ast-builder-menu-1 .menu-item-has-children > .menu-link:after{content:unset;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-1 .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-1 .main-header-menu > .menu-item > .sub-menu,.ast-builder-menu-1 .main-header-menu > .menu-item > .astra-full-megamenu-wrapper{margin-top:0;}}.ast-builder-menu-1{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-1{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-1{display:flex;}}.ast-desktop .ast-menu-hover-style-underline > .menu-item > .menu-link:before,.ast-desktop .ast-menu-hover-style-overline > .menu-item > .menu-link:before {content: "";position: absolute;width: 100%;right: 50%;height: 1px;background-color: transparent;transform: scale(0,0) translate(-50%,0);transition: transform .3s ease-in-out,color .0s ease-in-out;}.ast-desktop .ast-menu-hover-style-underline > .menu-item:hover > .menu-link:before,.ast-desktop .ast-menu-hover-style-overline > .menu-item:hover > .menu-link:before {width: calc(100% - 1.2em);background-color: currentColor;transform: scale(1,1) translate(50%,0);}.ast-desktop .ast-menu-hover-style-underline > .menu-item > .menu-link:before {bottom: 0;}.ast-desktop .ast-menu-hover-style-overline > .menu-item > .menu-link:before {top: 0;}.ast-desktop .ast-menu-hover-style-zoom > .menu-item > .menu-link:hover {transition: all .3s ease;transform: scale(1.2);}.site-below-footer-wrap{padding-top:20px;padding-bottom:20px;}.site-below-footer-wrap[data-section="section-below-footer-builder"]{background-color:rgba(237,237,237,0);background-image:none;min-height:80px;border-style:solid;border-width:0px;border-top-width:1px;border-top-color:rgba(8,63,135,0.15);}.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row{max-width:1200px;min-height:80px;margin-left:auto;margin-right:auto;}.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row,.site-below-footer-wrap[data-section="section-below-footer-builder"] .site-footer-section{align-items:flex-start;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-inline .site-footer-section{display:flex;margin-bottom:0;}.ast-builder-grid-row-full .ast-builder-grid-row{grid-template-columns:1fr;}@media (max-width:921px){.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-tablet-inline .site-footer-section{display:flex;margin-bottom:0;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-tablet-stack .site-footer-section{display:block;margin-bottom:10px;}.ast-builder-grid-row-container.ast-builder-grid-row-tablet-full .ast-builder-grid-row{grid-template-columns:1fr;}}@media (max-width:544px){.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-mobile-inline .site-footer-section{display:flex;margin-bottom:0;}.site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-mobile-stack .site-footer-section{display:block;margin-bottom:10px;}.ast-builder-grid-row-container.ast-builder-grid-row-mobile-full .ast-builder-grid-row{grid-template-columns:1fr;}}.site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}@media (max-width:921px){.ast-header-break-point .site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}}@media (max-width:544px){.ast-header-break-point .site-below-footer-wrap[data-section="section-below-footer-builder"]{display:grid;}}.ast-footer-copyright{text-align:center;}.ast-footer-copyright {color:var(--ast-global-color-3);}@media (max-width:921px){.ast-footer-copyright{text-align:center;}}@media (max-width:544px){.ast-footer-copyright{text-align:center;}}.ast-footer-copyright.ast-builder-layout-element{display:flex;}@media (max-width:921px){.ast-header-break-point .ast-footer-copyright.ast-builder-layout-element{display:flex;}}@media (max-width:544px){.ast-header-break-point .ast-footer-copyright.ast-builder-layout-element{display:flex;}}.site-footer{background-color:var(--ast-global-color-5);background-image:none;}.ast-header-break-point .main-header-bar{border-bottom-width:1px;}@media (min-width:922px){.main-header-bar{border-bottom-width:1px;}}@media (min-width:922px){#primary{width:71%;}#secondary{width:29%;}}.main-header-menu .menu-item, #astra-footer-menu .menu-item, .main-header-bar .ast-masthead-custom-menu-items{-js-display:flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;}.main-header-menu > .menu-item > .menu-link, #astra-footer-menu > .menu-item > .menu-link{height:100%;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-js-display:flex;display:flex;}.ast-header-break-point .main-navigation ul .menu-item .menu-link .icon-arrow:first-of-type svg{top:.2em;margin-top:0px;margin-left:0px;width:.65em;transform:translate(0, -2px) rotateZ(270deg);}.ast-mobile-popup-content .ast-submenu-expanded > .ast-menu-toggle{transform:rotateX(180deg);overflow-y:auto;}@media (min-width:922px){.ast-builder-menu .main-navigation > ul > li:last-child a{margin-right:0;}}.ast-separate-container .ast-article-inner{background-color:transparent;background-image:none;}.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);background-image:none;}@media (max-width:921px){.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);background-image:none;}}@media (max-width:544px){.ast-separate-container .ast-article-post{background-color:var(--ast-global-color-5);background-image:none;}}.ast-separate-container .ast-article-single:not(.ast-related-post), .woocommerce.ast-separate-container .ast-woocommerce-container, .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .ast-author-meta, .ast-separate-container .related-posts-title-wrapper,.ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content,.ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description, .ast-separate-container .comments-area .comment-respond, .ast-separate-container .comments-area .ast-comment-list li, .ast-separate-container .comments-area .comments-title{background-color:var(--ast-global-color-5);background-image:none;}@media (max-width:921px){.ast-separate-container .ast-article-single:not(.ast-related-post), .woocommerce.ast-separate-container .ast-woocommerce-container, .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .ast-author-meta, .ast-separate-container .related-posts-title-wrapper,.ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content,.ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description{background-color:var(--ast-global-color-5);background-image:none;}}@media (max-width:544px){.ast-separate-container .ast-article-single:not(.ast-related-post), .woocommerce.ast-separate-container .ast-woocommerce-container, .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .ast-author-meta, .ast-separate-container .related-posts-title-wrapper,.ast-separate-container .comments-count-wrapper, .ast-box-layout.ast-plain-container .site-content,.ast-padded-layout.ast-plain-container .site-content, .ast-separate-container .ast-archive-description{background-color:var(--ast-global-color-5);background-image:none;}}.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);background-image:none;}@media (max-width:921px){.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);background-image:none;}}@media (max-width:544px){.ast-separate-container.ast-two-container #secondary .widget{background-color:var(--ast-global-color-5);background-image:none;}}
|
|
.ast-related-post-title, .entry-meta * {
|
|
word-break: break-word;
|
|
}
|
|
.ast-related-post-cta.read-more .ast-related-post-link {
|
|
text-decoration: none;
|
|
}
|
|
.ast-page-builder-template .ast-related-post .entry-header, .ast-related-post-content .entry-header, .ast-related-post-content .entry-meta {
|
|
margin: 1em auto 1em auto;
|
|
padding: 0;
|
|
}
|
|
.ast-related-posts-wrapper {
|
|
display: grid;
|
|
grid-column-gap: 25px;
|
|
grid-row-gap: 25px;
|
|
}
|
|
.ast-related-posts-wrapper .ast-related-post, .ast-related-post-featured-section {
|
|
padding: 0;
|
|
margin: 0;
|
|
width: 100%;
|
|
position: relative;
|
|
}
|
|
.ast-related-posts-inner-section {
|
|
height: 100%;
|
|
}
|
|
.post-has-thumb + .entry-header, .post-has-thumb + .entry-content {
|
|
margin-top: 1em;
|
|
}
|
|
.ast-related-post-content .entry-meta {
|
|
margin-top: 0.5em;
|
|
}
|
|
.ast-related-posts-inner-section .post-thumb-img-content {
|
|
margin: 0;
|
|
position: relative;
|
|
}
|
|
|
|
.ast-separate-container .ast-related-posts-title {
|
|
margin: 0 0 20px 0;
|
|
}
|
|
.ast-related-posts-title-section {
|
|
border-top: 1px solid #eeeeee;
|
|
}
|
|
.ast-related-posts-title {
|
|
margin: 20px 0;
|
|
}
|
|
.ast-page-builder-template .ast-related-posts-title-section, .ast-page-builder-template .ast-single-related-posts-container {
|
|
padding: 0 20px;
|
|
}
|
|
.ast-separate-container .ast-single-related-posts-container {
|
|
padding: 5.34em 6.67em;
|
|
}
|
|
.ast-single-related-posts-container {
|
|
margin: 2em 0;
|
|
}
|
|
.ast-separate-container .ast-related-posts-title-section, .ast-page-builder-template .ast-single-related-posts-container {
|
|
border-top: 0;
|
|
margin-top: 0;
|
|
}
|
|
@media (max-width: 1200px) {
|
|
.ast-separate-container .ast-single-related-posts-container {
|
|
padding: 3.34em 2.4em;
|
|
}
|
|
}
|
|
.ast-single-related-posts-container .ast-related-posts-wrapper{grid-template-columns:repeat( 3, 1fr );}.ast-related-posts-inner-section .ast-date-meta .posted-on, .ast-related-posts-inner-section .ast-date-meta .posted-on *{background:#021ebf;color:#ffffff;}.ast-related-posts-inner-section .ast-date-meta .posted-on .date-month, .ast-related-posts-inner-section .ast-date-meta .posted-on .date-year{color:#ffffff;}.ast-single-related-posts-container{background-color:var(--ast-global-color-5);}.ast-related-posts-title{font-size:30px;font-size:1.7647058823529rem;}.ast-related-posts-title-section .ast-related-posts-title{text-align:center;}.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a{font-size:20px;font-size:1.1764705882353rem;line-height:1em;}.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *{font-size:14px;font-size:0.82352941176471rem;}.ast-related-cat-style--badge .cat-links > a, .ast-related-tag-style--badge .tags-links > a{border-style:solid;border-top-width:0;border-right-width:0;border-left-width:0;border-bottom-width:0;padding:4px 8px;border-radius:3px;font-size:inherit;color:var(--ast-global-color-0);border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);}.ast-related-cat-style--badge .cat-links > a:hover, .ast-related-tag-style--badge .tags-links > a:hover{color:var(--ast-global-color-2);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);}.ast-related-cat-style--underline .cat-links > a, .ast-related-tag-style--underline .tags-links > a{text-decoration:underline;}@media (max-width:921px){.ast-single-related-posts-container .ast-related-posts-wrapper .ast-related-post{width:100%;}.ast-single-related-posts-container .ast-related-posts-wrapper{grid-template-columns:repeat( 2, 1fr );}}@media (max-width:544px){.ast-single-related-posts-container .ast-related-posts-wrapper{grid-template-columns:1fr;}}.site .ast-single-related-posts-container{padding-top:2.5em;padding-bottom:2.5em;padding-left:2.5em;padding-right:2.5em;margin-top:2em;}.ast-mobile-header-content > *,.ast-desktop-header-content > * {padding: 10px 0;height: auto;}.ast-mobile-header-content > *:first-child,.ast-desktop-header-content > *:first-child {padding-top: 10px;}.ast-mobile-header-content > .ast-builder-menu,.ast-desktop-header-content > .ast-builder-menu {padding-top: 0;}.ast-mobile-header-content > *:last-child,.ast-desktop-header-content > *:last-child {padding-bottom: 0;}.ast-mobile-header-content .ast-search-menu-icon.ast-inline-search label,.ast-desktop-header-content .ast-search-menu-icon.ast-inline-search label {width: 100%;}.ast-desktop-header-content .main-header-bar-navigation .ast-submenu-expanded > .ast-menu-toggle::before {transform: rotateX(180deg);}#ast-desktop-header .ast-desktop-header-content,.ast-mobile-header-content .ast-search-icon,.ast-desktop-header-content .ast-search-icon,.ast-mobile-header-wrap .ast-mobile-header-content,.ast-main-header-nav-open.ast-popup-nav-open .ast-mobile-header-wrap .ast-mobile-header-content,.ast-main-header-nav-open.ast-popup-nav-open .ast-desktop-header-content {display: none;}.ast-main-header-nav-open.ast-header-break-point #ast-desktop-header .ast-desktop-header-content,.ast-main-header-nav-open.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content {display: block;}.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-up > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-up > .menu-item .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-down > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-slide-down > .menu-item .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-fade > .menu-item > .sub-menu,.ast-desktop .ast-desktop-header-content .astra-menu-animation-fade > .menu-item .menu-item > .sub-menu {opacity: 1;visibility: visible;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation {width: unset;margin: unset;}.ast-mobile-header-content.content-align-flex-end .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle,.ast-desktop-header-content.content-align-flex-end .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle {left: calc( 20px - 0.907em);right: auto;}.ast-mobile-header-content .ast-search-menu-icon,.ast-mobile-header-content .ast-search-menu-icon.slide-search,.ast-desktop-header-content .ast-search-menu-icon,.ast-desktop-header-content .ast-search-menu-icon.slide-search {width: 100%;position: relative;display: block;right: auto;transform: none;}.ast-mobile-header-content .ast-search-menu-icon.slide-search .search-form,.ast-mobile-header-content .ast-search-menu-icon .search-form,.ast-desktop-header-content .ast-search-menu-icon.slide-search .search-form,.ast-desktop-header-content .ast-search-menu-icon .search-form {right: 0;visibility: visible;opacity: 1;position: relative;top: auto;transform: none;padding: 0;display: block;overflow: hidden;}.ast-mobile-header-content .ast-search-menu-icon.ast-inline-search .search-field,.ast-mobile-header-content .ast-search-menu-icon .search-field,.ast-desktop-header-content .ast-search-menu-icon.ast-inline-search .search-field,.ast-desktop-header-content .ast-search-menu-icon .search-field {width: 100%;padding-right: 5.5em;}.ast-mobile-header-content .ast-search-menu-icon .search-submit,.ast-desktop-header-content .ast-search-menu-icon .search-submit {display: block;position: absolute;height: 100%;top: 0;right: 0;padding: 0 1em;border-radius: 0;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation ul .sub-menu .menu-link {padding-left: 30px;}.ast-hfb-header.ast-default-menu-enable.ast-header-break-point .ast-mobile-header-wrap .ast-mobile-header-content .main-header-bar-navigation .sub-menu .menu-item .menu-item .menu-link {padding-left: 40px;}.ast-mobile-popup-drawer.active .ast-mobile-popup-inner{background-color:#ffffff;;}.ast-mobile-header-wrap .ast-mobile-header-content, .ast-desktop-header-content{background-color:#ffffff;;}.ast-mobile-popup-content > *, .ast-mobile-header-content > *, .ast-desktop-popup-content > *, .ast-desktop-header-content > *{padding-top:0px;padding-bottom:0px;}.content-align-flex-start .ast-builder-layout-element{justify-content:flex-start;}.content-align-flex-start .main-header-menu{text-align:left;}.ast-mobile-popup-drawer.active .menu-toggle-close{color:#3a3a3a;}.ast-mobile-header-wrap .ast-primary-header-bar,.ast-primary-header-bar .site-primary-header-wrap{min-height:70px;}.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item{line-height:70px;}.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-primary-header-bar,.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-below-header-bar,.ast-header-break-point #masthead .ast-mobile-header-wrap .ast-above-header-bar{padding-left:20px;padding-right:20px;}.ast-header-break-point .ast-primary-header-bar{border-bottom-width:0px;border-bottom-color:#eaeaea;border-bottom-style:solid;}@media (min-width:922px){.ast-primary-header-bar{border-bottom-width:0px;border-bottom-color:#eaeaea;border-bottom-style:solid;}}.ast-primary-header-bar{background-color:var(--ast-global-color-5);background-image:none;}.ast-primary-header-bar{display:block;}@media (max-width:921px){.ast-header-break-point .ast-primary-header-bar{display:grid;}}@media (max-width:544px){.ast-header-break-point .ast-primary-header-bar{display:grid;}}[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal{color:var(--ast-global-color-0);border:none;background:transparent;}[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg{width:20px;height:20px;fill:var(--ast-global-color-0);}[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-wrap .mobile-menu{color:var(--ast-global-color-0);}.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}.ast-builder-menu-mobile .main-navigation .menu-item-has-children > .menu-link:after{content:unset;}.ast-hfb-header .ast-builder-menu-mobile .main-navigation .main-header-menu, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .main-header-menu, .ast-hfb-header .ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .main-header-menu, .ast-hfb-header .ast-mobile-popup-content .ast-builder-menu-mobile .main-navigation .main-header-menu{border-top-width:1px;border-color:#eaeaea;}.ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .sub-menu .menu-link, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .menu-link, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .sub-menu .menu-link, .ast-hfb-header .ast-builder-menu-mobile .main-navigation .menu-item .menu-link, .ast-hfb-header .ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .menu-item .sub-menu .menu-link, .ast-hfb-header .ast-mobile-header-content .ast-builder-menu-mobile .main-navigation .menu-item .menu-link, .ast-hfb-header .ast-mobile-popup-content .ast-builder-menu-mobile .main-navigation .menu-item .sub-menu .menu-link, .ast-hfb-header .ast-mobile-popup-content .ast-builder-menu-mobile .main-navigation .menu-item .menu-link{border-bottom-width:1px;border-color:#eaeaea;border-style:solid;}.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:0;}@media (max-width:921px){.ast-builder-menu-mobile .main-navigation{font-size:18px;font-size:1.0588235294118rem;}.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .menu-link{color:var(--ast-global-color-2);padding-top:2px;padding-bottom:2px;padding-left:25px;padding-right:25px;}.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .ast-menu-toggle{color:var(--ast-global-color-2);}.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item:hover > .menu-link, .ast-builder-menu-mobile .main-navigation .inline-on-mobile .menu-item:hover > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-mobile .main-navigation .menu-item:hover > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .menu-link, .ast-builder-menu-mobile .main-navigation .inline-on-mobile .menu-item.current-menu-item > .ast-menu-toggle, .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .menu-link, .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .ast-menu-toggle{color:var(--ast-global-color-1);}.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:2px;right:calc( 25px - 0.907em );}.ast-builder-menu-mobile .main-navigation .menu-item-has-children > .menu-link:after{content:unset;}.ast-builder-menu-mobile .main-navigation .main-header-menu , .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link, .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu{background-color:var(--ast-global-color-5);background-image:none;}}@media (max-width:544px){.ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle{top:2px;}}.ast-builder-menu-mobile .main-navigation{display:block;}@media (max-width:921px){.ast-header-break-point .ast-builder-menu-mobile .main-navigation{display:block;}}@media (max-width:544px){.ast-header-break-point .ast-builder-menu-mobile .main-navigation{display:block;}}.comment-reply-title{font-size:28px;font-size:1.6470588235294rem;}.ast-comment-meta{line-height:1.666666667;color:#021ebf;font-size:14px;font-size:0.82352941176471rem;}.ast-comment-list #cancel-comment-reply-link{font-size:17px;font-size:1rem;}.comments-title {padding: 2em 0;}.comments-title {word-wrap: break-word;font-weight: normal;}.ast-comment-list {margin: 0;word-wrap: break-word;padding-bottom: 0.5em;list-style: none;}.ast-comment-list li {list-style: none;}.ast-comment-list .ast-comment-edit-reply-wrap {-js-display: flex;display: flex;justify-content: flex-end;}.ast-comment-list .comment-awaiting-moderation {margin-bottom: 0;}.ast-comment {padding: 1em 0 ;}.ast-comment-info img {border-radius: 50%;}.ast-comment-cite-wrap cite {font-style: normal;}.comment-reply-title {font-weight: normal;line-height: 1.65;}.ast-comment-meta {margin-bottom: 0.5em;}.comments-area .comment-form-comment {width: 100%;border: none;margin: 0;padding: 0;}.comments-area .comment-notes,.comments-area .comment-textarea,.comments-area .form-allowed-tags {margin-bottom: 1.5em;}.comments-area .form-submit {margin-bottom: 0;}.comments-area textarea#comment,.comments-area .ast-comment-formwrap input[type="text"] {width: 100%;border-radius: 0;vertical-align: middle;margin-bottom: 10px;}.comments-area .no-comments {margin-top: 0.5em;margin-bottom: 0.5em;}.comments-area p.logged-in-as {margin-bottom: 1em;}.ast-separate-container .ast-comment-list {padding-bottom: 0;}.ast-separate-container .ast-comment-list li.depth-1 .children li,.ast-narrow-container .ast-comment-list li.depth-1 .children li {padding-bottom: 0;padding-top: 0;margin-bottom: 0;}.ast-separate-container .ast-comment-list .comment-respond {padding-top: 0;padding-bottom: 1em;background-color: transparent;}.ast-comment-list .comment .comment-respond {padding-bottom: 2em;border-bottom: none;}.ast-separate-container .ast-comment-list .bypostauthor,.ast-narrow-container .ast-comment-list .bypostauthor {padding: 2em;margin-bottom: 1em;}.ast-separate-container .ast-comment-list .bypostauthor li,.ast-narrow-container .ast-comment-list .bypostauthor li {background: transparent;margin-bottom: 0;padding: 0 0 0 2em;}.comment-content a {word-wrap: break-word;}.comment-form-legend {margin-bottom: unset;padding: 0 0.5em;}.ast-separate-container .ast-comment-list .pingback p {margin-bottom: 0;}.ast-separate-container .ast-comment-list li.depth-1,.ast-narrow-container .ast-comment-list li.depth-1 {padding: 3em;}.ast-comment-list > .comment:last-child .ast-comment {border: none;}.ast-separate-container .ast-comment-list .comment .comment-respond,.ast-narrow-container .ast-comment-list .comment .comment-respond {padding-bottom: 0;}.ast-separate-container .comment .comment-respond {margin-top: 2em;}.ast-separate-container .ast-comment-list li.depth-1 .ast-comment,.ast-separate-container .ast-comment-list li.depth-2 .ast-comment {border-bottom: 0;}.ast-separate-container .ast-comment-list li.depth-1 {padding: 4em 6.67em;margin-bottom: 2em;}@media (max-width: 1200px) {.ast-separate-container .ast-comment-list li.depth-1 {padding: 3em 3.34em;}}.ast-separate-container .comment-respond {background-color: #fff;padding: 4em 6.67em;border-bottom: 0;}@media (max-width: 1200px) {.ast-separate-container .comment-respond {padding: 3em 2.34em;}}.ast-separate-container .comments-title {background-color: #fff;padding: 1.2em 3.99em 0;}.ast-comment-list .children {margin-left: 2em;}@media (max-width: 992px) {.ast-comment-list .children {margin-left: 1em;}}.ast-comment-list #cancel-comment-reply-link {white-space: nowrap;font-size: 13px;font-weight: normal;margin-left: 1em;}.ast-comment-info {display: flex;position: relative;}.ast-comment-meta {justify-content: right;padding: 0 3.4em 1.60em;}.comments-area #wp-comment-cookies-consent {margin-right: 10px;}.ast-page-builder-template .comments-area {padding-left: 20px;padding-right: 20px;margin-top: 0;margin-bottom: 2em;}.ast-separate-container .ast-comment-list .bypostauthor .bypostauthor {background: transparent;margin-bottom: 0;padding-right: 0;padding-bottom: 0;padding-top: 0;}@media (min-width:922px){.ast-separate-container .ast-comment-list li .comment-respond{padding-left:2.66666em;padding-right:2.66666em;}}@media (max-width:544px){.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 1em;margin-bottom:1.5em;}.ast-separate-container .ast-comment-list .bypostauthor{padding:.5em;}.ast-separate-container .comment-respond{padding:1.5em 1em;}.ast-comment-meta{font-size:14px;font-size:0.82352941176471rem;}.comment-reply-title{font-size:28px;font-size:1.6470588235294rem;}.ast-comment-list #cancel-comment-reply-link{font-size:17px;font-size:1rem;}.ast-separate-container .ast-comment-list .bypostauthor li{padding:0 0 0 .5em;}.ast-comment-list .children{margin-left:0.66666em;}}
|
|
.ast-comment-time .timendate{
|
|
margin-right: 0.5em;
|
|
}
|
|
.ast-separate-container .comment-reply-title {
|
|
padding-top: 0;
|
|
}
|
|
.ast-comment-list .ast-edit-link {
|
|
flex: 1;
|
|
}
|
|
.comments-area {
|
|
border-top: 1px solid var(--ast-global-color-subtle-background, var(--ast-global-color-6));
|
|
margin-top: 2em;
|
|
}
|
|
.ast-separate-container .comments-area {
|
|
border-top: 0;
|
|
}
|
|
@media (max-width:921px){.ast-comment-avatar-wrap img{max-width:2.5em;}.comments-area{margin-top:1.5em;}.ast-comment-meta{padding:0 1.8888em 1.3333em;}.ast-separate-container .ast-comment-list li.depth-1{padding:1.5em 2.14em;}.ast-separate-container .comment-respond{padding:2em 2.14em;}.comment-reply-title{font-size:28px;font-size:1.6470588235294rem;}.ast-comment-list #cancel-comment-reply-link{font-size:17px;font-size:1rem;}.ast-separate-container .comments-title{padding:1.43em 1.48em;}.ast-comment-avatar-wrap{margin-right:0.5em;}}</style><link rel='stylesheet' id='astra-google-fonts-css' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro%3A400%7CMontserrat%3A500%2C700&display=fallback&ver=4.11.3' media='all' /><link data-optimized="1" rel='stylesheet' id='wp-block-library-css' href='https://veselin.es/wp-content/litespeed/css/cbfd5967f7ab00ac8306a33bb7d71589.css?ver=71589' media='all' /><style id='global-styles-inline-css'>:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--ast-global-color-0: var(--ast-global-color-0);--wp--preset--color--ast-global-color-1: var(--ast-global-color-1);--wp--preset--color--ast-global-color-2: var(--ast-global-color-2);--wp--preset--color--ast-global-color-3: var(--ast-global-color-3);--wp--preset--color--ast-global-color-4: var(--ast-global-color-4);--wp--preset--color--ast-global-color-5: var(--ast-global-color-5);--wp--preset--color--ast-global-color-6: var(--ast-global-color-6);--wp--preset--color--ast-global-color-7: var(--ast-global-color-7);--wp--preset--color--ast-global-color-8: var(--ast-global-color-8);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: var(--wp--custom--ast-content-width-size);--wp--style--global--wide-size: var(--wp--custom--ast-wide-width-size); }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: none;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-color{color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-color{color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-color{color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-color{color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-color{color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-color{color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-color{color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-color{color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-color{color: var(--wp--preset--color--ast-global-color-8) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-background-color{background-color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-background-color{background-color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-background-color{background-color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-background-color{background-color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-background-color{background-color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-background-color{background-color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-background-color{background-color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-background-color{background-color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-background-color{background-color: var(--wp--preset--color--ast-global-color-8) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-ast-global-color-0-border-color{border-color: var(--wp--preset--color--ast-global-color-0) !important;}.has-ast-global-color-1-border-color{border-color: var(--wp--preset--color--ast-global-color-1) !important;}.has-ast-global-color-2-border-color{border-color: var(--wp--preset--color--ast-global-color-2) !important;}.has-ast-global-color-3-border-color{border-color: var(--wp--preset--color--ast-global-color-3) !important;}.has-ast-global-color-4-border-color{border-color: var(--wp--preset--color--ast-global-color-4) !important;}.has-ast-global-color-5-border-color{border-color: var(--wp--preset--color--ast-global-color-5) !important;}.has-ast-global-color-6-border-color{border-color: var(--wp--preset--color--ast-global-color-6) !important;}.has-ast-global-color-7-border-color{border-color: var(--wp--preset--color--ast-global-color-7) !important;}.has-ast-global-color-8-border-color{border-color: var(--wp--preset--color--ast-global-color-8) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
|
|
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}</style><link data-optimized="1" rel='stylesheet' id='contact-form-7-css' href='https://veselin.es/wp-content/litespeed/css/93c23d1ee8ed5354455a06ac160b0982.css?ver=b0982' media='all' /><link data-optimized="1" rel='stylesheet' id='astra-contact-form-7-css' href='https://veselin.es/wp-content/litespeed/css/b242296fb0b2dcc9a13e607338da8930.css?ver=a8930' media='all' /><link data-optimized="1" rel='stylesheet' id='heateor_sss_frontend_css-css' href='https://veselin.es/wp-content/litespeed/css/4315065a2e546faa257f1d20d4705d2e.css?ver=05d2e' media='all' /><style id='heateor_sss_frontend_css-inline-css'>.heateor_sss_button_instagram span.heateor_sss_svg,a.heateor_sss_instagram span.heateor_sss_svg{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.heateor_sss_horizontal_sharing .heateor_sss_svg,.heateor_sss_standard_follow_icons_container .heateor_sss_svg{color:#fff;border-width:0px;border-style:solid;border-color:transparent}.heateor_sss_horizontal_sharing .heateorSssTCBackground{color:#666}.heateor_sss_horizontal_sharing span.heateor_sss_svg:hover,.heateor_sss_standard_follow_icons_container span.heateor_sss_svg:hover{border-color:transparent;}.heateor_sss_vertical_sharing span.heateor_sss_svg,.heateor_sss_floating_follow_icons_container span.heateor_sss_svg{color:#fff;border-width:0px;border-style:solid;border-color:transparent;}.heateor_sss_vertical_sharing .heateorSssTCBackground{color:#666;}.heateor_sss_vertical_sharing span.heateor_sss_svg:hover,.heateor_sss_floating_follow_icons_container span.heateor_sss_svg:hover{border-color:transparent;}@media screen and (max-width:783px) {.heateor_sss_vertical_sharing{display:none!important}}div.heateor_sss_mobile_footer{display:none;}@media screen and (max-width:783px){div.heateor_sss_bottom_sharing .heateorSssTCBackground{background-color:white}div.heateor_sss_bottom_sharing{width:100%!important;left:0!important;}div.heateor_sss_bottom_sharing a{width:20% !important;}div.heateor_sss_bottom_sharing .heateor_sss_svg{width: 100% !important;}div.heateor_sss_bottom_sharing div.heateorSssTotalShareCount{font-size:1em!important;line-height:28px!important}div.heateor_sss_bottom_sharing div.heateorSssTotalShareText{font-size:.7em!important;line-height:0px!important}div.heateor_sss_mobile_footer{display:block;height:40px;}.heateor_sss_bottom_sharing{padding:0!important;display:block!important;width:auto!important;bottom:-2px!important;top: auto!important;}.heateor_sss_bottom_sharing .heateor_sss_square_count{line-height:inherit;}.heateor_sss_bottom_sharing .heateorSssSharingArrow{display:none;}.heateor_sss_bottom_sharing .heateorSssTCBackground{margin-right:1.1em!important}}</style><!--[if IE]> <script src="https://veselin.es/wp-content/themes/astra/assets/js/minified/flexibility.min.js" id="astra-flexibility-js"></script> <script id="astra-flexibility-js-after">flexibility(document.documentElement);</script> <![endif]--> <script src="https://veselin.es/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/f230bc9f689ecdc0dca3137b941448af.js?ver=448af" id="jquery-migrate-js" defer data-deferred="1"></script> <script src="https://www.googletagmanager.com/gtag/js?id=GT-5DH5C4D" id="google_gtagjs-js" defer data-deferred="1"></script> <script id="google_gtagjs-js-after" src="data:text/javascript;base64,d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKX0KZ3RhZygic2V0IiwibGlua2VyIix7ImRvbWFpbnMiOlsidmVzZWxpbi5lcyJdfSk7Z3RhZygianMiLG5ldyBEYXRlKCkpO2d0YWcoInNldCIsImRldmVsb3Blcl9pZC5kWlROaU1UIiwhMCk7Z3RhZygiY29uZmlnIiwiR1QtNURINUM0RCIseyJnb29nbGVzaXRla2l0X3Bvc3RfdHlwZSI6InBvc3QiLCJnb29nbGVzaXRla2l0X3Bvc3RfY2F0ZWdvcmllcyI6IklOVkVTVElHQUNJXHUwMGQzTjsgTElOVVg7IFRFQ05PTE9HXHUwMGNkQSIsImdvb2dsZXNpdGVraXRfcG9zdF9kYXRlIjoiMjAyNDA1MDQifSk=" defer></script> <link rel="https://api.w.org/" href="https://veselin.es/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://veselin.es/wp-json/wp/v2/posts/6186" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://veselin.es/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 6.8.1" /><link rel='shortlink' href='https://veselin.es/?p=6186' /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://veselin.es/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://veselin.es/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F&format=xml" /><meta name="generator" content="Site Kit by Google 1.156.0" /><link rel="pingback" href="https://veselin.es/xmlrpc.php"><meta name="google-adsense-platform-account" content="ca-host-pub-2644536267352236"><meta name="google-adsense-platform-domain" content="sitekit.withgoogle.com">
|
|
<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2154461021833034&host=ca-host-pub-2644536267352236" crossorigin="anonymous"></script> <script src="https://fundingchoicesmessages.google.com/i/pub-2154461021833034?ers=1" nonce="7FPpJqD2du67i32Dpl0e_Q" defer data-deferred="1"></script><script nonce="7FPpJqD2du67i32Dpl0e_Q" src="data:text/javascript;base64,KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gc2lnbmFsR29vZ2xlZmNQcmVzZW50KCl7aWYoIXdpbmRvdy5mcmFtZXMuZ29vZ2xlZmNQcmVzZW50KXtpZihkb2N1bWVudC5ib2R5KXtjb25zdCBpZnJhbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7aWZyYW1lLnN0eWxlPSd3aWR0aDogMDsgaGVpZ2h0OiAwOyBib3JkZXI6IG5vbmU7IHotaW5kZXg6IC0xMDAwOyBsZWZ0OiAtMTAwMHB4OyB0b3A6IC0xMDAwcHg7JztpZnJhbWUuc3R5bGUuZGlzcGxheT0nbm9uZSc7aWZyYW1lLm5hbWU9J2dvb2dsZWZjUHJlc2VudCc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpfWVsc2V7c2V0VGltZW91dChzaWduYWxHb29nbGVmY1ByZXNlbnQsMCl9fX1zaWduYWxHb29nbGVmY1ByZXNlbnQoKX0pKCk=" defer></script> <script src="data:text/javascript;base64,KGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGFhKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fXZhciBiYT0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTtmdW5jdGlvbiBjYShhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9dmFyIGRhPWNhKHRoaXMpO2Z1bmN0aW9uIGsoYSxiKXtpZihiKWE6e3ZhciBjPWRhO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKWJyZWFrIGE7Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJmJhKGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19CmZ1bmN0aW9uIGVhKGEpe3JldHVybiBhLnJhdz1hfWZ1bmN0aW9uIG0oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZigibnVtYmVyIj09dHlwZW9mIGEubGVuZ3RoKXJldHVybntuZXh0OmFhKGEpfTt0aHJvdyBFcnJvcihTdHJpbmcoYSkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIil9ZnVuY3Rpb24gZmEoYSl7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7cmV0dXJuIGN9dmFyIGhhPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31iLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sbjtpZigiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mKW49T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIHE7YTp7dmFyIGlhPXthOiEwfSxqYT17fTt0cnl7amEuX19wcm90b19fPWlhO3E9amEuYTticmVhayBhfWNhdGNoKGEpe31xPSExfW49cT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGx9dmFyIGthPW47ZnVuY3Rpb24gcihhLGIpe2EucHJvdG90eXBlPWhhKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKGthKWthKGEsYik7ZWxzZSBmb3IodmFyIGMgaW4gYilpZigicHJvdG90eXBlIiE9YylpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsZCl9ZWxzZSBhW2NdPWJbY107YS5BPWIucHJvdG90eXBlfWZ1bmN0aW9uIGxhKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9aygiTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuIDkwMDcxOTkyNTQ3NDA5OTF9KTtrKCJOdW1iZXIuaXNGaW5pdGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIm51bWJlciIhPT10eXBlb2YgYj8hMTohaXNOYU4oYikmJkluZmluaXR5IT09YiYmLUluZmluaXR5IT09Yn19KTtrKCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7aygiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTtrKCJNYXRoLnRydW5jIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe2I9TnVtYmVyKGIpO2lmKGlzTmFOKGIpfHxJbmZpbml0eT09PWJ8fC1JbmZpbml0eT09PWJ8fDA9PT1iKXJldHVybiBiO3ZhciBjPU1hdGguZmxvb3IoTWF0aC5hYnMoYikpO3JldHVybiAwPmI/LWM6Y319KTtrKCJPYmplY3QuaXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gYj09PWM/MCE9PWJ8fDEvYj09PTEvYzpiIT09YiYmYyE9PWN9fSk7aygiQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO3ZhciBlPWQubGVuZ3RoO2M9Y3x8MDtmb3IoMD5jJiYoYz1NYXRoLm1heChjK2UsMCkpO2M8ZTtjKyspe3ZhciBmPWRbY107aWYoZj09PWJ8fE9iamVjdC5pcyhmLGIpKXJldHVybiEwfXJldHVybiExfX0pO2soIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSAndGhpcycgdmFsdWUgZm9yIFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTtpZihiIGluc3RhbmNlb2YgUmVnRXhwKXRocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IHRvIFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMgbXVzdCBub3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24iKTtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihiLGN8fDApfX0pO3ZhciB0PXRoaXN8fHNlbGY7ZnVuY3Rpb24gdihhKXtyZXR1cm4gYX07dmFyIHcseDthOntmb3IodmFyIG1hPVsiQ0xPU1VSRV9GTEFHUyJdLHk9dCx6PTA7ejxtYS5sZW5ndGg7eisrKWlmKHk9eVttYVt6XV0sbnVsbD09eSl7eD1udWxsO2JyZWFrIGF9eD15fXZhciBuYT14JiZ4WzYxMDQwMTMwMV07dz1udWxsIT1uYT9uYTohMTt2YXIgQSxvYT10Lm5hdmlnYXRvcjtBPW9hP29hLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtmdW5jdGlvbiBCKGEpe3JldHVybiB3P0E/QS5icmFuZHMuc29tZShmdW5jdGlvbihiKXtyZXR1cm4oYj1iLmJyYW5kKSYmLTEhPWIuaW5kZXhPZihhKX0pOiExOiExfWZ1bmN0aW9uIEMoYSl7dmFyIGI7YTp7aWYoYj10Lm5hdmlnYXRvcilpZihiPWIudXNlckFnZW50KWJyZWFrIGE7Yj0iIn1yZXR1cm4tMSE9Yi5pbmRleE9mKGEpfTtmdW5jdGlvbiBEKCl7cmV0dXJuIHc/ISFBJiYwPEEuYnJhbmRzLmxlbmd0aDohMX1mdW5jdGlvbiBFKCl7cmV0dXJuIEQoKT9CKCJDaHJvbWl1bSIpOihDKCJDaHJvbWUiKXx8QygiQ3JpT1MiKSkmJiEoRCgpPzA6QygiRWRnZSIpKXx8QygiU2lsayIpfTt2YXIgcGE9RCgpPyExOkMoIlRyaWRlbnQiKXx8QygiTVNJRSIpOyFDKCJBbmRyb2lkIil8fEUoKTtFKCk7QygiU2FmYXJpIikmJihFKCl8fChEKCk/MDpDKCJDb2FzdCIpKXx8KEQoKT8wOkMoIk9wZXJhIikpfHwoRCgpPzA6QygiRWRnZSIpKXx8KEQoKT9CKCJNaWNyb3NvZnQgRWRnZSIpOkMoIkVkZy8iKSl8fEQoKSYmQigiT3BlcmEiKSk7dmFyIHFhPXt9LEY9bnVsbDt2YXIgcmE9InVuZGVmaW5lZCIhPT10eXBlb2YgVWludDhBcnJheSxzYT0hcGEmJiJmdW5jdGlvbiI9PT10eXBlb2YgYnRvYTtmdW5jdGlvbiBHKCl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBCaWdJbnR9O3ZhciBIPTAsST0wO2Z1bmN0aW9uIHRhKGEpe3ZhciBiPTA+YTthPU1hdGguYWJzKGEpO3ZhciBjPWE+Pj4wO2E9TWF0aC5mbG9vcigoYS1jKS80Mjk0OTY3Mjk2KTtiJiYoYz1tKHVhKGMsYSkpLGI9Yy5uZXh0KCkudmFsdWUsYT1jLm5leHQoKS52YWx1ZSxjPWIpO0g9Yz4+PjA7ST1hPj4+MH1mdW5jdGlvbiB2YShhLGIpe2I+Pj49MDthPj4+PTA7aWYoMjA5NzE1MT49Yil2YXIgYz0iIisoNDI5NDk2NzI5NipiK2EpO2Vsc2UgRygpP2M9IiIrKEJpZ0ludChiKTw8QmlnSW50KDMyKXxCaWdJbnQoYSkpOihjPShhPj4+MjR8Yjw8OCkmMTY3NzcyMTUsYj1iPj4xNiY2NTUzNSxhPShhJjE2Nzc3MjE1KSs2Nzc3MjE2KmMrNjcxMDY1NipiLGMrPTgxNDc0OTcqYixiKj0yLDFFNzw9YSYmKGMrPU1hdGguZmxvb3IoYS8xRTcpLGElPTFFNyksMUU3PD1jJiYoYis9TWF0aC5mbG9vcihjLzFFNyksYyU9MUU3KSxjPWIrd2EoYykrd2EoYSkpO3JldHVybiBjfQpmdW5jdGlvbiB3YShhKXthPVN0cmluZyhhKTtyZXR1cm4iMDAwMDAwMCIuc2xpY2UoYS5sZW5ndGgpK2F9ZnVuY3Rpb24gdWEoYSxiKXtiPX5iO2E/YT1+YSsxOmIrPTE7cmV0dXJuW2EsYl19O3ZhciBKO0o9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgpP1N5bWJvbCgpOnZvaWQgMDt2YXIgeGE9Sj9mdW5jdGlvbihhLGIpe2FbSl18PWJ9OmZ1bmN0aW9uKGEsYil7dm9pZCAwIT09YS5nP2EuZ3w9YjpPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhLHtnOnt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExfX0pfSxLPUo/ZnVuY3Rpb24oYSl7cmV0dXJuIGFbSl18MH06ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ3wwfSxMPUo/ZnVuY3Rpb24oYSl7cmV0dXJuIGFbSl19OmZ1bmN0aW9uKGEpe3JldHVybiBhLmd9LE09Sj9mdW5jdGlvbihhLGIpe2FbSl09YjtyZXR1cm4gYX06ZnVuY3Rpb24oYSxiKXt2b2lkIDAhPT1hLmc/YS5nPWI6T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYSx7Zzp7dmFsdWU6Yixjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX19KTtyZXR1cm4gYX07ZnVuY3Rpb24geWEoYSxiKXtNKGIsKGF8MCkmLTE0NTkxKX1mdW5jdGlvbiB6YShhLGIpe00oYiwoYXwzNCkmLTE0NTU3KX0KZnVuY3Rpb24gQWEoYSl7YT1hPj4xNCYxMDIzO3JldHVybiAwPT09YT81MzY4NzA5MTI6YX07dmFyIE49e30sQmE9e307ZnVuY3Rpb24gQ2EoYSl7cmV0dXJuISghYXx8Im9iamVjdCIhPT10eXBlb2YgYXx8YS5nIT09QmEpfWZ1bmN0aW9uIERhKGEpe3JldHVybiBudWxsIT09YSYmIm9iamVjdCI9PT10eXBlb2YgYSYmIUFycmF5LmlzQXJyYXkoYSkmJmEuY29uc3RydWN0b3I9PT1PYmplY3R9ZnVuY3Rpb24gUChhLGIsYyl7aWYoIUFycmF5LmlzQXJyYXkoYSl8fGEubGVuZ3RoKXJldHVybiExO3ZhciBkPUsoYSk7aWYoZCYxKXJldHVybiEwO2lmKCEoYiYmKEFycmF5LmlzQXJyYXkoYik/Yi5pbmNsdWRlcyhjKTpiLmhhcyhjKSkpKXJldHVybiExO00oYSxkfDEpO3JldHVybiEwfU9iamVjdC5mcmVlemUobmV3IGZ1bmN0aW9uKCl7fSk7T2JqZWN0LmZyZWV6ZShuZXcgZnVuY3Rpb24oKXt9KTt2YXIgRWE9L14tPyhbMS05XVswLTldKnwwKShcLlswLTldKyk/JC87dmFyIFE7ZnVuY3Rpb24gRmEoYSxiKXtRPWI7YT1uZXcgYShiKTtRPXZvaWQgMDtyZXR1cm4gYX0KZnVuY3Rpb24gUihhLGIsYyl7bnVsbD09YSYmKGE9USk7UT12b2lkIDA7aWYobnVsbD09YSl7dmFyIGQ9OTY7Yz8oYT1bY10sZHw9NTEyKTphPVtdO2ImJihkPWQmLTE2NzYwODMzfChiJjEwMjMpPDwxNCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShhKSl0aHJvdyBFcnJvcigpO2Q9SyhhKTtpZihkJjY0KXJldHVybiBhO2R8PTY0O2lmKGMmJihkfD01MTIsYyE9PWFbMF0pKXRocm93IEVycm9yKCk7YTp7Yz1hO3ZhciBlPWMubGVuZ3RoO2lmKGUpe3ZhciBmPWUtMTtpZihEYShjW2ZdKSl7ZHw9MjU2O2I9Zi0oKyEhKGQmNTEyKS0xKTtpZigxMDI0PD1iKXRocm93IEVycm9yKCk7ZD1kJi0xNjc2MDgzM3woYiYxMDIzKTw8MTQ7YnJlYWsgYX19aWYoYil7Yj1NYXRoLm1heChiLGUtKCshIShkJjUxMiktMSkpO2lmKDEwMjQ8Yil0aHJvdyBFcnJvcigpO2Q9ZCYtMTY3NjA4MzN8KGImMTAyMyk8PDE0fX19TShhLGQpO3JldHVybiBhfTtmdW5jdGlvbiBHYShhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIGlzRmluaXRlKGEpP2E6U3RyaW5nKGEpO2Nhc2UgImJvb2xlYW4iOnJldHVybiBhPzE6MDtjYXNlICJvYmplY3QiOmlmKGEpaWYoQXJyYXkuaXNBcnJheShhKSl7aWYoUChhLHZvaWQgMCwwKSlyZXR1cm59ZWxzZSBpZihyYSYmbnVsbCE9YSYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2lmKHNhKXtmb3IodmFyIGI9IiIsYz0wLGQ9YS5sZW5ndGgtMTAyNDA7YzxkOyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShjLGMrPTEwMjQwKSk7Yis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGM/YS5zdWJhcnJheShjKTphKTthPWJ0b2EoYil9ZWxzZXt2b2lkIDA9PT1iJiYoYj0wKTtpZighRil7Rj17fTtjPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpO2Q9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl07Zm9yKHZhciBlPTA7NT5lO2UrKyl7dmFyIGY9Yy5jb25jYXQoZFtlXS5zcGxpdCgiIikpO3FhW2VdPWY7Zm9yKHZhciBnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107dm9pZCAwPT09RltoXSYmKEZbaF09Zyl9fX1iPXFhW2JdO2M9QXJyYXkoTWF0aC5mbG9vcihhLmxlbmd0aC8zKSk7ZD1iWzY0XXx8IiI7Zm9yKGU9Zj0wO2Y8YS5sZW5ndGgtMjtmKz0zKXt2YXIgbD1hW2ZdLHA9YVtmKzFdO2g9YVtmKzJdO2c9YltsPj4yXTtsPWJbKGwmMyk8PDR8cD4+NF07cD1iWyhwJjE1KTw8MnxoPj42XTtoPWJbaCY2M107Y1tlKytdPWcrbCtwK2h9Zz0wO2g9ZDtzd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAyOmc9YVtmKzFdLGg9YlsoZyYxNSk8PDJdfHxkO2Nhc2UgMTphPWFbZl0sY1tlXT1iW2E+PjJdK2JbKGEmMyk8PDR8Zz4+NF0raCtkfWE9Yy5qb2luKCIiKX1yZXR1cm4gYX19cmV0dXJuIGF9O2Z1bmN0aW9uIEhhKGEsYixjKXthPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpO3ZhciBkPWEubGVuZ3RoLGU9YiYyNTY/YVtkLTFdOnZvaWQgMDtkKz1lPy0xOjA7Zm9yKGI9YiY1MTI/MTowO2I8ZDtiKyspYVtiXT1jKGFbYl0pO2lmKGUpe2I9YVtiXT17fTtmb3IodmFyIGYgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxmKSYmKGJbZl09YyhlW2ZdKSl9cmV0dXJuIGF9ZnVuY3Rpb24gSWEoYSxiLGMsZCxlKXtpZihudWxsIT1hKXtpZihBcnJheS5pc0FycmF5KGEpKWE9UChhLHZvaWQgMCwwKT92b2lkIDA6ZSYmSyhhKSYyP2E6SmEoYSxiLGMsdm9pZCAwIT09ZCxlKTtlbHNlIGlmKERhKGEpKXt2YXIgZj17fSxnO2ZvcihnIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsZykmJihmW2ddPUlhKGFbZ10sYixjLGQsZSkpO2E9Zn1lbHNlIGE9YihhLGQpO3JldHVybiBhfX0KZnVuY3Rpb24gSmEoYSxiLGMsZCxlKXt2YXIgZj1kfHxjP0soYSk6MDtkPWQ/ISEoZiYzMik6dm9pZCAwO2E9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSk7Zm9yKHZhciBnPTA7ZzxhLmxlbmd0aDtnKyspYVtnXT1JYShhW2ddLGIsYyxkLGUpO2MmJmMoZixhKTtyZXR1cm4gYX1mdW5jdGlvbiBLYShhKXtyZXR1cm4gYS5zPT09Tj9hLnRvSlNPTigpOkdhKGEpfTtmdW5jdGlvbiBMYShhLGIsYyl7Yz12b2lkIDA9PT1jP3phOmM7aWYobnVsbCE9YSl7aWYocmEmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBiP2E6bmV3IFVpbnQ4QXJyYXkoYSk7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGQ9SyhhKTtpZihkJjIpcmV0dXJuIGE7YiYmKGI9MD09PWR8fCEhKGQmMzIpJiYhKGQmNjR8fCEoZCYxNikpKTtyZXR1cm4gYj9NKGEsKGR8MzQpJi0xMjI5Myk6SmEoYSxMYSxkJjQ/emE6YywhMCwhMCl9YS5zPT09TiYmKGM9YS5oLGQ9TChjKSxhPWQmMj9hOkZhKGEuY29uc3RydWN0b3IsTWEoYyxkLCEwKSkpO3JldHVybiBhfX1mdW5jdGlvbiBNYShhLGIsYyl7dmFyIGQ9Y3x8YiYyP3phOnlhLGU9ISEoYiYzMik7YT1IYShhLGIsZnVuY3Rpb24oZil7cmV0dXJuIExhKGYsZSxkKX0pO3hhKGEsMzJ8KGM/MjowKSk7cmV0dXJuIGF9O2Z1bmN0aW9uIE5hKGEsYil7YT1hLmg7cmV0dXJuIE9hKGEsTChhKSxiKX1mdW5jdGlvbiBPYShhLGIsYyxkKXtpZigtMT09PWMpcmV0dXJuIG51bGw7aWYoYz49QWEoYikpe2lmKGImMjU2KXJldHVybiBhW2EubGVuZ3RoLTFdW2NdfWVsc2V7dmFyIGU9YS5sZW5ndGg7aWYoZCYmYiYyNTYmJihkPWFbZS0xXVtjXSxudWxsIT1kKSlyZXR1cm4gZDtiPWMrKCshIShiJjUxMiktMSk7aWYoYjxlKXJldHVybiBhW2JdfX1mdW5jdGlvbiBQYShhLGIsYyxkLGUpe3ZhciBmPUFhKGIpO2lmKGM+PWZ8fGUpe3ZhciBnPWI7aWYoYiYyNTYpZT1hW2EubGVuZ3RoLTFdO2Vsc2V7aWYobnVsbD09ZClyZXR1cm47ZT1hW2YrKCshIShiJjUxMiktMSldPXt9O2d8PTI1Nn1lW2NdPWQ7YzxmJiYoYVtjKygrISEoYiY1MTIpLTEpXT12b2lkIDApO2chPT1iJiZNKGEsZyl9ZWxzZSBhW2MrKCshIShiJjUxMiktMSldPWQsYiYyNTYmJihhPWFbYS5sZW5ndGgtMV0sYyBpbiBhJiZkZWxldGUgYVtjXSl9CmZ1bmN0aW9uIFFhKGEsYil7dmFyIGM9UmE7dmFyIGQ9dm9pZCAwPT09ZD8hMTpkO3ZhciBlPWEuaDt2YXIgZj1MKGUpLGc9T2EoZSxmLGIsZCk7aWYobnVsbCE9ZyYmIm9iamVjdCI9PT10eXBlb2YgZyYmZy5zPT09TiljPWc7ZWxzZSBpZihBcnJheS5pc0FycmF5KGcpKXt2YXIgaD1LKGcpLGw9aDswPT09bCYmKGx8PWYmMzIpO2x8PWYmMjtsIT09aCYmTShnLGwpO2M9bmV3IGMoZyl9ZWxzZSBjPXZvaWQgMDtjIT09ZyYmbnVsbCE9YyYmUGEoZSxmLGIsYyxkKTtlPWM7aWYobnVsbD09ZSlyZXR1cm4gZTthPWEuaDtmPUwoYSk7ZiYyfHwoZz1lLGM9Zy5oLGg9TChjKSxnPWgmMj9GYShnLmNvbnN0cnVjdG9yLE1hKGMsaCwhMSkpOmcsZyE9PWUmJihlPWcsUGEoYSxmLGIsZSxkKSkpO3JldHVybiBlfWZ1bmN0aW9uIFNhKGEsYil7YT1OYShhLGIpO3JldHVybiBudWxsPT1hfHwic3RyaW5nIj09PXR5cGVvZiBhP2E6dm9pZCAwfQpmdW5jdGlvbiBUYShhLGIpe3ZhciBjPXZvaWQgMD09PWM/MDpjO2E9TmEoYSxiKTtpZihudWxsIT1hKWlmKGI9dHlwZW9mIGEsIm51bWJlciI9PT1iP051bWJlci5pc0Zpbml0ZShhKToic3RyaW5nIiE9PWI/MDpFYS50ZXN0KGEpKWlmKCJudW1iZXIiPT09dHlwZW9mIGEpe2lmKGE9TWF0aC50cnVuYyhhKSwhTnVtYmVyLmlzU2FmZUludGVnZXIoYSkpe3RhKGEpO2I9SDt2YXIgZD1JO2lmKGE9ZCYyMTQ3NDgzNjQ4KWI9fmIrMT4+PjAsZD1+ZD4+PjAsMD09YiYmKGQ9ZCsxPj4+MCk7Yj00Mjk0OTY3Mjk2KmQrKGI+Pj4wKTthPWE/LWI6Yn19ZWxzZSBpZihiPU1hdGgudHJ1bmMoTnVtYmVyKGEpKSxOdW1iZXIuaXNTYWZlSW50ZWdlcihiKSlhPVN0cmluZyhiKTtlbHNle2lmKGI9YS5pbmRleE9mKCIuIiksLTEhPT1iJiYoYT1hLnN1YnN0cmluZygwLGIpKSwhKCItIj09PWFbMF0/MjA+YS5sZW5ndGh8fDIwPT09YS5sZW5ndGgmJi05MjIzMzc8TnVtYmVyKGEuc3Vic3RyaW5nKDAsNykpOjE5PmEubGVuZ3RofHwxOT09PWEubGVuZ3RoJiY5MjIzMzc+TnVtYmVyKGEuc3Vic3RyaW5nKDAsNikpKSl7aWYoMTY+YS5sZW5ndGgpdGEoTnVtYmVyKGEpKTtlbHNlIGlmKEcoKSlhPUJpZ0ludChhKSxIPU51bWJlcihhJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj4wLEk9TnVtYmVyKGE+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtlbHNle2I9KygiLSI9PT1hWzBdKTtJPUg9MDtkPWEubGVuZ3RoO2Zvcih2YXIgZT1iLGY9KGQtYiklNitiO2Y8PWQ7ZT1mLGYrPTYpZT1OdW1iZXIoYS5zbGljZShlLGYpKSxJKj0xRTYsSD0xRTYqSCtlLDQyOTQ5NjcyOTY8PUgmJihJKz1NYXRoLnRydW5jKEgvNDI5NDk2NzI5NiksST4+Pj0wLEg+Pj49MCk7YiYmKGI9bSh1YShILEkpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsSD1hLEk9Yil9YT1IO2I9STtiJjIxNDc0ODM2NDg/RygpP2E9IiIrKEJpZ0ludChifDApPDxCaWdJbnQoMzIpfEJpZ0ludChhPj4+MCkpOihiPW0odWEoYSxiKSksYT1iLm5leHQoKS52YWx1ZSxiPWIubmV4dCgpLnZhbHVlLGE9Ii0iK3ZhKGEsYikpOmE9dmEoYSxiKX19ZWxzZSBhPXZvaWQgMDtyZXR1cm4gbnVsbCE9YT9hOmN9ZnVuY3Rpb24gUyhhLGIpe2E9U2EoYSxiKTtyZXR1cm4gbnVsbCE9YT9hOiIifTtmdW5jdGlvbiBUKGEsYixjKXt0aGlzLmg9UihhLGIsYyl9VC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIFVhKHRoaXMsSmEodGhpcy5oLEthLHZvaWQgMCx2b2lkIDAsITEpLCEwKX07VC5wcm90b3R5cGUucz1OO1QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFVhKHRoaXMsdGhpcy5oLCExKS50b1N0cmluZygpfTtmdW5jdGlvbiBVYShhLGIsYyl7dmFyIGQ9YS5jb25zdHJ1Y3Rvci52LGU9TChjP2EuaDpiKTthPWIubGVuZ3RoO2lmKCFhKXJldHVybiBiO3ZhciBmO2lmKERhKGM9YlthLTFdKSl7YTp7dmFyIGc9Yzt2YXIgaD17fSxsPSExLHA7Zm9yKHAgaW4gZylpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZyxwKSl7dmFyIHU9Z1twXTtpZihBcnJheS5pc0FycmF5KHUpKXt2YXIgamI9dTtpZihQKHUsZCwrcCl8fENhKHUpJiYwPT09dS5zaXplKXU9bnVsbDt1IT1qYiYmKGw9ITApfW51bGwhPXU/aFtwXT11Omw9ITB9aWYobCl7Zm9yKHZhciBPIGluIGgpe2c9aDticmVhayBhfWc9bnVsbH19ZyE9YyYmKGY9ITApO2EtLX1mb3IocD0rISEoZSY1MTIpLTE7MDxhO2EtLSl7Tz1hLTE7Yz1iW09dO08tPXA7aWYoIShudWxsPT1jfHxQKGMsZCxPKXx8Q2EoYykmJjA9PT1jLnNpemUpKWJyZWFrO3ZhciBrYj0hMH1pZighZiYmIWtiKXJldHVybiBiO2I9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYiwwLGEpO2cmJmIucHVzaChnKTtyZXR1cm4gYn07ZnVuY3Rpb24gVmEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe2lmKG51bGw9PWJ8fCIiPT1iKWI9bmV3IGE7ZWxzZXtiPUpTT04ucGFyc2UoYik7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3Iodm9pZCAwKTt4YShiLDMyKTtiPUZhKGEsYil9cmV0dXJuIGJ9fTtmdW5jdGlvbiBXYShhKXt0aGlzLmg9UihhKX1yKFdhLFQpO3ZhciBYYT1WYShXYSk7dmFyIFU7ZnVuY3Rpb24gVihhKXt0aGlzLmc9YX1WLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O3ZhciBZYT17fTtmdW5jdGlvbiBaYShhKXtpZih2b2lkIDA9PT1VKXt2YXIgYj1udWxsO3ZhciBjPXQudHJ1c3RlZFR5cGVzO2lmKGMmJmMuY3JlYXRlUG9saWN5KXt0cnl7Yj1jLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDp2LGNyZWF0ZVNjcmlwdDp2LGNyZWF0ZVNjcmlwdFVSTDp2fSl9Y2F0Y2goZCl7dC5jb25zb2xlJiZ0LmNvbnNvbGUuZXJyb3IoZC5tZXNzYWdlKX1VPWJ9ZWxzZSBVPWJ9YT0oYj1VKT9iLmNyZWF0ZVNjcmlwdFVSTChhKTphO3JldHVybiBuZXcgVihhLFlhKX07ZnVuY3Rpb24gJGEoKXtyZXR1cm4gTWF0aC5mbG9vcigyMTQ3NDgzNjQ4Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KStNYXRoLmFicyhNYXRoLmZsb29yKDIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKSleRGF0ZS5ub3coKSkudG9TdHJpbmcoMzYpfTtmdW5jdGlvbiBhYihhLGIpe2I9U3RyaW5nKGIpOyJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09YS5jb250ZW50VHlwZSYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfWZ1bmN0aW9uIGJiKGEpe3RoaXMuZz1hfHx0LmRvY3VtZW50fHxkb2N1bWVudH07ZnVuY3Rpb24gY2IoYSxiKXthLnNyYz1iIGluc3RhbmNlb2YgViYmYi5jb25zdHJ1Y3Rvcj09PVY/Yi5nOiJ0eXBlX2Vycm9yOlRydXN0ZWRSZXNvdXJjZVVybCI7dmFyIGMsZDsoYz0oYj1udWxsPT0oZD0oYz0oYS5vd25lckRvY3VtZW50JiZhLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3IpP3ZvaWQgMDpkLmNhbGwoYywic2NyaXB0W25vbmNlXSIpKT9iLm5vbmNlfHxiLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiI6IiIpJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLGMpfTtmdW5jdGlvbiBkYihhKXthPXZvaWQgMD09PWE/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKX07ZnVuY3Rpb24gZWIoYSxiLGMsZCxlLGYpe3RyeXt2YXIgZz1hLmcsaD1kYihnKTtoLmFzeW5jPSEwO2NiKGgsYik7Zy5oZWFkLmFwcGVuZENoaWxkKGgpO2guYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtlKCk7ZCYmZy5oZWFkLnJlbW92ZUNoaWxkKGgpfSk7aC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oKXswPGM/ZWIoYSxiLGMtMSxkLGUsZik6KGQmJmcuaGVhZC5yZW1vdmVDaGlsZChoKSxmKCkpfSl9Y2F0Y2gobCl7ZigpfX07dmFyIGZiPXQuYXRvYigiYUhSMGNITTZMeTkzZDNjdVozTjBZWFJwWXk1amIyMHZhVzFoWjJWekwybGpiMjV6TDIxaGRHVnlhV0ZzTDNONWMzUmxiUzh4ZUM5M1lYSnVhVzVuWDJGdFltVnlYekkwWkhBdWNHNW4iKSxnYj10LmF0b2IoIldXOTFJR0Z5WlNCelpXVnBibWNnZEdocGN5QnRaWE56WVdkbElHSmxZMkYxYzJVZ1lXUWdiM0lnYzJOeWFYQjBJR0pzYjJOcmFXNW5JSE52Wm5SM1lYSmxJR2x6SUdsdWRHVnlabVZ5YVc1bklIZHBkR2dnZEdocGN5QndZV2RsTGc9PSIpLGhiPXQuYXRvYigiUkdsellXSnNaU0JoYm5rZ1lXUWdiM0lnYzJOeWFYQjBJR0pzYjJOcmFXNW5JSE52Wm5SM1lYSmxMQ0IwYUdWdUlISmxiRzloWkNCMGFHbHpJSEJoWjJVdSIpO2Z1bmN0aW9uIGliKGEsYixjKXt0aGlzLmk9YTt0aGlzLnU9Yjt0aGlzLm89Yzt0aGlzLmc9bnVsbDt0aGlzLmo9W107dGhpcy5tPSExO3RoaXMubD1uZXcgYmIodGhpcy5pKX0KZnVuY3Rpb24gbGIoYSl7aWYoYS5pLmJvZHkmJiFhLm0pe3ZhciBiPWZ1bmN0aW9uKCl7bWIoYSk7dC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bmIoYSwzKX0sNTApfTtlYihhLmwsYS51LDIsITAsZnVuY3Rpb24oKXt0W2Eub118fGIoKX0sYik7YS5tPSEwfX0KZnVuY3Rpb24gbWIoYSl7Zm9yKHZhciBiPVcoMSw1KSxjPTA7YzxiO2MrKyl7dmFyIGQ9WChhKTthLmkuYm9keS5hcHBlbmRDaGlsZChkKTthLmoucHVzaChkKX1iPVgoYSk7Yi5zdHlsZS5ib3R0b209IjAiO2Iuc3R5bGUubGVmdD0iMCI7Yi5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiO2Iuc3R5bGUud2lkdGg9VygxMDAsMTEwKS50b1N0cmluZygpKyIlIjtiLnN0eWxlLnpJbmRleD1XKDIxNDc0ODM1NDQsMjE0NzQ4MzY0NCkudG9TdHJpbmcoKTtiLnN0eWxlLmJhY2tncm91bmRDb2xvcj1vYigyNDksMjU5LDI0MiwyNTIsMjE5LDIyOSk7Yi5zdHlsZS5ib3hTaGFkb3c9IjAgMCAxMnB4ICM4ODgiO2Iuc3R5bGUuY29sb3I9b2IoMCwxMCwwLDEwLDAsMTApO2Iuc3R5bGUuZGlzcGxheT0iZmxleCI7Yi5zdHlsZS5qdXN0aWZ5Q29udGVudD0iY2VudGVyIjtiLnN0eWxlLmZvbnRGYW1pbHk9IlJvYm90bywgQXJpYWwiO2M9WChhKTtjLnN0eWxlLndpZHRoPVcoODAsODUpLnRvU3RyaW5nKCkrIiUiO2Muc3R5bGUubWF4V2lkdGg9Vyg3NTAsNzc1KS50b1N0cmluZygpKyJweCI7Yy5zdHlsZS5tYXJnaW49IjI0cHgiO2Muc3R5bGUuZGlzcGxheT0iZmxleCI7Yy5zdHlsZS5hbGlnbkl0ZW1zPSJmbGV4LXN0YXJ0IjtjLnN0eWxlLmp1c3RpZnlDb250ZW50PSJjZW50ZXIiO2Q9YWIoYS5sLmcsIklNRyIpO2QuY2xhc3NOYW1lPSRhKCk7ZC5zcmM9ZmI7ZC5hbHQ9Ildhcm5pbmcgaWNvbiI7ZC5zdHlsZS5oZWlnaHQ9IjI0cHgiO2Quc3R5bGUud2lkdGg9IjI0cHgiO2Quc3R5bGUucGFkZGluZ1JpZ2h0PSIxNnB4Ijt2YXIgZT1YKGEpLGY9WChhKTtmLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQiO2YudGV4dENvbnRlbnQ9Z2I7dmFyIGc9WChhKTtnLnRleHRDb250ZW50PWhiO1koYSxlLGYpO1koYSxlLGcpO1koYSxjLGQpO1koYSxjLGUpO1koYSxiLGMpO2EuZz1iO2EuaS5ib2R5LmFwcGVuZENoaWxkKGEuZyk7Yj1XKDEsNSk7Zm9yKGM9MDtjPGI7YysrKWQ9WChhKSxhLmkuYm9keS5hcHBlbmRDaGlsZChkKSxhLmoucHVzaChkKX1mdW5jdGlvbiBZKGEsYixjKXtmb3IodmFyIGQ9VygxLDUpLGU9MDtlPGQ7ZSsrKXt2YXIgZj1YKGEpO2IuYXBwZW5kQ2hpbGQoZil9Yi5hcHBlbmRDaGlsZChjKTtjPVcoMSw1KTtmb3IoZD0wO2Q8YztkKyspZT1YKGEpLGIuYXBwZW5kQ2hpbGQoZSl9ZnVuY3Rpb24gVyhhLGIpe3JldHVybiBNYXRoLmZsb29yKGErTWF0aC5yYW5kb20oKSooYi1hKSl9ZnVuY3Rpb24gb2IoYSxiLGMsZCxlLGYpe3JldHVybiJyZ2IoIitXKE1hdGgubWF4KGEsMCksTWF0aC5taW4oYiwyNTUpKS50b1N0cmluZygpKyIsIitXKE1hdGgubWF4KGMsMCksTWF0aC5taW4oZCwyNTUpKS50b1N0cmluZygpKyIsIitXKE1hdGgubWF4KGUsMCksTWF0aC5taW4oZiwyNTUpKS50b1N0cmluZygpKyIpIn1mdW5jdGlvbiBYKGEpe2E9YWIoYS5sLmcsIkRJViIpO2EuY2xhc3NOYW1lPSRhKCk7cmV0dXJuIGF9CmZ1bmN0aW9uIG5iKGEsYil7MD49Ynx8bnVsbCE9YS5nJiYwIT09YS5nLm9mZnNldEhlaWdodCYmMCE9PWEuZy5vZmZzZXRXaWR0aHx8KHBiKGEpLG1iKGEpLHQuc2V0VGltZW91dChmdW5jdGlvbigpe25iKGEsYi0xKX0sNTApKX1mdW5jdGlvbiBwYihhKXtmb3IodmFyIGI9bShhLmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKShjPWMudmFsdWUpJiZjLnBhcmVudE5vZGUmJmMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTthLmo9W107KGI9YS5nKSYmYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYik7YS5nPW51bGx9O2Z1bmN0aW9uIHFiKGEsYixjLGQsZSl7ZnVuY3Rpb24gZihsKXtkb2N1bWVudC5ib2R5P2coZG9jdW1lbnQuYm9keSk6MDxsP3Quc2V0VGltZW91dChmdW5jdGlvbigpe2YobC0xKX0sZSk6YigpfWZ1bmN0aW9uIGcobCl7bC5hcHBlbmRDaGlsZChoKTt0LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPygwIT09aC5vZmZzZXRIZWlnaHQmJjAhPT1oLm9mZnNldFdpZHRoP2IoKTphKCksaC5wYXJlbnROb2RlJiZoLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaCkpOmEoKX0sZCl9dmFyIGg9cmIoYyk7ZigzKX1mdW5jdGlvbiByYihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmNsYXNzTmFtZT1hO2Iuc3R5bGUud2lkdGg9IjFweCI7Yi5zdHlsZS5oZWlnaHQ9IjFweCI7Yi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Iuc3R5bGUubGVmdD0iLTEwMDAwcHgiO2Iuc3R5bGUudG9wPSItMTAwMDBweCI7Yi5zdHlsZS56SW5kZXg9Ii0xMDAwMCI7cmV0dXJuIGJ9O2Z1bmN0aW9uIFJhKGEpe3RoaXMuaD1SKGEpfXIoUmEsVCk7ZnVuY3Rpb24gc2IoYSl7dGhpcy5oPVIoYSl9cihzYixUKTt2YXIgdGI9VmEoc2IpO2Z1bmN0aW9uIHViKGEpe3ZhciBiPWxhLmFwcGx5KDEsYXJndW1lbnRzKTtpZigwPT09Yi5sZW5ndGgpcmV0dXJuIFphKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBaYShjKX07ZnVuY3Rpb24gdmIoYSl7aWYoIWEpcmV0dXJuIG51bGw7YT1TYShhLDQpO3ZhciBiO251bGw9PT1hfHx2b2lkIDA9PT1hP2I9bnVsbDpiPVphKGEpO3JldHVybiBifTt2YXIgd2I9ZWEoWyIiXSkseGI9ZWEoWyIiXSk7ZnVuY3Rpb24geWIoYSxiKXt0aGlzLm09YTt0aGlzLm89bmV3IGJiKGEuZG9jdW1lbnQpO3RoaXMuZz1iO3RoaXMuaj1TKHRoaXMuZywxKTt0aGlzLnU9dmIoUWEodGhpcy5nLDIpKXx8dWIod2IpO3RoaXMuaT0hMTtiPXZiKFFhKHRoaXMuZywxMykpfHx1Yih4Yik7dGhpcy5sPW5ldyBpYihhLmRvY3VtZW50LGIsUyh0aGlzLmcsMTIpKX15Yi5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt6Yih0aGlzKX07ZnVuY3Rpb24gemIoYSl7QWIoYSk7ZWIoYS5vLGEudSwzLCExLGZ1bmN0aW9uKCl7YTp7dmFyIGI9YS5qO3ZhciBjPXQuYnRvYShiKTtpZihjPXRbY10pe3RyeXt2YXIgZD1YYSh0LmF0b2IoYykpfWNhdGNoKGUpe2I9ITE7YnJlYWsgYX1iPWI9PT1TYShkLDEpfWVsc2UgYj0hMX1iP1ooYSxTKGEuZywxNCkpOihaKGEsUyhhLmcsOCkpLGxiKGEubCkpfSxmdW5jdGlvbigpe3FiKGZ1bmN0aW9uKCl7WihhLFMoYS5nLDcpKTtsYihhLmwpfSxmdW5jdGlvbigpe3JldHVybiBaKGEsUyhhLmcsNikpfSxTKGEuZyw5KSxUYShhLmcsMTApLFRhKGEuZywxMSkpfSl9ZnVuY3Rpb24gWihhLGIpe2EuaXx8KGEuaT0hMCxhPW5ldyBhLm0uWE1MSHR0cFJlcXVlc3QsYS5vcGVuKCJHRVQiLGIsITApLGEuc2VuZCgpKX1mdW5jdGlvbiBBYihhKXt2YXIgYj10LmJ0b2EoYS5qKTthLm1bYl0mJlooYSxTKGEuZyw1KSl9OyhmdW5jdGlvbihhLGIpe3RbYV09ZnVuY3Rpb24oKXt2YXIgYz1sYS5hcHBseSgwLGFyZ3VtZW50cyk7dFthXT1mdW5jdGlvbigpe307Yi5jYWxsLmFwcGx5KGIsW251bGxdLmNvbmNhdChjIGluc3RhbmNlb2YgQXJyYXk/YzpmYShtKGMpKSkpfX0pKCJfX2g4MkFsbmtINkQ5MV9fIixmdW5jdGlvbihhKXsiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5hdG9iJiYobmV3IHliKHdpbmRvdyx0Yih3aW5kb3cuYXRvYihhKSkpKS5zdGFydCgpfSl9KS5jYWxsKHRoaXMpO3dpbmRvdy5fX2g4MkFsbmtINkQ5MV9fKCJXeUp3ZFdJdE1qRTFORFEyTVRBeU1UZ3pNekF6TkNJc1cyNTFiR3dzYm5Wc2JDeHVkV3hzTENKb2RIUndjem92TDJaMWJtUnBibWRqYUc5cFkyVnpiV1Z6YzJGblpYTXVaMjl2WjJ4bExtTnZiUzlpTDNCMVlpMHlNVFUwTkRZeE1ESXhPRE16TURNMElsMHNiblZzYkN4dWRXeHNMQ0pvZEhSd2N6b3ZMMloxYm1ScGJtZGphRzlwWTJWemJXVnpjMkZuWlhNdVoyOXZaMnhsTG1OdmJTOWxiQzlCUjFOTFYzaFdkRTR5UWxjeFIzVldSekp0YUVkQllYZElXVmhaVFZaRVdHSnplRTUyYWxsNFVreG5SbGh4Tm1oU09WQk1jVVV5WkRodmVWRnlVVGxuVDFRMFF6QlFlSEZrT1hWYVFUbFNPWFphU2xOdVMyVjBaMmd0U0ZoM1hIVXdNRE5rWEhVd01ETmtQM1JsWEhVd01ETmtWRTlMUlU1ZlJWaFFUMU5GUkNJc0ltaDBkSEJ6T2k4dlpuVnVaR2x1WjJOb2IybGpaWE50WlhOellXZGxjeTVuYjI5bmJHVXVZMjl0TDJWc0wwRkhVMHRYZUZkV2VVOXJXVkJ3TlcxWWVGaE9VRmxDTTFwSE1WRkJkMUpyV0dKT2JXMTRVa051VFVKQ1EySnZXbFZNZGpSUlZHMDFNRkF6ZDFBMWJsWlFXazB4VDNrNFJFRXlOa2g1WjB0cWFYWkxkblZqUTJoUlRVbFRka0ZjZFRBd00yUmNkVEF3TTJRL1lXSmNkVEF3TTJReFhIVXdNREkyYzJKbVhIVXdNRE5rTVNJc0ltaDBkSEJ6T2k4dlpuVnVaR2x1WjJOb2IybGpaWE50WlhOellXZGxjeTVuYjI5bmJHVXVZMjl0TDJWc0wwRkhVMHRYZUZWcmEzVkNhMlJGVURSUE9HOVhNVE5hU1c5T2FHSmZORmc0TkhRMlR6Wk9RM0pqZGw5RWNqbG9PWE0xVjFvMFVIbE1OMjV0VVRCMWRXaHdWWFY2ZW1NeFNtSjFha3R5U0V4SWFERTFWR2wzWWtaV04xVjZlVUZjZFRBd00yUmNkVEF3TTJRL1lXSmNkVEF3TTJReVhIVXdNREkyYzJKbVhIVXdNRE5rTVNJc0ltaDBkSEJ6T2k4dlpuVnVaR2x1WjJOb2IybGpaWE50WlhOellXZGxjeTVuYjI5bmJHVXVZMjl0TDJWc0wwRkhVMHRYZUZkSGRscEdRV3hMTVdzeE9XbHZOMFpUTlZWRmREWTJVV1pwVUZwUlYybDVURWRpZUd0dFZHMWtOMnQwTXpCeldXbFVXRlJaUVVaWFpFUmFjM0ExZG5oZk5GaHFVVFl4VG1ad1puWkVUVTAxVUdGdU0zTXhaWGRjZFRBd00yUmNkVEF3TTJRL2MySm1YSFV3TUROa01pSXNJbVJwZGkxbmNIUXRZV1FpTERJd0xERXdNQ3dpWTBoV2FVeFVTWGhPVkZFd1RtcEZkMDFxUlRSTmVrMTNUWHBSWEhVd01ETmtJaXhiYm5Wc2JDeHVkV3hzTEc1MWJHd3NJbWgwZEhCek9pOHZkM2QzTG1kemRHRjBhV011WTI5dEx6QmxiVzR2Wmk5d0wzQjFZaTB5TVRVME5EWXhNREl4T0RNek1ETTBMbXB6UDNWemNYQmNkVEF3TTJSRFFWa2lYU3dpYUhSMGNITTZMeTltZFc1a2FXNW5ZMmh2YVdObGMyMWxjM05oWjJWekxtZHZiMmRzWlM1amIyMHZaV3d2UVVkVFMxZDRWbXBhTVRaNmRYUTNURlZ3TUZsR1dFYzBlVUphTkRkelZWaFRVR3RpVkc1c05qQk5lRTh6ZEhCRlQwWnhWVWRXTm10c05XMUlWRWswYzBaRGNrbFZZMGRoZW5sb1gzaGZUMDVFVHpGck5VVkRUMDA0UmtWblFWeDFNREF6WkZ4MU1EQXpaQ0pkIik=" defer></script> <link rel="icon" href="https://veselin.es/wp-content/uploads/2024/03/cropped-veselin-icono-32x32.png" sizes="32x32" /><link rel="icon" href="https://veselin.es/wp-content/uploads/2024/03/cropped-veselin-icono-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://veselin.es/wp-content/uploads/2024/03/cropped-veselin-icono-180x180.png" /><meta name="msapplication-TileImage" content="https://veselin.es/wp-content/uploads/2024/03/cropped-veselin-icono-270x270.png" /><style id="wp-custom-css">pre.wp-block-code .keyword {
|
|
color: #569cd6;
|
|
font-weight: bold;
|
|
}
|
|
|
|
pre.wp-block-code .string {
|
|
color: #ce9178;
|
|
}
|
|
|
|
pre.wp-block-code .comment {
|
|
color: #6a9955;
|
|
font-style: italic;
|
|
}
|
|
|
|
pre.wp-block-code .function {
|
|
color: #dcdcaa;
|
|
}
|
|
|
|
pre.wp-block-code .number {
|
|
color: #b5cea8;
|
|
}
|
|
|
|
pre.wp-block-code code {
|
|
background-color: #1e1e1e;
|
|
color: #d4d4d4;
|
|
padding: 1em;
|
|
border-radius: 5px;
|
|
display: block;
|
|
font-family: 'Courier New', Courier, monospace;
|
|
white-space: pre-wrap;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
|
|
.keyword { color: blue; font-weight: bold; }
|
|
.string { color: green; }
|
|
.number { color: red; }
|
|
.comment { color: gray; font-style: italic; }
|
|
.function { color: purple; }</style></head><body itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular post-template-default single single-post postid-6186 single-format-standard wp-custom-logo wp-theme-astra ast-desktop ast-separate-container ast-right-sidebar astra-4.11.3 group-blog ast-blog-single-style-1 ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-normal-title-enabled"><a
|
|
class="skip-link screen-reader-text"
|
|
href="#content"
|
|
title="Ir al contenido">
|
|
Ir al contenido</a><div
|
|
class="hfeed site" id="page"><header
|
|
class="site-header header-main-layout-1 ast-primary-menu-enabled ast-logo-title-inline ast-hide-custom-menu-mobile ast-builder-menu-toggle-icon ast-mobile-header-inline" id="masthead" itemtype="https://schema.org/WPHeader" itemscope="itemscope" itemid="#masthead" ><div id="ast-desktop-header" data-toggle-type="dropdown"><div class="ast-main-header-wrap main-header-bar-wrap "><div class="ast-primary-header-bar ast-primary-header main-header-bar site-header-focus-item" data-section="section-primary-header-builder"><div class="site-primary-header-wrap ast-builder-grid-row-container site-header-focus-item ast-container" data-section="section-primary-header-builder"><div class="ast-builder-grid-row ast-builder-grid-row-has-sides ast-builder-grid-row-no-center"><div class="site-header-primary-section-left site-header-section ast-flex site-header-section-left"><div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="title_tagline"><div
|
|
class="site-branding ast-site-identity" itemtype="https://schema.org/Organization" itemscope="itemscope" >
|
|
<span class="site-logo-img"><a href="https://veselin.es/" class="custom-logo-link" rel="home"><img width="200" height="50" src="https://veselin.es/wp-content/uploads/2024/10/veselin-logo-200x50.webp" class="custom-logo" alt="logo web veselin" decoding="async" srcset="https://veselin.es/wp-content/uploads/2024/10/veselin-logo-200x50.webp 1x, https://veselin.es/wp-content/uploads/2024/03/veselin-logo.png 2x" sizes="(max-width: 200px) 100vw, 200px" /></a></span></div></div></div><div class="site-header-primary-section-right site-header-section ast-flex ast-grid-right-section"><div class="ast-builder-menu-1 ast-builder-menu ast-flex ast-builder-menu-1-focus-item ast-builder-layout-element site-header-focus-item" data-section="section-hb-menu-1"><div class="ast-main-header-bar-alignment"><div class="main-header-bar-navigation"><nav class="site-navigation ast-flex-grow-1 navigation-accessibility site-header-focus-item" id="primary-site-navigation-desktop" aria-label="Navegación del sitio principal" itemtype="https://schema.org/SiteNavigationElement" itemscope="itemscope"><div class="main-navigation ast-inline-flex"><ul id="ast-hf-menu-1" class="main-header-menu ast-menu-shadow ast-nav-menu ast-flex submenu-with-border ast-menu-hover-style-overline stack-on-mobile"><li id="menu-item-6015" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-6015"><a href="https://veselin.es/linux-el-libre-pensamiento/" class="menu-link">LINUX</a></li><li id="menu-item-4441" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-4441"><a href="https://veselin.es/tecnologia-y-novedades-en-inteligencia-artificial/" class="menu-link">TECNOLOGÍA</a></li><li id="menu-item-4442" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-4442"><a href="https://veselin.es/investigacion/" class="menu-link">INVESTIGACIÓN</a></li><li id="menu-item-6105" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6105"><a href="https://veselin.es/descubre-el-vibrante-mundo-de-la-economia/" class="menu-link">ECONOMÍA</a></li><li id="menu-item-6106" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6106"><a href="https://veselin.es/ciberseguridad/" class="menu-link">CIBERSEGURIDAD</a></li></ul></div></nav></div></div></div></div></div></div></div></div></div><div id="ast-mobile-header" class="ast-mobile-header-wrap " data-type="dropdown"><div class="ast-main-header-wrap main-header-bar-wrap" ><div class="ast-primary-header-bar ast-primary-header main-header-bar site-primary-header-wrap site-header-focus-item ast-builder-grid-row-layout-default ast-builder-grid-row-tablet-layout-default ast-builder-grid-row-mobile-layout-default" data-section="section-primary-header-builder"><div class="ast-builder-grid-row ast-builder-grid-row-has-sides ast-builder-grid-row-no-center"><div class="site-header-primary-section-left site-header-section ast-flex site-header-section-left"><div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="title_tagline"><div
|
|
class="site-branding ast-site-identity" itemtype="https://schema.org/Organization" itemscope="itemscope" >
|
|
<span class="site-logo-img"><a href="https://veselin.es/" class="custom-logo-link" rel="home"><img width="200" height="50" src="https://veselin.es/wp-content/uploads/2024/10/veselin-logo-200x50.webp" class="custom-logo" alt="logo web veselin" decoding="async" srcset="https://veselin.es/wp-content/uploads/2024/10/veselin-logo-200x50.webp 1x, https://veselin.es/wp-content/uploads/2024/03/veselin-logo.png 2x" sizes="(max-width: 200px) 100vw, 200px" /></a></span></div></div></div><div class="site-header-primary-section-right site-header-section ast-flex ast-grid-right-section"><div class="ast-builder-layout-element ast-flex site-header-focus-item" data-section="section-header-mobile-trigger"><div class="ast-button-wrap">
|
|
<button type="button" class="menu-toggle main-header-menu-toggle ast-mobile-menu-trigger-minimal" aria-expanded="false">
|
|
<span class="screen-reader-text">Main Menu</span>
|
|
<span class="mobile-menu-toggle-icon">
|
|
<span aria-hidden="true" class="ahfb-svg-iconset ast-inline-flex svg-baseline"><svg class='ast-mobile-svg ast-menu-svg' fill='currentColor' version='1.1' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M3 13h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 7h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1zM3 19h18c0.552 0 1-0.448 1-1s-0.448-1-1-1h-18c-0.552 0-1 0.448-1 1s0.448 1 1 1z'></path></svg></span><span aria-hidden="true" class="ahfb-svg-iconset ast-inline-flex svg-baseline"><svg class='ast-mobile-svg ast-close-svg' fill='currentColor' version='1.1' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z'></path></svg></span> </span>
|
|
</button></div></div></div></div></div></div><div class="ast-mobile-header-content content-align-flex-start "><div class="ast-builder-menu-mobile ast-builder-menu ast-builder-menu-mobile-focus-item ast-builder-layout-element site-header-focus-item" data-section="section-header-mobile-menu"><div class="ast-main-header-bar-alignment"><div class="main-header-bar-navigation"><nav class="site-navigation ast-flex-grow-1 navigation-accessibility site-header-focus-item" id="ast-mobile-site-navigation" aria-label="Navegación del sitio: Primary Menu" itemtype="https://schema.org/SiteNavigationElement" itemscope="itemscope"><div class="main-navigation"><ul id="ast-hf-mobile-menu" class="main-header-menu ast-nav-menu ast-flex submenu-with-border astra-menu-animation-fade stack-on-mobile"><li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-6015"><a href="https://veselin.es/linux-el-libre-pensamiento/" class="menu-link">LINUX</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-4441"><a href="https://veselin.es/tecnologia-y-novedades-en-inteligencia-artificial/" class="menu-link">TECNOLOGÍA</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-4442"><a href="https://veselin.es/investigacion/" class="menu-link">INVESTIGACIÓN</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6105"><a href="https://veselin.es/descubre-el-vibrante-mundo-de-la-economia/" class="menu-link">ECONOMÍA</a></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6106"><a href="https://veselin.es/ciberseguridad/" class="menu-link">CIBERSEGURIDAD</a></li></ul></div></nav></div></div></div></div></div></header><div id="content" class="site-content"><div class="ast-container"><div id="primary" class="content-area primary"><main id="main" class="site-main"><article
|
|
class="post-6186 post type-post status-publish format-standard has-post-thumbnail hentry category-investigacion category-linux-el-libre-pensamiento category-tecnologia-y-novedades-en-inteligencia-artificial tag-como-instalar-jupyterlab tag-como-instalar-jupyterlab-en-ubuntu-24-04 tag-ia tag-jupyterlab tag-jupyterlab-en-ubuntu-24-04 tag-servidor tag-servidores tag-ubuntu-24-04 ast-article-single" id="post-6186" itemtype="https://schema.org/CreativeWork" itemscope="itemscope"><div class="ast-post-format- single-layout-1"><header class="entry-header "><div class="post-thumb-img-content post-thumb"><img width="930" height="547" src="https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png" class="attachment-large size-large wp-post-image" alt="Como instalar JupyterLab en Ubuntu 24.04" itemprop="image" decoding="async" srcset="https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24.png 930w, https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24-300x176.png 300w, https://veselin.es/wp-content/uploads/2024/05/Ubuntu-24-768x452.png 768w" sizes="(max-width: 930px) 100vw, 930px" /></div><h1 class="entry-title" itemprop="headline">Como instalar JupyterLab en Ubuntu 24.04</h1><div class="entry-meta"> <span class="comments-link">
|
|
<a href="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/#comments">4 comentarios</a> </span>/ <span class="ast-terms-link"><a href="https://veselin.es/investigacion/" class="">INVESTIGACIÓN</a>, <a href="https://veselin.es/linux-el-libre-pensamiento/" class="">LINUX</a>, <a href="https://veselin.es/tecnologia-y-novedades-en-inteligencia-artificial/" class="">TECNOLOGÍA</a></span> / Por <span class="posted-by vcard author" itemtype="https://schema.org/Person" itemscope="itemscope" itemprop="author"> <a title="Ver todas las entradas de Veselin Petrov"
|
|
href="https://veselin.es/author/veselin/" rel="author"
|
|
class="url fn n" itemprop="url" >
|
|
<span
|
|
class="author-name" itemprop="name" >
|
|
Veselin Petrov </span>
|
|
</a>
|
|
</span></div></header><div class="entry-content clear"
|
|
itemprop="text" ><div class='heateorSssClear'></div><div class='heateor_sss_sharing_container heateor_sss_horizontal_sharing' data-heateor-sss-href='https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/'><div class='heateor_sss_sharing_title' style="font-weight:bold" >Spread the love</div><div class="heateor_sss_sharing_ul"><a aria-label="Facebook" class="heateor_sss_facebook" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Facebook" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg" style="background-color:#0765FE;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;border-radius:999px;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path fill="#fff" d="M28 16c0-6.627-5.373-12-12-12S4 9.373 4 16c0 5.628 3.875 10.35 9.101 11.647v-7.98h-2.474V16H13.1v-1.58c0-4.085 1.849-5.978 5.859-5.978.76 0 2.072.15 2.608.298v3.325c-.283-.03-.775-.045-1.386-.045-1.967 0-2.728.745-2.728 2.683V16h3.92l-.673 3.667h-3.247v8.245C23.395 27.195 28 22.135 28 16Z"></path></svg></span></a><a aria-label="Twitter" class="heateor_sss_button_twitter" href="https://twitter.com/intent/tweet?text=Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04&url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Twitter" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg heateor_sss_s__default heateor_sss_s_twitter" style="background-color:#55acee;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;border-radius:999px;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-4 -4 39 39"><path d="M28 8.557a9.913 9.913 0 0 1-2.828.775 4.93 4.93 0 0 0 2.166-2.725 9.738 9.738 0 0 1-3.13 1.194 4.92 4.92 0 0 0-3.593-1.55 4.924 4.924 0 0 0-4.794 6.049c-4.09-.21-7.72-2.17-10.15-5.15a4.942 4.942 0 0 0-.665 2.477c0 1.71.87 3.214 2.19 4.1a4.968 4.968 0 0 1-2.23-.616v.06c0 2.39 1.7 4.38 3.952 4.83-.414.115-.85.174-1.297.174-.318 0-.626-.03-.928-.086a4.935 4.935 0 0 0 4.6 3.42 9.893 9.893 0 0 1-6.114 2.107c-.398 0-.79-.023-1.175-.068a13.953 13.953 0 0 0 7.55 2.213c9.056 0 14.01-7.507 14.01-14.013 0-.213-.005-.426-.015-.637.96-.695 1.795-1.56 2.455-2.55z" fill="#fff"></path></svg></span></a><a aria-label="Linkedin" class="heateor_sss_button_linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Linkedin" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg heateor_sss_s__default heateor_sss_s_linkedin" style="background-color:#0077b5;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;border-radius:999px;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path d="M6.227 12.61h4.19v13.48h-4.19V12.61zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187V12.61z" fill="#fff"></path></svg></span></a><a aria-label="Tumblr" class="heateor_sss_button_tumblr" href="https://www.tumblr.com/widgets/share/tool?posttype=link&canonicalUrl=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F&title=Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04&caption=" title="Tumblr" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg aheateor_sss_s__default heateor_sss_s_tumblr" style="background-color:#29435d;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;border-radius:999px;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-2 -2 36 36"><path fill="#fff" d="M20.775 21.962c-.37.177-1.08.33-1.61.345-1.598.043-1.907-1.122-1.92-1.968v-6.217h4.007V11.1H17.26V6.02h-2.925s-.132.044-.144.15c-.17 1.556-.895 4.287-3.923 5.378v2.578h2.02v6.522c0 2.232 1.647 5.404 5.994 5.33 1.467-.025 3.096-.64 3.456-1.17l-.96-2.846z"/></svg></span></a><a aria-label="Reddit" class="heateor_sss_button_reddit" href="https://reddit.com/submit?url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F&title=Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04" title="Reddit" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg heateor_sss_s__default heateor_sss_s_reddit" style="background-color:#ff5700;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;border-radius:999px;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-3.5 -3.5 39 39"><path d="M28.543 15.774a2.953 2.953 0 0 0-2.951-2.949 2.882 2.882 0 0 0-1.9.713 14.075 14.075 0 0 0-6.85-2.044l1.38-4.349 3.768.884a2.452 2.452 0 1 0 .24-1.176l-4.274-1a.6.6 0 0 0-.709.4l-1.659 5.224a14.314 14.314 0 0 0-7.316 2.029 2.908 2.908 0 0 0-1.872-.681 2.942 2.942 0 0 0-1.618 5.4 5.109 5.109 0 0 0-.062.765c0 4.158 5.037 7.541 11.229 7.541s11.22-3.383 11.22-7.541a5.2 5.2 0 0 0-.053-.706 2.963 2.963 0 0 0 1.427-2.51zm-18.008 1.88a1.753 1.753 0 0 1 1.73-1.74 1.73 1.73 0 0 1 1.709 1.74 1.709 1.709 0 0 1-1.709 1.711 1.733 1.733 0 0 1-1.73-1.711zm9.565 4.968a5.573 5.573 0 0 1-4.081 1.272h-.032a5.576 5.576 0 0 1-4.087-1.272.6.6 0 0 1 .844-.854 4.5 4.5 0 0 0 3.238.927h.032a4.5 4.5 0 0 0 3.237-.927.6.6 0 1 1 .844.854zm-.331-3.256a1.726 1.726 0 1 1 1.709-1.712 1.717 1.717 0 0 1-1.712 1.712z" fill="#fff"/></svg></span></a><a class="heateor_sss_more" aria-label="More" title="More" rel="nofollow noopener" style="font-size: 32px!important;border:0;box-shadow:none;display:inline-block!important;font-size:16px;padding:0 4px;vertical-align: middle;display:inline;" href="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/" onclick="event.preventDefault()"><span class="heateor_sss_svg" style="background-color:#ee8e2d;width:35px;height:35px;border-radius:999px;display:inline-block!important;opacity:1;float:left;font-size:32px!important;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;display:inline;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box;" onclick="heateorSssMoreSharingPopup(this, 'https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/', 'Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04', '' )"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-.3 0 32 32" version="1.1" width="100%" height="100%" style="display:block;border-radius:999px;" xml:space="preserve"><g><path fill="#fff" d="M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z" fill-rule="evenodd"></path></g></svg></span></a></div><div class="heateorSssClear"></div></div><div class='heateorSssClear'></div><h1 class="wp-block-heading">Guía para instalar JupyterLab en Ubuntu 24.04</h1><p>JupyterLab es un entorno de desarrollo interactivo y colaborativo diseñado principalmente para la computación interactiva, la visualización de datos y la ciencia de datos. Es una interfaz basada en web que permite a los usuarios crear y compartir documentos Jupyter, que pueden contener código, texto enriquecido, visualizaciones, ecuaciones y widgets interactivos.</p><p>Algunas características clave de JupyterLab incluyen:</p><ol class="wp-block-list"><li><strong>Interfaz modular</strong>: Permite organizar y personalizar el entorno de trabajo con múltiples paneles y pestañas para editar archivos, ejecutar código, ver resultados y explorar datos.</li><li><strong>Soporte multi-lenguaje</strong>: Es compatible con varios lenguajes de programación, incluidos Python, R, Julia y muchos otros, lo que permite desarrollar y ejecutar código en diferentes entornos.</li><li><strong>Visualización interactiva</strong>: Ofrece capacidades avanzadas de visualización de datos mediante la integración con bibliotecas como Matplotlib, Plotly y Bokeh, lo que permite crear gráficos interactivos y dashboards.</li><li><strong>Extensiones y complementos</strong>: Permite la instalación de extensiones y complementos para ampliar su funcionalidad, como soporte para Git, editores de Markdown, y herramientas de depuración.</li><li><strong>Colaboración y versionamiento</strong>: Facilita la colaboración en proyectos mediante la integración con sistemas de control de versiones como Git, lo que permite realizar un seguimiento de los cambios en los documentos y colaborar con otros usuarios.</li></ol><p>En resumen, JupyterLab es una poderosa herramienta para el desarrollo interactivo y la exploración de datos, que ofrece flexibilidad, personalización y colaboración en un entorno basado en web.</p><p>En esta guía, lo guiaremos paso a paso a través de la instalación de JupyterLab en Ubuntu24.04. Instalará JupyterLab en el entorno virtual Python, ejecutando JupyterLab como un servicio systemd, luego instalará y configurará Nginx como un proxy inverso para JupyterLab.</p><h2 class="wp-block-heading" id="prerequisites">Requisitos previos</h2><p>Antes de comenzar, confirme que tiene lo siguiente:</p><ul class="wp-block-list"><li>Un servidor con Ubuntu 24.04.</li><li>Un usuario no root con privilegios de administrador.</li></ul><h2 class="wp-block-heading" id="installing-dependencies">Instalación de dependencias</h2><p>En esta sección, instalará las dependencias de paquetes para Jupyter, que incluyen <em>Python3</em> , el administrador de paquetes <em>Pip</em> , <em>el entorno virtual Python venv</em> y <em>Node.js.</em></p><p>Antes de comenzar, actualice y actualice el índice de su paquete Debian usando el siguiente comando.</p><pre class="wp-block-code"><code>sudo apt update</code></pre><p>Ahora instale las dependencias ejecutando el siguiente comando apt install. Con esto, instalará <em>Python3</em> , el administrador de paquetes <em>Pip</em> , la administración del entorno virtual <em>venv</em> y <em>Node.js.</em></p><pre class="wp-block-code"><code>sudo apt install python3 python3-pip python3-venv nodejs</code></pre><p>Pulsa <strong>Enter</strong> para confirmar y continuar con la instalación.</p><figure class="wp-block-image size-large"><img decoding="async" width="1024" height="347" src="https://veselin.es/wp-content/uploads/2024/05/Como-instalar-JupyterLab-en-Ubuntu-24.04-1024x347.png" alt="Como instalar JupyterLab en Ubuntu 24.04" class="wp-image-6187" srcset="https://veselin.es/wp-content/uploads/2024/05/Como-instalar-JupyterLab-en-Ubuntu-24.04-1024x347.png 1024w, https://veselin.es/wp-content/uploads/2024/05/Como-instalar-JupyterLab-en-Ubuntu-24.04-300x102.png 300w, https://veselin.es/wp-content/uploads/2024/05/Como-instalar-JupyterLab-en-Ubuntu-24.04-768x260.png 768w, https://veselin.es/wp-content/uploads/2024/05/Como-instalar-JupyterLab-en-Ubuntu-24.04.png 1031w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure><p>Una vez instaladas las dependencias, ejecute el siguiente comando para verificar la versión de cada dependencia, incluidos Python3, Pip y Node.js.</p><pre class="wp-block-code"><code>python3 --version
|
|
pip3 --version
|
|
node --version</code></pre><p>El siguiente resultado muestra que Python <strong>3.12</strong> , Pip <strong>24</strong> y Node.js <strong>18.19</strong> están instalados.</p><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="845" height="201" src="https://veselin.es/wp-content/uploads/2024/05/01.png" alt="Guía para instalar JupyterLab en Ubuntu 24.04" class="wp-image-6188" srcset="https://veselin.es/wp-content/uploads/2024/05/01.png 845w, https://veselin.es/wp-content/uploads/2024/05/01-300x71.png 300w, https://veselin.es/wp-content/uploads/2024/05/01-768x183.png 768w" sizes="auto, (max-width: 845px) 100vw, 845px" /></figure><h2 class="wp-block-heading" id="installing-jupyter">Instalación de Jupyter</h2><p>Después de instalar las dependencias, instalará los metapaquetes de Jupyter utilizando el entorno virtual Python en la máquina Ubuntu 24.04. Para lograrlo, debes completar lo siguiente:</p><ul class="wp-block-list"><li>Creando un entorno virtual Python</li><li>Instalación de Jupyter</li><li>Configurando JupyterLab</li></ul><p>Empecemos.</p><h3 class="wp-block-heading" id="creating-python-virtual-environment">Creando un entorno virtual Python</h3><p>En esta sección, creará un nuevo entorno virtual de Python que se utilizará para la instalación de Jupyter. Con este escenario, tendrá un entorno de desarrollo aislado que no afectará a todo su sistema. Además, puedes recrear esto a medida que pasa el tiempo.</p><p>Inicie sesión con su usuario no root usando el siguiente comando.</p><pre class="wp-block-code"><code>su - user</code></pre><p>Ahora cree un nuevo directorio <em>~/project</em> y acceda a él. Luego, cree un nuevo entorno virtual llamado venv usando el siguiente comando. Después de ejecutar el comando, se creará el nuevo directorio venv.</p><pre class="wp-block-code"><code>mkdir -p ~/project; cd ~/project
|
|
python3 -m venv venv</code></pre><p>A continuación, ejecute el siguiente comando para activar el entorno virtual venv. Una vez activado, su indicador de shell será como » <strong>(venv) usuario@nombredehost: …</strong> «.</p><pre class="wp-block-code"><code>source venv/bin/activate</code></pre><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="117" src="https://veselin.es/wp-content/uploads/2024/05/02.png" alt="" class="wp-image-6189" srcset="https://veselin.es/wp-content/uploads/2024/05/02.png 656w, https://veselin.es/wp-content/uploads/2024/05/02-300x54.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure><h3 class="wp-block-heading" id="installing-jupyter-2">Instalación de Jupyter</h3><p>Después de crear un entorno virtual Python. instalará el paquete Jupyter a través de Pip. El paquete Jupyter es un metapaquete de ecosistemas de Jupyter, que incluye IPython, JupyterLab, Jupyter Server, Jupyter Notebook, qtconsole y muchos más.</p><p>Ejecute el comando pip3 a continuación para instalar <strong>Jupyter</strong> en su sistema Ubuntu.</p><pre class="wp-block-code"><code>pip3 install jupyter</code></pre><p>Durante la instalación, a continuación se muestra el resultado que se mostrará en su terminal:</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="691" src="https://veselin.es/wp-content/uploads/2024/05/03-1024x691.png" alt="" class="wp-image-6190" srcset="https://veselin.es/wp-content/uploads/2024/05/03-1024x691.png 1024w, https://veselin.es/wp-content/uploads/2024/05/03-300x202.png 300w, https://veselin.es/wp-content/uploads/2024/05/03-768x518.png 768w, https://veselin.es/wp-content/uploads/2024/05/03.png 1055w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Una vez finalizada la instalación, verifique la ubicación del archivo binario de Jupyter y la versión usando el siguiente comando.</p><pre class="wp-block-code"><code>which jupyter
|
|
jupyter --version</code></pre><p>En el siguiente resultado, debería ver que el archivo binario de Jupyter se encuentra dentro del directorio venv. Además, debería ver la versión del paquete Jupyter que está instalado en su sistema.</p><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="665" height="437" src="https://veselin.es/wp-content/uploads/2024/05/04.png" alt="" class="wp-image-6191" srcset="https://veselin.es/wp-content/uploads/2024/05/04.png 665w, https://veselin.es/wp-content/uploads/2024/05/04-300x197.png 300w" sizes="auto, (max-width: 665px) 100vw, 665px" /></figure><h3 class="wp-block-heading" id="configuring-jupyterlab">Configurando JupyterLab</h3><p>JupyterLab es la interfaz de usuario basada en web de próxima generación para el ecosistema Jupyter. Con JupyterLab, puede trabajar con documentos y actividades como Jupyter Notebook, editor de texto y terminal en una sola ventana. JupyterLab le ofrece una experiencia similar a IDE para gestionar y desarrollar proyectos de Jupyter.</p><p>En esta sección, configurará JupyterLab para su proyecto Jupyter. Pero antes de eso, primero debe configurar Jupyter Server para proteger su instalación.</p><p>Primero, ejecute el siguiente comando para generar el archivo de configuración de Jupyter Server y configurar la contraseña. Ingrese su contraseña y repita.</p><pre class="wp-block-code"><code>jupyter server --generate-config
|
|
jupyter server password</code></pre><p>Después de ejecutar el comando, la configuración del servidor Jupyter se generará en el directorio <em>~/.jupyter/</em> .</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="228" src="https://veselin.es/wp-content/uploads/2024/05/05-1024x228.png" alt="" class="wp-image-6192" srcset="https://veselin.es/wp-content/uploads/2024/05/05-1024x228.png 1024w, https://veselin.es/wp-content/uploads/2024/05/05-300x67.png 300w, https://veselin.es/wp-content/uploads/2024/05/05-768x171.png 768w, https://veselin.es/wp-content/uploads/2024/05/05.png 1057w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Puede verificar el contenido de la configuración de Jupyter Server usando el siguiente comando.</p><pre class="wp-block-code"><code>jupyter server --show-config</code></pre><p>Se mostrará el resultado similar a continuación:</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="249" src="https://veselin.es/wp-content/uploads/2024/05/06-1024x249.png" alt="" class="wp-image-6193" srcset="https://veselin.es/wp-content/uploads/2024/05/06-1024x249.png 1024w, https://veselin.es/wp-content/uploads/2024/05/06-300x73.png 300w, https://veselin.es/wp-content/uploads/2024/05/06-768x187.png 768w, https://veselin.es/wp-content/uploads/2024/05/06.png 1056w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>A continuación, ejecute el siguiente comando para generar una nueva configuración para JupyterLab. La configuración de JupyterLab se generará en el directorio <em>~/.jupyter/</em> .</p><pre class="wp-block-code"><code>jupyter lab --generate-config</code></pre><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="917" height="93" src="https://veselin.es/wp-content/uploads/2024/05/07.png" alt="" class="wp-image-6194" srcset="https://veselin.es/wp-content/uploads/2024/05/07.png 917w, https://veselin.es/wp-content/uploads/2024/05/07-300x30.png 300w, https://veselin.es/wp-content/uploads/2024/05/07-768x78.png 768w" sizes="auto, (max-width: 917px) 100vw, 917px" /></figure><p>Una vez generada la configuración, verifique la configuración de JupyterLab mediante el siguiente comando.</p><pre class="wp-block-code"><code>jupyter lab --show-config</code></pre><p>A continuación se muestra un ejemplo de configuración de JupyterLab:</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="314" src="https://veselin.es/wp-content/uploads/2024/05/08-1024x314.png" alt="" class="wp-image-6195" srcset="https://veselin.es/wp-content/uploads/2024/05/08-1024x314.png 1024w, https://veselin.es/wp-content/uploads/2024/05/08-300x92.png 300w, https://veselin.es/wp-content/uploads/2024/05/08-768x236.png 768w, https://veselin.es/wp-content/uploads/2024/05/08.png 1056w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Ahora puede ejecutar la instalación de JupyterLab usando el siguiente comando. Asegúrese de cambiar la dirección IP con la dirección IP de su servidor.</p><pre class="wp-block-code"><code>jupyter lab --ip 192.168.1.100</code></pre><p>JupyterLab se ejecutará en la dirección IP de su servidor con el puerto predeterminado <strong>8888</strong> . Se puede acceder a JupyterLab a través de la ruta URL <em>/lab</em> .</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="629" src="https://veselin.es/wp-content/uploads/2024/05/09-1024x629.png" alt="" class="wp-image-6196" srcset="https://veselin.es/wp-content/uploads/2024/05/09-1024x629.png 1024w, https://veselin.es/wp-content/uploads/2024/05/09-300x184.png 300w, https://veselin.es/wp-content/uploads/2024/05/09-768x472.png 768w, https://veselin.es/wp-content/uploads/2024/05/09.png 1237w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Abra su navegador web y visite la dirección IP de su servidor seguida del puerto <strong>8888</strong> y la ruta <em>/lab</em> , como <a href="http://192.168.10.15:8888/lab">http://192.168.1.100:8888/lab</a> . Ingrese su contraseña de Jupyter Server y haga clic en <strong>Iniciar sesión</strong> para continuar.</p><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="818" height="270" src="https://veselin.es/wp-content/uploads/2024/05/10.png" alt="" class="wp-image-6197" srcset="https://veselin.es/wp-content/uploads/2024/05/10.png 818w, https://veselin.es/wp-content/uploads/2024/05/10-300x99.png 300w, https://veselin.es/wp-content/uploads/2024/05/10-768x253.png 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></figure><p>Si tiene la contraseña adecuada, debería ver el panel de usuario de JupyterLab como el siguiente:</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="788" src="https://veselin.es/wp-content/uploads/2024/05/11-1024x788.png" alt="" class="wp-image-6198" srcset="https://veselin.es/wp-content/uploads/2024/05/11-1024x788.png 1024w, https://veselin.es/wp-content/uploads/2024/05/11-300x231.png 300w, https://veselin.es/wp-content/uploads/2024/05/11-768x591.png 768w, https://veselin.es/wp-content/uploads/2024/05/11.png 1092w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Ahora puede presionar <strong>Ctrl+c</strong> dos veces para finalizar el proceso de JupyterLab.</p><h2 class="wp-block-heading" id="running-jupyterlab-as-a-systemd-service">Ejecutando JupyterLab como un servicio Systemd</h2><p>En el siguiente paso, creará un nuevo archivo de servicio systemd que se utilizará para ejecutar JupyterLab. De esta manera, su instalación de JupyterLab se ejecutará en segundo plano como un servicio systemd y podrá administrar JupyterLab fácilmente a través de la utilidad systemctl.</p><p>Cree un nuevo archivo de servicio systemd <em>/etc/systemd/system/jupyterlab.service</em> usando el siguiente comando del nano editor.</p><pre class="wp-block-code"><code>sudo nano /etc/systemd/system/jupyterlab.service</code></pre><p>Inserte la siguiente configuración y asegúrese de cambiar el nombre de usuario <strong>vesko</strong> .</p><pre class="wp-block-code"><code>[Unit]
|
|
Description=JupyterLab Service
|
|
|
|
[Service]
|
|
Type=simple
|
|
PIDFile=/run/jupyter.pid
|
|
ExecStart=/home/vesko/project/venv/bin/jupyter lab --config=/home/vesko/.jupyter/jupyter_lab_config.py
|
|
User=vesko
|
|
Group=vesko
|
|
WorkingDirectory=/home/vesko/project
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
</code></pre><p>Cuando termine, guarde y cierre el archivo.</p><p>Ahora ejecute el siguiente comando <em>systemctl</em> para recargar el administrador systemd y aplicar los cambios.</p><pre class="wp-block-code"><code>sudo systemctl daemon-reload</code></pre><p>Luego, inicie y habilite el servicio jupyterlab usando el siguiente comando.</p><pre class="wp-block-code"><code>sudo systemctl start jupyterlab
|
|
sudo systemctl enable jupyterlab</code></pre><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="194" src="https://veselin.es/wp-content/uploads/2024/05/12-1024x194.png" alt="" class="wp-image-6199" srcset="https://veselin.es/wp-content/uploads/2024/05/12-1024x194.png 1024w, https://veselin.es/wp-content/uploads/2024/05/12-300x57.png 300w, https://veselin.es/wp-content/uploads/2024/05/12-768x145.png 768w, https://veselin.es/wp-content/uploads/2024/05/12.png 1238w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Por último, verifique el servicio jupyterlab para asegurarse de que se esté ejecutando.</p><pre class="wp-block-code"><code>sudo systemctl status jupyterlab</code></pre><p>El siguiente resultado confirma que el servicio jupyterlab se está ejecutando.</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="473" src="https://veselin.es/wp-content/uploads/2024/05/13-1024x473.png" alt="" class="wp-image-6200" srcset="https://veselin.es/wp-content/uploads/2024/05/13-1024x473.png 1024w, https://veselin.es/wp-content/uploads/2024/05/13-300x139.png 300w, https://veselin.es/wp-content/uploads/2024/05/13-768x355.png 768w, https://veselin.es/wp-content/uploads/2024/05/13.png 1238w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><h2 class="wp-block-heading" id="configuring-nginx-as-a-reverse-proxy-for-jupyter">Configurar Nginx como proxy inverso para Jupyter</h2><p>En esta guía, ejecutará JupyterLab con Nginx como proxy inverso. Para lograrlo, debes completar lo siguiente:</p><ul class="wp-block-list"><li>Permitir el acceso remoto a JupyterLab</li><li>Instalación y configuración de Nginx como proxy inverso</li></ul><h3 class="wp-block-heading" id="allowing-remote-access-to-jupyterlab">Permitir el acceso remoto a JupyterLab</h3><p>De forma predeterminada, solo se puede acceder a la instalación de JupyterLab a través de una dirección IP local. Para permitir la conexión remota, debe modificar la configuración predeterminada de JupyterLab.</p><p>Abra la configuración de JupyterLab <em>~/.jupyter/jupyter_lab_config.py</em> usando el siguiente comando del nano editor.</p><pre class="wp-block-code"><code>nano ~/.jupyter/jupyter_lab_config.py</code></pre><p>Descomente la opción <strong>c.ServerApp.allow_remote_access</strong> y cambie el valor a <strong>True</strong> . Esto hará que JupyterLab sea accesible desde una conexión remota, lo que incluye ejecutar JupyterLab detrás de un proxy inverso.</p><pre class="wp-block-code"><code>c.ServerApp.allow_remote_access = True</code></pre><p>Guarde el archivo y salga del editor cuando haya terminado.</p><p>Ahora ejecute el siguiente comando <em>systemctl</em> para reiniciar el servicio jupyterlab y aplicar los cambios.</p><pre class="wp-block-code"><code>sudo systemctl restart jupyterlab</code></pre><p>Luego, verifique el servicio jupyterlab usando el siguiente comando.</p><pre class="wp-block-code"><code>sudo systemctl status jupyterlab</code></pre><p>En el resultado inferior, debería ver el token generado para acceder a su instalación de JupyterLab y asegúrese de copiarlo para la siguiente sección.</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1149" height="128" src="https://veselin.es/wp-content/uploads/2024/05/14-1024x114.png" alt="" class="wp-image-6201" srcset="https://veselin.es/wp-content/uploads/2024/05/14-1024x114.png 1024w, https://veselin.es/wp-content/uploads/2024/05/14-300x33.png 300w, https://veselin.es/wp-content/uploads/2024/05/14-768x86.png 768w, https://veselin.es/wp-content/uploads/2024/05/14.png 1149w" sizes="auto, (max-width: 1149px) 100vw, 1149px" /></figure><h3 class="wp-block-heading" id="installing-and-configuring-nginx-as-a-reverse-proxy">Instalación y configuración de Nginx como proxy inverso</h3><p>Después de permitir el acceso remoto a JupyterLab, luego instalará Nginx y lo configurará como un proxy inverso para su instalación de JupyterLab.</p><p>Instale Nginx ejecutando el comando apt install a continuación.</p><pre class="wp-block-code"><code>sudo apt install nginx -y</code></pre><p>A continuación se muestra el resultado durante la instalación de Nginx.</p><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="678" height="255" src="https://veselin.es/wp-content/uploads/2024/05/15.png" alt="Como instalar JupyterLab en Ubuntu 24.04" class="wp-image-6202" srcset="https://veselin.es/wp-content/uploads/2024/05/15.png 678w, https://veselin.es/wp-content/uploads/2024/05/15-300x113.png 300w" sizes="auto, (max-width: 678px) 100vw, 678px" /></figure><p>Después de instalar Nginx, cree una nueva configuración de bloque de servidor <em>/etc/nginx/sites-available/jupyterlab</em> usando el siguiente nano editor.</p><pre class="wp-block-code"><code>sudo nano /etc/nginx/sites-available/jupyterlab</code></pre><p>Inserte la siguiente configuración y asegúrese de cambiar el nombre de dominio dentro de la opción <strong>server_name</strong> .</p><pre class="wp-block-code"><code>server {
|
|
listen 80;
|
|
server_name jupyterlab.veselin.es;
|
|
|
|
access_log /var/log/nginx/veselin.es.access.log;
|
|
error_log /var/log/nginx/veselin.es.error.log;
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:8888;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header Host $http_host;
|
|
proxy_http_version 1.1;
|
|
proxy_redirect off;
|
|
proxy_buffering off;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_read_timeout 86400;
|
|
}
|
|
}
|
|
</code></pre><p>Guarde y salga del archivo cuando haya terminado.</p><p>Ahora ejecute el siguiente comando para activar el archivo de bloqueo del servidor <em>/etc/nginx/sites-available/jupyterlab</em> y verifique la configuración de Nginx.</p><pre class="wp-block-code"><code>sudo ln -s /etc/nginx/sites-available/jupyterlab /etc/nginx/sites-enabled/
|
|
sudo nginx -t</code></pre><p>Si tiene la sintaxis Nginx adecuada, debería obtener el resultado » <strong>la sintaxis está bien, la prueba fue exitosa</strong> «.</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="183" src="https://veselin.es/wp-content/uploads/2024/05/16-1024x183.png" alt="Como instalar JupyterLab en Ubuntu 24.04" class="wp-image-6203" srcset="https://veselin.es/wp-content/uploads/2024/05/16-1024x183.png 1024w, https://veselin.es/wp-content/uploads/2024/05/16-300x54.png 300w, https://veselin.es/wp-content/uploads/2024/05/16-768x137.png 768w, https://veselin.es/wp-content/uploads/2024/05/16.png 1188w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Por último, ejecute el comando systemctl a continuación para reiniciar el servicio nginx y aplicar los cambios. Luego, verifíquelo para asegurarse de que el servicio se esté ejecutando.</p><pre class="wp-block-code"><code>sudo systemctl restart nginx
|
|
sudo systemctl status nginx</code></pre><p>Si Nginx se está ejecutando, debería <strong>activar la salida (en ejecución)</strong> .</p><h2 class="wp-block-heading" id="access-jupyterlab-installation-via-local-machine">Acceda a la instalación de JupyterLab a través de la máquina local</h2><p>Para acceder a JupyterLab a través del nombre de dominio, puede utilizar el archivo <em>/etc/hosts</em> para clientes Linux o el archivo <em>C:\Windows\System32\drivers\etc\hosts</em> para usuarios de Windows.</p><p>Abra el archivo <em>/etc/hosts</em> en su cliente Linux usando el editor nano.</p><pre class="wp-block-code"><code>sudo nano /etc/hosts</code></pre><p>Inserte la siguiente configuración en el archivo y asegúrese de cambiar la dirección IP y el nombre de dominio con su información.</p><pre class="wp-block-code"><code>192.168.1.100 jupyterlab.veselin.es</code></pre><p>Guarde y salga del archivo cuando haya terminado.</p><p>A continuación, abra su navegador web y visite el nombre de dominio de su instalación de JupyterLab, como <a href="https://veselin.es/problemas-comunes-al-instalar-librerias-con-pip/" target="_blank" rel="noreferrer noopener">http://jupyterlab.veselin.es</a> . Si su instalación es exitosa, debería obtener la página de inicio de sesión de JupyterLab.</p><p>En la página inferior, ingrese la contraseña generada y la nueva para su instalación de JupyterLab. Luego haga clic en el botón <strong>Iniciar sesión y establezca una nueva contraseña</strong> .</p><figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="626" height="899" src="https://veselin.es/wp-content/uploads/2024/05/18.png" alt="Como instalar JupyterLab en Ubuntu 24.04" class="wp-image-6204" srcset="https://veselin.es/wp-content/uploads/2024/05/18.png 626w, https://veselin.es/wp-content/uploads/2024/05/18-209x300.png 209w" sizes="auto, (max-width: 626px) 100vw, 626px" /></figure><p>Si todo va bien, debería ser redirigido al panel de JupyterLab como se muestra a continuación.</p><figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="745" src="https://veselin.es/wp-content/uploads/2024/05/19-1024x745.png" alt="Como instalar JupyterLab en Ubuntu 24.04" class="wp-image-6205" srcset="https://veselin.es/wp-content/uploads/2024/05/19-1024x745.png 1024w, https://veselin.es/wp-content/uploads/2024/05/19-300x218.png 300w, https://veselin.es/wp-content/uploads/2024/05/19-768x559.png 768w, https://veselin.es/wp-content/uploads/2024/05/19.png 1062w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><p>Con esto, la instalación de JupyterLab estará completa.</p><h2 class="wp-block-heading" id="conclusion">Conclusión</h2><p>Al completar esta guía paso a paso, habrá completado la instalación de JupyterLab en el servidor Ubuntu 24.04. Instaló JupyterLab usando el entorno virtual Python, ejecutó JupyterLab en segundo plano como un servicio systemd y configuró Nginx como un proxy inverso para JupyterLab. Ahora puedes crear y administrar tu proyecto Jupyter.</p><div class='heateor_sss_sharing_container heateor_sss_vertical_sharing heateor_sss_bottom_sharing' style='width:44px;left: -10px;top: 100px;-webkit-box-shadow:none;box-shadow:none;' data-heateor-sss-href='https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/'><div class="heateor_sss_sharing_ul"><a aria-label="Facebook" class="heateor_sss_facebook" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Facebook" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg" style="background-color:#0765FE;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path fill="#fff" d="M28 16c0-6.627-5.373-12-12-12S4 9.373 4 16c0 5.628 3.875 10.35 9.101 11.647v-7.98h-2.474V16H13.1v-1.58c0-4.085 1.849-5.978 5.859-5.978.76 0 2.072.15 2.608.298v3.325c-.283-.03-.775-.045-1.386-.045-1.967 0-2.728.745-2.728 2.683V16h3.92l-.673 3.667h-3.247v8.245C23.395 27.195 28 22.135 28 16Z"></path></svg></span></a><a aria-label="Twitter" class="heateor_sss_button_twitter" href="https://twitter.com/intent/tweet?text=Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04&url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Twitter" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg heateor_sss_s__default heateor_sss_s_twitter" style="background-color:#55acee;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-4 -4 39 39"><path d="M28 8.557a9.913 9.913 0 0 1-2.828.775 4.93 4.93 0 0 0 2.166-2.725 9.738 9.738 0 0 1-3.13 1.194 4.92 4.92 0 0 0-3.593-1.55 4.924 4.924 0 0 0-4.794 6.049c-4.09-.21-7.72-2.17-10.15-5.15a4.942 4.942 0 0 0-.665 2.477c0 1.71.87 3.214 2.19 4.1a4.968 4.968 0 0 1-2.23-.616v.06c0 2.39 1.7 4.38 3.952 4.83-.414.115-.85.174-1.297.174-.318 0-.626-.03-.928-.086a4.935 4.935 0 0 0 4.6 3.42 9.893 9.893 0 0 1-6.114 2.107c-.398 0-.79-.023-1.175-.068a13.953 13.953 0 0 0 7.55 2.213c9.056 0 14.01-7.507 14.01-14.013 0-.213-.005-.426-.015-.637.96-.695 1.795-1.56 2.455-2.55z" fill="#fff"></path></svg></span></a><a aria-label="Linkedin" class="heateor_sss_button_linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F" title="Linkedin" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg heateor_sss_s__default heateor_sss_s_linkedin" style="background-color:#0077b5;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path d="M6.227 12.61h4.19v13.48h-4.19V12.61zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187V12.61z" fill="#fff"></path></svg></span></a><a aria-label="Tumblr" class="heateor_sss_button_tumblr" href="https://www.tumblr.com/widgets/share/tool?posttype=link&canonicalUrl=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F&title=Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04&caption=" title="Tumblr" rel="nofollow noopener" target="_blank" style="font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="heateor_sss_svg aheateor_sss_s__default heateor_sss_s_tumblr" style="background-color:#29435d;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-2 -2 36 36"><path fill="#fff" d="M20.775 21.962c-.37.177-1.08.33-1.61.345-1.598.043-1.907-1.122-1.92-1.968v-6.217h4.007V11.1H17.26V6.02h-2.925s-.132.044-.144.15c-.17 1.556-.895 4.287-3.923 5.378v2.578h2.02v6.522c0 2.232 1.647 5.404 5.994 5.33 1.467-.025 3.096-.64 3.456-1.17l-.96-2.846z"/></svg></span></a><a class="heateor_sss_more" aria-label="More" title="More" rel="nofollow noopener" style="font-size: 32px!important;border:0;box-shadow:none;display:inline-block!important;font-size:16px;padding:0 4px;vertical-align: middle;display:inline;" href="https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/" onclick="event.preventDefault()"><span class="heateor_sss_svg" style="background-color:#ee8e2d;width:40px;height:40px;margin:0;display:inline-block!important;opacity:1;float:left;font-size:32px!important;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;display:inline;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box;" onclick="heateorSssMoreSharingPopup(this, 'https://veselin.es/como-instalar-jupyterlab-en-ubuntu-24-04/', 'Como%20instalar%20JupyterLab%20en%20Ubuntu%2024.04', '' )"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-.3 0 32 32" version="1.1" width="100%" height="100%" style="display:block;" xml:space="preserve"><g><path fill="#fff" d="M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z" fill-rule="evenodd"></path></g></svg></span></a></div><div class="heateorSssClear"></div></div></div></div></article><nav class="navigation post-navigation" aria-label="Entradas"><div class="nav-links"><div class="nav-previous"><a title="Como instalar CSF (Config Server Firewall) en Debian 12" href="https://veselin.es/como-instalar-csf-config-server-firewall-en-debian-12/" rel="prev"><span class="ast-left-arrow" aria-hidden="true">←</span> Entrada anterior</a></div><div class="nav-next"><a title="CUDA y cuDNN en servidor Ubuntu 24.04" href="https://veselin.es/cuda-y-cudnn-en-servidor-ubuntu-24-04/" rel="next">Entrada siguiente <span class="ast-right-arrow" aria-hidden="true">→</span></a></div></div></nav><div class="ast-single-related-posts-container ast-container--fallback"><div class="ast-related-posts-title-section"><h2 class="ast-related-posts-title"> Te puede interesar</h2></div><div class="ast-related-posts-wrapper"><article class="ast-related-post post-21 post type-post status-publish format-standard has-post-thumbnail hentry category-linux-el-libre-pensamiento tag-actualizar tag-arm tag-hackers-eticos tag-kali-linux tag-kali-linux-2020-2 tag-novedades tag-powershell"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre Kali Linux 2020.2 disponible" href="https://veselin.es/kali-linux-2020-2-disponible/"><img width="1024" height="576" src="https://veselin.es/wp-content/uploads/2020/05/Kali-Linux-2020.2-1024x576.jpg" class="attachment-large size-large wp-post-image" alt="Kali Linux 2020.2" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2020/05/Kali-Linux-2020.2-1024x576.jpg 1024w, https://veselin.es/wp-content/uploads/2020/05/Kali-Linux-2020.2-300x169.jpg 300w, https://veselin.es/wp-content/uploads/2020/05/Kali-Linux-2020.2-768x432.jpg 768w, https://veselin.es/wp-content/uploads/2020/05/Kali-Linux-2020.2.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/kali-linux-2020-2-disponible/" target="_self" rel="bookmark noopener noreferrer">Kali Linux 2020.2 disponible</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article><article class="ast-related-post post-4424 post type-post status-publish format-standard has-post-thumbnail hentry category-linux-el-libre-pensamiento category-tecnologia-y-novedades-en-inteligencia-artificial tag-administracion tag-citrix-hipervisor tag-debian-10-04 tag-kernel-5-4 tag-maquinas-virtuales tag-microsoft-hyper-v tag-proxmox-ve-6-2 tag-vmware-vsphere"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre Proxmox VE 6.2 llega con base en Debian 10.04" href="https://veselin.es/proxmox-ve-6-2-llega-con-base-en-debian-10-04/"><img width="1024" height="768" src="https://veselin.es/wp-content/uploads/2020/05/Proxmox-VE-6.2-llega-con-base-en-Debian-10.04.png" class="attachment-large size-large wp-post-image" alt="Proxmox VE 6.2 llega con base en Debian 10.04" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2020/05/Proxmox-VE-6.2-llega-con-base-en-Debian-10.04.png 1024w, https://veselin.es/wp-content/uploads/2020/05/Proxmox-VE-6.2-llega-con-base-en-Debian-10.04-300x225.png 300w, https://veselin.es/wp-content/uploads/2020/05/Proxmox-VE-6.2-llega-con-base-en-Debian-10.04-768x576.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/proxmox-ve-6-2-llega-con-base-en-debian-10-04/" target="_self" rel="bookmark noopener noreferrer">Proxmox VE 6.2 llega con base en Debian 10.04</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article><article class="ast-related-post post-4425 post type-post status-publish format-standard has-post-thumbnail hentry category-investigacion tag-captcha tag-curiosidades tag-curiosidades-del-mundo tag-einiac tag-informatica tag-internautas tag-mundo-de-la-informatica tag-virus-informatico"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre Curiosidades del mundo de la informática" href="https://veselin.es/curiosidades-del-mundo-de-la-informatica/"><img width="670" height="670" src="https://veselin.es/wp-content/uploads/2021/05/bg-04-free-img.jpg" class="attachment-large size-large wp-post-image" alt="Curiosidades del mundo de la informática" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2021/05/bg-04-free-img.jpg 670w, https://veselin.es/wp-content/uploads/2021/05/bg-04-free-img-300x300.jpg 300w, https://veselin.es/wp-content/uploads/2021/05/bg-04-free-img-150x150.jpg 150w" sizes="auto, (max-width: 670px) 100vw, 670px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/curiosidades-del-mundo-de-la-informatica/" target="_self" rel="bookmark noopener noreferrer">Curiosidades del mundo de la informática</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article><article class="ast-related-post post-4426 post type-post status-publish format-standard has-post-thumbnail hentry category-linux-el-libre-pensamiento tag-gnome-terminal tag-kde tag-linux tag-rxvt tag-shell tag-terminal tag-terminator tag-tty tag-xterm"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre El poder de Linux y sus programas de Terminal" href="https://veselin.es/el-poder-de-linux-y-sus-programas-de-terminal/"><img width="772" height="458" src="https://veselin.es/wp-content/uploads/2020/05/El-poder-de-Linux-y-sus-programas-de-Terminal.png" class="attachment-large size-large wp-post-image" alt="El poder de Linux y sus programas de Terminal" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2020/05/El-poder-de-Linux-y-sus-programas-de-Terminal.png 772w, https://veselin.es/wp-content/uploads/2020/05/El-poder-de-Linux-y-sus-programas-de-Terminal-300x178.png 300w, https://veselin.es/wp-content/uploads/2020/05/El-poder-de-Linux-y-sus-programas-de-Terminal-768x456.png 768w" sizes="auto, (max-width: 772px) 100vw, 772px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/el-poder-de-linux-y-sus-programas-de-terminal/" target="_self" rel="bookmark noopener noreferrer">El poder de Linux y sus programas de Terminal</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article><article class="ast-related-post post-4427 post type-post status-publish format-standard has-post-thumbnail hentry category-linux-el-libre-pensamiento tag-actualizar tag-configuracion tag-escritorios-linux tag-kde tag-kde-plasma tag-kde-plasma-5-19 tag-ubuntu"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre KDE Plasma 5.19 está disponible" href="https://veselin.es/kde-plasma-5-19-esta-disponible/"><img width="1024" height="614" src="https://veselin.es/wp-content/uploads/2020/06/KDE-Plasma-5.19-Esta-Disponible-1024x614.jpg" class="attachment-large size-large wp-post-image" alt="KDE Plasma 5.19 Está Disponible" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2020/06/KDE-Plasma-5.19-Esta-Disponible-1024x614.jpg 1024w, https://veselin.es/wp-content/uploads/2020/06/KDE-Plasma-5.19-Esta-Disponible-300x180.jpg 300w, https://veselin.es/wp-content/uploads/2020/06/KDE-Plasma-5.19-Esta-Disponible-768x461.jpg 768w, https://veselin.es/wp-content/uploads/2020/06/KDE-Plasma-5.19-Esta-Disponible.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/kde-plasma-5-19-esta-disponible/" target="_self" rel="bookmark noopener noreferrer">KDE Plasma 5.19 está disponible</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article><article class="ast-related-post post-2741 post type-post status-publish format-standard has-post-thumbnail hentry category-tecnologia-y-novedades-en-inteligencia-artificial tag-blackarch tag-blackarch-linux tag-ciberseguridad tag-curiosidades tag-instalacion tag-linux tag-paso-a-paso tag-ping"><div class="ast-related-posts-inner-section"><div class="ast-related-post-content"><div class="ast-related-post-featured-section post-has-thumb"><div class="post-thumb-img-content post-thumb"><a aria-label="Lee más sobre Instalar BlackArch Linux paso a paso" href="https://veselin.es/instalar-blackarch-linux-paso-a-paso/"><img width="1024" height="576" src="https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux-1024x576.webp" class="attachment-large size-large wp-post-image" alt="Instalar BlackArch Linux paso a paso" itemprop="" decoding="async" loading="lazy" srcset="https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux-1024x576.webp 1024w, https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux-300x169.webp 300w, https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux-768x432.webp 768w, https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux-1536x864.webp 1536w, https://veselin.es/wp-content/uploads/2020/10/BlackArch-Linux.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></div></div><header class="entry-header related-entry-header"><h3 class="ast-related-post-title entry-title">
|
|
<a href="https://veselin.es/instalar-blackarch-linux-paso-a-paso/" target="_self" rel="bookmark noopener noreferrer">Instalar BlackArch Linux paso a paso</a></h3><div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"></div></header><div class="entry-content clear"></div></div></div></article></div></div><div id="comments" class="comments-area comment-form-position-below "><h3 class="comments-title">
|
|
4 comentarios en “Como instalar JupyterLab en Ubuntu 24.04”</h3><ol class="ast-comment-list"><li class="pingback even thread-even depth-1" id="comment-44"><p>Pingback: <a href="https://veselin.es/cuda-y-cudnn-en-servidor-ubuntu-24-04/" class="url" rel="ugc">CUDA y cuDNN en servidor Ubuntu 24.04</a></p></li></li><li class="pingback odd alt thread-odd thread-alt depth-1" id="comment-45"><p>Pingback: <a href="https://veselin.es/como-entrenar-un-chatbot-con-json/" class="url" rel="ugc">Como entrenar un Chatbot con JSON</a></p></li></li><li class="pingback even thread-even depth-1" id="comment-47"><p>Pingback: <a href="https://veselin.es/guia-de-instalacion-y-configuracion-de-comfyui-en-ubuntu-24-04/" class="url" rel="ugc">Guía de Instalación y Configuración de ComfyUI en Ubuntu 24.04</a></p></li></li><li class="pingback odd alt thread-odd thread-alt depth-1" id="comment-136"><p>Pingback: <a href="https://veselin.es/como-instalar-herramientas-de-hacking-en-ubuntu-24-04-guia-completa-paso-a-paso/" class="url" rel="ugc">Instalar Herramientas de Hacking en Ubuntu 24.04</a></p></li></li></ol><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">Deja un comentario <small><a rel="nofollow" id="cancel-comment-reply-link" href="/como-instalar-jupyterlab-en-ubuntu-24-04/#respond" style="display:none;">Cancelar respuesta</a></small></h3><p class="must-log-in">Lo siento, debes estar <a href="https://veselin.es/wp-login.php?redirect_to=https%3A%2F%2Fveselin.es%2Fcomo-instalar-jupyterlab-en-ubuntu-24-04%2F">conectado</a> para publicar un comentario.</p></div></div></main></div><div class="widget-area secondary" id="secondary" itemtype="https://schema.org/WPSideBar" itemscope="itemscope"><div class="sidebar-main" ><aside id="search-1" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://veselin.es/">
|
|
<label for="search-field">
|
|
<span class="screen-reader-text">Buscar por:</span>
|
|
<input type="search" id="search-field" class="search-field" placeholder="Buscar..." value="" name="s" tabindex="-1">
|
|
<button class="search-submit ast-search-submit" aria-label="Enviar la búsqueda">
|
|
<span hidden>Buscar</span>
|
|
<i><span class="ast-icon icon-search"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="-893 477 142 142" enable-background="new -888 480 142 142" xml:space="preserve">
|
|
<path d="M-787.4,568.7h-6.3l-2.4-2.4c7.9-8.7,12.6-20.5,12.6-33.1c0-28.4-22.9-51.3-51.3-51.3 c-28.4,0-51.3,22.9-51.3,51.3c0,28.4,22.9,51.3,51.3,51.3c12.6,0,24.4-4.7,33.1-12.6l2.4,2.4v6.3l39.4,39.4l11.8-11.8L-787.4,568.7 L-787.4,568.7z M-834.7,568.7c-19.7,0-35.5-15.8-35.5-35.5c0-19.7,15.8-35.5,35.5-35.5c19.7,0,35.5,15.8,35.5,35.5 C-799.3,553-815,568.7-834.7,568.7L-834.7,568.7z" />
|
|
</svg></span></i>
|
|
</button>
|
|
</label>
|
|
<input type="submit" class="search-submit" value="Buscar"></form></aside><aside id="recent-posts-1" class="widget widget_recent_entries"><h2 class="widget-title">Entradas recientes</h2><nav aria-label="Entradas recientes"><ul><li>
|
|
<a href="https://veselin.es/estados-unidos-ha-lanzado-ataques-sobre-iran/">Estados Unidos ha lanzado ataques sobre Irán</a></li><li>
|
|
<a href="https://veselin.es/top-7-fuentes-para-descargar-flujos-de-trabajo-comfyui-bien-configurados-para-stable-video-diffusion-2025/">Top 7 Fuentes para Descargar Flujos de Trabajo ComfyUI Bien Configurados para Stable Video Diffusion (2025)</a></li><li>
|
|
<a href="https://veselin.es/instalacion-de-stable-video-diffusion-svd-en-ubuntu-24-04-con-gpu-nvidia/">Instalación de Stable Video Diffusion (SVD) en Ubuntu 24.04 con GPU NVIDIA</a></li><li>
|
|
<a href="https://veselin.es/minority-report-en-nueva-york-camaras-pre-crimen-en-el-metro/">Minority Report en Nueva York: Cámaras Pre-Crimen en el Metro</a></li><li>
|
|
<a href="https://veselin.es/como-las-startups-tecnologicas-estan-redefiniendo-los-modelos-economicos/">Cómo las startups tecnológicas están redefiniendo los modelos económicos</a></li></ul></nav></aside><aside id="recent-comments-1" class="widget widget_recent_comments"><h2 class="widget-title">Comentarios recientes</h2><nav aria-label="Comentarios recientes"><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href="https://veselin.es/guia-paso-a-paso-para-instalar-blackarch-linux-desde-cero/" class="url" rel="ugc">Guía Paso a Paso para Instalar BlackArch Linux desde Cero</a></span> en <a href="https://veselin.es/ciberseguridad-proactiva-estrategias-para-proteger-tu-negocio-en-la-era-digital/#comment-217">Ciberseguridad Proactiva: Estrategias para Proteger tu Negocio en la Era Digital</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://veselin.es/guia-paso-a-paso-para-instalar-blackarch-linux-desde-cero/" class="url" rel="ugc">Guía Paso a Paso para Instalar BlackArch Linux desde Cero</a></span> en <a href="https://veselin.es/arch-linux-una-guia-completa/#comment-216">Arch Linux: Una Guía Completa</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://veselin.es/como-hacer-un-pentesting-en-redes-wi-fi-publicas/" class="url" rel="ugc">Cómo Hacer un Pentesting en Redes Wi-Fi Públicas</a></span> en <a href="https://veselin.es/guia-completa-como-realizar-un-pentesting-en-aplicaciones-moviles/#comment-211">Guía Completa: Cómo Realizar un Pentesting en Aplicaciones Móviles</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://veselin.es/ataques-de-ingenieria-social-tecnicas-y-como-protegerse/" class="url" rel="ugc">Ataques de Ingeniería Social: Técnicas y Cómo Protegerse</a></span> en <a href="https://veselin.es/proteccion-contra-ransomware-mejores-practicas-para-empresas-y-usuarios/#comment-210">Protección contra Ransomware: Mejores Prácticas para Empresas y Usuarios</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://veselin.es/desmantelando-ataques-ddos-metodos-de-proteccion-efectivos/" class="url" rel="ugc">Desmantelando Ataques DDoS: Métodos de Protección Efectivos</a></span> en <a href="https://veselin.es/como-detectar-brechas-de-seguridad-en-tu-infraestructura-de-red/#comment-209">Cómo Detectar Brechas de Seguridad en tu Infraestructura de Red</a></li></ul></nav></aside><aside id="archives-1" class="widget widget_archive"><h2 class="widget-title">Archivos</h2><nav aria-label="Archivos"><ul><li><a href='https://veselin.es/2025/06/'>junio 2025</a></li><li><a href='https://veselin.es/2025/05/'>mayo 2025</a></li><li><a href='https://veselin.es/2025/04/'>abril 2025</a></li><li><a href='https://veselin.es/2025/03/'>marzo 2025</a></li><li><a href='https://veselin.es/2025/02/'>febrero 2025</a></li><li><a href='https://veselin.es/2025/01/'>enero 2025</a></li><li><a href='https://veselin.es/2024/12/'>diciembre 2024</a></li><li><a href='https://veselin.es/2024/11/'>noviembre 2024</a></li><li><a href='https://veselin.es/2024/10/'>octubre 2024</a></li><li><a href='https://veselin.es/2024/09/'>septiembre 2024</a></li><li><a href='https://veselin.es/2024/08/'>agosto 2024</a></li><li><a href='https://veselin.es/2024/07/'>julio 2024</a></li><li><a href='https://veselin.es/2024/06/'>junio 2024</a></li><li><a href='https://veselin.es/2024/05/'>mayo 2024</a></li><li><a href='https://veselin.es/2024/04/'>abril 2024</a></li><li><a href='https://veselin.es/2024/03/'>marzo 2024</a></li><li><a href='https://veselin.es/2024/01/'>enero 2024</a></li><li><a href='https://veselin.es/2023/12/'>diciembre 2023</a></li><li><a href='https://veselin.es/2023/11/'>noviembre 2023</a></li><li><a href='https://veselin.es/2023/10/'>octubre 2023</a></li><li><a href='https://veselin.es/2023/09/'>septiembre 2023</a></li><li><a href='https://veselin.es/2023/08/'>agosto 2023</a></li><li><a href='https://veselin.es/2023/07/'>julio 2023</a></li><li><a href='https://veselin.es/2023/06/'>junio 2023</a></li><li><a href='https://veselin.es/2023/05/'>mayo 2023</a></li><li><a href='https://veselin.es/2023/04/'>abril 2023</a></li><li><a href='https://veselin.es/2023/03/'>marzo 2023</a></li><li><a href='https://veselin.es/2023/02/'>febrero 2023</a></li><li><a href='https://veselin.es/2023/01/'>enero 2023</a></li><li><a href='https://veselin.es/2022/11/'>noviembre 2022</a></li><li><a href='https://veselin.es/2022/10/'>octubre 2022</a></li><li><a href='https://veselin.es/2021/09/'>septiembre 2021</a></li><li><a href='https://veselin.es/2021/08/'>agosto 2021</a></li><li><a href='https://veselin.es/2020/12/'>diciembre 2020</a></li><li><a href='https://veselin.es/2020/10/'>octubre 2020</a></li><li><a href='https://veselin.es/2020/06/'>junio 2020</a></li><li><a href='https://veselin.es/2020/05/'>mayo 2020</a></li></ul></nav></aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categorías</h2><nav aria-label="Categorías"><ul><li class="cat-item cat-item-198"><a href="https://veselin.es/ciberseguridad/">CIBERSEGURIDAD</a></li><li class="cat-item cat-item-4845"><a href="https://veselin.es/desarrollo-web/">DESARROLLO WEB</a></li><li class="cat-item cat-item-642"><a href="https://veselin.es/descubre-el-vibrante-mundo-de-la-economia/">ECONOMÍA</a></li><li class="cat-item cat-item-44"><a href="https://veselin.es/investigacion/">INVESTIGACIÓN</a></li><li class="cat-item cat-item-14"><a href="https://veselin.es/linux-el-libre-pensamiento/">LINUX</a></li><li class="cat-item cat-item-25"><a href="https://veselin.es/tecnologia-y-novedades-en-inteligencia-artificial/">TECNOLOGÍA</a></li></ul></nav></aside><aside id="meta-1" class="widget widget_meta"><h2 class="widget-title">Meta</h2><nav aria-label="Meta"><ul><li><a rel="nofollow" href="https://veselin.es/wp-login.php?action=register">Registro</a></li><li><a rel="nofollow" href="https://veselin.es/wp-login.php">Acceder</a></li><li><a href="https://veselin.es/feed/">Feed de entradas</a></li><li><a href="https://veselin.es/comments/feed/">Feed de comentarios</a></li><li><a href="https://es.wordpress.org/">WordPress.org</a></li></ul></nav></aside><aside id="block-8" class="widget widget_block"><ul class="wp-block-list"><li></li></ul></aside><aside id="block-9" class="widget widget_block"><ul class="wp-block-page-list"><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/que-es-el-zodiaco-chino-y-como-saber-tu-signo-segun-tu-fecha-de-nacimiento/">¿Qué es el Zodiaco Chino y cómo saber tu signo según tu fecha de nacimiento?</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/acampadas/">Acampadas libre por España</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/asistente/">Asistente</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/barranquismo-en-espana-y-todo-lo-que-necesitas-saber/">Barranquismo en España y Todo lo que Necesitas Saber</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/blog/">BLOG</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/camping-tu-guia-definitiva-para-una-aventura-2/">Camping: Tu Guía Definitiva para una Aventura</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/contacta-con-nosotros/">Contacta con nosotros</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/guia-de-acampadas-para-explorar-la-naturaleza-2/">Guía de Acampadas para Explorar la Naturaleza</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/politica-de-privacidad/">Política de privacidad</a></li><li class="wp-block-pages-list__item"><a class="wp-block-pages-list__item__link" href="https://veselin.es/terminos-y-condiciones/">Términos y Condiciones de veselin.es</a></li></ul></aside><aside id="block-14" class="widget widget_block"><h2>Webs Amigas</h2>
|
|
<br>
|
|
<a href="https://pixelaiforge.com/" target="_blank" rel="noopener noreferrer">
|
|
<img decoding="async" src="https://pixelaiforge.com/wp-content/uploads/2025/04/Pixel-AI-Forge.png" alt="Pixel AI Forge">
|
|
</a>
|
|
<a href="https://vesko.es/" target="_blank" rel="noopener noreferrer">
|
|
<img decoding="async" src="https://vesko.es/wp-content/uploads/2025/05/vesko.png" alt="La web de Vesko">
|
|
</a>
|
|
<a href="https://www.ainhoaweb.es/" target="_blank" rel="noopener noreferrer">
|
|
<img decoding="async" src="https://www.ainhoaweb.es/wp-content/uploads/2022/12/cooltext385200317172352.webp" alt="La web de Ainhoa">
|
|
</a></aside></div></div></div></div><footer
|
|
class="site-footer" id="colophon" itemtype="https://schema.org/WPFooter" itemscope="itemscope" itemid="#colophon"><div class="site-below-footer-wrap ast-builder-grid-row-container site-footer-focus-item ast-builder-grid-row-full ast-builder-grid-row-tablet-full ast-builder-grid-row-mobile-full ast-footer-row-stack ast-footer-row-tablet-stack ast-footer-row-mobile-stack" data-section="section-below-footer-builder"><div class="ast-builder-grid-row-container-inner"><div class="ast-builder-footer-grid-columns site-below-footer-inner-wrap ast-builder-grid-row"><div class="site-footer-below-section-1 site-footer-section site-footer-section-1"><div class="ast-builder-layout-element ast-flex site-footer-focus-item ast-footer-copyright" data-section="section-footer-builder"><div class="ast-footer-copyright"><p>Copyright © 2025 Veselin | Powered by Veselin</p></div></div></div></div></div></div></footer></div> <script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/astra\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/5799d65830fbe636a11b996408a48b56.js?ver=48b56" id="comment-reply-js" data-wp-strategy="async" defer data-deferred="1"></script> <script id="astra-theme-js-js-extra" src="data:text/javascript;base64,dmFyIGFzdHJhPXsiYnJlYWtfcG9pbnQiOiI5MjEiLCJpc1J0bCI6IiIsImlzX3Njcm9sbF90b19pZCI6IiIsImlzX3Njcm9sbF90b190b3AiOiIiLCJpc19oZWFkZXJfZm9vdGVyX2J1aWxkZXJfYWN0aXZlIjoiMSIsInJlc3BvbnNpdmVfY2FydF9jbGljayI6ImZseW91dCIsImlzX2RhcmtfcGFsZXR0ZSI6IiJ9" defer></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/92646db60be4376983b90434a11c5c19.js?ver=c5c19" id="astra-theme-js-js" defer data-deferred="1"></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/fc0cc47da000ca2a1af36f3782f513fd.js?ver=513fd" id="wp-hooks-js" defer data-deferred="1"></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/639e243dea0ea6b9dd98b34c4c0168ae.js?ver=168ae" id="wp-i18n-js" defer data-deferred="1"></script> <script id="wp-i18n-js-after" src="data:text/javascript;base64,d3AuaTE4bi5zZXRMb2NhbGVEYXRhKHsndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOlsnbHRyJ119KQ==" defer></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/df61533eba9f268e2ea1c2d539959b81.js?ver=59b81" id="swv-js" defer data-deferred="1"></script> <script id="contact-form-7-js-translations" src="data:text/javascript;base64,KGZ1bmN0aW9uKGRvbWFpbix0cmFuc2xhdGlvbnMpe3ZhciBsb2NhbGVEYXRhPXRyYW5zbGF0aW9ucy5sb2NhbGVfZGF0YVtkb21haW5dfHx0cmFuc2xhdGlvbnMubG9jYWxlX2RhdGEubWVzc2FnZXM7bG9jYWxlRGF0YVsiIl0uZG9tYWluPWRvbWFpbjt3cC5pMThuLnNldExvY2FsZURhdGEobG9jYWxlRGF0YSxkb21haW4pfSkoImNvbnRhY3QtZm9ybS03Iix7InRyYW5zbGF0aW9uLXJldmlzaW9uLWRhdGUiOiIyMDI1LTA2LTI2IDEwOjU0OjU1KzAwMDAiLCJnZW5lcmF0b3IiOiJHbG90UHJlc3NcLzQuMC4xIiwiZG9tYWluIjoibWVzc2FnZXMiLCJsb2NhbGVfZGF0YSI6eyJtZXNzYWdlcyI6eyIiOnsiZG9tYWluIjoibWVzc2FnZXMiLCJwbHVyYWwtZm9ybXMiOiJucGx1cmFscz0yOyBwbHVyYWw9biAhPSAxOyIsImxhbmciOiJlcyJ9LCJUaGlzIGNvbnRhY3QgZm9ybSBpcyBwbGFjZWQgaW4gdGhlIHdyb25nIHBsYWNlLiI6WyJFc3RlIGZvcm11bGFyaW8gZGUgY29udGFjdG8gZXN0XHUwMGUxIHNpdHVhZG8gZW4gZWwgbHVnYXIgaW5jb3JyZWN0by4iXSwiRXJyb3I6IjpbIkVycm9yOiJdfX0sImNvbW1lbnQiOnsicmVmZXJlbmNlIjoiaW5jbHVkZXNcL2pzXC9pbmRleC5qcyJ9fSk=" defer></script> <script id="contact-form-7-js-before" src="data:text/javascript;base64,dmFyIHdwY2Y3PXsiYXBpIjp7InJvb3QiOiJodHRwczpcL1wvdmVzZWxpbi5lc1wvd3AtanNvblwvIiwibmFtZXNwYWNlIjoiY29udGFjdC1mb3JtLTdcL3YxIn0sImNhY2hlZCI6MX0=" defer></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/8bc2d8dd0eeaaa259d672ec96f9f015b.js?ver=f015b" id="contact-form-7-js" defer data-deferred="1"></script> <script id="heateor_sss_sharing_js-js-before" src="data:text/javascript;base64,ZnVuY3Rpb24gaGVhdGVvclNzc0xvYWRFdmVudChlKXt2YXIgdD13aW5kb3cub25sb2FkO2lmKHR5cGVvZiB3aW5kb3cub25sb2FkIT0iZnVuY3Rpb24iKXt3aW5kb3cub25sb2FkPWV9ZWxzZXt3aW5kb3cub25sb2FkPWZ1bmN0aW9uKCl7dCgpO2UoKX19fTt2YXIgaGVhdGVvclNzc1NoYXJpbmdBamF4VXJsPSdodHRwczovL3Zlc2VsaW4uZXMvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAnLGhlYXRlb3JTc3NDbG9zZUljb25QYXRoPSdodHRwczovL3Zlc2VsaW4uZXMvd3AtY29udGVudC9wbHVnaW5zL3Nhc3N5LXNvY2lhbC1zaGFyZS9wdWJsaWMvLi4vaW1hZ2VzL2Nsb3NlLnBuZycsaGVhdGVvclNzc1BsdWdpbkljb25QYXRoPSdodHRwczovL3Zlc2VsaW4uZXMvd3AtY29udGVudC9wbHVnaW5zL3Nhc3N5LXNvY2lhbC1zaGFyZS9wdWJsaWMvLi4vaW1hZ2VzL2xvZ28ucG5nJyxoZWF0ZW9yU3NzSG9yaXpvbnRhbFNoYXJpbmdDb3VudEVuYWJsZT0wLGhlYXRlb3JTc3NWZXJ0aWNhbFNoYXJpbmdDb3VudEVuYWJsZT0wLGhlYXRlb3JTc3NTaGFyaW5nT2Zmc2V0PS0xMDt2YXIgaGVhdGVvclNzc01vYmlsZVN0aWNreVNoYXJpbmdFbmFibGVkPTE7dmFyIGhlYXRlb3JTc3NDb3B5TGlua01lc3NhZ2U9IkVubGFjZSBjb3BpYWRvLiI7dmFyIGhlYXRlb3JTc3NVcmxDb3VudEZldGNoZWQ9W10saGVhdGVvclNzc1NoYXJlc1RleHQ9J0NvbXBhcnRpZG9zJyxoZWF0ZW9yU3NzU2hhcmVUZXh0PSdDb21wYXJ0aXInO2Z1bmN0aW9uIGhlYXRlb3JTc3NQb3B1cChlKXt3aW5kb3cub3BlbihlLCJwb3BVcFdpbmRvdyIsImhlaWdodD00MDAsd2lkdGg9NjAwLGxlZnQ9NDAwLHRvcD0xMDAscmVzaXphYmxlLHNjcm9sbGJhcnMsdG9vbGJhcj0wLHBlcnNvbmFsYmFyPTAsbWVudWJhcj1ubyxsb2NhdGlvbj1ubyxkaXJlY3Rvcmllcz1ubyxzdGF0dXMiKX0=" defer></script> <script data-optimized="1" src="https://veselin.es/wp-content/litespeed/js/ee4c906b0f95c31cf9c5019637e5c217.js?ver=5c217" id="heateor_sss_sharing_js-js" defer data-deferred="1"></script> <script id="google_swgjs-js-before" src="data:text/javascript;base64,KHNlbGYuU1dHX0JBU0lDPXNlbGYuU1dHX0JBU0lDfHxbXSkucHVzaChiYXNpY1N1YnNjcmlwdGlvbnM9PntiYXNpY1N1YnNjcmlwdGlvbnMuaW5pdCh7InR5cGUiOiJOZXdzQXJ0aWNsZSIsImlzUGFydE9mVHlwZSI6WyJQcm9kdWN0Il0sImlzUGFydE9mUHJvZHVjdElkIjoiQ0Fvd25ZcURDdzpvcGVuYWNjZXNzIiwiY2xpZW50T3B0aW9ucyI6eyJ0aGVtZSI6ImxpZ2h0IiwibGFuZyI6ImVzLUVTIn19KX0p" defer></script> <script src="https://news.google.com/swg/js/v1/swg-basic.js" id="google_swgjs-js" data-wp-strategy="async" defer data-deferred="1"></script> <script src="data:text/javascript;base64,Lyh0cmlkZW50fG1zaWUpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgdCxlPWxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpOy9eW0EtejAtOV8tXSskLy50ZXN0KGUpJiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKSkmJigvXig/OmF8c2VsZWN0fGlucHV0fGJ1dHRvbnx0ZXh0YXJlYSkkL2kudGVzdCh0LnRhZ05hbWUpfHwodC50YWJJbmRleD0tMSksdC5mb2N1cygpKX0sITEp" defer></script> </body></html>
|
|
<!-- Page optimized by LiteSpeed Cache @2025-07-12 17:05:09 -->
|
|
|
|
<!-- Page supported by LiteSpeed Cache 7.2 on 2025-07-12 17:05:09 --> |