CINXE.COM
Use the Proxy Protocol to Preserve a Client’s IP Address
<!doctype html> <html class="scroll-smooth" lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="alternate" type="application/rss+xml" title="Use the Proxy Protocol to Preserve a Client’s IP Address" href="https://www.haproxy.com/feed"> <link rel="preconnect" href="https://cdn.haproxy.com/" crossorigin > <link rel="dns-prefetch" href="https://cdn.haproxy.com/" > <link media="(min-width: 768px)" rel="preload" fetchpriority="high" as="image" href="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/cda64a5b78658c1efe65c3f084389dad/proxy-protocol-1000x500.webp" type="image/webp"> <link media="(min-width: 480px) and (max-width: 768px)" rel="preload" fetchpriority="high" as="image" href="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/bb0d4fdb0f26b2877f0efa6fbe3e9cca/proxy-protocol-1000x500.webp" type="image/webp"> <link media="(max-width: 480px)" rel="preload" fetchpriority="high" as="image" href="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/6bed94166d6ec9a9aced49073ecfb44a/proxy-protocol-1000x500.webp" type="image/webp"> <script src="https://bmrg.haproxy.com/boomerang-restiming.min3.js" defer></script> <script> document.addEventListener("onBoomerangLoaded", function(event) { BOOMR.init({ beacon_url: 'https://cdnrum2.haproxy.com:5443/beacon', beacon_type: 'POST' }); }); </script> <title> Use the Proxy Protocol to Preserve a Client’s IP Address </title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BlogPosting", "headline": "Use the Proxy Protocol to Preserve a Client’s IP Address", "image": [ "/img/containers/posts/proxy-protocol-1000x500.png/215c52c20b4c838a042fa3981007d9ed/proxy-protocol-1000x500.png", "/img/containers/posts/proxy-protocol-1000x500.png/4692e639f1fe0420880a74e300c540e6/proxy-protocol-1000x500.png", "/img/containers/posts/proxy-protocol-1000x500.png/9c2f349764ae14b8499345f9450d68d3/proxy-protocol-1000x500.png" ], "datePublished": "2022-05-23T12:00:00+00:00", "dateModified": "2024-01-15T11:51:17+00:00", "author": [ { "@type": "Person", "name": "HAProxy Technologies", "url": "https://www.haproxy.com/blog/author/htechnologies" } ] } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "url": "https://www.haproxy.com", "logo": "/assets/our_logos/svg/haproxy-horizontal.svg", "name": "HAProxy Technologies", "sameAs": [ "https://www.facebook.com/haproxy.technologies/", "https://www.linkedin.com/company/haproxy-technologies", "https://twitter.com/haproxy" ], "contactPoint": [ { "@type": "ContactPoint", "name": "HAProxy Technologies", "telephone": "+1-844-222-4340", "contactType": "technical support", "areaServed": "US", "availableLanguage": [ "English" ] }, { "@type": "ContactPoint", "name": "HAProxy Technologies", "telephone": "+33-130676074", "contactType": "technical support", "areaServed": "EU", "availableLanguage": [ "English", "French" ] } ] } </script> <script type="application/ld+json"> {"@context":"https://schema.org", "@graph":[ { "@type":"WebSite", "@id":"https://www.haproxy.com/#website", "url":"https://www.haproxy.com", "name":"HAProxy Technologies", "description":"In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy.", "potentialAction":[ { "@type":"SearchAction", "target":"https://www.haproxy.com/?s={search_term_string}", "query-input":"required name=search_term_string" }], "inLanguage":"en-US" }, { "@type":"WebPage", "@id":"https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address#webpage", "url":"https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address", "name":"Use the Proxy Protocol to Preserve a Client’s IP Address", "isPartOf":"https://www.haproxy.com", "datePublished":"2022-11-08T07:57:00+00:00", "dateModified":"2024-01-15T11:51:17+00:00", "description":"[HAProxy Technologies] In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy.", "inLanguage":"en-US", "potentialAction":[ { "@type":"ReadAction", "target":["https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address"] } ] } ] } </script> <meta name="description" content="In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy."> <meta name="robots" content="index, follow"> <meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" > <meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" > <link rel="alternate" hreflang="en" href="https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address"> <link rel="canonical" href="https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address"> <meta property="og:site_name" content="HAProxy Technologies"> <meta property="og:type" content="website"> <meta property="og:locale" content="en_US"> <meta property="og:url" content="https://www.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address"> <meta property="article:modified_time" content=" 2024-01-15T11:51:17+00:00" > <meta property="article:publisher" content="https://www.facebook.com/haproxy.technologies/" > <meta property="og:title" content=" Use the Proxy Protocol to Preserve a Client’s IP Address "> <meta property="og:description" content="In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy."> <meta property="og:image" content="https://www.haproxy.com/img/containers/posts/proxy-protocol-1000x500.png/077116dff794f85f36f4e63f0ad1e2c8/proxy-protocol-1000x500.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="600"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@haproxy"> <meta name="twitter:site" content="@haproxy"> <meta name="twitter:title" content=" Use the Proxy Protocol to Preserve a Client’s IP Address "> <meta name="twitter:description" content="In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy."> <meta name="twitter:image" content="https://www.haproxy.com/img/containers/posts/proxy-protocol-1000x500.png/077116dff794f85f36f4e63f0ad1e2c8/proxy-protocol-1000x500.png"> <meta name="twitter:image:alt" content="haproxy proxy protocol."> <script> function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(";"); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == " ") { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag("consent", "default", { 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'ad_storage': 'denied', 'analytics_storage': 'denied', 'functionality_storage': 'granted', 'wait_for_update': 500 }); gtag("consent", "update", { 'ad_user_data': (localStorage.getItem('cookieBannerAdUserData') === 'true' || getCookie('GDIR') === 'pass') ? 'granted' : 'denied', 'ad_personalization': (localStorage.getItem('cookieBannerAdPersonalization') === 'true' || getCookie('GDIR') === 'pass') ? 'granted' : 'denied', 'ad_storage': (localStorage.getItem('cookieBannerAdStorage') === 'true' || getCookie('GDIR') === 'pass') ? 'granted' : 'denied', 'analytics_storage': (localStorage.getItem('cookieBannerAnalyticsStorage') === 'true' || getCookie('GDIR') === 'pass') ? 'granted' : 'denied', 'functionality_storage': 'granted' }); (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-W9N2N3S'); </script> <link rel="icon" href="https://cdn.haproxy.com/assets/our_logos/haproxy-icon.svg" type="image/svg+xml"> <link rel="mask-icon" href="https://cdn.haproxy.com/assets/our_logos/haproxy-icon.svg" color="#000000"> <link rel="apple-touch-icon" href="https://cdn.haproxy.com/favicons/apple-touch-icon.png"> <link rel="preload" href="https://cdn.haproxy.com/assets/css/fonts.css?id=f0cda333dd17acd22f16246fe21c417a" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="https://cdn.haproxy.com/assets/css/fonts.css?id=f0cda333dd17acd22f16246fe21c417a"></noscript> <script defer data-domain="www.haproxy.com" src="https://plausible.io/js/script.tagged-events.file-downloads.js"></script> <style> /*! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #d9dfe5;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0afbd;opacity:1}input::placeholder,textarea::placeholder{color:#a0afbd;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}.flickity-slider .carousel-cell{height:600px;opacity:0;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,1,1)}.flickity-slider .carousel-cell .section{display:none}.flickity-slider .carousel-cell.is-selected{opacity:1;transition-duration:0ms}.flickity-slider .carousel-cell.is-selected .section{display:block}.\!font-main{font-family:Lexend,Helvetica,Arial,Lucida,sans-serif!important}.font-main{font-family:Lexend,Helvetica,Arial,Lucida,sans-serif}.\!font-base{font-family:Inter,Helvetica,Arial,Lucida,sans-serif!important}.font-base{font-family:Inter,Helvetica,Arial,Lucida,sans-serif}@media (max-width:639px){.block-sm{display:block!important}.flex-sm{display:flex!important}.inline-sm{display:inline!important}}sub,sup{font-size:60%}sup{top:-.41em}sub{bottom:0}.newsbar{--tw-bg-opacity:1;background-color:rgb(0 38 77/var(--tw-bg-opacity));font-size:.875rem}.newsbar,.newsbar .newsbar__text a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.newsbar .newsbar__text a,.newsbar .newsbar__text a:hover{text-decoration-line:underline}.newsbar .newsbar__text a:hover{--tw-text-opacity:1;color:rgb(128 209 255/var(--tw-text-opacity))}.newsbar .newsbar__localemenu{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));line-height:35px;list-style-type:none!important}.newsbar .newsbar__localemenu .newsbar__localemenu--item{font-weight:700;margin-bottom:0;padding-left:.5rem;padding-right:.5rem}.newsbar .newsbar__localemenu .newsbar__localemenu--popover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);background-color:rgb(0 38 77/var(--tw-bg-opacity));border-bottom-width:1px;border-color:rgb(191 228 255/var(--tw-border-opacity));border-left-width:1px;border-right-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.newsbar a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.newsbar a:hover{text-decoration-line:none}.newsbar p{margin-bottom:0!important}#mainheader{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-bottom-width:1px;border-color:rgb(237 240 242/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);position:fixed;width:100%;z-index:50}@media (min-width:768px){#mainheader{top:35px}}#mainheader .main-nav{align-items:center;display:flex;flex-direction:row;height:100%}@media (min-width:768px){#mainheader .main-nav{padding-right:1rem}}#mainheader .main-nav .main-nav__item .main-nav__item--link{--tw-text-opacity:1;color:rgb(47 78 109/var(--tw-text-opacity));cursor:pointer;display:block;font-family:Lexend,Helvetica,Arial,Lucida,sans-serif;font-size:14px!important;font-weight:500;line-height:66px!important;min-height:66px;padding-left:.5rem;padding-right:.5rem;text-transform:uppercase}#mainheader .main-nav .main-nav__item .main-nav__item--link:hover{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}@media (min-width:1080px){#mainheader .main-nav .main-nav__item .main-nav__item--link{font-size:.875rem}}@media (min-width:1280px){#mainheader .main-nav .main-nav__item .main-nav__item--link{font-size:1.125rem}}#mainheader .main-nav .main-nav__item .active{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}#mainheader .main-nav .main-nav__item .main-nav__item--gethaproxy small{--tw-text-opacity:1;color:rgb(127 146 165/var(--tw-text-opacity));display:block;font-size:.75rem;margin-top:-3px}footer#mainfooter a{color:#fff}footer#mainfooter .copyright a{color:#666}#mainfooter{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(12 21 30/var(--tw-bg-opacity));border-top-width:4px;color:rgb(255 255 255/var(--tw-text-opacity));margin-top:0}#mainfooter a:hover{text-decoration-line:none}.featured-resources a,h1 .featured-resources a,h1 .featured-resources a a,h2 .featured-resources a,h2 .featured-resources a a,h3 .featured-resources a,h3 .featured-resources a a,h4 .featured-resources a,h4 .featured-resources a a,h5 .featured-resources a,h5 .featured-resources a a,h6 .featured-resources a,h6 .featured-resources a a{--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}.featured-resources a:hover{text-decoration-line:none}.text-defaultcolor{--tw-text-opacity:1;color:rgb(47 78 109/var(--tw-text-opacity))}.text-heading,.text-heading a{--tw-text-opacity:1;color:rgb(0 38 77/var(--tw-text-opacity))}.text-heading a:hover{text-decoration-line:none}.text-heading a:hover,.text-leading{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity))}.text-leading{font-weight:500;line-height:1.25}.text-leading a{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity))}.text-leading a:hover{--tw-text-opacity:1;color:rgb(160 175 189/var(--tw-text-opacity));text-decoration-line:none}.text-highlight{--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}.text-heading-footer{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity));font-size:1.25rem;margin-bottom:.5rem;margin-top:1.75rem;padding-bottom:.5rem}body{--tw-text-opacity:1;-webkit-font-smoothing:antialiased;color:rgb(47 78 109/var(--tw-text-opacity));font-family:Inter,Helvetica,Arial,Lucida,sans-serif;line-height:1.75}.color-primary,.text-primary{color:#0479d9}.bg-gray{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}h1,h2,h3,h4,h5,h6{font-family:Lexend,Helvetica,Arial,Lucida,sans-serif}h1,h1 a,h2,h2 a,h3,h3 a,h4,h4 a,h5,h5 a,h6,h6 a{--tw-text-opacity:1;color:rgb(0 38 77/var(--tw-text-opacity))}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity));text-decoration-line:none}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25}h1 .text-highlight,h1 .text-highlight a,h2 .text-highlight,h2 .text-highlight a,h3 .text-highlight,h3 .text-highlight a,h4 .text-highlight,h4 .text-highlight a,h5 .text-highlight,h5 .text-highlight a,h6 .text-highlight,h6 .text-highlight a{--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}h1{font-size:2.25rem;margin-bottom:1rem;margin-top:2rem}h2{margin-top:1.75rem}h2,h3{font-size:1.5rem;margin-bottom:1rem}h3{margin-top:1.5rem}h4{font-size:1.25rem;margin-bottom:1rem;margin-top:1.25rem}h5,h6{font-size:1.125rem;margin-bottom:1rem;margin-top:1rem}@media (min-width:768px){h2{font-size:1.875rem;margin-bottom:1rem;margin-top:1.75rem}}p{margin:0 0 .75rem}a{color:rgb(17 138 237/var(--tw-text-opacity))}a,a:hover{--tw-text-opacity:1}a:hover{color:rgb(0 91 166/var(--tw-text-opacity));text-decoration-line:underline}.py-default{padding-bottom:2.25rem;padding-top:2.25rem}@media (min-width:768px){.py-default{padding-bottom:5rem;padding-top:5rem}}.pt-default{padding-top:2.25rem}@media (min-width:768px){.pt-default{padding-top:5rem}}.pb-default{padding-bottom:2.25rem}@media (min-width:768px){.pb-default{padding-bottom:5rem}}.px-default{padding-right:1.25rem}.pl-default,.px-default{padding-left:1.25rem}.pr-default{padding-right:1.25rem}.space-y-default>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.25rem*var(--tw-space-y-reverse));margin-top:calc(2.25rem*(1 - var(--tw-space-y-reverse)))}@media (min-width:768px){.space-y-default>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(5rem*var(--tw-space-y-reverse));margin-top:calc(5rem*(1 - var(--tw-space-y-reverse)))}}.supermenu-bg{background:#fff;background:linear-gradient(90deg,#fff,#fff 50%,#f0faff 0,#f0faff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#f0faff",GradientType=1)}.menu-promo-bar a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.menu-promo-bar a:hover{--tw-text-opacity:1;color:rgb(240 248 255/var(--tw-text-opacity))}#mobilenav a{font-family:Lexend,Helvetica,Arial,Lucida,sans-serif}ul:not(.slider):not(.list-none){list-style-type:disc;margin-left:1rem}ul:not(.slider):not(.list-none) li{margin-bottom:.5rem;padding-left:0}ul:not(.slider):not(.list-none) li p:last-child{margin-bottom:0}.btn{border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.btn:hover{text-decoration-line:none}.btn:focus{outline:2px solid transparent;outline-offset:2px}.btn-primary{--tw-bg-opacity:1;background-color:rgb(17 138 237/var(--tw-bg-opacity));border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.btn-primary:hover{text-decoration-line:none}.btn-primary:focus{outline:2px solid transparent;outline-offset:2px}.btn-primary{--tw-text-opacity:1;font-weight:700}.btn-primary,.btn-primary:hover{color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity))}.btn-secondary{border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.btn-secondary:hover{text-decoration-line:none}.btn-secondary:focus{outline:2px solid transparent;outline-offset:2px}.btn-secondary{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));color:rgb(51 51 51/var(--tw-text-opacity))}.btn-secondary:hover{--tw-bg-opacity:1;background-color:rgb(211 212 213/var(--tw-bg-opacity))}.btn-transparent{border-radius:.25rem;color:#0479d9;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.btn-transparent:hover{text-decoration-line:none}.btn-transparent:focus{outline:2px solid transparent;outline-offset:2px}.btn-transparent:hover{--tw-text-opacity:1;color:rgb(52 93 139/var(--tw-text-opacity))}.btn-contrast{border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.btn-contrast:hover{text-decoration-line:none}.btn-contrast:focus{outline:2px solid transparent;outline-offset:2px}.btn-contrast,.btn-contrast:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 198 87/var(--tw-bg-opacity));color:rgb(51 51 51/var(--tw-text-opacity))}.post-content ul:not(.slider){list-style-type:disc;margin-left:1rem;padding:0}.post-content main>*{grid-column:span 12/span 12;margin-bottom:1.25rem}@media (min-width:768px){.post-content main>*{grid-column:span 10/span 10;grid-column-start:2}}.post-content main>:first-child{margin-top:0!important}.post-content main .expanded{grid-column:span 12/span 12}.post-content .gist table tbody>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(0px*var(--tw-divide-y-reverse));border-top-width:calc(0px*(1 - var(--tw-divide-y-reverse)))}.post-content .gist .gist-file{--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity))}.post-content .gist .gist-data{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));border-radius:.25rem;border-style:none}.post-content .gist .blob-wrapper{padding:10px 0}.post-content .gist .blob-code-inner{font-size:.875rem}.post-content .gist .highlight{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));font-family:Droid Sans Mono,monospace}.post-content .gist .highlight td{padding:1px 10px}.post-content .gist .highlight tr{padding:0}.post-content .gist .pl-pds,.post-content .gist .pl-s,.post-content .gist .pl-s .pl-pse .pl-s1,.post-content .gist .pl-sr,.post-content .gist .pl-sr .pl-cce,.post-content .gist .pl-sr .pl-sra,.post-content .gist .pl-sr .pl-sre{color:green}.post-content .gist .blob-num{border-top:0;padding:0!important;width:0}.post-content .gist .gist-meta{display:none}.post-content .darktheme .gist .gist-file{--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity));border-width:1px}.post-content .darktheme .gist .gist-data{background-color:#212529}.post-content .darktheme .gist .blob-code-inner{color:#f1f1f1}.post-content .darktheme .gist .highlight{background-color:#212529}.post-content .darktheme .gist .pl-c{color:#d3d3d3!important}.post-content .darktheme .gist .pl-k{color:#569cd6!important}.post-content .darktheme .gist .pl-en{color:#7fb4e0!important}.post-content .darktheme .gist .pl-c1,.post-content .darktheme .gist .pl-s .pl-v{color:#add8e6!important}.post-content .darktheme .gist .pl-pds{color:#fff!important}.post-content .darktheme .gist .pl-pds,.post-content .darktheme .gist .pl-s,.post-content .darktheme .gist .pl-s .pl-pse .pl-s1,.post-content .darktheme .gist .pl-sr,.post-content .darktheme .gist .pl-sr .pl-cce,.post-content .darktheme .gist .pl-sr .pl-sra,.post-content .darktheme .gist .pl-sr .pl-sre{color:#00b300!important}.post-content .darktheme .gist .pl-s .pl-s1,.post-content .darktheme .gist .pl-smi{color:orange}.post-content .gist{position:relative}.post-content .darktheme .gist .gist-file{background:#212529;border-color:#212529;padding-top:10px}.post-content .gist .gist-file{background:#f9f9f9;padding-top:10px}.post-content .gist .gist-meta{display:block!important;height:0;padding:0;text-indent:-9999px}.post-content .gist .gist-meta a:first-child{--tw-border-opacity:1!important;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));border-color:rgb(237 240 242/var(--tw-border-opacity))!important;border-radius:.25rem;border-width:1px!important;color:rgb(127 146 165/var(--tw-text-opacity));display:block;padding:.25rem .5rem;position:absolute;right:.5rem;text-indent:0;top:.5rem}.post-content .darktheme .gist .gist-meta a:first-child{background:#212529;border-top:1px solid #212529;color:#afafaf;text-indent:0}.post-content .darktheme .gist .gist-meta a:first-child:hover{color:#fff}.post-content .gist .blob-wrapper table{border-style:none;margin:0}.post-content .darktheme .gist .gist-file,.post-content .gist .gist-file{padding-top:0!important}.post-content .blob-num.js-line-number:before{display:none}.post-content .blob-num.js-line-number{border:none!important}.post-content code{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 38 77/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));font-size:.75rem;padding:.125rem .25rem}.post-content table{--tw-border-opacity:1;border-collapse:collapse;border-color:rgb(237 240 242/var(--tw-border-opacity));border-width:1px;width:100%}.post-content table tbody>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;--tw-divide-opacity:1;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(237 240 242/var(--tw-divide-opacity));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.post-content table td,.post-content table th{padding:.75rem}.post-content table p{margin:0!important;padding:0!important;text-align:left}.post-content .flickity-page-dots{bottom:10px}.post-content pre{--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;overflow:auto;padding:.75rem}.post-content pre,.post-content pre code{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.post-content pre code{--tw-text-opacity:1;border-radius:0;color:rgb(0 0 0/var(--tw-text-opacity));font-size:.75rem;padding:0}.post-content .did-you-know{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity));border-color:rgb(191 228 255/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;padding:1rem}.post-content .did-you-know .did-you-know__title{--tw-text-opacity:1;color:rgb(4 121 217/var(--tw-text-opacity));font-size:.75rem;font-weight:700}.post-content .did-you-know p{font-size:.875rem;margin-bottom:0}.post-content .did-you-know ol,.post-content .did-you-know ul{list-style-type:disc;margin-left:1rem}.post-content .did-you-know ol li,.post-content .did-you-know ul li{margin-bottom:.5rem}.post-content .did-you-know ol{list-style-type:decimal}.post-content .did-you-know.warning{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity));border-color:rgb(255 237 213/var(--tw-border-opacity));border-width:1px}.post-content .did-you-know.warning .did-you-know__title{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.post-content .did-you-know.danger{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity));border-color:rgb(239 68 68/var(--tw-border-opacity));border-width:1px}.post-content .did-you-know.danger .did-you-know__title{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.news-content h1,.news-content h2,.news-content h3,.news-content h4,.news-content h5,.news-content h6{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}.styled-form form [type=email],.styled-form form [type=tel],.styled-form form [type=text],.styled-form form select,.styled-form form textarea,.styled-form.server-form input{--tw-bg-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity));border-radius:0!important;font-size:14px;min-height:56px;padding:.75rem;width:100%}.hs_aloha_va_trial_consent.hs-aloha_va_trial_consent.hs-fieldtype-booleancheckbox.field.hs-form-field{margin-bottom:0;padding-left:.5rem;width:100%}.hapee-form #LEGAL_CONSENT\.processing-0c8c6d9c-4756-44fd-9eed-ebd92140033d{margin-top:5px}.hs-button.primary.large{--tw-bg-opacity:1;background-color:rgb(17 138 237/var(--tw-bg-opacity));border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.hs-button.primary.large:hover{text-decoration-line:none}.hs-button.primary.large:focus{outline:2px solid transparent;outline-offset:2px}.hs-button.primary.large{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-weight:700}.hs-button.primary.large:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.hs-button.primary.large{display:block;margin-left:auto;margin-right:auto;padding:.5rem 2rem}.hs_LEGAL_CONSENT\.subscription_type_2972774.hs-LEGAL_CONSENT\.subscription_type_2972774.hs-fieldtype-booleancheckbox.field.hs-form-field{display:none}.styled-form input[type=checkbox]{--tw-border-opacity:1;border-color:rgb(87 112 138/var(--tw-border-opacity));border-radius:.125rem;margin-right:.75rem}.styled-form .inputs-list{align-items:center;display:flex;font-size:.75rem!important;margin-bottom:0!important}.styled-form .inputs-list li{margin:0;width:100%}.styled-form .legal-consent-container .hs-richtext{margin-bottom:.75rem}.styled-form .field label{display:none}.styled-form label.hs-form-booleancheckbox-display{display:block}.styled-form .hs-form-field{margin-bottom:.75rem}.styled-form .no-list.hs-error-msgs.inputs-list label{display:block}.styled-form [type=checkbox]{margin-top:4px}.styled-form .inputs-list{list-style:none!important}.styled-form .hs-input::-moz-placeholder{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}.styled-form .hs-input::placeholder{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}.styled-form select{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}.styled-form .hs-input.invalid{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity))!important}.styled-form .hs-error-msgs{margin-bottom:0}.styled-form .hs-error-msgs li{margin-bottom:0!important}.styled-form .hs-error-msg{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));font-size:11px;font-style:normal;line-height:1.25;margin-top:.125rem}.hs_submit .actions{text-align:center}.hapee-form form{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.hapee-form form .hs_recaptcha{width:100%!important}.hapee-form form.hs-form>.hs-dependent-field,.hapee-form form.hs-form>.hs-form-field{width:100%}@media (min-width:640px){.hapee-form form.hs-form>.hs-dependent-field,.hapee-form form.hs-form>.hs-form-field{width:50%}}.hapee-form .hbspt-form .field label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase}.hapee-form .hs-form .hs-form-field>label{--tw-text-opacity:1;color:rgb(32 63 119/var(--tw-text-opacity));display:block!important;font-size:.75rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase}.hapee-form.nolabel .hs-form .hs-form-field>label{display:none!important}@media (min-width:768px){.hapee-form .hs-dependent-field,.hapee-form .hs_company,.hapee-form .hs_email,.hapee-form .hs_firstname,.hapee-form .hs_lastname,.hapee-form .hs_phone{padding-left:.25rem;padding-right:.25rem}}.hapee-form .inputs-list,.styled-form .inputs-list{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity));font-size:.75rem!important;margin-left:0!important}.hapee-form .legal-consent-container .hs-richtext{margin-bottom:0!important}.hapee-form .legal-consent-container{padding-left:.25rem;padding-right:.25rem}.hapee-form form .hs-fieldtype-textarea.hs-form-field{padding-left:.25rem;padding-right:.25rem;width:100%}input[type=file]::file-selector-button{--tw-border-opacity:1!important;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity));border-color:rgb(191 228 255/var(--tw-border-opacity))!important;border-bottom-color:rgb(191 228 255/var(--tw-border-opacity))!important;border-radius:.375rem;border-style:solid;border-width:1px;color:rgb(17 24 39/var(--tw-text-opacity));inset:0;margin-right:.75rem;padding:.25rem .5rem}header div>ul>li>a{text-transform:uppercase}footer .copyright{font-size:80%}footer.dark-footer .copyright a{color:#666}.indent-text h2,.indent-text h3,.indent-text ol,.indent-text p,.indent-text ul{padding-left:2rem;padding-right:2rem}.products-overview__product-item{cursor:pointer;position:relative}.products-overview__product-item:hover:before{opacity:1}.products-overview__product-item:before{--tw-translate-x:-50%;--tw-translate-y:-50%;--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));border-radius:.25rem;content:"";height:calc(100% + 10px);left:50%;opacity:0;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:calc(100% - 10px)}header .supermenu-item{margin-bottom:1.5rem}header .supermenu-item p{margin:0}header .supermenu-item a{color:#3f6da4;display:block;font-family:Lexend,Helvetica,Arial,Lucida,sans-serif;margin-top:0}header .supermenu-item a:hover{color:#0f87eb}header .section-heading{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity));font-size:.875rem;font-weight:500;margin-bottom:1.5rem}header .dark-menu .section-heading{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(4,121,217,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(4,121,217,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }#maincontent{min-height:calc(100vh - 820px)}#maincontent.blank{min-height:calc(100vh - 190px)}.nop>p:last-child,.nope p{margin-bottom:0!important}body>footer .socialico path{fill:#fff}.calendly-inline-widget{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}#main-footer-top p{font-size:14px;margin-bottom:5px}body>header a:hover{text-decoration:none}.hasnumlist ol{list-style-type:decimal;padding-left:1.5rem}.hasnumlist ol ::marker{color:#003973;font-size:1.25rem;font-weight:700}.hasnumlist ol::marker{color:#003973;font-size:1.25rem;font-weight:700}.pagination{border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;list-style-type:none;margin:auto!important;padding:0!important;width:-moz-fit-content;width:fit-content}.pagination li a,.pagination li span{background:linear-gradient(180deg,#fff,#ecf4ff);box-shadow:inset 1px 1px 0 1px #fff;display:block;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#ecf4ff",GradientType=1);line-height:36px;min-height:36px;min-width:36px;text-align:center}.pagination li{background:#fff;border:1px solid #f1f1f1;border-left:0;display:block;margin:0!important}.pagination li a:hover{background:#fff;background:linear-gradient(180deg,#fff,#fbfdff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#fbfdff",GradientType=1);text-decoration:none}.pagination li.active span{font-weight:700}.pagination li.active span,.pagination li.disabled span{background:#fff;background:linear-gradient(0deg,#fff,#f2f6fb);box-shadow:none;color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#f2f6fb",GradientType=1);text-shadow:1px 1px 1px #fff}.pagination li:first-child{border-bottom-left-radius:4px;border-left:1px solid #f1f1f1;border-top-left-radius:4px}.pagination li:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}.arrowlist ul li::marker{color:rgb(22 163 74/var(--tw-text-opacity));content:"►"}.noul ul:last-child{margin-bottom:0!important}.custom-scroll-1::-webkit-scrollbar-track{background-color:#f5f5f5;border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.custom-scroll-1::-webkit-scrollbar{background-color:#f5f5f5;width:6px}.custom-scroll-1::-webkit-scrollbar-thumb{background-color:#555;border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.hs-input.invalid{border:1px solid red!important}.hs-error-msg{color:#f2545b;font-size:12px;font-style:italic}.hs-error-msgs{margin-top:4px}.hapee-form .hs-submit{margin:12px auto 0}.hapee-form .hs-submit .hs-button{background:#203f77;cursor:pointer;font-family:Montserrat,Helvetica,Arial,Lucida,sans-serif;margin:auto;text-align:center}.grecaptcha-badge{margin:auto!important}.legal-consent-container .hs-richtext p{font-size:12px;line-height:1.2rem}.inputs-list.multi-container input[type=checkbox]{height:10px;margin-right:10px;margin-top:0!important;width:10px}.inputs-list.multi-container li{align-items:center;display:flex}.inputs-list.multi-container{display:flex;flex-direction:column}#mobilenav li p a{color:#3f6da4}#mobilenav li p a:hover{color:#0f87eb}.flickity-slider{align-items:center;display:flex}#mobilenav *{transition:all .3s ease-out}.container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1080px){.container{max-width:1080px}}.prose{color:#333;max-width:720px}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.75;margin-bottom:2rem;margin-top:2rem}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:#0479d9;font-weight:500;text-decoration:none}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{color:#0479d9;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-inline-start-color:var(--tw-prose-quote-borders);border-inline-start-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:2rem;margin-top:2rem;padding-inline-start:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding-inline-end:.375em;padding-bottom:.1875em;padding-top:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-top:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2rem;margin-top:2rem;table-layout:auto;text-align:start;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#00264d;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-top:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(.slideshow):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2rem;margin-top:2rem}.prose :where(.did-you-know):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2rem;margin-top:2rem}.prose :where(#lightboxmodalgallery):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2rem;margin-top:2rem}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8888889em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-top:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding-inline-end:1.5em;padding-bottom:1em;padding-top:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-top:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-xl{font-size:1.25rem;line-height:1.8}.prose-xl :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em;margin-top:1.2em}.prose-xl :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2em;line-height:1.5;margin-bottom:1em;margin-top:1em}.prose-xl :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6em;margin-top:1.6em;padding-inline-start:1.0666667em}.prose-xl :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.8em;line-height:1;margin-bottom:.8571429em;margin-top:0}.prose-xl :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.8em;line-height:1.1111111;margin-bottom:.8888889em;margin-top:1.5555556em}.prose-xl :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;line-height:1.3333333;margin-bottom:.6666667em;margin-top:1.6em}.prose-xl :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.6;margin-bottom:.6em;margin-top:1.8em}.prose-xl :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-xl :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-xl :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-xl :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-xl :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.9em;padding-inline-end:.4em;padding-bottom:.25em;padding-top:.25em;padding-inline-start:.4em}.prose-xl :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-xl :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8611111em}.prose-xl :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-xl :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.5rem;font-size:.9em;line-height:1.7777778;margin-bottom:2em;margin-top:2em;padding-inline-end:1.3333333em;padding-bottom:1.1111111em;padding-top:1.1111111em;padding-inline-start:1.3333333em}.prose-xl :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em;margin-top:1.2em;padding-inline-start:1.6em}.prose-xl :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em;margin-top:1.2em;padding-inline-start:1.6em}.prose-xl :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6em;margin-top:.6em}.prose-xl :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4em}.prose-xl :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4em}.prose-xl :where(.prose-xl>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8em;margin-top:.8em}.prose-xl :where(.prose-xl>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose-xl>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose-xl>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose-xl>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8em;margin-top:.8em}.prose-xl :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.2em;margin-top:1.2em}.prose-xl :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em;padding-inline-start:1.6em}.prose-xl :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2.8em;margin-top:2.8em}.prose-xl :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-xl :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-xl :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-xl :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-xl :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em;line-height:1.5555556}.prose-xl :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.6666667em;padding-bottom:.8888889em;padding-inline-start:.6666667em}.prose-xl :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-xl :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-xl :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.6666667em;padding-bottom:.8888889em;padding-top:.8888889em;padding-inline-start:.6666667em}.prose-xl :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-xl :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-xl :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-xl :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-xl :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em;line-height:1.5555556;margin-top:1em}.prose-xl :where(.prose-xl>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-xl :where(.prose-xl>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.\!top-0{top:0!important}.-bottom-16{bottom:-4rem}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.bottom-2{bottom:.5rem}.bottom-\[0px\]{bottom:0}.bottom-\[70px\]{bottom:70px}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:1rem}.left-\[0px\]{left:0}.left-\[48\.5\%\]{left:48.5%}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-\[0px\]{right:0}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.top-\[120px\]{top:120px}.top-\[22\%\]{top:22%}.top-\[250px\]{top:250px}.top-\[29\%\]{top:29%}.top-\[35\%\]{top:35%}.top-\[35px\]{top:35px}.top-\[50\%\]{top:50%}.top-\[53\%\]{top:53%}.top-\[66px\]{top:66px}.top-\[67px\]{top:67px}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[10001\]{z-index:10001}.z-\[1000\]{z-index:1000}.z-\[10\]{z-index:10}.z-\[1\]{z-index:1}.z-\[2000\]{z-index:2000}.z-\[500\]{z-index:500}.z-\[999\]{z-index:999}.col-span-10{grid-column:span 10/span 10}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.\!m-0{margin:0!important}.m-0{margin:0}.m-1{margin:.25rem}.m-10{margin:2.5rem}.m-3{margin:.75rem}.m-5{margin:1.25rem}.m-\[20px\]{margin:20px}.m-auto{margin:auto}.\!my-10{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-mx-8{margin-left:-2rem;margin-right:-2rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.-my-1\.5{margin-bottom:-.375rem;margin-top:-.375rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-\[-1\.25rem\]{margin-left:-1.25rem;margin-right:-1.25rem}.mx-\[10\%\]{margin-left:10%;margin-right:10%}.mx-\[20px\]{margin-left:20px;margin-right:20px}.mx-\[5px\]{margin-left:5px;margin-right:5px}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.my-\[30px\]{margin-bottom:30px;margin-top:30px}.my-auto{margin-bottom:auto;margin-top:auto}.my-default{margin-bottom:2rem;margin-top:2rem}.\!mb-0{margin-bottom:0!important}.\!mb-1{margin-bottom:.25rem!important}.\!mb-3{margin-bottom:.75rem!important}.\!ml-0,.\!ml-\[0\]{margin-left:0!important}.\!mt-0{margin-top:0!important}.-mb-36{margin-bottom:-9rem}.-mb-40{margin-bottom:-10rem}.-mb-8{margin-bottom:-2rem}.-ml-1{margin-left:-.25rem}.-ml-6{margin-left:-1.5rem}.-ml-\[20px\]{margin-left:-20px}.-mr-\[20px\]{margin-right:-20px}.-mt-10{margin-top:-2.5rem}.-mt-12{margin-top:-3rem}.-mt-16{margin-top:-4rem}.-mt-4{margin-top:-1rem}.-mt-\[120px\]{margin-top:-120px}.-mt-\[12px\]{margin-top:-12px}.-mt-\[160px\]{margin-top:-160px}.-mt-\[3px\]{margin-top:-3px}.-mt-\[85px\]{margin-top:-85px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-24{margin-bottom:6rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[-140px\]{margin-bottom:-140px}.mb-\[-6\.6\%\]{margin-bottom:-6.6%}.mb-\[10px\]{margin-bottom:10px}.mb-\[11px\]{margin-bottom:11px}.mb-\[130px\]{margin-bottom:130px}.mb-\[15px\]{margin-bottom:15px}.mb-\[20px\]{margin-bottom:20px}.mb-\[2px\]{margin-bottom:2px}.mb-\[4px\]{margin-bottom:4px}.mb-default{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-\[-200px\]{margin-left:-200px}.ml-\[1px\]{margin-left:1px}.ml-\[25\%\]{margin-left:25%}.ml-\[300px\]{margin-left:300px}.ml-\[3px\]{margin-left:3px}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mr-\[-50px\]{margin-right:-50px}.mr-\[50px\]{margin-right:50px}.mr-auto{margin-right:auto}.mr-default{margin-right:2rem}.ms-2{margin-inline-start:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-36{margin-top:9rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-\[-30px\]{margin-top:-30px}.mt-\[-50px\]{margin-top:-50px}.mt-\[-53px\]{margin-top:-53px}.mt-\[11px\]{margin-top:11px}.mt-\[120px\]{margin-top:120px}.mt-\[2rem\]{margin-top:2rem}.mt-\[3px\]{margin-top:3px}.mt-\[40px\]{margin-top:40px}.mt-auto{margin-top:auto}.mt-default{margin-top:2rem}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.\!flex{display:flex!important}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.h-0{height:0}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100\%\]{height:100%}.h-\[100vh\]{height:100vh}.h-\[120px\]{height:120px}.h-\[14px\]{height:14px}.h-\[150px\]{height:150px}.h-\[15px\]{height:15px}.h-\[16px\]{height:16px}.h-\[180px\]{height:180px}.h-\[18px\]{height:18px}.h-\[200px\]{height:200px}.h-\[22px\]{height:22px}.h-\[23px\]{height:23px}.h-\[24px\]{height:24px}.h-\[27px\]{height:27px}.h-\[32px\]{height:32px}.h-\[35px\]{height:35px}.h-\[36px\]{height:36px}.h-\[420px\]{height:420px}.h-\[42px\]{height:42px}.h-\[49px\]{height:49px}.h-\[51px\]{height:51px}.h-\[56px\]{height:56px}.h-\[5px\]{height:5px}.h-\[64px\]{height:64px}.h-\[65px\]{height:65px}.h-\[70px\]{height:70px}.h-\[75px\]{height:75px}.h-\[7px\]{height:7px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-60{max-height:15rem}.max-h-\[120px\]{max-height:120px}.max-h-\[350px\]{max-height:350px}.max-h-\[400px\]{max-height:400px}.max-h-\[40px\]{max-height:40px}.max-h-\[42px\]{max-height:42px}.max-h-\[50px\]{max-height:50px}.max-h-\[80\%\]{max-height:80%}.max-h-\[80px\]{max-height:80px}.max-h-full{max-height:100%}.min-h-\[148px\]{min-height:148px}.min-h-\[240px\]{min-height:240px}.min-h-\[420px\]{min-height:420px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[530px\]{min-height:530px}.min-h-\[66px\]{min-height:66px}.min-h-\[auto\]{min-height:auto}.\!w-60{width:15rem!important}.w-0{width:0}.w-1{width:.25rem}.w-1\/12{width:8.333333%}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-1\/5{width:20%}.w-10{width:2.5rem}.w-10\/12{width:83.333333%}.w-11{width:2.75rem}.w-16{width:4rem}.w-2\/12{width:16.666667%}.w-2\/4{width:50%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/12{width:25%}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-5\/12{width:41.666667%}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-7\/12{width:58.333333%}.w-8{width:2rem}.w-8\/12{width:66.666667%}.w-80{width:20rem}.w-9{width:2.25rem}.w-9\/12{width:75%}.w-\[100px\]{width:100px}.w-\[100vw\]{width:100vw}.w-\[120px\]{width:120px}.w-\[128px\]{width:128px}.w-\[15\%\]{width:15%}.w-\[150px\]{width:150px}.w-\[15px\]{width:15px}.w-\[16px\]{width:16px}.w-\[180px\]{width:180px}.w-\[20px\]{width:20px}.w-\[22px\]{width:22px}.w-\[23px\]{width:23px}.w-\[24px\]{width:24px}.w-\[27px\]{width:27px}.w-\[300px\]{width:300px}.w-\[32px\]{width:32px}.w-\[400px\]{width:400px}.w-\[50\%\]{width:50%}.w-\[50px\]{width:50px}.w-\[51px\]{width:51px}.w-\[530px\]{width:530px}.w-\[58px\]{width:58px}.w-\[60\%\]{width:60%}.w-\[60px\]{width:60px}.w-\[64px\]{width:64px}.w-\[65px\]{width:65px}.w-\[70\%\]{width:70%}.w-\[750px\]{width:750px}.w-\[7px\]{width:7px}.w-\[80\%\]{width:80%}.w-\[830px\]{width:830px}.w-\[85\%\]{width:85%}.w-\[8px\]{width:8px}.w-\[90px\]{width:90px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-10{min-width:2.5rem}.min-w-\[120px\]{min-width:120px}.min-w-\[260px\]{min-width:260px}.min-w-\[530px\]{min-width:530px}.min-w-\[58px\]{min-width:58px}.min-w-\[830px\]{min-width:830px}.min-w-\[90px\]{min-width:90px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[100\%\]{max-width:100%}.max-w-\[100px\]{max-width:100px}.max-w-\[116px\]{max-width:116px}.max-w-\[120px\]{max-width:120px}.max-w-\[128px\]{max-width:128px}.max-w-\[1440px\]{max-width:1440px}.max-w-\[150px\]{max-width:150px}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[230px\]{max-width:230px}.max-w-\[240px\]{max-width:240px}.max-w-\[250px\]{max-width:250px}.max-w-\[260px\]{max-width:260px}.max-w-\[26rem\]{max-width:26rem}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[32px\]{max-width:32px}.max-w-\[350px\]{max-width:350px}.max-w-\[35rem\]{max-width:35rem}.max-w-\[40\%\]{max-width:40%}.max-w-\[400px\]{max-width:400px}.max-w-\[408px\]{max-width:408px}.max-w-\[450px\]{max-width:450px}.max-w-\[460px\]{max-width:460px}.max-w-\[480px\]{max-width:480px}.max-w-\[50\%\]{max-width:50%}.max-w-\[500px\]{max-width:500px}.max-w-\[50px\]{max-width:50px}.max-w-\[51px\]{max-width:51px}.max-w-\[550px\]{max-width:550px}.max-w-\[60\%\]{max-width:60%}.max-w-\[60px\]{max-width:60px}.max-w-\[640px\]{max-width:640px}.max-w-\[64px\]{max-width:64px}.max-w-\[70\%\]{max-width:70%}.max-w-\[720px\]{max-width:720px}.max-w-\[780px\]{max-width:780px}.max-w-\[80\%\]{max-width:80%}.max-w-\[800px\]{max-width:800px}.max-w-\[920px\]{max-width:920px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1080px}.max-w-screen-xl{max-width:1280px}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-y-0{--tw-translate-y:0px}.rotate-180,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.scroll-py-2{scroll-padding-bottom:.5rem;scroll-padding-top:.5rem}.list-inside{list-style-position:inside}.\!list-none{list-style-type:none!important}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-center{align-content:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-10{row-gap:2.5rem}.gap-y-4{row-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1px*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-blue-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(191 228 255/var(--tw-divide-opacity))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(237 240 242/var(--tw-divide-opacity))}.divide-primary-default>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(15 135 235/var(--tw-divide-opacity))}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b-\[6px\]{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-\[4px\]{border-top-left-radius:4px;border-top-right-radius:4px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[10px\]{border-width:10px}.border-\[1px\]{border-width:1px}.border-\[2px\]{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-b-\[1px\]{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4,.border-l-\[4px\]{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-r-\[1px\]{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-t-8{border-top-width:8px}.border-t-\[0px\]{border-top-width:0}.border-t-\[10px\]{border-top-width:10px}.border-t-\[1px\]{border-top-width:1px}.border-t-\[2px\]{border-top-width:2px}.border-t-\[4px\]{border-top-width:4px}.border-t-\[6px\]{border-top-width:6px}.\!border-gray-100{--tw-border-opacity:1!important;border-color:rgb(237 240 242/var(--tw-border-opacity))!important}.\!border-red-600{--tw-border-opacity:1!important;border-color:rgb(220 38 38/var(--tw-border-opacity))!important}.\!border-transparent{border-color:transparent!important}.border-\[\#00b2ff\]{--tw-border-opacity:1;border-color:rgb(0 178 255/var(--tw-border-opacity))}.border-\[\#359fea\]{--tw-border-opacity:1;border-color:rgb(53 159 234/var(--tw-border-opacity))}.border-\[\#3f6da4\]{--tw-border-opacity:1;border-color:rgb(63 109 164/var(--tw-border-opacity))}.border-\[\#a2c4df\]{--tw-border-opacity:1;border-color:rgb(162 196 223/var(--tw-border-opacity))}.border-\[\#e2e2e2\]{--tw-border-opacity:1;border-color:rgb(226 226 226/var(--tw-border-opacity))}.border-\[\#e3e4e5\]{--tw-border-opacity:1;border-color:rgb(227 228 229/var(--tw-border-opacity))}.border-\[\#ededed\]{--tw-border-opacity:1;border-color:rgb(237 237 237/var(--tw-border-opacity))}.border-\[\#f2f3f8\]{--tw-border-opacity:1;border-color:rgb(242 243 248/var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.border-blue-100{--tw-border-opacity:1;border-color:rgb(191 228 255/var(--tw-border-opacity))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(73 176 245/var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(17 138 237/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(4 121 217/var(--tw-border-opacity))}.border-blue-800{--tw-border-opacity:1;border-color:rgb(0 38 77/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity))}.border-gray-100\/90{border-color:rgba(237,240,242,.9)}.border-gray-200{--tw-border-opacity:1;border-color:rgb(217 223 229/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(191 201 210/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(160 175 189/var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity))}.border-primary-dark{--tw-border-opacity:1;border-color:rgb(32 63 119/var(--tw-border-opacity))}.border-primary-default{--tw-border-opacity:1;border-color:rgb(15 135 235/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity))}.border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.\!border-b-blue-500{--tw-border-opacity:1!important;border-bottom-color:rgb(4 121 217/var(--tw-border-opacity))!important}.\!border-b-gray-100{--tw-border-opacity:1!important;border-bottom-color:rgb(237 240 242/var(--tw-border-opacity))!important}.\!border-l-blue-400{--tw-border-opacity:1!important;border-left-color:rgb(17 138 237/var(--tw-border-opacity))!important}.border-b-gray-100{--tw-border-opacity:1;border-bottom-color:rgb(237 240 242/var(--tw-border-opacity))}.border-b-primary-default{--tw-border-opacity:1;border-bottom-color:rgb(15 135 235/var(--tw-border-opacity))}.border-l-blue-800{--tw-border-opacity:1;border-left-color:rgb(0 38 77/var(--tw-border-opacity))}.border-l-transparent{border-left-color:transparent}.border-t-\[\#0068b1\]{--tw-border-opacity:1;border-top-color:rgb(0 104 177/var(--tw-border-opacity))}.border-t-blue-400{--tw-border-opacity:1;border-top-color:rgb(17 138 237/var(--tw-border-opacity))}.border-t-blue-500{--tw-border-opacity:1;border-top-color:rgb(4 121 217/var(--tw-border-opacity))}.border-t-primary-default{--tw-border-opacity:1;border-top-color:rgb(15 135 235/var(--tw-border-opacity))}.\!bg-gray-50{--tw-bg-opacity:1!important;background-color:rgb(248 249 250/var(--tw-bg-opacity))!important}.\!bg-primary-default{--tw-bg-opacity:1!important;background-color:rgb(15 135 235/var(--tw-bg-opacity))!important}.\!bg-slate-100{background-color:rgb(241 245 249/var(--tw-bg-opacity))!important}.\!bg-slate-100,.\!bg-white{--tw-bg-opacity:1!important}.\!bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.bg-\[\#00000052\]{background-color:#00000052}.bg-\[\#00264D\]{--tw-bg-opacity:1;background-color:rgb(0 38 77/var(--tw-bg-opacity))}.bg-\[\#003270\]{--tw-bg-opacity:1;background-color:rgb(0 50 112/var(--tw-bg-opacity))}.bg-\[\#005BA6\]{--tw-bg-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity))}.bg-\[\#00B2FF\]{--tw-bg-opacity:1;background-color:rgb(0 178 255/var(--tw-bg-opacity))}.bg-\[\#0e3d75\]{--tw-bg-opacity:1;background-color:rgb(14 61 117/var(--tw-bg-opacity))}.bg-\[\#0f87eb\]{--tw-bg-opacity:1;background-color:rgb(15 135 235/var(--tw-bg-opacity))}.bg-\[\#1087eb\]{--tw-bg-opacity:1;background-color:rgb(16 135 235/var(--tw-bg-opacity))}.bg-\[\#113b86\]{--tw-bg-opacity:1;background-color:rgb(17 59 134/var(--tw-bg-opacity))}.bg-\[\#15529B\]{--tw-bg-opacity:1;background-color:rgb(21 82 155/var(--tw-bg-opacity))}.bg-\[\#173374\]{--tw-bg-opacity:1;background-color:rgb(23 51 116/var(--tw-bg-opacity))}.bg-\[\#203f77\]{--tw-bg-opacity:1;background-color:rgb(32 63 119/var(--tw-bg-opacity))}.bg-\[\#215592\]{--tw-bg-opacity:1;background-color:rgb(33 85 146/var(--tw-bg-opacity))}.bg-\[\#2660a4\]{--tw-bg-opacity:1;background-color:rgb(38 96 164/var(--tw-bg-opacity))}.bg-\[\#2f358c\]{--tw-bg-opacity:1;background-color:rgb(47 53 140/var(--tw-bg-opacity))}.bg-\[\#313792\]{--tw-bg-opacity:1;background-color:rgb(49 55 146/var(--tw-bg-opacity))}.bg-\[\#333333ee\]{background-color:#333333ee}.bg-\[\#3862CB\]{--tw-bg-opacity:1;background-color:rgb(56 98 203/var(--tw-bg-opacity))}.bg-\[\#7FE8F7\]{--tw-bg-opacity:1;background-color:rgb(127 232 247/var(--tw-bg-opacity))}.bg-\[\#E3E9EE\]{--tw-bg-opacity:1;background-color:rgb(227 233 238/var(--tw-bg-opacity))}.bg-\[\#F8FAFF\]{--tw-bg-opacity:1;background-color:rgb(248 250 255/var(--tw-bg-opacity))}.bg-\[\#edeff7\]{--tw-bg-opacity:1;background-color:rgb(237 239 247/var(--tw-bg-opacity))}.bg-\[\#f0f7fc\]{--tw-bg-opacity:1;background-color:rgb(240 247 252/var(--tw-bg-opacity))}.bg-\[\#f1f7fc\]{--tw-bg-opacity:1;background-color:rgb(241 247 252/var(--tw-bg-opacity))}.bg-\[\#f2f3f8\]{--tw-bg-opacity:1;background-color:rgb(242 243 248/var(--tw-bg-opacity))}.bg-\[\#f4df47\]{--tw-bg-opacity:1;background-color:rgb(244 223 71/var(--tw-bg-opacity))}.bg-\[\#f4f4f4\]{--tw-bg-opacity:1;background-color:rgb(244 244 244/var(--tw-bg-opacity))}.bg-\[\#f4f9fc\]{--tw-bg-opacity:1;background-color:rgb(244 249 252/var(--tw-bg-opacity))}.bg-\[\#f6f9fc\]{--tw-bg-opacity:1;background-color:rgb(246 249 252/var(--tw-bg-opacity))}.bg-\[\#f7f7f8\]{--tw-bg-opacity:1;background-color:rgb(247 247 248/var(--tw-bg-opacity))}.bg-\[\#f8f9fa\]{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.bg-\[\#f8faff\]{--tw-bg-opacity:1;background-color:rgb(248 250 255/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(191 228 255/var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(73 176 245/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(4 121 217/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgb(0 57 115/var(--tw-bg-opacity))}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(0 38 77/var(--tw-bg-opacity))}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(237 240 242/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(217 223 229/var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(160 175 189/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(127 146 165/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(47 78 109/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-green-300{--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-primary-dark{--tw-bg-opacity:1;background-color:rgb(32 63 119/var(--tw-bg-opacity))}.bg-primary-default{--tw-bg-opacity:1;background-color:rgb(15 135 235/var(--tw-bg-opacity))}.bg-primary-gray-light{--tw-bg-opacity:1;background-color:rgb(246 249 252/var(--tw-bg-opacity))}.bg-primary-light{--tw-bg-opacity:1;background-color:rgb(244 249 252/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.\!bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))!important}.bg-\[url\(\'\/assets\/background-tile\.png\'\)\]{background-image:url(https://cdn.haproxy.com/assets/background-tile.png)}.bg-\[url\(\'\/assets\/migration_landing\/new\/review-bg\.svg\'\)\]{background-image:url(https://cdn.haproxy.com/assets/migration_landing/new/review-bg.svg)}.bg-\[url\(\'\/assets\/success-stories\/eddie-bijnen\.png\'\)\]{background-image:url(https://cdn.haproxy.com/assets/success-stories/eddie-bijnen.png)}.bg-\[url\(\'\/assets\/success-stories\/eric-martinson-bg\.jpg\'\)\]{background-image:url(https://cdn.haproxy.com/assets/success-stories/eric-martinson-bg.jpg)}.bg-\[url\(\/assets\/haproxy-2_6-carousel\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/haproxy-2_6-carousel.png)}.bg-\[url\(\/assets\/haproxyconf-cfp-slide-02\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/haproxyconf-cfp-slide-02.png)}.bg-\[url\(\/assets\/how-to-migrate-successfully-from-f5-to-haproxy-crop\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/how-to-migrate-successfully-from-f5-to-haproxy-crop.png)}.bg-\[url\(\/assets\/secpagev2\/bg-pattern\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/secpagev2/bg-pattern.png)}.bg-\[url\(\/assets\/user-spotlight\/user-spotlight-series\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/user-spotlight/user-spotlight-series.png)}.bg-\[url\(http\:\/\/haproxy\.test\/assets\/gov\/nicolas-chaillan\.jpeg\)\]{background-image:url(http://haproxy.test/assets/gov/nicolas-chaillan.jpeg)}.bg-cube-pattern{background-image:url(https://cdn.haproxy.com/assets/tailwind-config/haproxy-fusion-pattern-background.png)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gray-fade-to-bottom{background-image:linear-gradient(180deg,#f8faff,rgba(41,196,169,0) 60%)}.bg-square-background{background-image:url(https://cdn.haproxy.com/assets/tailwind-config/square-background.png),linear-gradient(90deg,#f0f6fc,#f6fdff)!important}.bg-user-spolight-pattern{background-image:url(https://cdn.haproxy.com/assets/user-spotlight/haproxy-user-spotlight-series-slider-carousel.png),linear-gradient(86deg,#313792,#1d235d 75%)}.\!from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position)!important;--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position)!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)!important}.from-\[\#0F1250\]{--tw-gradient-from:#0f1250 var(--tw-gradient-from-position);--tw-gradient-to:rgba(15,18,80,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#1d235d\]{--tw-gradient-from:#1d235d var(--tw-gradient-from-position);--tw-gradient-to:rgba(29,35,93,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#243c5a\]{--tw-gradient-from:#243c5a var(--tw-gradient-from-position);--tw-gradient-to:rgba(36,60,90,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#313792\]{--tw-gradient-from:#313792 var(--tw-gradient-from-position);--tw-gradient-to:rgba(49,55,146,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#E9FFFF\]{--tw-gradient-from:#e9ffff var(--tw-gradient-from-position);--tw-gradient-to:rgba(233,255,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#F0F7FC\]{--tw-gradient-from:#f0f7fc var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,247,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#e2f4ff\]{--tw-gradient-from:#e2f4ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(226,244,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#e2f5ff\]{--tw-gradient-from:#e2f5ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(226,245,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#e2f7fe\]{--tw-gradient-from:#e2f7fe var(--tw-gradient-from-position);--tw-gradient-to:rgba(226,247,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#efeded\]{--tw-gradient-from:#efeded var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,6%,93%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#f0f8ff\]{--tw-gradient-from:#f0f8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,248,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#fcf0de\]{--tw-gradient-from:#fcf0de var(--tw-gradient-from-position);--tw-gradient-to:hsla(36,83%,93%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-\[\#ffffff\]{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-300{--tw-gradient-from:#49b0f5 var(--tw-gradient-from-position);--tw-gradient-to:rgba(73,176,245,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-50{--tw-gradient-from:#f0f8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,248,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from:#f8f9fa var(--tw-gradient-from-position);--tw-gradient-to:rgba(248,249,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-200{--tw-gradient-from:#bae6fd var(--tw-gradient-from-position);--tw-gradient-to:rgba(186,230,253,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-0\%{--tw-gradient-from-position:0%}.via-\[\#1d235d\]{--tw-gradient-to:rgba(29,35,93,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1d235d var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#e2f4ff\]{--tw-gradient-to:rgba(226,244,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e2f4ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#e2f5ff\]{--tw-gradient-to:rgba(226,245,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e2f5ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#e2f7fe\]{--tw-gradient-to:rgba(226,247,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e2f7fe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#efeded\]{--tw-gradient-to:hsla(0,6%,93%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#efeded var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#fcf0de\]{--tw-gradient-to:hsla(36,83%,93%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fcf0de var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-\[\#ffffff\],.via-white{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-20\%{--tw-gradient-via-position:20%}.\!to-slate-100{--tw-gradient-to:#f1f5f9 var(--tw-gradient-to-position)!important}.to-\[\#00b4b4\]{--tw-gradient-to:#00b4b4 var(--tw-gradient-to-position)}.to-\[\#0288cf\]{--tw-gradient-to:#0288cf var(--tw-gradient-to-position)}.to-\[\#169be2\]{--tw-gradient-to:#169be2 var(--tw-gradient-to-position)}.to-\[\#1d235d\]{--tw-gradient-to:#1d235d var(--tw-gradient-to-position)}.to-\[\#243c5a\]{--tw-gradient-to:#243c5a var(--tw-gradient-to-position)}.to-\[\#313792\]{--tw-gradient-to:#313792 var(--tw-gradient-to-position)}.to-\[\#46ABDE\]{--tw-gradient-to:#46abde var(--tw-gradient-to-position)}.to-\[\#499fdd\]{--tw-gradient-to:#499fdd var(--tw-gradient-to-position)}.to-\[\#599ad4\]{--tw-gradient-to:#599ad4 var(--tw-gradient-to-position)}.to-\[\#6ebee3\]{--tw-gradient-to:#6ebee3 var(--tw-gradient-to-position)}.to-\[\#70a6d8\]{--tw-gradient-to:#70a6d8 var(--tw-gradient-to-position)}.to-\[\#91d4d2\]{--tw-gradient-to:#91d4d2 var(--tw-gradient-to-position)}.to-\[\#C0E9FC\]{--tw-gradient-to:#c0e9fc var(--tw-gradient-to-position)}.to-\[\#e2f7fe\]{--tw-gradient-to:#e2f7fe var(--tw-gradient-to-position)}.to-\[\#f4c8cd\]{--tw-gradient-to:#f4c8cd var(--tw-gradient-to-position)}.to-\[\#f9c8c5\]{--tw-gradient-to:#f9c8c5 var(--tw-gradient-to-position)}.to-\[\#ffffff\]{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.to-blue-100{--tw-gradient-to:#bfe4ff var(--tw-gradient-to-position)}.to-blue-900{--tw-gradient-to:#1e3a8a var(--tw-gradient-to-position)}.to-orange-100{--tw-gradient-to:#ffedd5 var(--tw-gradient-to-position)}.to-pink-100{--tw-gradient-to:#fce7f3 var(--tw-gradient-to-position)}.to-purple-100{--tw-gradient-to:#f3e8ff var(--tw-gradient-to-position)}.to-sky-100{--tw-gradient-to:#e0f2fe var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.to-70\%{--tw-gradient-to-position:70%}.bg-\[length\:1900px\]{background-size:1900px}.bg-cover{background-size:cover}.bg-\[50\%_top\]{background-position:50% top}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-top{background-position:top}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.fill-\[white\]{fill:#fff}.fill-black{fill:#000}.fill-white{fill:#fff}.\!p-0{padding:0!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[20px\]{padding:20px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[10\%\]{padding-left:10%;padding-right:10%}.px-\[35px\]{padding-left:35px;padding-right:35px}.px-\[5\%\]{padding-left:5%;padding-right:5%}.px-\[5px\]{padding-left:5px;padding-right:5px}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-11{padding-bottom:2.75rem;padding-top:2.75rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-7{padding-bottom:1.75rem;padding-top:1.75rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-9{padding-bottom:2.25rem;padding-top:2.25rem}.py-\[15px\]{padding-bottom:15px;padding-top:15px}.py-\[5px\]{padding-bottom:5px;padding-top:5px}.\!pb-5{padding-bottom:1.25rem!important}.\!pl-0{padding-left:0!important}.\!pl-3{padding-left:.75rem!important}.\!pl-5{padding-left:1.25rem!important}.\!pr-12{padding-right:3rem!important}.\!pr-5{padding-right:1.25rem!important}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-9{padding-bottom:2.25rem}.pb-\[0\.8rem\]{padding-bottom:.8rem}.pb-\[10px\]{padding-bottom:10px}.pb-\[116px\]{padding-bottom:116px}.pb-\[140px\]{padding-bottom:140px}.pb-\[200px\]{padding-bottom:200px}.pb-\[40px\]{padding-bottom:40px}.pb-\[60px\]{padding-bottom:60px}.pb-\[80px\]{padding-bottom:80px}.pl-0{padding-left:0}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-\[20px\]{padding-left:20px}.pr-0{padding-right:0}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.ps-6{padding-inline-start:1.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pt-9{padding-top:2.25rem}.pt-\[100px\]{padding-top:100px}.pt-\[18px\]{padding-top:18px}.pt-\[40px\]{padding-top:40px}.pt-\[60px\]{padding-top:60px}.pt-\[67px\]{padding-top:67px}.pt-\[80px\]{padding-top:80px}.pt-md{padding-top:16px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.text-end{text-align:end}.align-middle{vertical-align:middle}.\!font-serif{font-family:Georgia,Times New Roman,serif!important}.font-serif{font-family:Georgia,Times New Roman,serif}.\!text-\[14px\]{font-size:14px!important}.\!text-lg{font-size:1.125rem!important}.\!text-sm{font-size:.875rem!important}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-5xl{font-size:3rem}.text-6xl{font-size:3.75rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[26px\]{font-size:26px}.text-\[28px\]{font-size:28px}.text-\[2rem\]{font-size:2rem}.text-\[30px\]{font-size:30px}.text-\[32px\]{font-size:32px}.text-\[50px\]{font-size:50px}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.\!font-bold{font-weight:700!important}.font-\[500\]{font-weight:500}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.\!leading-\[66px\]{line-height:66px!important}.\!leading-none{line-height:1!important}.\!leading-tight{line-height:1.25!important}.leading-10{line-height:2.5rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-\[1\.3rem\]{line-height:1.3rem}.leading-\[21px\]{line-height:21px}.leading-\[26px\]{line-height:26px}.leading-\[28px\]{line-height:28px}.leading-\[29px\]{line-height:29px}.leading-\[32px\]{line-height:32px}.leading-\[34px\]{line-height:34px}.leading-\[35px\]{line-height:35px}.leading-\[42px\]{line-height:42px}.leading-\[60px\]{line-height:60px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.75}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.\!text-gray-600{--tw-text-opacity:1!important;color:rgb(87 112 138/var(--tw-text-opacity))!important}.\!text-primary-default{--tw-text-opacity:1!important;color:rgb(15 135 235/var(--tw-text-opacity))!important}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.text-\[\#0479d9\]{--tw-text-opacity:1;color:rgb(4 121 217/var(--tw-text-opacity))}.text-\[\#0f87eb\]{--tw-text-opacity:1;color:rgb(15 135 235/var(--tw-text-opacity))}.text-\[\#113b86\]{--tw-text-opacity:1;color:rgb(17 59 134/var(--tw-text-opacity))}.text-\[\#1C90D2\],.text-\[\#1c90d2\]{--tw-text-opacity:1;color:rgb(28 144 210/var(--tw-text-opacity))}.text-\[\#2660a4\]{--tw-text-opacity:1;color:rgb(38 96 164/var(--tw-text-opacity))}.text-\[\#2dbee3\]{--tw-text-opacity:1;color:rgb(45 190 227/var(--tw-text-opacity))}.text-\[\#3976bf\]{--tw-text-opacity:1;color:rgb(57 118 191/var(--tw-text-opacity))}.text-\[\#3F83C4\]{--tw-text-opacity:1;color:rgb(63 131 196/var(--tw-text-opacity))}.text-\[\#3f6da4\]{--tw-text-opacity:1;color:rgb(63 109 164/var(--tw-text-opacity))}.text-\[\#599ad4\]{--tw-text-opacity:1;color:rgb(89 154 212/var(--tw-text-opacity))}.text-\[\#666\]{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity))}.text-\[\#68ad97\]{--tw-text-opacity:1;color:rgb(104 173 151/var(--tw-text-opacity))}.text-\[\#8CDFFC\]{--tw-text-opacity:1;color:rgb(140 223 252/var(--tw-text-opacity))}.text-\[\#969696\]{--tw-text-opacity:1;color:rgb(150 150 150/var(--tw-text-opacity))}.text-\[\#989898\]{--tw-text-opacity:1;color:rgb(152 152 152/var(--tw-text-opacity))}.text-\[\#de5d5d\]{--tw-text-opacity:1;color:rgb(222 93 93/var(--tw-text-opacity))}.text-\[\#f00\]{--tw-text-opacity:1;color:rgb(255 0 0/var(--tw-text-opacity))}.text-\[black\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-\[cyan\]{--tw-text-opacity:1;color:rgb(0 255 255/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-200{--tw-text-opacity:1;color:rgb(128 209 255/var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity:1;color:rgb(73 176 245/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}.text-blue-50{--tw-text-opacity:1;color:rgb(240 248 255/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(0 91 166/var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(0 38 77/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(160 175 189/var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgb(248 249 250/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(127 146 165/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(47 78 109/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(0 38 77/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity))}.text-inherit{color:inherit}.text-primary-dark{--tw-text-opacity:1;color:rgb(32 63 119/var(--tw-text-opacity))}.text-primary-default{--tw-text-opacity:1;color:rgb(15 135 235/var(--tw-text-opacity))}.text-primary-gray-dark{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.text-primary-gray-medium{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity))}.text-primary-green{--tw-text-opacity:1;color:rgb(73 186 186/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.\!no-underline{text-decoration-line:none!important}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-featured{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-featured{--tw-shadow:0px 2px 18px 0px rgba(0,0,0,.3);--tw-shadow-colored:0px 2px 18px 0px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.\!outline-0{outline-width:0!important}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2,.ring-4{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-blue-100{--tw-ring-opacity:1;--tw-ring-color:rgb(191 228 255/var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgb(217 223 229/var(--tw-ring-opacity))}.ring-green-600\/20{--tw-ring-color:rgba(22,163,74,.2)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow-lg{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1))}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-150{transition-delay:.15s}.duration-0{transition-duration:0s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ais-SearchBox form{align-items:center;display:flex;position:relative;width:100%}.ais-SearchBox-input{--tw-border-opacity:1;border-color:rgb(217 223 229/var(--tw-border-opacity));border-width:2px;font-size:1.125rem;padding:1rem 3.5rem;width:100%}.ais-SearchBox-input:focus{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(15 135 235/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid transparent;outline-offset:2px}.ais-SearchBox-input::-moz-placeholder{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));opacity:.7}.ais-SearchBox-input::placeholder{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));opacity:.7}.ais-SearchBox-reset{position:absolute;right:5rem}.ais-SearchBox-reset svg{--tw-text-opacity:1!important;fill:currentColor;color:rgb(51 51 51/var(--tw-text-opacity))!important}.ais-SearchBox-submit{--tw-translate-y:-50%;left:1.25rem;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ais-SearchBox-submit svg{--tw-text-opacity:1!important;fill:currentColor;color:rgb(51 51 51/var(--tw-text-opacity))!important;height:1.25rem;width:auto}.ais-Pagination,.ais-Pagination-list{display:flex;list-style-type:none!important;margin:0!important;padding:0!important}.ais-Pagination .ais-Pagination-item{margin-bottom:0!important}.ais-Pagination .ais-Pagination-item--previousPage,.ais-Pagination-item--nextPage{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));display:flex;flex-direction:column;height:100%;justify-content:center;padding-left:.25rem!important;padding-right:.25rem!important}.ais-Pagination .ais-Pagination-item--previousPage.ais-Pagination-item--disabled span,.ais-Pagination-item--nextPage.ais-Pagination-item--disabled span{opacity:.5}.ais-Pagination .ais-Pagination-item--page a{padding-bottom:.25rem;padding-left:.5rem!important;padding-right:.5rem!important;padding-top:.25rem}.ais-Pagination .ais-Pagination-item--page{padding-left:.125rem!important;padding-right:.125rem!important}.ais-Pagination .ais-Pagination-item.ais-Pagination-item--selected a{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));opacity:1}.ais-Pagination .ais-Pagination-item a{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));opacity:.7}.ais-Highlight-highlighted,.algolia-docsearch-suggestion--highlight{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(15 135 235/var(--tw-bg-opacity));color:rgb(240 248 255/var(--tw-text-opacity))}.comma-list ul{list-style-type:none!important}@media (max-width:768px){.comma-list p{margin-bottom:0}.comma-list ul{display:flex;flex-wrap:wrap}.comma-list li,.comma-list ul{margin:0!important;padding:0!important}.comma-list li{display:inline-flex}.comma-list li:after{content:", ";padding-right:4px}.comma-list li:last-child:after{content:""}}.table-responsive{overflow:hidden;overflow-x:scroll}.styled-table p{margin:0!important;padding:0!important}.styled-table .first-row .first-col{vertical-align:bottom}.styled-table td:not(.first-row .first-col),.styled-table th:not(.first-col){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.responsive-table{margin:0;padding:0;table-layout:fixed;width:100%}.responsive-table caption{margin:.75rem .5rem}@media screen and (max-width:640px){.responsive-table,.responsive-table thead{border-style:none}.responsive-table thead{clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.responsive-table tr{border-width:1px;display:block;font-family:Lexend,Helvetica,Arial,Lucida,sans-serif;margin-bottom:.5rem}.responsive-table td{align-items:center;border-width:1px;display:flex;font-size:.75rem;justify-content:space-between}.responsive-table td:before{font-weight:700;text-align:left;width:40%}.responsive-table td:not(.first-col):before{--tw-text-opacity:1;color:rgb(32 63 119/var(--tw-text-opacity));content:attr(data-label)}.responsive-table td.first-col:before{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity));content:attr(data-label)}.responsive-table td.light:before{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));content:attr(data-label)}.responsive-table td:last-child{border-bottom-width:0}}.arrowlist ul li::marker{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity));content:"► ";font-size:80%}.triangle-right{list-style:none;margin:.75em 0;padding:0 1em}.triangle-right>li:before{border-style:solid;border-width:.35em 0 .35em .45em;content:"";display:block;height:0;left:-1em;position:relative;top:1.1em;width:0}.triangle-bottom{position:relative}.triangle-bottom:after{border-bottom:12px solid;border-left:12px solid transparent;border-right:12px solid transparent;bottom:0;content:"";height:0;left:50%;margin-left:-12px;position:absolute;width:0}.inverted-quotes img{max-height:20px}@media screen and (min-width:768px){.inverted-quotes blockquote:nth-child(2n) div{flex-direction:row-reverse;text-align:right}.inverted-quotes blockquote:nth-child(2n) img{margin-left:auto}.inverted-quotes blockquote:nth-child(2n) svg{margin-left:1.25rem;margin-right:0}}#main-footer-top ul{list-style-type:none;margin-left:0}.success-story table{border:0!important;border-collapse:collapse;width:100%}.success-story table td,.success-story table th{border:0;padding:8px;text-align:left}.success-story table tr:nth-child(3n+1) th{background:#f0faff;border-top:1px solid #f1f1f1!important;border:0;color:#1a3a7b;color:#3f6da4!important;font-family:Montserrat,Helvetica,Arial,Lucida,sans-serif;font-size:110%;padding-bottom:8px!important;padding-top:20px!important}.success-story table td{font-size:12px;padding-right:16px!important;padding-top:0!important;vertical-align:top}.success-story table td ul{line-height:1.5em;padding-bottom:25px!important;padding-left:15px!important;padding-top:0!important}.success-story table td ul li{margin:3px 0}.success-story table td ul li::marker{color:#999}.success-story table tr.subhdr th{background:#fff;border-top:0!important;color:inherit!important;font-size:90%;padding-bottom:8px!important;padding-top:12px!important}#mainfooter a:active,#mainfooter a:focus,#mainfooter a:hover{text-decoration:none!important}#careers h2,#careers h3,#careers h4,#careers h5,#careers h6{--tw-text-opacity:1;color:rgb(0 57 115/var(--tw-text-opacity))}#careers h2:nth-child(n+2){--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity));border-top-width:1px;margin-top:0;padding-top:1.25rem}.careerform input,.careerform label,.careerform select,.careerform textarea{max-width:100%;width:100%}.careerform form{width:100%}.careerform form input:not([type=file]),.careerform form textarea{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(237 240 242/var(--tw-border-opacity));border-width:1px;padding:.5rem}.careerform button,.careerform input.hs-button.primary.large{--tw-bg-opacity:1;background-color:rgb(17 138 237/var(--tw-bg-opacity));border-radius:.25rem;display:inline-block;font-size:1.125rem;font-weight:500;margin-bottom:1rem;margin-top:1rem;padding:1rem 1.5rem;transition-duration:.3s;width:auto}.careerform button:hover,.careerform input.hs-button.primary.large:hover{text-decoration-line:none}.careerform button:focus,.careerform input.hs-button.primary.large:focus{outline:2px solid transparent;outline-offset:2px}.careerform button,.careerform input.hs-button.primary.large{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.careerform button:hover,.careerform input.hs-button.primary.large:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.careerform button,.careerform input.hs-button.primary.large{border-width:0;cursor:pointer;display:block;font-weight:700;margin:1.25rem auto 0;padding:.5rem 2rem;width:100%}.careerform .hs-fieldtype-file{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));border-color:rgb(237 240 242/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;padding:.75rem}.careerform .hs-fieldtype-file legend{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity));font-size:.75rem;padding-bottom:.5rem}.careerform .hs-fieldtype-file input[type=file]{--tw-text-opacity:1;color:rgb(0 91 166/var(--tw-text-opacity));font-size:.875rem}.careerform .hs-fieldtype-file input[type=file]::file-selector-button{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity));border-color:rgb(191 228 255/var(--tw-border-opacity));border-radius:.125rem;color:rgb(0 91 166/var(--tw-text-opacity))}.careerform .submitted-message{font-size:.875rem;margin-bottom:0;text-align:center}.api-form input[type=file]{--tw-text-opacity:1;color:rgb(0 91 166/var(--tw-text-opacity));font-size:.875rem}.api-form input[type=file]::file-selector-button{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity));border-color:rgb(191 228 255/var(--tw-border-opacity));border-radius:.125rem;color:rgb(0 91 166/var(--tw-text-opacity))}.success-stories__active.is-selected{--tw-border-opacity:1;background-color:rgba(248,249,250,.5);border-color:rgb(17 138 237/var(--tw-border-opacity));font-weight:500}.careers__now-hiring{margin-bottom:0;position:relative}.careers__now-hiring:after{--tw-translate-y:-50%;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(4 121 217/var(--tw-bg-opacity));border-radius:9999px;color:rgb(255 255 255/var(--tw-text-opacity));content:"Now Hiring";font-size:.6rem;margin-left:.5rem;padding:1px .5rem;position:absolute;top:53%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media screen and (min-width:768px){.special-quote{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 134 100'%3E%3Cpath d='M.3 52.75c.44-2.34.81-4.7 1.34-7.02C7.33 20.74 23.71 6.66 47.85.52c.63-.16 1.26-.29 1.89-.43.08-.02.18.01.66.05 1.72 3.73 3.53 7.63 5.37 11.59-13.67 6.59-20.71 17.5-22.32 32.62h22.22V100H.3V52.75ZM133.7 100H78.63c-.22-.4-.39-.55-.38-.71.09-15.55-.69-31.16.51-46.62 1.95-25.06 16.13-41.36 39.45-49.99 1.56-.58 3.15-1.08 4.75-1.52 1.6-.44 3.23-.74 5.09-1.16 1.88 3.87 3.77 7.74 5.65 11.62v.56c-1.11.41-2.29.68-3.31 1.25-10.12 5.71-16.01 14.48-18.37 25.73-.35 1.65-.4 3.37-.61 5.26h22.3v55.59Z' style='fill:%230ff'/%3E%3C/svg%3E");background-position:65px 75px;background-repeat:no-repeat;background-size:140px}}@media screen and (max-width:767px){.special-quote{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 134 100'%3E%3Cpath d='M.3 52.75c.44-2.34.81-4.7 1.34-7.02C7.33 20.74 23.71 6.66 47.85.52c.63-.16 1.26-.29 1.89-.43.08-.02.18.01.66.05 1.72 3.73 3.53 7.63 5.37 11.59-13.67 6.59-20.71 17.5-22.32 32.62h22.22V100H.3V52.75ZM133.7 100H78.63c-.22-.4-.39-.55-.38-.71.09-15.55-.69-31.16.51-46.62 1.95-25.06 16.13-41.36 39.45-49.99 1.56-.58 3.15-1.08 4.75-1.52 1.6-.44 3.23-.74 5.09-1.16 1.88 3.87 3.77 7.74 5.65 11.62v.56c-1.11.41-2.29.68-3.31 1.25-10.12 5.71-16.01 14.48-18.37 25.73-.35 1.65-.4 3.37-.61 5.26h22.3v55.59Z' style='fill:%230ff'/%3E%3C/svg%3E");background-position:1.25rem 30px;background-repeat:no-repeat;background-size:30px}}@media screen and (min-width:670px) and (max-width:767px){.special-quote{background-position:1.75rem 30px!important}}@media screen and (min-width:1080px){.netscaler-landing-hero:after{background:linear-gradient(0deg,#97c3f2,#4467b6);clip-path:polygon(26% 0,100% 0,100% 100%,0 100%);content:"";height:100%;left:45%;position:absolute;top:0;width:100%}}@media screen and (min-width:768px) and (max-width:1080px){.netscaler-landing-hero:after{background:linear-gradient(0deg,#97c3f2,#4467b6);clip-path:polygon(26% 0,100% 0,100% 100%,0 100%);content:"";height:100%;left:60%;position:absolute;top:0;width:100%}}@media screen and (max-width:768px){.netscaler-landing-hero:after{background:linear-gradient(49deg,#97c3f2,#4467b6);bottom:0;clip-path:polygon(0 15%,100% 0,100% 100%,0 100%);content:"";height:30%;left:0;position:absolute;width:100%}}.play-button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23128aed8f'%3E%3Cpath d='M6.3 2.84A1.5 1.5 0 0 0 4 4.11v11.78a1.5 1.5 0 0 0 2.3 1.27l9.344-5.891a1.5 1.5 0 0 0 0-2.538L6.3 2.841Z'/%3E%3C/svg%3E");content:"";height:50px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:50px}.tabs .tabs--active-arrow:before{--tw-translate-y:-50%;--tw-bg-opacity:1;background-color:rgb(17 138 237/var(--tw-bg-opacity));clip-path:polygon(100% 50%,0 0,0 100%);content:"";height:.75rem;left:0;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.625rem}.homepage-main-carousel,.homepage-top-slideshow-carousel{-webkit-user-select:none;-moz-user-select:none;user-select:none}.homepage-main-carousel .flickity-page-dots,.homepage-top-slideshow-carousel .flickity-page-dots{bottom:20px!important;z-index:0}.homepage-main-carousel .flickity-page-dots .dot,.homepage-top-slideshow-carousel .flickity-page-dots .dot{--tw-bg-opacity:0.9;background-color:rgb(0 38 77/var(--tw-bg-opacity));border-radius:.5rem;height:4px;margin-left:8px;margin-right:8px;width:40px}.homepage-main-carousel .flickity-button,.homepage-top-slideshow-carousel .flickity-button{height:2.5rem;padding:1rem;transition-duration:75ms;width:2.5rem;z-index:20}.homepage-main-carousel .flickity-slider .carousel-cell,.homepage-top-slideshow-carousel .flickity-slider .carousel-cell{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.success-stories-carousel .carousel-cell{height:530px!important}#productspage{padding-top:2.5rem!important}#productspage .sectionheadercontainer{max-width:56rem!important}#productspage .sectionintro{display:block;font-size:1.5rem;font-weight:400;padding-bottom:1.25rem}@media (max-width:768px){.hide-bg-on-mobile{background-image:none!important}}.custom-gradient-glossary{--tw-bg-opacity:1;background-color:rgb(240 248 255/var(--tw-bg-opacity))}@media (min-width:1080px){.custom-gradient-glossary{background:#f0f8ff;background:linear-gradient(90deg,#f0f8ff 46%,#98e6fd 62%,#aeebfd 79%,#443d83);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#f0f8ff",endColorstr="#443d83",GradientType=1)}}.darklink a{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.darklink a:hover{--tw-text-opacity:1;color:rgb(47 78 109/var(--tw-text-opacity))}.prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}h1 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))),h2 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))),h3 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))),h4 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))),h5 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))),h6 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}h1 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a,h2 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a,h3 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a,h4 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a,h5 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a,h6 .prose-a\:text-highlight :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))) a{--tw-text-opacity:1;color:rgb(17 138 237/var(--tw-text-opacity))}@media (min-width:640px){.sm\:pl-default{padding-left:1.25rem}}@media (min-width:768px){.md\:pt-default{padding-top:2.25rem}@media (min-width:768px){.md\:pt-default{padding-top:5rem}}.md\:pb-default{padding-bottom:2.25rem}@media (min-width:768px){.md\:pb-default{padding-bottom:5rem}}.md\:px-default{padding-right:1.25rem}.md\:pl-default,.md\:px-default{padding-left:1.25rem}.md\:pr-default{padding-right:1.25rem}.md\:contactformnew .hs-recaptcha{margin-left:auto;margin-right:auto}.md\:contactformnew form{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;border-width:2px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:flex;flex-direction:row;flex-wrap:wrap;padding:1.5rem .75rem .75rem}.md\:contactformnew .hs-form-field{padding-left:.5rem;padding-right:.5rem;width:100%}@media (min-width:768px){.md\:contactformnew .hs-form-field{width:50%}}.md\:contactformnew .hs-dependent-field{padding-left:.5rem;padding-right:.5rem;width:100%}@media (min-width:768px){.md\:contactformnew .hs-dependent-field{width:50%}}.md\:contactformnew .hs-dependent-field .hs-form-field{padding-left:0;padding-right:0;width:100%}.md\:contactformnew .hs-fieldtype-textarea{margin-bottom:0!important;width:100%}.md\:contactformnew .hs-fieldtype-textarea textarea{margin-bottom:0}.md\:contactformnew .legal-consent-container .hs-richtext{margin:0!important}.md\:contactformnew .legal-consent-container .hs-richtext p{padding-left:.5rem;padding-right:.5rem}.md\:contactformnew .legal-consent-container .hs-dependent-field{width:100%}.md\:contactformnew [type=checkbox]{margin-top:4px}.md\:contactformnew .hs-submit{width:100%}.md\:contactformnew form .hs_contact_form_qualifying_question{width:100%!important}}@media (min-width:1080px){.lg\:px-default{padding-left:1.25rem;padding-right:1.25rem}}@media (min-width:1280px){.xl\:pl-default{padding-left:1.25rem}}@media (min-width:1080px){.lg\:container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:640px){.lg\:container{max-width:640px}}@media (min-width:768px){.lg\:container{max-width:768px}}@media (min-width:1080px){.lg\:container{max-width:1080px}}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:bottom-0:before{bottom:0;content:var(--tw-content)}.before\:left-0:before{content:var(--tw-content);left:0}.before\:left-1\/2:before{content:var(--tw-content);left:50%}.before\:left-\[5\%\]:before{content:var(--tw-content);left:5%}.before\:right-0:before{content:var(--tw-content);right:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:-z-10:before{content:var(--tw-content);z-index:-10}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-0:before{content:var(--tw-content);height:0}.before\:h-1\/2:before{content:var(--tw-content);height:50%}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-\[90\%\]:before{content:var(--tw-content);width:90%}.before\:-translate-x-1\/2:before{--tw-translate-x:-50%}.before\:-translate-x-1\/2:before,.before\:-translate-y-1\/2:before{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\:-translate-y-1\/2:before{--tw-translate-y:-50%}.before\:border-l-\[50px\]:before{border-left-width:50px;content:var(--tw-content)}.before\:border-r-\[50px\]:before{border-right-width:50px;content:var(--tw-content)}.before\:border-t-\[23px\]:before{border-top-width:23px;content:var(--tw-content)}.before\:\!border-x-\[black\]:before{--tw-border-opacity:1!important;border-left-color:rgb(0 0 0/var(--tw-border-opacity))!important;border-right-color:rgb(0 0 0/var(--tw-border-opacity))!important;content:var(--tw-content)}.before\:border-x-\[\#3f6da4\]:before{--tw-border-opacity:1;border-left-color:rgb(63 109 164/var(--tw-border-opacity));border-right-color:rgb(63 109 164/var(--tw-border-opacity));content:var(--tw-content)}.before\:border-y-transparent:before{border-bottom-color:transparent;border-top-color:transparent;content:var(--tw-content)}.before\:border-l-white:before{--tw-border-opacity:1;border-left-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.before\:border-r-white:before{--tw-border-opacity:1;border-right-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.before\:border-t-transparent:before{border-top-color:transparent;content:var(--tw-content)}.before\:bg-black:before{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));content:var(--tw-content)}.before\:bg-\[url\(\/assets\/homepage\/header\/header-grid\.svg\)\]:before{background-image:url(https://cdn.haproxy.com/assets/homepage/header/header-grid.svg);content:var(--tw-content)}.before\:bg-gradient-to-b:before{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.before\:from-\[\#f3f8fc\]:before{--tw-gradient-from:#f3f8fc var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,248,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);content:var(--tw-content)}.before\:from-\[\#f5f9fc\]:before{--tw-gradient-from:#f5f9fc var(--tw-gradient-from-position);--tw-gradient-to:rgba(245,249,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);content:var(--tw-content)}.before\:via-white:before{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to);content:var(--tw-content)}.before\:via-\[40\%\]:before{--tw-gradient-via-position:40%;content:var(--tw-content)}.before\:to-\[\#f4f8fd\]:before{--tw-gradient-to:#f4f8fd var(--tw-gradient-to-position);content:var(--tw-content)}.before\:to-white:before{--tw-gradient-to:#fff var(--tw-gradient-to-position);content:var(--tw-content)}.before\:bg-cover:before{background-size:cover;content:var(--tw-content)}.before\:opacity-30:before{content:var(--tw-content);opacity:.3}.before\:shadow-\[inset_0px_-23px_94px_-53px_rgba\(15\2c 18\2c 80\2c 0\.7\)\]:before{--tw-shadow:inset 0px -23px 94px -53px rgba(15,18,80,.7);--tw-shadow-colored:inset 0px -23px 94px -53px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bottom-0:after{bottom:0;content:var(--tw-content)}.after\:left-0:after{content:var(--tw-content);left:0}.after\:right-0:after{content:var(--tw-content);right:0}.after\:top-0:after{content:var(--tw-content);top:0}.after\:h-0:after{content:var(--tw-content);height:0}.after\:w-0:after{content:var(--tw-content);width:0}.after\:border-l-\[50px\]:after{border-left-width:50px;content:var(--tw-content)}.after\:border-r-\[50px\]:after{border-right-width:50px;content:var(--tw-content)}.after\:border-t-\[23px\]:after{border-top-width:23px;content:var(--tw-content)}.after\:border-b-\[\#00b2ff\]:after{--tw-border-opacity:1;border-bottom-color:rgb(0 178 255/var(--tw-border-opacity));content:var(--tw-content)}.after\:border-l-transparent:after{border-left-color:transparent;content:var(--tw-content)}.after\:border-r-transparent:after{border-right-color:transparent;content:var(--tw-content)}.after\:border-t-white:after{--tw-border-opacity:1;border-top-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.hover\:border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(4 121 217/var(--tw-border-opacity))}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(0 91 166/var(--tw-border-opacity))}.hover\:border-primary-dark:hover{--tw-border-opacity:1;border-color:rgb(32 63 119/var(--tw-border-opacity))}.hover\:border-b-blue-500:hover{--tw-border-opacity:1;border-bottom-color:rgb(4 121 217/var(--tw-border-opacity))}.hover\:border-b-primary-default:hover{--tw-border-opacity:1;border-bottom-color:rgb(15 135 235/var(--tw-border-opacity))}.hover\:border-t-blue-500:hover{--tw-border-opacity:1;border-top-color:rgb(4 121 217/var(--tw-border-opacity))}.hover\:border-t-primary-default:hover{--tw-border-opacity:1;border-top-color:rgb(15 135 235/var(--tw-border-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(0 91 166/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(237 240 242/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(217 223 229/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(0 38 77/var(--tw-bg-opacity))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\:font-bold:hover{font-weight:700}.hover\:\!text-blue-700:hover{--tw-text-opacity:1!important;color:rgb(0 57 115/var(--tw-text-opacity))!important}.hover\:text-\[\#3976bf\]:hover{--tw-text-opacity:1;color:rgb(57 118 191/var(--tw-text-opacity))}.hover\:text-\[black\]:hover,.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:text-blue-100:hover{--tw-text-opacity:1;color:rgb(191 228 255/var(--tw-text-opacity))}.hover\:text-blue-200:hover{--tw-text-opacity:1;color:rgb(128 209 255/var(--tw-text-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(4 121 217/var(--tw-text-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(0 91 166/var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(87 112 138/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(47 78 109/var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.hover\:text-inherit:hover{color:inherit}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:decoration-0:hover{text-decoration-thickness:0}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:drop-shadow-lg:hover{--tw-drop-shadow:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:before\:\!border-x-\[black\]:hover:before{--tw-border-opacity:1!important;border-left-color:rgb(0 0 0/var(--tw-border-opacity))!important;border-right-color:rgb(0 0 0/var(--tw-border-opacity))!important;content:var(--tw-content)}.focus\:z-20:focus{z-index:20}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(4 121 217/var(--tw-border-opacity))}.focus\:border-gray-400:focus{--tw-border-opacity:1;border-color:rgb(160 175 189/var(--tw-border-opacity))}.focus\:border-primary-default:focus{--tw-border-opacity:1;border-color:rgb(15 135 235/var(--tw-border-opacity))}.focus\:shadow-lg:focus{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.focus\:ring-4:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(4 121 217/var(--tw-ring-opacity))}.focus\:ring-green-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(22 163 74/var(--tw-ring-opacity))}.focus\:ring-primary-default:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(15 135 235/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:ring-offset-green-50:focus{--tw-ring-offset-color:#f0fdf4}.focus-visible\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:hidden{display:none}.group:hover .group-hover\:rotate-180{--tw-rotate:180deg}.group:hover .group-hover\:rotate-180,.group:hover .group-hover\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}@keyframes spin{to{transform:rotate(1turn)}}.group:hover .group-hover\:animate-\[spin_1\.5s_ease-in-out\]{animation:spin 1.5s ease-in-out}@keyframes pulse{50%{opacity:.5}}.group:hover .group-hover\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:hover .group-hover\:\!border-white{--tw-border-opacity:1!important;border-color:rgb(255 255 255/var(--tw-border-opacity))!important}.group:hover .group-hover\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}}@media (min-width:640px){.sm\:bottom-\[86px\]{bottom:86px}.sm\:top-\[50\%\]{top:50%}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-0{margin-bottom:0;margin-top:0}.sm\:my-16{margin-bottom:4rem;margin-top:4rem}.sm\:mb-0{margin-bottom:0}.sm\:ml-5{margin-left:1.25rem}.sm\:ml-6{margin-left:1.5rem}.sm\:ml-auto{margin-left:auto}.sm\:mr-3{margin-right:.75rem}.sm\:mt-0{margin-top:0}.sm\:mt-\[-180px\]{margin-top:-180px}.sm\:mt-\[-200px\]{margin-top:-200px}.sm\:mt-\[-50px\]{margin-top:-50px}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:hidden{display:none}.sm\:h-\[40px\]{height:40px}.sm\:h-full{height:100%}.sm\:min-h-\[800px\]{min-height:800px}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-1\/4{width:25%}.sm\:w-1\/5{width:20%}.sm\:w-2\/3{width:66.666667%}.sm\:w-2\/5{width:40%}.sm\:w-3\/4{width:75%}.sm\:w-3\/5{width:60%}.sm\:w-4\/5{width:80%}.sm\:w-5\/12{width:41.666667%}.sm\:w-7\/12{width:58.333333%}.sm\:w-9\/12{width:75%}.sm\:w-\[150px\]{width:150px}.sm\:w-\[40px\]{width:40px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:min-w-\[128px\]{min-width:128px}.sm\:max-w-xl{max-width:36rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:border-l{border-left-width:1px}.sm\:border-l-4{border-left-width:4px}.sm\:border-t-0{border-top-width:0}.sm\:bg-user-spolight-pattern{background-image:url(https://cdn.haproxy.com/assets/user-spotlight/haproxy-user-spotlight-series-slider-carousel.png),linear-gradient(86deg,#313792,#1d235d 75%)}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-24{padding-left:6rem;padding-right:6rem}.sm\:px-7{padding-left:1.75rem;padding-right:1.75rem}.sm\:pb-3{padding-bottom:.75rem}.sm\:pl-0{padding-left:0}.sm\:pl-12{padding-left:3rem}.sm\:pl-6{padding-left:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-center{text-align:center}.sm\:text-right{text-align:right}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:text-4xl{font-size:2.25rem}.sm\:text-lg{font-size:1.125rem}.sm\:text-xl{font-size:1.25rem}}@media (min-width:768px){.md\:fixed{position:fixed}.md\:absolute{position:absolute}.md\:relative{position:relative}.md\:inset-0{inset:0}.md\:bottom-\[126px\]{bottom:126px}.md\:bottom-\[20px\]{bottom:20px}.md\:left-0{left:0}.md\:left-auto{left:auto}.md\:right-\[20px\]{right:20px}.md\:right-\[62px\]{right:62px}.md\:top-0{top:0}.md\:top-\[101px\]{top:101px}.md\:top-\[102px\]{top:102px}.md\:top-\[30px\]{top:30px}.md\:top-\[35px\]{top:35px}.md\:top-\[85px\]{top:85px}.md\:col-span-3{grid-column:span 3/span 3}.md\:m-0{margin:0}.md\:m-auto{margin:auto}.md\:-my-\[34px\]{margin-bottom:-34px;margin-top:-34px}.md\:mx-0{margin-left:0;margin-right:0}.md\:mx-2{margin-left:.5rem;margin-right:.5rem}.md\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:my-0{margin-bottom:0;margin-top:0}.md\:my-12{margin-bottom:3rem;margin-top:3rem}.md\:my-auto{margin-bottom:auto;margin-top:auto}.md\:my-default{margin-bottom:2rem;margin-top:2rem}.md\:-mb-40{margin-bottom:-10rem}.md\:-mb-60{margin-bottom:-15rem}.md\:-mb-\[16em\]{margin-bottom:-16em}.md\:-mt-\[150px\]{margin-top:-150px}.md\:-mt-\[170px\]{margin-top:-170px}.md\:-mt-\[240px\]{margin-top:-240px}.md\:-mt-\[260px\]{margin-top:-260px}.md\:-mt-\[285px\]{margin-top:-285px}.md\:-mt-\[330px\]{margin-top:-330px}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-5{margin-bottom:1.25rem}.md\:mb-auto{margin-bottom:auto}.md\:ml-3{margin-left:.75rem}.md\:ml-5{margin-left:1.25rem}.md\:ml-auto{margin-left:auto}.md\:mr-0{margin-right:0}.md\:mr-4{margin-right:1rem}.md\:mr-\[3\%\]{margin-right:3%}.md\:mt-0{margin-top:0}.md\:mt-20{margin-top:5rem}.md\:mt-4{margin-top:1rem}.md\:mt-6{margin-top:1.5rem}.md\:mt-\[-140px\]{margin-top:-140px}.md\:mt-\[120px\]{margin-top:120px}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-20{height:5rem}.md\:h-24{height:6rem}.md\:h-32{height:8rem}.md\:h-4{height:1rem}.md\:h-5{height:1.25rem}.md\:h-\[128px\]{height:128px}.md\:h-\[380px\]{height:380px}.md\:h-\[570px\]{height:570px}.md\:h-\[600px\]{height:600px}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:max-h-\[480px\]{max-height:480px}.md\:max-h-\[calc\(100vh-150px\)\]{max-height:calc(100vh - 150px)}.md\:max-h-\[calc\(100vh-170px\)\]{max-height:calc(100vh - 170px)}.md\:\!w-auto{width:auto!important}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-1\/5{width:20%}.md\:w-10\/12{width:83.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-2\/5{width:40%}.md\:w-2\/6{width:33.333333%}.md\:w-20{width:5rem}.md\:w-24{width:6rem}.md\:w-3\/4{width:75%}.md\:w-3\/5{width:60%}.md\:w-4{width:1rem}.md\:w-4\/5{width:80%}.md\:w-4\/6{width:66.666667%}.md\:w-5{width:1.25rem}.md\:w-5\/12{width:41.666667%}.md\:w-7\/12{width:58.333333%}.md\:w-\[128px\]{width:128px}.md\:w-\[22\.72\%\]{width:22.72%}.md\:w-\[22\.75\%\]{width:22.75%}.md\:w-\[30\%\]{width:30%}.md\:w-\[31\.3333\%\]{width:31.3333%}.md\:w-\[40\%\]{width:40%}.md\:w-\[45\%\]{width:45%}.md\:w-\[48\.5\%\]{width:48.5%}.md\:w-\[500px\]{width:500px}.md\:w-\[60\%\]{width:60%}.md\:w-\[65\.667\%\]{width:65.667%}.md\:w-\[70\%\]{width:70%}.md\:w-\[720px\]{width:720px}.md\:w-auto{width:auto}.md\:w-full{width:100%}.md\:max-w-\[100\%\]{max-width:100%}.md\:max-w-\[180px\]{max-width:180px}.md\:max-w-\[30\%\]{max-width:30%}.md\:max-w-\[440px\]{max-width:440px}.md\:max-w-\[60\%\]{max-width:60%}.md\:max-w-\[70\%\]{max-width:70%}.md\:max-w-\[75\%\]{max-width:75%}.md\:max-w-\[780px\]{max-width:780px}.md\:max-w-\[90\%\]{max-width:90%}.md\:max-w-\[90px\]{max-width:90px}.md\:flex-1{flex:1 1 0%}.md\:flex-shrink-0{flex-shrink:0}.md\:grow-0{flex-grow:0}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-nowrap{flex-wrap:nowrap}.md\:items-start{align-items:flex-start}.md\:items-stretch{align-items:stretch}.md\:justify-between{justify-content:space-between}.md\:gap-2{gap:.5rem}.md\:gap-4{gap:1rem}.md\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.md\:gap-y-10{row-gap:2.5rem}.md\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.md\:divide-x-2>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(2px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(2px*var(--tw-divide-x-reverse))}.md\:divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.md\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(0px*var(--tw-divide-y-reverse));border-top-width:calc(0px*(1 - var(--tw-divide-y-reverse)))}.md\:overflow-auto{overflow:auto}.md\:rounded-lg{border-radius:.5rem}.md\:border-0{border-width:0}.md\:border-b-\[4px\]{border-bottom-width:4px}.md\:border-l-2{border-left-width:2px}.md\:border-l-4{border-left-width:4px}.md\:border-l-\[2px\]{border-left-width:2px}.md\:border-l-\[5px\]{border-left-width:5px}.md\:border-\[\#e2e2e2\]{--tw-border-opacity:1;border-color:rgb(226 226 226/var(--tw-border-opacity))}.md\:border-gray-100{--tw-border-opacity:1;border-color:rgb(237 240 242/var(--tw-border-opacity))}.md\:border-transparent{border-color:transparent}.md\:bg-\[url\(\/assets\/about-us\/about-us-02\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-02.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-03\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-03.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-05\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-05.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-06\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-06.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-07\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-07.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-08\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-08.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-09\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-09.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-10\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-10.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-11\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-11.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-12\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-12.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-13\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-13.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-14\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-14.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-15\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-15.jpg)}.md\:bg-\[url\(\/assets\/about-us\/about-us-16\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-16.jpg)}.md\:bg-\[url\(\/assets\/about-us\/group-photo-scaled\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/group-photo-scaled.jpg)}.md\:bg-\[url\(\/assets\/about-us\/haproxy-200-scaled\.jpg\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/haproxy-200-scaled.jpg)}.md\:bg-\[url\(\/assets\/haproxy-enteprise-carousel-slide4\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/haproxy-enteprise-carousel-slide4.png)}.md\:bg-custom-slide{background-image:url(https://cdn.haproxy.com/assets/testnew.png),linear-gradient(180deg,#fff,#e9f3fd)}.md\:bg-user-spolight-pattern{background-image:url(https://cdn.haproxy.com/assets/user-spotlight/haproxy-user-spotlight-series-slider-carousel.png),linear-gradient(86deg,#313792,#1d235d 75%)}.md\:bg-\[length\:50\%\]{background-size:50%}.md\:bg-center{background-position:50%}.md\:p-0{padding:0}.md\:p-10{padding:2.5rem}.md\:p-8{padding:2rem}.md\:px-0{padding-left:0;padding-right:0}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-32{padding-left:8rem;padding-right:8rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-7{padding-left:1.75rem;padding-right:1.75rem}.md\:px-9{padding-left:2.25rem;padding-right:2.25rem}.md\:px-\[10\%\]{padding-left:10%;padding-right:10%}.md\:px-\[100px\]{padding-left:100px;padding-right:100px}.md\:px-\[120px\]{padding-left:120px;padding-right:120px}.md\:py-0{padding-bottom:0;padding-top:0}.md\:py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.md\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\:py-11{padding-bottom:2.75rem;padding-top:2.75rem}.md\:py-12{padding-bottom:3rem;padding-top:3rem}.md\:py-20{padding-bottom:5rem;padding-top:5rem}.md\:py-4{padding-bottom:1rem;padding-top:1rem}.md\:py-6{padding-bottom:1.5rem;padding-top:1.5rem}.md\:py-8{padding-bottom:2rem;padding-top:2rem}.md\:pb-0{padding-bottom:0}.md\:pb-12{padding-bottom:3rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-3{padding-bottom:.75rem}.md\:pb-5{padding-bottom:1.25rem}.md\:pl-0{padding-left:0}.md\:pl-10{padding-left:2.5rem}.md\:pl-2{padding-left:.5rem}.md\:pl-20{padding-left:5rem}.md\:pl-3{padding-left:.75rem}.md\:pl-4{padding-left:1rem}.md\:pl-6{padding-left:1.5rem}.md\:pl-\[240px\]{padding-left:240px}.md\:pl-\[60px\]{padding-left:60px}.md\:pr-0{padding-right:0}.md\:pr-10{padding-right:2.5rem}.md\:pr-12{padding-right:3rem}.md\:pr-20{padding-right:5rem}.md\:pr-4{padding-right:1rem}.md\:pr-5{padding-right:1.25rem}.md\:pr-9{padding-right:2.25rem}.md\:pr-\[60px\]{padding-right:60px}.md\:pt-0{padding-top:0}.md\:pt-10{padding-top:2.5rem}.md\:pt-12{padding-top:3rem}.md\:pt-3{padding-top:.75rem}.md\:pt-\[100px\]{padding-top:100px}.md\:pt-\[16em\]{padding-top:16em}.md\:pt-\[200px\]{padding-top:200px}.md\:pt-\[225px\]{padding-top:225px}.md\:pt-\[22em\]{padding-top:22em}.md\:pt-\[250px\]{padding-top:250px}.md\:pt-\[270px\]{padding-top:270px}.md\:pt-\[4\.5rem\]{padding-top:4.5rem}.md\:pt-\[40px\]{padding-top:40px}.md\:\!text-left{text-align:left!important}.md\:text-left{text-align:left}.md\:text-center{text-align:center}.md\:text-right{text-align:right}.md\:text-end{text-align:end}.md\:text-2xl{font-size:1.5rem}.md\:text-3xl{font-size:1.875rem}.md\:text-4xl{font-size:2.25rem}.md\:text-5xl{font-size:3rem}.md\:text-\[2\.25rem\]{font-size:2.25rem}.md\:text-\[24px\]{font-size:24px}.md\:text-\[54px\]{font-size:54px}.md\:text-base{font-size:1rem}.md\:text-lg{font-size:1.125rem}.md\:text-xl{font-size:1.25rem}.md\:leading-\[34px\]{line-height:34px}.md\:leading-\[59px\]{line-height:59px}.md\:leading-none{line-height:1}.md\:drop-shadow-xl{--tw-drop-shadow:drop-shadow(0 20px 13px rgba(0,0,0,.03)) drop-shadow(0 8px 5px rgba(0,0,0,.08));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.md\:\[background-position-x\:10\%\]{background-position-x:10%}.md\:\[background-position-x\:20\%\]{background-position-x:20%}.md\:before\:absolute:before{content:var(--tw-content);position:absolute}.md\:before\:bottom-0:before{bottom:0;content:var(--tw-content)}.md\:before\:left-\[50\%\]:before{content:var(--tw-content);left:50%}.md\:before\:top-0:before{content:var(--tw-content);top:0}.md\:before\:z-\[-100\]:before{content:var(--tw-content);z-index:-100}.md\:before\:ml-\[-50px\]:before{content:var(--tw-content);margin-left:-50px}.md\:before\:block:before{content:var(--tw-content);display:block}.md\:before\:h-\[100\%\]:before{content:var(--tw-content);height:100%}.md\:before\:w-\[100px\]:before{content:var(--tw-content);width:100px}.md\:before\:bg-\[\#00B2FF\]:before{--tw-bg-opacity:1;background-color:rgb(0 178 255/var(--tw-bg-opacity));content:var(--tw-content)}}@media (min-width:1080px){.lg\:absolute{position:absolute}.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:bottom-\[18px\]{bottom:18px}.lg\:top-\[110px\]{top:110px}.lg\:top-\[115px\]{top:115px}.lg\:top-\[120px\]{top:120px}.lg\:top-\[51\%\]{top:51%}.lg\:top-\[60px\]{top:60px}.lg\:top-\[68px\]{top:68px}.lg\:z-20{z-index:20}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:float-left{float:left}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:my-\[30px\]{margin-bottom:30px;margin-top:30px}.lg\:-mt-10{margin-top:-2.5rem}.lg\:-mt-20{margin-top:-5rem}.lg\:-mt-24{margin-top:-6rem}.lg\:-mt-5{margin-top:-1.25rem}.lg\:-mt-\[170px\]{margin-top:-170px}.lg\:-mt-\[258px\]{margin-top:-258px}.lg\:-mt-\[265px\]{margin-top:-265px}.lg\:-mt-\[300px\]{margin-top:-300px}.lg\:-mt-\[380px\]{margin-top:-380px}.lg\:-mt-\[calc\(100vh-82px\)\]{margin-top:calc(-100vh - -82px)}.lg\:mb-0{margin-bottom:0}.lg\:mb-10{margin-bottom:2.5rem}.lg\:mb-12{margin-bottom:3rem}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-0{margin-left:0}.lg\:ml-auto{margin-left:auto}.lg\:mr-16{margin-right:4rem}.lg\:mr-\[380px\]{margin-right:380px}.lg\:mr-\[calc\(50vw\+300px\)\]{margin-right:calc(50vw + 300px)}.lg\:mt-0{margin-top:0}.lg\:mt-10{margin-top:2.5rem}.lg\:mt-\[calc\(2\.5rem\+50px\)\]{margin-top:calc(2.5rem + 50px)}.lg\:\!block{display:block!important}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-110px\)\]{height:calc(100vh - 110px)}.lg\:max-h-\[calc\(100vh-110px\)\]{max-height:calc(100vh - 110px)}.lg\:min-h-\[366px\]{min-height:366px}.lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-1\/4{width:25%}.lg\:w-2\/3{width:66.666667%}.lg\:w-2\/5{width:40%}.lg\:w-2\/6{width:33.333333%}.lg\:w-3\/12{width:25%}.lg\:w-3\/4{width:75%}.lg\:w-3\/5{width:60%}.lg\:w-4\/6{width:66.666667%}.lg\:w-5\/12{width:41.666667%}.lg\:w-7\/12{width:58.333333%}.lg\:w-9\/12{width:75%}.lg\:w-\[240px\]{width:240px}.lg\:w-\[380px\]{width:380px}.lg\:w-\[45\%\]{width:45%}.lg\:w-\[46\%\]{width:46%}.lg\:w-\[54\%\]{width:54%}.lg\:w-\[55\%\]{width:55%}.lg\:w-\[800px\]{width:800px}.lg\:w-\[calc\(50\%-40px\)\]{width:calc(50% - 40px)}.lg\:w-auto{width:auto}.lg\:w-full{width:100%}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-\[100\%\]{max-width:100%}.lg\:max-w-\[1180px\]{max-width:1180px}.lg\:max-w-\[1200px\]{max-width:1200px}.lg\:max-w-\[120px\]{max-width:120px}.lg\:max-w-\[1280px\]{max-width:1280px}.lg\:max-w-\[800px\]{max-width:800px}.lg\:max-w-\[81\%\]{max-width:81%}.lg\:max-w-\[910px\]{max-width:910px}.lg\:max-w-full{max-width:100%}.lg\:max-w-md{max-width:28rem}.lg\:flex-none{flex:none}.lg\:grow{flex-grow:1}.lg\:-translate-y-\[26\%\]{--tw-translate-y:-26%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-col{flex-direction:column}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-center{justify-content:center}.lg\:\!gap-6{gap:1.5rem!important}.lg\:self-end{align-self:flex-end}.lg\:overflow-y-auto{overflow-y:auto}.lg\:border{border-width:1px}.lg\:border-b{border-bottom-width:1px}.lg\:border-l-0{border-left-width:0}.lg\:border-t{border-top-width:1px}.lg\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.lg\:bg-\[url\(\/assets\/about-us\/about-us-header-08\.png\)\]{background-image:url(https://cdn.haproxy.com/assets/about-us/about-us-header-08.png)}.lg\:bg-cover{background-size:cover}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-1{padding-left:.25rem;padding-right:.25rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-48{padding-left:12rem;padding-right:12rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-\[60px\]{padding-left:60px;padding-right:60px}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:py-2{padding-bottom:.5rem;padding-top:.5rem}.lg\:py-\[75px\]{padding-bottom:75px;padding-top:75px}.lg\:pb-0{padding-bottom:0}.lg\:pb-12{padding-bottom:3rem}.lg\:pb-24{padding-bottom:6rem}.lg\:pb-4{padding-bottom:1rem}.lg\:pl-0{padding-left:0}.lg\:pl-20{padding-left:5rem}.lg\:pl-3{padding-left:.75rem}.lg\:pl-4{padding-left:1rem}.lg\:pl-5{padding-left:1.25rem}.lg\:pl-7{padding-left:1.75rem}.lg\:pl-8{padding-left:2rem}.lg\:pr-0{padding-right:0}.lg\:pr-12{padding-right:3rem}.lg\:pr-20{padding-right:5rem}.lg\:pt-0{padding-top:0}.lg\:pt-12{padding-top:3rem}.lg\:pt-20{padding-top:5rem}.lg\:pt-6{padding-top:1.5rem}.lg\:pt-\[200px\]{padding-top:200px}.lg\:pt-\[258px\]{padding-top:258px}.lg\:pt-\[265px\]{padding-top:265px}.lg\:pt-\[300px\]{padding-top:300px}.lg\:text-left{text-align:left}.lg\:text-center{text-align:center}.lg\:text-start{text-align:start}.lg\:text-2xl{font-size:1.5rem}.lg\:text-3xl{font-size:1.875rem}.lg\:text-4xl{font-size:2.25rem}.lg\:text-5xl{font-size:3rem}.lg\:text-\[22px\]{font-size:22px}.lg\:text-\[42px\]{font-size:42px}.lg\:text-\[50px\]{font-size:50px}.lg\:text-lg{font-size:1.125rem}.lg\:text-sm{font-size:.875rem}.lg\:text-xl{font-size:1.25rem}.lg\:text-xs{font-size:.75rem}.lg\:leading-\[60px\]{line-height:60px}.lg\:before\:block:before{content:var(--tw-content);display:block}.lg\:before\:w-\[70\%\]:before{content:var(--tw-content);width:70%}.lg\:last\:col-span-2:last-child{grid-column:span 2/span 2}.lg\:last\:mx-auto:last-child{margin-left:auto;margin-right:auto}.lg\:last\:w-1\/2:last-child{width:50%}}@media (min-width:1280px){.xl\:mx-0{margin-right:0}.xl\:ml-0,.xl\:mx-0{margin-left:0}.xl\:mr-auto{margin-right:auto}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:hidden{display:none}.xl\:h-\[32px\]{height:32px}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-\[14px\]{width:14px}.xl\:w-\[780px\]{width:780px}.xl\:min-w-\[780px\]{min-width:780px}.xl\:max-w-\[780px\]{max-width:780px}.xl\:bg-center{background-position:50%}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:text-2xl{font-size:1.5rem}.xl\:text-\[39px\]{font-size:39px}.xl\:text-lg{font-size:1.125rem}}@media (min-width:1536px){.\32xl\:inline{display:inline}.\32xl\:hidden{display:none}.\32xl\:max-w-\[720px\]{max-width:720px}}@media (prefers-color-scheme:dark){.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(47 78 109/var(--tw-bg-opacity))}.dark\:hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(87 112 138/var(--tw-bg-opacity))}.dark\:hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}} .glightbox-container{width:100%;height:100%;position:fixed;top:0;left:0;z-index:999999!important;overflow:hidden;-ms-touch-action:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0}.glightbox-container.inactive{display:none}.glightbox-container .gcontainer{position:relative;width:100%;height:100%;z-index:9999;overflow:hidden}.glightbox-container .gslider{-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;height:100%;left:0;top:0;width:100%;position:relative;overflow:hidden;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.glightbox-container .gslide{width:100%;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0}.glightbox-container .gslide.current{opacity:1;z-index:99999;position:relative}.glightbox-container .gslide.prev{opacity:1;z-index:9999}.glightbox-container .gslide-inner-content{width:100%}.glightbox-container .ginner-container{position:relative;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;margin:auto;height:100vh}.glightbox-container .ginner-container.gvideo-container{width:100%}.glightbox-container .ginner-container.desc-bottom,.glightbox-container .ginner-container.desc-top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.glightbox-container .ginner-container.desc-left,.glightbox-container .ginner-container.desc-right{max-width:100%!important}.gslide iframe,.gslide video{outline:0!important;border:none;min-height:165px;-webkit-overflow-scrolling:touch;-ms-touch-action:auto;touch-action:auto}.gslide:not(.current){pointer-events:none}.gslide-image{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gslide-image img{max-height:100vh;display:block;padding:0;float:none;outline:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100vw;width:auto;height:auto;-o-object-fit:cover;object-fit:cover;-ms-touch-action:none;touch-action:none;margin:auto;min-width:200px}.desc-bottom .gslide-image img,.desc-top .gslide-image img{width:auto}.desc-left .gslide-image img,.desc-right .gslide-image img{width:auto;max-width:100%}.gslide-image img.zoomable{position:relative}.gslide-image img.dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.gslide-video{position:relative;max-width:100vh;width:100%!important}.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster{display:none}.gslide-video .gvideo-wrapper{width:100%;margin:auto}.gslide-video::before{content:'';position:absolute;width:100%;height:100%;background:rgba(255,0,0,.34);display:none}.gslide-video.playing::before{display:none}.gslide-video.fullscreen{max-width:100%!important;min-width:100%;height:75vh}.gslide-video.fullscreen video{max-width:100%!important;width:100%!important}.gslide-inline{background:#fff;text-align:left;max-height:calc(100vh - 40px);overflow:auto;max-width:100%;margin:auto}.gslide-inline .ginlined-content{padding:20px;width:100%}.gslide-inline .dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.ginlined-content{overflow:auto;display:block!important;opacity:1}.gslide-external{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;min-width:100%;background:#fff;padding:0;overflow:auto;max-height:75vh;height:100%}.gslide-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto}.zoomed .gslide-media{-webkit-box-shadow:none!important;box-shadow:none!important}.desc-bottom .gslide-media,.desc-top .gslide-media{margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gslide-description{position:relative;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%}.gslide-description.description-left,.gslide-description.description-right{max-width:100%}.gslide-description.description-bottom,.gslide-description.description-top{margin:0 auto;width:100%}.gslide-description p{margin-bottom:12px}.gslide-description p:last-child{margin-bottom:0}.zoomed .gslide-description{display:none}.glightbox-button-hidden{display:none}.glightbox-mobile .glightbox-container .gslide-description{height:auto!important;width:100%;position:absolute;bottom:0;padding:19px 11px;max-width:100vw!important;-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important;max-height:78vh;overflow:auto!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.75)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.75) 100%);-webkit-transition:opacity .3s linear;transition:opacity .3s linear;padding-bottom:50px}.glightbox-mobile .glightbox-container .gslide-title{color:#fff;font-size:1em}.glightbox-mobile .glightbox-container .gslide-desc{color:#a1a1a1}.glightbox-mobile .glightbox-container .gslide-desc a{color:#fff;font-weight:700}.glightbox-mobile .glightbox-container .gslide-desc *{color:inherit}.glightbox-mobile .glightbox-container .gslide-desc .desc-more{color:#fff;opacity:.4}.gdesc-open .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:.4}.gdesc-open .gdesc-inner{padding-bottom:30px}.gdesc-closed .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:1}.greset{-webkit-transition:all .3s ease;transition:all .3s ease}.gabsolute{position:absolute}.grelative{position:relative}.glightbox-desc{display:none!important}.glightbox-open{overflow:hidden}.gloader{height:25px;width:25px;-webkit-animation:lightboxLoader .8s infinite linear;animation:lightboxLoader .8s infinite linear;border:2px solid #fff;border-right-color:transparent;border-radius:50%;position:absolute;display:block;z-index:9999;left:0;right:0;margin:0 auto;top:47%}.goverlay{width:100%;height:calc(100vh + 1px);position:fixed;top:-1px;left:0;background:#000;will-change:opacity}.glightbox-mobile .goverlay{background:#000}.gclose,.gnext,.gprev{z-index:99999;cursor:pointer;width:26px;height:44px;border:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gclose svg,.gnext svg,.gprev svg{display:block;width:25px;height:auto;margin:0;padding:0}.gclose.disabled,.gnext.disabled,.gprev.disabled{opacity:.1}.gclose .garrow,.gnext .garrow,.gprev .garrow{stroke:#fff}.gbtn.focused{outline:2px solid #0f3d81}iframe.wait-autoplay{opacity:0}.glightbox-closing .gclose,.glightbox-closing .gnext,.glightbox-closing .gprev{opacity:0!important}.glightbox-clean .gslide-description{background:#fff}.glightbox-clean .gdesc-inner{padding:22px 20px}.glightbox-clean .gslide-title{font-size:1em;font-weight:400;font-family:arial;color:#000;margin-bottom:19px;line-height:1.4em}.glightbox-clean .gslide-desc{font-size:.86em;margin-bottom:0;font-family:arial;line-height:1.4em}.glightbox-clean .gslide-video{background:#000}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.75);border-radius:4px}.glightbox-clean .gclose path,.glightbox-clean .gnext path,.glightbox-clean .gprev path{fill:#fff}.glightbox-clean .gprev{position:absolute;top:-100%;left:30px;width:40px;height:50px}.glightbox-clean .gnext{position:absolute;top:-100%;right:30px;width:40px;height:50px}.glightbox-clean .gclose{width:35px;height:35px;top:15px;right:10px;position:absolute}.glightbox-clean .gclose svg{width:18px;height:auto}.glightbox-clean .gclose:hover{opacity:1}.gfadeIn{-webkit-animation:gfadeIn .5s ease;animation:gfadeIn .5s ease}.gfadeOut{-webkit-animation:gfadeOut .5s ease;animation:gfadeOut .5s ease}.gslideOutLeft{-webkit-animation:gslideOutLeft .3s ease;animation:gslideOutLeft .3s ease}.gslideInLeft{-webkit-animation:gslideInLeft .3s ease;animation:gslideInLeft .3s ease}.gslideOutRight{-webkit-animation:gslideOutRight .3s ease;animation:gslideOutRight .3s ease}.gslideInRight{-webkit-animation:gslideInRight .3s ease;animation:gslideInRight .3s ease}.gzoomIn{-webkit-animation:gzoomIn .5s ease;animation:gzoomIn .5s ease}.gzoomOut{-webkit-animation:gzoomOut .5s ease;animation:gzoomOut .5s ease}@-webkit-keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes gfadeIn{from{opacity:0}to{opacity:1}}@keyframes gfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes gfadeOut{from{opacity:1}to{opacity:0}}@keyframes gfadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@-webkit-keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@-webkit-keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@-webkit-keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@media (min-width:769px){.glightbox-container .ginner-container{width:auto;height:auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.glightbox-container .ginner-container.desc-top .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-top .gslide-image,.glightbox-container .ginner-container.desc-top .gslide-image img{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.glightbox-container .ginner-container.desc-left .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-left .gslide-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.gslide-image img{max-height:97vh;max-width:100%}.gslide-image img.zoomable{cursor:-webkit-zoom-in;cursor:zoom-in}.zoomed .gslide-image img.zoomable{cursor:-webkit-grab;cursor:grab}.gslide-inline{max-height:95vh}.gslide-external{max-height:100vh}.gslide-description.description-left,.gslide-description.description-right{max-width:275px}.glightbox-open{height:auto}.goverlay{background:rgba(0,0,0,.92)}.glightbox-clean .gslide-media{-webkit-box-shadow:1px 2px 9px 0 rgba(0,0,0,.65);box-shadow:1px 2px 9px 0 rgba(0,0,0,.65)}.glightbox-clean .description-left .gdesc-inner,.glightbox-clean .description-right .gdesc-inner{position:absolute;height:100%;overflow-y:auto}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.32)}.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgba(0,0,0,.7)}.glightbox-clean .gprev{top:45%}.glightbox-clean .gnext{top:45%}}@media (min-width:992px){.glightbox-clean .gclose{opacity:.7;right:20px}}@media screen and (max-height:420px){.goverlay{background:#000}} /*! Flickity v2.3.0 https://flickity.metafizzy.co ---------------------------------------------- */ .flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1} </style> <!-- JavaScript --> <script src="https://cdn.haproxy.com/assets/js/flickity.min.js?id=f008f38402e0f28ae683ab8ef252a231" defer></script> </head> <body class="leading-relaxed" x-data="{ open: false, products: false, solutions: false, resources: false, support: false, company: false, contactus: false, gethaproxy: false, mobilenav: false, langDropdown: false, }" :class="{ 'overflow-hidden': mobilenav, 'overflow-y-auto': !mobilenav, }"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9N2N3S" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class=" bg-gray-50 border border-gray-400 rounded w-full md:w-[500px] fixed shadow-lg z-[10001] px-default p-5 gap-4 bottom-0 md:bottom-[20px] md:right-[20px] md:left-auto " x-show="getCookie('GDIR') != 'pass' && $store.cookieBanner.consent === null" style="display: none;" x-data="{ cookieConsentDate: $persist(null).as('cookieBannerConsentDate'), analyticsStorage: $persist(false).as('cookieBannerAnalyticsStorage'), adStorage: $persist(false).as('cookieBannerAdStorage'), adUserData: $persist(false).as('cookieBannerAdUserData'), adPersonalization: $persist(false).as('cookieBannerAdPersonalization'), usedId: $persist('').as('cookieUserId'), info: false }" x-init=" (!adStorage || !analyticsStorage) && $store.cookieBanner.checkDates(cookieConsentDate) ? ($store.cookieBanner.set(null), cookieConsentDate=null) : '' " > <div class="px-2 text-sm"> <h2 class="mt-0 mb-3 text-sm font-semibold text-blue-800">Privacy Settings</h2> <span>HAProxy's website uses cookies. By proceeding, you consent to our cookie usage. Please see our Privacy Policy and Cookie Policy for cookie usage details and instructions on how to disable cookies.</span> <div class="pt-3 space-x-2"> <a class="text-xs font-semibold text-gray-600" href="/legal/privacy-policy/">Privacy and Cookie Policy</a> <a class="text-xs font-semibold text-gray-600" href="#" @click.prevent="info = !info" > More information </a> </div> </div> <div x-show="info" x-transition:enter="transition ease-out duration-150" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease-in duration-0" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="px-2 mx-2 mt-4 border-t-2 border-gray-100" > <div class="flex flex-col mt-4 space-y-4"> <label class="flex items-center justify-between space-x-4"> <span class="flex flex-col flex-1"> <span class="text-xs font-bold">Functional</span> <span class="text-xs text-gray-600">Cookies that make the website usable.</span> </span> <input class="w-5 h-5 mr-3 rounded opacity-50 border-gray text-primary focus:outline-none focus-visible:ring focus-visible:ring-primary motion-safe:transition" type="checkbox" name="functional" checked disabled> </label> <label class="flex items-center justify-between space-x-4"> <span class="flex flex-col flex-1"> <span class="text-xs font-bold">Analytics</span> <span class="text-xs text-gray-600">Help website owners understand how visitors interact with websites.</span> </span> <input class="w-5 h-5 mr-3 rounded border-gray text-primary focus:outline-none focus-visible:ring focus-visible:ring-primary motion-safe:transition" type="checkbox" name="analytics_storage" x-model="analyticsStorage" checked > </label> <label class="flex items-center justify-between space-x-4"> <span class="flex flex-col flex-1"> <span class="text-xs font-bold">Ads</span> <span class="text-xs text-gray-600">Enables advertising related storage.</span> </span> <input class="w-5 h-5 mr-3 rounded border-gray text-primary focus:outline-none focus-visible:ring focus-visible:ring-primary motion-safe:transition" type="checkbox" name="ad_storage" x-model="adStorage"> </label> <label class="flex items-center justify-between space-x-4"> <span class="flex flex-col flex-1"> <span class="text-xs font-bold">User data</span> <span class="text-xs text-gray-600">Consent for sending user data to Google for advertising purposes.</span> </span> <input class="w-5 h-5 mr-3 rounded border-gray text-primary focus:outline-none focus-visible:ring focus-visible:ring-primary motion-safe:transition" type="checkbox" name="ad_user_data" x-model="adUserData"> </label> <label class="flex items-center justify-between space-x-4"> <span class="flex flex-col flex-1"> <span class="text-xs font-bold">Ad personalization</span> <span class="text-xs text-gray-600">Consent for personalized advertising.</span> </span> <input class="w-5 h-5 mr-3 rounded border-gray text-primary focus:outline-none focus-visible:ring focus-visible:ring-primary motion-safe:transition" type="checkbox" name="ad_personalization" x-model="adPersonalization"> </label> </div> <div class="mt-4" x-data="{ show: false }"> <div x-show="cookieConsentDate"> <div class="cursor-pointer" @click="show = !show"> <span class="pt-2 text-xs font-medium text-gray-600"> Show details </span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" class="text-gray-600 duration-300 w-[16px] h-[16px] inline-block group-hover:hidden -mt-[3px]" x-bind:class="show ? 'transform rotate-180' : ''"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </div> <div x-show="show && cookieConsentDate" x-transition.opacity x-transition:enter.duration.100ms x-transition:leave.duration.100ms> <div class="p-3 mt-1 space-y-2 text-sm border rounded-lg bg-gray-50"> <div> <span class="block text-xs"> <b> Consent date: </b> </span> <span class="block text-xs text-gray-600" x-text="cookieConsentDate"></span> </div> <div> <span class="block text-xs"> <b> User Unique Id: </b> </span> <span class="block text-xs text-gray-600" x-text="usedId"></span> </div> </div> </div> </div> </div> </div> <div class="flex flex-wrap items-center gap-3 mt-6"> <div class="w-full text-center md:flex-1"> <a class="p-0 m-0 text-sm text-gray-600 btn-transparent" href="#" @click.prevent=" $store.cookieBanner.set(true), gtag('consent', 'update', { 'analytics_storage': 'denied', 'functionality_storage': 'granted', 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied' }), analyticsStorage = false, adStorage = false, adUserData = false, adPersonalization = false, cookieConsentDate = new Date(), !usedId ? usedId = $store.cookieBanner.uniqueId() : '', info = false, $store.cookieBanner.send('Cookie Deny') " > Deny </a> </div> <a x-show="info" class="w-full px-4 py-2 my-0 text-sm text-center text-gray-600 bg-gray-100 border border-gray-100 btn-secondary md:flex-1" href="#" @click.prevent=" $store.cookieBanner.set(true), gtag('consent', 'update', { 'analytics_storage': analyticsStorage ? 'granted' : 'denied', 'functionality_storage': 'granted', 'ad_storage': adStorage ? 'granted' : 'denied', 'ad_user_data': adUserData ? 'granted' : 'denied', 'ad_personalization': adPersonalization ? 'granted' : 'denied' }), cookieConsentDate = new Date(), !usedId ? usedId = $store.cookieBanner.uniqueId() : '', info = false, $store.cookieBanner.send('Cookie Save') " > Save </a> <a class="w-full px-4 py-2 my-0 text-sm text-center btn-primary md:flex-1 " href="#" @click.prevent=" gtag('consent', 'update', { 'analytics_storage': 'granted', 'functionality_storage': 'granted', 'ad_storage': 'granted', 'ad_user_data': 'granted', 'ad_personalization': 'granted' }), analyticsStorage = true, adStorage = true, adUserData = true, adPersonalization = true, $store.cookieBanner.set(true), cookieConsentDate = new Date(), !usedId ? usedId = $store.cookieBanner.uniqueId() : '', info = false, $store.cookieBanner.send('Cookie Accept') " > Accept and close </a> </div> </div> <div class="newsbar hidden md:flex flex-row flex-wrap lg:justify-center items-center w-full md:fixed h-[35px] z-[2000]" > <div class="hidden leading-relaxed newsbar__text px-default lg:text-center md:block"> <a href="/blog/announcing-haproxy-3-1" target="_blank" class="!no-underline !text-white hover:no-underline"> <p><strong>Announcing HAProxy 3.1</strong> - <u>Read More</u></p> </a> </div> <div class="absolute right-0 w-full px-default md:w-auto"> <ul class="flex flex-row flex-wrap newsbar__localemenu"> <li class="newsbar__localemenu--item"> <a href="/blog">Blog</a> </li> <li class="newsbar__localemenu--item"> <a href="https://my.haproxy.com/portal/cust/login">Customer Login</a> </li> <li class="relative newsbar__localemenu--item group"> <span> English </span> </li> </ul> </div> </div> <header id="mainheader"> <div class="container-fluid mx-auto flex flex-row items-center min-h-[66px]"> <div class="max-w-[260px] py-auto pl-4"> <a href="/" class="block h-[49px] w-auto"> <svg class="h-[49px] w-auto" viewBox="0 0 377 89" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M126.07 63.93V48.17h-19.26v15.76H99.8V25.41h7.01v15.76h19.26V25.41h7v38.52h-7Z" fill="#5899D4"/><path d="M169.67 56.05h-19.8l-3.61 7.88h-7.72l17.28-38.52h7.85l17.26 38.52h-7.79l-3.47-7.88Zm-9.93-23.36-7.12 16.35h14.27l-7.15-16.35Z" fill="#3D6DA5"/><path d="M204.86 52.55h-11.38v11.38h-7V25.41l18.3-.07c18.76 0 18.8 27.17 0 27.17m-11.26-6.96h11.16c9.54 0 9.46-14.01 0-14.01h-11.2l.04 14.01Zm64.28 18.38h-7.22L239.1 50.8H232v13.13h-7V25.41l17.61.07c8.74.07 13.35 6.08 13.35 12.74 0 5.29-2.32 10.62-9.36 12.1l11.23 13.14-.03.47ZM232 31.54V43.8h11c4.59 0 6.56-3.05 6.56-6.13s-2.01-6.13-6.56-6.13h-11Zm68.3 12.92c-.11 9.92-6.22 19.87-19.69 19.87-13.47 0-19.77-9.7-19.77-19.8 0-10.1 6.47-20.23 19.77-20.23s19.8 10.13 19.69 20.16Zm-32.31.18c.18 6.33 3.56 13.05 12.61 13.05 9.05 0 12.47-6.79 12.58-13.12.11-6.33-3.52-13.73-12.58-13.73s-12.79 7.33-12.61 13.8Z" fill="#26405F"/><path d="M327.39 25.41h7.91v-.04l-12.97 18.66 13.85 19.19v.71h-8.57l-9.81-14.91-9.85 14.91h-8.54v-.71l13.79-19.19-12.91-18.66v.04h7.91l9.6 13.94 9.59-13.94Zm29.96 15.9 10.28-15.9h8.82v.32l-14.88 22.29v15.91h-7.88V48.02l-14.88-22.29v-.32h8.69l9.85 15.9Z" fill="#26405F"/><path d="m35.156 22.428.27-.238 9.234 10.456-.27.238-9.234-10.456Z" fill="#2A4A6C"/><path d="m15.45 24.71 7.26 10.49-.15.11-7.26-10.5.15-.1Zm28.94 7.95 9.2-10.5.27.24-9.2 10.5-.27-.24ZM55.478 44.32l10.892-9.203.232.275-10.892 9.204-.232-.275Z" fill="#2A4A6C"/><path d="m55.71 44.32 10.89 9.56-.24.27-10.89-9.56.24-.27ZM44.383 55.899l.267-.241 9.235 10.241-.268.241L44.383 55.9Z" fill="#2A4A6C"/><path d="m35.191 65.894 9.202-10.244.268.24-9.202 10.245-.268-.24ZM22.52 53.442l10.492-9.163.237.272-10.492 9.162-.237-.27Z" fill="#2A4A6C"/><path d="m22.519 35.397.237-.271 10.492 9.162-.237.272-10.492-9.163Z" fill="#2A4A6C"/><path d="m44.54 32.96-21.88 2.48-.04-.36L44.5 32.6l.04.36Z" fill="#2A4A6C"/><path d="m44.54 32.6 21.96 2.48-.04.36-21.96-2.48.04-.36Z" fill="#2A4A6C"/><path d="M55.41 44.47 53.54 22.3l.37-.03 1.86 22.17-.36.03Z" fill="#2A4A6C"/><path d="m55.77 44.47-1.83 21.56-.36-.03 1.83-21.56.36.03Z" fill="#2A4A6C"/><path d="m66.5 54.2-21.96 1.76-.03-.36 21.96-1.76.03.36Z" fill="#2A4A6C"/><path d="m22.621 53.77.036-.359 21.89 2.193-.035.358-21.89-2.192Z" fill="#2A4A6C"/><path d="m35.14 66.04-2.19-21.6.36-.04L35.5 66l-.36.04Z" fill="#2A4A6C"/><path d="m35.47 22.34-2.16 22.1-.36-.04 2.16-22.1.36.04ZM12.55 38.01l10.06-2.84.05.17-10.06 2.84-.05-.17Z" fill="#2A4A6C"/><path d="m24.698 14.92.104-.147 10.528 7.473-.105.147-10.527-7.473Z" fill="#2A4A6C"/><path d="m35.2 22.298 2.407-12.215.177.035-2.408 12.215-.176-.035Z" fill="#2A4A6C"/><path d="m37.64 10.165.108-.143 16.026 12.182-.109.143L37.64 10.165Z" fill="#2A4A6C"/><path d="m51.41 10.08 2.4 12.18-.18.04-2.4-12.18.18-.04Z" fill="#2A4A6C"/><path d="m64.31 14.92-10.53 7.44-.11-.15 10.53-7.44.11.15Z" fill="#2A4A6C"/><path d="m73.66 24.85-19.95-2.48.03-.18 19.94 2.48-.02.18Z" fill="#2A4A6C"/><path d="m66.41 35.2 7.18-10.49.16.1-7.19 10.5-.15-.11Z" fill="#2A4A6C"/><path d="m66.51 35.17 10.24 2.84-.05.17-10.24-2.84.05-.17Z" fill="#2A4A6C"/><path d="m66.56 35.21 9.99 15.31-.15.1-9.99-15.31.15-.1ZM51.37 10.17 35.34 22.39l-.11-.14 16.03-12.22.11.14Z" fill="#2A4A6C"/><path d="m66.39 35.27-2.23-20.42.19-.02 2.22 20.42-.18.02Zm.06 18.66 9.99-3.45.06.17-9.99 3.45-.06-.17Z" fill="#2A4A6C"/><path d="m66.4 53.961 10.24-15.92.152.097-10.24 15.92-.152-.097Z" fill="#2A4A6C"/><path d="m66.56 53.96 7.18 9.74-.14.11-7.19-9.74.15-.11Z" fill="#2A4A6C"/><path d="m64.196 73.653 2.191-19.658.179.02-2.191 19.658-.18-.02Z" fill="#2A4A6C"/><path d="m53.81 65.95 10.53 7.65-.1.15-10.53-7.66.1-.14Z" fill="#2A4A6C"/><path d="m53.75 65.93 19.91-2.27.02.19-19.91 2.26-.02-.18Z" fill="#2A4A6C"/><path d="m53.85 66.04-2.41 12.4-.18-.04L53.67 66l.18.04Z" fill="#2A4A6C"/><path d="m53.82 66.09-16.03 12.4-.11-.14 16.02-12.4.12.14Z" fill="#2A4A6C"/><path d="m35.41 66 2.41 12.4-.18.04-2.41-12.4.18-.04Z" fill="#2A4A6C"/><path d="m35.274 66.086.11-.143L51.41 78.338l-.11.143-16.026-12.395Z" fill="#2A4A6C"/><path d="m35.38 66.09-10.53 7.66-.11-.15 10.53-7.65.11.14Z" fill="#2A4A6C"/><path d="m35.31 66.11-19.94-2.19.02-.18 19.94 2.19-.02.18Z" fill="#2A4A6C"/><path d="m22.71 53.64-7.26 10.24-.15-.11 7.26-10.24.15.11Z" fill="#2A4A6C"/><path d="m22.541 53.592.18-.02 2.157 20.095-.179.02-2.158-20.095Z" fill="#2A4A6C"/><path d="m22.61 53.67-10.1-3.16.06-.17 10.09 3.16-.05.17Z" fill="#2A4A6C"/><path d="M22.71 35.31 12.62 50.47l-.16-.1 10.1-15.16.15.1Z" fill="#2A4A6C"/><path d="M22.56 53.63 12.5 38.15l.15-.1 10.06 15.49-.15.09Zm2.29-38.78-2.12 20.42-.18-.02 2.12-20.42.18.02Z" fill="#2A4A6C"/><path d="m15.364 24.67 19.91-2.444.022.178-19.91 2.445-.022-.178ZM17.006 11.197l.06-.126 7.73 3.703-.061.127-7.73-3.704Z" fill="#2A4A6C"/><path d="m24.114 6.364.14-.01.575 8.481-.14.01-.575-8.48Z" fill="#2A4A6C"/><path d="M37.68 10.17 24.16 6.43l.04-.13 13.51 3.73-.03.14Z" fill="#2A4A6C"/><path d="m31.892 2.955.11-.087 5.747 7.184-.11.087-5.747-7.184Z" fill="#2A4A6C"/><path d="m37.63 10.08 2.44-8.52.14.04-2.45 8.52-.13-.04ZM24.705 14.806l7.19-11.932.12.073-7.19 11.931-.12-.072Z" fill="#2A4A6C"/><path d="m40.1 1.633.084-.111 11.175 8.516-.085.111L40.1 1.633Z" fill="#2A4A6C"/><path d="m51.25 10.12-2.51-8.84.13-.04 2.51 8.84-.13.04Z" fill="#2A4A6C"/><path d="M37.658 10.045 48.76 1.207l.087.11-11.102 8.837-.087-.11ZM51.26 10.06l5.83-7.19.1.08-5.82 7.19-.11-.08Z" fill="#2A4A6C"/><path d="m57.082 2.943.12-.071 7.115 11.93-.12.071-7.115-11.93Z" fill="#2A4A6C"/><path d="m64.19 14.84.75-8.48.14.01-.76 8.48-.13-.01Z" fill="#2A4A6C"/><path d="m51.306 10.022 13.69-3.738.036.136-13.689 3.737-.037-.135ZM64.22 14.78l7.91-4.09.06.12-7.9 4.09-.07-.12Z" fill="#2A4A6C"/><path d="m64.26 14.78 13.8 2.08-.02.14-13.8-2.09.02-.13Z" fill="#2A4A6C"/><path d="M73.61 24.73 78 16.89l.11.07-4.38 7.84-.12-.07Z" fill="#2A4A6C"/><path d="m73.6 24.77-1.51-14.02.14-.01 1.51 14.02-.14.01Z" fill="#2A4A6C"/><path d="m73.654 24.704 9.059-.754.011.14-9.058.754-.012-.14Z" fill="#2A4A6C"/><path d="m73.7 24.7 12.44 7.05-.07.12-12.43-7.05.06-.12Z" fill="#2A4A6C"/><path d="m76.66 38.07 6-14.09.13.05-6 14.09-.13-.05Z" fill="#2A4A6C"/><path d="m76.688 38.037 9.377-6.287.078.116-9.377 6.287-.078-.116Z" fill="#2A4A6C"/><path d="m76.74 38.03 10.46 2.12-.03.13-10.46-2.12.03-.13Z" fill="#2A4A6C"/><path d="m76.43 50.52 10.71-10.35.09.1-10.71 10.35-.09-.1Z" fill="#2A4A6C"/><path d="m76.46 50.49 10.96-2.049.026.138-10.96 2.049-.025-.138Z" fill="#2A4A6C"/><path d="m76.674 38.145.097-.1 10.707 10.419-.097.1-10.707-10.42ZM76.444 50.62l.077-.117 9.377 6.251-.077.117-9.377-6.252Z" fill="#2A4A6C"/><path d="m73.64 63.7 12.18-6.94.07.12-12.19 6.93-.06-.11Z" fill="#2A4A6C"/><path d="m73.663 63.827.014-.14 8.985.899-.014.139-8.985-.898Z" fill="#2A4A6C"/><path d="m76.54 50.54 6.18 14.09-.13.05-6.18-14.09.13-.05ZM73.609 63.786l.123-.066 4.276 7.942-.123.066-4.276-7.941Z" fill="#2A4A6C"/><path d="m71.985 77.622 1.617-13.876.14.016-1.618 13.876-.14-.016Z" fill="#2A4A6C"/><path d="m64.26 73.745.064-.124 7.761 3.953-.063.124-7.762-3.953Z" fill="#2A4A6C"/><path d="m64.36 73.67.61 8.7-.14.01-.61-8.7.14-.01Z" fill="#2A4A6C"/><path d="m64.28 73.61 13.66-1.98.02.14-13.66 1.97-.02-.13Z" fill="#2A4A6C"/><path d="m57.078 85.749 7.154-12.116.12.071L57.2 85.82l-.12-.071Z" fill="#2A4A6C"/><path d="m51.41 78.38 5.78 7.36-.1.09-5.79-7.37.11-.08Z" fill="#2A4A6C"/><path d="m51.37 78.35 13.55 3.96-.04.13-13.55-3.96.04-.13Z" fill="#2A4A6C"/><path d="m51.42 78.44-2.55 9.02-.13-.04 2.55-9.02.13.04Z" fill="#2A4A6C"/><path d="m51.39 78.47-11.17 9.02-.09-.1 11.18-9.02.08.1Z" fill="#2A4A6C"/><path d="m37.8 78.4 2.44 9.02-.13.04-2.44-9.02.13-.04Z" fill="#2A4A6C"/><path d="m37.691 78.474.088-.109 11.07 9.022-.088.108-11.07-9.022Z" fill="#2A4A6C"/><path d="m31.925 85.746 5.753-7.37.11.086-5.752 7.37-.11-.086Z" fill="#2A4A6C"/><path d="m24.85 73.64 7.19 12.11-.12.07-7.18-12.11.11-.07Z" fill="#2A4A6C"/><path d="m37.75 78.48-13.62 4.17-.04-.13 13.62-4.17.04.13Z" fill="#2A4A6C"/><path d="m24.86 73.68-.68 8.91-.14-.01.69-8.91.13.01Z" fill="#2A4A6C"/><path d="m24.83 73.73-7.87 4.28-.07-.12 7.87-4.28.07.12Z" fill="#2A4A6C"/><path d="m15.45 63.82 1.54 14.12-.13.02-1.55-14.13.14-.01Z" fill="#2A4A6C"/><path d="m24.79 73.74-13.77-1.87.02-.13 13.76 1.87-.01.13Z" fill="#2A4A6C"/><path d="m10.973 71.777 4.35-7.982.123.067-4.35 7.982-.123-.067Z" fill="#2A4A6C"/><path d="m15.38 63.9-8.98.86-.01-.14 8.98-.86.01.14Z" fill="#2A4A6C"/><path d="M15.34 63.89 2.95 56.95l.06-.12 12.4 6.94-.07.12Z" fill="#2A4A6C"/><path d="m2.945 56.835 9.557-6.468.079.116-9.557 6.468-.079-.116Z" fill="#2A4A6C"/><path d="m12.53 50.49-10.86-1.9.03-.14 10.85 1.9-.02.14Z" fill="#2A4A6C"/><path d="M12.6 50.45 6.46 64.72l-.13-.06 6.15-14.26.12.05Zm.02-12.31L1.73 48.57l-.09-.1 10.89-10.42.09.09Z" fill="#2A4A6C"/><path d="M12.49 50.47 1.6 40.27l.1-.1 10.89 10.2-.1.1Zm.05-12.32-9.31-6.18.07-.11 9.31 6.18-.07.11Z" fill="#2A4A6C"/><path d="m1.637 40.15 10.926-2.12.027.137-10.926 2.12-.027-.138Z" fill="#2A4A6C"/><path d="M12.51 38.12 6.37 24.11l.12-.06 6.15 14.02-.13.05Z" fill="#2A4A6C"/><path d="m6.417 24.137.01-.14 8.944.682-.01.14-8.944-.682Z" fill="#2A4A6C"/><path d="m3.235 31.859 12.116-7.154.071.12L3.307 31.98l-.072-.12Z" fill="#2A4A6C"/><path d="m11.078 17.322.122-.07 4.239 7.472-.122.069-4.239-7.471Z" fill="#2A4A6C"/><path d="m15.31 24.75 1.65-13.62.14.02-1.65 13.62-.14-.02Z" fill="#2A4A6C"/><path d="m11.132 17.221 13.622-2.444.025.138-13.622 2.444-.025-.138Z" fill="#2A4A6C"/><path d="m39.4 37.59.07-10.43 10.43.07-.07 10.43-10.43-.07ZM28.02 49.85l.07-10.43 10.43.07-.07 10.43-10.43-.07ZM39.4 61.23l.07-10.43 10.43.07-.07 10.43-10.43-.07Zm11.38-11.38.07-10.43 10.43.07-.07 10.43-10.43-.07Z" fill="#3D6DA5"/><path d="m19.26 38.49.05-6.95 6.96.05-.05 6.96-6.96-.05v-.01Zm12.26-13.13.05-6.96 6.96.05-.05 6.96-6.96-.05Zm18.38 0 .05-6.96 6.95.05-.05 6.96-6.96-.05h.01Zm13.13 13.11.07-6.93 6.93.07-.07 6.93-6.93-.07Zm0 18.41.05-6.96 6.96.05-.05 6.96-6.96-.05ZM49.9 70.01l.05-6.96 6.96.05-.05 6.96-6.96-.05Zm-18.38 0 .05-6.96 6.96.05-.05 6.96-6.95-.05h-.01ZM19.26 56.86l.07-6.93 6.93.07-.07 6.93-6.93-.07Z" fill="#4D76B9"/><path d="m13.13 27.12.04-5.22 5.22.04-.04 5.22-5.22-.04Zm8.75-9.63.04-5.22 5.22.04-.04 5.22-5.22-.04Zm13.13-4.38.04-5.22 5.22.04-.04 5.22-5.22-.04Zm13.98-5.22 4.41-.03.03 4.41-4.41.03-.03-4.41Zm13.13 4.38 4.41-.03.03 4.41-4.41.03-.03-4.41Zm9.63 10.51 4.41-.03.03 4.41-4.41.03-.03-4.41Zm2.63 13.13 4.41-.03.03 4.41-4.41.03-.03-4.41Zm-.84 17.47.04-5.22 5.22.04-.04 5.22-5.22-.04Zm-2.63 13.13.04-5.22 5.22.04-.04 5.22-5.22-.04Zm-9.63 9.63.04-5.22 5.22.04-.04 5.22-5.22-.04Zm-12.26 5.25.04-5.22 5.22.04-.04 5.22-5.22-.04Zm-13.16-5.22 4.41-.03.03 4.41-4.41.03-.03-4.41Zm-13.13-4.38 4.41-.03.03 4.41-4.41.03-.03-4.41ZM13.1 61.28l4.41-.03.03 4.41-4.41.03-.03-4.41Zm-2.63-13.13 4.41-.03.03 4.41-4.41.03-.03-4.41Zm.03-7.04.03-5.22 4.35.04-.03 5.22-4.35-.04Z" fill="#5899D4"/><path d="m15.76 12.26.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-6.13 6.13.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-4.38 7 .02-2.61 2.61.02-.02 2.61-2.61-.02Zm-3.5 7.88.02-2.61 2.61.02-.02 2.61-2.61-.02ZM0 41.15l.02-2.61 2.61.02-.02 2.61L0 41.15Zm0 8.76.02-2.61 2.61.02-.02 2.61L0 49.91Zm1.75 7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm3.5 7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm4.38 7 .02-2.61 2.61.02-.02 2.61-2.61-.02Zm6.13 6.13.02-2.61 2.61.02-.02 2.61-2.61-.02Zm7 5.25.02-2.61 2.61.02-.02 2.61-2.61-.02Zm7.88 2.63.02-2.61 2.61.02-.02 2.61-2.61-.02Zm8.75 1.75.02-2.61 2.61.02-.02 2.61-2.61-.02Zm7.88-2.61h2.63v2.63h-2.63v-2.63Zm8.75.86.02-2.61 2.61.02-.02 2.61-2.61-.02Zm7.86-5.23 2.64-.02.02 2.64-2.65.02-.02-2.65.01.01Zm7.02-2.64.02-2.61 2.61.02-.02 2.61-2.61-.02Zm6.13-6.13.02-2.61 2.61.02-.02 2.61-2.61-.02Zm4.38-7 .02-2.61 2.61.02-.02 2.61-2.61-.02Zm3.5-7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm.88-7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm0-8.75.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-.88-7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-3.5-7.88.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-4.38-7 .02-2.61 2.61.02-.02 2.61-2.61-.02Zm-6.13-6.13.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-7-4.38.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-7.88-3.5.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-8.75-1.75.02-2.61h2.61l-.02 2.63-2.61-.02ZM39.38.02 42.02 0l.02 2.65-2.65.02-.02-2.64.01-.01Zm-8.74 4.36.02-2.61 2.61.02-.02 2.61-2.61-.02Zm-7.9.89 2.64-.02.02 2.65-2.64.02-.02-2.64v-.01Z" fill="#5EA8D9"/></svg> </a> </div> <div class="flex-row-reverse items-center hidden grow lg:flex"> <nav class="main-nav"> <ul class="flex flex-row list-none"> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': products }" @click="products = !products" > Products <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': products }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="products" @click.away="products = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="supermenu-bg section"> <div class="container flex flex-row border-[#3f6da4]"> <div class="hidden w-1/4 my-auto px-default"> </div> <div class="flex flex-row flex-wrap w-3/4 bg-white products-overview"> <div class="w-full col-span-2 px-default"> <h2 class="uppercase section-heading"> PRODUCTS OVERVIEW </h2> </div> <div class="w-1/2 supermenu-item products-overview__product-item"> <a class="relative font-bold hover:!text-blue-700 block px-default " href="/products/haproxy-enterprise" > <span class="block pb-1">HAProxy Enterprise</span> <p class="text-sm font-normal text-gray-700 font-base">An enterprise-class software load balancer with cutting edge features, suite of add-ons, and support.</p> </a> </div> <div class="w-1/2 supermenu-item products-overview__product-item"> <a class="relative font-bold hover:!text-blue-700 block px-default " href="/products/haproxy-edge" > <span class="block pb-1">HAProxy Edge</span> <p class="text-sm font-normal text-gray-700 font-base">A globally distributed application delivery network, or ADN, with turnkey services at massive scale.</p> </a> </div> <div class="w-1/2 supermenu-item products-overview__product-item"> <a class="relative font-bold hover:!text-blue-700 block px-default " href="/products/haproxy-aloha" > <span class="block pb-1">HAProxy ALOHA</span> <p class="text-sm font-normal text-gray-700 font-base">A plug-and-play hardware or virtual load balancer based on HAProxy Enterprise.</p> </a> </div> <div class="w-1/2 supermenu-item products-overview__product-item"> <a class="relative font-bold hover:!text-blue-700 block px-default " href="/products/haproxy-fusion-control-plane" > <span class="block pb-1">HAProxy Fusion Control Plane</span> <p class="text-sm font-normal text-gray-700 font-base">Manage all of your HAProxy Enterprise instances from a single, graphical interface or directly through its API.</p> </a> </div> <div class="w-1/2 supermenu-item products-overview__product-item"> <a class="relative font-bold hover:!text-blue-700 block px-default " href="/products/haproxy-enterprise-kubernetes-ingress-controller" > <span class="block pb-1">HAProxy Enterprise Kubernetes Ingress Controller</span> <p class="text-sm font-normal text-gray-700 font-base">Route traffic into a Kubernetes cluster leveraging powerful features of HAProxy Enterprise.</p> </a> </div> </div> <div class="w-1/4 mb-3 space-y-6 mt-7 px-default dark-menu"> <div class="text-sm"> <a class="text-[#3f6da4]" href="/success-stories" > <h2 class="section-heading uppercase !mb-1 mt-0"> SUCCESS STORIES </h2> </a> <a class="font-bold" href="/success-stories" > <img class="mb-2" src="/assets/success-stories-logo-banner.svg" alt="success-stories-logo-banner.svg"> </a> <a class="font-bold" href="/success-stories" > View All Success Stories </a> </div> <div class="text-sm"> <a class="font-bold" href="/g2-report" > <img class="mb-2" src="/assets/hapee-trial-g2-badges-customer-reviews-and-rating-fall.svg" alt="hapee-trial-g2-badges-customer-reviews-and-rating-fall.svg"> </a> <a class="font-bold" href="/g2-report" > Read About Our G2 Results </a> </div> </div> </div> </div> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> </div> </li> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': solutions }" @click="solutions = !solutions" > Solutions <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': solutions }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="solutions" @click.away="solutions = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="supermenu-bg section"> <div class="container flex flex-row border-[#3f6da4]"> <div class="w-1/4 pt-10 pb-10 my-auto px-default"> <img class="mx-auto" src="https://cdn.haproxy.com/img/containers/partner_integrations/haproxy-load-balancing.png/738326794ec27c9d12e658b99b75d49e/haproxy-load-balancing.webp" width="230" height="296" alt="haproxy-load-balancing" loading="lazy" > </div> <div class="flex flex-row flex-wrap content-start w-2/4 bg-white"> <div class="w-full px-default"> <h2 class="uppercase section-heading"> SOLUTIONS OVERVIEW </h2> </div> <div class="flex flex-row flex-wrap font-main supermenu-item"> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/load-balancing">Load Balancing</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/security">Security</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/high-availability">High Availability</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/web-application-firewall">Web Application Firewall</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/administration">Administration</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/api-gateway">API Gateway</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/application-acceleration">Application Acceleration</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/kubernetes">Kubernetes</a> <a class="block w-1/2 mb-6 font-bold px-default" href="/solutions/government-public-sector">Public Sector</a> </div> </div> <div class="w-1/4 px-default dark-menu"> <div> <h2 class="uppercase section-heading">FEATURED WEBINAR</h2> </div> <a href="/content-library/webinars/haproxy-3-1-feature-roundup"> <img class="mb-3 border shadow-sm" src="https://cdn.haproxy.com/img/containers/assets/live-webinar-announcing-haproxy-3_1-1732616811.png/a594cf63c4182be7dfea97b86e3dbcea/live-webinar-announcing-haproxy-3_1-1732616811.webp" width="226" height="114" alt="haproxy-3-1-feature-roundup" loading="lazy" > </a> <div class="mb-6"> <a class="font-bold" href="/content-library/webinars">View All Webinars</a> </div> </div> </div> </div> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> </div> </li> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': resources }" @click="resources = !resources" > Resources <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': resources }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="resources" @click.away="resources = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="supermenu-bg section"> <div class="container flex flex-row border-[#3f6da4]"> <div class="w-1/4 px-default"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> PRODUCT OVERVIEW </h2> <a class="mb-6 font-bold" href="/products/upgrade-haproxy-to-haproxy-enterprise">Compare Community With Enterprise</a> <a class="mb-6 font-bold" href="/migrate-from-f5">Migrate From F5</a> <a class="mb-6 font-bold" href="/migrate-from-avi-networks">Migrate From Avi Networks</a> <a class="mb-6 font-bold" href="/content-library/guides/quick-guide-how-to-migrate-from-netscaler-adc-to-haproxy">How to Migrate From NetScaler ADC</a> <a class="mb-6 font-bold" href="/certified-integrations">Certified Integrations</a> <a class="mb-6 font-bold" href="/content-library/datasheets">Datasheets</a> </div> </div> <div class="w-1/4 px-default"> <div class="pr-6 font-main supermenu-item"> <h2 class="uppercase section-heading"> LEARNING HUB </h2> <a class="mb-6 font-bold" href="/blog">Blog</a> <a class="mb-6 font-bold" href="/content-library/webinars">Webinars</a> <a class="mb-6 font-bold" href="/content-library/ebooks">eBooks</a> <a class="mb-6 font-bold" href="/content-library">Content Library</a> <a class="mb-6 font-bold" href="/knowledge-base">Knowledge Base</a> </div> </div> <div class="w-1/4 pb-10 bg-white px-default"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> Technical Resources </h2> <a class="mb-6 font-bold" href="/documentation/">Documentation</a> <a class="mb-6 font-bold" href="/glossary">Glossary</a> </div> </div> <div class="w-1/4 px-default"> <div class="font-main dark-menu"> <h2 class="uppercase section-heading"> Use Cases </h2> </div> <a href="/success-stories"> <img class="block mx-auto mb-4 border border-gray-100" src="https://cdn.haproxy.com/img/containers/assets/success_stories_ban-02.png/4b9d959ddfe47bd8fc73e72b4f46117d/success_stories_ban-02.webp" width="228" height="114" alt="success-stories" loading="lazy" > </a> <div> <a class="block mb-3 font-bold" href="/success-stories">Success Stories</a> <a class="block mb-3 font-bold" href="/user-spotlight-series">User Spotlight Series</a> </div> </div> </div> </div> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> </div> </li> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': support }" @click="support = !support" > Support <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': support }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="support" @click.away="support = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="supermenu-bg section"> <div class="container flex flex-row border-[#3f6da4]"> <div class="px-default w-1/4 ml-[25%]"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> Expert Support </h2> <a class="mb-6 font-bold" href="/support/support-options">Support Details</a> <a class="mb-6 font-bold" href="/support/professional-services">Professional Services</a> <a class="mb-6 font-bold" href="https://my.haproxy.com/portal/cust/login?_gl=1*wunzd2*_ga*NzM1Njg1ODk5LjE3MDE5NjUyODk.*_ga_MGHPDQ7WFP*MTcwNTQwMTc0OS41NS4xLjE3MDU0MDM3OTYuMC4wLjA.">Customer Support Portal</a> </div> </div> <div class="w-1/4 px-default dark-menu"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> Community </h2> <a class="mb-6 font-bold" href="https://www.mail-archive.com/haproxy@formilux.org/">Community Mailing List</a> <a class="mb-6 font-bold" href="https://slack.haproxy.org/?_gl=1*1lrwvpm*_ga*NzM1Njg1ODk5LjE3MDE5NjUyODk.*_ga_MGHPDQ7WFP*MTcwNTQwMTc0OS41NS4xLjE3MDU0MDQyNjEuMC4wLjA.*_ga_VKZPMRNGK5*MTcwNTQwMTc0OS4yMTguMS4xNzA1NDA0Mjc0LjAuMC4w">Slack</a> <a class="mb-6 font-bold" href="https://www.reddit.com/r/haproxy/">Reddit</a> </div> </div> <div class="w-1/4 px-default dark-menu"> <div class="font-main"> <h2 class="uppercase section-heading"> FEATURED WEBINAR </h2> </div> <a href="/content-library/webinars/haproxy-data-plane-api-101-powering-interactions-across-haproxy"> <img src="https://cdn.haproxy.com/img/containers/assets/on-demand-migrating-from-avi-broadcom-to-haproxy-sm-%281%29.png/18814e9ba4ca75f0c2801f33cc43ffe5/on-demand-migrating-from-avi-broadcom-to-haproxy-sm-%281%29.webp" width="226" height="114" alt="haproxy-data-plane-api-101-powering-interactions-across-haproxy" class="mb-3 border shadow-sm" loading="lazy"> </a> <div class="mb-6"> <a class="font-bold" href="/content-library/webinars">View All Webinars</a> </div> </div> </div> </div> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> </div> </li> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': company }" @click="company = !company" > Company <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': company }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="company" @click.away="company = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="supermenu-bg section"> <div class="container flex flex-row border-[#3f6da4]"> <div class="w-1/4 px-default"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> PARTNERS </h2> <a class="mb-6 font-bold" href="/partners/partner-program">Partner Program</a> <a class="mb-6 font-bold" href="/certified-integrations">Certified Integration Program</a> <a class="mb-6 font-bold" href="/contact-us">Find a Partner</a> </div> </div> <div class="w-1/4 bg-white px-default"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> Company </h2> <a class="mb-6 font-bold relative " href="/company/about-us">About Us</a> <a class="mb-6 font-bold relative " href="/company/news">News</a> <a class="mb-6 font-bold relative careers__now-hiring" href="/company/careers">Careers</a> </div> </div> <div class="w-1/4 px-default dark-menu"> <div class="font-main supermenu-item"> <h2 class="uppercase section-heading"> CONNECT WITH US </h2> <a class="mb-6 font-bold" href="/contact-us">Contact Us</a> <a class="mb-6 font-bold" href="https://slack.haproxy.org/?_gl=1*d5zhj1*_ga*NzM1Njg1ODk5LjE3MDE5NjUyODk.*_ga_VKZPMRNGK5*MTcwNTQwMTc0OS4yMTguMS4xNzA1NDA0ODc1LjAuMC4w*_ga_MGHPDQ7WFP*MTcwNTQwMTc0OS41NS4xLjE3MDU0MDQ4NzUuMC4wLjA.">Slack</a> <a class="mb-6 font-bold" href="https://twitter.com/haproxy/">Twitter</a> <a class="mb-6 font-bold" href="https://www.facebook.com/haproxy.technologies/">Facebook</a> <a class="mb-6 font-bold" href="https://www.linkedin.com/company/haproxy-technologies/">LinkedIn</a> <a class="mb-6 font-bold" href="https://www.reddit.com/r/haproxy/">Reddit</a> </div> </div> <div class="w-1/4 px-default dark-menu"> <div class="font-main"> <h2 class="uppercase section-heading"> EVENTS </h2> <a class="block mb-3 font-bold" href="/events/haproxyconf-2025-san-francisco">HAProxyConf 2025, San Francisco</a> <a href="/events/haproxyconf-2025-san-francisco"> <img class="mb-3 border shadow-sm" src="https://cdn.haproxy.com/img/containers/assets/haproxy-conf-2025-san-francisco.png/8351137a3d48011d9bc132931a968682/haproxy-conf-2025-san-francisco.webp" width="226" height="114" alt="haproxyconf-2025-san-francisco" loading="lazy" > </a> </div> <div class="mb-6"> <a class="font-bold" href="/events">View All Events</a> </div> </div> </div> </div> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> </div> </li> <li class="main-nav__item"> <a class="main-nav__item--link" href="/contact-us"> Contact Us </a> </li> <li class="main-nav__item"> <span class="main-nav__item--link whitespace-nowrap" :class="{ 'active': gethaproxy }" @click="gethaproxy = !gethaproxy" > Get HAProxy <svg class="w-[8px] h-[14px] xl:w-[14px] xl:h-[32px] inline-block duration-75 -mt-[3px]" :class="{'rotate-180': gethaproxy }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.0" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> <div x-show="gethaproxy" @click.away="gethaproxy = false" style="display:none;" class="shadow-lg z-[500] border-t border-b-4 bg-white absolute left-0 right-0 top-[66px]" > <div class="main-nav__item--gethaproxy grid grid-cols-2 shadow-lg border-r border-b border-t w-[750px] z-[500] bg-white absolute md:fixed md:top-[102px] md:right-[62px]" x-show="gethaproxy" @click.away="gethaproxy = false" style="display: none" > <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/hapee-trial" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy Enterprise </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Enterprise-class features, services, and premium support. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/fusion-demo" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy Fusion </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Manage all of your HAProxy Enterprise instances from a single, graphical interface or directly through its API. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/aloha-virtual-trial" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy ALOHA <small>Virtual Load Balancer</small> </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Powerful plug-and-play appliance. Perfect for every environment. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/edge-trial" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy Edge </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> A globally distributed application delivery network, or ADN, with turnkey services at massive scale. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/aloha-hardware-quote" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy ALOHA <small>Hardware Load Balancer</small> </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Flexible and simple to use. Deploy new applications in minutes. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 border-b !border-b-gray-100" href="/kubernetes-trial" target="_blank" > <span class="block font-bold text-blue-600" > HAProxy Enterprise Kubernetes Ingress Controller </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Route traffic into a Kubernetes cluster leveraging powerful features of HAProxy Enterprise. </p> </a> <a class="block mb-0 px-5 hover:bg-gray-50 border-l-[4px] border-gray-100 py-4 pr-8 hover:border-blue-600 col-span-full text-sm" href="https://www.haproxy.org" target="_blank" > <span class="block font-bold leading-none text-gray-600 hover:text-gray-700" > HAProxy Community </span> <p class="block pt-1 mb-0 text-sm text-defaultcolor"> Open-source community version of HAProxy. </p> </a> </div> </div> </li> </ul> <div class="w-4 h-4 mx-4"> <a class="w-full h-full text-defaultcolor" href="/search"> <svg class="w-full h-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"> <circle cx="9.813" cy="9.812" r="9.063" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="rotate(-23.025 9.813 9.812)" /> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m16.221 16.22 7.029 7.03" /> </svg> </a> </div> </nav> </div> <div class="flex flex-row-reverse items-center lg:hidden grow"> <nav class="flex flex-row items-center h-full"> <ul class="flex flex-row list-none"> <li class="relative group"> <span class="pt-[18px] font-medium lg:text-sm xl:text-lg font-main px-4 py-auto block cursor-pointer min-h-[66px] !leading-[66px] border-l hover:bg-slate-200"> <a class="block w-[32px] h-[32px] p-1 text-primary-gray-dark" href="/search" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" /> </svg> </a> </span> </li> <li class="relative group" @click="mobilenav = !mobilenav"> <span class="pt-[18px] font-medium lg:text-sm xl:text-lg font-main px-4 py-auto block cursor-pointer min-h-[66px] !leading-[66px] border-l hover:bg-slate-200" :class="{ '!bg-slate-100': mobilenav }"> <span class="block w-[32px] h-[32px]"> <svg width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="block ml-[3px] mt-[3px]" :class="{ 'hidden': mobilenav }"> <path d="M4 18L20 18" stroke="#000000" stroke-width="2" stroke-linecap="round" /> <path d="M4 12L20 12" stroke="#000000" stroke-width="2" stroke-linecap="round" /> <path d="M4 6L20 6" stroke="#000000" stroke-width="2" stroke-linecap="round" /> </svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px" class="hidden ml-[3px] mt-[3px]" :class="{ '!block': mobilenav }"> <path d="M 4.7070312 3.2929688 L 3.2929688 4.7070312 L 10.585938 12 L 3.2929688 19.292969 L 4.7070312 20.707031 L 12 13.414062 L 19.292969 20.707031 L 20.707031 19.292969 L 13.414062 12 L 20.707031 4.7070312 L 19.292969 3.2929688 L 12 10.585938 L 4.7070312 3.2929688 z" /> </svg> </span> </span> </li> <li> <div id="mobilenav" x-show="mobilenav" style="display:none;" @click.away="mobilenav = false" class=" overflow-y-auto shadow-lg border-l border-b z-[500] bg-white fixed top-[66px] md:top-[102px] left-[0px] bottom-[0px] right-[0px] border-t "> <div class="menu-promo-bar py-3 bg-blue-300 text-white"> <div class="container px-default nop text-center font-main md:text-lg font-bold"> <p><a target="_blank" href="https://www.haproxyconf.com" title="HAProxyConf 2025 | San Francisco">HAProxyConf 2025 is coming to San Francisco | Learn more</a></p> </div> </div> <ul class="pb-3 list-none"> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="products = !products, $nextTick(() => $refs.products.scrollIntoView())" x-ref="products" > Products <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': products }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="products" @click.away="products = false" > <div> <h2 class="my-4 text-sm px-default font-main">PRODUCTS OVERVIEW</h2> <div class="flex flex-wrap items-start"> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/haproxy-enterprise" > <span class="block pb-1">HAProxy Enterprise</span> <p class="text-sm font-normal text-gray-700 font-base">An enterprise-class software load balancer with cutting edge features, suite of add-ons, and support.</p> </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/haproxy-edge" > <span class="block pb-1">HAProxy Edge</span> <p class="text-sm font-normal text-gray-700 font-base">A globally distributed application delivery network, or ADN, with turnkey services at massive scale.</p> </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/haproxy-aloha" > <span class="block pb-1">HAProxy ALOHA</span> <p class="text-sm font-normal text-gray-700 font-base">A plug-and-play hardware or virtual load balancer based on HAProxy Enterprise.</p> </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/haproxy-fusion-control-plane" > <span class="block pb-1">HAProxy Fusion Control Plane</span> <p class="text-sm font-normal text-gray-700 font-base">Manage all of your HAProxy Enterprise instances from a single, graphical interface or directly through its API.</p> </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/haproxy-enterprise-kubernetes-ingress-controller" > <span class="block pb-1">HAProxy Enterprise Kubernetes Ingress Controller</span> <p class="text-sm font-normal text-gray-700 font-base">Route traffic into a Kubernetes cluster leveraging powerful features of HAProxy Enterprise.</p> </a> </div> </div> </div> </li> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="solutions = !solutions, $nextTick(() => $refs.solutions.scrollIntoView())" x-ref="solutions" > Solutions <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': solutions }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="solutions" @click.away="solutions = false" > <div> <h2 class="my-4 mb-4 text-sm px-default font-main">SOLUTIONS OVERVIEW</h2> <div class="flex flex-wrap items-start"> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/load-balancing" > Load Balancing </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/security" > Security </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/high-availability" > High Availability </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/web-application-firewall" > Web Application Firewall </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/administration" > Administration </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/api-gateway" > API Gateway </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/application-acceleration" > Application Acceleration </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/kubernetes" > Kubernetes </a> </div> <div class="w-full sm:w-1/2 supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/solutions/government-public-sector" > Public Sector </a> </div> </div> </div> </li> <li class="hover:bg-slate-200"> <a class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" href="/blog" > Blog </a> </li> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="resources = !resources, $nextTick(() => $refs.resources.scrollIntoView())" x-ref="resources" > Resources <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': resources }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="resources" @click.away="resources = false" > <div class="flex flex-wrap"> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">Technical Resources</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/documentation/"> Documentation </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/glossary"> Glossary </a> </div> </div> </div> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">PRODUCT OVERVIEW</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/products/upgrade-haproxy-to-haproxy-enterprise"> Compare Community With Enterprise </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/migrate-from-f5"> Migrate From F5 </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/migrate-from-avi-networks"> Migrate From Avi Networks </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/content-library/guides/quick-guide-how-to-migrate-from-netscaler-adc-to-haproxy"> How to Migrate From NetScaler ADC </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/certified-integrations"> Certified Integrations </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/content-library/datasheets"> Datasheets </a> </div> </div> </div> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">LEARNING HUB</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/blog"> Blog </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/content-library/webinars"> Webinars </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/content-library/ebooks"> eBooks </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/content-library"> Content Library </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/knowledge-base"> Knowledge Base </a> </div> </div> </div> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">Use Cases</h2> <a class="block px-default" href="/success-stories" > <img class="mb-2 border border-gray-100" src="https://cdn.haproxy.com/img/containers/assets/success_stories_ban-02.png/4b9d959ddfe47bd8fc73e72b4f46117d/success_stories_ban-02.webp" width="228" height="114" alt="success-stories" loading="lazy" > </a> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/success-stories"> Success Stories </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/user-spotlight-series"> User Spotlight Series </a> </div> </div> </div> </div> </li> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="support = !support, $nextTick(() => $refs.support.scrollIntoView())" x-ref="support" > Support <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': support }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="support" @click.away="support = false" > <div> <h2 class="my-4 mb-4 text-sm px-default font-main">Expert Support</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/support/support-options" > Support Details </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/support/professional-services" > Professional Services </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="https://my.haproxy.com/portal/cust/login?_gl=1*wunzd2*_ga*NzM1Njg1ODk5LjE3MDE5NjUyODk.*_ga_MGHPDQ7WFP*MTcwNTQwMTc0OS41NS4xLjE3MDU0MDM3OTYuMC4wLjA." > Customer Support Portal </a> </div> </div> </div> </li> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="company = !company, $nextTick(() => $refs.company.scrollIntoView())" x-ref="company" > Company <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': company }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="company" @click.away="company = false" > <div class="flex flex-wrap"> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">PARTNERS</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/partners/partner-program"> Partner Program </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/certified-integrations"> Certified Integration Program </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/contact-us"> Find a Partner </a> </div> </div> </div> <div class="w-full sm:w-1/2"> <h2 class="my-4 mb-4 text-sm px-default font-main">Company</h2> <div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/company/about-us"> About Us </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/company/news"> News </a> </div> <div class="supermenu-item px-default"> <a class="relative font-bold hover:!text-blue-700 block" href="/company/careers"> Careers </a> </div> </div> </div> </div> </li> <li class="hover:bg-slate-200"> <a class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" href="/contact-us" > Contact Us </a> </li> <li class="hover:bg-slate-200"> <span class="p-4 items-center justify-between font-main uppercase !text-sm font-normal text-defaultcolor border-b flex" @click="gethaproxy = !gethaproxy, $nextTick(() => $refs.gethaproxy.scrollIntoView())" x-ref="gethaproxy" > Get HAProxy <svg class="w-[20px] h-auto inline-block duration-75" :class="{'rotate-180': gethaproxy }" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" > <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"></path> </svg> </span> </li> <li class="py-2" x-show="gethaproxy" @click.away="gethaproxy = false" > <div class="pt-4"> <div class="flex flex-wrap items-start"> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/hapee-trial" > <span class="block pb-1 ">HAProxy Enterprise</span> <p class="font-normal text-gray-700 font-base text-sm">Enterprise-class features, services, and premium support.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/fusion-demo" > <span class="block pb-1 ">HAProxy Fusion</span> <p class="font-normal text-gray-700 font-base text-sm">Manage all of your HAProxy Enterprise instances from a single, graphical interface or directly through its API.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/aloha-virtual-trial" > <span class="block pb-1 ">HAProxy ALOHA <small>Virtual Load Balancer</small></span> <p class="font-normal text-gray-700 font-base text-sm">Powerful plug-and-play appliance. Perfect for every environment.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/edge-trial" > <span class="block pb-1 ">HAProxy Edge</span> <p class="font-normal text-gray-700 font-base text-sm">A globally distributed application delivery network, or ADN, with turnkey services at massive scale.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/aloha-hardware-quote" > <span class="block pb-1 ">HAProxy ALOHA <small>Hardware Load Balancer</small></span> <p class="font-normal text-gray-700 font-base text-sm">Flexible and simple to use. Deploy new applications in minutes.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="/kubernetes-trial" > <span class="block pb-1 ">HAProxy Enterprise Kubernetes Ingress Controller</span> <p class="font-normal text-gray-700 font-base text-sm">Route traffic into a Kubernetes cluster leveraging powerful features of HAProxy Enterprise.</p> </a> </div> <div class="supermenu-item px-default w-full sm:w-1/2"> <a class="relative font-bold hover:!text-blue-700 block" href="https://www.haproxy.org" > <span class="block pb-1 leading-none text-gray-600 hover:text-gray-700 text-sm">HAProxy Community</span> <p class="font-normal text-gray-700 font-base text-xs">Open-source community version of HAProxy.</p> </a> </div> </div> </div> </li> <li class="hover:bg-slate-200" :class="{ 'bg-slate-200': langDropdown, }"> <a class="p-4 block font-main itemtitle !text-[14px] font-normal text-defaultcolor border-b " href="#" @click.prevent="langDropdown = false" > English </a> </li> </ul> </div> </li> </ul> </nav> </div> </div> </header> <div id="maincontent" class="pt-[67px] md:pt-[100px] relative" x-data="{ blogNewsletter: false, }"> <div class="bg-gradient-to-r from-blue-300 to-blue-900 h-[5px] fixed top-[67px] md:top-[102px] left-0 right-0 z-[1000] w-0" x-data="{ progress: 0 }" x-on:scroll.window="progress = window.scrollY / (document.body.scrollHeight - window.innerHeight) * 100" :style="`width: ${ progress }%;` "></div> <div x-data="{ showSidebars: true }"> <article class="relative max-w-screen-xl pt-12 mx-auto px-default"> <header class="xl:mr-auto xl:ml-0 mx-auto xl:max-w-[780px] mb-6 pt-0"> <div class="py-3 md:py-6 font-main mx-auto hidden"> <nav class="flex "> <ol role="list" class="flex flex-wrap items-center gap-1 md:gap-2" itemscope itemtype="https://schema.org/BreadcrumbList" > <li itemprop="name" class="hidden">Blog</li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" > <span class="flex items-center"> <a itemprop="item" href="/" class="text-xs font-medium hover: " > <span> <svg class="w-3 h-3 md:h-4 md:w-4" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 19v-8.5a1 1 0 0 0-.4-.8l-7-5.25a1 1 0 0 0-1.2 0l-7 5.25a1 1 0 0 0-.4.8V19a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z"/></svg> <span class="hidden" itemprop="name">HAProxy Technologies</span> </span> </a> <meta itemprop="position" content="1" /> </span> </li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" > <span class="flex items-center"> <svg class="flex-shrink-0 w-3 h-3 md:h-4 md:w-4 " viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> <a itemprop="item" href="/blog" class="text-xs font-medium hover: " > <span> <span itemprop="name">Blog</span> </span> </a> <meta itemprop="position" content="2" /> </span> </li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" style="display: none;" > <span class="flex items-center"> <svg class="flex-shrink-0 w-3 h-3 md:h-4 md:w-4 " viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> <a itemprop="item" href="/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address" class="text-xs font-medium hover: font-semibold" > <span> <span itemprop="name">Use the Proxy Protocol to Preserve a Client’s IP Address</span> </span> </a> <meta itemprop="position" content="3" /> </span> </li> </ol> </nav> </div> <div class="flex lg:justify-center max-w-2xl mx-auto flex-wrap gap-1.5 mb-2"> <a href="/blog/category/guide" class=""> <span class="inline-flex items-center rounded bg-gray-100 px-2 py-0.5 text-sm font-medium "> Guide </span> </a> <a href="/blog/category/tech" class=""> <span class="inline-flex items-center rounded bg-gray-100 px-2 py-0.5 text-sm font-medium "> Tech </span> </a> </div> <h1 class="mb-0 md:mb-5 text-2xl sm:text-3xl md:text-4xl lg:text-5xl lg:text-center max-w-2xl lg:max-w-3xl mx-auto !leading-tight mt-0" id="use-the-proxy-protocol-to-preserve-a-clients-ip-address"> Use the Proxy Protocol to Preserve a Client’s IP Address </h1> <div class="flex flex-col justify-center max-w-2xl mx-auto mb-3 lg:items-center"> <div class="flex flex-wrap items-center gap-4 mt-3 "> <div class="flex items-center gap-2"> <svg class="w-4 h-4 md:w-5 md:h-5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 8A4.75 4.75 0 0 1 6 3.25h12A4.75 4.75 0 0 1 22.75 8v10A4.75 4.75 0 0 1 18 22.75H6A4.75 4.75 0 0 1 1.25 18V8ZM6 4.75A3.25 3.25 0 0 0 2.75 8v10A3.25 3.25 0 0 0 6 21.25h12A3.25 3.25 0 0 0 21.25 18V8A3.25 3.25 0 0 0 18 4.75H6Z" fill="#000" /> <rect x="7" y="9.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="11" y="9.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="15" y="9.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="7" y="12.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="7" y="15.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="11" y="12.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="11" y="15.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="15" y="12.5" width="2" height="2" rx=".5" fill="#64748b" /> <rect x="15" y="15.5" width="2" height="2" rx=".5" fill="#64748b" /> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 1.25a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V2A.75.75 0 0 1 8 1.25ZM16 1.25a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V2a.75.75 0 0 1 .75-.75Z" fill="#64748b" /> </svg> <time class="text-sm md:text-base" datetime="2022-05-23"> May 23rd, 2022 </time> </div> <div class="flex items-center gap-2"> <svg class="w-4 h-4 md:w-5 md:h-5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <g id="style=doutone"> <g id="timer"> <path id="vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M12 5C7.44621 5 3.75 8.69621 3.75 13.25C3.75 17.8038 7.44621 21.5 12 21.5C16.5538 21.5 20.25 17.8038 20.25 13.25C20.25 8.69621 16.5538 5 12 5ZM2.25 13.25C2.25 7.86779 6.61779 3.5 12 3.5C17.3822 3.5 21.75 7.86779 21.75 13.25C21.75 18.6322 17.3822 23 12 23C6.61779 23 2.25 18.6322 2.25 13.25Z" fill="#000000" /> <path id="line (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M8.25 1.75C8.25 2.16421 8.58579 2.5 9 2.5L15 2.5C15.4142 2.5 15.75 2.16421 15.75 1.75C15.75 1.33579 15.4142 0.999999 15 0.999999L9 1C8.58579 1 8.25 1.33579 8.25 1.75Z" fill="#64748b" /> <path id="Vector (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M12 7.5C12.4142 7.5 12.75 7.83579 12.75 8.25V13.25C12.75 13.6642 12.4142 14 12 14C11.5858 14 11.25 13.6642 11.25 13.25V8.25C11.25 7.83579 11.5858 7.5 12 7.5Z" fill="#64748b" /> </g> </g> </svg> <div class="text-sm md:text-base"> 2 min read </div> </div> </div> </div> <div class="hidden md:flex flex-col justify-center max-w-2xl mx-auto mb-4 lg:items-center text-sm md:text-base "> <div class="flex flex-row flex-wrap gap-6"> <div class="flex"> <div class="flex items-center"> <div class="inline-flex items-center justify-center flex-shrink-0 mr-3 overflow-hidden bg-gray-500 rounded-full h-9 w-9"> <span class="text-sm font-medium leading-none text-white"> HT </span> </div> <div> <p class="m-0 text-lg font-semibold"> <a class="no-underline " href="/blog/author/htechnologies"> HAProxy Technologies </a> </p> </div> </div> </div> </div> </div> </header> <div class="flex justify-start"> <main x-data class="post-content anchorise shrink xl:w-[780px] xl:min-w-[780px] xl:pl-default xl:mx-0 mx-auto overflow-x-hidden"> <div class="min-h-[148px] lg:min-h-[366px] mb-6 border-4 border-gray-100"> <picture> <source media="(min-width: 768px)" srcset="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/cda64a5b78658c1efe65c3f084389dad/proxy-protocol-1000x500.webp" type="image/webp" width="1200" height="600"> <source media="(min-width: 480px) and (max-width: 768px)" srcset="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/bb0d4fdb0f26b2877f0efa6fbe3e9cca/proxy-protocol-1000x500.webp" type="image/webp" width="732" height="360"> <source media="(max-width: 480px)" srcset="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/6bed94166d6ec9a9aced49073ecfb44a/proxy-protocol-1000x500.webp" type="image/webp" width="488" height="247"> <img src="https://cdn.haproxy.com/img/containers/partner_integrations/proxy-protocol-1000x500.png/6bed94166d6ec9a9aced49073ecfb44a/proxy-protocol-1000x500.webp" alt="Use the Proxy Protocol to Preserve a Client’s IP Address" width="488" height="247"> </picture> </div> <div class="mx-auto prose prose-md"> <p>In this blog post, you’ll learn how the Proxy Protocol preserves a client’s IP address when that client’s connection passes through a proxy. You will also find resources for how to integrate the protocol into your own proxy or web server software.</p><p>What is the <a target="_blank" href="https://github.com/haproxy/haproxy/blob/master/doc/proxy-protocol.txt">Proxy Protocol</a>? It is a network protocol for preserving a client’s IP address when the client’s TCP connection passes through a proxy. Without such a mechanism, proxies lose this information because they act as a surrogate for the client, relaying messages to the server but replacing the client’s IP address with their own. This distorts the logs of upstream servers because the logs incorrectly indicate that all traffic originated at the proxy.</p><p>Some higher-level protocols, such as HTTP, have a solution for this. With HTTP, a proxy can add a <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded">Forwarded</a> HTTP header, or the non-standard <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For">X-Forwarded-For</a> header, to store the client’s original IP address so that the server can retrieve it, but other protocols lack a similar fix. The Proxy Protocol, which operates beneath the TCP layer, fills this gap, expanding coverage to any upper layer protocol—SMTP, IMAP, FTP, the Minecraft protocol, proprietary database protocols, etc.—that transmits messages over TCP/IP. The caveat is that both the proxy and the server on the receiving end must support it.</p><p>The Proxy Protocol works by adding a header that contains the client’s IP address at the beginning of a TCP connection.</p><h2 id="proxy-protocol-support">Proxy Protocol Support</h2><p>The following software, services, and devices are known to support the Proxy Protocol:</p><ul><li><p><a target="_blank" href="https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html">Apache HTTP Server</a></p></li><li><p><a target="_blank" href="https://docs.trafficserver.apache.org/en/latest/admin-guide/configuration/proxy-protocol.en.html">Apache Traffic Server</a></p></li><li><p><a target="_blank" href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol">AWS Network Load Balancer</a></p></li><li><p><a target="_blank" href="https://github.com/mastercactapus/caddy2-proxyprotocol">Caddy</a></p></li><li><p><a target="_blank" href="https://docs.citrix.com/en-us/citrix-adc/current-release/system/proxy-protocol.html">Citrix ADC</a></p></li><li><p><a target="_blank" href="https://www.digitalocean.com/blog/load-balancers-now-support-proxy-protocol">DigitalOcean Load Balancer</a></p></li><li><p><a target="_blank" href="https://doc.dovecot.org/configuration_manual/service_configuration/#haproxy-v2-2-19">Dovecot</a></p></li><li><p><a target="_blank" href="https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/listener_filters/proxy_protocol">Envoy Proxy</a></p></li><li><p><a target="_blank" href="https://github.com/exa-networks/exaproxy">ExaProxy</a></p></li><li><p><a target="_blank" href="https://www.exim.org/exim-html-current/doc/html/spec_html/ch-proxies.html">Exim</a></p></li><li><p><a target="_blank" href="https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#proxy-protocol">Google Cloud Load Balancing</a></p></li><li><p><a target="_blank" href="https://docs.gunicorn.org/en/stable/settings.html#proxy-protocol">Gunicorn</a></p></li><li><p><a target="_blank" href="https://h2o.examp1e.net/configure/proxy_directives.html#proxy.proxy-protocol">H2O</a></p></li><li><p><a href="/blog/using-haproxy-with-the-proxy-protocol-to-better-secure-your-database">HAProxy</a></p></li><li><p><a target="_blank" href="https://www.haproxy.com/documentation/aloha/latest/load-balancing/client-ip-preservation/enable-proxy-protocol/">HAProxy ALOHA</a></p></li><li><p><a target="_blank" href="https://www.haproxy.com/documentation/hapee/latest/load-balancing/client-ip-preservation/enable-proxy-protocol/">HAProxy Enterprise</a></p></li><li><p><a target="_blank" href="https://www.vaultproject.io/docs/configuration/listener/tcp#proxy_protocol_behavior">HashiCorp Vault</a></p></li><li><p><a target="_blank" href="https://hitch-tls.org/">Hitch</a></p></li><li><p><a target="_blank" href="https://docs.hivemq.com/hivemq/4.17/user-guide/proxy-protocol.html">HiveMQ</a></p></li><li><p><a target="_blank" href="https://docs.verify.ibm.com/gateway/docs/tasks-proxy-protocol">IBM Application Gateway</a></p></li><li><p><a target="_blank" href="https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions">Lighttpd</a></p></li><li><p><a target="_blank" href="https://mariadb.com/kb/en/proxy-protocol-support/">MariaDB</a></p></li><li><p><a target="_blank" href="https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/">NGINX</a></p></li><li><p><a target="_blank" href="https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/">NGINX Plus</a></p></li><li><p><a target="_blank" href="https://www.percona.com/doc/percona-server/5.7/flexibility/proxy_protocol_support.html">Percona</a></p></li><li><p><a target="_blank" href="http://www.postfix.org/postconf.5.html#smtpd_upstream_proxy_protocol">Postfix</a></p></li><li><p><a target="_blank" href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/683d6a1797a34730a6e005d1e8de6f22/150170da1d99461584e1c87a7963ce4a.html?version=201909.000">SAP Web Dispatcher</a></p></li><li><p><a target="_blank" href="https://github.com/bumptech/stud">Stud</a></p></li><li><p><a target="_blank" href="https://www.stunnel.org/static/stunnel.html">Stunnel</a></p></li><li><p><a target="_blank" href="https://doc.traefik.io/traefik/routing/entrypoints/#proxyprotocol">Traefik</a></p></li><li><p><a target="_blank" href="https://www.varnish-software.com/developers/tutorials/proxy-protocol-varnish/">Varnish</a></p></li><li><p><a target="_blank" href="https://vernemq.com/blog/2020/01/13/vernemq-and-the-proxyprotocol.html">VerneMQ</a></p></li></ul><h2 id="developer-resources">Developer Resources</h2><p>If you’re a developer looking for information on how to implement the Proxy Protocol, check the link below:</p><ul><li><p><a target="_blank" href="https://github.com/haproxy/haproxy/blob/master/doc/proxy-protocol.txt">Proxy Protocol documentation</a></p></li></ul><h2 id="conclusion">Conclusion</h2><p>The Proxy Protocol preserves a client’s IP address when it passes through a proxy, which maintains the correct information in server logs. Be sure to choose proxy and server solutions that support it since it must be enabled on both the sender and receiver.</p> <a href="#" @click.prevent="blogNewsletter = true" class="flex items-center w-full py-5 text-blue-700 border border-2 rounded-lg hover:border-skye-400 hover:no-underline hover:text-blue-600 border-sky-300 bg-gradient-to-l from-sky-200 to-sky-100"> <span class="px-5"> <svg class="w-10" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"> <path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z" /> </svg> </span> <span class="pr-5 text-xl font-bold"> Subscribe to our blog. <span class="block text-base">Get the latest release updates, tutorials, and deep-dives from HAProxy experts.</span> </span> </a> </div> </main> <sidebar x-show="showSidebars" class="flex-none shrink relative hidden xl:block pl-8 w-[400px]"> <div x-transition:enter="transition ease-out duration-150" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease-in duration-0" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="pr-6 sticky top-[120px]"> <div class="border-b mt-[-53px] flex flex-wrap py-3 items-center" x-data="{ showSocials: false }"> <a href="https://www.haproxyconf.com/" target="_blank" class="leading-snug w-full relative py-3 text-white px-3 mb-3 overflow-hidden border-2 rounded-md hover:text-white bg-blue-700 hover:bg-blue-800 hover:no-underline border-blue-600 hover:border-blue-300"> <span class="block text-xl font-main font-bold text-blue-300">HAProxyConf 2025</span> Call for Papers is open! <span class="text-blue-300 font-bold">Learn more</span> </a> <a href="#" @click.prevent="blogNewsletter = true" class="flex items-center p-2 px-3 mr-5 text-gray-600 border-2 rounded-md hover:text-white hover:bg-blue-600 hover:no-underline hover:border-blue-500"> <svg class="mr-1.5 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"> <path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z" /> </svg> Subscribe to our blog </a> <a href="/blog" class="mr-5 text-center text-gray-600"> <svg class="w-4 mx-auto" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="currentColor"> <path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z" /> </svg> Blog </a> <a @click.prevent="showSocials = !showSocials" href="#" class="text-center text-gray-600"> <svg class="w-4 mx-auto" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="currentColor"> <path d="M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z" /> </svg> Share </a> <div class="w-full pt-3" x-show="showSocials" @click.away="showSocials = false" x-transition:enter="transition ease-out duration-150" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease-in duration-0" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style="display: none;" > <div class="flex gap-x-3 "> <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/sharer/sharer.php?u=https://haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address"e="> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" class="inline text-gray-600 w-7 h-7" stroke-width="1.5" stroke="currentColor"> <circle fill="currentColor" stroke-linecap="round" stroke-linejoin="round" cx="20" cy="20" r="16.75" /> <path class="text-gray-50" fill="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" d="M16.75,31.66v-10.57h-3.54v-4.1h3.54c0-.15,0-.27,0-.38,0-1.07,0-2.14,.03-3.21,.03-.98,.28-1.92,.83-2.75,.74-1.11,1.79-1.78,3.1-2.02,1.45-.27,2.9-.12,4.36,0,.05,0,.09,.03,.15,.04v3.66c-.19,0-.37,0-.54,0-.8,.02-1.61,.01-2.4,.08-.63,.05-1.01,.47-1.15,1.08-.05,.23-.09,.47-.1,.71-.01,.91,0,1.82,0,2.78h4.08c-.19,1.39-.37,2.74-.55,4.12h-3.54v10.57h-4.26Z" /> </svg> </a> <a target="_blank" rel="noopener noreferrer" href="https://twitter.com/intent/tweet?url=https://haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address&text="> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" class="inline text-gray-600 w-7 h-7" stroke-width="1.5" stroke="currentColor"> <circle fill="currentColor" stroke-linecap="round" stroke-linejoin="round" cx="20" cy="20" r="16.75" /> <path class="text-gray-50" fill="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" d="M9.71,26.97c2.48,.17,4.65-.36,6.6-1.88-2.05-.19-3.43-1.19-4.17-3.11,.67,.06,1.31,.11,1.96-.1-2.52-.63-3.61-2.86-3.52-4.42,.31,.12,.62,.25,.93,.34,.32,.09,.65,.14,1,.18-1.97-1.67-2.43-3.65-1.34-6.04,2.45,2.9,5.52,4.48,9.25,4.73,0-.57-.05-1.12,0-1.66,.2-1.96,1.95-3.64,3.92-3.82,1.42-.13,2.64,.25,3.67,1.24,.07,.07,.24,.11,.33,.08,.71-.24,1.42-.49,2.12-.75,.16-.06,.3-.14,.52-.25-.36,1.07-.99,1.83-1.88,2.38,.02,.03,.03,.07,.05,.1,.79-.21,1.58-.43,2.41-.65-.16,.21-.3,.45-.49,.64-.5,.5-1.02,.97-1.52,1.46-.09,.09-.17,.24-.17,.36,.02,3.6-1.21,6.7-3.64,9.34-1.86,2.02-4.18,3.17-6.85,3.63-2.82,.48-5.54,.12-8.12-1.18-.34-.17-.66-.38-1.06-.61Z" /> </svg> </a> <a target="_blank" rel="noopener noreferrer" href="https://www.linkedin.com/sharing/share-offsite/?url=https://haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address&title="> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" class="inline text-gray-600 w-7 h-7" stroke-width="1.5" stroke="currentColor"> <circle fill="currentColor" stroke-linecap="round" stroke-linejoin="round" cx="20" cy="20" r="16.75" /> <g class="text-gray-50" fill="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" > <path d="M22.17,28.97h-4.39V15.7h4.39v1.84c.08-.08,.11-.11,.13-.14,.9-1.34,2.16-2.02,3.77-2.03,1.4-.01,2.66,.38,3.67,1.4,.8,.81,1.24,1.81,1.38,2.93,.1,.76,.13,1.54,.14,2.31,.02,2.2,0,4.39,0,6.59,0,.12,0,.24,0,.38h-4.38c0-.13-.02-.25-.02-.37,0-2.12,.01-4.24-.01-6.36,0-.61-.08-1.24-.22-1.84-.19-.82-.71-1.37-1.57-1.51-.88-.14-1.64,.07-2.24,.78-.42,.49-.64,1.06-.64,1.7,0,2.42,0,4.83,0,7.25,0,.11,0,.22,0,.35Z" /> <path d="M10.9,15.7h4.38v13.27h-4.38V15.7Z" /> <path d="M12.95,9.27c.91,.02,1.6,.21,2.11,.83,.9,1.09,.69,3.03-1.01,3.6-.75,.25-1.5,.23-2.23-.13-.83-.41-1.27-1.28-1.17-2.35,.07-.8,.75-1.6,1.55-1.81,.29-.08,.6-.11,.76-.14Z" /> </g> </svg> </a> <a @click.prevent="$clipboard('https://haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address')" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" class="inline text-gray-600 w-7 h-7" stroke-width="1.5" stroke="currentColor"> <circle fill="currentColor" stroke-linecap="round" stroke-linejoin="round" cx="20" cy="20" r="16.75" /> <path class="text-gray-50" fill="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" d="M11.81,22.1v-4.2H28.19v4.2H11.81Zm5.95,5.85V12.06h4.47v15.89h-4.47Z" /> </svg> </a> </div> </div> </div> <div class="overflow-hidden bg-white pb-3 pt-md max-h-full md:max-h-[calc(100vh-170px)] md:overflow-auto"> <div class=""> <div> <ul class="m-0 space-y-4 text-sm leading-tight list-none"> <li> <a :class="$store.scroll.activeSection === 'use-the-proxy-protocol-to-preserve-a-clients-ip-address' ? '!text-gray-600 ': 'text-gray-400'" class="py-1 tracking-wide no-underline font-medium duration-75 leading-[21px]" href="#use-the-proxy-protocol-to-preserve-a-clients-ip-address"> Use the Proxy Protocol to Preserve a Client’s IP Address </a> </li> <li> <a :class="$store.scroll.activeSection === 'proxy-protocol-support' ? '!text-gray-600 ': 'text-gray-400'" class="py-1 tracking-wide no-underline font-medium duration-75 leading-[21px]" href="#proxy-protocol-support"> Proxy Protocol Support </a> </li> <li> <a :class="$store.scroll.activeSection === 'developer-resources' ? '!text-gray-600 ': 'text-gray-400'" class="py-1 tracking-wide no-underline font-medium duration-75 leading-[21px]" href="#developer-resources"> Developer Resources </a> </li> <li> <a :class="$store.scroll.activeSection === 'conclusion' ? '!text-gray-600 ': 'text-gray-400'" class="py-1 tracking-wide no-underline font-medium duration-75 leading-[21px]" href="#conclusion"> Conclusion </a> </li> </ul> </div> </div> </div> </div> </sidebar> </div> <div class="shrink xl:w-[780px] xl:min-w-[780px] lg:px-default xl:mx-0 mx-auto"> <div class="max-w-[720px] mx-auto"> <div class="pb-8 my-8 border-t-2 border-b-2"> <div class="my-default"> <h2 class="m-0 mt-5 text-2xl">Authors</h2> </div> <div class="space-y-8"> <div class="flex flex-row flex-wrap md:flex-nowrap"> <div class="md:pr-default"> <div class="md:flex-shrink-0"> <span class="hidden md:inline-flex items-center justify-center w-16 h-16 mb-4 bg-gray-500 rounded-full md:mb-0 md:h-24 md:w-24"> <span class="overflow-hidden text-xl font-medium leading-none text-white rounded-full"> <span class="text-sm font-medium leading-none text-white"> HT </span> </span> </span> </div> </div> <div class="md:pl-default"> <h3 class="mt-0 text-xl"> <a class="no-underline " href="/blog/author/htechnologies"> HAProxy Technologies </a> </h3> <div> </div> </div> </div> </div> </div> <div class="my-default"> <h2 class="m-0 text-2xl">Related Posts</h2> </div> <div class="grid gap-6 md:grid-cols-2" x-intersect:enter="showSidebars = false" x-intersect:leave="showSidebars = true" > <article class="flex flex-col mb-10 md:mb-0"> <div class=""> <a href="/blog/preserve-source-ip-address-despite-reverse-proxies"> <img class="border-2 w-full" src="https://cdn.haproxy.com/img/containers/partner_integrations/haproxy-blog.png/64badcc7ba0375979d30f85267a9bd33/haproxy-blog.webp" alt="Preserve Source IP Address Despite Reverse Proxies (Guide)" loading="lazy" width="585" height="292" > </a> </div> <div class="pt-2 px-3 flex flex-col justify-between flex-1"> <div> <time class="mb-1 text-xs " datetime="2012-06-05"> June 5th, 2012 </time> <h2 class="mt-0 mb-1 text-base "> <a href="/blog/preserve-source-ip-address-despite-reverse-proxies">Preserve Source IP Address Despite Reverse Proxies (Guide)</a> </h2> <p class=" text-sm leading-6"> In this blog post, we aim to demonstrate how to preserve source IP addresses when using the reverse-proxy mode in HAProxy. </p> </div> </div> </article> <article class="flex flex-col mb-10 md:mb-0"> <div class=""> <a href="/blog/how-to-extract-insightful-data-from-proxy-protocol-packets"> <img class="border-2 w-full" src="https://cdn.haproxy.com/img/containers/partner_integrations/how-to-extract-insightful-data-from-proxy-protocol-image.png/322fc469df1e990c8f24c028ca4a5101/how-to-extract-insightful-data-from-proxy-protocol-image.webp" alt="How to Extract Insightful Data From Proxy Protocol Packets" loading="lazy" width="585" height="292" > </a> </div> <div class="pt-2 px-3 flex flex-col justify-between flex-1"> <div> <time class="mb-1 text-xs " datetime="2023-10-18"> October 18th, 2023 </time> <h2 class="mt-0 mb-1 text-base "> <a href="/blog/how-to-extract-insightful-data-from-proxy-protocol-packets">How to Extract Insightful Data From Proxy Protocol Packets</a> </h2> <p class=" text-sm leading-6"> In this guide, we’ll explain why connection data matters. Next, we'll cover how the PROXY protocol works, how to use the TShark analyzer to capture and inspect packets and view the extraction results. </p> </div> </div> </article> <article class="flex flex-col mb-10 md:mb-0"> <div class=""> <a href="/blog/haproxy-protocol-support"> <img class="border-2 w-full" src="https://cdn.haproxy.com/img/containers/partner_integrations/your-comprehensive-guide-to-haproxy-protocol-support-image.png/9d483084baa7581d3ba1150bd59ee1d4/your-comprehensive-guide-to-haproxy-protocol-support-image.webp" alt="Your Comprehensive Guide to HAProxy Protocol Support" loading="lazy" width="585" height="292" > </a> </div> <div class="pt-2 px-3 flex flex-col justify-between flex-1"> <div> <time class="mb-1 text-xs " datetime="2023-09-18"> September 18th, 2023 </time> <h2 class="mt-0 mb-1 text-base "> <a href="/blog/haproxy-protocol-support">Your Comprehensive Guide to HAProxy Protocol Support</a> </h2> <p class=" text-sm leading-6"> Modern load balancers need broad internet protocol support. We’ll outline HAProxy's product-specific protocol support, highlight core features, and share handy use cases. </p> </div> </div> </article> <article class="flex flex-col mb-10 md:mb-0"> <div class=""> <a href="/blog/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension"> <img class="border-2 w-full" src="https://cdn.haproxy.com/img/containers/partner_integrations/haproxy-blog.png/64badcc7ba0375979d30f85267a9bd33/haproxy-blog.webp" alt="Enhanced SSL Load Balancing With Server Name Indication (SNI) TLS Extension" loading="lazy" width="585" height="292" > </a> </div> <div class="pt-2 px-3 flex flex-col justify-between flex-1"> <div> <time class="mb-1 text-xs " datetime="2012-04-13"> April 13th, 2012 </time> <h2 class="mt-0 mb-1 text-base "> <a href="/blog/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension">Enhanced SSL Load Balancing With Server Name Indication (SNI) TLS Extension</a> </h2> <p class=" text-sm leading-6"> In this blog post, we show how to enable enhanced SSL load balancing with the Server Name Indication (SNI) TLS Extension in HAProxy and HAProxy ALOHA. </p> </div> </div> </article> </div> <div x-data="commentsData()" x-intersect="loadComments()" id="disqus_thread" > </div> <script> var disqus_config = function () { this.page.url = "https://wpadmin.haproxy.com/blog/use-the-proxy-protocol-to-preserve-a-clients-ip-address/"; // Replace PAGE_URL with your page's canonical URL variable // this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable }; function commentsData(){ return { loadComments(){ /** * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ (function() { // DON'T EDIT BELOW THIS LINE var d = document, s = d.createElement('script'); s.src = 'https://haptest.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); /* let scriptEle = document.createElement("script"); scriptEle.src = "https://haptest.disqus.com/count.js"; scriptEle.id = "dsq-count-scr"; scriptEle.async = true; document.body.appendChild(scriptEle); */ } } } </script> <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> </div> </div> </div> </article> <div class="modal fixed inset-0 bg-primary-dark bg-opacity-75 transition-opacity duration-300" x-show="blogNewsletter" @keydown.window.escape="blogNewsletter = false" style="display:none;" x-cloak > <div @click.away="blogNewsletter = false" class="max-h-[80%] mt-[120px] relative transform overflow-x-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:w-full sm:max-w-xl mx-auto"> <div class="bg-[#3862CB] section"> <div class="flex flex-row flex-wrap container"> <div class="px-default w-full py-10" > <img src="https://cdn.haproxy.com/img/containers/partner_integrations/asset-7.png/7ecbd7949d7bddb0f073a2d0843a47ff/asset-7.webp" alt="asset-7" class="mx-auto max-w-[150px]" loading="lazy" > </div> </div> </div> <div class="mt-default section"> <div class="flex flex-row flex-wrap container"> <div class="px-default w-full" > <div class="text-center"> <h2 class="!mt-0 text-center" > Stay in the loop </h2> <p>Get some knowledge delivered to your inbox.</p> </div> </div> </div> </div> <div class="styled-form mb-default px-16 section"> <div class="flex flex-row flex-wrap container"> <div class="w-full" > <div x-data="NewsletterFormData()"> <form class="space-y-4 api-form" method="POST" @submit.prevent="submitForm" x-show="!success"> <input type="hidden" name="_token" value="Da7Yi3Fpyw2sCzN3P6octWeydkRf0IZnDZHXKKLj" autocomplete="off"> <div class="flex-wrap md:flex"> <div class="w-full md:w-2/3"> <div class="form-group"> <input :class="errors.email ? '!border-red-600' : 'border-transparent'" class="bg-gray-100 w-full p-4 border-transparent rounded !bg-white border !border-gray-100" placeholder="Your email" type="email" required="required" name="email" /> <div class="text-sm text-red-600" x-text="errors.email ? errors.email[0] : ''"> </div> </div> </div> <div class="w-full md:w-1/3"> <button type="submit" class="flex items-center justify-center w-full h-full py-2 m-0 my-3 text-center rounded md:w-auto md:my-0 md:ml-3 btn btn-primary" :disabled="loading"> <span>Subscribe</span> <svg x-show="loading" style="display: none;" class="w-5 h-5 ml-3 text-white animate-spin" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"> </path> </svg> </button> </div> <div class="w-full mt-3"> <div class=""> <div class="relative flex items-start"> <label class="flex items-center h-5 font-medium text-gray-700"> <input :class="errors.newsletter_subscriber ? '!border-red-600' : 'border-transparent'" class="h-4 w-4 rounded !border-transparent !outline-0 text-primary-default focus:ring-primary-default" checked="checked" name="newsletter_subscriber" type="checkbox" /> <span class="ml-3 text-xs text-gray-500"> Also subscribe to our newsletter </span> </label> </div> </div> <div class="mt-3"> <div class="relative flex items-start"> <label class="flex items-center h-5 font-medium text-gray-700"> <input :class="errors.subscribe_communications ? '!border-red-600' : 'border-transparent'" class="h-4 w-4 rounded !border-transparent !outline-0 text-primary-default focus:ring-primary-default" name="subscribe_communications" type="checkbox" /> <span class="ml-3 text-xs text-gray-500"> I agree to receive other communications from HAProxy Technologies. </span> </label> </div> </div> </div> </div> <input class="hidden" type="text" name="settings" class="settings" /> </form> <div x-data="{ show: true }" x-show="success" style="display: none;"> <div class="p-4 mb-5 rounded-md bg-green-50"> <div class="flex"> <div class="flex-shrink-0"> <!-- Heroicon name: mini/check-circle --> <svg class="w-5 h-5 text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /> </svg> </div> <div class="ml-3 nop"> <p class="text-sm font-medium text-green-800"> Thank you for subscribing! </p> </div> </div> </div> </div> </div> <script> function NewsletterFormData() { return { success: false, errors: {}, loading: false, submitForm(event) { this.loading = true; let data = new FormData(event.target); let settings = data.get("settings"); if(settings) { this.loading = false; this.success = true; }; data.append("hutk", document.cookie.replace(/(?:(?:^|.*;\s*)hubspotutk\s*\=\s*([^;]*).*$)|^.*$/, "$1")); data.append("href", document.location.href); data.append("title", document.title); data.append("leadsource", "Blog Subscription"); fetch("/api/newsletter", { method: "POST", body: data }) .then(res => res.json()) .then((data) => { this.sendEvents() this.success = true this.loading = false }) .catch((err) => { console.log("[error]", err) this.loading = false; }) }, sendEvents() { try { plausible("Blog Newsletter", { props: { path: document.location.pathname, referrer: document.referrer ? document.referrer : null, } }); } catch (err) {} } }; } </script> </div> </div> </div> </div> </div> </div> </div> <footer id="mainfooter"> <div id="main-footer-top" class="py-3 section"> <div class="container flex flex-row flex-wrap mt-2"> <div class="flex flex-col items-center w-full px-default lg:w-1/4 sm:flex-row lg:flex-col"> <div class="w-full img-container sm:w-1/3 lg:w-full"> <a href="/"> <img src="/assets/our_logos/svg/haproxy-horizontal-monochrome.svg" width="230" height="55" alt="haproxy-logo" class="max-w-[230px] sm:mx-auto pb-6 mt-7" loading="lazy"> </a> </div> <div class="w-full pt-6 text-sm border-t sm:ml-6 sm:border-t-0 sm:pt-0 sm:pl-6 sm:border-l lg:border-t lg:pt-6 lg:pl-0 lg:border-l-0 sm:w-2/3 lg:w-full"> <div> <a class="block font-bold" href="tel:+1 (844) 222-4340">+1 (844) 222-4340</a> </div> <h3 class="block font-semibold text-heading-footer font-main"> Connect with Us </h3> <div class="flex flex-row w-full mx-auto"> <a class="block w-1/12 mr-3 socialico" href="mailto:contact@haproxy.com" title="Email HAProxy Techologies" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Email HAProxy Techologies</title><path d="M15.61 12c0 1.99-1.62 3.61-3.61 3.61-1.99 0-3.61-1.62-3.61-3.61 0-1.99 1.62-3.61 3.61-3.61 1.99 0 3.61 1.62 3.61 3.61M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12c2.424 0 4.761-.722 6.76-2.087l.034-.024-1.617-1.879-.027.017A9.494 9.494 0 0 1 12 21.54c-5.26 0-9.54-4.28-9.54-9.54 0-5.26 4.28-9.54 9.54-9.54 5.26 0 9.54 4.28 9.54 9.54a9.63 9.63 0 0 1-.225 2.05c-.301 1.239-1.169 1.618-1.82 1.568-.654-.053-1.42-.52-1.426-1.661V12A6.076 6.076 0 0 0 12 5.93 6.076 6.076 0 0 0 5.93 12 6.076 6.076 0 0 0 12 18.07a6.02 6.02 0 0 0 4.3-1.792 3.9 3.9 0 0 0 3.32 1.805c.874 0 1.74-.292 2.437-.821.719-.547 1.256-1.336 1.553-2.285.047-.154.135-.504.135-.507l.002-.013c.175-.76.253-1.52.253-2.457 0-6.617-5.383-12-12-12"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.facebook.com/haproxy.technologies" title="HAProxy Techologies on Facebook" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>HAProxy Techologies on Facebook</title><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.github.com/haproxytech" title="HAProxy Techologies on GitHub" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>HAProxy Techologies on GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.linkedin.com/company/haproxy-technologies" title="" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>HAProxy Techologies on LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.x.com/haproxy" title="HAProxy Techologies on X" target="_blank" rel="noreferrer" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.youtube.com/c/HAProxyTechnologies" title="HAProxy Techologies on YouTube" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>HAProxy Techologies on YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://slack.haproxy.org" title="HAProxy Techologies on Slack" target="_blank" rel="noreferrer" > <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>HAProxy Techologies on Slack</title><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg> </a> <a class="block w-1/12 mr-3 socialico" href="https://www.reddit.com/r/haproxy/" title="HAProxy Techologies on Reddit" target="_blank" rel="noreferrer" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z"/></svg> </a> </div> </div> </div> <div class="w-full px-default sm:w-1/2 md:w-1/3 lg:w-1/4"> <div> <h3 class="text-heading-footer"> Products </h3> <ul> <li class="text-sm"> <a href="/products/haproxy-enterprise">HAProxy Enterprise</a> </li> <li class="text-sm"> <a href="/products/haproxy-enterprise-kubernetes-ingress-controller">HAProxy Enterprise Kubernetes Ingress Controller</a> </li> <li class="text-sm"> <a href="/products/haproxy-aloha">HAProxy ALOHA</a> </li> <li class="text-sm"> <a href="/products/haproxy-edge">HAProxy Edge</a> </li> <li class="text-sm"> <a href="/products/haproxy-fusion-control-plane">HAProxy Fusion Control Plane</a> </li> <li class="text-sm"> <a href="/products/haproxy-one">HAProxy One</a> </li> </ul> </div> <div> <h3 class="text-heading-footer"> Solutions </h3> <ul> <li class="text-sm"> <a href="/solutions/load-balancing">Load Balancing</a> </li> <li class="text-sm"> <a href="/solutions/high-availability">High Availability</a> </li> <li class="text-sm"> <a href="/solutions/administration">Administration</a> </li> <li class="text-sm"> <a href="/solutions/application-acceleration">Application Acceleration</a> </li> <li class="text-sm"> <a href="/solutions/security">Security</a> </li> <li class="text-sm"> <a href="/solutions/web-application-firewall">Web Application Firewall</a> </li> <li class="text-sm"> <a href="/solutions/api-gateway">API Gateway</a> </li> <li class="text-sm"> <a href="/solutions/kubernetes">Kubernetes</a> </li> <li class="text-sm"> <a href="/solutions/government-public-sector">Public Sector</a> </li> </ul> </div> </div> <div class="w-full px-default sm:w-1/2 md:w-1/3 lg:w-1/4"> <div> <h3 class="text-heading-footer"> Resources </h3> <ul> <li class="text-sm"> <a href="https://www.haproxy.com/documentation/hapee/">HAProxy Enterprise Documentation</a> </li> <li class="text-sm"> <a href="https://www.haproxy.com/documentation/aloha/">HAProxy ALOHA Documentation</a> </li> <li class="text-sm"> <a href="https://www.haproxy.com/documentation/kubernetes/">HAProxy Kubernetes Ingress Controller Documentation</a> </li> <li class="text-sm"> <a href="/products/upgrade-haproxy-to-haproxy-enterprise">Compare Community with Enterprise</a> </li> <li class="text-sm"> <a href="/certified-integrations">Certified Integrations</a> </li> <li class="text-sm"> <a href="/user-spotlight-series">User Spotlight Series</a> </li> <li class="text-sm"> <a href="/content-library">Content Library</a> </li> <li class="text-sm"> <a href="/knowledge-base">Knowledge Base</a> </li> <li class="text-sm"> <a href="/blog">Blog</a> </li> <li class="text-sm"> <a href="/success-stories">Success Stories</a> </li> </ul> </div> <div> <h3 class="text-heading-footer"> Support </h3> <ul> <li class="text-sm"> <a href="https://my.haproxy.com/portal/cust/login">Customer Support Portal</a> </li> <li class="text-sm"> <a href="/support/support-options">Support Options</a> </li> <li class="text-sm"> <a href="/support/professional-services">Professional Services</a> </li> <li class="text-sm"> <a href="https://www.mail-archive.com/haproxy@formilux.org/">Community Mailing List</a> </li> </ul> </div> </div> <div class="w-full px-default sm:w-1/2 md:w-1/3 lg:w-1/4"> <div> <h3 class="text-heading-footer"> Company </h3> <ul> <li class="text-sm"> <a href="/company/about-us">About Us</a> </li> <li class="text-sm"> <a href="/contact-us">Contact Us</a> </li> <li class="text-sm"> <a href="/events">Events</a> </li> <li class="text-sm"> <a href="/company/careers">Careers</a> </li> <li class="text-sm"> <a href="/company/news">News</a> </li> </ul> </div> <div> <h3 class="text-heading-footer"> Partners </h3> <ul> <li class="text-sm"> <a href="/partners/partner-program">Partner Program</a> </li> <li class="text-sm"> <a href="/partners/partner-program/certification">Certified Integration Program</a> </li> <li class="text-sm"> <a href="/contact-us">Find a Partner</a> </li> <li class="text-sm"> <a href="/partners/dealregistration">Partner Deal Registration</a> </li> </ul> </div> </div> </div> </div> <div class="flex flex-row mt-8 bg-[#00000052] text-[14px]"> <div class="container mx-auto flex flex-row p-4 border-t-1 w-full text-[#666] copyright"> <div class="w-full md:w-3/4"> © 2024 HAProxy Technologies, LLC. All Rights Reserved<br /> <a href="/legal/haproxy-trademark-policy">Trademark</a> | <a href="/legal/privacy-policy">Privacy</a> | <a href="/legal/dmca-notice-and-takedown-policy">DMCA Policy</a> | <a href="/legal/subpoena-response-policy">Subpoena Response Policy</a> | <a href="/legal/acceptable-use-policy">Acceptable Use Policy (AUP)</a> | <a href="/legal/do-not-sell-my-personal-information">Do Not Sell My Personal Information</a> </div> <div class="w-full md:w-1/4 md:text-right"> <a href="/sitemap/">Sitemap</a> <br /> <!-- /components/_cookie_banner.antlers.html --> <span x-data x-cloak> <span x-show="$store.cookieBanner.consent !== null"> <a @click.prevent="$store.cookieBanner.set(null)" href="#">Manage Cookie Preferences</a> </span> </span> </div> </div> </div> </footer> <div class="fixed inset-0 z-10 hidden w-full h-full bg-slate-800 opacity-90" :class="{ 'lg:!block': (products || solutions || resources || support || company || gethaproxy) && !mobilenav }"> </div> <script defer src="https://cdn.haproxy.com/assets/js/alpine.js?id=62b903d8f6e5f46ce05d7888632c9e4f"></script> <script src="/assets/js/popper.min.js?id=31032b08bd8e72220462d3f54f8bd69a" defer></script> <script src="/assets/js/tippy-bundle.umd.min.js?id=be40939a1df8aa4cec53fb6ae572df26" defer></script> <script defer src="https://cdn.haproxy.com/assets/js/clipboard.js?id=4c732e34d6a1e67dbbbc2e046e79e5c2"></script> <script defer src="https://cdn.haproxy.com/assets/js/anchorise.js?id=3ac5c0f5e7881bc2f4a9ec7e8fa21f26"></script> <script> document.addEventListener('alpine:init', () => { Alpine.store('scroll', { show: true, activeSection: 'use-the-proxy-protocol-to-preserve-a-clients-ip-address', observer: null }); const headings = document.querySelectorAll('.post-content h2, h1'); const h2s = document.querySelectorAll('.post-content h2'); // Set active on initial load setActiveLink(); document.addEventListener('scroll', function(){ // Highlight the current section in the table of contents setActiveLink(); }) function setActiveLink(){ // offset - top margin of heading const topOfWindow = window.scrollY + 120 - 56; headings.forEach((heading) => { if (heading.offsetTop < topOfWindow) { Alpine.store('scroll').activeSection = heading.id; } else if(headings[0].offsetTop > topOfWindow) { Alpine.store('scroll').activeSection = ''; } }); } }) </script> <script> document.addEventListener('alpine:initializing', () => { Alpine.store('cookieBanner', { days: 1, consent: Alpine.$persist(null).as('cookieBannerConsent'), set(value) { this.consent = value }, uniqueId() { const dateString = Date.now().toString(36); const randomness = Math.random().toString(36).substr(2); return dateString + randomness; }, send(name){ try { plausible(name, { props: { path: document.location.pathname, referrer: document.referrer ? document.referrer : null, session: getCookie("yid_session") ? getCookie("yid_session") : "", }, }); } catch(err){ console.log("[Error]", error) } }, checkDates(dateString){ if(!dateString){ return true } const givenDate = new Date(dateString); if(givenDate == "Invalid Date"){ return true } const today = new Date(); const timeDiff = today - givenDate; const diffInDays = timeDiff / (1000 * 3600 * 24); if (diffInDays > this.days) { return true } else { return false } } }) }) </script> <script defer src="https://cdn.haproxy.com/assets/js/plausible-goals.js?id=dca6fb78f259dab32d9abb3039368e3c"></script> <script defer> function focusForm(){ // autofocus form const firstField = document.querySelector("input[name='firstname']"); if(firstField){ firstField.focus(); } } </script> <script src="https://cdn.haproxy.com/assets/js/glightbox.min.js" async defer></script> <script> var interval = window.setInterval(function(){ if(window.GLightbox) { const lightbox = GLightbox({ touchNavigation: true, loop: true, autoplayVideos: true }); // console.log('GLightbox loaded'); window.clearInterval(interval); } }, 50); </script> <script> function carousel(settings) { return { active: 0, init() { var flkty = new Flickity(this.$refs.carousel, { wrapAround: true, autoPlay: settings.autoplay, pauseAutoPlayOnHover: settings.pauseonhover, prevNextButtons: settings.arrows, pageDots: settings.controls, cellSelector: '.carousel-cell', asNavFor: document.querySelector('.carousel-main'), contain: true, resize: true, draggable: true, fade: true, on: { ready: () => { let items = document.querySelectorAll('.carousel-cell') items.forEach(el => { el.classList.remove('hidden'); }); this.$nextTick(() => { flkty.resize(); }); } } }); flkty.on('change', i => this.active = i); } } } function carouselFilter() { return { active: 0, changeActive(i) { this.active = i; this.$nextTick(() => { let flkty = Flickity.data(this.$el.querySelectorAll('.carousel')[i]); flkty.resize(); }); } } } </script> <div class="ad ads adsbox ad-placement doubleclick ad-placeholder ad-badge" style="height: 1px;"></div> <script type="text/javascript">(function() { var els = document.getElementsByClassName('nocache'); var map = {}; for (var i = 0; i < els.length; i++) { var section = els[i].getAttribute('data-nocache'); map[section] = els[i]; } fetch('/!/nocache', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: window.location.href.split('#')[0], sections: Object.keys(map) }) }) .then((response) => response.json()) .then((data) => { const regions = data.regions; for (var key in regions) { if (map[key]) map[key].outerHTML = regions[key]; } for (const input of document.querySelectorAll('input[value="Da7Yi3Fpyw2sCzN3P6octWeydkRf0IZnDZHXKKLj"]')) { input.value = data.csrf; } for (const meta of document.querySelectorAll('meta[content="Da7Yi3Fpyw2sCzN3P6octWeydkRf0IZnDZHXKKLj"]')) { meta.content = data.csrf; } for (const input of document.querySelectorAll('script[data-csrf="Da7Yi3Fpyw2sCzN3P6octWeydkRf0IZnDZHXKKLj"]')) { input.setAttribute('data-csrf', data.csrf); } if (window.hasOwnProperty('livewire_token')) { window.livewire_token = data.csrf } if (window.hasOwnProperty('livewireScriptConfig')) { window.livewireScriptConfig.csrf = data.csrf } document.dispatchEvent(new CustomEvent('statamic:nocache.replaced', { detail: data })); }); })();</script></body> </html>