CINXE.COM
How to Use Ansible: A Reference Guide | DigitalOcean
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charSet="utf-8"/><link rel="apple-touch-icon" sizes="180x180" href="/_next/static/media/apple-touch-icon.d7edaa01.png"/><link rel="icon" sizes="192x192" href="/_next/static/media/android-chrome-192x192.f09059d8.png"/><link rel="icon" sizes="512x512" href="/_next/static/media/android-chrome-512x512.5f2e6221.png"/><link rel="icon" type="image/png" sizes="32x32" href="/_next/static/media/favicon-32x32.b7ef9ede.png"/><link rel="icon" type="image/png" sizes="16x16" href="/_next/static/media/favicon-16x16.71c34517.png"/><link rel="icon" type="image/x-icon" href="/_next/static/media/favicon.594d6067.ico"/><meta name="theme-color" content="#0069ff"/><meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"/><meta name="twitter:card" content="summary"/><meta property="og:type" content="website"/><title>How to Use Ansible: A Reference Guide | DigitalOcean</title><meta name="description" content="Ansible is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers. This cheat sheet-style guide pr… "/><meta name="twitter:title" content="How to Use Ansible: A Reference Guide | DigitalOcean"/><meta name="twitter:description" content="Ansible is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers. This cheat sheet-style guide pr… "/><meta name="twitter:image" content="https://www.digitalocean.com/_next/static/media/intro-to-cloud.d49bc5f7.jpeg"/><meta name="og:title" content="How to Use Ansible: A Reference Guide | DigitalOcean"/><meta name="og:description" content="Ansible is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers. This cheat sheet-style guide pr… "/><meta name="og:image" content="https://www.digitalocean.com/_next/static/media/intro-to-cloud.d49bc5f7.jpeg"/><meta property="og:type" content="article"/><link rel="canonical" href="https://www.digitalocean.com/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide"/><link rel="alternate" hrefLang="en" href="https://www.digitalocean.com/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide"/><link rel="alternate" hrefLang="x-default" href="https://www.digitalocean.com/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide"/><meta name="next-head-count" content="23"/><link rel="preconnect" href="https://consent.trustarc.com"/><link rel="preload" href="/_next/static/media/8347d131139854e0.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font=""/><link rel="preload" href="/_next/static/media/a34f9d1faa5f3315.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font=""/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font=""/><link rel="preload" href="/_next/static/css/f9deea49490bab4e.css" as="style"/><link rel="stylesheet" href="/_next/static/css/f9deea49490bab4e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-0bae35e1f49cdc4b.js" defer=""></script><script src="/_next/static/chunks/framework-945b357d4a851f4b.js" defer=""></script><script src="/_next/static/chunks/main-5be6ccb0361589bb.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a861a1049d2ac635.js" defer=""></script><script src="/_next/static/chunks/d3048c20-13a9a240022213f6.js" defer=""></script><script src="/_next/static/chunks/3457-470ff73f5e87bb85.js" defer=""></script><script src="/_next/static/chunks/7311-edfdb7493dd2b483.js" defer=""></script><script src="/_next/static/chunks/1376-7d2d0b0cf8dc6cdf.js" defer=""></script><script src="/_next/static/chunks/3113-558a9cbbe91b88a2.js" defer=""></script><script src="/_next/static/chunks/8953-80e7abbb7eb828c4.js" defer=""></script><script src="/_next/static/chunks/9828-b1721f12feb167c3.js" defer=""></script><script src="/_next/static/chunks/331-1fbf652b2111c0ef.js" defer=""></script><script src="/_next/static/chunks/6518-fb9b0319afd223b8.js" defer=""></script><script src="/_next/static/chunks/4115-e35c5317d09d6b23.js" defer=""></script><script src="/_next/static/chunks/8971-f7e9338a9a9ceef9.js" defer=""></script><script src="/_next/static/chunks/pages/community/tutorials/%5Bslug%5D-f72ef92542160434.js" defer=""></script><script src="/_next/static/3d97684bcc0944393e84030f785c45d2cc925214/_buildManifest.js" defer=""></script><script src="/_next/static/3d97684bcc0944393e84030f785c45d2cc925214/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="6.1.13">.gxWftL{position:fixed;right:16px;top:242px;z-index:99999;}/*!sc*/ data-styled.g1[id="NotificationsStyles__NotificationsContainer-sc-3fed92dc-0"]{content:"gxWftL,"}/*!sc*/ .fjIPKj{text-decoration:none;}/*!sc*/ .fjIPKj.button-link{align-items:center;background-color:transparent;border:1px solid #080b2d;border-radius:100px;color:#080b2d;cursor:pointer;display:flex;font-size:1em;font-weight:700;justify-content:center;padding:16px 32px;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link:hover{background-color:rgba(0,105,255,0.15);color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link:focus{background-color:rgba(0,105,255,0.15);border:1px solid transparent;color:#0069ff;}/*!sc*/ .fjIPKj.button-link.is-squared{border-radius:8px;}/*!sc*/ .fjIPKj.button-link.is-primary{background-color:#1633ff;border:1px solid #1633ff;color:#fff;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-primary:hover{background-color:#0069ff;border:1px solid #0069ff;color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-primary:disabled{background-color:#c4c9d6!important;border:1px solid #c4c9d6!important;color:#fff;}/*!sc*/ .fjIPKj.button-link.is-primary.is-outlined{border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .fjIPKj.button-link.is-primary.is-outlined:hover{background-color:rgba(0,105,255,0.1);border:1px solid #0069ff!important;color:#0069ff!important;}/*!sc*/ .fjIPKj.button-link.is-primary.is-outlined:disabled{background-color:#fff!important;border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .fjIPKj.button-link.is-white{background-color:#fff;border:1px solid #fff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-white:hover{background-color:rgba(225,225,225,0.9);border:1px solid rgba(225,225,225,0.9);color:#0069ff!important;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-white:disabled{border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .fjIPKj.button-link.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.8);color:rgba(255,255,255,0.8);}/*!sc*/ .fjIPKj.button-link.is-white.is-outlined:hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1)!important;}/*!sc*/ .fjIPKj.button-link.is-green{background-color:#15CD72;border:1px solid #15CD72;color:#fff;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-green:hover{background-color:rgba(21, 205, 114, 0.9);border:1px solid rgba(21, 205, 114, 0.9);color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-green:disabled{border:1px solid rgba(21, 205, 114, 0.3)!important;color:rgba(21, 205, 114, 0.3)!important;}/*!sc*/ .fjIPKj.button-link.is-green.is-outlined{background-color:transparent;border:1px solid rgba(21, 205, 114, 0.9);color:rgba(21, 205, 114, 0.9);}/*!sc*/ .fjIPKj.button-link.is-green.is-outlined:not(:disabled):hover{background-color:transparent;border:1px solid rgba(21, 205, 114, 1);color:rgba(21, 205, 114, 1);}/*!sc*/ .fjIPKj.button-link.is-outlined{background-color:transparent;border:1px solid #080b2d;color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-outlined:hover{border:1px solid #0069ff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .fjIPKj.button-link.is-small{padding:12px 24px;}/*!sc*/ .fjIPKj.button-link.has-center-img{padding:15px 16px;}/*!sc*/ .fjIPKj.button-link.has-left-img >img{margin-right:8px;}/*!sc*/ .fjIPKj.button-link.mx-16{margin-left:16px;margin-right:16px;}/*!sc*/ .fjIPKj.button-link.is-gray3-color{box-shadow:0 6px 20px -6px rgba(11, 43, 158, 0.15);color:#24335a;font-size:16px;font-weight:600;line-height:24px;}/*!sc*/ data-styled.g6[id="LazyLink___StyledLink-sc-679fc0ad-0"]{content:"fjIPKj,"}/*!sc*/ .gYjDKj{text-decoration:none;}/*!sc*/ .gYjDKj.button-link{align-items:center;background-color:transparent;border:1px solid #080b2d;border-radius:100px;color:#080b2d;cursor:pointer;display:flex;font-size:1em;font-weight:700;justify-content:center;padding:16px 32px;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link:hover{background-color:rgba(0,105,255,0.15);color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link:focus{background-color:rgba(0,105,255,0.15);border:1px solid transparent;color:#0069ff;}/*!sc*/ .gYjDKj.button-link.is-squared{border-radius:8px;}/*!sc*/ .gYjDKj.button-link.is-primary{background-color:#1633ff;border:1px solid #1633ff;color:#fff;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-primary:hover{background-color:#0069ff;border:1px solid #0069ff;color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-primary:disabled{background-color:#c4c9d6!important;border:1px solid #c4c9d6!important;color:#fff;}/*!sc*/ .gYjDKj.button-link.is-primary.is-outlined{border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .gYjDKj.button-link.is-primary.is-outlined:hover{background-color:rgba(0,105,255,0.1);border:1px solid #0069ff!important;color:#0069ff!important;}/*!sc*/ .gYjDKj.button-link.is-primary.is-outlined:disabled{background-color:#fff!important;border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .gYjDKj.button-link.is-white{background-color:#fff;border:1px solid #fff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-white:hover{background-color:rgba(225,225,225,0.9);border:1px solid rgba(225,225,225,0.9);color:#0069ff!important;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-white:disabled{border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .gYjDKj.button-link.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.8);color:rgba(255,255,255,0.8);}/*!sc*/ .gYjDKj.button-link.is-white.is-outlined:hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1)!important;}/*!sc*/ .gYjDKj.button-link.is-green{background-color:#15CD72;border:1px solid #15CD72;color:#fff;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-green:hover{background-color:rgba(21, 205, 114, 0.9);border:1px solid rgba(21, 205, 114, 0.9);color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-green:disabled{border:1px solid rgba(21, 205, 114, 0.3)!important;color:rgba(21, 205, 114, 0.3)!important;}/*!sc*/ .gYjDKj.button-link.is-green.is-outlined{background-color:transparent;border:1px solid rgba(21, 205, 114, 0.9);color:rgba(21, 205, 114, 0.9);}/*!sc*/ .gYjDKj.button-link.is-green.is-outlined:not(:disabled):hover{background-color:transparent;border:1px solid rgba(21, 205, 114, 1);color:rgba(21, 205, 114, 1);}/*!sc*/ .gYjDKj.button-link.is-outlined{background-color:transparent;border:1px solid #080b2d;color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-outlined:hover{border:1px solid #0069ff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .gYjDKj.button-link.is-small{padding:12px 24px;}/*!sc*/ .gYjDKj.button-link.has-center-img{padding:15px 16px;}/*!sc*/ .gYjDKj.button-link.has-left-img >img{margin-right:8px;}/*!sc*/ .gYjDKj.button-link.mx-16{margin-left:16px;margin-right:16px;}/*!sc*/ .gYjDKj.button-link.is-gray3-color{box-shadow:0 6px 20px -6px rgba(11, 43, 158, 0.15);color:#24335a;font-size:16px;font-weight:600;line-height:24px;}/*!sc*/ data-styled.g7[id="LazyLink___StyledA-sc-679fc0ad-1"]{content:"gYjDKj,"}/*!sc*/ .jNvMpG{align-self:flex-start;color:#0069ff;display:inline-block;font-family:'__JetBrains_Mono_26ed0d',monospace;font-weight:600;position:relative;transition:all 0.2s ease;}/*!sc*/ .eTVGAK{align-self:flex-start;color:#0069ff;display:inline-block;font-family:'__JetBrains_Mono_26ed0d',monospace;font-weight:600;position:relative;transition:all 0.2s ease;margin-right:12px;}/*!sc*/ .eTVGAK::after{content:'->';font-size:18px;font-weight:700;position:relative;right:-8px;transition:right 0.2s ease;white-space:nowrap;}/*!sc*/ .eTVGAK:hover::after{right:-12px;transition:right 0.2s ease;}/*!sc*/ data-styled.g9[id="TextLink___StyledLazyLink-sc-221f63b7-0"]{content:"jNvMpG,eTVGAK,"}/*!sc*/ .itaWBy{background-color:#FFF;padding:80px 24px;}/*!sc*/ @media (min-width:768px){.itaWBy{padding:104px 40px;}}/*!sc*/ @media (min-width:1024px){.itaWBy{padding:128px 0;}}/*!sc*/ data-styled.g14[id="FooterStyles__StyledSection-sc-19041032-0"]{content:"itaWBy,"}/*!sc*/ .duWDmu{color:#4D5B7C;transition:color 350ms ease;}/*!sc*/ .duWDmu:hover,.duWDmu:focus{color:#000C2A;}/*!sc*/ data-styled.g15[id="SocialStyles__StyledSocial-sc-8567fc92-0"]{content:"duWDmu,"}/*!sc*/ .bFTXQH{transform-box:fill-box;transform-origin:0 0;transition:stroke-dashoffset 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),stroke-dasharray 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/ data-styled.g16[id="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0"]{content:"bFTXQH,"}/*!sc*/ .fLzQlC{transform-box:fill-box;transform-origin:0 0;transition:transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms,opacity 187.5ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms;}/*!sc*/ data-styled.g17[id="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1"]{content:"fLzQlC,"}/*!sc*/ .gicUQZ{transform-box:fill-box;transform-origin:0 100%;transition:transform 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/ data-styled.g18[id="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2"]{content:"gicUQZ,"}/*!sc*/ .fAILdG{transform-box:fill-box;transform-origin:0 50%;transition:transform 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6);}/*!sc*/ data-styled.g19[id="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3"]{content:"fAILdG,"}/*!sc*/ .hjiknj{cursor:pointer;overflow:visible;}/*!sc*/ .hjiknj:hover .DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0,.hjiknj:focus .DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0{stroke-dasharray:113.88273369263 113.88273369263;stroke-dashoffset:0;transform:translate(0,-13.75px);transition:stroke-dashoffset 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),stroke-dasharray 750ms cubic-bezier(0.68, -0.6, 0.32, 1.6),transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 375ms;}/*!sc*/ .hjiknj:hover .DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1,.hjiknj:focus .DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1{opacity:0;transform:scale(0);transition:transform 375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 0ms,opacity 187.5ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 562.5ms;}/*!sc*/ .hjiknj:hover .DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2,.hjiknj:focus .DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2{transform:translate(3.25px,-58.5px) translate(0,3.75px) scale(1.2777777777777777);}/*!sc*/ .hjiknj:hover .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3,.hjiknj:focus .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3{transform:translate(27.75px,-41.25px);}/*!sc*/ .hjiknj:focus{outline:none;}/*!sc*/ @media (hover:hover){.hjiknj:focus .DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3{animation:375ms cubic-bezier(0.68, -0.6, 0.32, 1.6) 0s 2 alternate lRCJp;}}/*!sc*/ data-styled.g20[id="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4"]{content:"hjiknj,"}/*!sc*/ .hVvKLQ{align-items:center;display:flex;flex-direction:column;gap:32px;justify-content:space-between;margin:80px 0 0;}/*!sc*/ @media (min-width:768px){.hVvKLQ{flex-direction:row;}}/*!sc*/ data-styled.g21[id="CompanyDetailsStyles__StyledCompanyDetails-sc-29dc4d61-0"]{content:"hVvKLQ,"}/*!sc*/ .cpSiFS{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;text-align:center;}/*!sc*/ @media (min-width:768px){.cpSiFS{flex-wrap:nowrap;}}/*!sc*/ .cpSiFS svg{color:#0069FF;}/*!sc*/ .cpSiFS a:hover{color:#000C2A;}/*!sc*/ data-styled.g22[id="CompanyDetailsStyles__StyledCompanyLogo-sc-29dc4d61-1"]{content:"cpSiFS,"}/*!sc*/ .fXQyuL{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;list-style:none;margin:0;max-width:12rem;padding:0;}/*!sc*/ @media (min-width:768px){.fXQyuL{max-width:none;}}/*!sc*/ data-styled.g23[id="CompanyDetailsStyles__StyledCompanySocials-sc-29dc4d61-2"]{content:"fXQyuL,"}/*!sc*/ @media (max-width:calc(604px - 1px)){.fApuTk{display:none;}}/*!sc*/ data-styled.g24[id="DigitalOceanStyles__StyledText-sc-a8278400-0"]{content:"fApuTk,"}/*!sc*/ .eUPtCH{color:#0069ff;display:inline-flex;}/*!sc*/ data-styled.g25[id="DigitalOceanStyles__StyledLogo-sc-a8278400-1"]{content:"eUPtCH,"}/*!sc*/ .iRpprC{isolation:isolate;position:sticky;top:0;z-index:1000;}/*!sc*/ .iRpprC header{z-index:1000;}/*!sc*/ data-styled.g26[id="HeaderStyles__StyledHeader-sc-2183282b-0"]{content:"iRpprC,"}/*!sc*/ .cYiDET{display:flex;gap:8px;list-style-type:none;padding:0;white-space:nowrap;}/*!sc*/ @media (max-width:calc(768px - 1px)){.cYiDET{gap:16px;}}/*!sc*/ @media (max-width:calc(768px - 1px)){.cYiDET >li:first-child>a,.cYiDET >li:first-child>button{box-shadow:0 0 0 1px #4D5B7C;color:#000C2A;}.cYiDET >li:first-child>a:hover,.cYiDET >li:first-child>button:hover{background-color:transparent;}}/*!sc*/ @media (max-width:calc(1024px - 1px)){.cYiDET >li{flex-basis:0;flex-grow:1;}.cYiDET >li >a,.cYiDET >li >button{text-align:center;width:100%;}}/*!sc*/ .cYiDET button{align-items:center;display:flex;gap:2px;}/*!sc*/ .cYiDET button svg{flex-shrink:0;}/*!sc*/ data-styled.g27[id="HeaderStyles__StyledCTALinks-sc-2183282b-1"]{content:"cYiDET,"}/*!sc*/ .icaRFe{position:relative;}/*!sc*/ .icaRFe >button,.icaRFe >a{justify-content:center;width:100%;}/*!sc*/ .icaRFe >button >svg,.icaRFe >a >svg{transition:transform 300ms ease-in-out;}/*!sc*/ @media (max-width:calc(768px - 1px)){.icaRFe:first-child >ul{left:0;right:initial;}.icaRFe:first-child >ul button{box-shadow:none;}.icaRFe:first-child >ul a{box-shadow:none;}}/*!sc*/ data-styled.g28[id="HeaderStyles__StyledCommunityCTA-sc-2183282b-2"]{content:"icaRFe,"}/*!sc*/ .eLrcFE:hover{background-color:#EFF2FB;border-radius:8px;}/*!sc*/ data-styled.g32[id="ProfileStyles__StyledProfileLink-sc-ca52d662-1"]{content:"eLrcFE,"}/*!sc*/ *,*::before,*::after{box-sizing:border-box;}/*!sc*/ *{margin:0;}/*!sc*/ html,body{font-family:'__Inter_1fc7a2',sans-serif;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;min-height:100vh;padding:0;}/*!sc*/ @media (prefers-reduced-motion){html,body{animation:none!important;}}/*!sc*/ a{color:inherit;text-decoration:none;}/*!sc*/ input,button,textarea,select{font:inherit;}/*!sc*/ img,picture,video,canvas,svg{display:block;max-width:100%;}/*!sc*/ button{background:transparent;border:0;cursor:pointer;}/*!sc*/ input,textarea{font:inherit;}/*!sc*/ input::placeholder,textarea::placeholder{opacity:1;}/*!sc*/ data-styled.g37[id="sc-global-btwYbO1"]{content:"sc-global-btwYbO1,"}/*!sc*/ .gxPNxu{align-items:center;display:inline-flex;gap:8px;line-height:1.5;position:relative;text-decoration:none;}/*!sc*/ .gxPNxu::after{background:currentColor;bottom:2px;content:'';height:1.5px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 0;transition:transform 300ms ease-in-out;width:100%;}/*!sc*/ .gxPNxu path{transition:transform 300ms ease-in-out;}/*!sc*/ .gxPNxu path:nth-child(1){transform:translateX(-5px);}/*!sc*/ .gxPNxu path:nth-child(2){transform:scaleX(0.6333333333);transform-origin:0 0;}/*!sc*/ .gxPNxu:hover::after,.gxPNxu:focus::after{transform:scaleX(1);}/*!sc*/ .gxPNxu:hover path:nth-child(1),.gxPNxu:focus path:nth-child(1){transform:translateX(0);}/*!sc*/ .gxPNxu:hover path:nth-child(2),.gxPNxu:focus path:nth-child(2){transform:scaleX(1);}/*!sc*/ .gxPNxu svg{flex-shrink:0;height:12px;width:18px;}/*!sc*/ data-styled.g38[id="LinkTextstyles-sc-jz3jcd-0"]{content:"gxPNxu,"}/*!sc*/ .iDUbLq{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:500;}/*!sc*/ .liuhbD{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}/*!sc*/ .kYYRis{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:500;}/*!sc*/ .RRfqP{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:700;}/*!sc*/ .dUkcXP{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:500;}/*!sc*/ .kLhCbB{margin:0;color:#4D5B7C;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/ .dJqBXQ{margin:0;color:#4D5B7C;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:500;}/*!sc*/ .cvZqkW{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:600;}/*!sc*/ .saphT{margin:0;color:#4D5B7C;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:400;}/*!sc*/ .mOScw{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:600;}/*!sc*/ .ikXVrB{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:700;}/*!sc*/ .juQGol{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/ .fmHvBz{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;letter-spacing:0;line-height:20px;font-weight:400;}/*!sc*/ .dHgDVk{margin:0;font-family:'__Epilogue_61966b',sans-serif;font-size:24px;letter-spacing:0;line-height:32px;font-weight:700;}/*!sc*/ .hXZsjT{margin:0;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:600;}/*!sc*/ .fRmROg{margin:0;color:#000C2A;font-family:'__Epilogue_61966b',sans-serif;font-size:20px;letter-spacing:0;line-height:28px;font-weight:700;}/*!sc*/ .hHKElO{margin:0;color:#4D5B7C;font-family:'__Inter_1fc7a2',sans-serif;font-size:12px;letter-spacing:0;line-height:18px;font-weight:400;}/*!sc*/ .fcsSE{margin:0;font-family:'__Epilogue_61966b',sans-serif;font-size:28px;letter-spacing:0;line-height:36px;font-weight:700;}/*!sc*/ @media (min-width: 768px){.fcsSE{font-size:36px;letter-spacing:-1px;line-height:48px;}}/*!sc*/ .Phplo{margin:0;color:#FFF;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;letter-spacing:0;line-height:24px;font-weight:400;}/*!sc*/ .hxQDjp{margin:0;color:#000C2A;font-family:'__Inter_1fc7a2',sans-serif;font-size:18px;letter-spacing:0;line-height:26px;font-weight:700;}/*!sc*/ data-styled.g39[id="Typographystyles-sc-o7qsl9-0"]{content:"iDUbLq,liuhbD,kYYRis,RRfqP,dUkcXP,kLhCbB,dJqBXQ,cvZqkW,saphT,mOScw,ikXVrB,juQGol,fmHvBz,dHgDVk,hXZsjT,fRmROg,hHKElO,fcsSE,Phplo,hxQDjp,"}/*!sc*/ .hsLsNq{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;color:#4D5B7C;font-weight:500;padding:8px 16px;transition:color 300ms ease-in-out,background-color 300ms ease-in-out;}/*!sc*/ .hsLsNq:hover{color:#000C2A;background-color:#EFF2FB;}/*!sc*/ .hsLsNq:focus-visible{outline-color:#000C2A;}/*!sc*/ .hsLsNq:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .crNCzT{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;background-color:#0069FF;color:#FFF;font-weight:500;padding:8px 16px;transition:background 300ms ease-in-out;}/*!sc*/ .crNCzT:hover{background-color:#1433D6;}/*!sc*/ .crNCzT:focus-visible{outline-color:#1433D6;}/*!sc*/ .crNCzT:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .gmYUxJ{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;background-color:transparent;box-shadow:inset 0px 0px 0px 1px #4D5B7C;color:#000C2A;transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/ .gmYUxJ:hover{box-shadow:none;background-color:#1433D6;color:#FFF;}/*!sc*/ .gmYUxJ:focus-visible{box-shadow:none;background-color:#1433D6;color:#FFF;outline-color:#1433D6;}/*!sc*/ .gmYUxJ:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .hPCZJz{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;background-color:#0069FF;color:#FFF;transition:background 300ms ease-in-out;}/*!sc*/ .hPCZJz:hover{background-color:#1433D6;}/*!sc*/ .hPCZJz:focus-visible{background-color:#1433D6;outline-color:#1433D6;}/*!sc*/ .hPCZJz:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .jUFun{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;background-color:#FFF;color:#000C2A;transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/ .jUFun:hover{background-color:#1433D6;color:#FFF;}/*!sc*/ .jUFun:focus-visible{background-color:#1433D6;color:#FFF;outline-color:#1433D6;}/*!sc*/ .jUFun:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .kNhxtA{cursor:pointer;display:inline-block;font-weight:600;border-radius:32px;font-size:16px;line-height:24px;padding:8px 24px;background-color:#1433D6;color:#FFF;transition:background 300ms ease-in-out;}/*!sc*/ .kNhxtA:hover{background:#000C79;}/*!sc*/ .kNhxtA:focus-visible{outline-color:#1433D6;}/*!sc*/ .kNhxtA:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ data-styled.g50[id="Buttonstyles-sc-hznqte-1"]{content:"hsLsNq,crNCzT,gmYUxJ,hPCZJz,jUFun,kNhxtA,"}/*!sc*/ .dBrtIt{display:grid;gap:24px;grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/ @media (min-width: 768px){.dBrtIt{gap:32px;}}/*!sc*/ .fdCJri{display:grid;gap:24px;grid-template-columns:repeat(6,minmax(0,1fr));}/*!sc*/ @media (min-width: 768px){.fdCJri{gap:32px;}}/*!sc*/ .cMcSha{display:grid;gap:8px;grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/ @media (min-width: 768px){.cMcSha{gap:8px;}}/*!sc*/ .blGhge{display:grid;gap:16px;grid-template-columns:repeat(1,minmax(0,1fr));}/*!sc*/ @media (min-width: 768px){.blGhge{gap:16px;}}/*!sc*/ .gBRUmy{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));}/*!sc*/ @media (min-width: 768px){.gBRUmy{gap:32px;}}/*!sc*/ data-styled.g55[id="Gridstyles-sc-isu2n3-0"]{content:"dBrtIt,fdCJri,cMcSha,blGhge,gBRUmy,"}/*!sc*/ .kvHGYa{height:100%;}/*!sc*/ data-styled.g56[id="CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0"]{content:"kvHGYa,"}/*!sc*/ .kFtKEy{border-radius:16px;background-color:#1433D6;color:#FFF;height:100%;overflow:hidden;padding:24px 16px 0px;position:relative;text-align:center;}/*!sc*/ @media (min-width: 768px){.kFtKEy{padding:64px 24px 80px;}}/*!sc*/ .deOheg{border-radius:16px;background-color:#B5F6FF;color:#000C2A;height:100%;overflow:hidden;padding:24px 16px 0px;position:relative;text-align:center;}/*!sc*/ @media (min-width: 768px){.deOheg{padding:64px 24px 80px;}}/*!sc*/ data-styled.g57[id="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1"]{content:"kFtKEy,deOheg,"}/*!sc*/ .kyDnDR{margin:0px -16px;}/*!sc*/ @media (min-width: 768px){.kyDnDR{inset:0;margin:0;position:absolute;}}/*!sc*/ .kyDnDR img{height:auto;width:100%;}/*!sc*/ @media (min-width: 768px){.kyDnDR img{height:100%;object-fit:cover;position:absolute;}}/*!sc*/ data-styled.g58[id="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2"]{content:"kyDnDR,"}/*!sc*/ .idAioI{display:flex;flex-direction:column;gap:8px;}/*!sc*/ data-styled.g59[id="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3"]{content:"idAioI,"}/*!sc*/ .bVMeVd{display:flex;flex-direction:column;gap:40px;margin:0 auto;max-width:416px;position:relative;z-index:1;}/*!sc*/ data-styled.g60[id="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4"]{content:"bVMeVd,"}/*!sc*/ .nQErm{isolation:isolate;position:relative;}/*!sc*/ data-styled.g66[id="Sectionstyles__StyledSection-sc-4l5hhw-0"]{content:"nQErm,"}/*!sc*/ .hAqGAc{--k-padding:80px;background-color:#F9FAFE;padding:var(--k-padding) 0;}/*!sc*/ @media (min-width: 768px){.hAqGAc{--k-padding:128px;}}/*!sc*/ data-styled.g67[id="Sectionstyles__StyledSectionInner-sc-4l5hhw-1"]{content:"hAqGAc,"}/*!sc*/ .gSYjjt{align-items:center;background-color:#E3E8F4;border-radius:6px;color:#4D5B7C;display:inline-flex;font-size:14px;font-weight:500;gap:4px;line-height:20px;padding:4px 8px;transition:background-color 300ms ease-in-out,color 300ms ease-in-out;cursor:pointer;}/*!sc*/ .gSYjjt svg{flex-shrink:0;}/*!sc*/ .gSYjjt:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px;}/*!sc*/ .gSYjjt:hover{background-color:#0069FF;color:#FFF;}/*!sc*/ .gSYjjt:focus-visible{background-color:#0069FF;color:#FFF;outline-color:#0069FF;}/*!sc*/ data-styled.g68[id="Tagstyles-sc-ohbvtg-0"]{content:"gSYjjt,"}/*!sc*/ .kQRSde{background-color:#FFF;position:relative;}/*!sc*/ .kQRSde::after{background-color:#E3E8F4;bottom:0;content:'';height:1px;left:0;pointer-events:none;position:absolute;width:100%;}/*!sc*/ data-styled.g69[id="Headerstyles__StyledHeader-sc-9ucsot-0"]{content:"kQRSde,"}/*!sc*/ .khIPJI{align-items:center;display:flex;gap:16px;margin:0 auto;max-width:1360px;padding:16px 24px;}/*!sc*/ @media (min-width: 768px){.khIPJI{gap:24px;}}/*!sc*/ data-styled.g70[id="Headerstyles__StyledHeaderContainer-sc-9ucsot-1"]{content:"khIPJI,"}/*!sc*/ .kjXNsT{line-height:0;margin-right:auto;}/*!sc*/ data-styled.g71[id="Headerstyles__StyledHeaderLogo-sc-9ucsot-2"]{content:"kjXNsT,"}/*!sc*/ .jLXUXx{color:#4D5B7C;height:32px;padding:0;width:32px;}/*!sc*/ @media (min-width: 1024px){.jLXUXx{display:none;}}/*!sc*/ data-styled.g72[id="Headerstyles__StyledHeaderToggle-sc-9ucsot-3"]{content:"jLXUXx,"}/*!sc*/ .ggJDyn{display:none;}/*!sc*/ @media (min-width: 768px){.ggJDyn{display:block;margin-left:auto;}}/*!sc*/ data-styled.g74[id="Headerstyles__StyledHeaderContent-sc-9ucsot-5"]{content:"ggJDyn,"}/*!sc*/ .eIcvZY{background-color:#D6DCEA;border-radius:999px;display:none;height:24px;width:1.5px;}/*!sc*/ .Headerstyles__StyledHeaderUtilities-sc-9ucsot-6~.eIcvZY{display:block;}/*!sc*/ @media (min-width: 1024px){.Headerstyles__StyledHeaderUtilities-sc-9ucsot-6~.eIcvZY{display:none;}}/*!sc*/ @media (min-width: 768px){.eIcvZY{display:block;}}/*!sc*/ @media (min-width: 1024px){.eIcvZY{display:none;}}/*!sc*/ data-styled.g76[id="Headerstyles__StyledDivider-sc-9ucsot-7"]{content:"eIcvZY,"}/*!sc*/ .iiefHi{display:flex;flex-direction:column;gap:16px;}/*!sc*/ data-styled.g77[id="Cardsstyles__StyledCardsContainer-sc-ebft8b-0"]{content:"iiefHi,"}/*!sc*/ .kcLBmQ{display:flex;flex-direction:column;gap:16px;list-style-type:none;margin:0;padding:0;}/*!sc*/ data-styled.g78[id="Cardsstyles__StyledCards-sc-ebft8b-1"]{content:"kcLBmQ,"}/*!sc*/ .kRVMJy{border-radius:16px;box-shadow:inset 0px 0px 0px 1px rgba(17, 25, 46, 0.1);display:flex;flex-direction:column;gap:8px;padding:16px;background-color:#B5F6FF;}/*!sc*/ .kRVMJy a{align-items:center;display:inline-flex;gap:8px;}/*!sc*/ .kRVMJy a:hover{color:#000C2A;}/*!sc*/ .kEwFMa{border-radius:16px;box-shadow:inset 0px 0px 0px 1px rgba(17, 25, 46, 0.1);display:flex;flex-direction:column;gap:8px;padding:16px;background-color:#F9FAFE;}/*!sc*/ .kEwFMa a{align-items:center;display:inline-flex;gap:8px;}/*!sc*/ .kEwFMa a:hover{color:#000C2A;}/*!sc*/ .jNGEtR{border-radius:16px;box-shadow:inset 0px 0px 0px 1px rgba(17, 25, 46, 0.1);display:flex;flex-direction:column;gap:8px;padding:16px;background-color:#FFEFB5;}/*!sc*/ .jNGEtR a{align-items:center;display:inline-flex;gap:8px;}/*!sc*/ .jNGEtR a:hover{color:#000C2A;}/*!sc*/ data-styled.g79[id="Cardsstyles__StyledCard-sc-ebft8b-2"]{content:"kRVMJy,kEwFMa,jNGEtR,"}/*!sc*/ .cJmNMu{background-color:#F9FAFE;display:flex;flex-direction:column;flex-shrink:0;gap:16px;padding:24px 8px;width:100%;}/*!sc*/ @media (min-width: 768px){.cJmNMu{border:1px solid rgba(17, 25, 46, 0.1);border-radius:24px;padding:40px;}}/*!sc*/ @media (min-width: 1024px){.cJmNMu{margin-right:24px;max-width:384px;}}/*!sc*/ .cJmNMu >p{padding-left:16px;}/*!sc*/ .cJmNMu a{border-radius:16px;display:block;padding:4px 16px;}/*!sc*/ @media (min-width: 768px){.cJmNMu a{padding:16px;}}/*!sc*/ .cJmNMu a:hover{background-color:#EFF2FB;}/*!sc*/ .cJmNMu >ul{list-style-type:none;margin:0;padding:0;}/*!sc*/ @media (min-width: 768px){.cJmNMu >ul{display:grid;gap:0 32px;grid-template-columns:repeat(2,minmax(0,1fr));}}/*!sc*/ @media (min-width: 1024px){.cJmNMu >ul{display:block;}}/*!sc*/ data-styled.g80[id="Featurestyles__StyledFeature-sc-1xznbxx-0"]{content:"cJmNMu,"}/*!sc*/ .gKuGph{align-items:center;display:inline-flex;gap:8px;}/*!sc*/ @media (min-width: 768px){.gKuGph{font-size:18px;line-height:26px;}}/*!sc*/ .gKuGph svg{flex-shrink:0;height:16px;width:16px;}/*!sc*/ data-styled.g81[id="Featurestyles__StyledFeatureTitle-sc-1xznbxx-1"]{content:"gKuGph,"}/*!sc*/ .cIrmJV{display:none;}/*!sc*/ @media (min-width: 768px){.cIrmJV{display:block;}}/*!sc*/ data-styled.g82[id="Featurestyles__StyledFeatureDescription-sc-1xznbxx-2"]{content:"cIrmJV,"}/*!sc*/ .lhzoCV{display:flex;flex-direction:column;gap:16px;}/*!sc*/ data-styled.g83[id="Liststyles__StyledListContainer-sc-1elshwh-0"]{content:"lhzoCV,"}/*!sc*/ .gvoncB{display:flex;flex-direction:column;gap:8px;list-style-type:none;margin:0;padding:0;}/*!sc*/ .gvoncB a{align-items:center;display:inline-flex;gap:8px;}/*!sc*/ .gvoncB a:hover{color:#000C2A;}/*!sc*/ data-styled.g84[id="Liststyles__StyledList-sc-1elshwh-1"]{content:"gvoncB,"}/*!sc*/ .fhYyBy{display:flex;flex-direction:column;gap:16px;}/*!sc*/ data-styled.g85[id="Tagsstyles__StyledTagsContainer-sc-1bfvx6z-0"]{content:"fhYyBy,"}/*!sc*/ .imkYwE{display:flex;flex-direction:column;gap:32px;list-style-type:none;margin:0;padding:0;}/*!sc*/ data-styled.g86[id="Tagsstyles__StyledTagsList-sc-1bfvx6z-1"]{content:"imkYwE,"}/*!sc*/ .bEsgRk{display:flex;flex-direction:column;gap:16px;list-style-type:none;margin:0;padding:0;}/*!sc*/ data-styled.g87[id="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2"]{content:"bEsgRk,"}/*!sc*/ .ilzDgo{display:flex;flex-direction:column;gap:8px;}/*!sc*/ data-styled.g89[id="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4"]{content:"ilzDgo,"}/*!sc*/ .kZNQIH{display:flex;flex-wrap:wrap;gap:8px;list-style-type:none;margin:0;padding:0;}/*!sc*/ data-styled.g90[id="Tagsstyles__StyledTags-sc-1bfvx6z-5"]{content:"kZNQIH,"}/*!sc*/ .cpPLSu{background-color:#FFF;display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1360px;padding:0;padding-bottom:24px;width:100%;}/*!sc*/ @media (min-width: 768px){.cpPLSu{flex-flow:row wrap;gap:40px;padding:32px 24px 56px;}}/*!sc*/ @media (min-width: 1024px){.cpPLSu{background-color:transparent;flex-flow:row;padding:24px;}}/*!sc*/ data-styled.g91[id="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0"]{content:"cpPLSu,"}/*!sc*/ .hJbnLp{display:none;left:0;max-height:calc(100dvh - 64px);overflow:auto;position:absolute;top:0;width:100%;z-index:100;}/*!sc*/ @media (min-width: 1024px){.hJbnLp{clip-path:polygon(0 0,100% 0,100% 0%,0 0%);display:block;height:auto;opacity:0;top:100%;transition:opacity 300ms ease-in-out 300ms;}}/*!sc*/ data-styled.g92[id="Dropdownstyles__StyledDropdown-sc-16wobc6-1"]{content:"hJbnLp,"}/*!sc*/ .ghVuUg{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;gap:32px;list-style-type:none;margin:0;padding:0;}/*!sc*/ @media (min-width: 1024px){.ghVuUg{flex-basis:0;}}/*!sc*/ data-styled.g93[id="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2"]{content:"ghVuUg,"}/*!sc*/ .gmoCMg{display:flex;flex-direction:column;flex-grow:1;gap:32px;list-style-type:none;margin:0;padding:0 24px;}/*!sc*/ .gmoCMg:first-child{padding:24px;}/*!sc*/ @media (min-width: 768px){.gmoCMg:first-child{padding:0 56px;}.gmoCMg:first-child .Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2{flex-basis:calc(50% - 32px);}}/*!sc*/ @media (min-width: 1024px){.gmoCMg:first-child{padding:16px 0;}}/*!sc*/ @media (min-width: 768px){.gmoCMg{flex-flow:row wrap;padding:0 40px;}}/*!sc*/ @media (min-width: 1024px){.gmoCMg{flex-wrap:nowrap;padding:40px 0;}}/*!sc*/ data-styled.g94[id="Dropdownstyles__StyledDropdownColumns-sc-16wobc6-3"]{content:"gmoCMg,"}/*!sc*/ .iaVpsa{border-top:1px solid #E3E8F4;display:flex;flex-direction:column;text-align:center;}/*!sc*/ @media (min-width: 768px){.iaVpsa{flex-direction:row;}}/*!sc*/ data-styled.g95[id="Dropdownstyles__StyledDropdownCTAs-sc-16wobc6-4"]{content:"iaVpsa,"}/*!sc*/ .bia-dMd{flex-basis:0;flex-grow:1;font-weight:600;justify-content:center;padding:12px;background:#FFF;color:#0069FF;}/*!sc*/ .bia-dMd >span{position:relative;}/*!sc*/ .bia-dMd >span::after{background:currentColor;bottom:2px;content:'';height:1.5px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 0;transition:transform 300ms ease-in-out;width:calc(100% + 8px + 18px);}/*!sc*/ .bia-dMd:hover >span::after{transform:scaleX(1);}/*!sc*/ .bia-dMd::after{display:none;}/*!sc*/ data-styled.g96[id="Dropdownstyles__StyledDropdownCTA-sc-16wobc6-5"]{content:"bia-dMd,"}/*!sc*/ .iNeWsG{flex-grow:1;}/*!sc*/ @media screen and (max-width:calc(1024px - 1px)){.iNeWsG{background-color:#FFF;display:none;left:0;padding:24px 24px 40px;position:absolute;top:100%;width:100%;}}/*!sc*/ data-styled.g97[id="Navigationstyles__StyledNavigation-sc-16d688r-0"]{content:"iNeWsG,"}/*!sc*/ .eurNaw{display:flex;flex-direction:column;gap:40px;}/*!sc*/ @media (min-width: 1024px){.eurNaw{align-items:center;flex-direction:row;gap:0;}}/*!sc*/ data-styled.g98[id="Navigationstyles__StyledNavigationContainer-sc-16d688r-1"]{content:"eurNaw,"}/*!sc*/ .lgNUwG{display:flex;flex-direction:column;list-style-type:none;margin:0;padding:0;}/*!sc*/ @media (min-width: 1024px){.lgNUwG{align-items:center;flex-direction:row;flex-grow:1;}}/*!sc*/ data-styled.g99[id="Navigationstyles__StyledNavigationList-sc-16d688r-2"]{content:"lgNUwG,"}/*!sc*/ .jIrYZj{border-bottom:1px solid #A9B3CA;}/*!sc*/ @media (min-width: 1024px){.jIrYZj{border-bottom:0;}.jIrYZj::after{background-color:rgba(0, 0, 0, 0.1);content:'';height:calc(100dvh - 64px);left:0;opacity:0;pointer-events:none;position:absolute;top:100%;transition:opacity 300ms ease-in-out;width:100%;}.jIrYZj >a,.jIrYZj >button{transition:background-color 300ms ease-in-out,color 300ms ease-in-out;}.jIrYZj svg{flex-shrink:0;}@media (scripting:none){.jIrYZj .Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0{background-color:#FFF;}.jIrYZj:hover .Dropdownstyles__StyledDropdown-sc-16wobc6-1,.jIrYZj:focus-within .Dropdownstyles__StyledDropdown-sc-16wobc6-1{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:1;}.jIrYZj:hover >a,.jIrYZj:focus-within >a,.jIrYZj:hover >button,.jIrYZj:focus-within >button{background-color:#EFF2FB;color:#000C2A;}.jIrYZj:hover >a svg,.jIrYZj:focus-within >a svg,.jIrYZj:hover >button svg,.jIrYZj:focus-within >button svg{transform:rotate(180deg);}}}/*!sc*/ @media (min-width: 1024px){.jIrYZj:first-child{margin-left:auto;}}/*!sc*/ @media (min-width: 1024px){.jIrYZj:last-child{margin-right:auto;}}/*!sc*/ .jIrYZj >a,.jIrYZj >button{align-items:center;border-radius:999px;color:#000C2A;display:flex;gap:2px;justify-content:space-between;padding:8px 0 12px;position:relative;width:100%;}/*!sc*/ @media (min-width: 1024px){.jIrYZj >a,.jIrYZj >button{color:#4D5B7C;justify-content:flex-start;padding:8px 16px;width:auto;}}/*!sc*/ .jIrYZj >a::before,.jIrYZj >button::before{content:'';height:calc(100% + 16px);left:0;position:absolute;top:0;width:100%;}/*!sc*/ .jIrYZj >a svg,.jIrYZj >button svg{transform:rotate(-90deg);transition:transform 300ms ease-in-out;}/*!sc*/ @media (min-width: 1024px){.jIrYZj >a svg,.jIrYZj >button svg{transform:rotate(0);}}/*!sc*/ .kghgPX{border-bottom:1px solid #A9B3CA;}/*!sc*/ @media (min-width: 1024px){.kghgPX{border-bottom:0;}.kghgPX >a,.kghgPX >button{transition:background-color 300ms ease-in-out,color 300ms ease-in-out;}.kghgPX svg{flex-shrink:0;}@media (scripting:none){.kghgPX .Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0{background-color:#FFF;}.kghgPX:hover .Dropdownstyles__StyledDropdown-sc-16wobc6-1,.kghgPX:focus-within .Dropdownstyles__StyledDropdown-sc-16wobc6-1{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:1;}.kghgPX:hover >a,.kghgPX:focus-within >a,.kghgPX:hover >button,.kghgPX:focus-within >button{background-color:#EFF2FB;color:#000C2A;}.kghgPX:hover >a svg,.kghgPX:focus-within >a svg,.kghgPX:hover >button svg,.kghgPX:focus-within >button svg{transform:rotate(180deg);}}}/*!sc*/ @media (min-width: 1024px){.kghgPX:first-child{margin-left:auto;}}/*!sc*/ @media (min-width: 1024px){.kghgPX:last-child{margin-right:auto;}}/*!sc*/ .kghgPX >a,.kghgPX >button{align-items:center;border-radius:999px;color:#000C2A;display:flex;gap:2px;justify-content:space-between;padding:8px 0 12px;position:relative;width:100%;}/*!sc*/ @media (min-width: 1024px){.kghgPX >a,.kghgPX >button{color:#4D5B7C;justify-content:flex-start;padding:8px 16px;width:auto;}}/*!sc*/ .kghgPX >a::before,.kghgPX >button::before{content:'';height:calc(100% + 16px);left:0;position:absolute;top:0;width:100%;}/*!sc*/ .kghgPX >a svg,.kghgPX >button svg{transform:rotate(-90deg);transition:transform 300ms ease-in-out;}/*!sc*/ @media (min-width: 1024px){.kghgPX >a svg,.kghgPX >button svg{transform:rotate(0);}}/*!sc*/ data-styled.g100[id="Navigationstyles__StyledNavigationItem-sc-16d688r-3"]{content:"jIrYZj,kghgPX,"}/*!sc*/ @media (min-width: 1024px){.jFjgeh{display:none;}}/*!sc*/ .jFjgeh >ul{display:grid;gap:16px;grid-template-columns:repeat(1,minmax(0,1fr));list-style-type:none;margin:0;padding:0;}/*!sc*/ @media (min-width: 768px){.jFjgeh >ul{grid-template-columns:repeat(2,minmax(0,1fr));}}/*!sc*/ .jFjgeh a,.jFjgeh button{text-align:center;width:100%;}/*!sc*/ data-styled.g101[id="Navigationstyles__StyledNavigationLinks-sc-16d688r-4"]{content:"jFjgeh,"}/*!sc*/ @media (min-width: 768px){.eYHulT{display:none;}}/*!sc*/ data-styled.g102[id="Navigationstyles__StyledNavigationContent-sc-16d688r-5"]{content:"eYHulT,"}/*!sc*/ .ijxMOa{display:none;}/*!sc*/ @media (min-width: 1024px){.ijxMOa{background-color:#FFF;display:block;height:0;left:0;position:absolute;top:100%;transition:height 300ms ease-in-out;width:100%;}@media (prefers-reduced-motion){.ijxMOa{transition:none;}}}/*!sc*/ data-styled.g103[id="Navigationstyles__StyledNavigationBackground-sc-16d688r-6"]{content:"ijxMOa,"}/*!sc*/ .bSFiWy{background-color:#FFF;position:relative;}/*!sc*/ .bSFiWy::after{background-color:#E3E8F4;bottom:0;content:'';height:1px;left:0;position:absolute;width:100%;}/*!sc*/ data-styled.g104[id="SubNavigationstyles__StyledSubNavigation-sc-k2wuim-0"]{content:"bSFiWy,"}/*!sc*/ .bSYhcw{align-items:center;display:flex;gap:8px;list-style-type:none;margin:0 auto;max-width:1360px;overflow:scroll;overflow-y:hidden;padding:12px 24px;scrollbar-width:none;}/*!sc*/ .bSYhcw::-webkit-scrollbar{display:none;}/*!sc*/ .bSYhcw >li:first-child{margin-left:auto;}/*!sc*/ data-styled.g105[id="SubNavigationstyles__StyledSubNavigationContainer-sc-k2wuim-1"]{content:"bSYhcw,"}/*!sc*/ .kA-diUc{color:#4D5B7C;}/*!sc*/ .kA-diUc a{align-items:center;border-radius:64px;display:flex;gap:8px;padding:8px 16px;transition:background-color 300ms ease-in-out,color 300ms ease-in-out;white-space:nowrap;width:max-content;}/*!sc*/ .kA-diUc a:hover{background-color:#1433D6;color:#FFF;}/*!sc*/ .kA-diUc a >svg{flex-shrink:0;}/*!sc*/ data-styled.g106[id="SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2"]{content:"kA-diUc,"}/*!sc*/ .bQTwvh{grid-column:span 1;}/*!sc*/ .kqcUUB{grid-column:span 6;}/*!sc*/ @media (min-width: 768px){.kqcUUB{grid-column:span 3;}}/*!sc*/ @media (min-width: 1024px){.kqcUUB{grid-column:span 2;}}/*!sc*/ .cheoSo{grid-column:span 2;}/*!sc*/ @media (min-width: 768px){.cheoSo{grid-column:span 1;}}/*!sc*/ data-styled.g114[id="GridItemstyles-sc-eu71zi-0"]{content:"bQTwvh,kqcUUB,cheoSo,"}/*!sc*/ .iepvyF{background:linear-gradient( #0069FF,#0069FF ) bottom repeat-x;background-size:1px 1px;color:#0069FF;position:relative;text-decoration:none;transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/ .iepvyF:hover,.iepvyF:focus{background-size:100% 100%;color:#FFF;}/*!sc*/ data-styled.g115[id="LinkInlinestyles-sc-18du0ds-0"]{content:"iepvyF,"}/*!sc*/ .jAevVa{background-color:#1433D6;display:none;padding:8px 0;visibility:hidden;}/*!sc*/ @media (min-width: 768px){.jAevVa{display:block;visibility:visible;}}/*!sc*/ data-styled.g135[id="TopBarstyles__StyledTopBar-sc-17n1n7p-0"]{content:"jAevVa,"}/*!sc*/ .hXYJJd{align-items:center;display:flex;gap:0 16px;line-height:0;margin:0 auto;max-width:1360px;padding:0 24px;}/*!sc*/ @media (min-width: 768px){.hXYJJd{justify-content:center;}}/*!sc*/ data-styled.g136[id="TopBarstyles__StyledTopBarContainer-sc-17n1n7p-1"]{content:"hXYJJd,"}/*!sc*/ .gNfbaK{display:flex;flex:1 1 auto;flex-direction:column;min-height:1.375em;overflow:hidden;position:relative;}/*!sc*/ data-styled.g137[id="TopBarstyles__StyledTopBarCTAs-sc-17n1n7p-2"]{content:"gNfbaK,"}/*!sc*/ .dQLKLT{display:none;list-style-type:none;margin:0;padding:0;}/*!sc*/ @media (min-width: 1024px){.dQLKLT{align-items:center;display:flex;flex:0 0 auto;gap:0 16px;}}/*!sc*/ .dQLKLT a{color:#EFF2FB;display:block;text-align:center;transition:color 300ms ease-in-out;}/*!sc*/ .dQLKLT a:hover{text-decoration:underline;text-underline-offset:2px;}/*!sc*/ data-styled.g138[id="TopBarstyles__StyledTopBarLinks-sc-17n1n7p-3"]{content:"dQLKLT,"}/*!sc*/ .eloHHI{margin:0 auto;width:100%;padding:0 24px;max-width:calc(1088px + 48px);}/*!sc*/ data-styled.g156[id="Containerstyles-sc-11hjsrs-0"]{content:"eloHHI,"}/*!sc*/ .kfTVTG{color:#4D5B7C;font-size:16px;position:relative;z-index:0;}/*!sc*/ .kfTVTG h1,.kfTVTG h2,.kfTVTG h3,.kfTVTG h4,.kfTVTG h5,.kfTVTG h6,.kfTVTG p{margin:1em 0;}/*!sc*/ .kfTVTG h1:first-child,.kfTVTG h2:first-child,.kfTVTG h3:first-child,.kfTVTG h4:first-child,.kfTVTG h5:first-child,.kfTVTG h6:first-child,.kfTVTG p:first-child{margin-top:0;}/*!sc*/ .kfTVTG h1:last-child,.kfTVTG h2:last-child,.kfTVTG h3:last-child,.kfTVTG h4:last-child,.kfTVTG h5:last-child,.kfTVTG h6:last-child,.kfTVTG p:last-child{margin-bottom:0;}/*!sc*/ .kfTVTG h1 a,.kfTVTG h2 a,.kfTVTG h3 a,.kfTVTG h4 a,.kfTVTG h5 a,.kfTVTG h6 a{background-size:0 0;color:inherit;text-decoration:none;}/*!sc*/ .kfTVTG h1 a:hover,.kfTVTG h1 a:focus,.kfTVTG h2 a:hover,.kfTVTG h2 a:focus,.kfTVTG h3 a:hover,.kfTVTG h3 a:focus,.kfTVTG h4 a:hover,.kfTVTG h4 a:focus,.kfTVTG h5 a:hover,.kfTVTG h5 a:focus,.kfTVTG h6 a:hover,.kfTVTG h6 a:focus{color:#000C2A;background-size:0 0;}/*!sc*/ .kfTVTG p{line-height:1.5;}/*!sc*/ @media only screen and (max-width: 375px){.kfTVTG p code{word-break:break-all;}}/*!sc*/ .kfTVTG ol,.kfTVTG ul{list-style-type:disc;margin-bottom:1.7em;padding-left:2.5em;}/*!sc*/ @media only screen and (max-width: 768px){.kfTVTG ol,.kfTVTG ul{list-style-position:inside;padding-left:0;}}/*!sc*/ .kfTVTG ol{list-style-type:decimal;}/*!sc*/ .kfTVTG a{background:linear-gradient(#0069FF, #0069FF) center bottom/100% 1px no-repeat;border-bottom:none;color:#0069FF;text-decoration:none;transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/ .kfTVTG a:hover,.kfTVTG a:focus{background:linear-gradient(#1433D6, #1433D6) center bottom/100% 100% no-repeat;color:#FFFFFF;}/*!sc*/ .kfTVTG a:hover code,.kfTVTG a:focus code{background:linear-gradient(#0069FF, #0069FF) center calc(100% - 0.2em + 0.5px)/100% 1px no-repeat,linear-gradient(#E3E8F4, #E3E8F4) center top/100% 0% no-repeat;color:#FFFFFF;}/*!sc*/ .kfTVTG a code{background:linear-gradient(#0069FF, #0069FF) center calc(100% - 0.2em + 0.5px)/100% 1px no-repeat,linear-gradient(#E3E8F4, #E3E8F4) center top/100% 100% no-repeat;transition:background 300ms ease-in-out,color 300ms ease-in-out;}/*!sc*/ .kfTVTG blockquote{border-left:4px solid #D6DCEA;color:#8A96B5;display:block;font-size:18px;margin:0 0 1.25em 1.25em;padding:0 0 0 1.5em;}/*!sc*/ .kfTVTG blockquote a{border-bottom:1px dotted #8A96B5;color:#8A96B5;}/*!sc*/ .kfTVTG blockquote a:hover,.kfTVTG blockquote a:focus{border-bottom-style:solid;}/*!sc*/ .kfTVTG img,.kfTVTG figure{border:solid 2px #E3E8F4;border-radius:16px;display:block;margin:1rem auto;max-width:100%;}/*!sc*/ .kfTVTG img[align=left]{float:unset;margin-left:0;}/*!sc*/ .kfTVTG img[align=right]{float:unset;margin-right:0;}/*!sc*/ .kfTVTG figure{overflow:hidden;padding:1rem;}/*!sc*/ .kfTVTG figure:has(img[align=left]){margin-left:0;width:fit-content;}/*!sc*/ .kfTVTG figure:has(img[align=right]){margin-right:0;width:fit-content;}/*!sc*/ .kfTVTG figure img{border:none;border-radius:0;margin:0 auto;}/*!sc*/ .kfTVTG figure figcaption{border-top:solid 1px #E3E8F4;background:#EFF2FB;font-size:0.9em;text-align:center;padding:1rem;margin:1rem -1rem -1rem;}/*!sc*/ .kfTVTG pre,.kfTVTG code{background-color:#E3E8F4;border-radius:0.5em;color:#24335A;font-size:0.875em;padding:0.2em;}/*!sc*/ .kfTVTG pre{background:#11192E;color:#F7F8FB;border-radius:1em;box-shadow:inset 0 0 0 0.125em rgba(17, 25, 46, 0.1);display:block;margin:1em 0;overflow:auto;overflow-wrap:normal;padding:1.5em;white-space:normal;word-wrap:normal;}/*!sc*/ .kfTVTG pre code{color:#F7F8FB;}/*!sc*/ .kfTVTG pre.prefixed code ol li::before{color:#F7F8FB;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li::before{border-right-color:rgba(247, 248, 251, 0.5);}/*!sc*/ .kfTVTG pre code{background:none;border-radius:0;color:inherit;font-size:1em;padding:0;white-space:pre;}/*!sc*/ .kfTVTG table{border-collapse:collapse;width:100%;}/*!sc*/ .kfTVTG table thead tr{border-bottom:1px dashed #D6DCEA;}/*!sc*/ .kfTVTG table thead tr th{color:#081B4B;font-weight:600;padding:16px 8px;}/*!sc*/ .kfTVTG table tbody tr{border-bottom:1px solid #D6DCEA;}/*!sc*/ .kfTVTG table tbody tr td{color:#24335A;padding:24px 8px;}/*!sc*/ .kfTVTG table th:first-child,.kfTVTG table td:first-child{padding-left:0;}/*!sc*/ .kfTVTG table th:last-child,.kfTVTG table td:last-child{padding-right:0;}/*!sc*/ .kfTVTG .youtube{display:block;height:auto;margin:1em auto;max-width:100%;}/*!sc*/ .kfTVTG .wistia{display:block;height:auto;margin:1em auto;max-width:100%;}/*!sc*/ .kfTVTG .vimeo{display:block;height:auto;margin:1em auto;max-width:100%;}/*!sc*/ .kfTVTG .rsvp{background:transparent;border:1px solid #0069FF;border-radius:3px;box-sizing:border-box;color:#0069FF;cursor:pointer;font-size:16px;font-weight:700;line-height:1;padding:8px 24px;transition:background 0.25s ease;}/*!sc*/ .kfTVTG .rsvp:disabled{border-color:#A9B3CA;color:#A9B3CA;cursor:not-allowed;}/*!sc*/ .kfTVTG .rsvp:not(:disabled):hover,.kfTVTG .rsvp:not(:disabled):focus{background:#C6E3FF;}/*!sc*/ .kfTVTG .terminal{background:transparent;border:1px solid #0069FF;border-radius:3px;box-sizing:border-box;color:#0069FF;cursor:pointer;font-size:16px;font-weight:700;line-height:1;padding:8px 24px;transition:background 0.25s ease;}/*!sc*/ .kfTVTG .terminal:disabled{border-color:#A9B3CA;color:#A9B3CA;cursor:not-allowed;}/*!sc*/ .kfTVTG .terminal:not(:disabled):hover,.kfTVTG .terminal:not(:disabled):focus{background:#C6E3FF;}/*!sc*/ .kfTVTG .columns{display:flex;flex-flow:row nowrap;margin:-1em;}/*!sc*/ @media only screen and (max-width: 768px){.kfTVTG .columns{flex-flow:row wrap;}}/*!sc*/ @media only screen and (max-width: 375px){.kfTVTG .columns{flex-flow:column;}}/*!sc*/ .kfTVTG .columns .column{flex-basis:100%;flex-grow:1;padding:1em;}/*!sc*/ @media only screen and (max-width: 768px){.kfTVTG .columns .column{flex-basis:auto;}}/*!sc*/ .kfTVTG details{background:#F9FAFE;border-radius:16px;padding:1em;margin:1em 0;}/*!sc*/ .kfTVTG details[open] summary{border-bottom:1px solid #E3E8F4;padding:0 1em 1em 0;margin:0 0 1em;}/*!sc*/ .kfTVTG details[open] summary::after{top:calc(50% - 3px);transform:translateY(-50%) rotate(225deg);}/*!sc*/ .kfTVTG details summary{cursor:pointer;list-style:none;padding:0 1em 0 0;position:relative;}/*!sc*/ .kfTVTG details summary::-webkit-details-marker,.kfTVTG details summary::marker{display:none;}/*!sc*/ .kfTVTG details summary::after{content:"";display:block;position:absolute;top:50%;right:4px;width:7px;height:7px;border:solid #8A96B5;border-width:0 2px 2px 0;transform:translateY(-50%) rotate(45deg);}/*!sc*/ .kfTVTG .twitter .twitter-tweet-rendered{margin:1rem auto;}/*!sc*/ .kfTVTG .twitter[align=left]{float:unset;}/*!sc*/ .kfTVTG .twitter[align=left] .twitter-tweet-rendered{margin-left:0;}/*!sc*/ .kfTVTG .twitter[align=right]{float:unset;}/*!sc*/ .kfTVTG .twitter[align=right] .twitter-tweet-rendered{margin-right:0;}/*!sc*/ .kfTVTG .instagram .instagram-media{margin:1rem auto!important;}/*!sc*/ .kfTVTG .instagram[align=left] .instagram-media{margin-left:0!important;}/*!sc*/ .kfTVTG .instagram[align=right] .instagram-media{margin-right:0!important;}/*!sc*/ .kfTVTG .slideshow{margin:0 auto;position:relative;overflow:hidden;}/*!sc*/ .kfTVTG .slideshow .action{background-color:hsla(0, 10%, 70%, 0.2);border:1px solid #666666;border-radius:50%;color:#666666;cursor:pointer;font-size:32px;height:30px;line-height:22px;position:absolute;text-align:center;top:50%;width:30px;z-index:10;}/*!sc*/ .kfTVTG .slideshow .action.left{left:10px;}/*!sc*/ .kfTVTG .slideshow .action.right{right:10px;}/*!sc*/ .kfTVTG .slideshow .action:hover{background-color:hsla(0, 10%, 70%, 0.1);border:1px solid #cccccc;color:#cccccc;}/*!sc*/ .kfTVTG .slideshow .slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;}/*!sc*/ .kfTVTG .slideshow .slides>img{align-items:center;display:flex;flex-shrink:0;font-size:100px;height:100%;justify-content:center;margin-right:50px;scroll-snap-align:start;position:relative;transform-origin:center center;transform:scale(1);transition:transform 0.5s;width:100%;}/*!sc*/ .kfTVTG .hash-anchor{border-bottom:none;color:#8A96B5;text-decoration:none;}/*!sc*/ .kfTVTG .hash-anchor:first-child{margin-right:0.5em;}/*!sc*/ .kfTVTG .hash-anchor:last-child{margin-left:0.5em;}/*!sc*/ .kfTVTG .hash-anchor:hover,.kfTVTG .hash-anchor:focus{color:#24335A;}/*!sc*/ .kfTVTG .hash-anchor::before{content:"#";}/*!sc*/ .kfTVTG mark{background:rgba(255, 192, 1, 0.3);border-radius:2px;color:inherit;display:inline;line-height:calc(1.4em + 1px);padding:2px 6px;}/*!sc*/ .kfTVTG mark mark{background:none;border-radius:initial;line-height:1.4em;padding:initial;}/*!sc*/ .kfTVTG pre code mark{background:#29334D;}/*!sc*/ .kfTVTG pre code mark mark{background:none;}/*!sc*/ .kfTVTG .callout{background-color:#C6E3FF;border-radius:16px;color:#1433D6;display:block;font-size:15px;line-height:1.5em;margin:0 0 1.5em;padding:1em 1.25em;position:relative;z-index:0;}/*!sc*/ .kfTVTG .callout>:first-child{margin-top:0;}/*!sc*/ .kfTVTG .callout>:last-child{margin-bottom:0;}/*!sc*/ .kfTVTG .callout .callout-label{background:rgba(0, 0, 0, 0.1);border-radius:16px 16px 0 0;font-size:15px;margin:-1em -1.25em 0;padding:0.75em 1.25em;text-align:center;}/*!sc*/ .kfTVTG .code-label:has(+ .code-toolbar),.kfTVTG .code-label:not([title=""]){background-color:#29334D;border-radius:1em 1em 0 0;color:#FFFFFF;display:flex;padding:0.75em 1.5em;justify-content:space-between;align-items:center;font-size:16px;position:relative;min-height:3.25em;z-index:2;}/*!sc*/ .kfTVTG .code-label:has(+ .code-toolbar)+pre,.kfTVTG .code-label:not([title=""])+pre{border-radius:0 0 1em 1em;margin:0 0 1em;}/*!sc*/ .kfTVTG .code-label:has(+ .code-toolbar)+.code-toolbar,.kfTVTG .code-label:not([title=""])+.code-toolbar{margin:0 0 1em;}/*!sc*/ .kfTVTG .code-label:has(+ .code-toolbar)+.code-toolbar pre,.kfTVTG .code-label:not([title=""])+.code-toolbar pre{border-radius:0 0 1em 1em;}/*!sc*/ .kfTVTG pre.prefixed code{white-space:normal;}/*!sc*/ .kfTVTG pre.prefixed code ol{list-style:none;margin:0;padding:0;}/*!sc*/ .kfTVTG pre.prefixed code ol li{margin:0;padding:0;white-space:pre;}/*!sc*/ .kfTVTG pre.prefixed code ol li::before{content:attr(data-prefix);display:inline-block;margin:0 10px 0 5px;text-align:right;user-select:none;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li{margin:0 0 0 -5px;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li::before{border-right:1px solid rgba(255, 255, 255, 0.5);padding-right:5px;text-align:right;width:2ch;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+10)::before,.kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+10)~li::before{width:3ch;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+100)::before,.kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+100)~li::before{width:4ch;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+1000)::before,.kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+1000)~li::before{width:5ch;}/*!sc*/ .kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+10000)::before,.kfTVTG pre.prefixed.line_numbers code ol li:first-child:nth-last-child(n+10000)~li::before{width:6ch;}/*!sc*/ .kfTVTG pre[class*=language-]>code{background:transparent;}/*!sc*/ .kfTVTG pre[class*=language-]>code.language-css .token.string,.kfTVTG pre[class*=language-]>code.style .token.string{color:#F7F8FB;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.punctuation,.kfTVTG pre[class*=language-]>code .token.operator,.kfTVTG pre[class*=language-]>code .token.entity,.kfTVTG pre[class*=language-]>code .token.url{color:#F7F8FB;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.comment,.kfTVTG pre[class*=language-]>code .token.prolog,.kfTVTG pre[class*=language-]>code .token.doctype,.kfTVTG pre[class*=language-]>code .token.cdata{color:#F7F8FB;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.atrule,.kfTVTG pre[class*=language-]>code .token.property,.kfTVTG pre[class*=language-]>code .token.tag,.kfTVTG pre[class*=language-]>code .token.constant,.kfTVTG pre[class*=language-]>code .token.symbol,.kfTVTG pre[class*=language-]>code .token.deleted,.kfTVTG pre[class*=language-]>code .token.selector,.kfTVTG pre[class*=language-]>code .token.char,.kfTVTG pre[class*=language-]>code .token.builtin,.kfTVTG pre[class*=language-]>code .token.keyword,.kfTVTG pre[class*=language-]>code .token.inserted,.kfTVTG pre[class*=language-]>code .token.delimiter{color:#9FDDFF;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.boolean,.kfTVTG pre[class*=language-]>code .token.attr-name,.kfTVTG pre[class*=language-]>code .token.color,.kfTVTG pre[class*=language-]>code .token.string,.kfTVTG pre[class*=language-]>code .token.variable{color:#B1E490;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.attr-value,.kfTVTG pre[class*=language-]>code .token.function,.kfTVTG pre[class*=language-]>code .token.class-name{color:#FFAF8C;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.regex,.kfTVTG pre[class*=language-]>code .token.number,.kfTVTG pre[class*=language-]>code .token.important{color:#0BE1FF;}/*!sc*/ .kfTVTG pre[class*=language-]>code,.kfTVTG pre[class*=language-]>code .token{text-shadow:none;}/*!sc*/ .kfTVTG pre[class*=language-]>code.language-css .token.string,.kfTVTG pre[class*=language-]>code.style .token.string{background:none;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token{background:none;border-radius:0;display:inline;font-weight:normal;margin:0;padding:0;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.namespace{opacity:0.7;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.operator,.kfTVTG pre[class*=language-]>code .token.entity,.kfTVTG pre[class*=language-]>code .token.url{background:none;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.important,.kfTVTG pre[class*=language-]>code .token.bold{font-weight:bold;}/*!sc*/ .kfTVTG pre[class*=language-]>code .token.italic{font-style:italic;}/*!sc*/ .kfTVTG .code-toolbar{margin:1em 0;position:relative;}/*!sc*/ .kfTVTG .code-toolbar>pre{margin:0;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar{position:absolute;right:1.5em;top:-2.4em;z-index:3;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item{display:inline-block;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a{text-decoration:none;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>button{border:0;font:inherit;line-height:normal;overflow:visible;user-select:none;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button{background:#696FB0;border-radius:0.625em;color:#FFFFFF;cursor:pointer;line-height:1;padding:0.375em 0.5em;transition:color 0.25s,background 0.25s;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a span,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button span{color:#FFFFFF;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a:hover,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>a:focus,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button:hover,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button:focus{background:#40499B;color:#FFFFFF;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a:hover span,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>a:focus span,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button:hover span,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button:focus span{color:#FFFFFF;}/*!sc*/ .kfTVTG .code-toolbar>.toolbar>.toolbar-item>a,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>button,.kfTVTG .code-toolbar>.toolbar>.toolbar-item>span{font-size:0.9em;}/*!sc*/ .kfTVTG pre code .secondary-code-label{color:#9FDDFF;margin:0 0 4px;}/*!sc*/ .kfTVTG .table-wrapper{overflow-x:auto;width:100%;}/*!sc*/ .kfTVTG .image-compare{position:relative;}/*!sc*/ .kfTVTG .image-compare .image-left,.kfTVTG .image-compare .image-right{height:100%;object-fit:contain;position:absolute;width:100%;}/*!sc*/ .kfTVTG .image-compare .image-left{clip-path:polygon(0% 0%, var(--value) 0%, var(--value) 100%, 0% 100%);margin:0;}/*!sc*/ .kfTVTG .image-compare .image-right{clip-path:polygon(100% 0%, var(--value) 0%, var(--value) 100%, 100% 100%);margin:0;}/*!sc*/ .kfTVTG .image-compare .control-arrow{width:30px;height:30px;position:absolute;top:50%;left:calc(var(--value) - 13px);color:#ffffff;z-index:90;}/*!sc*/ .kfTVTG .image-compare .control{background-color:transparent;box-sizing:border-box;font-family:inherit;height:100%;outline:none;position:absolute;top:0;width:100%;z-index:100;}/*!sc*/ .kfTVTG .image-compare .control::-moz-range-thumb{background-color:#ffffff;border:none;cursor:ew-resize;height:100%;width:2px;}/*!sc*/ .kfTVTG .image-compare .control::-webkit-slider-thumb{background-color:#ffffff;border:none;cursor:ew-resize;height:100%;width:2px;}/*!sc*/ .kfTVTG .image-compare .control::-moz-range-track{background:transparent;background-size:100%;box-sizing:border-box;}/*!sc*/ .kfTVTG .image-compare .control::-webkit-slider-runnable-track{background:transparent;background-size:100%;box-sizing:border-box;height:100%;}/*!sc*/ .kfTVTG .image-compare .control,.kfTVTG .image-compare .control::-webkit-slider-runnable-track,.kfTVTG .image-compare .control::-webkit-slider-thumb{appearance:none;}/*!sc*/ .kfTVTG .callout.note{background-color:#D5F0C3;color:#000C2A;}/*!sc*/ .kfTVTG .callout.warning{background-color:#FFBAB5;color:#000C2A;}/*!sc*/ .kfTVTG .callout.info{background-color:#C6E3FF;color:#000C2A;}/*!sc*/ .kfTVTG .callout.draft{background-color:#EBBFEB;color:#000C2A;}/*!sc*/ .kfTVTG .code-label:has(+ .code-toolbar > pre[class*=environment-]),.kfTVTG .code-label:has(+ pre[class*=environment-]){background:#EFF2FB;color:#4D5B7C;}/*!sc*/ .kfTVTG pre[class*=environment-]>code.language-css .token.string,.kfTVTG pre[class*=environment-]>code.style .token.string{color:#11192E;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.punctuation,.kfTVTG pre[class*=environment-]>code .token.operator,.kfTVTG pre[class*=environment-]>code .token.entity,.kfTVTG pre[class*=environment-]>code .token.url{color:#11192E;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.comment,.kfTVTG pre[class*=environment-]>code .token.prolog,.kfTVTG pre[class*=environment-]>code .token.doctype,.kfTVTG pre[class*=environment-]>code .token.cdata{color:#11192E;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.atrule,.kfTVTG pre[class*=environment-]>code .token.property,.kfTVTG pre[class*=environment-]>code .token.tag,.kfTVTG pre[class*=environment-]>code .token.constant,.kfTVTG pre[class*=environment-]>code .token.symbol,.kfTVTG pre[class*=environment-]>code .token.deleted,.kfTVTG pre[class*=environment-]>code .token.selector,.kfTVTG pre[class*=environment-]>code .token.char,.kfTVTG pre[class*=environment-]>code .token.builtin,.kfTVTG pre[class*=environment-]>code .token.keyword,.kfTVTG pre[class*=environment-]>code .token.inserted,.kfTVTG pre[class*=environment-]>code .token.delimiter{color:#0F2FDA;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.boolean,.kfTVTG pre[class*=environment-]>code .token.attr-name,.kfTVTG pre[class*=environment-]>code .token.color,.kfTVTG pre[class*=environment-]>code .token.string,.kfTVTG pre[class*=environment-]>code .token.variable{color:#00573A;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.attr-value,.kfTVTG pre[class*=environment-]>code .token.function,.kfTVTG pre[class*=environment-]>code .token.class-name{color:#7300B9;}/*!sc*/ .kfTVTG pre[class*=environment-]>code .token.regex,.kfTVTG pre[class*=environment-]>code .token.number,.kfTVTG pre[class*=environment-]>code .token.important{color:#00507D;}/*!sc*/ .kfTVTG pre[class*=environment-] .secondary-code-label{color:#081B4B;}/*!sc*/ .kfTVTG pre[class*=environment-] mark{background:#E3E8F4;}/*!sc*/ .kfTVTG pre[class*=environment-] mark mark{background:none;}/*!sc*/ .kfTVTG pre.environment-local{background:#F7F8FB;color:#11192E;}/*!sc*/ .kfTVTG pre.environment-local code{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-local.prefixed code ol li::before{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-local.prefixed.line_numbers code ol li::before{border-right-color:rgba(17, 25, 46, 0.5);}/*!sc*/ .kfTVTG pre.environment-second{background:#F4FBFF;color:#11192E;}/*!sc*/ .kfTVTG pre.environment-second code{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-second.prefixed code ol li::before{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-second.prefixed.line_numbers code ol li::before{border-right-color:rgba(17, 25, 46, 0.5);}/*!sc*/ .kfTVTG pre.environment-third{background:#FFF9F4;color:#11192E;}/*!sc*/ .kfTVTG pre.environment-third code{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-third.prefixed code ol li::before{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-third.prefixed.line_numbers code ol li::before{border-right-color:rgba(17, 25, 46, 0.5);}/*!sc*/ .kfTVTG pre.environment-fourth{background:#F9FDF6;color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fourth code{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fourth.prefixed code ol li::before{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fourth.prefixed.line_numbers code ol li::before{border-right-color:rgba(17, 25, 46, 0.5);}/*!sc*/ .kfTVTG pre.environment-fifth{background:#FFF4FD;color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fifth code{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fifth.prefixed code ol li::before{color:#11192E;}/*!sc*/ .kfTVTG pre.environment-fifth.prefixed.line_numbers code ol li::before{border-right-color:rgba(17, 25, 46, 0.5);}/*!sc*/ data-styled.g160[id="Markdownstyles-sc-dd1icp-0"]{content:"kfTVTG,"}/*!sc*/ .Lunik{animation:dTJZHc 300ms ease-in-out;background:#FFF;border:0;border-radius:16px;box-shadow:inset 0px 0px 0px 2px rgba(17, 25, 46, 0.1);margin:auto;padding:0;position:fixed;}/*!sc*/ .Lunik[open]{animation:buZmJQ 300ms ease-in-out;}/*!sc*/ .Lunik[open]::backdrop{animation:bVoocj 300ms ease-in-out forwards;}/*!sc*/ data-styled.g163[id="Dialogstyles__StyledDialog-sc-ogn4wt-0"]{content:"Lunik,"}/*!sc*/ .kLMNcL{padding:0;}/*!sc*/ data-styled.g164[id="Dialogstyles__StyledDialogContainer-sc-ogn4wt-1"]{content:"kLMNcL,"}/*!sc*/ .nSJQw{background:#4D5B7C;border-radius:0 16px;color:#FFF;height:32px;overflow:hidden;padding:8px;position:absolute;right:0;top:0;width:32px;}/*!sc*/ .nSJQw::before{background-color:rgba(0,0,0,0.2);content:'';height:100%;inset:0;opacity:0;position:absolute;transition:opacity 300ms ease-in-out;width:100%;}/*!sc*/ .nSJQw:hover::before{opacity:1;}/*!sc*/ .nSJQw svg{height:100%;position:relative;width:100%;}/*!sc*/ data-styled.g165[id="Dialogstyles__StyledDialogCloseButton-sc-ogn4wt-2"]{content:"nSJQw,"}/*!sc*/ .gyrAqA{border-radius:16px;overflow:hidden;position:relative;}/*!sc*/ .gyrAqA::after{content:'';display:block;padding-bottom:58.08823529411765%;}/*!sc*/ @media (min-width: 768px){.gyrAqA::after{padding-bottom:57.89473684210527%;}}/*!sc*/ .gyrAqA img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%;}/*!sc*/ data-styled.g201[id="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1"]{content:"gyrAqA,"}/*!sc*/ .hRLlz{display:flex;flex-direction:column;gap:24px;justify-content:space-between;}/*!sc*/ data-styled.g202[id="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2"]{content:"hRLlz,"}/*!sc*/ .hgmQvh{display:flex;flex-direction:column;gap:16px;}/*!sc*/ data-styled.g203[id="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3"]{content:"hgmQvh,"}/*!sc*/ .ooyFS{display:flex;flex-direction:column;gap:8px;}/*!sc*/ data-styled.g204[id="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-4"]{content:"ooyFS,"}/*!sc*/ .indddk{position:relative;}/*!sc*/ data-styled.g205[id="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5"]{content:"indddk,"}/*!sc*/ .jeSwjZ{align-items:center;display:flex;gap:16px;}/*!sc*/ .jeSwjZ svg{color:#0069FF;}/*!sc*/ data-styled.g206[id="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-6"]{content:"jeSwjZ,"}/*!sc*/ .jAfreL{display:flex;flex-direction:column;min-height:100%;color:#000C2A;background-color:#F9FAFE;border-radius:16px;overflow:hidden;position:relative;}/*!sc*/ .jAfreL::after{border:2px solid rgba(17, 25, 46, 0.1);border-radius:16px;content:'';inset:0;pointer-events:none;position:absolute;}/*!sc*/ .jAfreL .CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2{flex-grow:1;padding:32px 32px 40px;}/*!sc*/ .jAfreL .CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1{border-radius:0;}/*!sc*/ .jAfreL .CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 +.CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2{padding:24px 32px 40px;}/*!sc*/ .jAfreL .CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5{margin-top:auto;}/*!sc*/ .jAfreL +:not(.CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5) .CardUniversalstyles__StyledCardUniversalFooter-sc-1inzdla-0{margin-top:auto;}/*!sc*/ data-styled.g209[id="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-9"]{content:"jAfreL,"}/*!sc*/ .gWNWsX{background-color:#F9FAFE;padding:80px 24px;}/*!sc*/ @media (min-width:768px){.gWNWsX{padding:104px 40px;}}/*!sc*/ @media (min-width:1024px){.gWNWsX{padding:128px 0;}}/*!sc*/ data-styled.g216[id="PreFooterStyles__StyledSection-sc-9178b097-0"]{content:"gWNWsX,"}/*!sc*/ .fggxPh{margin:0 auto;width:100%;}/*!sc*/ @media (min-width:1024px){.fggxPh{max-width:954px;}}/*!sc*/ @media (min-width:1280px){.fggxPh{max-width:1088px;}}/*!sc*/ data-styled.g217[id="PreFooterStyles__StyledContainer-sc-9178b097-1"]{content:"fggxPh,"}/*!sc*/ .dWBUFA{background-color:#FFF;border:1px solid rgba(17, 25, 46, 0.1);border-radius:16px;display:flex;flex-direction:column;gap:24px;padding:24px;}/*!sc*/ @media (min-width:604px){.dWBUFA{padding:32px 40px;}}/*!sc*/ @media (min-width:768px){.dWBUFA{padding:24px;}}/*!sc*/ @media (min-width:1024px){.dWBUFA{flex-direction:row;gap:40px;padding:32px 40px;}}/*!sc*/ data-styled.g218[id="PreFooterStyles__StyledEmailCaptureContainer-sc-9178b097-2"]{content:"dWBUFA,"}/*!sc*/ .fEeiqt{margin:0 auto;text-align:center;}/*!sc*/ data-styled.g219[id="PreFooterStyles__StyledDisclaimerContainer-sc-9178b097-3"]{content:"fEeiqt,"}/*!sc*/ @media (min-width:1024px){.eEOPZv{max-width:408px;min-width:408px;}}/*!sc*/ data-styled.g220[id="PreFooterStyles__StyledGrid-sc-9178b097-4"]{content:"eEOPZv,"}/*!sc*/ .iPSfQk{display:block;}/*!sc*/ @media (min-width:604px){.iPSfQk{display:none;}}/*!sc*/ @media (min-width:768px){.iPSfQk{display:block;}}/*!sc*/ @media (min-width:1024px){.iPSfQk{display:none;}}/*!sc*/ .iPSfQk button{width:100%;}/*!sc*/ data-styled.g221[id="PreFooterStyles__StyledOutsideInputSubmit-sc-9178b097-5"]{content:"iPSfQk,"}/*!sc*/ .dzyQkl{display:none;}/*!sc*/ @media (min-width:604px){.dzyQkl{display:block;}}/*!sc*/ @media (min-width:768px){.dzyQkl{display:none;}}/*!sc*/ @media (min-width:1024px){.dzyQkl{display:block;}}/*!sc*/ data-styled.g222[id="PreFooterStyles__StyledInInputSubmit-sc-9178b097-6"]{content:"dzyQkl,"}/*!sc*/ .hpvMmi{display:flex;flex-direction:column;gap:8px;}/*!sc*/ data-styled.g223[id="PreFooterStyles__StyledEmailInputContainer-sc-9178b097-7"]{content:"hpvMmi,"}/*!sc*/ .gshWnS{background:#F9FAFE;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(17, 25, 46, 0.1);display:flex;justify-content:space-between;padding:6px 6px 6px 32px;width:100%;}/*!sc*/ .gshWnS input{background:transparent;border:none;outline:0;width:100%;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:24px;}/*!sc*/ data-styled.g224[id="PreFooterStyles__StyledEmailInput-sc-9178b097-8"]{content:"gshWnS,"}/*!sc*/ .gBggHG{width:100%;}/*!sc*/ data-styled.g225[id="PreFooterStyles__StyledFullWidthGrid-sc-9178b097-9"]{content:"gBggHG,"}/*!sc*/ .ezraOu{align-items:center;background-color:#F9FAFE;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(17, 25, 46, 0.1);color:#4D5B7C;display:flex;gap:8px;margin-left:32px;padding:8px 16px;width:max-content;}/*!sc*/ .ezraOu svg{flex-shrink:0;height:16px;width:16px;}/*!sc*/ data-styled.g230[id="SubNavigationStyles__StyledCommunitySearch-sc-664e80d1-0"]{content:"ezraOu,"}/*!sc*/ @media (min-width:1024px){.kCtOIs >ul>li:first-child>a{margin-left:191px;}.kCtOIs >ul>li:last-child{margin-left:auto;}}/*!sc*/ data-styled.g231[id="SubNavigationStyles__StyledCommunitySubNavigation-sc-664e80d1-1"]{content:"kCtOIs,"}/*!sc*/ .kuxFrB{display:none;gap:32px;grid-template-columns:repeat(auto-fill,minmax(192px,1fr));width:100%;}/*!sc*/ @media (min-width:768px){.kuxFrB{display:grid;}}/*!sc*/ data-styled.g243[id="LinksStyles__StyledFooterDesktop-sc-e23e78b7-0"]{content:"kuxFrB,"}/*!sc*/ .AFHla{display:flex;flex-direction:column;gap:8px;list-style:none;margin:16px 0 0;padding:0;}/*!sc*/ data-styled.g244[id="LinksStyles__StyledList-sc-e23e78b7-1"]{content:"AFHla,"}/*!sc*/ .eEzFnU:hover,.eEzFnU:focus{color:#000C2A;}/*!sc*/ data-styled.g245[id="LinksStyles__StyledLink-sc-e23e78b7-2"]{content:"eEzFnU,"}/*!sc*/ .hZzCcf{display:flex;flex-direction:column;width:100%;}/*!sc*/ @media (min-width:768px){.hZzCcf{display:none;}}/*!sc*/ .hZzCcf details:not(:last-child){border-bottom:1px solid #D6DCEA;}/*!sc*/ .hZzCcf .LinksStyles__StyledList-sc-e23e78b7-1{margin:0 0 16px;}/*!sc*/ data-styled.g246[id="LinksStyles__StyledFooterMobile-sc-e23e78b7-3"]{content:"hZzCcf,"}/*!sc*/ .aJsNo{cursor:pointer;}/*!sc*/ .aJsNo summary{align-items:center;display:flex;list-style:none;padding:16px 0;}/*!sc*/ .aJsNo summary::-webkit-details-marker{display:none;}/*!sc*/ .aJsNo summary h6{flex:1 1 auto;}/*!sc*/ .aJsNo summary .up,.aJsNo summary .down{color:#000C2A;flex:0 0 auto;}/*!sc*/ .aJsNo[open] summary .down{display:none;}/*!sc*/ .aJsNo:not([open]) summary .up{display:none;}/*!sc*/ data-styled.g247[id="LinksStyles__StyledDetails-sc-e23e78b7-4"]{content:"aJsNo,"}/*!sc*/ .hHrQLL{background-color:#FFF;display:none;flex-direction:column;height:100%;left:0;padding:16px;position:fixed;top:0;width:100%;z-index:100;}/*!sc*/ @media (min-width:1280px){.hHrQLL{border-radius:16px;box-shadow:0px 9px 24px rgba(0, 12, 42, 0.2),inset 0 0 0 1px rgba(17, 25, 46, 0.1);height:auto;left:auto;padding:16px;position:absolute;right:0;top:calc(100% + 12px);width:283px;}}/*!sc*/ data-styled.g248[id="ActionMenuStyles__StyledActionMenu-sc-56d46e8d-0"]{content:"hHrQLL,"}/*!sc*/ .cwRkdj{align-items:start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px;}/*!sc*/ data-styled.g249[id="ActionMenuStyles__StyledActionMenuTitle-sc-56d46e8d-1"]{content:"cwRkdj,"}/*!sc*/ .bEyAUk{color:#000C2A;font-weight:500;line-height:24px;padding:0 0 0 12px;word-break:break-word;}/*!sc*/ @media (min-width:768px){.bEyAUk{padding:0 12px 0 12px;}}/*!sc*/ data-styled.g250[id="ActionMenuStyles__StyledActionMenuTitleText-sc-56d46e8d-2"]{content:"bEyAUk,"}/*!sc*/ .glmMcY{display:block;margin-left:auto;padding:0;}/*!sc*/ @media (min-width:1280px){.glmMcY{display:none!important;}}/*!sc*/ data-styled.g251[id="ActionMenuStyles__StyledCloseButton-sc-56d46e8d-3"]{content:"glmMcY,"}/*!sc*/ .ijUUOp a,.ijUUOp button{align-items:center;color:#4D5B7C;display:flex;gap:8px;margin:0;padding:8px 12px;}/*!sc*/ .ijUUOp a:hover,.ijUUOp button:hover{color:#000C2A;}/*!sc*/ .ijUUOp svg{flex-shrink:0;}/*!sc*/ data-styled.g252[id="ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4"]{content:"ijUUOp,"}/*!sc*/ html{--top-hat-height:0;--primary-nav-height:73px;--sub-nav-height:0;--content-spacing:64px;--scroll-padding-top:calc( calc(var(--top-hat-height) * 1px) + var(--primary-nav-height) + calc(var(--sub-nav-height) * 1px) + var(--content-spacing) );scroll-behavior:smooth;scroll-padding-top:var(--scroll-padding-top);}/*!sc*/ body{line-height:1.4;text-rendering:optimizeLegibility;}/*!sc*/ body:has(.takeoverMenu){overflow:hidden;}/*!sc*/ @media (min-width:1280px){body:has(.takeoverMenu){overflow:auto;}}/*!sc*/ ol,ul{list-style:none;margin:0;padding:0;}/*!sc*/ table{border-collapse:collapse;}/*!sc*/ h1,h2,h3,h4,h5{font-family:'__Epilogue_61966b',sans-serif;}/*!sc*/ .truste_box_overlay{left:200vw;position:fixed;}/*!sc*/ .truste_overlay{display:none;}/*!sc*/ .truste_box_overlay.slide-up{animation:ckkqjM 1s forwards;left:0;max-height:calc(100% - 40px);overflow:auto;}/*!sc*/ .truste_overlay.fade-in{animation:kVaHQg 1s forwards;display:block;}/*!sc*/ #truste-consent-track{left:200vw;}/*!sc*/ #truste-consent-track.slide-up{animation:ckkqjM 1s forwards;}/*!sc*/ data-styled.g269[id="sc-global-dvRRyi1"]{content:"sc-global-dvRRyi1,"}/*!sc*/ .cOvNzl{display:flex;flex-direction:column;margin:0 auto;max-width:80rem;max-width:50rem;width:100%;}/*!sc*/ @media only screen and (max-width:52rem){.cOvNzl{max-width:100%;padding:0 1rem;}}/*!sc*/ data-styled.g270[id="ContainerStyles__StyledContainer-sc-c33ad18f-0"]{content:"cOvNzl,"}/*!sc*/ .kpquAR{color:#031b4e;font-size:44px;font-weight:800;letter-spacing:-2px;}/*!sc*/ @media only screen and (max-width: 768px){.kpquAR{font-size:52px;line-height:1.2;}}/*!sc*/ @media only screen and (max-width: 425px){.kpquAR{font-size:40px;line-height:1.2;}}/*!sc*/ data-styled.g271[id="HeadingStyles__StyledH1-sc-73f0758c-0"]{content:"kpquAR,"}/*!sc*/ .lfDrER{color:#031b4e;font-size:24px;font-weight:500;letter-spacing:-0.5px;line-height:120%;margin:0;}/*!sc*/ data-styled.g274[id="HeadingStyles__StyledH4-sc-73f0758c-3"]{content:"lfDrER,"}/*!sc*/ .fteKuf{color:#031b4e;font-size:18px;font-weight:500;letter-spacing:0;line-height:110%;margin:0;}/*!sc*/ data-styled.g275[id="HeadingStyles__StyledH5-sc-73f0758c-4"]{content:"fteKuf,"}/*!sc*/ .glNInm{align-items:center;background-color:transparent;border:1px solid #080b2d;color:#080b2d;cursor:pointer;display:inline-flex;font-size:1em;font-weight:700;padding:16px 32px;text-decoration:none;transition:all 0.3s ease;}/*!sc*/ .glNInm:hover{background-color:rgba(0, 105, 255, 0.15);transition:all 0.3s ease;}/*!sc*/ .glNInm.is-squared{border-radius:8px;}/*!sc*/ .glNInm.is-primary{background-color:#1633ff;border:1px solid #1633ff;color:#fff;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-primary:hover{background-color:#0069ff!important;border:1px solid #0069ff;color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-primary:disabled{background-color:#c4c9d6!important;border:1px solid #c4c9d6!important;color:#fff;}/*!sc*/ .glNInm.is-primary.is-outlined{border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .glNInm.is-primary.is-outlined:hover{background-color:#f2f8ff!important;border:1px solid #0069ff!important;color:#0069ff!important;}/*!sc*/ .glNInm.is-primary.is-outlined:disabled{background-color:#fff!important;border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .glNInm.is-white{background-color:#fff;border:1px solid #fff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-white:hover{background-color:rgba(225,225,225,0.9);color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-white:disabled{border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .glNInm.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.9);color:rgba(255,255,255,0.9);}/*!sc*/ .glNInm.is-white.is-outlined:hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1);}/*!sc*/ .glNInm.is-rounded{border-radius:10px;}/*!sc*/ .glNInm.is-outlined{background-color:transparent;border:1px solid #080b2d;color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-outlined:hover{border:1px solid #0069ff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .glNInm.is-small{padding:12px 24px;}/*!sc*/ .glNInm.has-center-img{padding:15px 16px;}/*!sc*/ .glNInm.has-left-img >img{margin-right:8px;}/*!sc*/ .glNInm.mx-16{margin-right:16px;}/*!sc*/ .glNInm.is-community{border:0;border-radius:8px;cursor:pointer;display:unset;font-size:16px;font-weight:600;height:50px;line-height:50px;margin:5px;padding:0 15px;text-align:center;transition:color 0.2s ease-in-out,background-color 0.2s ease-in-out;}/*!sc*/ .glNInm.is-community.blue{background-color:#0069ff;color:#fff;}/*!sc*/ .glNInm.is-community.blue:hover{background-color:#080b2d;}/*!sc*/ .glNInm.is-community.outlined{background-color:transparent;border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .glNInm.is-community.outlined:hover{background-color:#0069ff;color:#fff;}/*!sc*/ .glNInm.is-community.small{font-weight:500;height:35px;line-height:35px;}/*!sc*/ .glNInm.is-community.is-sign-in{border:1px solid #0069ff;display:block;font-weight:400;height:44px;line-height:46px;margin:0;margin-bottom:20px;padding:0 50px;text-decoration:none;}/*!sc*/ .glNInm.is-community.is-sign-in:hover{background-color:#fff;color:#0069ff;}/*!sc*/ .glNInm.is-community.is-community-admin{border-radius:3px;box-sizing:border-box;display:inline-block;height:40px;line-height:34px;margin:0 5px 5px 0;padding:8px;position:relative;transition:opacity 0.2s ease;width:40px;}/*!sc*/ .glNInm.is-community.is-community-admin:last-child{margin-bottom:0;}/*!sc*/ .glNInm.is-community.is-community-admin:hover{opacity:0.9;}/*!sc*/ .glNInm.is-community.is-community-admin.is-address{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-delete{background-color:#e15b5d;}/*!sc*/ .glNInm.is-community.is-community-admin.is-lock-all-comments{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-unlock-all-comments{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-lock-all-answers{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-unlock-all-answers{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-lock-new-answers{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-unlock-new-answers{background-color:#fcd042;}/*!sc*/ .glNInm.is-community.is-community-admin.is-publish,.glNInm.is-community.is-community-admin.is-enable{background-color:#0069ff;}/*!sc*/ .glNInm.is-community.is-community-admin.is-unpublish,.glNInm.is-community.is-community-admin.is-disable{background-color:#0069ff;}/*!sc*/ .glNInm.is-community.is-community-admin.is-spam{background-color:#333;}/*!sc*/ .glNInm.is-community.is-community-admin.is-trash{background-color:#e94849;}/*!sc*/ .glNInm.is-community.is-community-admin.is-unlist{background-color:#f66106;}/*!sc*/ .glNInm.is-community.is-community-admin.is-view{background-color:#0069ff;}/*!sc*/ .glNInm.is-community.is-community-admin.is-edit{background-color:#00d7d2;}/*!sc*/ .glNInm.is-community.is-community-admin.is-deprecate{background-color:#5b6987;}/*!sc*/ .glNInm.is-community.is-community-admin.is-export{background-color:#7bdeff;}/*!sc*/ .glNInm.is-community.is-community-admin.is-clone{background-color:#ffc001;}/*!sc*/ data-styled.g281[id="ButtonLinkStyles__StyledButtonLink-sc-b1f7fbf-0"]{content:"glNInm,"}/*!sc*/ .dZfTxb{align-items:center;background-color:transparent;border:1px solid #080b2d;border-radius:100px;color:#080b2d;cursor:pointer;display:flex;font-size:1em;font-weight:700;justify-content:center;padding:16px 32px;text-decoration:none;transition:all 0.3s ease;}/*!sc*/ .dZfTxb:not(:disabled):hover{background-color:rgba(0,105,255,0.15);transition:all 0.3s ease;}/*!sc*/ .dZfTxb:disabled{cursor:default;}/*!sc*/ .dZfTxb.is-squared{border-radius:8px;}/*!sc*/ .dZfTxb.is-primary{background-color:#1633ff;border:1px solid #1633ff;color:#fff;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-primary:not(:disabled):hover{background-color:#0069ff!important;border:1px solid #0069ff;color:#fff!important;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-primary:disabled{background-color:#c4c9d6!important;border:1px solid #c4c9d6!important;color:#fff;}/*!sc*/ .dZfTxb.is-primary.is-outlined{border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .dZfTxb.is-primary.is-outlined:not(:disabled):hover{background-color:#f2f8ff!important;border:1px solid #0069ff!important;color:#0069ff!important;}/*!sc*/ .dZfTxb.is-primary.is-outlined:disabled{background-color:#fff!important;border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .dZfTxb.is-white{background-color:#fff;border:1px solid #fff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-white:not(:disabled):hover{background-color:rgba(225,225,225,0.9);color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-white:disabled{border:1px solid #8690a9!important;color:#8690a9!important;}/*!sc*/ .dZfTxb.is-white.is-outlined{background-color:transparent;border:1px solid rgba(255,255,255,0.9);color:rgba(255,255,255,0.9);}/*!sc*/ .dZfTxb.is-white.is-outlined:not(:disabled):hover{background-color:transparent;border:1px solid rgba(255,255,255,1);color:rgba(255,255,255,1);}/*!sc*/ .dZfTxb.is-outlined{background-color:transparent;border:1px solid #080b2d;color:#080b2d;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-outlined:not(:disabled):hover{border:1px solid #0069ff;color:#0069ff;transition:all 0.3s ease;}/*!sc*/ .dZfTxb.is-small{padding:12px 24px;}/*!sc*/ .dZfTxb.has-center-img{padding:15px 16px;}/*!sc*/ .dZfTxb.has-left-img img{margin-right:8px;}/*!sc*/ .dZfTxb.mx-16{margin-left:16px;margin-right:16px;}/*!sc*/ .dZfTxb.mt-32{margin-top:32px;}/*!sc*/ .dZfTxb.is-community{border:0;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;height:50px;line-height:50px;margin:5px;padding:0 15px;text-align:center;transition:color 0.2s ease-in-out,background-color 0.2s ease-in-out;}/*!sc*/ .dZfTxb.is-community.blue{background-color:#0069ff;color:#fff;}/*!sc*/ .dZfTxb.is-community.blue:not(:disabled):hover{background-color:#080b2d;}/*!sc*/ .dZfTxb.is-community.green{background-color:#05b193;color:#fff;}/*!sc*/ .dZfTxb.is-community.green:hover{background-color:#080b2d;}/*!sc*/ .dZfTxb.is-community.outlined{background-color:transparent;border:1px solid #0069ff;color:#0069ff;}/*!sc*/ .dZfTxb.is-community.outlined:not(:disabled):hover{background-color:#0069ff;color:#fff;}/*!sc*/ .dZfTxb.is-community.small{font-weight:500;height:35px;line-height:35px;}/*!sc*/ data-styled.g302[id="ButtonStyles__StyledButton-sc-1f59e819-0"]{content:"dZfTxb,"}/*!sc*/ .fzarqH h1:hover .hash-anchor,.fzarqH h2:hover .hash-anchor,.fzarqH h3:hover .hash-anchor,.fzarqH h4:hover .hash-anchor,.fzarqH h5:hover .hash-anchor,.fzarqH h6:hover .hash-anchor,.fzarqH h1:focus-within .hash-anchor,.fzarqH h2:focus-within .hash-anchor,.fzarqH h3:focus-within .hash-anchor,.fzarqH h4:focus-within .hash-anchor,.fzarqH h5:focus-within .hash-anchor,.fzarqH h6:focus-within .hash-anchor{opacity:1;transition:opacity 0.2s ease-in-out,visibility 0s linear;visibility:visible;}/*!sc*/ .fzarqH h1 .hash-anchor,.fzarqH h2 .hash-anchor,.fzarqH h3 .hash-anchor,.fzarqH h4 .hash-anchor,.fzarqH h5 .hash-anchor,.fzarqH h6 .hash-anchor{font-size:0.85em;opacity:0;transition:opacity 0.2s ease-in-out,visibility 0s linear 0.2s;visibility:hidden;}/*!sc*/ .fzarqH p a{word-wrap:break-word;}/*!sc*/ data-styled.g584[id="MarkdownStyles__StyledMarkdown-sc-bf598916-0"]{content:"fzarqH,"}/*!sc*/ .gqBRRz{align-items:flex-start;display:flex;flex-direction:column;font-size:14px;font-weight:500;gap:24px;margin-bottom:16px;max-height:80vh;overflow-y:scroll;padding:0 32px 16px 0;position:sticky;scrollbar-color:#8a96b5 transparent;top:var(--scroll-padding-top);}/*!sc*/ .gqBRRz::-webkit-scrollbar{background-color:transparent;width:6px;}/*!sc*/ .gqBRRz::-webkit-scrollbar-track{background-color:transparent;}/*!sc*/ .gqBRRz::-webkit-scrollbar-thumb{background:#8a96b5;border-radius:4px;width:6px;}/*!sc*/ data-styled.g643[id="TableOfContentsStyles__StyledTableOfContentsContainer-sc-8a21f586-0"]{content:"gqBRRz,"}/*!sc*/ .dhdJdx{color:#000c2b;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;line-height:22px;margin:0;text-transform:uppercase;}/*!sc*/ data-styled.g644[id="TableOfContentsStyles__StyledTableOfContentsTitle-sc-8a21f586-1"]{content:"dhdJdx,"}/*!sc*/ .ifwrc{color:#000c2b;font-size:14px;letter-spacing:1px;line-height:1.2;list-style:none;opacity:1;}/*!sc*/ data-styled.g645[id="TableOfContentsStyles__StyledTableOfContentsList-sc-8a21f586-2"]{content:"ifwrc,"}/*!sc*/ .bljiJp{font-size:14px;letter-spacing:1px;line-height:1.1;margin:12px 0 0 0px;overflow-wrap:break-word;}/*!sc*/ data-styled.g646[id="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3"]{content:"bljiJp,"}/*!sc*/ .QlmaO{color:#8a96b5;cursor:pointer;font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;font-weight:400;line-height:24px;text-decoration:none;}/*!sc*/ .QlmaO:hover{color:#031b4e;}/*!sc*/ data-styled.g647[id="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4"]{content:"QlmaO,"}/*!sc*/ .eEMXWO{font-family:'__Inter_1fc7a2',sans-serif;font-size:16px;font-weight:400;line-height:24px;}/*!sc*/ data-styled.g648[id="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5"]{content:"eEMXWO,"}/*!sc*/ @keyframes ckkqjM{0%{transform:translateY(110vh);}100%{transform:translateY(0);}}/*!sc*/ data-styled.g706[id="sc-keyframes-ckkqjM"]{content:"ckkqjM,"}/*!sc*/ @keyframes kVaHQg{0%{opacity:0;}100%{opacity:0.4;}}/*!sc*/ data-styled.g707[id="sc-keyframes-kVaHQg"]{content:"kVaHQg,"}/*!sc*/ @keyframes lRCJp{to{transform:translate(27.75px,-41.25px) scale(1,0.25);}}/*!sc*/ data-styled.g708[id="sc-keyframes-lRCJp"]{content:"lRCJp,"}/*!sc*/ .kYbBjQ{align-items:center;display:flex;gap:16px;margin-top:16px;}/*!sc*/ data-styled.g738[id="AuthorsStyles__StyledAuthorList-sc-29c8253c-0"]{content:"kYbBjQ,"}/*!sc*/ .hbSNDk{border:1px solid #FFF;border-radius:50%;height:48px;margin-left:-16px;object-fit:contain;vertical-align:middle;width:48px;}/*!sc*/ .hbSNDk:first-child{margin-left:0;}/*!sc*/ data-styled.g739[id="AuthorsStyles__StyledAvatarSmall-sc-29c8253c-1"]{content:"hbSNDk,"}/*!sc*/ .dBDdOf{display:flex;flex-shrink:0;}/*!sc*/ data-styled.g740[id="AuthorsStyles__StyledAvatarGroup-sc-29c8253c-2"]{content:"dBDdOf,"}/*!sc*/ .kJSao{color:#081B4B;display:flex;flex-grow:1;font-size:16px;font-weight:500;list-style:none;}/*!sc*/ .kJSao p{margin:0;}/*!sc*/ data-styled.g741[id="AuthorsStyles__StyledAuthor-sc-29c8253c-3"]{content:"kJSao,"}/*!sc*/ .dxcDAS{font-size:20px;line-height:1.5;margin-top:40px;width:100%;}/*!sc*/ data-styled.g879[id="TutorialTemplateStyles__StyledRecordHeaderContainer-sc-337a0527-0"]{content:"dxcDAS,"}/*!sc*/ .eoHutf{border-radius:24px;display:block;height:auto;margin:40px 0;width:100%;}/*!sc*/ data-styled.g880[id="TutorialTemplateStyles__StyledRecordHeaderImage-sc-337a0527-1"]{content:"eoHutf,"}/*!sc*/ .gsxHnk{align-items:center;display:flex;flex-wrap:wrap;}/*!sc*/ data-styled.g881[id="TutorialTemplateStyles__StyledRecordMetaContainer-sc-337a0527-2"]{content:"gsxHnk,"}/*!sc*/ .hGosQQ{align-items:center;color:#031b4e;display:flex;flex-flow:row wrap;margin:0 auto;padding:10px 0;width:100%;}/*!sc*/ data-styled.g882[id="TutorialTemplateStyles__StyledRecordMetaList-sc-337a0527-3"]{content:"hGosQQ,"}/*!sc*/ .eoKUhn{color:#333;font-size:13px;font-weight:500;line-height:1.6;list-style:none;padding-right:5px;}/*!sc*/ .eoKUhn a:first-child{margin-left:0;}/*!sc*/ data-styled.g883[id="TutorialTemplateStyles__StyledRecordMetaItem-sc-337a0527-4"]{content:"eoKUhn,"}/*!sc*/ .jnatsz{color:#4d5b7c;font-size:16px;line-height:24px;margin:8px 0;}/*!sc*/ data-styled.g884[id="TutorialTemplateStyles__StyledRecordMetaItemDate-sc-337a0527-5"]{content:"jnatsz,"}/*!sc*/ .dKebKT{color:#0069ff;cursor:pointer;font-size:18px;text-decoration:underline;}/*!sc*/ .dKebKT:hover{color:#1253fa;}/*!sc*/ data-styled.g886[id="TutorialTemplateStyles__StyledRecordMetaItemAuthorHighlight-sc-337a0527-7"]{content:"dKebKT,"}/*!sc*/ .kYDvfF{background-color:rgba(200, 223, 255, 0.4);border-radius:24px;margin-top:50px;position:relative;width:100%;}/*!sc*/ data-styled.g887[id="TutorialTemplateStyles__StyledCollaboratorsFooterContainer-sc-337a0527-8"]{content:"kYDvfF,"}/*!sc*/ .fAKdCr{align-items:flex-start;color:#031b4e;display:flex;flex-wrap:wrap;margin:0 auto;padding:24px 32px 32px;width:100%;z-index:5;}/*!sc*/ data-styled.g888[id="TutorialTemplateStyles__StyledCollaboratorsFooter-sc-337a0527-9"]{content:"fAKdCr,"}/*!sc*/ .bPCjPq{align-items:center;color:#081b4b;flex-basis:100%;font-family:'__Epilogue_61966b',sans-serif;font-size:24px;font-style:normal;font-weight:600;line-height:32px;white-space:nowrap;}/*!sc*/ data-styled.g889[id="TutorialTemplateStyles__StyledCollaboratorsHeading-sc-337a0527-10"]{content:"bPCjPq,"}/*!sc*/ .kLvEfV{align-items:center;display:flex;flex-grow:1;margin:0;padding:16px 14px;width:100%;}/*!sc*/ data-styled.g890[id="TutorialTemplateStyles__StyledCollaborator-sc-337a0527-11"]{content:"kLvEfV,"}/*!sc*/ .eoFuZs{border-radius:50%;height:64px;margin:0 16px 0 0;width:64px;}/*!sc*/ data-styled.g891[id="TutorialTemplateStyles__StyledAvatarLarge-sc-337a0527-12"]{content:"eoFuZs,"}/*!sc*/ .gRceEM{color:#031b4e;line-height:1.4;}/*!sc*/ data-styled.g892[id="TutorialTemplateStyles__StyledCollaboratorInfo-sc-337a0527-13"]{content:"gRceEM,"}/*!sc*/ .hPVxKD{color:#031b4e;font-size:18px;font-weight:500;line-height:26px;margin:4px 0;min-width:0;overflow-wrap:break-word;}/*!sc*/ data-styled.g893[id="TutorialTemplateStyles__StyledCollaboratorName-sc-337a0527-14"]{content:"hPVxKD,"}/*!sc*/ .jOvxSW{color:#4d5b7c;font-size:16px;line-height:24px;}/*!sc*/ data-styled.g894[id="TutorialTemplateStyles__StyledCollaboratorBio-sc-337a0527-15"]{content:"jOvxSW,"}/*!sc*/ .hgqDuN{color:#4d5b7c;font-size:18px;font-weight:500;margin:0;overflow-wrap:break-word;padding:0;}/*!sc*/ data-styled.g895[id="TutorialTemplateStyles__StyledCollaboratorTitle-sc-337a0527-16"]{content:"hgqDuN,"}/*!sc*/ .klBkzI{align-items:center;color:#4d5b7c;display:grid;font-size:14px;grid-gap:15px;grid-template-columns:1fr;line-height:22px;margin:10px 0 72px;}/*!sc*/ .klBkzI img{display:block;height:40px;margin:10px auto;width:113.55px;}/*!sc*/ .klBkzI a{color:#535772;display:inline-block;font-size:14px;text-align:center;}/*!sc*/ .klBkzI a:hover{text-decoration:underline;}/*!sc*/ @media only screen and (min-width: 768px){.klBkzI{grid-template-columns:auto 1fr;}.klBkzI a{text-align:left;}.klBkzI img{display:inline-block;}}/*!sc*/ data-styled.g899[id="TutorialTemplateStyles__StyledCreativeCommonsLicense-sc-337a0527-20"]{content:"klBkzI,"}/*!sc*/ .SCLyp{background:#98dfdc;border-radius:8px;color:#081b4b;display:inline-block;font-size:14px;font-weight:500;height:24px;line-height:24px;margin:0 8px;padding:0 8px;text-align:center;text-transform:capitalize;width:auto;}/*!sc*/ data-styled.g908[id="TutorialTemplateStyles__StyledUserRelation-sc-337a0527-29"]{content:"SCLyp,"}/*!sc*/ .dyCJUo{margin-bottom:32px;}/*!sc*/ .dyCJUo:last-child{margin-bottom:0;}/*!sc*/ data-styled.g913[id="TutorialTemplateStyles__StyledSidebarItem-sc-337a0527-34"]{content:"dyCJUo,"}/*!sc*/ .dKyFya{border:1px solid #6B71B1;border-radius:16px;margin-top:32px;padding:24px 32px;}/*!sc*/ .dKyFya a::after{content:' ->';}/*!sc*/ data-styled.g914[id="TutorialTemplateStyles__StyledConclusionCTA-sc-337a0527-35"]{content:"dKyFya,"}/*!sc*/ .bdnkwT{background:#fff;border-radius:24px;box-shadow:0 6px 20px -6px rgba(11, 43, 158, 0.15);height:auto;margin:40px 0;padding:24px 32px;width:100%;}/*!sc*/ data-styled.g915[id="TutorialTemplateStyles__StyledHelpfulCTA-sc-337a0527-36"]{content:"bdnkwT,"}/*!sc*/ .hsNeFw{border:1px solid #e3e8f4;margin:24px 0;}/*!sc*/ data-styled.g916[id="TutorialTemplateStyles__StyledHelpfulHr-sc-337a0527-37"]{content:"hsNeFw,"}/*!sc*/ .fIwROR{align-items:center;display:flex;flex-grow:3;flex-wrap:wrap;gap:16px;margin:0;}/*!sc*/ data-styled.g928[id="WasThisHelpfulStyles__StyledHelpfulContainer-sc-7b34e333-0"]{content:"fIwROR,"}/*!sc*/ .kWxKBP{align-items:center;display:flex;flex-grow:2;gap:8px;justify-content:flex-end;}/*!sc*/ data-styled.g929[id="WasThisHelpfulStyles__StyledShareContainer-sc-7b34e333-1"]{content:"kWxKBP,"}/*!sc*/ .ksqBeP{color:#081b4b;font-family:'__Epilogue_61966b',sans-serif;font-size:20px;font-style:normal;font-weight:500;line-height:28px;padding-right:5px;}/*!sc*/ data-styled.g930[id="WasThisHelpfulStyles__StyledHelpfulText-sc-7b34e333-2"]{content:"ksqBeP,"}/*!sc*/ .gjbNkJ{display:flex;gap:16px;}/*!sc*/ data-styled.g931[id="WasThisHelpfulStyles__StyledHelpfulButtonContainer-sc-7b34e333-3"]{content:"gjbNkJ,"}/*!sc*/ .kgGjh{background:#e3e8f4;display:block;height:42px;margin:0 8px;width:1px;}/*!sc*/ @media only screen and (max-width: 768px){.kgGjh{display:none;}}/*!sc*/ data-styled.g932[id="WasThisHelpfulStyles__StyledHelpfulDivider-sc-7b34e333-4"]{content:"kgGjh,"}/*!sc*/ .hnJljI{background:transparent;border:1px solid #aab3ca;border-radius:12px;color:#24335a;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;text-decoration:none;}/*!sc*/ .hnJljI:hover{background:#1253fa;border:1px solid #1253fa;box-shadow:0 10px 20px rgba(3, 27, 78, 0.1);color:#fff;transition:box-shadow 0.25s linear,-webkit-box-shadow 0.25s linear;}/*!sc*/ data-styled.g933[id="WasThisHelpfulStyles__StyledHelpfulButton-sc-7b34e333-5"]{content:"hnJljI,"}/*!sc*/ .lwZFQ{background-color:#fff;border:1px solid #d6dcea;border-radius:24px;margin:8px 0;overflow:hidden;}/*!sc*/ .lwZFQ:focus-within{border-color:#0069ff;}/*!sc*/ data-styled.g949[id="MarkdownStyles__StyledContainer-sc-dccc8dc1-0"]{content:"lwZFQ,"}/*!sc*/ .NFBTT{border-bottom:1px solid #e3e8f4;display:flex;flex-wrap:wrap;padding:16px;}/*!sc*/ data-styled.g950[id="MarkdownStyles__StyledActions-sc-dccc8dc1-1"]{content:"NFBTT,"}/*!sc*/ .emmQTZ{display:flex;margin:0 0 0 auto;}/*!sc*/ data-styled.g951[id="MarkdownStyles__StyledActionsRight-sc-dccc8dc1-2"]{content:"emmQTZ,"}/*!sc*/ .hbUzfS{background:none;border:none;color:#4d5b7c;cursor:pointer;display:block;height:24px;line-height:1;margin:0 5px 0 0;padding:0;position:relative;transition:color 0.3s ease;width:24px;}/*!sc*/ .hbUzfS:last-child{margin-right:0;}/*!sc*/ .hbUzfS:hover{color:#0069ff;}/*!sc*/ .hbUzfS svg,.hbUzfS>span{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);}/*!sc*/ data-styled.g952[id="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3"]{content:"hbUzfS,"}/*!sc*/ .gFNlzT{background:none;border:none;color:#4d5b7c;cursor:pointer;display:block;height:24px;line-height:1;margin:0 5px 0 0;padding:0;position:relative;transition:color 0.3s ease;width:24px;}/*!sc*/ .gFNlzT:last-child{margin-right:0;}/*!sc*/ .gFNlzT:hover{color:#0069ff;}/*!sc*/ .gFNlzT svg,.gFNlzT>span{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);}/*!sc*/ data-styled.g953[id="MarkdownStyles__StyledActionLink-sc-dccc8dc1-4"]{content:"gFNlzT,"}/*!sc*/ .iZDgyt{max-height:calc(100vh - var(--scroll-padding-top) - 128px);overflow-y:scroll;overscroll-behavior-y:contain;position:relative;}/*!sc*/ data-styled.g954[id="MarkdownStyles__StyledWrapper-sc-dccc8dc1-5"]{content:"iZDgyt,"}/*!sc*/ .gxDflj{padding:8px 16px 24px;position:relative;}/*!sc*/ data-styled.g955[id="MarkdownStyles__StyledSlateEditableWrapper-sc-dccc8dc1-6"]{content:"gxDflj,"}/*!sc*/ .gUXryj{border:0;font-family:'__JetBrains_Mono_26ed0d',monospace;line-height:1.5;resize:vertical;width:100%;}/*!sc*/ .gUXryj:read-only{background:#eff2fb;}/*!sc*/ .gUXryj:focus-visible{outline:0;}/*!sc*/ data-styled.g957[id="MarkdownStyles__StyledSlateEditable-sc-dccc8dc1-8"]{content:"gUXryj,"}/*!sc*/ .hMXGxj{color:#081b4b;font-size:24px;font-weight:600;line-height:32px;margin-bottom:16px;}/*!sc*/ data-styled.g967[id="CommentFormTemplateStyles__StyledFormHeader-sc-f4f7f538-1"]{content:"hMXGxj,"}/*!sc*/ .btVxEm{margin-top:5px;padding:0;}/*!sc*/ data-styled.g969[id="CommentFormTemplateStyles__StyledButtonBar-sc-f4f7f538-3"]{content:"btVxEm,"}/*!sc*/ .hmApOG{margin:20px 0 24px;}/*!sc*/ .hmApOG p{color:#8a96b5;font-size:16px;line-height:1.5;margin:0 0 16px;}/*!sc*/ .hmApOG p strong{color:#4d5b7c;font-family:'__JetBrains_Mono_26ed0d',monospace;font-size:14px;font-weight:700;}/*!sc*/ .hmApOG kbd{background:#f3f5f9;color:#4d5b7c;font-size:0.9em;font-weight:500;padding:0.1em 0.3em;}/*!sc*/ data-styled.g970[id="CommentFormTemplateStyles__StyledFormNote-sc-f4f7f538-4"]{content:"hmApOG,"}/*!sc*/ .gcUUDj{background-color:#0069ff;border:0;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;line-height:1.5;min-width:192px;padding:8px 32px;text-align:center;}/*!sc*/ .gcUUDj:hover{background-color:#1253fa;}/*!sc*/ data-styled.g972[id="CommentFormTemplate___StyledButtonLink-sc-9b99b70c-1"]{content:"gcUUDj,"}/*!sc*/ .mfxIB{border:1px solid #d6dcea;border-radius:24px;margin:0 0 32px;padding-left:15px;background-color:#fff;overflow-x:auto;padding:24px 33.5px;}/*!sc*/ @media only screen and (max-width: 768px){.mfxIB{padding:21px;}}/*!sc*/ data-styled.g976[id="CommentStyles__StyledCommentContainer-sc-c986a6a7-0"]{content:"mfxIB,"}/*!sc*/ .kwjRGJ{display:flex;flex-direction:column;flex-grow:1;}/*!sc*/ data-styled.g978[id="CommentStyles__StyledCommentMeta-sc-c986a6a7-2"]{content:"kwjRGJ,"}/*!sc*/ .bSpdQq{align-items:center;display:flex;margin-bottom:16px;position:relative;}/*!sc*/ @media only screen and (max-width: 768px){.bSpdQq{align-items:flex-start;flex-direction:column;}}/*!sc*/ data-styled.g979[id="CommentStyles__StyledCommentMetaContainer-sc-c986a6a7-3"]{content:"bSpdQq,"}/*!sc*/ .iednMA{align-items:center;border-radius:8px;color:#4d5b7c;display:flex;flex-wrap:wrap;font-size:16px;line-height:1.5;margin-right:auto;}/*!sc*/ @media only screen and (max-width: 768px){.iednMA{align-items:flex-start;flex-direction:column;}.iednMA span{display:none;}}/*!sc*/ .iednMA span{margin:0 5px;}/*!sc*/ data-styled.g980[id="CommentStyles__StyledCommentMetaNameAndDate-sc-c986a6a7-4"]{content:"iednMA,"}/*!sc*/ .hCWzay{color:#0069ff;cursor:pointer;display:block;font-weight:500;}/*!sc*/ data-styled.g981[id="CommentStyles__StyledCommentMetaName-sc-c986a6a7-5"]{content:"hCWzay,"}/*!sc*/ .fGirDv{color:inherit;text-decoration:none;}/*!sc*/ .fGirDv:hover{text-decoration:underline;}/*!sc*/ data-styled.g982[id="CommentStyles__StyledCommentMetaDate-sc-c986a6a7-6"]{content:"fGirDv,"}/*!sc*/ .cYyzNU{color:#4d5b7c;font-size:16px;}/*!sc*/ @media only screen and (max-width: 768px){.cYyzNU{grid-column:span 2;}}/*!sc*/ data-styled.g983[id="CommentStyles__StyledCommentBody-sc-c986a6a7-7"]{content:"cYyzNU,"}/*!sc*/ .gXtcjD{align-items:center;flex-wrap:wrap;list-style-type:none;margin:24px 0 0;display:flex;padding:0;}/*!sc*/ .gXtcjD:empty{display:none;}/*!sc*/ .gXtcjD li{margin-right:16px;}/*!sc*/ .gXtcjD li:last-child{margin-right:0;}/*!sc*/ data-styled.g985[id="CommentStyles__StyledCommentActions-sc-c986a6a7-9"]{content:"gXtcjD,"}/*!sc*/ .ganxsQ{background:none;border:none;color:#0069ff;cursor:pointer;display:inline-block;font-size:13px;font-weight:400;line-height:1.8461538461538463;margin:0;padding:0;text-decoration:underline;transition:color 0.2s ease-in-out;vertical-align:top;}/*!sc*/ .ganxsQ:last-child{margin-right:0;}/*!sc*/ .ganxsQ:not(:disabled):hover{color:#1253fa;}/*!sc*/ .ganxsQ:disabled{color:#4d5b7c;cursor:not-allowed;}/*!sc*/ .ganxsQ b{font-weight:500;}/*!sc*/ data-styled.g986[id="CommentStyles__StyledCommentAction-sc-c986a6a7-10"]{content:"ganxsQ,"}/*!sc*/ .gdQvQz{align-items:center;background:none;border:0;border-radius:0;color:#0069ff;cursor:pointer;display:flex;font-size:13px;line-height:1.8461538461538463;margin:0;overflow:hidden;padding:0;text-decoration:underline;}/*!sc*/ @media only screen and (max-width: 768px){.gdQvQz{position:absolute;right:0;top:0;}}/*!sc*/ .gdQvQz span{display:block;height:24px;color:#081b4b;position:relative;width:24px;}/*!sc*/ .gdQvQz:hover{color:#1253fa;}/*!sc*/ .gdQvQz:hover span{color:#081b4b;}/*!sc*/ .gdQvQz svg{left:50%;transform:translate(-50%, -50%);position:absolute;top:50%;transition:transform 300ms ease-in-out;width:12px;}/*!sc*/ data-styled.g991[id="CommentStyles__StyledExpandButton-sc-c986a6a7-15"]{content:"gdQvQz,"}/*!sc*/ .kVMWkL{display:flex;flex-direction:column;line-height:1.4;margin:32px auto 0;position:relative;width:100%;}/*!sc*/ @media only screen and (max-width: 1024px){.kVMWkL{margin:0;}}/*!sc*/ data-styled.g994[id="CommentsTemplateStyles__StyledCommentsContainer-sc-43f3aa21-0"]{content:"kVMWkL,"}/*!sc*/ .eCZyMk{padding-top:40px;}/*!sc*/ @media only screen and (max-width: 1024px){.eCZyMk{display:none;}}/*!sc*/ data-styled.g1131[id="QuestionAndTutorialLeftContainerStyles__StyledColumnContainer-sc-d8dce6ad-0"]{content:"eCZyMk,"}/*!sc*/ .ijessN{position:sticky;top:230px;}/*!sc*/ data-styled.g1132[id="QuestionAndTutorialLeftContainerStyles__StyledStickyContainer-sc-d8dce6ad-1"]{content:"ijessN,"}/*!sc*/ .hOkEeI{padding:0 24px;}/*!sc*/ @media only screen and (min-width: 768px){.hOkEeI{padding:0 40px;}}/*!sc*/ @media only screen and (min-width: 1025px){.hOkEeI{display:grid;gap:clamp( 1rem, -10.076923076923077rem + 17.307692307692307vw, 5.5rem );grid-template-columns:192px minmax(0,1fr) 192px;margin:0 auto;max-width:1360px;padding:0 24px;}}/*!sc*/ data-styled.g1133[id="QuestionAndTutorialOuterContainerStyles__StyledOuterContainer-sc-94f1337-0"]{content:"hOkEeI,"}/*!sc*/ .jsWEOJ{padding-bottom:16px;padding-top:40px;}/*!sc*/ @media only screen and (max-width: 1024px){.jsWEOJ{display:none;}}/*!sc*/ data-styled.g1134[id="QuestionAndTutorialRightContainerStyles__StyledContainer-sc-67cb485e-0"]{content:"jsWEOJ,"}/*!sc*/ .ZhibX{position:sticky;top:230px;}/*!sc*/ data-styled.g1135[id="QuestionAndTutorialRightContainerStyles__StyledStickyContainer-sc-67cb485e-1"]{content:"ZhibX,"}/*!sc*/ .jLoSgL{margin-bottom:32px;}/*!sc*/ .jLoSgL:last-child{margin-bottom:0;}/*!sc*/ data-styled.g1136[id="QuestionAndTutorialSideNavigationStyles__StyledSideNavigationGroup-sc-8d4e3a-0"]{content:"jLoSgL,"}/*!sc*/ .cUgAOq{color:#000c2b;font-size:16px;font-weight:500;line-height:1.5;margin:0 0 16px;}/*!sc*/ data-styled.g1137[id="QuestionAndTutorialSideNavigationStyles__StyledHeading-sc-8d4e3a-1"]{content:"cUgAOq,"}/*!sc*/ .ghzFwn{font-size:16px;font-weight:500;line-height:1.5;margin:0 0 8px;}/*!sc*/ .ghzFwn:last-child{margin-bottom:0;}/*!sc*/ data-styled.g1138[id="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2"]{content:"ghzFwn,"}/*!sc*/ .jAcrvR{margin:0;}/*!sc*/ .jAcrvR a{color:#0069ff;margin:24px 0;}/*!sc*/ .jAcrvR a::after{font-size:1em;}/*!sc*/ .jAcrvR+li::before{background-color:#d6dcea;content:'';display:block;height:1px;position:relative;width:100%;}/*!sc*/ data-styled.g1139[id="QuestionAndTutorialSideNavigationStyles__StyledListItemEmphasized-sc-8d4e3a-3"]{content:"jAcrvR,"}/*!sc*/ .cqFhmh{color:#4d5b7c;transition:color 0.2s ease;}/*!sc*/ .cqFhmh:hover{color:#323232;}/*!sc*/ data-styled.g1140[id="QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0"]{content:"cqFhmh,"}/*!sc*/ .gMFPJj{background-image:url('/_next/static/media/community-cta-background.5fe326c6.svg');background-repeat:no-repeat;background-size:cover;border:2px solid rgba(17, 25, 46, 0.1);border-radius:16px;padding:24px;position:relative;}/*!sc*/ .gMFPJj h3{color:#000c2b;font-size:16px;font-weight:700;line-height:24px;margin:0 0 8px;}/*!sc*/ .gMFPJj p{color:#4d5b7c;font-size:14px;line-height:20px;margin:0;}/*!sc*/ data-styled.g1149[id="CommunityCTAStyles-sc-f4cdce3f-0"]{content:"gMFPJj,"}/*!sc*/ .hnkFuV{background-color:#0069ff;border-radius:40px;color:#fff;font-family:'__Inter_1fc7a2',sans-serif;font-size:14px;font-weight:600;line-height:20px;margin:24px 0 0;padding:6px 16px;transition:all 0.2s ease;}/*!sc*/ .hnkFuV:hover{background-color:#002c9b;color:#e3e8f4;}/*!sc*/ data-styled.g1151[id="CommunityCTA___StyledTextLink-sc-ca2b5295-1"]{content:"hnkFuV,"}/*!sc*/ .dhVrNO{background:#eff2fb;border-radius:8px;color:#4d5b7c;cursor:pointer;display:inline-block;font-size:14px;font-style:normal;font-weight:500;line-height:1.7142857142857142;margin:4px 8px 4px 0;padding:0 8px;text-align:center;text-decoration:none;transition:background 0.15s linear,color 0.15s linear;}/*!sc*/ .dhVrNO:hover{background:#1253fa;color:#fff;}/*!sc*/ data-styled.g1174[id="TagStyles__StyledTag-sc-a75ae9ac-0"]{content:"dhVrNO,"}/*!sc*/ .jgVACS{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin:auto;width:100%;}/*!sc*/ data-styled.g1210[id="QuestionSearchFooterStyles__StyledQuestionSearchFooterContent-sc-43bc7691-0"]{content:"jgVACS,"}/*!sc*/ .IuQNg{background:transparent;border:1px solid #aab3ca;border-radius:12px;color:#24335a;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;text-decoration:none;}/*!sc*/ .IuQNg:hover{background:#1253fa;border:1px solid #1253fa;box-shadow:0 10px 20px rgba(3, 27, 78, 0.1);color:#fff;transition:box-shadow 0.25s linear,-webkit-box-shadow 0.25s linear;}/*!sc*/ data-styled.g1211[id="QuestionSearchFooterStyles__StyledActionBox-sc-43bc7691-1"]{content:"IuQNg,"}/*!sc*/ .BIpEk{color:#081b4b;font-family:'__Epilogue_61966b',sans-serif;font-size:20px;font-style:normal;font-weight:500;line-height:28px;}/*!sc*/ data-styled.g1212[id="QuestionSearchFooter___StyledHeading-sc-b0972586-0"]{content:"BIpEk,"}/*!sc*/ .kDrTcG{background:none;border:none;border-radius:0;color:#081b4b;display:block;font-size:20px;font-weight:500;height:auto;padding:15px 20px;position:relative;text-align:left;white-space:inherit;}/*!sc*/ @media only screen and (max-width: 768px){.kDrTcG{display:inline-block;}}/*!sc*/ .kDrTcG:hover{background:none;}/*!sc*/ .kDrTcG:focus{border:none;box-shadow:none!important;}/*!sc*/ .kDrTcG.white{color:#fff;}/*!sc*/ data-styled.g1213[id="TutorialTabs___StyledButton-sc-f2c5ea96-0"]{content:"kDrTcG,"}/*!sc*/ .hwqQwE{stroke-dasharray:150%;stroke-linecap:round;stroke-width:2;}/*!sc*/ .hwqQwE.selected{animation:jHJSFW 0.6s forwards;}/*!sc*/ @media only screen and (max-width: 768px){.hwqQwE{stroke-dasharray:100%;transform:rotate(-90deg) translate(-6px,1px) scale(4);}}/*!sc*/ data-styled.g1214[id="TutorialTabs___StyledLine-sc-f2c5ea96-1"]{content:"hwqQwE,"}/*!sc*/ .gSGogM{background-color:#e5e8ed;border-radius:8px;bottom:-4px;display:inline-block;height:4px;left:0;position:absolute;width:100%;}/*!sc*/ @media only screen and (max-width: 768px){.gSGogM{height:3px;left:0;top:54px;width:100%;}}/*!sc*/ data-styled.g1215[id="TutorialTabs___StyledSvg-sc-f2c5ea96-2"]{content:"gSGogM,"}/*!sc*/ .LuTHN{border-bottom:4px solid #d6dcea;flex:none;margin-bottom:15px;text-align:center;width:100%;}/*!sc*/ .LuTHN button{display:inline-block;}/*!sc*/ data-styled.g1216[id="TutorialTabs___StyledDiv-sc-f2c5ea96-3"]{content:"LuTHN,"}/*!sc*/ .igwIZZ{align-items:center;background:#fff;display:flex;padding:40px;}/*!sc*/ .igwIZZ .alert{background:#15CD72;border-radius:8px;color:#fff;display:block;padding:8px;}/*!sc*/ .igwIZZ .alert-hidden{display:none;}/*!sc*/ data-styled.g1237[id="TechTalkRegistrationModalTemplateStyles__StyledFormContainer-sc-8b89ec4f-0"]{content:"igwIZZ,"}/*!sc*/ .fneTDw{display:flex;flex-direction:column;width:100%;}/*!sc*/ .fneTDw input{margin-bottom:8px;margin-left:0;z-index:1;}/*!sc*/ data-styled.g1238[id="TechTalkRegistrationModalTemplateStyles__StyledForm-sc-8b89ec4f-1"]{content:"fneTDw,"}/*!sc*/ .lhxYYL{background:#fff;border:1px solid #c0c2d3;border-radius:8px;box-shadow:0 4px 0 rgba(91, 105, 135, 0.2);box-sizing:border-box;height:48px;left:0;max-width:560px;padding:12px 24px;position:static;top:0;width:100%;}/*!sc*/ @media only screen and (max-width: 1024px){.lhxYYL{display:flex;flex-direction:column;}}/*!sc*/ data-styled.g1239[id="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2"]{content:"lhxYYL,"}/*!sc*/ .WomeH{background:#0069ff;border:0 solid transparent;border-radius:8px;box-shadow:0 0 0 transparent;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin:auto 0 auto 16px;max-width:fit-content;padding:16px;text-shadow:0 0 0 transparent;transition:background-color 0.6s ease;}/*!sc*/ .WomeH:hover{background-color:#1633ff;}/*!sc*/ data-styled.g1240[id="TechTalkRegistrationModalTemplateStyles__StyledSubmit-sc-8b89ec4f-3"]{content:"WomeH,"}/*!sc*/ .iSNMWw{background:#fff;border-radius:8px;display:flex;flex-direction:column;justify-content:space-between;margin:0 auto;max-width:776px;}/*!sc*/ @media only screen and (max-width: 1024px){.iSNMWw{width:100%;}}/*!sc*/ data-styled.g1241[id="TechTalkRegistrationModalTemplateStyles__StyledModalContent-sc-8b89ec4f-4"]{content:"iSNMWw,"}/*!sc*/ .hQlgAx{align-items:center;border-bottom:1px solid #f3f5f9;display:flex;justify-content:space-between;}/*!sc*/ data-styled.g1242[id="TechTalkRegistrationModalTemplateStyles__StyledModalHeader-sc-8b89ec4f-5"]{content:"hQlgAx,"}/*!sc*/ .fZaNDn{padding:24px;}/*!sc*/ data-styled.g1258[id="TechTalkRegistrationModalTemplate___StyledHeading-sc-3c341be5-0"]{content:"fZaNDn,"}/*!sc*/ .fSxWGV{font-family:'__JetBrains_Mono_26ed0d',monospace;font-size:16px;font-style:normal;font-weight:bold;letter-spacing:1px;line-height:24px;margin:20px 0 8px;text-transform:uppercase;color:#ff720e;}/*!sc*/ .fSxWGV::before{content:'// ';}/*!sc*/ .fSxWGV::after{content:' //';}/*!sc*/ data-styled.g1260[id="TutorialTemplate___StyledHeading-sc-f82223ba-1"]{content:"fSxWGV,"}/*!sc*/ .eDngSU{color:#031b4e;font-family:'__Epilogue_61966b',sans-serif;font-size:24px;font-style:normal;font-weight:bold;letter-spacing:-0.5px;line-height:40px;margin:0;padding:0;word-break:break-word;}/*!sc*/ @media only screen and (min-width: 768px){.eDngSU{font-size:32px;}}/*!sc*/ data-styled.g1261[id="TutorialTemplate___StyledHeading2-sc-f82223ba-2"]{content:"eDngSU,"}/*!sc*/ @keyframes jHJSFW{from{opacity:0;stroke-dashoffset:50;}to{opacity:1;stroke-dashoffset:0;}}/*!sc*/ data-styled.g1263[id="sc-keyframes-jHJSFW"]{content:"jHJSFW,"}/*!sc*/ @keyframes dTJZHc{0%{opacity:1;display:block;}100%{opacity:0;display:none;}}/*!sc*/ data-styled.g1264[id="sc-keyframes-dTJZHc"]{content:"dTJZHc,"}/*!sc*/ @keyframes buZmJQ{0%{opacity:0;display:none;}100%{opacity:1;display:block;}}/*!sc*/ data-styled.g1265[id="sc-keyframes-buZmJQ"]{content:"buZmJQ,"}/*!sc*/ @keyframes bVoocj{0%{background-color:rgb(255 255 255 / 0%);}100%{background-color:rgb(255 255 255 / 50%);}}/*!sc*/ data-styled.g1266[id="sc-keyframes-bVoocj"]{content:"bVoocj,"}/*!sc*/ </style></head><body><div id="__next"><div class="NotificationsStyles__NotificationsContainer-sc-3fed92dc-0 gxWftL"></div><div class="Layout__StyledLayout-sc-9a2c2eaa-0 eRAxIv"><div class="HeaderStyles__StyledHeader-sc-2183282b-0 iRpprC"><div aria-label="Top Bar" class="TopBarstyles__StyledTopBar-sc-17n1n7p-0 jAevVa"><nav class="TopBarstyles__StyledTopBarContainer-sc-17n1n7p-1 hXYJJd"><div class="TopBarstyles__StyledTopBarCTAs-sc-17n1n7p-2 gNfbaK"></div><ul class="TopBarstyles__StyledTopBarLinks-sc-17n1n7p-3 dQLKLT"><li class="Typographystyles-sc-o7qsl9-0 iDUbLq"><a href="/blog">Blog</a></li><li class="Typographystyles-sc-o7qsl9-0 iDUbLq"><a href="https://docs.digitalocean.com/products">Docs</a></li><li class="Typographystyles-sc-o7qsl9-0 iDUbLq"><a href="/support">Get Support</a></li><li class="Typographystyles-sc-o7qsl9-0 iDUbLq"><a href="/company/contact/sales?referrer=tophat">Contact Sales</a></li></ul></nav></div><header class="Headerstyles__StyledHeader-sc-9ucsot-0 kQRSde"><div class="Headerstyles__StyledHeaderContainer-sc-9ucsot-1 khIPJI"><div class="Headerstyles__StyledHeaderLogo-sc-9ucsot-2 kjXNsT"><a href="/"><span class="Typographystyles-sc-o7qsl9-0 liuhbD">DigitalOcean</span><div aria-hidden="true" class="DigitalOceanStyles__StyledLogo-sc-a8278400-1 eUPtCH"><svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 90 90" tabindex="-1" class="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4 hjiknj"><circle cx="45" cy="45" r="36.25" fill="none" stroke="currentColor" stroke-width="17.5" stroke-dasharray="170.824100538945 56.941366846315" stroke-dashoffset="113.88273369263" class="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0 bFTXQH"></circle><rect x="3.25" y="61.5" width="11" height="11" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1 fLzQlC"></rect><rect x="14.25" y="72.5" width="13.5" height="13.5" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2 gicUQZ"></rect><rect x="27.5" y="55.25" width="17.25" height="17.25" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3 fAILdG"></rect></svg><svg xmlns="http://www.w3.org/2000/svg" height="32" viewBox="32 0 159 32" fill="currentColor" class="DigitalOceanStyles__StyledText-sc-a8278400-0 fApuTk"><path d="M57.242 9.305c-1.835-1.254-4.129-1.9-6.806-1.9h-5.812v18.399h5.812c2.677 0 4.971-.685 6.806-2.015.994-.722 1.797-1.711 2.333-2.965.535-1.255.841-2.699.841-4.334 0-1.635-.268-3.079-.841-4.296-.536-1.254-1.3-2.242-2.333-2.889Zm-9.213 1.179h1.835c2.027 0 3.709.38 4.971 1.178 1.415.837 2.141 2.471 2.141 4.79 0 2.395-.726 4.068-2.141 4.98-1.224.798-2.868 1.217-4.933 1.217h-1.835V10.484h-.038Zm16.479-3.346c-.574 0-1.032.191-1.415.571-.382.38-.612.836-.612 1.406s.192 1.027.574 1.445c.382.38.879.57 1.453.57.574 0 1.032-.19 1.453-.57.382-.38.574-.875.574-1.445 0-.57-.192-1.026-.574-1.406-.421-.342-.918-.571-1.453-.571Zm-1.683 5.664h3.288v12.963h-3.288zm15.177 1.103c-.994-.874-2.103-1.369-3.288-1.369-1.797 0-3.327.609-4.474 1.863-1.185 1.217-1.759 2.775-1.759 4.638 0 1.825.574 3.383 1.721 4.638 1.147 1.216 2.677 1.824 4.474 1.824 1.262 0 2.332-.342 3.25-1.026v.304c0 1.064-.306 1.901-.841 2.471-.574.57-1.377.874-2.333.874-1.529 0-2.447-.608-3.632-2.128l-2.218 2.128.076.076c.498.685 1.224 1.331 2.18 1.939.956.608 2.218.95 3.633.95 1.95 0 3.517-.608 4.664-1.786 1.148-1.179 1.759-2.775 1.759-4.714V12.803h-3.212v1.102Zm-.878 7.641c-.574.646-1.3.95-2.256.95-.956 0-1.683-.304-2.218-.95-.574-.646-.841-1.483-.841-2.547s.267-1.901.841-2.547c.574-.646 1.3-.95 2.218-.95.956 0 1.682.304 2.256.95.573.646.841 1.521.841 2.547.038 1.064-.268 1.901-.841 2.547Zm6.883-8.744h3.288v12.963h-3.288zm1.685-5.664c-.574 0-1.033.191-1.415.571-.382.38-.612.836-.612 1.406s.191 1.027.574 1.445c.382.38.879.57 1.453.57.573 0 1.032-.19 1.453-.57.382-.38.573-.875.573-1.445 0-.57-.191-1.026-.573-1.406-.421-.342-.88-.571-1.453-.571Zm8.793 2.167h-3.212v3.498h-1.874v2.965h1.874v5.36c0 1.672.344 2.889.994 3.573.689.684 1.874 1.064 3.518 1.064.535 0 1.071 0 1.606-.038h.153v-2.965l-1.109.076c-.765 0-1.3-.152-1.568-.418-.267-.266-.382-.836-.382-1.71v-4.904h3.059v-2.965h-3.059V9.305Zm18.43-1.939h3.288v18.4h-3.288v-18.4Zm36.364 13.762c-.574.646-1.186 1.216-1.645 1.52-.458.304-1.032.418-1.682.418-.956 0-1.759-.342-2.371-1.064-.612-.722-.956-1.635-.956-2.737s.306-2.015.918-2.737c.612-.722 1.415-1.064 2.371-1.064 1.07 0 2.179.646 3.135 1.786l2.18-2.053c-1.415-1.824-3.212-2.661-5.354-2.661-1.797 0-3.364.647-4.626 1.939-1.262 1.293-1.912 2.889-1.912 4.828 0 1.939.65 3.573 1.912 4.828 1.262 1.292 2.829 1.939 4.626 1.939 2.371 0 4.283-1.027 5.583-2.89l-2.179-2.052Zm13.459-6.501c-.459-.646-1.109-1.178-1.874-1.558-.765-.38-1.683-.57-2.715-.57-1.835 0-3.327.684-4.435 1.976-1.109 1.331-1.645 2.965-1.645 4.866 0 1.977.612 3.574 1.797 4.828 1.186 1.216 2.792 1.863 4.742 1.863 2.218 0 4.015-.875 5.391-2.623l.077-.076-2.141-2.053c-.192.228-.498.494-.727.76-.306.304-.612.532-.956.684a3.856 3.856 0 0 1-1.644.381c-.918 0-1.644-.266-2.218-.799-.535-.494-.841-1.14-.918-1.976h8.68l.039-1.179c0-.836-.115-1.635-.345-2.395-.305-.798-.65-1.482-1.108-2.129Zm-7.15 3.042a3.28 3.28 0 0 1 .841-1.521c.459-.418 1.032-.646 1.721-.646.803 0 1.414.228 1.835.684.382.418.612.912.65 1.521h-5.047v-.038Zm19.731-3.878c-.994-.836-2.37-1.255-4.091-1.255-1.109 0-2.103.229-3.021.685a5.297 5.297 0 0 0-2.218 2.09l.039.038 2.103 2.015c.879-1.368 1.835-1.862 3.097-1.862.688 0 1.262.19 1.682.532.421.342.65.798.65 1.406v.647c-.803-.229-1.606-.381-2.409-.381-1.644 0-2.944.381-3.938 1.141-.994.76-1.491 1.863-1.491 3.231 0 1.217.42 2.205 1.262 2.927.841.722 1.911 1.065 3.173 1.065s2.409-.495 3.48-1.369v1.064h3.212V17.44c-.039-1.596-.536-2.813-1.53-3.649Zm-5.813 7.032c.383-.266.88-.38 1.568-.38a7.31 7.31 0 0 1 2.485.457v1.254c-.726.646-1.682.988-2.829.988-.574 0-.994-.114-1.3-.38-.306-.228-.459-.532-.459-.95 0-.418.153-.76.535-.989Zm19.922-6.804c-.918-1.026-2.18-1.52-3.824-1.52-1.3 0-2.37.38-3.135 1.102v-.798h-3.212v12.963h3.288v-7.147c0-.988.23-1.749.689-2.319.458-.57 1.108-.836 1.95-.836.726 0 1.3.228 1.72.722.421.494.612 1.178.612 2.053v7.489h3.288v-7.489c0-1.787-.458-3.193-1.376-4.22Zm-80.64-.228c-.994-.836-2.371-1.255-4.091-1.255-1.109 0-2.103.229-3.021.685a5.291 5.291 0 0 0-2.218 2.09l.038.038 2.103 2.015c.88-1.368 1.836-1.862 3.098-1.862.688 0 1.261.19 1.682.532.421.342.65.798.65 1.406v.647c-.803-.229-1.606-.381-2.409-.381-1.644 0-2.944.381-3.938 1.141-.994.76-1.492 1.863-1.492 3.231 0 1.217.421 2.205 1.262 2.927s1.912 1.065 3.174 1.065 2.409-.495 3.48-1.369v1.064h3.211V17.44c-.038-1.596-.535-2.813-1.529-3.649Zm-5.813 7.032c.383-.266.88-.38 1.568-.38a7.31 7.31 0 0 1 2.485.457v1.254c-.726.646-1.682.988-2.829.988-.574 0-.994-.114-1.3-.38-.306-.228-.459-.532-.459-.95 0-.418.153-.76.535-.989Zm25.082 5.209c-5.238 0-9.521-4.258-9.521-9.466 0-5.208 4.283-9.466 9.521-9.466 5.239 0 9.521 4.258 9.521 9.466 0 5.208-4.244 9.466-9.521 9.466Zm-.001-15.624c-3.403 0-6.156 2.737-6.156 6.12s2.753 6.121 6.156 6.121c3.403 0 6.156-2.738 6.156-6.121 0-3.383-2.753-6.12-6.156-6.12Z"></path></svg></div></a></div><nav aria-label="Main" class="Navigationstyles__StyledNavigation-sc-16d688r-0 iNeWsG"><div class="Navigationstyles__StyledNavigationContainer-sc-16d688r-1 eurNaw"><ul class="Navigationstyles__StyledNavigationList-sc-16d688r-2 lgNUwG"><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 jIrYZj"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 kYYRis">Products</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 hJbnLp"><ul class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 cpPLSu"><li class="Featurestyles__StyledFeature-sc-1xznbxx-0 cJmNMu"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Featured Products</p><ul><li><a href="/products/droplets"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Droplets</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Scalable virtual machines</span></a></li><li><a href="/products/kubernetes"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Kubernetes</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Scalable virtual machines</span></a></li><li><a href="/products/ai-ml"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">AI / ML</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Build and scale AI models</span></a></li><li><a href="/products/cloudways"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Cloudways</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Managed cloud hosting</span></a></li><li><a href="/products/app-platform"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">App Platform</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Get apps to market faster</span></a></li></ul></li><li class="Dropdownstyles__StyledDropdownColumns-sc-16wobc6-3 gmoCMg"><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Compute</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/droplets">Droplets</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/kubernetes">Kubernetes</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/droplets/cpu-optimized">CPU-Optimized Droplets</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/functions">Functions</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/app-platform">App Platform</a></li></ul></div></div><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">AI / ML</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/gpu-droplets">GPU Droplets</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/ai-ml/1-click-models">1-Click Models</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/gen-ai">GenAI Platform</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/bare-metal-gpu">Bare Metal</a></li></ul></div></div><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Backups & Snapshots</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/backups">Backups</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/images/snapshots">Snapshots</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://marketplace.digitalocean.com/add-ons/snapshooter">SnapShooter</a></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Networking</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/vpc">Virtual Private Cloud (VPC)</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/cloud-firewalls">Cloud Firewalls</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/load-balancers">Load Balancers</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/networking/dns">DNS</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/ddos-protection">DDoS Protection</a></li></ul></div></div><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Managed Databases</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-mongodb">MongoDB</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-kafka">Kafka</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-mysql">MySQL</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-postgresql">PostgreSQL</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-redis">Caching</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/managed-databases-opensearch">OpenSearch</a></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Storage</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/spaces">Spaces Object Storage</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/block-storage">Volume Block Storage</a></li></ul></div></div><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Developer Tools</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/reference/api/">API</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/tools-and-integrations">CLI</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/support">Support Plans</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/monitoring">Monitoring</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/uptime-monitoring">Uptime</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/identity-access-management">Identity Access Management</a></li></ul></div></div><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Cloud Website Hosting</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/products/cloudways">Cloudways</a></li></ul></div></div></ul></li></ul><div class="Dropdownstyles__StyledDropdownCTAs-sc-16wobc6-4 iaVpsa"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu Dropdownstyles__StyledDropdownCTA-sc-16wobc6-5 bia-dMd" href="/products"><span>See all products</span><svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 jIrYZj"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 kYYRis">Solutions</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 hJbnLp"><ul class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 cpPLSu"><li class="Dropdownstyles__StyledDropdownColumns-sc-16wobc6-3 gmoCMg"><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Tagsstyles__StyledTagsContainer-sc-1bfvx6z-0 fhYyBy"><ul class="Tagsstyles__StyledTagsList-sc-1bfvx6z-1 imkYwE"><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/products/ai-ml">AI and Machine Learning<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Develop, train, and deploy AI apps</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/products/gpu-droplets">GPUs</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/products/gen-ai">GenAI Platform</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/products/ai-ml/1-click-models">1-Click Models</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/blockchain">Blockchain<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Infrastructure for decentralized apps</span></div></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/content-hosting">Blogs, Forums and Content Websites<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Lightning-fast, reliable CMS hosting</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/wordpress-hosting">Wordpress</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="https://marketplace.digitalocean.com/apps/ghost">Ghost</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="https://marketplace.digitalocean.com/apps/mastodon">Mastodon</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/data-analytics">Data Analytics<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Real-time data processing at scale</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/data-streaming-cloud">Data Streaming</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/adtech-martech">AdTech & Martech</a></li></ul></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Tagsstyles__StyledTagsContainer-sc-1bfvx6z-0 fhYyBy"><ul class="Tagsstyles__StyledTagsList-sc-1bfvx6z-1 imkYwE"><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/developer-tools">Developer Tools<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">DevOps and CI/CD solutions</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/cicd-pipelines">CI/CD</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/prototype-hosting">Prototyping</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/digital-marketing-agencies">Digital Marketing Agencies<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Power your clients’ websites and campaigns</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/freelancer-website-hosting">Freelancer</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/it-consulting">IT Consulting</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/ecommerce-hosting">Ecommerce<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Build beautiful online storefronts</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/dropshipping-hosting">Dropshipping</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="https://marketplace.digitalocean.com/apps/wordpress-woocommerce">WooCommerce</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="https://marketplace.digitalocean.com/apps/magento-2-open-source">Magento</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/gaming-development">Game Development<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Low-latency multiplayer servers</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="https://marketplace.digitalocean.com/apps/minecraft-java-edition-server">Minecraft Hosting</a></li></ul></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Tagsstyles__StyledTagsContainer-sc-1bfvx6z-0 fhYyBy"><ul class="Tagsstyles__StyledTagsList-sc-1bfvx6z-1 imkYwE"><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/iot-cloud">IOT<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Connect to the power of the cloud</span></div></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/isv">ISVs<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Streamlined ISV application development</span></div></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/secure-web-hosting">Secure Web Hosting<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Powerful protection from DDoS and more</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/vpn">Private VPN</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/startups">Startup Cloud Hosting<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Scalable, cost-effective infrastructure</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/small-business-website-hosting">Small Business</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/streaming">Video Streaming<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">High-bandwidth, low-latency delivery</span></div></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Tagsstyles__StyledTagsContainer-sc-1bfvx6z-0 fhYyBy"><ul class="Tagsstyles__StyledTagsList-sc-1bfvx6z-1 imkYwE"><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/web-mobile-apps">Web and Mobile Apps<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Simple cross-platform app hosting</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/cpanel-hosting">cPanel</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/docker-hosting">Docker</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/nextjs-hosting">Next.js</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/nodejs-hosting">Node.js</a></li></ul></li><li class="Tagsstyles__StyledTagsListItem-sc-1bfvx6z-2 bEsgRk"><div class="Tagsstyles__StyledTagsListItemContent-sc-1bfvx6z-4 ilzDgo"><span class="Typographystyles-sc-o7qsl9-0 cvZqkW"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/solutions/website-hosting">Website Hosting<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span><span class="Typographystyles-sc-o7qsl9-0 saphT">Fast page loads and reliable site uptime</span></div><ul class="Tagsstyles__StyledTags-sc-1bfvx6z-5 kZNQIH"><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/vps-hosting">VPS Hosting</a></li><li><a class="Tagstyles-sc-ohbvtg-0 gSYjjt" href="/solutions/virtual-machines">Virtual Machines</a></li></ul></li></ul></div></div><div><div class="Cardsstyles__StyledCardsContainer-sc-ebft8b-0 iiefHi"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Questions?</p><ul class="Cardsstyles__StyledCards-sc-ebft8b-1 kcLBmQ"><li class="Cardsstyles__StyledCard-sc-ebft8b-2 kRVMJy"><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/company/contact/sales?referrer=mainmenu/solutions">Talk to an expert<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li></ul></div></div></ul></li></ul><div class="Dropdownstyles__StyledDropdownCTAs-sc-16wobc6-4 iaVpsa"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu Dropdownstyles__StyledDropdownCTA-sc-16wobc6-5 bia-dMd" href="/business"><span>See all solutions</span><svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 jIrYZj"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 kYYRis">Developers</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 hJbnLp"><ul class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 cpPLSu"><li class="Featurestyles__StyledFeature-sc-1xznbxx-0 cJmNMu"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Our Community</p><ul><li><a href="/community"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Community Home</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">DevOps and development guides</span></a></li><li><a target="_blank" href="https://css-tricks.com"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">CSS-Tricks<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">All things web design</span></a></li><li><a href="/resources"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">The Wave</span><br/><span class="Typographystyles-sc-o7qsl9-0 kLhCbB Featurestyles__StyledFeatureDescription-sc-1xznbxx-2 cIrmJV">Content to level up your business.</span></a></li></ul></li><li class="Dropdownstyles__StyledDropdownColumns-sc-16wobc6-3 gmoCMg"><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Resources</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/community/tutorials">Tutorials</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/community/questions">Questions and Answers</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://marketplace.digitalocean.com">Marketplace</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/community/tools">Tools</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/community/pages/write-for-digitalocean">Write for DOnations</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/customers">Customer Stories</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/blog">DigitalOcean Blog</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/pricing/calculator">Pricing Calculator</a></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Get Involved</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/hatch">Hatch Startup Program</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/open-source">Open Source Sponsorships</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a target="_blank" href="https://hacktoberfest.com">Hacktoberfest<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a target="_blank" href="/deploy">Deploy 2025<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/impact">DO Impact</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/impact/nonprofits">Nonprofits</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/wavemakers">Wavemakers Program</a></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Documentation</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/getting-started">Quickstart</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/compute">Compute</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/storage">Storage</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/databases">Managed Databases</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/container-registry/">Containers</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/products/billing">Billing</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="https://docs.digitalocean.com/reference/api">API Reference</a></li></ul></div></div></ul></li></ul></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 jIrYZj"><button type="button" aria-expanded="false"><span class="Typographystyles-sc-o7qsl9-0 kYYRis">Partners</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div class="Dropdownstyles__StyledDropdown-sc-16wobc6-1 hJbnLp"><ul class="Dropdownstyles__StyledDropdownContainer-sc-16wobc6-0 cpPLSu"><li class="Featurestyles__StyledFeature-sc-1xznbxx-0 cJmNMu"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">DigitalOcean Partner Programs</p><ul><li><a href="/partners/pod"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Become a Partner</span></a></li><li><a href="/partners/services"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Partner Services Program</span></a></li><li><a href="/partners/isv"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">ISV Partner Program</span></a></li><li><a target="_blank" href="https://marketplace.digitalocean.com/"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Marketplace<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></span></a></li><li><a href="/hatch"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Hatch Partner Program</span></a></li><li><a href="/partners/directory"><span class="Typographystyles-sc-o7qsl9-0 dUkcXP Featurestyles__StyledFeatureTitle-sc-1xznbxx-1 gKuGph">Connect with a Partner</span></a></li></ul></li><li class="Dropdownstyles__StyledDropdownColumns-sc-16wobc6-3 gmoCMg"><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Liststyles__StyledListContainer-sc-1elshwh-0 lhzoCV"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Partner Programs Resources</p><ul class="Liststyles__StyledList-sc-1elshwh-1 gvoncB"><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/customers">Customer Stories</a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a target="_blank" href="https://www.youtube.com/playlist?list=PLseEp7p6Ewibnv09L_48W3bi2HKiY6lrx">DigitalOcean Onboarding Series<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a target="_blank" href="https://ugurus.com/start-here/?utm_source=DO&utm_medium=partners&utm_content=menu">Training for Agencies and Freelancers<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="7" y1="17" x2="17" y2="7"></line><polyline points="7 7 17 7 17 17"></polyline></svg></a></li><li class="Typographystyles-sc-o7qsl9-0 dJqBXQ"><a href="/pricing/calculator">Price Estimate Calculator</a></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Cardsstyles__StyledCardsContainer-sc-ebft8b-0 iiefHi"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Featured Partner Articles</p><ul class="Cardsstyles__StyledCards-sc-ebft8b-1 kcLBmQ"><li class="Cardsstyles__StyledCard-sc-ebft8b-2 kEwFMa"><p class="Typographystyles-sc-o7qsl9-0 ikXVrB">Cloud cost optimization best practices</p><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/resources/articles/cloud-cost-optimization">Read more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li><li class="Cardsstyles__StyledCard-sc-ebft8b-2 kEwFMa"><p class="Typographystyles-sc-o7qsl9-0 ikXVrB">How to choose a cloud provider</p><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/resources/cloud-service-providers-how-to-choose">Read more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li><li class="Cardsstyles__StyledCard-sc-ebft8b-2 kEwFMa"><p class="Typographystyles-sc-o7qsl9-0 ikXVrB">DigitalOcean vs. AWS Lightsail: Which Cloud Platform is Right for You?</p><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/resources/articles/digitalocean-vs-awslightsail">Read more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li></ul></div></div></ul><ul class="Dropdownstyles__StyledDropdownColumn-sc-16wobc6-2 ghVuUg"><div><div class="Cardsstyles__StyledCardsContainer-sc-ebft8b-0 iiefHi"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">Questions?</p><ul class="Cardsstyles__StyledCards-sc-ebft8b-1 kcLBmQ"><li class="Cardsstyles__StyledCard-sc-ebft8b-2 kRVMJy"><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/company/contact/sales?referrer=mainmenu/partners">Talk to an expert<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li></ul></div></div><div><div class="Cardsstyles__StyledCardsContainer-sc-ebft8b-0 iiefHi"><p class="Typographystyles-sc-o7qsl9-0 RRfqP">New Partnerships</p><ul class="Cardsstyles__StyledCards-sc-ebft8b-1 kcLBmQ"><li class="Cardsstyles__StyledCard-sc-ebft8b-2 jNGEtR"><span class="Typographystyles-sc-o7qsl9-0 mOScw"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/products/ai-ml/1-click-models">1-Click Models powered by Hugging Face<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></span></li></ul></div></div></ul></li></ul></div></li><li class="Navigationstyles__StyledNavigationItem-sc-16d688r-3 kghgPX"><a href="/pricing"><span class="Typographystyles-sc-o7qsl9-0 kYYRis">Pricing</span></a></li></ul><div class="Navigationstyles__StyledNavigationContent-sc-16d688r-5 eYHulT"><ul class="HeaderStyles__StyledCTALinks-sc-2183282b-1 cYiDET"><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-2183282b-2 icaRFe"><button aria-disabled="false" id="loginMenuTrigger" aria-haspopup="menu" aria-controls="loginmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 hsLsNq">Log in<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="loginmenu" aria-labelledby="loginMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-56d46e8d-0 hHrQLL"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-56d46e8d-1 cwRkdj"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-56d46e8d-2 bEyAUk">Log in to:</li><button type="button" class="ActionMenuStyles__StyledCloseButton-sc-56d46e8d-3 glmMcY"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#4D5B7C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&type=login"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> <!-- -->Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://cloud.digitalocean.com/login"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-2183282b-2 icaRFe"><button aria-disabled="false" id="signupMenuTrigger" aria-haspopup="menu" aria-controls="signupmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 crNCzT">Sign up<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="signupmenu" aria-labelledby="signupMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-56d46e8d-0 hHrQLL"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-56d46e8d-1 cwRkdj"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-56d46e8d-2 bEyAUk">Sign up for:</li><button type="button" class="ActionMenuStyles__StyledCloseButton-sc-56d46e8d-3 glmMcY"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#4D5B7C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&type=register"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> <!-- -->Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://cloud.digitalocean.com/registrations/new"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li></ul></div><div class="Navigationstyles__StyledNavigationLinks-sc-16d688r-4 jFjgeh"><ul><li><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 gmYUxJ" href="/blog">Blog</a></li><li><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 gmYUxJ" href="https://docs.digitalocean.com/products">Docs</a></li><li><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 gmYUxJ" href="/support">Get Support</a></li><li><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 gmYUxJ" href="/company/contact/sales?referrer=tophat">Contact Sales</a></li></ul></div></div><div style="height:0px" class="Navigationstyles__StyledNavigationBackground-sc-16d688r-6 ijxMOa"></div></nav><div class="Headerstyles__StyledHeaderContent-sc-9ucsot-5 ggJDyn"><ul class="HeaderStyles__StyledCTALinks-sc-2183282b-1 cYiDET"><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-2183282b-2 icaRFe"><button aria-disabled="false" id="loginMenuTrigger" aria-haspopup="menu" aria-controls="loginmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 hsLsNq">Log in<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="loginmenu" aria-labelledby="loginMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-56d46e8d-0 hHrQLL"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-56d46e8d-1 cwRkdj"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-56d46e8d-2 bEyAUk">Log in to:</li><button type="button" class="ActionMenuStyles__StyledCloseButton-sc-56d46e8d-3 glmMcY"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#4D5B7C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&type=login"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> <!-- -->Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://cloud.digitalocean.com/login"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li><li data-ignore-clicks-outside-action-menu="true" class="HeaderStyles__StyledCommunityCTA-sc-2183282b-2 icaRFe"><button aria-disabled="false" id="signupMenuTrigger" aria-haspopup="menu" aria-controls="signupmenu" aria-expanded="false" tabindex="0" class="Buttonstyles-sc-hznqte-1 crNCzT">Sign up<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul role="menu" id="signupmenu" aria-labelledby="signupMenuTrigger" tabindex="-1" class="ActionMenuStyles__StyledActionMenu-sc-56d46e8d-0 hHrQLL"><div class="ActionMenuStyles__StyledActionMenuTitle-sc-56d46e8d-1 cwRkdj"><li class="ActionMenuStyles__StyledActionMenuTitleText-sc-56d46e8d-2 bEyAUk">Sign up for:</li><button type="button" class="ActionMenuStyles__StyledCloseButton-sc-56d46e8d-3 glmMcY"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#4D5B7C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://www.digitalocean.com/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&type=register"><svg width="16" height="16" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0455 19.5044V23.9547L16.5764 19.5044H27.4429L27.4429 5.86716L4.55701 5.86716V19.5044L11.0455 19.5044ZM9.67239 28.9101C9.01808 29.4365 8.0455 28.9708 8.0455 28.131V22.5044H4.55701C2.90015 22.5044 1.55701 21.1613 1.55701 19.5044V5.86716C1.55701 4.2103 2.90015 2.86716 4.557 2.86716H27.4429C29.0998 2.86716 30.4429 4.2103 30.4429 5.86716V19.5044C30.4429 21.1613 29.0998 22.5044 27.4429 22.5044H17.6335L9.67239 28.9101Z" fill="currentColor"></path></svg> <!-- -->Community</a></li><li role="menuitem" tabindex="-1" class="Typographystyles-sc-o7qsl9-0 juQGol ActionMenuStyles__StyledActionMenuItem-sc-56d46e8d-4 ijUUOp"><a class="ProfileStyles__StyledProfileLink-sc-ca52d662-1 eLrcFE" href="https://cloud.digitalocean.com/registrations/new"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>DigitalOcean</a></li></ul></li></ul></div><div class="Headerstyles__StyledDivider-sc-9ucsot-7 eIcvZY"></div><button type="button" aria-label="Menu" class="Headerstyles__StyledHeaderToggle-sc-9ucsot-3 jLXUXx"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button></div></header><nav aria-label="Quick links" class="SubNavigationstyles__StyledSubNavigation-sc-k2wuim-0 bSFiWy SubNavigationStyles__StyledCommunitySubNavigation-sc-664e80d1-1 kCtOIs"><ul class="SubNavigationstyles__StyledSubNavigationContainer-sc-k2wuim-1 bSYhcw"><li class="Typographystyles-sc-o7qsl9-0 kYYRis SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 kA-diUc"><a href="/community/tutorials">Tutorials</a></li><li class="Typographystyles-sc-o7qsl9-0 kYYRis SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 kA-diUc"><a href="/community/questions">Questions</a></li><li class="Typographystyles-sc-o7qsl9-0 kYYRis SubNavigationstyles__StyledSubNavigationLink-sc-k2wuim-2 kA-diUc"><a href="https://docs.digitalocean.com">Product Docs</a></li><li><button id="communitysearch" type="button" class="SubNavigationStyles__StyledCommunitySearch-sc-664e80d1-0 ezraOu"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg><span class="Typographystyles-sc-o7qsl9-0 fmHvBz">Search Community</span><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.7298 20C13.1835 20 12.8314 19.4907 13.0826 19.0638L17.6229 11.3465C17.7481 11.1336 17.9978 11 18.2702 11C18.8165 11 19.1686 11.5093 18.9174 11.9362L14.3771 19.6535C14.2519 19.8664 14.0022 20 13.7298 20Z" fill="currentColor"></path><path fill-rule="evenodd" d="M24.125 3H7.875C5.18261 3 3 5.18261 3 7.875V24.125C3 26.8174 5.18261 29 7.875 29H24.125C26.8174 29 29 26.8174 29 24.125V7.875C29 5.18261 26.8174 3 24.125 3ZM6.84677 4.79101C7.16993 4.68332 7.51565 4.625 7.875 4.625H24.125C24.4875 4.625 24.8361 4.68434 25.1617 4.79384L22.3774 7.61733C21.928 7.38268 21.417 7.25 20.875 7.25H11.125C10.6073 7.25 10.1178 7.37106 9.68341 7.58641L6.84677 4.79101ZM5.57691 5.57689C4.98877 6.16503 4.625 6.97753 4.625 7.875V24.125C4.625 25.1615 5.1102 26.0846 5.86586 26.6797L8.57924 22.2705C8.13837 21.7158 7.875 21.0136 7.875 20.25V10.5C7.875 9.76185 8.12108 9.08118 8.53568 8.53555L5.57691 5.57689ZM9.76202 23.2013L7.23674 27.3123C7.44312 27.3534 7.65654 27.375 7.875 27.375H24.125C24.4982 27.375 24.8567 27.3121 25.1906 27.1963L22.6081 22.9998C22.1065 23.3166 21.5122 23.5 20.875 23.5H11.125C10.6383 23.5 10.1765 23.393 9.76202 23.2013ZM27.375 24.125C27.375 25.0058 27.0246 25.8047 26.4557 26.3901L23.6839 21.8859C23.9643 21.4054 24.125 20.8465 24.125 20.25V10.5C24.125 9.78536 23.8943 9.1246 23.5034 8.58809L26.448 5.60208C27.0215 6.18812 27.375 6.99027 27.375 7.875V24.125ZM9.5 10.5C9.5 9.60254 10.2275 8.875 11.125 8.875H20.875C21.7725 8.875 22.5 9.60254 22.5 10.5V20.25C22.5 21.1475 21.7725 21.875 20.875 21.875H11.125C10.2275 21.875 9.5 21.1475 9.5 20.25V10.5Z" fill="currentColor"></path></svg></button></li></ul></nav></div><div class="QuestionAndTutorialOuterContainerStyles__StyledOuterContainer-sc-94f1337-0 hOkEeI"><div class="QuestionAndTutorialLeftContainerStyles__StyledColumnContainer-sc-d8dce6ad-0 eCZyMk"><div class="QuestionAndTutorialLeftContainerStyles__StyledStickyContainer-sc-d8dce6ad-1 ijessN"><nav aria-labelledby="table-of-contents" class="TableOfContentsStyles__StyledTableOfContentsContainer-sc-8a21f586-0 gqBRRz"><h2 id="table-of-contents" class="TableOfContentsStyles__StyledTableOfContentsTitle-sc-8a21f586-1 dhdJdx">CONTENTS</h2><ol class="TableOfContentsStyles__StyledTableOfContentsList-sc-8a21f586-2 ifwrc"><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#testing-connectivity-to-nodes"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Testing Connectivity to Nodes</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#connecting-as-a-different-user"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Connecting as a Different User</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#using-a-custom-ssh-key"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Using a Custom SSH Key</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#using-password-based-authentication"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Using Password-Based Authentication</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#providing-the-sudo-password"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Providing the sudo Password</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#using-a-custom-inventory-file"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Using a Custom Inventory File</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#running-ad-hoc-commands"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Running ad-hoc Commands</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#running-playbooks"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Running Playbooks</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#getting-information-about-a-play"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Getting Information about a Play</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#controlling-playbook-execution"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Controlling Playbook Execution</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#using-ansible-vault-to-store-sensitive-data"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Using Ansible Vault to Store Sensitive Data</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#running-a-playbook-with-data-encrypted-via-ansible-vault"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Running a Playbook with Data Encrypted via Ansible Vault</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#debugging"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Debugging</h2></a></li><li level="1" class="TableOfContentsStyles__StyledTableOfContentsListItem-sc-8a21f586-3 bljiJp"><a class="TableOfContentsStyles__StyledTableOfContentsListLink-sc-8a21f586-4 QlmaO" href="/community/tutorials/how-to-use-ansible-cheat-sheet-guide#conclusion"><h2 class="TableOfContentsStyles__StyledTableOfContentsListItemText-sc-8a21f586-5 eEMXWO">Conclusion</h2></a></li></ol></nav></div></div><div class="ContainerStyles__StyledContainer-sc-c33ad18f-0 cOvNzl"><div class="TutorialTemplateStyles__StyledRecordHeaderContainer-sc-337a0527-0 dxcDAS"><h4 class="HeadingStyles__StyledH4-sc-73f0758c-3 lfDrER TutorialTemplate___StyledHeading-sc-f82223ba-1 fSxWGV">Cheatsheet</h4><h1 class="HeadingStyles__StyledH1-sc-73f0758c-0 kpquAR TutorialTemplate___StyledHeading2-sc-f82223ba-2 eDngSU">How to Use Ansible: A Reference Guide</h1><div class="TutorialTemplateStyles__StyledRecordMetaContainer-sc-337a0527-2 gsxHnk"><div class="TutorialTemplateStyles__StyledRecordMetaItemDate-sc-337a0527-5 jnatsz">Updated on March 29, 2022</div><ul class="TutorialTemplateStyles__StyledRecordMetaList-sc-337a0527-3 hGosQQ"><li class="TutorialTemplateStyles__StyledRecordMetaItem-sc-337a0527-4 eoKUhn"><a title="Configuration Management" class="TagStyles__StyledTag-sc-a75ae9ac-0 dhVrNO" href="/community/tags/configuration-management">Configuration Management</a></li><li class="TutorialTemplateStyles__StyledRecordMetaItem-sc-337a0527-4 eoKUhn"><a title="Ansible" class="TagStyles__StyledTag-sc-a75ae9ac-0 dhVrNO" href="/community/tags/ansible">Ansible</a></li></ul><div><div class="AuthorsStyles__StyledAuthorList-sc-29c8253c-0 kYbBjQ"><div class="AuthorsStyles__StyledAvatarGroup-sc-29c8253c-2 dBDdOf"><img alt="author" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="AuthorsStyles__StyledAvatarSmall-sc-29c8253c-1 hbSNDk" style="color:transparent" srcSet="https://www.gravatar.com/avatar/b1c2b9b45dfa138e00a51b7188beea76e76ba4a95ccc01af53c005458ecae202?default=retro 1x, https://www.gravatar.com/avatar/b1c2b9b45dfa138e00a51b7188beea76e76ba4a95ccc01af53c005458ecae202?default=retro 2x" src="https://www.gravatar.com/avatar/b1c2b9b45dfa138e00a51b7188beea76e76ba4a95ccc01af53c005458ecae202?default=retro"/></div><div class="AuthorsStyles__StyledAuthor-sc-29c8253c-3 kJSao"><p class="Typographystyles-sc-o7qsl9-0 kLhCbB"><a class="LinkInlinestyles-sc-18du0ds-0 iepvyF" href="/community/users/erikaheidi">Erika Heidi</a></p></div></div><p class="Typographystyles-sc-o7qsl9-0 dJqBXQ">Developer Advocate</p></div></div><img alt="How to Use Ansible: A Reference Guide" title="How to Use Ansible: A Reference Guide" loading="lazy" width="752" height="358" decoding="async" data-nimg="1" class="TutorialTemplateStyles__StyledRecordHeaderImage-sc-337a0527-1 eoHutf" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fintro-to-cloud.d49bc5f7.jpeg&width=828 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fintro-to-cloud.d49bc5f7.jpeg&width=1920 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fintro-to-cloud.d49bc5f7.jpeg&width=1920"/></div><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH"><h3 id="introduction"><a href="#introduction" onclick="navigator.clipboard.writeText(this.href);">Introduction</a><a class="hash-anchor" href="#introduction" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p><a href="https://www.ansible.com/" rel="ugc nofollow noopener" target="_blank">Ansible</a> is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers.</p> <p>This cheat sheet-style guide provides a quick reference to commands and practices commonly used when working with Ansible. For an overview of Ansible and how to install and configure it, please check our guide on <a href="/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-20-04">How to Install and Configure Ansible on Ubuntu 20.04</a>.</p> <p><strong>How to Use This Guide:</strong></p> <ul> <li>This guide is in cheat sheet format with self-contained command-line snippets.</li> <li>Jump to any section that is relevant to the task you are trying to complete.</li> <li>When you see <code><mark>highlighted text</mark></code> in this guide’s commands, keep in mind that this text should refer to hosts, usernames and IP addresses from <em>your own</em> inventory.</li> </ul> <p><strong>Ansible Glossary</strong></p> <p>The following Ansible-specific terms are largely used throughout this guide:</p> <ul> <li><strong>Control Machine / Node</strong>: a system where Ansible is installed and configured to connect and execute commands on nodes.</li> <li><strong>Node</strong>: a server controlled by Ansible.</li> <li><strong>Inventory File</strong>: a file that contains information about the servers Ansible controls, typically located at <code>/etc/ansible/hosts</code>.</li> <li><strong>Playbook</strong>: a file containing a series of tasks to be executed on a remote server.</li> <li><strong>Role</strong>: a collection of playbooks and other files that are relevant to a goal such as installing a web server.</li> <li><strong>Play</strong>: a full Ansible run. A <em>play</em> can have several playbooks and roles, included from a single playbook that acts as entry point.</li> </ul> <p>If you’d like an example of these commands in practice, see our guide on <a href="/community/tutorials/how-to-use-ansible-to-automate-initial-server-setup-on-ubuntu-20-04">How to Use Ansible to Automate Initial Server Setup on Ubuntu 20.04</a>. You’ll need at least one remote server to use as a node.</p> <h2 id="testing-connectivity-to-nodes"><a href="#testing-connectivity-to-nodes" onclick="navigator.clipboard.writeText(this.href);">Testing Connectivity to Nodes</a><a class="hash-anchor" href="#testing-connectivity-to-nodes" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>To test that Ansible is able to connect and run commands and playbooks on your nodes, you can use the following command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> </li></ol> </code></pre> <p>The <code>ping</code> module will test if you have valid credentials for connecting to the nodes defined in your inventory file, in addition to testing if Ansible is able to run Python scripts on the remote server. A <em>pong</em> reply back means Ansible is ready to run commands and playbooks on that node.</p> <h2 id="connecting-as-a-different-user"><a href="#connecting-as-a-different-user" onclick="navigator.clipboard.writeText(this.href);">Connecting as a Different User</a><a class="hash-anchor" href="#connecting-as-a-different-user" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>By default, Ansible tries to connect to the nodes as your current system user, using its corresponding SSH keypair. To connect as a different user, append the command with the <code>-u</code> flag and the name of the intended user:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> <span class="token parameter variable">-u</span> <mark>sammy</mark> </li></ol> </code></pre> <p>The same is valid for <code>ansible-playbook</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> <span class="token parameter variable">-u</span> <mark>sammy</mark> </li></ol> </code></pre> <h2 id="using-a-custom-ssh-key"><a href="#using-a-custom-ssh-key" onclick="navigator.clipboard.writeText(this.href);">Using a Custom SSH Key</a><a class="hash-anchor" href="#using-a-custom-ssh-key" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>If you’re using a custom SSH key to connect to the remote servers, you can provide it at execution time with the <code>--private-key</code> option:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> --private-key<span class="token operator">=</span><mark><span class="token operator">~</span>/.ssh/custom_id</mark> </li></ol> </code></pre> <p>This option is also valid for <code>ansible-playbook</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --private-key<span class="token operator">=</span><mark><span class="token operator">~</span>/.ssh/custom_id</mark> </li></ol> </code></pre> <h2 id="using-password-based-authentication"><a href="#using-password-based-authentication" onclick="navigator.clipboard.writeText(this.href);">Using Password-Based Authentication</a><a class="hash-anchor" href="#using-password-based-authentication" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>If you need to use <em>password-based authentication</em> in order to connect to the nodes, you need to append the option <code>--ask-pass</code> to your Ansible command.</p> <p>This will make Ansible prompt you for the password of the user on the remote server that you’re attempting to connect as:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> --ask-pass </li></ol> </code></pre> <p>This option is also valid for <code>ansible-playbook</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --ask-pass </li></ol> </code></pre> <h2 id="providing-the-sudo-password"><a href="#providing-the-sudo-password" onclick="navigator.clipboard.writeText(this.href);">Providing the <code>sudo</code> Password</a><a class="hash-anchor" href="#providing-the-sudo-password" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>If the remote user needs to provide a password in order to run <code>sudo</code> commands, you can include the option <code>--ask-become-pass</code> to your Ansible command. This will prompt you to provide the remote user sudo password:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> --ask-become-pass </li></ol> </code></pre> <p>This option is also valid for <code>ansible-playbook</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --ask-become-pass </li></ol> </code></pre> <h2 id="using-a-custom-inventory-file"><a href="#using-a-custom-inventory-file" onclick="navigator.clipboard.writeText(this.href);">Using a Custom Inventory File</a><a class="hash-anchor" href="#using-a-custom-inventory-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>The default inventory file is typically located at <code>/etc/ansible/hosts</code>, but you can also use the <code>-i</code> option to point to custom inventory files when running Ansible commands and playbooks. Ansible also supports <em>inventory scripts</em> for building dynamic inventory files, for when your inventory fluctuates, with servers being created and destroyed often. Custom inventory files are useful for setting up per-project inventories that can be included in version control systems such as Git:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span> <span class="token parameter variable">-i</span> <mark>my_custom_inventory</mark> </li></ol> </code></pre> <p>The same option is valid for <code>ansible-playbook</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> <span class="token parameter variable">-i</span> <mark>my_custom_inventory</mark> </li></ol> </code></pre> <h2 id="running-ad-hoc-commands"><a href="#running-ad-hoc-commands" onclick="navigator.clipboard.writeText(this.href);">Running <em>ad-hoc</em> Commands</a><a class="hash-anchor" href="#running-ad-hoc-commands" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>To execute a command on a node, use the <code>-a</code> option followed by the command you want to run, in quotes.</p> <p>This will execute <code>uname -a</code> on <strong>all</strong> the nodes in your inventory:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible <mark>all</mark> <span class="token parameter variable">-a</span> <span class="token string">"uname -a"</span> </li></ol> </code></pre> <p>It is also possible to run Ansible modules with the option <code>-m</code>. The following command would install the package <code>vim</code> on <code>server1</code> from your inventory:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible <mark>server1</mark> <span class="token parameter variable">-m</span> <span class="token function">apt</span> <span class="token parameter variable">-a</span> <span class="token string">"name=vim"</span> </li></ol> </code></pre> <p>Before making changes to your nodes, you can conduct a <em>dry run</em> to predict how the servers would be affected by your command. This can be done by including the <code>--check</code> option:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible <mark>server1</mark> <span class="token parameter variable">-m</span> <span class="token function">apt</span> <span class="token parameter variable">-a</span> <span class="token string">"name=vim"</span> <span class="token parameter variable">--check</span> </li></ol> </code></pre> <h2 id="running-playbooks"><a href="#running-playbooks" onclick="navigator.clipboard.writeText(this.href);">Running Playbooks</a><a class="hash-anchor" href="#running-playbooks" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>To run a playbook and execute all the tasks defined within it, use the <code>ansible-playbook</code> command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> </li></ol> </code></pre> <p>To overwrite the default <code>hosts</code> option in the playbook and limit execution to a certain group or host, include the option <code>-l</code> in your command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <span class="token parameter variable">-l</span> <mark>server1</mark> <mark>myplaybook.yml</mark> </li></ol> </code></pre> <h2 id="getting-information-about-a-play"><a href="#getting-information-about-a-play" onclick="navigator.clipboard.writeText(this.href);">Getting Information about a Play</a><a class="hash-anchor" href="#getting-information-about-a-play" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>The option <code>--list-tasks</code> is used to list all tasks that would be executed by a play without making any changes to the remote servers:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --list-tasks </li></ol> </code></pre> <p>Similarly, it is possible to list all hosts that would be affected by a play, without running any tasks on the remote servers:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --list-hosts </li></ol> </code></pre> <p>You can use <em>tags</em> to limit the execution of a play. To list all tags available in a play, use the option <code>--list-tags</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --list-tags </li></ol> </code></pre> <h2 id="controlling-playbook-execution"><a href="#controlling-playbook-execution" onclick="navigator.clipboard.writeText(this.href);">Controlling Playbook Execution</a><a class="hash-anchor" href="#controlling-playbook-execution" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>You can use the option <code>--start-at-task</code> to define a new entry point for your playbook. Ansible will then skip anything that comes before the specified task, executing the remaining of the play from that point on. This option requires a valid <em>task name</em> as argument:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --start-at-task<span class="token operator">=</span><span class="token string">"<mark>Set Up Nginx</mark>"</span> </li></ol> </code></pre> <p>To only execute tasks associated with specific tags, you can use the option <code>--tags</code>. For instance, if you’d like to only execute tasks tagged as <code>nginx</code> or <code>mysql</code>, you can use:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> <span class="token parameter variable">--tags</span><span class="token operator">=</span><mark>mysql,nginx</mark> </li></ol> </code></pre> <p>If you want to skip all tasks that are under specific tags, use <code>--skip-tags</code>. The following command would execute <code><mark>myplaybook.yml</mark></code>, skipping all tasks tagged as <code>mysql</code>:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --skip-tags<span class="token operator">=</span><mark>mysql</mark> </li></ol> </code></pre> <h2 id="using-ansible-vault-to-store-sensitive-data"><a href="#using-ansible-vault-to-store-sensitive-data" onclick="navigator.clipboard.writeText(this.href);">Using Ansible Vault to Store Sensitive Data</a><a class="hash-anchor" href="#using-ansible-vault-to-store-sensitive-data" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>If your Ansible playbooks deal with sensitive data like passwords, API keys, and credentials, it is important to keep that data safe by using an encryption mechanism. Ansible provides <code>ansible-vault</code> to encrypt files and variables.</p> <p>Even though it is possible to encrypt any Ansible data file as well as binary files, it is more common to use <code>ansible-vault</code> to encrypt <em>variable files</em> containing sensitive data. After encrypting a file with this tool, you’ll only be able to execute, edit or view its contents by providing the relevant password defined when you first encrypted the file.</p> <h3 id="creating-a-new-encrypted-file"><a href="#creating-a-new-encrypted-file" onclick="navigator.clipboard.writeText(this.href);">Creating a New Encrypted File</a><a class="hash-anchor" href="#creating-a-new-encrypted-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>You can create a new encrypted Ansible file with:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault create <mark>credentials.yml</mark> </li></ol> </code></pre> <p>This command will perform the following actions:</p> <ul> <li>First, it will prompt you to enter a new password. You’ll need to provide this password whenever you access the file contents, whether it’s for editing, viewing, or just running playbooks or commands using those values.</li> <li>Next, it will open your default command-line editor so you can populate the file with the desired contents.</li> <li>Finally, when you’re done editing, <code>ansible-vault</code> will save the file as encrypted data.</li> </ul> <h3 id="encrypting-an-existing-ansible-file"><a href="#encrypting-an-existing-ansible-file" onclick="navigator.clipboard.writeText(this.href);">Encrypting an Existing Ansible File</a><a class="hash-anchor" href="#encrypting-an-existing-ansible-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>To encrypt an existing Ansible file, you can use the following syntax:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault encrypt <mark>credentials.yml</mark> </li></ol> </code></pre> <p>This will prompt you for a password that you’ll need to enter whenever you access the file <code><mark>credentials.yml</mark></code>.</p> <h3 id="viewing-the-contents-of-an-encrypted-file"><a href="#viewing-the-contents-of-an-encrypted-file" onclick="navigator.clipboard.writeText(this.href);">Viewing the Contents of an Encrypted File</a><a class="hash-anchor" href="#viewing-the-contents-of-an-encrypted-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>If you want to view the contents of a file that was previously encrypted with <code>ansible-vault</code> and you don’t need to change its contents, you can use:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault view <mark>credentials.yml</mark> </li></ol> </code></pre> <p>This will prompt you to provide the password you selected when you first encrypted the file with <code>ansible-vault</code>.</p> <h3 id="editing-an-encrypted-file"><a href="#editing-an-encrypted-file" onclick="navigator.clipboard.writeText(this.href);">Editing an Encrypted File</a><a class="hash-anchor" href="#editing-an-encrypted-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>To edit the contents of a file that was previously encrypted with Ansible Vault, run:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault edit <mark>credentials.yml</mark> </li></ol> </code></pre> <p>This will prompt you to provide the password you chose when first encrypting the file <code><mark>credentials.yml</mark></code> with <code>ansible-vault</code>. After password validation, your default command-line editor will open with the unencrypted contents of the file, allowing you to make your changes. When finished, you can save and close the file as you would normally, and the updated contents will be saved as encrypted data.</p> <h3 id="decrypting-encrypted-files"><a href="#decrypting-encrypted-files" onclick="navigator.clipboard.writeText(this.href);">Decrypting Encrypted Files</a><a class="hash-anchor" href="#decrypting-encrypted-files" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>If you wish to permanently revert a file that was previously encrypted with <code>ansible-vault</code> to its unencrypted version, you can do so with this syntax:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault decrypt <mark>credentials.yml</mark> </li></ol> </code></pre> <p>This will prompt you to provide the same password used when first encrypting the file <code><mark>credentials.yml</mark></code> with <code>ansible-vault</code>. After password validation, the file contents will be saved to the disk as unencrypted data.</p> <h3 id="using-multiple-vault-passwords"><a href="#using-multiple-vault-passwords" onclick="navigator.clipboard.writeText(this.href);">Using Multiple Vault Passwords</a><a class="hash-anchor" href="#using-multiple-vault-passwords" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>Ansible supports multiple vault passwords grouped by different vault IDs. This is useful if you want to have dedicated vault passwords for different environments, such as development, testing, and production environments.</p> <p>To create a new encrypted file using a custom vault ID, include the <code>--vault-id</code> option along with a <em>label</em> and the location where <code>ansible-vault</code> can find the password for that vault. The label can be any identifier, and the location can either be <code>prompt</code>, meaning that the command should prompt you to enter a password, or a valid path to a password file.</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault create --vault-id <mark>dev</mark>@prompt <mark>credentials_dev.yml</mark> </li></ol> </code></pre> <p>This will create a new vault ID named <mark>dev</mark> that uses <code>prompt</code> as password source. By combining this method with group variable files, you’ll be able to have separate ansible vaults for each application environment:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault create --vault-id <mark>prod</mark>@prompt <mark>credentials_prod.yml</mark> </li></ol> </code></pre> <p>We used <mark>dev</mark> and <mark>prod</mark> as vault IDs to demonstrate how you can create separate vaults per environment, but you can create as many vaults as you want, and you can use any identifier of your choice as vault ID.</p> <p>Now to view, edit, or decrypt these files, you’ll need to provide the same vault ID and password source along with the <code>ansible-vault</code> command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault edit <mark>credentials_dev.yml</mark> --vault-id <mark>dev</mark>@prompt </li></ol> </code></pre> <h3 id="using-a-password-file"><a href="#using-a-password-file" onclick="navigator.clipboard.writeText(this.href);">Using a Password File</a><a class="hash-anchor" href="#using-a-password-file" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h3> <p>If you need to automate the process of provisioning servers with Ansible using a third-party tool, you’ll need a way to provide the vault password without being prompted for it. You can do that by using a <em>password file</em> with <code>ansible-vault</code>.</p> <p>A password file can be a plain text file or an executable script. If the file is an executable script, the output produced by this script will be used as the vault password. Otherwise, the raw contents of the file will be used as vault password.</p> <p>To use a password file with <code>ansible-vault</code>, you need to provide the path to a password file when running any of the vault commands:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-vault create --vault-id <mark>dev</mark>@<mark>path/to/passfile</mark> <mark>credentials_dev.yml</mark> </li></ol> </code></pre> <p>Ansible doesn’t make a distinction between content that was encrypted using <code>prompt</code> or a password file as password source, as long as the input password is the same. In practical terms, this means it is OK to encrypt a file using <code>prompt</code> and then later use a password file to store the same password used with the <code>prompt</code> method. The opposite is also true: you can encrypt content using a password file and later use the <code>prompt</code> method, providing the same password when prompted by Ansible.</p> <p>For extended flexibility and security, instead of having your vault password stored in a plain text file, you can use a Python script to obtain the password from other sources. The official Ansible repository contains <a href="https://github.com/ansible/ansible/tree/devel/contrib/vault" rel="ugc nofollow noopener" target="_blank">a few examples of vault scripts</a> that you can use for reference when creating a custom script that suits the particular needs of your project.</p> <h2 id="running-a-playbook-with-data-encrypted-via-ansible-vault"><a href="#running-a-playbook-with-data-encrypted-via-ansible-vault" onclick="navigator.clipboard.writeText(this.href);">Running a Playbook with Data Encrypted via Ansible Vault</a><a class="hash-anchor" href="#running-a-playbook-with-data-encrypted-via-ansible-vault" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>Whenever you run a playbook that uses data previously encrypted via <code>ansible-vault</code>, you’ll need to provide the vault password to your playbook command.</p> <p>If you used default options and the <code>prompt</code> password source when encrypting the data used in this playbook, you can use the option <code>--ask-vault-pass</code> to make Ansible prompt you for the password:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --ask-vault-pass </li></ol> </code></pre> <p>If you used a password file instead of prompting for the password, you should use the option <code>--vault-password-file</code> instead:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --vault-password-file <mark>my_vault_password.py</mark> </li></ol> </code></pre> <p>If you’re using data encrypted under a vault ID, you’ll need to provide the same vault ID and password source you used when first encrypting the data:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --vault-id <mark>dev</mark>@prompt </li></ol> </code></pre> <p>If using a password file with your vault ID, you should provide the label followed by the full path to the password file as password source:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --vault-id <mark>dev</mark>@<mark>vault_password.py</mark> </li></ol> </code></pre> <p>If your play uses multiple vaults, you should provide a <code>--vault-id</code> parameter for each of them, in no particular order:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> --vault-id <mark>dev</mark>@<mark>vault_password.py</mark> --vault-id <mark>test</mark>@prompt --vault-id <mark>ci</mark>@prompt </li></ol> </code></pre> <h2 id="debugging"><a href="#debugging" onclick="navigator.clipboard.writeText(this.href);">Debugging</a><a class="hash-anchor" href="#debugging" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>If you run into errors while executing Ansible commands and playbooks, it’s a good idea to increase output verbosity in order to get more information about the problem. You can do that by including the <code>-v</code> option to the command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> <span class="token parameter variable">-v</span> </li></ol> </code></pre> <p>If you need more detail, you can use <code>-vvv</code> and this will increase verbosity of the output. If you’re unable to connect to the remote nodes via Ansible, use <code>-vvvv</code> to get connection debugging information:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible-playbook <mark>myplaybook.yml</mark> <span class="token parameter variable">-vvvv</span> </li></ol> </code></pre> <h2 id="conclusion"><a href="#conclusion" onclick="navigator.clipboard.writeText(this.href);">Conclusion</a><a class="hash-anchor" href="#conclusion" aria-hidden="true" onclick="navigator.clipboard.writeText(this.href);"></a></h2> <p>This guide covers some of the most common Ansible commands you may use when provisioning servers, such as how to execute remote commands on your nodes and how to run playbooks using a variety of custom settings.</p> <p>There are other command variations and flags that you may find useful for your Ansible workflow. To get an overview of all available options, you can use the <em>help</em> command:</p> <div class="code-label" title=""></div> <pre class="prefixed command language-bash"><code><ol><li data-prefix="$">ansible <span class="token parameter variable">--help</span> </li></ol> </code></pre> <p>If you want a more comprehensive view of Ansible and all its available commands and features, please refer to the <a href="https://docs.ansible.com/ansible/latest/index.html" rel="ugc nofollow noopener" target="_blank">official Ansible documentation</a>.</p> <p>If you want to see another practical example of Ansible, check out our guide on <a href="/community/tutorials/how-to-use-ansible-to-install-and-set-up-docker-on-ubuntu-20-04">How to Use Ansible to Install and Set Up Docker on Ubuntu 20.04</a>.</p> </div><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH TutorialTemplateStyles__StyledConclusionCTA-sc-337a0527-35 dKyFya"><p>Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.</p> <p><a href="/products">Learn more about our products</a></p> </div><div class="TutorialTemplateStyles__StyledCollaboratorsFooterContainer-sc-337a0527-8 kYDvfF"><div class="TutorialTemplateStyles__StyledCollaboratorsFooter-sc-337a0527-9 fAKdCr"><div class="TutorialTemplateStyles__StyledCollaboratorsHeading-sc-337a0527-10 bPCjPq">About the authors</div><div class="TutorialTemplateStyles__StyledCollaborator-sc-337a0527-11 kLvEfV"><img alt="Default avatar" loading="lazy" width="64" height="64" decoding="async" data-nimg="1" class="TutorialTemplateStyles__StyledAvatarLarge-sc-337a0527-12 eoFuZs" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdefault-avatar.14b0d31d.jpeg&width=64 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdefault-avatar.14b0d31d.jpeg&width=128 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdefault-avatar.14b0d31d.jpeg&width=128"/><div class="TutorialTemplateStyles__StyledCollaboratorInfo-sc-337a0527-13 gRceEM"><div class="TutorialTemplateStyles__StyledCollaboratorName-sc-337a0527-14 hPVxKD"><a size="18" class="TutorialTemplateStyles__StyledRecordMetaItemAuthorHighlight-sc-337a0527-7 dKebKT" href="/community/users/erikaheidi">Erika Heidi</a><p class="TutorialTemplateStyles__StyledUserRelation-sc-337a0527-29 SCLyp">author</p></div><p size="18" class="TutorialTemplateStyles__StyledCollaboratorTitle-sc-337a0527-16 hgqDuN">Developer Advocate</p></div></div><div class="TutorialTemplateStyles__StyledCollaboratorBio-sc-337a0527-15 jOvxSW"><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH"><p>Dev/Ops passionate about open source, PHP, and Linux.</p> </div></div></div></div><div class="TutorialTemplateStyles__StyledHelpfulCTA-sc-337a0527-36 bdnkwT"><div class="QuestionSearchFooterStyles__StyledQuestionSearchFooterContent-sc-43bc7691-0 jgVACS"><h4 class="HeadingStyles__StyledH4-sc-73f0758c-3 lfDrER QuestionSearchFooter___StyledHeading-sc-b0972586-0 BIpEk">Still looking for an answer?</h4><a class="QuestionSearchFooterStyles__StyledActionBox-sc-43bc7691-1 IuQNg" href="/community/questions">Ask a question</a><a class="QuestionSearchFooterStyles__StyledActionBox-sc-43bc7691-1 IuQNg" href="/community">Search for more help</a></div><hr class="TutorialTemplateStyles__StyledHelpfulHr-sc-337a0527-37 hsNeFw"/><div margin="0" class="WasThisHelpfulStyles__StyledHelpfulContainer-sc-7b34e333-0 fIwROR"><div class="WasThisHelpfulStyles__StyledHelpfulText-sc-7b34e333-2 ksqBeP">Was this helpful?</div><div class="WasThisHelpfulStyles__StyledHelpfulButtonContainer-sc-7b34e333-3 gjbNkJ"><button class="WasThisHelpfulStyles__StyledHelpfulButton-sc-7b34e333-5 hnJljI">Yes</button><button class="WasThisHelpfulStyles__StyledHelpfulButton-sc-7b34e333-5 hnJljI">No</button></div><div class="WasThisHelpfulStyles__StyledHelpfulDivider-sc-7b34e333-4 kgGjh"> </div><div class="WasThisHelpfulStyles__StyledShareContainer-sc-7b34e333-1 kWxKBP"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Fcheatsheets%2Fhow-to-use-ansible-cheat-sheet-guide%3Futm_medium%3Dcommunity%26utm_source%3Dtwshare%26utm_content%3Dhow-to-use-ansible-cheat-sheet-guide&text=&via=digitalocean" target="_blank" rel="nofollow noopener noreferrer" title="Share to X (Twitter)" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.0468 10.3155L22.0566 1.00003H20.1585L13.2036 9.08855L7.6488 1.00003H1.24194L9.64196 13.2313L1.24194 23H3.14011L10.4847 14.4583L16.351 23H22.7578L14.0464 10.3155H14.0468ZM11.447 13.3391L10.5959 12.1211L3.82405 2.42968H6.73952L12.2045 10.251L13.0556 11.4689L20.1594 21.6354H17.244L11.447 13.3395V13.3391Z" fill="currentColor"></path></svg></a><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Fcheatsheets%2Fhow-to-use-ansible-cheat-sheet-guide%3Futm_medium%3Dcommunity%26utm_source%3Dtwshare%26utm_content%3Dhow-to-use-ansible-cheat-sheet-guide&t=" target="_blank" rel="nofollow noopener noreferrer" title="Share to Facebook" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.75 8.33333H6V12H8.75V23H13.3333V12H16.6718L17 8.33333H13.3333V6.80525C13.3333 5.92983 13.5093 5.58333 14.3554 5.58333H17V1H13.5093C10.213 1 8.75 2.45108 8.75 5.23042V8.33333Z" fill="currentColor"></path></svg></a><a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Fcheatsheets%2Fhow-to-use-ansible-cheat-sheet-guide%3Futm_medium%3Dcommunity%26utm_source%3Dtwshare%26utm_content%3Dhow-to-use-ansible-cheat-sheet-guide&title=" target="_blank" rel="nofollow noopener noreferrer" title="Share to LinkedIn" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.376 1H2.62403C1.72722 1 1 1.72722 1 2.62403V21.376C1 22.2728 1.72722 23 2.62403 23H21.376C22.2728 23 23 22.2728 23 21.376V2.62403C23 1.72722 22.2728 1 21.376 1ZM7.55722 19.7428H4.24958V9.23472H7.55722V19.7428ZM5.90417 7.78028C4.85153 7.78028 3.9975 6.97819 3.9975 5.88125C3.9975 4.78431 4.85153 3.98222 5.90417 3.98222C6.95681 3.98222 7.81083 4.78431 7.81083 5.88125C7.81083 6.97819 6.95681 7.78028 5.90417 7.78028ZM19.7504 19.7504H16.4428V14.0121C16.4428 12.3193 15.7232 11.7968 14.7943 11.7968C13.8135 11.7968 12.851 12.5347 12.851 14.0549V19.7519H9.54333V9.24236H12.7242V10.6983H12.7669C13.0862 10.0521 14.2046 8.9475 15.9111 8.9475C17.7567 8.9475 19.7504 10.0429 19.7504 13.2513V19.7504Z" fill="currentColor"></path></svg></a><a href="https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fwww.digitalocean.com%2Fcommunity%2Fcheatsheets%2Fhow-to-use-ansible-cheat-sheet-guide%3Futm_medium%3Dcommunity%26utm_source%3Dtwshare%26utm_content%3Dhow-to-use-ansible-cheat-sheet-guide&t=" target="_blank" rel="nofollow noopener noreferrer" title="Share to YCombinator" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 1.01254C3.04736 1.10355 7.73642 9.81318 10.0413 14.1063C10.1047 14.2302 10.1379 14.3671 10.1385 14.5059C10.1442 17.2604 10.1426 22.9248 10.1426 23H12.8918C12.8918 22.9009 12.8897 17.3676 12.8967 14.6872C12.8987 14.528 12.9384 14.3716 13.0126 14.2305C15.3098 9.94828 20.0384 1.15572 20.1111 1.01861C20.0446 1.01133 18.1324 1.00607 17.2146 1C17.0859 1 17.0402 1.06269 16.9912 1.15977C16.5482 2.03789 16.097 2.91237 15.6556 3.79171C14.32 6.45278 11.6248 11.8182 11.5995 11.8518C11.5619 11.7773 8.04714 4.65204 6.32692 1.1444C6.26813 1.02306 6.193 1.00081 6.07295 1.00121C5.11424 1.00485 3.09024 1.00809 3 1.01254Z" fill="currentColor"></path></svg></a></div></div></div><div class="container"><div class="TutorialTabs___StyledDiv-sc-f2c5ea96-3 LuTHN"><button class="ButtonStyles__StyledButton-sc-1f59e819-0 dZfTxb TutorialTabs___StyledButton-sc-f2c5ea96-0 kDrTcG darkblue" style="color:#031b4e">Comments<svg style="background-color:#e5e8ed" class="TutorialTabs___StyledSvg-sc-f2c5ea96-2 gSGogM"><line x1="1.5" x2="4000px" y1="2px" y2="2px" class="TutorialTabs___StyledLine-sc-f2c5ea96-1 hwqQwE selected" style="stroke:#0069ff"></line></svg></button></div><div><div class="CommentFormTemplateStyles__StyledFormHeader-sc-f4f7f538-1 hMXGxj">3 Comments</div><form class="CommentFormTemplateStyles__StyledForm-sc-f4f7f538-0 bCRmhw"><div class="MarkdownStyles__StyledContainer-sc-dccc8dc1-0 lwZFQ"><input type="text" required="" style="height:0;width:0;opacity:0;padding:0;border:0;position:absolute" tabindex="-1" aria-hidden="true" value=""/><div class="MarkdownStyles__StyledActions-sc-dccc8dc1-1 NFBTT"><button type="button" title="Bold" aria-label="Bold" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m12.4799 4.625c1.0333 0 1.88.14333 2.54.43.6667.28667 1.16.7 1.48 1.24.32.53333.48 1.16333.48 1.89s-.1433 1.34667-.43 1.86c-.2867.5067-.65.9-1.09 1.18-.44.2733-.8867.4267-1.34.46.4733.0133.96.1367 1.46.37.5.2267.92.5967 1.26 1.11.34.5067.51 1.1833.51 2.03 0 .8-.1633 1.5167-.49 2.15-.32.6267-.8367 1.1233-1.55 1.49-.7133.36-1.6667.54-2.86.54h-5.8v-14.75zm-2.86 6.83-1.03-.87h2.94c.7867 0 1.3767-.1667 1.77-.5.3933-.34.59-.79667.59-1.37 0-.38667-.0833-.70333-.25-.95-.1667-.25333-.4133-.44-.74-.56s-.73-.18-1.21-.18h-3.47l1.4-1.48zm2.23 5.51c.76 0 1.3367-.1733 1.73-.52.4-.3533.6-.83.6-1.43 0-.34-.06-.6367-.18-.89-.1133-.2533-.2767-.4633-.49-.63-.2133-.1733-.4733-.3033-.78-.39-.3-.0933-.6333-.14-1-.14h-3.14l1.03-.86v6.34l-1.4-1.48z" fill="currentColor"></path></svg></button><button type="button" title="Italic" aria-label="Italic" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6.93994 19.3002.26-1.64h2.97996l1.8-11.32h-2.97996l.26-1.64h7.79996l-.26 1.64h-2.98l-1.8 11.32h2.98l-.26 1.64z" fill="currentColor"></path></svg></button><button type="button" title="Underline" aria-label="Underline" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor" stroke="currentColor" stroke-width=".5"><path d="m16.104 12.0476c0 1.5307-.3573 2.6667-1.072 3.408-.7147.736-1.7093 1.104-2.984 1.104-1.2693 0-2.26133-.368-2.976-1.104-.71467-.7413-1.072-1.8773-1.072-3.408 0-.2347 0-.4827 0-.744 0-.2667 0-.5467 0-.84v-5.86399h1.368v5.98399.776.664c0 1.184.22667 2.032.68 2.544.4533.5067 1.12.76 2 .76.8853 0 1.5547-.2533 2.008-.76.4587-.512.688-1.36.688-2.544v-7.42399h1.36z"></path><path clip-rule="evenodd" d="m7 18.8994c0-.2761.2132-.5.47619-.5h9.04761c.263 0 .4762.2239.4762.5 0 .2762-.2132.5-.4762.5h-9.04761c-.26299 0-.47619-.2238-.47619-.5z" fill-rule="evenodd"></path></g></svg></button><button type="button" title="Strikethrough" aria-label="Strikethrough" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path clip-rule="evenodd" d="m5 11.9346c0-.2762.19588-.5.4375-.5h13.125c.2416 0 .4375.2238.4375.5 0 .2761-.1959.5-.4375.5h-13.125c-.24162 0-.4375-.2239-.4375-.5z" fill-rule="evenodd"></path><path d="m12.0006 19.5646c-1.02 0-1.8933-.16-2.61997-.48-.72-.3267-1.27334-.8167-1.66-1.47-.38667-.6534-.58001-1.4667-.58001-2.44v-.68h1.71001v.65c0 1.02.26666 1.7566.8 2.21.53337.4466 1.30997.67 2.32997.67 1.0534 0 1.85-.18 2.39-.54s.81-.9434.81-1.75c0-.5667-.1566-1.0367-.47-1.41-.2797-.3466-.6592-.6433-1.1385-.89h2.6353c.0468.0652.0912.1319.1332.2.34.54.51 1.22.51 2.04s-.1966 1.52-.59 2.1c-.3866.58-.9433 1.0233-1.67 1.33-.72.3066-1.5833.46-2.59.46z"></path><path d="m7.80063 10.2446c.04249.0645.08671.1278.13266.19h2.54991c-.4493-.2411-.81352-.52111-1.09258-.84003-.31999-.38-.47999-.86-.47999-1.44 0-.77333.26333-1.33.79-1.67s1.27337-.51 2.23997-.51c1.0067 0 1.7734.20667 2.3.62.5267.40667.79 1.09667.79 2.07v.68h1.71v-.75c0-.93333-.2-1.70667-.6-2.32-.3933-.62-.9533-1.08-1.68-1.38-.72-.30667-1.57-.46-2.55-.46-.9266 0-1.74.14333-2.43997.43-.7.28667-1.24667.70667-1.64 1.26-.38667.55333-.58 1.23-.58 2.03 0 .82.18333 1.51667.55 2.09003z"></path></g></svg></button><button type="button" title="Link" aria-label="Link" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m17.906 6.65242c-.5458-.62654-1.5313-.66515-2.1882.02623l-6.43176 6.76875c-.16633.1751-.16633.3981 0 .5731.16633.1751.37821.1751.54454 0l5.32012-5.59886c.3101-.32634.8128-.32634 1.1229 0s.3101.85545 0 1.1818l-5.3201 5.59886c-.7865.8278-2.00389.8278-2.79041 0-.78652-.8277-.78652-2.1089 0-2.9366l6.43171-6.76885c1.2447-1.30991 3.2674-1.35254 4.4701.01279 1.2325 1.31066 1.2688 3.42899-.0234 4.69066l-7.5321 7.9268c-1.73941 1.8305-4.4655 1.8305-6.20487 0s-1.73937-4.6995 0-6.53l6.43177-6.76877c.3101-.32634.8128-.32634 1.1229 0s.3101.85545 0 1.18179l-6.43172 6.76878c-1.11919 1.1779-1.11919 2.9886 0 4.1664 1.11918 1.1779 2.83975 1.1779 3.95892 0l7.5434-7.9387c.0082-.00856.0165-.01693.025-.02511.5953-.57433.632-1.61147-.025-2.30284-.0081-.00856-.0161-.01731-.0238-.02623z" fill="currentColor"></path></svg></button><button type="button" title="Image" aria-label="Image" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M5 4.75C4.22416 4.75 3.75 5.29076 3.75 5.77778V18.2222C3.75 18.7092 4.22416 19.25 5 19.25H19C19.7758 19.25 20.25 18.7092 20.25 18.2222V5.77778C20.25 5.29076 19.7758 4.75 19 4.75H5ZM2.25 5.77778C2.25 4.30112 3.5667 3.25 5 3.25H19C20.4333 3.25 21.75 4.30112 21.75 5.77778V18.2222C21.75 19.6989 20.4333 20.75 19 20.75H5C3.5667 20.75 2.25 19.6989 2.25 18.2222V5.77778Z"></path><path d="M7.5 7.75C7.08579 7.75 6.75 8.08579 6.75 8.5C6.75 8.91421 7.08579 9.25 7.5 9.25C7.91421 9.25 8.25 8.91421 8.25 8.5C8.25 8.08579 7.91421 7.75 7.5 7.75ZM5.25 8.5C5.25 7.25736 6.25736 6.25 7.5 6.25C8.74264 6.25 9.75 7.25736 9.75 8.5C9.75 9.74264 8.74264 10.75 7.5 10.75C6.25736 10.75 5.25 9.74264 5.25 8.5Z"></path><path d="M15.4697 10.4697C15.7626 10.1768 16.2374 10.1768 16.5303 10.4697L21.5303 15.4697C21.8232 15.7626 21.8232 16.2374 21.5303 16.5303C21.2374 16.8232 20.7626 16.8232 20.4697 16.5303L16 12.0607L7.53033 20.5303C7.23744 20.8232 6.76256 20.8232 6.46967 20.5303C6.17678 20.2374 6.17678 19.7626 6.46967 19.4697L15.4697 10.4697Z"></path></g></svg></button><button type="button" title="Highlight" aria-label="Highlight" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><rect height="2" rx=".5" width="13" x="5.5" y="17.5"></rect><path clip-rule="evenodd" d="m17.0364 5.96101c-.3515-.35085-.9213-.35085-1.2728 0l-.4757.4749 1.2728 1.27053.4757-.47489c.3515-.35085.3515-.91969 0-1.27054zm-1.3243 2.59246-1.2728-1.27054-6.7393 6.72737v1.2918h1.25148zm-.797-3.43948c.8201-.81865 2.1497-.81865 2.9698 0s.8201 2.14594 0 2.96459l-8.26063 8.24602c-.11252.1123-.26513.1754-.42426.1754h-2.10001c-.33137 0-.6-.2682-.6-.5989v-2.1389c0-.1588.06321-.3112.17574-.4235z" fill-rule="evenodd"></path></g></svg></button><button type="button" title="Heading 1" aria-label="Heading 1" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m14.5439 4.5v13.209h-1.9432v-6.5642l.8776.788h-7.28958l.87761-.7791v6.5553h-1.94328v-13.209h1.94328v6.6269l-.87761-.815h7.28958l-.8776.815v-6.6269z"></path><path d="m18.8765 11.5537v7.9469h-1.1606v-6.7648c-.0322.0394-.1236.0896-.274.1504-.1505.0609-.3332.12-.5481.1774-.2149.0537-.4406.0931-.677.1182v-.9887c.2328-.0358.4567-.0895.6716-.1612.215-.0716.3977-.1504.5481-.2364.154-.086.2561-.1666.3063-.2418z"></path></g></svg></button><button type="button" title="Heading 2" aria-label="Heading 2" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m13.4506 4.5v13.2088h-1.9433v-6.5641l.8776.7881h-7.28945l.8776-.7791v6.5551h-1.94326v-13.2088h1.94326v6.6268l-.8776-.8149h7.28945l-.8776.8149v-6.6268z"></path><path d="m15.0752 19.5001v-.9833c.0287-.1326.1164-.2937.2633-.4836.1469-.1934.326-.3994.5373-.6179s.4334-.437.6663-.6555c.2364-.2185.4567-.4191.6609-.6018.2507-.2293.4961-.4657.7361-.7093.24-.2471.4388-.5068.5964-.7791.1612-.2758.2418-.5659.2418-.8704 0-.4298-.1021-.7612-.3063-.994-.2006-.2364-.5069-.3546-.9188-.3546-.3295 0-.5928.0698-.7898.2095-.1971.1397-.3385.3367-.4245.591-.086.2508-.129.5445-.129.8812h-1.1713c0-.5337.0931-.9994.2794-1.397.1898-.4012.4728-.711.8489-.9295.3762-.2221.8436-.3331 1.4024-.3331.5266 0 .9654.1003 1.3164.3008.3547.2006.6197.4765.7952.8275.1792.351.2687.754.2687 1.209 0 .3008-.0573.5892-.1719.865-.1111.2723-.2579.5284-.4406.7684-.1791.24-.3726.4621-.5803.6662-.2078.2042-.4048.3887-.5911.5535-.3044.265-.5838.5158-.8382.7522-.2507.2328-.4585.4442-.6232.634-.1612.1863-.2597.3439-.2956.4729h3.5624v.9779z"></path></g></svg></button><button type="button" title="Heading 3" aria-label="Heading 3" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m13.4184 4.5v13.1102h-1.9288v-6.5151l.871.7822h-7.23502l.87105-.7733v6.5062h-1.92876v-13.1102h1.92876v6.5773l-.87105-.8088h7.23502l-.871.8088v-6.5773z"></path><path d="m18.5668 15.2446c.3128.0107.5688.0996.7679.2667.2027.1635.352.3822.448.6559.0995.2703.1493.5707.1493.9013 0 .4515-.0853.8622-.256 1.2319-.1706.3662-.4337.6578-.7893.8746-.3519.2169-.8035.3254-1.3545.3254-.4587 0-.8462-.0605-1.1626-.1814-.3165-.1244-.5707-.2986-.7626-.5226-.1885-.2275-.3271-.4977-.416-.8106-.0853-.3129-.128-.6577-.128-1.0346 0-.0036 0-.0071 0-.0107 0-.0035 0-.0071 0-.0106h1.1626v.0106.0107c0 .416.0515.7395.1546.9706.1067.2311.2578.3929.4533.4853.1991.0889.4373.1333.7147.1333.3733 0 .6684-.1209.8852-.3626.2205-.2453.3307-.624.3307-1.1359 0-.1849-.0196-.3574-.0587-.5173-.0355-.16-.1013-.2987-.1973-.416-.096-.1209-.2293-.2151-.4-.2827-.1671-.0711-.3822-.1066-.6453-.1066h-.288v-.88h.288c.256 0 .4676-.0337.6347-.1013.1706-.0711.3039-.1653.3999-.2826.096-.1209.1636-.2542.2027-.4.0426-.1493.064-.3022.064-.4586 0-.4267-.1085-.7342-.3253-.9227-.2169-.1884-.5084-.2826-.8746-.2826-.4018 0-.7253.1067-.9706.32-.2454.2133-.368.6008-.368 1.1626h-1.1626c0-.352.048-.6773.144-.976.0995-.2986.2489-.5582.4479-.7786.2027-.224.4605-.3964.7733-.5173.3129-.1209.6844-.1813 1.1146-.1813.5475 0 .9973.096 1.3493.288.3519.192.6133.4479.7839.7679.1707.32.256.6738.256 1.0613 0 .2951-.0498.5706-.1493.8266-.096.2524-.2453.4586-.448.6186-.1991.16-.4551.2471-.7679.2613z"></path></g></svg></button><button type="button" title="Unordered list" aria-label="Unordered list" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m4.25 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zm3 1.5c0 .5523.44772 1 1 1h12c.5523 0 1-.4477 1-1s-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm0-6c0 .5523.44772 1 1 1h12c.5523 0 1-.4477 1-1s-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm1-7c-.55228 0-1 .44772-1 1s.44772 1 1 1h12c.5523 0 1-.44772 1-1s-.4477-1-1-1z" fill="currentColor"></path></svg></button><button type="button" title="Ordered list" aria-label="Ordered list" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m4.365 4.48535v2.958h-.432v-2.518c-.012.01467-.046.03334-.102.056-.056.02267-.124.04467-.204.066-.08.02-.164.03467-.252.044v-.368c.08667-.01333.17-.03333.25-.06s.148-.056.204-.088c.05733-.032.09533-.062.114-.09z"></path><path d="m3.389 13.4734v-.366c.01067-.0494.04333-.1094.098-.18.05467-.072.12133-.1487.2-.23.07867-.0814.16133-.1627.248-.244.088-.0814.17-.156.246-.224.09333-.0854.18467-.1734.274-.264.08933-.092.16333-.1887.222-.29.06-.1027.09-.2107.09-.324 0-.16-.038-.2834-.114-.37-.07467-.088-.18867-.132-.342-.132-.12267 0-.22067.026-.294.078s-.126.1253-.158.22c-.032.0933-.048.2026-.048.328h-.436c0-.1987.03467-.372.104-.52.07067-.1494.176-.2647.316-.346.14-.0827.314-.124.522-.124.196 0 .35933.0373.49.112.132.0746.23067.1773.296.308.06667.1306.1.2806.1.45 0 .112-.02133.2193-.064.322-.04133.1013-.096.1966-.164.286-.06667.0893-.13867.172-.216.248s-.15067.1446-.22.206c-.11333.0986-.21733.192-.312.28-.09333.0866-.17067.1653-.232.236-.06.0693-.09667.128-.11.176h1.326v.364z"></path><path d="m4.689 17.9194c.11733.004.21333.0373.288.1.076.0613.132.1433.168.246.03733.1013.056.214.056.338 0 .1693-.032.3233-.096.462-.064.1373-.16267.2466-.296.328-.132.0813-.30133.122-.508.122-.172 0-.31733-.0227-.436-.068-.11867-.0467-.214-.112-.286-.196-.07067-.0854-.12267-.1867-.156-.304-.032-.1174-.048-.2467-.048-.388 0-.0014 0-.0027 0-.004 0-.0014 0-.0027 0-.004h.436v.004.004c0 .156.01933.2773.058.364.04.0866.09667.1473.17.182.07467.0333.164.05.268.05.14 0 .25067-.0454.332-.136.08267-.092.124-.234.124-.426 0-.0694-.00733-.134-.022-.194-.01333-.06-.038-.112-.074-.156-.036-.0454-.086-.0807-.15-.106-.06267-.0267-.14333-.04-.242-.04h-.108v-.33h.108c.096 0 .17533-.0127.238-.038.064-.0267.114-.062.15-.106.036-.0454.06133-.0954.076-.15.016-.056.024-.1134.024-.172 0-.16-.04067-.2754-.122-.346-.08133-.0707-.19067-.106-.328-.106-.15067 0-.272.04-.364.12s-.138.2253-.138.436h-.436c0-.132.018-.254.054-.366.03733-.112.09333-.2094.168-.292.076-.084.17267-.1487.29-.194.11733-.0454.25667-.068.418-.068.20533 0 .374.036.506.108s.23.168.294.288.096.2526.096.398c0 .1106-.01867.214-.056.31-.036.0946-.092.172-.168.232-.07467.06-.17067.0926-.288.098z"></path><path d="m6.625 17.9854c0 .5522.44772 1 1 1h12c.5523 0 1-.4478 1-1 0-.5523-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm0-6c0 .5522.44772 1 1 1h12c.5523 0 1-.4478 1-1 0-.5523-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm1-7.00005c-.55228 0-1 .44772-1 1 0 .55229.44772 1 1 1h12c.5523 0 1-.44771 1-1 0-.55228-.4477-1-1-1z"></path></g></svg></button><button type="button" title="Quote" aria-label="Quote" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m9.45529 9.8724c.86271 0 1.44511.6551 1.44511 1.6257 0 .8736-.6686 1.6015-1.57452 1.6015-.99216 0-1.72549-.8735-1.72549-2.2081 0-3.03307 2.02745-4.2463 3.30001-4.39189v1.33456c-.8628.16985-1.83334 1.11618-1.87648 2.15956.04314-.02427.21569-.12133.43137-.12133z"></path><path d="m5.05529 9.8724c.86275 0 1.4451.6551 1.4451 1.6257 0 .8736-.66863 1.6015-1.57451 1.6015-.99216 0-1.72549-.8735-1.72549-2.2081 0-3.03307 2.02745-4.2463 3.3-4.39189v1.33456c-.86275.16985-1.83333 1.11618-1.87647 2.15956.04314-.02427.21569-.12133.43137-.12133z"></path><path d="m14.5447 14.1276c-.8627 0-1.4451-.6551-1.4451-1.6257 0-.8736.6686-1.6015 1.5745-1.6015.9922 0 1.7255.8735 1.7255 2.2081 0 3.0331-2.0274 4.2463-3.3 4.3919v-1.3346c.8628-.1698 1.8333-1.1161 1.8765-2.1595-.0432.0242-.2157.1213-.4314.1213z"></path><path d="m18.9447 14.1276c-.8627 0-1.4451-.6551-1.4451-1.6257 0-.8736.6686-1.6015 1.5745-1.6015.9922 0 1.7255.8735 1.7255 2.2081 0 3.0331-2.0274 4.2463-3.3 4.3919v-1.3346c.8628-.1698 1.8333-1.1161 1.8765-2.1595-.0432.0242-.2157.1213-.4314.1213z"></path></g></svg></button><button type="button" title="Callout" aria-label="Callout" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m12 6c-3.31371 0-6 2.68629-6 6 0 3.3137 2.68629 6 6 6 3.3137 0 6-2.6863 6-6 0-3.31371-2.6863-6-6-6zm-7.5 6c0-4.14214 3.35786-7.5 7.5-7.5 4.1421 0 7.5 3.35786 7.5 7.5 0 4.1421-3.3579 7.5-7.5 7.5-4.14214 0-7.5-3.3579-7.5-7.5z"></path><path d="m12 10.5c.4142 0 .75.3358.75.75v4.5c0 .4142-.3358.75-.75.75s-.75-.3358-.75-.75v-4.5c0-.4142.3358-.75.75-.75z"></path><path d="m13.125 8.625c0 .62132-.5037 1.125-1.125 1.125s-1.125-.50368-1.125-1.125.5037-1.125 1.125-1.125 1.125.50368 1.125 1.125z"></path></g></svg></button><button type="button" title="Table" aria-label="Table" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg fill="none" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><mask id="a" fill="#fff"><rect fill="#fff" height="7" rx="1" width="7" x="4.5" y="4.5"></rect></mask><mask id="b" fill="#fff"><rect fill="#fff" height="7" rx="1" width="7" x="4.5" y="12.5"></rect></mask><mask id="c" fill="#fff"><rect fill="#fff" height="7" rx="1" width="7" x="12.5" y="4.5"></rect></mask><mask id="d" fill="#fff"><rect fill="#fff" height="7" rx="1" width="7" x="12.5" y="12.5"></rect></mask><g stroke="currentColor" stroke-linejoin="round" stroke-width="2.4"><rect height="7" mask="url(#a)" rx="1" width="7" x="4.5" y="4.5"></rect><rect height="7" mask="url(#b)" rx="1" width="7" x="4.5" y="12.5"></rect><rect height="7" mask="url(#c)" rx="1" width="7" x="12.5" y="4.5"></rect><rect height="7" mask="url(#d)" rx="1" width="7" x="12.5" y="12.5"></rect></g></svg></button><button type="button" title="Code" aria-label="Code" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m9.87254 6.52426c.29756.31879.29756.83567 0 1.15447l-4.03273 4.32077 4.03273 4.3208c.29756.3188.29756.8357 0 1.1545-.29754.3188-.77996.3188-1.07751 0l-4.57148-4.8981c-.29755-.3188-.29755-.8356 0-1.1544l4.57148-4.89804c.29755-.3188.77997-.3188 1.07751 0z"></path><path d="m14.1275 17.4748c-.2976-.3188-.2976-.8357 0-1.1545l4.0327-4.3208-4.0327-4.32077c-.2976-.3188-.2976-.83567 0-1.15447.2975-.3188.7799-.3188 1.0775 0l4.5714 4.89804c.2976.3188.2976.8356 0 1.1544l-4.5714 4.8981c-.2976.3188-.78.3188-1.0775 0z"></path></g></svg></button><div class="MarkdownStyles__StyledActionsRight-sc-dccc8dc1-2 emmQTZ"><button type="button" disabled="" title="Preview" aria-label="Preview" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 hbUzfS"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m3.37993 12.6358c-.1925-.2497-.35068-.466-.47127-.6358.12059-.1698.27877-.3861.47127-.6358.49035-.6359 1.1985-1.48178 2.07052-2.32506 1.7738-1.71533 4.09082-3.28914 6.54965-3.28914 2.4589 0 4.7759 1.57381 6.5497 3.28914.8721.84328 1.5802 1.68916 2.0706 2.32506.1925.2497.3506.466.4712.6358-.1206.1698-.2787.3861-.4712.6358-.4904.6359-1.1985 1.4818-2.0706 2.3251-1.7738 1.7153-4.0908 3.2891-6.5497 3.2891-2.45883 0-4.77585-1.5738-6.54965-3.2891-.87202-.8433-1.58017-1.6892-2.07052-2.3251zm19.25177-1.0403c.0001.0002.0003.0004-.6316.4045.6319.4041.6317.4043.6316.4045l-.0004.0006-.001.0017-.0034.0052-.0116.0178c-.0099.0152-.0241.0368-.0425.0645-.0368.0553-.0905.1348-.1602.2349-.1394.2002-.343.4836-.6044.8225-.5217.6766-1.278 1.5807-2.2156 2.4874-1.8455 1.7847-4.5285 3.7109-7.5925 3.7109-3.06392 0-5.7469-1.9262-7.59239-3.7109-.93763-.9067-1.69394-1.8108-2.21565-2.4874-.26133-.3389-.465-.6223-.60434-.8225-.0697-.1001-.12338-.1796-.1602-.2349-.01842-.0277-.03263-.0493-.04253-.0645l-.0116-.0178-.00335-.0052-.00106-.0017-.00038-.0006c-.00014-.0002-.00027-.0004.63155-.4045-.63182-.4041-.63169-.4043-.63155-.4045l.00038-.0006.00106-.0017.00335-.0052.0116-.0178c.0099-.0152.02411-.0368.04253-.0645.03682-.0553.0905-.1348.1602-.2349.13934-.2002.34301-.4836.60434-.8225.52171-.67661 1.27802-1.58072 2.21565-2.48744 1.84549-1.78467 4.52847-3.71086 7.59239-3.71086 3.064 0 5.747 1.92619 7.5925 3.71086.9376.90672 1.6939 1.81083 2.2156 2.48744.2614.3389.465.6223.6044.8225.0697.1001.1234.1796.1602.2349.0184.0277.0326.0493.0425.0645l.0116.0178.0034.0052.001.0017zm-.6316.4045.6319-.4041.2584.4041-.2584.4041zm-20.63177-.4041.63182.4041-.63182.4041-.25847-.4041zm7.38182.4041c0-1.7949 1.45505-3.25 3.24995-3.25 1.795 0 3.25 1.4551 3.25 3.25s-1.455 3.25-3.25 3.25c-1.7949 0-3.24995-1.4551-3.24995-3.25zm3.24995-4.75c-2.6233 0-4.74995 2.12665-4.74995 4.75 0 2.6234 2.12665 4.75 4.74995 4.75 2.6234 0 4.75-2.1266 4.75-4.75 0-2.62335-2.1266-4.75-4.75-4.75z" fill="currentColor" fill-rule="evenodd"></path></svg></button><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj MarkdownStyles__StyledActionLink-sc-dccc8dc1-4 gFNlzT" target="_blank" title="Help" aria-label="Help" href="/community/markdown"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m12 6c-3.31371 0-6 2.68629-6 6 0 3.3137 2.68629 6 6 6 3.3137 0 6-2.6863 6-6 0-3.31371-2.6863-6-6-6zm-7.5 6c0-4.14214 3.35786-7.5 7.5-7.5 4.1421 0 7.5 3.35786 7.5 7.5 0 4.1421-3.3579 7.5-7.5 7.5-4.14214 0-7.5-3.3579-7.5-7.5z"></path><path d="m11.1951 13.8881v-.0817c.0054-.5327.0554-.9565.15-1.2716.0973-.315.2352-.5699.4136-.7646.1784-.1948.3934-.3723.6448-.5327.1622-.1089.3082-.2306.4379-.3652.1298-.1346.2325-.2892.3082-.4639s.1136-.3681.1136-.58c0-.25489-.0568-.47542-.1703-.66157-.1136-.18616-.265-.32936-.4542-.4296-.1866-.1031-.3947-.15465-.6245-.15465-.2082 0-.4069.04582-.5961.13747-.1893.09165-.3461.23484-.4704.42959-.1244.19189-.196.43962-.2149.7432h-1.2328c.01892-.51551.14193-.95084.36902-1.30597.22708-.35799.52718-.62864.90028-.81193.3757-.18329.7907-.27494 1.2449-.27494.4974 0 .9327.09881 1.3058.29642.373.19475.6623.46826.8678.82053.2081.3494.3122.75751.3122 1.22434 0 .32081-.0473.61001-.1419.86781-.0947.2549-.2298.4825-.4055.683-.1731.2005-.3812.3781-.6245.5327-.2298.1518-.4164.3093-.5596.4726-.1406.1632-.2434.3565-.3082.5799-.0649.2234-.1001.4998-.1055.8291v.0817zm.6123 2.6119c-.2217 0-.4123-.0831-.5718-.2492-.1595-.1689-.2392-.3723-.2392-.61 0-.2348.0797-.4353.2392-.6014.1595-.169.3501-.2535.5718-.2535.219 0 .4082.0845.5677.2535.1622.1661.2433.3666.2433.6014 0 .1575-.0378.3022-.1135.4339-.073.1289-.1703.232-.292.3093s-.2568.116-.4055.116z"></path></g></svg></a></div></div><div class="MarkdownStyles__StyledWrapper-sc-dccc8dc1-5 iZDgyt"><div class="MarkdownStyles__StyledSlateEditableWrapper-sc-dccc8dc1-6 gxDflj"><div id="input-:R39l4q9ql6:" class="MarkdownStyles__StyledSlateEditable-sc-dccc8dc1-8 gUXryj" data-slate-editor="true" data-slate-node="value" contenteditable="false" zindex="-1" style="position:relative;white-space:pre-wrap;word-wrap:break-word"><div data-slate-node="element" style="position:relative"><span data-slate-node="text"><span data-slate-leaf="true" data-slate-obj="{"text":"","placeholder":"Leave a comment..."}" class="MarkdownStyles__StyledSlateLeaf-sc-dccc8dc1-9 kEIgRr"><span data-slate-zero-width="n" data-slate-length="0"><br/></span></span></span></div></div></div></div></div></form><div class="CommentFormTemplateStyles__StyledFormNote-sc-f4f7f538-4 hmApOG"><p>This textbox defaults to using<!-- --> <strong>Markdown</strong> <!-- -->to format your answer.</p><p>You can type<!-- --> <strong>!ref</strong> <!-- -->in this text area to quickly search our full set of<!-- --> <!-- -->tutorials, documentation & marketplace offerings and insert the link!</p></div><div class="CommentFormTemplateStyles__StyledButtonBar-sc-f4f7f538-3 btVxEm"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj ButtonLinkStyles__StyledButtonLink-sc-b1f7fbf-0 glNInm CommentFormTemplate___StyledButtonLink-sc-9b99b70c-1 gcUUDj" title="" href="/api/dynamic-content/v1/login?success_redirect=https%3A%2F%2Fwww.digitalocean.com&error_redirect=https%3A%2F%2Fwww.digitalocean.com%2Fauth-error&type=register">Sign In or Sign Up to Comment</a></div></div><div class="CommentsTemplateStyles__StyledCommentsContainer-sc-43f3aa21-0 kVMWkL"><div state="published" voteable="1" class="CommentStyles__StyledCommentContainer-sc-c986a6a7-0 mfxIB"><div class="CommentStyles__StyledCommentMeta-sc-c986a6a7-2 kwjRGJ"><div class="CommentStyles__StyledCommentMetaContainer-sc-c986a6a7-3 bSpdQq"><div class="CommentStyles__StyledCommentMetaNameAndDate-sc-c986a6a7-4 iednMA"><a class="CommentStyles__StyledCommentMetaName-sc-c986a6a7-5 hCWzay" href="/community/users/toomding">toomding</a><span> • </span><a class="CommentStyles__StyledCommentMetaDate-sc-c986a6a7-6 fGirDv" href="/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide?comment=94194">December 12, 2020</a></div><button type="button" class="CommentStyles__StyledExpandButton-sc-c986a6a7-15 gdQvQz"><span><svg fill="none" height="9" viewBox="0 0 15 9" width="15" xmlns="http://www.w3.org/2000/svg"><path d="m1.5 8.06543 6-6 6 6" stroke="currentColor" stroke-width="2"></path></svg></span></button></div></div><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH"><p>It helped me a lot. Reading this article is just like enjoying a good novel. Love it.</p> </div></div><ul class="CommentStyles__StyledCommentActions-sc-c986a6a7-9 gXtcjD"><li><button class="CommentStyles__StyledCommentAction-sc-c986a6a7-10 ganxsQ">Reply</button></li></ul></div></div><div state="published" voteable="1" class="CommentStyles__StyledCommentContainer-sc-c986a6a7-0 mfxIB"><div class="CommentStyles__StyledCommentMeta-sc-c986a6a7-2 kwjRGJ"><div class="CommentStyles__StyledCommentMetaContainer-sc-c986a6a7-3 bSpdQq"><div class="CommentStyles__StyledCommentMetaNameAndDate-sc-c986a6a7-4 iednMA"><a class="CommentStyles__StyledCommentMetaName-sc-c986a6a7-5 hCWzay" href="/community/users/leechau">leechau</a><span> • </span><a class="CommentStyles__StyledCommentMetaDate-sc-c986a6a7-6 fGirDv" href="/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide?comment=91700">September 24, 2020</a></div><button type="button" class="CommentStyles__StyledExpandButton-sc-c986a6a7-15 gdQvQz"><span><svg fill="none" height="9" viewBox="0 0 15 9" width="15" xmlns="http://www.w3.org/2000/svg"><path d="m1.5 8.06543 6-6 6 6" stroke="currentColor" stroke-width="2"></path></svg></span></button></div></div><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH"><p>concise and helpful, thanks!</p> </div></div><ul class="CommentStyles__StyledCommentActions-sc-c986a6a7-9 gXtcjD"><li><button class="CommentStyles__StyledCommentAction-sc-c986a6a7-10 ganxsQ">Reply</button></li></ul></div></div><div state="published" voteable="1" class="CommentStyles__StyledCommentContainer-sc-c986a6a7-0 mfxIB"><div class="CommentStyles__StyledCommentMeta-sc-c986a6a7-2 kwjRGJ"><div class="CommentStyles__StyledCommentMetaContainer-sc-c986a6a7-3 bSpdQq"><div class="CommentStyles__StyledCommentMetaNameAndDate-sc-c986a6a7-4 iednMA"><a class="CommentStyles__StyledCommentMetaName-sc-c986a6a7-5 hCWzay" href="/community/users/grantwinney">Grant Winney</a><span> • </span><a class="CommentStyles__StyledCommentMetaDate-sc-c986a6a7-6 fGirDv" href="/community/cheatsheets/how-to-use-ansible-cheat-sheet-guide?comment=84198">December 19, 2019</a></div><button type="button" class="CommentStyles__StyledExpandButton-sc-c986a6a7-15 gdQvQz"><span><svg fill="none" height="9" viewBox="0 0 15 9" width="15" xmlns="http://www.w3.org/2000/svg"><path d="m1.5 8.06543 6-6 6 6" stroke="currentColor" stroke-width="2"></path></svg></span></button></div></div><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="CommentStyles__StyledCommentBody-sc-c986a6a7-7 cYyzNU"><div class="Markdownstyles-sc-dd1icp-0 kfTVTG MarkdownStyles__StyledMarkdown-sc-bf598916-0 fzarqH"><p>In the “this playbook” link under the glossary section, I <em>think</em> the link should actually be:</p> <p><a href="https://github.com/do-community/ansible-playbooks/blob/master/setup_ubuntu1804/playbook.yml" rel="ugc nofollow noopener" target="_blank">https://github.com/do-community/ansible-playbooks/blob/master/setup_ubuntu1804/playbook.yml</a></p> </div></div><ul class="CommentStyles__StyledCommentActions-sc-c986a6a7-9 gXtcjD"><li><button class="CommentStyles__StyledCommentAction-sc-c986a6a7-10 ganxsQ">Reply</button></li></ul></div></div></div></div><div class="TutorialTemplateStyles__StyledCreativeCommonsLicense-sc-337a0527-20 klBkzI"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" alt="Creative Commons url" class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj"><img alt="Creative Commons" loading="lazy" width="114" height="40" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fcreativecommons.c0a877f1.png&width=128 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fcreativecommons.c0a877f1.png&width=256 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fcreativecommons.c0a877f1.png&width=256"/></a><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" alt="Creative Commons url" class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj">This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 4.0 International License.</a></div></div><div class="QuestionAndTutorialRightContainerStyles__StyledContainer-sc-67cb485e-0 jsWEOJ"><div class="QuestionAndTutorialRightContainerStyles__StyledStickyContainer-sc-67cb485e-1 ZhibX"><div class="TutorialTemplateStyles__StyledSidebarItem-sc-337a0527-34 dyCJUo"><div class="CommunityCTAStyles-sc-f4cdce3f-0 gMFPJj"><h3>Try DigitalOcean for free</h3><p>Click below to sign up and get<!-- --> <strong>$200<!-- --> <!-- -->of credit</strong> <!-- -->to try our products over 60 days!</p><p><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj TextLink___StyledLazyLink-sc-221f63b7-0 jNvMpG CommunityCTA___StyledTextLink-sc-ca2b5295-1 hnkFuV" href="https://cloud.digitalocean.com/registrations/new?refcode=f6fcd01aaffb">Sign up</a></p></div></div><div class="TutorialTemplateStyles__StyledSidebarItem-sc-337a0527-34 dyCJUo"><div><div class="QuestionAndTutorialSideNavigationStyles__StyledSideNavigationGroup-sc-8d4e3a-0 jLoSgL"><h3 class="QuestionAndTutorialSideNavigationStyles__StyledHeading-sc-8d4e3a-1 cUgAOq">Popular Topics</h3><ul><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/ai-ml">AI/ML</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/ubuntu">Ubuntu</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/linux-basics">Linux Basics</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/javascript">JavaScript</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/python">Python</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/mysql">MySQL</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/docker">Docker</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 ghzFwn"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj QuestionAndTutorialSideNavigation___StyledLazyLink-sc-5001fc89-0 cqFhmh" href="/community/tags/kubernetes">Kubernetes</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 QuestionAndTutorialSideNavigationStyles__StyledListItemEmphasized-sc-8d4e3a-3 ghzFwn jAcrvR"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj TextLink___StyledLazyLink-sc-221f63b7-0 eTVGAK" href="/community/tutorials">All tutorials</a></li><li class="QuestionAndTutorialSideNavigationStyles__StyledListItem-sc-8d4e3a-2 QuestionAndTutorialSideNavigationStyles__StyledListItemEmphasized-sc-8d4e3a-3 ghzFwn jAcrvR"><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj TextLink___StyledLazyLink-sc-221f63b7-0 eTVGAK" href="/company/contact/sales?referrer=tutorials">Talk to an expert</a></li></ul></div></div></div></div></div></div><dialog class="Dialogstyles__StyledDialog-sc-ogn4wt-0 Lunik"><div class="Dialogstyles__StyledDialogContainer-sc-ogn4wt-1 kLMNcL"><button type="button" aria-label="Close" class="Dialogstyles__StyledDialogCloseButton-sc-ogn4wt-2 nSJQw"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button><div class="TechTalkRegistrationModalTemplateStyles__StyledModalContent-sc-8b89ec4f-4 iSNMWw"><div class="TechTalkRegistrationModalTemplateStyles__StyledModalHeader-sc-8b89ec4f-5 hQlgAx"><h5 defaultColor="#031b4e" class="HeadingStyles__StyledH5-sc-73f0758c-4 fteKuf TechTalkRegistrationModalTemplate___StyledHeading-sc-3c341be5-0 fZaNDn">Join the Tech Talk</h5></div><div class="TechTalkRegistrationModalTemplateStyles__StyledFormContainer-sc-8b89ec4f-0 igwIZZ"><form class="TechTalkRegistrationModalTemplateStyles__StyledForm-sc-8b89ec4f-1 fneTDw"><div class="alert alert-success alert-hidden"><strong>Success!</strong> <!-- -->Thank you! Please check your email for further details.</div><p>Please complete your information!</p><input placeholder="user@digitalocean.com" required="" type="email" class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 lhxYYL"/><input placeholder="First Name" required="" type="text" class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 lhxYYL"/><input placeholder="Last Name" required="" type="text" class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 lhxYYL"/><input type="submit" class="TechTalkRegistrationModalTemplateStyles__StyledSubmit-sc-8b89ec4f-3 WomeH" value="Sign up"/></form></div></div></div></dialog><div class="PreFooterStyles__StyledSection-sc-9178b097-0 gWNWsX"><div class="PreFooterStyles__StyledContainer-sc-9178b097-1 fggxPh"><div class="Gridstyles-sc-isu2n3-0 dBrtIt"><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"></div><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><div class="Gridstyles-sc-isu2n3-0 fdCJri"><div class="GridItemstyles-sc-eu71zi-0 kqcUUB"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-9 jAfreL"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 gyrAqA"><img alt="" blurWidth="0" blurHeight="0" loading="lazy" width="1056" height="608" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Ftutorials-2-tulip.764b9f59.svg&width=1080 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Ftutorials-2-tulip.764b9f59.svg&width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Ftutorials-2-tulip.764b9f59.svg&width=3840"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hRLlz"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 hgmQvh"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-4 ooyFS"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-6 jeSwjZ"><h2 class="Typographystyles-sc-o7qsl9-0 dHgDVk">Become a contributor for community</h2></div><p class="Typographystyles-sc-o7qsl9-0 kLhCbB">Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5 indddk"><p class="Typographystyles-sc-o7qsl9-0 hXZsjT"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/community/pages/write-for-digitalocean">Sign Up<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 kqcUUB"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-9 jAfreL"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 gyrAqA"><img alt="" blurWidth="0" blurHeight="0" loading="lazy" width="1056" height="608" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdocs-2-kiwi.239a03ef.svg&width=1080 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdocs-2-kiwi.239a03ef.svg&width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fdocs-2-kiwi.239a03ef.svg&width=3840"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hRLlz"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 hgmQvh"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-4 ooyFS"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-6 jeSwjZ"><h2 class="Typographystyles-sc-o7qsl9-0 dHgDVk">DigitalOcean Documentation</h2></div><p class="Typographystyles-sc-o7qsl9-0 kLhCbB">Full documentation for every DigitalOcean product.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5 indddk"><p class="Typographystyles-sc-o7qsl9-0 hXZsjT"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="https://docs.digitalocean.com">Learn more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 kqcUUB"><div class="CardUniversalstyles__StyledCardUniversal-sc-1inzdla-9 jAfreL"><div class="CardUniversalstyles__StyledCardUniversalImage-sc-1inzdla-1 gyrAqA"><img alt="" blurWidth="0" blurHeight="0" loading="lazy" width="1056" height="608" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fblogs-1-lavender.495d1f00.svg&width=1080 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fblogs-1-lavender.495d1f00.svg&width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fblogs-1-lavender.495d1f00.svg&width=3840"/></div><div class="CardUniversalstyles__StyledCardUniversalContainer-sc-1inzdla-2 hRLlz"><div class="CardUniversalstyles__StyledCardUniversalContent-sc-1inzdla-3 hgmQvh"><div class="CardUniversalstyles__StyledCardUniversalMainContent-sc-1inzdla-4 ooyFS"><div class="CardUniversalstyles__StyledCardUniversalHeader-sc-1inzdla-6 jeSwjZ"><h2 class="Typographystyles-sc-o7qsl9-0 dHgDVk">Resources for startups and SMBs</h2></div><p class="Typographystyles-sc-o7qsl9-0 kLhCbB">The Wave has everything you need to know about building a business, from raising funding to marketing your product.</p></div></div><div class="CardUniversalstyles__StyledCardUniversalLink-sc-1inzdla-5 indddk"><p class="Typographystyles-sc-o7qsl9-0 hXZsjT"><a class="LinkTextstyles-sc-jz3jcd-0 gxPNxu" href="/resources">Learn more<svg viewBox="0 0 18 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.6033 1.27344L16.6033 5.77344L12.6033 10.2734" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M1.60327 5.77344H16.6033" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></p></div></div></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><div id="iaan" class="PreFooterStyles__StyledEmailCaptureContainer-sc-9178b097-2 dWBUFA"><div class="Gridstyles-sc-isu2n3-0 cMcSha PreFooterStyles__StyledGrid-sc-9178b097-4 eEOPZv"><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><h2 class="Typographystyles-sc-o7qsl9-0 fRmROg">Get our newsletter</h2></div><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><p class="Typographystyles-sc-o7qsl9-0 kLhCbB">Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.</p></div></div><div class="Gridstyles-sc-isu2n3-0 blGhge PreFooterStyles__StyledFullWidthGrid-sc-9178b097-9 gBggHG"><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><form id="mktoForm_1055" style="display:none;width:100%"></form><form class="PreFooterStyles__StyledEmailInputContainer-sc-9178b097-7 hpvMmi"><div class="PreFooterStyles__StyledEmailInput-sc-9178b097-8 gshWnS"><input type="email" name="email" placeholder="Email address" required="" value=""/><div class="PreFooterStyles__StyledInInputSubmit-sc-9178b097-6 dzyQkl"><button aria-disabled="false" type="submit" class="Buttonstyles-sc-hznqte-1 hPCZJz">Submit</button></div></div><div class="PreFooterStyles__StyledOutsideInputSubmit-sc-9178b097-5 iPSfQk"><button aria-disabled="false" type="submit" class="Buttonstyles-sc-hznqte-1 hPCZJz">Submit</button></div></form></div><div class="GridItemstyles-sc-eu71zi-0 bQTwvh"><div class="PreFooterStyles__StyledDisclaimerContainer-sc-9178b097-3 fEeiqt"><p class="Typographystyles-sc-o7qsl9-0 hHKElO">New accounts only. By submitting your email you agree to our<!-- --> <a class="LinkInlinestyles-sc-18du0ds-0 iepvyF" href="/legal/privacy-policy">Privacy Policy</a></p></div></div></div></div></div></div></div></div><div id="start-building-today" class="FooterStyles__StyledSection-sc-19041032-0 itaWBy"><div class="Containerstyles-sc-11hjsrs-0 eloHHI"><div class="Gridstyles-sc-isu2n3-0 dBrtIt"><div class="Gridstyles-sc-isu2n3-0 gBRUmy"><div class="GridItemstyles-sc-eu71zi-0 cheoSo"><div class="Gridstyles-sc-isu2n3-0 dBrtIt CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0 kvHGYa"><div class="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1 kFtKEy"><div class="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4 bVMeVd"><div class="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3 idAioI"><h2 class="Typographystyles-sc-o7qsl9-0 fcsSE">The developer cloud</h2><p class="Typographystyles-sc-o7qsl9-0 Phplo">Scale up as you grow — whether you're running one virtual machine or ten thousand.</p></div><div><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 jUFun" href="/products">View all products</a></div></div><div class="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2 kyDnDR"><picture><source media="(min-width: 768px)" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fclouds.9d2b5034.svg&width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fclouds.9d2b5034.svg&width=3840 2x"/><img alt="" loading="lazy" width="1088" height="426" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fclouds-mobile.5d14bead.svg&width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fclouds-mobile.5d14bead.svg&width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fclouds-mobile.5d14bead.svg&width=3840"/></picture></div></div></div></div><div class="GridItemstyles-sc-eu71zi-0 cheoSo"><div class="Gridstyles-sc-isu2n3-0 dBrtIt CTATextCenterstyles__StyledCTATextCenterWrapper-sc-1bhx0m5-0 kvHGYa"><div class="CTATextCenterstyles__StyledCTATextCenter-sc-1bhx0m5-1 deOheg"><div class="CTATextCenterstyles__StyledCTATextCenterContainer-sc-1bhx0m5-4 bVMeVd"><div class="CTATextCenterstyles__StyledCTATextCenterContent-sc-1bhx0m5-3 idAioI"><h2 class="Typographystyles-sc-o7qsl9-0 fcsSE">Get started for free</h2><p class="Typographystyles-sc-o7qsl9-0 kLhCbB">Sign up and get $200 in credit for your first 60 days with DigitalOcean.*</p></div><div><a aria-disabled="false" class="Buttonstyles-sc-hznqte-1 kNhxtA" href="https://cloud.digitalocean.com/registrations/new?refcode=f6fcd01aaffb">Get started</a></div></div><div class="CTATextCenterstyles__StyledCTATextCenterImage-sc-1bhx0m5-2 kyDnDR"><picture><source media="(min-width: 768px)" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fwaves.6577cae3.svg&width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fwaves.6577cae3.svg&width=3840 2x"/><img alt="" loading="lazy" width="1088" height="323" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fwaves-mobile.a054c63e.svg&width=1200 1x, https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fwaves-mobile.a054c63e.svg&width=3840 2x" src="https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fwaves-mobile.a054c63e.svg&width=3840"/></picture></div></div></div></div></div><p style="text-align:center" class="Typographystyles-sc-o7qsl9-0 hHKElO">*This promotional offer applies to new accounts only.</p></div></div></div><div id="footer" class="Sectionstyles__StyledSection-sc-4l5hhw-0 nQErm"><div class="Sectionstyles__StyledSectionInner-sc-4l5hhw-1 hAqGAc"><div class="Containerstyles-sc-11hjsrs-0 eloHHI"><footer class="LinksStyles__StyledFooterDesktop-sc-e23e78b7-0 kuxFrB"><div><h6 class="Typographystyles-sc-o7qsl9-0 ikXVrB">Company</h6><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/about">About</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://investors.digitalocean.com/governance/executive-management/default.aspx" rel="nofollow">Leadership</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/blog">Blog</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/careers">Careers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/customers">Customers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/partners">Partners</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/referral-program">Referral Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/affiliates">Affiliate Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/press">Press</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/legal">Legal</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/legal/privacy-policy">Privacy Policy</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/security">Security</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://investors.digitalocean.com/">Investor Relations</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/impact">DO Impact</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/impact/nonprofits">Nonprofits</a></li></ul></div><div><h6 class="Typographystyles-sc-o7qsl9-0 ikXVrB">Products</h6><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products">Overview</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/droplets">Droplets</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/kubernetes">Kubernetes</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/functions">Functions</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/app-platform">App Platform</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/gpu-droplets">GPU Droplets</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/ai-ml/1-click-models">1-Click Models</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/gen-ai">GenAI Platform</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/bare-metal-gpu">Bare Metal</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/load-balancers">Load Balancers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/managed-databases">Managed Databases</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/spaces">Spaces</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/block-storage">Block Storage</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/reference/api">API</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/uptime-monitoring">Uptime</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/identity-access-management">Identity Access Management</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/cloudways">Cloudways</a></li></ul></div><div><h6 class="Typographystyles-sc-o7qsl9-0 ikXVrB">Resources</h6><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/tutorials">Community Tutorials</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/questions">Community Q&A</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://css-tricks.com/" target="_blank">CSS-Tricks</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/pages/write-for-digitalocean">Write for DOnations</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/currents">Currents Research</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/hatch">Hatch Startup Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/wavemakers">Wavemakers Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/research">Compass Council</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/open-source">Open Source</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community#iaan">Newsletter Signup</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/marketplace">Marketplace</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/pricing">Pricing</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/pricing/calculator">Pricing Calculator</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/">Documentation</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/release-notes">Release Notes</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/pages/code-of-conduct">Code of Conduct</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="http://store.digitalocean.com/" rel="nofollow">Shop Swag</a></li></ul></div><div><h6 class="Typographystyles-sc-o7qsl9-0 ikXVrB">Solutions</h6><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/website-hosting">Website Hosting</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/vps-hosting">VPS Hosting</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/web-mobile-apps">Web & Mobile Apps</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/gaming-development">Game Development</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/streaming">Streaming</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/vpn">VPN</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/saas">SaaS Platforms</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/blockchain">Cloud Hosting for Blockchain</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/resources">Startup Resources</a></li></ul></div><div><h6 class="Typographystyles-sc-o7qsl9-0 ikXVrB">Contact</h6><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/support">Support</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/company/contact/sales?referrer=footer">Sales</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/company/contact/abuse">Report Abuse</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://status.digitalocean.com/" rel="nofollow">System Status</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://ideas.digitalocean.com/" rel="nofollow">Share your ideas</a></li></ul></div></footer><footer class="LinksStyles__StyledFooterMobile-sc-e23e78b7-3 hZzCcf"><details class="LinksStyles__StyledDetails-sc-e23e78b7-4 aJsNo"><summary><h6 class="Typographystyles-sc-o7qsl9-0 hxQDjp">Company</h6><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/about">About</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://investors.digitalocean.com/governance/executive-management/default.aspx" rel="nofollow">Leadership</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/blog">Blog</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/careers">Careers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/customers">Customers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/partners">Partners</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/referral-program">Referral Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/affiliates">Affiliate Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/press">Press</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/legal">Legal</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/legal/privacy-policy">Privacy Policy</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/security">Security</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://investors.digitalocean.com/">Investor Relations</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/impact">DO Impact</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/impact/nonprofits">Nonprofits</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-e23e78b7-4 aJsNo"><summary><h6 class="Typographystyles-sc-o7qsl9-0 hxQDjp">Products</h6><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products">Overview</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/droplets">Droplets</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/kubernetes">Kubernetes</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/functions">Functions</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/app-platform">App Platform</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/gpu-droplets">GPU Droplets</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/ai-ml/1-click-models">1-Click Models</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/gen-ai">GenAI Platform</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/bare-metal-gpu">Bare Metal</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/load-balancers">Load Balancers</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/managed-databases">Managed Databases</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/spaces">Spaces</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/block-storage">Block Storage</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/reference/api">API</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/uptime-monitoring">Uptime</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/identity-access-management">Identity Access Management</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/cloudways">Cloudways</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-e23e78b7-4 aJsNo"><summary><h6 class="Typographystyles-sc-o7qsl9-0 hxQDjp">Resources</h6><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/tutorials">Community Tutorials</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/questions">Community Q&A</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://css-tricks.com/" target="_blank">CSS-Tricks</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/pages/write-for-digitalocean">Write for DOnations</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/currents">Currents Research</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/hatch">Hatch Startup Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/wavemakers">Wavemakers Program</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/research">Compass Council</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/open-source">Open Source</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community#iaan">Newsletter Signup</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/products/marketplace">Marketplace</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/pricing">Pricing</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/pricing/calculator">Pricing Calculator</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/">Documentation</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://docs.digitalocean.com/release-notes">Release Notes</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/community/pages/code-of-conduct">Code of Conduct</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="http://store.digitalocean.com/" rel="nofollow">Shop Swag</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-e23e78b7-4 aJsNo"><summary><h6 class="Typographystyles-sc-o7qsl9-0 hxQDjp">Solutions</h6><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/website-hosting">Website Hosting</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/vps-hosting">VPS Hosting</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/web-mobile-apps">Web & Mobile Apps</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/gaming-development">Game Development</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/streaming">Streaming</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/vpn">VPN</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/saas">SaaS Platforms</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/solutions/blockchain">Cloud Hosting for Blockchain</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/resources">Startup Resources</a></li></ul></details><details class="LinksStyles__StyledDetails-sc-e23e78b7-4 aJsNo"><summary><h6 class="Typographystyles-sc-o7qsl9-0 hxQDjp">Contact</h6><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="up"><polyline points="18 15 12 9 6 15"></polyline></svg><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="down"><polyline points="6 9 12 15 18 9"></polyline></svg></summary><ul class="LinksStyles__StyledList-sc-e23e78b7-1 AFHla"><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/support">Support</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="/company/contact/sales?referrer=footer">Sales</a></li><li><a class="LazyLink___StyledLink-sc-679fc0ad-0 fjIPKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" rel="nofollow" href="/company/contact/abuse">Report Abuse</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://status.digitalocean.com/" rel="nofollow">System Status</a></li><li><a class="LazyLink___StyledA-sc-679fc0ad-1 gYjDKj Typographystyles-sc-o7qsl9-0 saphT LinksStyles__StyledLink-sc-e23e78b7-2 eEzFnU" href="https://ideas.digitalocean.com/" rel="nofollow">Share your ideas</a></li></ul></details></footer><div class="CompanyDetailsStyles__StyledCompanyDetails-sc-29dc4d61-0 hVvKLQ"><div class="CompanyDetailsStyles__StyledCompanyLogo-sc-29dc4d61-1 cpSiFS"><svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 90 90" tabindex="-1" class="DigitalOceanSmileyStyles__StyledSvg-sc-64ca7b97-4 hjiknj"><circle cx="45" cy="45" r="36.25" fill="none" stroke="currentColor" stroke-width="17.5" stroke-dasharray="170.824100538945 56.941366846315" stroke-dashoffset="113.88273369263" class="DigitalOceanSmileyStyles__StyledCircle-sc-64ca7b97-0 bFTXQH"></circle><rect x="3.25" y="61.5" width="11" height="11" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelSm-sc-64ca7b97-1 fLzQlC"></rect><rect x="14.25" y="72.5" width="13.5" height="13.5" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelMd-sc-64ca7b97-2 gicUQZ"></rect><rect x="27.5" y="55.25" width="17.25" height="17.25" fill="currentColor" class="DigitalOceanSmileyStyles__StyledPixelLg-sc-64ca7b97-3 fAILdG"></rect></svg><span class="Typographystyles-sc-o7qsl9-0 saphT">©<!-- --> 2024 <!-- -->DigitalOcean, LLC.</span><span class="Typographystyles-sc-o7qsl9-0 saphT"><a href="/sitemap">Sitemap</a>.</span></div><ul class="CompanyDetailsStyles__StyledCompanySocials-sc-29dc4d61-2 fXQyuL"><li><a href="https://twitter.com/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="X (Twitter)" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.0468 10.3155L22.0566 1.00003H20.1585L13.2036 9.08855L7.6488 1.00003H1.24194L9.64196 13.2313L1.24194 23H3.14011L10.4847 14.4583L16.351 23H22.7578L14.0464 10.3155H14.0468ZM11.447 13.3391L10.5959 12.1211L3.82405 2.42968H6.73952L12.2045 10.251L13.0556 11.4689L20.1594 21.6354H17.244L11.447 13.3395V13.3391Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.instagram.com/thedigitalocean/" target="_blank" rel="me nofollow noopener noreferrer" title="Instagram" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.44432 1.07693C6.27391 1.13215 5.47464 1.31893 4.77592 1.59349C4.05277 1.87531 3.43984 2.2535 2.83 2.86554C2.22015 3.47758 1.84461 4.09094 1.56476 4.81518C1.29394 5.51545 1.11046 6.31537 1.05876 7.48643C1.00706 8.6575 0.995618 9.03392 1.00134 12.0211C1.00706 15.0083 1.02026 15.3827 1.07702 16.5562C1.1329 17.7264 1.31902 18.5254 1.59358 19.2244C1.87585 19.9475 2.25359 20.5602 2.86586 21.1703C3.47812 21.7803 4.09105 22.155 4.81706 22.4353C5.51666 22.7056 6.31681 22.89 7.48766 22.9413C8.65852 22.9925 9.03538 23.0044 12.0217 22.9987C15.008 22.993 15.384 22.9798 16.5573 22.9241C17.7305 22.8684 18.5254 22.681 19.2246 22.4078C19.9477 22.1248 20.5609 21.7478 21.1705 21.1353C21.7801 20.5228 22.1554 19.909 22.4351 19.1843C22.7061 18.4847 22.8902 17.6846 22.9411 16.5146C22.9923 15.3405 23.0044 14.9656 22.9987 11.9788C22.993 8.99212 22.9796 8.61768 22.9239 7.44463C22.8682 6.27159 22.6819 5.47497 22.4076 4.77558C22.1249 4.05244 21.7475 3.44018 21.1355 2.82968C20.5235 2.21918 19.9092 1.84407 19.1847 1.56511C18.4847 1.29429 17.685 1.10971 16.5141 1.05911C15.3433 1.00851 14.9664 0.995531 11.979 1.00125C8.9916 1.00697 8.6176 1.01973 7.44432 1.07693ZM7.5728 20.9624C6.50029 20.9157 5.91795 20.7375 5.52986 20.5884C5.01594 20.3904 4.64985 20.151 4.26309 19.768C3.87633 19.385 3.63872 19.0176 3.43808 18.5047C3.28738 18.1166 3.10588 17.535 3.05572 16.4625C3.00116 15.3033 2.98972 14.9552 2.98334 12.0184C2.97696 9.08166 2.98818 8.73406 3.039 7.57443C3.08476 6.50281 3.26406 5.91981 3.413 5.53195C3.611 5.01737 3.84949 4.65194 4.23339 4.2654C4.61729 3.87886 4.9836 3.64082 5.49686 3.44018C5.88451 3.28882 6.46619 3.10886 7.53826 3.05782C8.69834 3.00282 9.04594 2.99182 11.9823 2.98544C14.9187 2.97906 15.2672 2.99006 16.4277 3.0411C17.4993 3.08774 18.0825 3.26528 18.47 3.4151C18.9841 3.6131 19.35 3.85092 19.7365 4.23548C20.1231 4.62004 20.3613 4.98503 20.562 5.49939C20.7135 5.88593 20.8935 6.46739 20.9441 7.54011C20.9993 8.70018 21.0119 9.048 21.0171 11.9841C21.0224 14.9203 21.0121 15.269 20.9613 16.4281C20.9144 17.5006 20.7366 18.0832 20.5873 18.4717C20.3893 18.9854 20.1506 19.3517 19.7664 19.7381C19.3823 20.1244 19.0164 20.3624 18.503 20.5631C18.1158 20.7142 17.5334 20.8946 16.4622 20.9456C15.3021 21.0002 14.9545 21.0116 12.0171 21.018C9.0796 21.0244 8.7331 21.0125 7.57302 20.9624M16.5403 6.12089C16.5408 6.38198 16.6186 6.63708 16.764 6.85392C16.9095 7.07076 17.1159 7.2396 17.3573 7.33909C17.5987 7.43859 17.8642 7.46426 18.1202 7.41286C18.3762 7.36147 18.6111 7.23532 18.7954 7.05036C18.9797 6.8654 19.105 6.62995 19.1555 6.37378C19.2059 6.11761 19.1793 5.85223 19.0789 5.61121C18.9785 5.37018 18.8089 5.16434 18.5915 5.01971C18.3742 4.87508 18.1188 4.79816 17.8577 4.79868C17.5077 4.79938 17.1723 4.93907 16.9252 5.18702C16.6782 5.43496 16.5397 5.77088 16.5403 6.12089ZM6.35201 12.011C6.35817 15.1306 8.89172 17.6538 12.0107 17.6478C15.1297 17.6419 17.6546 15.1086 17.6487 11.989C17.6427 8.86936 15.1085 6.34551 11.9891 6.35167C8.86972 6.35783 6.34607 8.8918 6.35201 12.011ZM8.33335 12.007C8.33192 11.2818 8.54557 10.5724 8.94728 9.96865C9.349 9.36486 9.92074 8.89376 10.5902 8.6149C11.2597 8.33605 11.9968 8.26198 12.7084 8.40205C13.4199 8.54212 14.074 8.89005 14.5878 9.40184C15.1016 9.91363 15.4521 10.5663 15.595 11.2773C15.7379 11.9883 15.6668 12.7257 15.3906 13.3962C15.1144 14.0668 14.6455 14.6404 14.0433 15.0445C13.4411 15.4486 12.7326 15.6651 12.0074 15.6665C11.5258 15.6675 11.0488 15.5737 10.6036 15.3903C10.1583 15.2069 9.75351 14.9376 9.41233 14.5978C9.07115 14.258 8.80026 13.8543 8.61513 13.4097C8.43 12.9652 8.33425 12.4886 8.33335 12.007Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.facebook.com/DigitalOceanCloudHosting" target="_blank" rel="me nofollow noopener noreferrer" title="Facebook" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.75 8.33333H6V12H8.75V23H13.3333V12H16.6718L17 8.33333H13.3333V6.80525C13.3333 5.92983 13.5093 5.58333 14.3554 5.58333H17V1H13.5093C10.213 1 8.75 2.45108 8.75 5.23042V8.33333Z" fill="currentColor"></path></svg></a></li><li><a href="https://discord.gg/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="Discord" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.6361 5.39641C18.1907 4.73466 16.6648 4.26519 15.0974 4C14.8829 4.38343 14.6888 4.77793 14.516 5.18185C12.8463 4.93025 11.1484 4.93025 9.47883 5.18185C9.30589 4.77797 9.11182 4.38348 8.89742 4C7.32898 4.26743 5.80206 4.73802 4.35518 5.39987C1.48276 9.64968 0.704089 13.7939 1.09342 17.8793C2.77559 19.1222 4.65841 20.0674 6.66004 20.6739C7.11075 20.0677 7.50957 19.4246 7.85227 18.7515C7.20136 18.5083 6.57312 18.2084 5.97481 17.8551C6.13228 17.7409 6.28628 17.6232 6.43509 17.509C8.17602 18.3278 10.0762 18.7523 12 18.7523C13.9238 18.7523 15.8239 18.3278 17.5649 17.509C17.7154 17.6319 17.8694 17.7496 18.0252 17.8551C17.4257 18.209 16.7963 18.5095 16.1442 18.7532C16.4865 19.426 16.8854 20.0686 17.3365 20.6739C19.3398 20.0699 21.2241 19.1251 22.9065 17.8811C23.3634 13.1433 22.1261 9.03712 19.6361 5.39641ZM8.34543 15.3668C7.26048 15.3668 6.36415 14.3823 6.36415 13.171C6.36415 11.9597 7.22934 10.9665 8.34197 10.9665C9.4546 10.9665 10.344 11.9597 10.325 13.171C10.3059 14.3823 9.45114 15.3668 8.34543 15.3668ZM15.6545 15.3668C14.5679 15.3668 13.675 14.3823 13.675 13.171C13.675 11.9597 14.5402 10.9665 15.6545 10.9665C16.7689 10.9665 17.6514 11.9597 17.6324 13.171C17.6133 14.3823 16.7602 15.3668 15.6545 15.3668Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.reddit.com/r/digital_ocean" target="_blank" rel="me nofollow noopener noreferrer" title="Reddit" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.797 4.86968C15.0353 5.89878 15.9426 6.66542 17.026 6.66542C18.2908 6.66542 19.3162 5.621 19.3162 4.33271C19.3162 3.04441 18.2908 2 17.026 2C15.9201 2 14.9978 2.79835 14.783 3.86026C12.9309 4.06258 11.4846 5.66256 11.4846 7.60156C11.4846 7.60594 11.4846 7.60922 11.4846 7.61359C9.47038 7.69999 7.63114 8.28399 6.17091 9.20591C5.6287 8.77831 4.94797 8.52349 4.20927 8.52349C2.4366 8.52349 1 9.98677 1 11.7923C1 13.1025 1.75588 14.2311 2.84783 14.7528C2.95412 18.5477 7.01376 21.6 12.0075 21.6C17.0013 21.6 21.0663 18.5444 21.1672 14.7462C22.2506 14.2213 23 13.0959 23 11.7934C23 9.98786 21.5634 8.52458 19.7907 8.52458C19.0552 8.52458 18.3777 8.77721 17.8366 9.20154C16.3635 8.27305 14.5039 7.68905 12.4692 7.61141C12.4692 7.60812 12.4692 7.60594 12.4692 7.60266C12.4692 6.21375 13.4828 5.06106 14.797 4.87187V4.86968ZM6.04207 13.867C6.09575 12.6815 6.86881 11.7716 7.7675 11.7716C8.66618 11.7716 9.35334 12.7329 9.29966 13.9184C9.24597 15.1039 8.57491 15.5347 7.67516 15.5347C6.7754 15.5347 5.98838 15.0525 6.04207 13.867ZM16.2486 11.7716C17.1484 11.7716 17.9214 12.6815 17.974 13.867C18.0277 15.0525 17.2396 15.5347 16.3409 15.5347C15.4423 15.5347 14.7701 15.1049 14.7164 13.9184C14.6628 12.7329 15.3489 11.7716 16.2486 11.7716ZM15.1792 16.6098C15.3478 16.6273 15.4551 16.8055 15.3897 16.9652C14.8367 18.3115 13.5311 19.2575 12.0075 19.2575C10.4839 19.2575 9.1794 18.3115 8.62538 16.9652C8.55988 16.8055 8.66725 16.6273 8.83582 16.6098C9.82362 16.5081 10.8919 16.4523 12.0075 16.4523C13.1231 16.4523 14.1903 16.5081 15.1792 16.6098Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.youtube.com/DigitalOcean" target="_blank" rel="me nofollow noopener noreferrer" title="YouTube" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.54 6.70437C22.2875 5.75802 21.5413 5.01286 20.595 4.7595C18.88 4.29999 12 4.29999 12 4.29999C12 4.29999 5.12 4.29999 3.405 4.7595C2.45875 5.01286 1.7125 5.75802 1.46 6.70437C1 8.42073 1 12 1 12C1 12 1 15.5792 1.46 17.2956C1.7125 18.242 2.45875 18.9871 3.405 19.2405C5.12125 19.7 12 19.7 12 19.7C12 19.7 18.88 19.7 20.595 19.2405C21.5413 18.9871 22.2875 18.242 22.54 17.2956C23 15.5805 23 12 23 12C23 12 23 8.42073 22.54 6.70437ZM9.75 15.2501V8.74984L15.5 12L9.75 15.2501Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.linkedin.com/company/digitalocean/" target="_blank" rel="me nofollow noopener noreferrer" title="LinkedIn" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.376 1H2.62403C1.72722 1 1 1.72722 1 2.62403V21.376C1 22.2728 1.72722 23 2.62403 23H21.376C22.2728 23 23 22.2728 23 21.376V2.62403C23 1.72722 22.2728 1 21.376 1ZM7.55722 19.7428H4.24958V9.23472H7.55722V19.7428ZM5.90417 7.78028C4.85153 7.78028 3.9975 6.97819 3.9975 5.88125C3.9975 4.78431 4.85153 3.98222 5.90417 3.98222C6.95681 3.98222 7.81083 4.78431 7.81083 5.88125C7.81083 6.97819 6.95681 7.78028 5.90417 7.78028ZM19.7504 19.7504H16.4428V14.0121C16.4428 12.3193 15.7232 11.7968 14.7943 11.7968C13.8135 11.7968 12.851 12.5347 12.851 14.0549V19.7519H9.54333V9.24236H12.7242V10.6983H12.7669C13.0862 10.0521 14.2046 8.9475 15.9111 8.9475C17.7567 8.9475 19.7504 10.0429 19.7504 13.2513V19.7504Z" fill="currentColor"></path></svg></a></li><li><a href="https://github.com/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="GitHub" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 1C5.92468 1 1.00366 6.04649 1.00366 12.2767C1.00366 17.2609 4.15609 21.4836 8.52358 22.9789C9.07036 23.0827 9.27287 22.7366 9.27287 22.432C9.27287 22.162 9.26612 21.4559 9.25937 20.5145C6.20145 21.1929 5.55341 19.0054 5.55341 19.0054C5.05389 17.7039 4.3316 17.3578 4.3316 17.3578C3.33254 16.6586 4.40585 16.6725 4.40585 16.6725C5.50616 16.7556 6.09344 17.8355 6.09344 17.8355C7.07225 19.5592 8.66534 19.0607 9.29312 18.77C9.39437 18.0431 9.67789 17.5447 9.98841 17.2609C7.54477 16.9771 4.97963 16.0079 4.97963 11.6883C4.97963 10.4561 5.40491 9.45235 6.11369 8.66318C5.99894 8.37936 5.62092 7.23023 6.2217 5.6796C6.2217 5.6796 7.1465 5.37501 9.24587 6.83565C10.1234 6.58644 11.0617 6.46184 12 6.45491C12.9316 6.45491 13.8766 6.58644 14.7542 6.83565C16.8535 5.37501 17.7783 5.6796 17.7783 5.6796C18.3791 7.23023 18.0011 8.37936 17.8863 8.66318C18.5884 9.45235 19.0137 10.4561 19.0137 11.6883C19.0137 16.0218 16.4418 16.9702 13.9914 17.254C14.3829 17.6001 14.7407 18.2924 14.7407 19.3446C14.7407 20.8537 14.7272 22.0651 14.7272 22.4389C14.7272 22.7435 14.9229 23.0896 15.4832 22.9789C19.8507 21.4836 22.9964 17.2609 22.9964 12.2836C22.9964 6.04649 18.0754 1 12 1Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.glassdoor.com/Overview/Working-at-DigitalOcean-EI_IE823482.11,23.htm" target="_blank" rel="me nofollow noopener noreferrer" title="Glassdoor" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.62 19.8572H4.29999C4.29999 21.5929 5.67893 23 7.38001 23H16.62C18.321 23 19.7 21.5929 19.7 19.8572V6.95128C19.7 6.9209 19.6881 6.89178 19.6671 6.87031C19.646 6.84884 19.6175 6.83678 19.5877 6.83678H16.7322C16.7024 6.83678 16.6739 6.84884 16.6528 6.87031C16.6317 6.89178 16.6199 6.9209 16.6199 6.95128L16.62 19.8572ZM16.62 1C18.321 1 19.7 2.40708 19.7 4.14288H7.38001V17.0488C7.38001 17.0792 7.36819 17.1083 7.34715 17.1298C7.32611 17.1513 7.29757 17.1634 7.2678 17.1634H4.41228C4.39753 17.1634 4.38292 17.1604 4.36929 17.1547C4.35566 17.1489 4.34327 17.1405 4.33285 17.1298C4.32242 17.1192 4.31415 17.1065 4.30851 17.0926C4.30287 17.0787 4.29998 17.0638 4.29999 17.0487V4.14288C4.29999 2.40718 5.67893 1 7.38001 1H16.62Z" fill="currentColor"></path></svg></a></li><li><a href="https://www.builtinnyc.com/company/digitalocean" target="_blank" rel="me nofollow noopener noreferrer" title="BuiltInNYC" class="SocialStyles__StyledSocial-sc-8567fc92-0 duWDmu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.77419 1C1.79433 1 1 1.79433 1 2.77419V7.03226H3.12903V3.12903H20.871V20.871H3.12903V16.9677H1V21.2258C1 22.2057 1.79433 23 2.77419 23H21.2258C22.2057 23 23 22.2057 23 21.2258V2.77419C23 1.79433 22.2057 1 21.2258 1H2.77419ZM7.74193 5.73814H10.2467V9.74573H15.0057C15.6974 9.74573 16.2581 10.3064 16.2581 10.9981V17.0095C16.2581 17.7012 15.6974 18.2619 15.0057 18.2619H7.74193V5.73814ZM10.2467 12.2505V15.7571H13.7533V12.2505H10.2467Z" fill="currentColor"></path></svg></a></li></ul></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"data":{"slug":"how-to-use-ansible-cheat-sheet-guide","tutorial":{"id":3001,"original_id":null,"slug":"how-to-use-ansible-cheat-sheet-guide","tutorial_type":"cheatsheet","title":"How to Use Ansible: A Reference Guide","description":"Ansible is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers. \r\n\r\nThis cheat sheet-style guide provides a quick reference to commands and practices commonly used when working with Ansible.","content":"### Introduction\n\n[Ansible](https://www.ansible.com/) is a modern configuration management tool that facilitates the task of setting up and maintaining remote servers.\n\nThis cheat sheet-style guide provides a quick reference to commands and practices commonly used when working with Ansible. For an overview of Ansible and how to install and configure it, please check our guide on [How to Install and Configure Ansible on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-20-04).\n\n**How to Use This Guide:**\n\n* This guide is in cheat sheet format with self-contained command-line snippets.\n* Jump to any section that is relevant to the task you are trying to complete.\n* When you see `\u003c^\u003ehighlighted text\u003c^\u003e` in this guide’s commands, keep in mind that this text should refer to hosts, usernames and IP addresses from *your own* inventory.\n\n**Ansible Glossary**\n\nThe following Ansible-specific terms are largely used throughout this guide:\n\n- **Control Machine / Node**: a system where Ansible is installed and configured to connect and execute commands on nodes.\n- **Node**: a server controlled by Ansible.\n- **Inventory File**: a file that contains information about the servers Ansible controls, typically located at `/etc/ansible/hosts`.\n- **Playbook**: a file containing a series of tasks to be executed on a remote server.\n- **Role**: a collection of playbooks and other files that are relevant to a goal such as installing a web server.\n- **Play**: a full Ansible run. A *play* can have several playbooks and roles, included from a single playbook that acts as entry point.\n\nIf you’d like an example of these commands in practice, see our guide on [How to Use Ansible to Automate Initial Server Setup on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-automate-initial-server-setup-on-ubuntu-20-04). You'll need at least one remote server to use as a node.\n\n## Testing Connectivity to Nodes\n\nTo test that Ansible is able to connect and run commands and playbooks on your nodes, you can use the following command:\n\n```command\nansible all -m ping\n```\n\nThe `ping` module will test if you have valid credentials for connecting to the nodes defined in your inventory file, in addition to testing if Ansible is able to run Python scripts on the remote server. A *pong* reply back means Ansible is ready to run commands and playbooks on that node.\n\n## Connecting as a Different User\n\nBy default, Ansible tries to connect to the nodes as your current system user, using its corresponding SSH keypair. To connect as a different user, append the command with the `-u` flag and the name of the intended user:\n\n```command\nansible all -m ping -u \u003c^\u003esammy\u003c^\u003e\n```\n\nThe same is valid for `ansible-playbook`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e -u \u003c^\u003esammy\u003c^\u003e\n```\n\n## Using a Custom SSH Key\n\nIf you're using a custom SSH key to connect to the remote servers, you can provide it at execution time with the `--private-key` option:\n\n```command\nansible all -m ping --private-key=\u003c^\u003e~/.ssh/custom_id\u003c^\u003e\n```\n\nThis option is also valid for `ansible-playbook`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --private-key=\u003c^\u003e~/.ssh/custom_id\u003c^\u003e\n```\n\n## Using Password-Based Authentication\n\nIf you need to use *password-based authentication* in order to connect to the nodes, you need to append the option `--ask-pass` to your Ansible command.\n\nThis will make Ansible prompt you for the password of the user on the remote server that you're attempting to connect as:\n\n```command\nansible all -m ping --ask-pass\n```\n\nThis option is also valid for `ansible-playbook`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --ask-pass\n```\n\n## Providing the `sudo` Password\n\nIf the remote user needs to provide a password in order to run `sudo` commands, you can include the option `--ask-become-pass` to your Ansible command. This will prompt you to provide the remote user sudo password:\n\n```command\nansible all -m ping --ask-become-pass\n```\n\nThis option is also valid for `ansible-playbook`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --ask-become-pass\n```\n## Using a Custom Inventory File\n\nThe default inventory file is typically located at `/etc/ansible/hosts`, but you can also use the `-i` option to point to custom inventory files when running Ansible commands and playbooks. Ansible also supports *inventory scripts* for building dynamic inventory files, for when your inventory fluctuates, with servers being created and destroyed often. Custom inventory files are useful for setting up per-project inventories that can be included in version control systems such as Git:\n\n```command\nansible all -m ping -i \u003c^\u003emy_custom_inventory\u003c^\u003e\n```\n\nThe same option is valid for `ansible-playbook`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e -i \u003c^\u003emy_custom_inventory\u003c^\u003e\n```\n\n## Running *ad-hoc* Commands\n\nTo execute a command on a node, use the `-a` option followed by the command you want to run, in quotes.\n\nThis will execute `uname -a` on **all** the nodes in your inventory:\n\n```command\nansible \u003c^\u003eall\u003c^\u003e -a \"uname -a\"\n```\n\nIt is also possible to run Ansible modules with the option `-m`. The following command would install the package `vim` on `server1` from your inventory:\n\n```command\nansible \u003c^\u003eserver1\u003c^\u003e -m apt -a \"name=vim\"\n```\n\nBefore making changes to your nodes, you can conduct a *dry run* to predict how the servers would be affected by your command. This can be done by including the `--check` option:\n\n```command\nansible \u003c^\u003eserver1\u003c^\u003e -m apt -a \"name=vim\" --check\n```\n\n## Running Playbooks\n\nTo run a playbook and execute all the tasks defined within it, use the `ansible-playbook` command:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e\n```\n\nTo overwrite the default `hosts` option in the playbook and limit execution to a certain group or host, include the option `-l` in your command:\n\n```command\nansible-playbook -l \u003c^\u003eserver1\u003c^\u003e \u003c^\u003emyplaybook.yml\u003c^\u003e\n```\n\n## Getting Information about a Play\n\nThe option `--list-tasks` is used to list all tasks that would be executed by a play without making any changes to the remote servers:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --list-tasks\n```\n\nSimilarly, it is possible to list all hosts that would be affected by a play, without running any tasks on the remote servers:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --list-hosts\n```\n\nYou can use *tags* to limit the execution of a play. To list all tags available in a play, use the option `--list-tags`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --list-tags\n```\n\n## Controlling Playbook Execution\n\nYou can use the option `--start-at-task` to define a new entry point for your playbook. Ansible will then skip anything that comes before the specified task, executing the remaining of the play from that point on. This option requires a valid *task name* as argument:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --start-at-task=\"\u003c^\u003eSet Up Nginx\u003c^\u003e\"\n```\n\nTo only execute tasks associated with specific tags, you can use the option `--tags`. For instance, if you'd like to only execute tasks tagged as `nginx` or `mysql`, you can use:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --tags=\u003c^\u003emysql,nginx\u003c^\u003e\n```\n\nIf you want to skip all tasks that are under specific tags, use `--skip-tags`. The following command would execute `\u003c^\u003emyplaybook.yml\u003c^\u003e`, skipping all tasks tagged as `mysql`:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --skip-tags=\u003c^\u003emysql\u003c^\u003e\n```\n\n## Using Ansible Vault to Store Sensitive Data\n\nIf your Ansible playbooks deal with sensitive data like passwords, API keys, and credentials, it is important to keep that data safe by using an encryption mechanism. Ansible provides `ansible-vault` to encrypt files and variables.\n\nEven though it is possible to encrypt any Ansible data file as well as binary files, it is more common to use `ansible-vault` to encrypt *variable files* containing sensitive data. After encrypting a file with this tool, you'll only be able to execute, edit or view its contents by providing the relevant password defined when you first encrypted the file.\n\n### Creating a New Encrypted File\n\nYou can create a new encrypted Ansible file with:\n\n```command\nansible-vault create \u003c^\u003ecredentials.yml\u003c^\u003e\n```\n\nThis command will perform the following actions:\n\n- First, it will prompt you to enter a new password. You'll need to provide this password whenever you access the file contents, whether it's for editing, viewing, or just running playbooks or commands using those values.\n- Next, it will open your default command-line editor so you can populate the file with the desired contents.\n- Finally, when you're done editing, `ansible-vault` will save the file as encrypted data.\n\n### Encrypting an Existing Ansible File\n\nTo encrypt an existing Ansible file, you can use the following syntax:\n\n```command\nansible-vault encrypt \u003c^\u003ecredentials.yml\u003c^\u003e\n```\nThis will prompt you for a password that you'll need to enter whenever you access the file `\u003c^\u003ecredentials.yml\u003c^\u003e`.\n\n### Viewing the Contents of an Encrypted File\n\nIf you want to view the contents of a file that was previously encrypted with `ansible-vault` and you don't need to change its contents, you can use:\n\n```command\nansible-vault view \u003c^\u003ecredentials.yml\u003c^\u003e\n```\nThis will prompt you to provide the password you selected when you first encrypted the file with `ansible-vault`.\n\n### Editing an Encrypted File\n\nTo edit the contents of a file that was previously encrypted with Ansible Vault, run:\n\n```command\nansible-vault edit \u003c^\u003ecredentials.yml\u003c^\u003e\n```\n\nThis will prompt you to provide the password you chose when first encrypting the file `\u003c^\u003ecredentials.yml\u003c^\u003e` with `ansible-vault`. After password validation, your default command-line editor will open with the unencrypted contents of the file, allowing you to make your changes. When finished, you can save and close the file as you would normally, and the updated contents will be saved as encrypted data.\n\n### Decrypting Encrypted Files\n\nIf you wish to permanently revert a file that was previously encrypted with `ansible-vault` to its unencrypted version, you can do so with this syntax:\n\n```command\nansible-vault decrypt \u003c^\u003ecredentials.yml\u003c^\u003e\n```\n\nThis will prompt you to provide the same password used when first encrypting the file `\u003c^\u003ecredentials.yml\u003c^\u003e` with `ansible-vault`. After password validation, the file contents will be saved to the disk as unencrypted data.\n\n### Using Multiple Vault Passwords\n\nAnsible supports multiple vault passwords grouped by different vault IDs. This is useful if you want to have dedicated vault passwords for different environments, such as development, testing, and production environments.\n\nTo create a new encrypted file using a custom vault ID, include the `--vault-id` option along with a *label* and the location where `ansible-vault` can find the password for that vault. The label can be any identifier, and the location can either be `prompt`, meaning that the command should prompt you to enter a password, or a valid path to a password file.\n\n```command\nansible-vault create --vault-id \u003c^\u003edev\u003c^\u003e@prompt \u003c^\u003ecredentials_dev.yml\u003c^\u003e\n```\n\nThis will create a new vault ID named \u003c^\u003edev\u003c^\u003e that uses `prompt` as password source. By combining this method with group variable files, you'll be able to have separate ansible vaults for each application environment:\n\n```command\nansible-vault create --vault-id \u003c^\u003eprod\u003c^\u003e@prompt \u003c^\u003ecredentials_prod.yml\u003c^\u003e\n```\n\nWe used \u003c^\u003edev\u003c^\u003e and \u003c^\u003eprod\u003c^\u003e as vault IDs to demonstrate how you can create separate vaults per environment, but you can create as many vaults as you want, and you can use any identifier of your choice as vault ID.\n\nNow to view, edit, or decrypt these files, you'll need to provide the same vault ID and password source along with the `ansible-vault` command:\n\n```command\nansible-vault edit \u003c^\u003ecredentials_dev.yml\u003c^\u003e --vault-id \u003c^\u003edev\u003c^\u003e@prompt\n```\n\n### Using a Password File\n\nIf you need to automate the process of provisioning servers with Ansible using a third-party tool, you'll need a way to provide the vault password without being prompted for it. You can do that by using a *password file* with `ansible-vault`.\n\nA password file can be a plain text file or an executable script. If the file is an executable script, the output produced by this script will be used as the vault password. Otherwise, the raw contents of the file will be used as vault password.\n\nTo use a password file with `ansible-vault`, you need to provide the path to a password file when running any of the vault commands:\n\n```command\nansible-vault create --vault-id \u003c^\u003edev\u003c^\u003e@\u003c^\u003epath/to/passfile\u003c^\u003e \u003c^\u003ecredentials_dev.yml\u003c^\u003e\n```\n\nAnsible doesn't make a distinction between content that was encrypted using `prompt` or a password file as password source, as long as the input password is the same. In practical terms, this means it is OK to encrypt a file using `prompt` and then later use a password file to store the same password used with the `prompt` method. The opposite is also true: you can encrypt content using a password file and later use the `prompt` method, providing the same password when prompted by Ansible.\n\nFor extended flexibility and security, instead of having your vault password stored in a plain text file, you can use a Python script to obtain the password from other sources. The official Ansible repository contains [a few examples of vault scripts](https://github.com/ansible/ansible/tree/devel/contrib/vault) that you can use for reference when creating a custom script that suits the particular needs of your project.\n\n## Running a Playbook with Data Encrypted via Ansible Vault\n\nWhenever you run a playbook that uses data previously encrypted via `ansible-vault`, you'll need to provide the vault password to your playbook command.\n\nIf you used default options and the `prompt` password source when encrypting the data used in this playbook, you can use the option `--ask-vault-pass` to make Ansible prompt you for the password:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --ask-vault-pass\n```\n\nIf you used a password file instead of prompting for the password, you should use the option `--vault-password-file` instead:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --vault-password-file \u003c^\u003emy_vault_password.py\u003c^\u003e\n```\n\nIf you're using data encrypted under a vault ID, you'll need to provide the same vault ID and password source you used when first encrypting the data:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --vault-id \u003c^\u003edev\u003c^\u003e@prompt\n```\n\nIf using a password file with your vault ID, you should provide the label followed by the full path to the password file as password source:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --vault-id \u003c^\u003edev\u003c^\u003e@\u003c^\u003evault_password.py\u003c^\u003e\n```\n\nIf your play uses multiple vaults, you should provide a `--vault-id` parameter for each of them, in no particular order:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e --vault-id \u003c^\u003edev\u003c^\u003e@\u003c^\u003evault_password.py\u003c^\u003e --vault-id \u003c^\u003etest\u003c^\u003e@prompt --vault-id \u003c^\u003eci\u003c^\u003e@prompt\n```\n\n## Debugging\n\nIf you run into errors while executing Ansible commands and playbooks, it's a good idea to increase output verbosity in order to get more information about the problem. You can do that by including the `-v` option to the command:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e -v\n```\nIf you need more detail, you can use `-vvv` and this will increase verbosity of the output. If you're unable to connect to the remote nodes via Ansible, use `-vvvv` to get connection debugging information:\n\n```command\nansible-playbook \u003c^\u003emyplaybook.yml\u003c^\u003e -vvvv\n```\n\n## Conclusion\n\nThis guide covers some of the most common Ansible commands you may use when provisioning servers, such as how to execute remote commands on your nodes and how to run playbooks using a variety of custom settings.\n\nThere are other command variations and flags that you may find useful for your Ansible workflow. To get an overview of all available options, you can use the *help* command:\n\n```command\nansible --help\n```\n\nIf you want a more comprehensive view of Ansible and all its available commands and features, please refer to the [official Ansible documentation](https://docs.ansible.com/ansible/latest/index.html).\n\nIf you want to see another practical example of Ansible, check out our guide on [How to Use Ansible to Install and Set Up Docker on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-install-and-set-up-docker-on-ubuntu-20-04).\n\n","language":"en","state":"published","last_validated_at":"2022-03-29T19:18:33.060Z","published_at":"2019-06-05T15:18:58.703Z","views":209869,"follow_up_questions_enabled_at":null,"comments_locked_at":null,"raw_html_allowed_in_markdown_at":null,"featured_at":null,"header_url":null,"conclusion_cta":null,"right_side_nav_cta":null,"original":{},"authors":[{"user_name":null,"relation":"author","user_id":520781,"item_id":3001,"item_type":"tutorial","created_at":"2019-05-20T14:45:33.837Z","updated_at":"2019-05-20T14:45:33.837Z","user":{"id":520781,"username":"erikaheidi","slug":"erikaheidi","first_name":"Erika","last_name":"Heidi","title":"Developer Advocate","bio":"Dev/Ops passionate about open source, PHP, and Linux.","website":"https://eheidi.dev","twitter_handle":"erikaheidi","github_handle":"erikaheidi","linkedin_url":"https://www.linkedin.com/in/erikaheidi/","stackoverflow_url":null,"city":null,"country":null,"skills":"Linux,PHP,DevOps,Ansible,Laravel","has_seen_registration_at":"2022-08-30T17:06:14.808Z","created_at":"2019-03-21T10:15:56.911Z","updated_at":"2021-11-12T16:56:09.045Z","gravatar":"https://www.gravatar.com/avatar/b1c2b9b45dfa138e00a51b7188beea76e76ba4a95ccc01af53c005458ecae202?default=retro"}}],"editors":[],"translators":[],"series":[],"needs_review":false,"tags":[{"id":55,"state":"published","slug":"configuration-management","name":"Configuration Management","description":"Configuration management refers to the processes by which administrators and operations teams control a large numbers of servers. Automation is at the heart of most configuration management tools, which allow developers to quickly provision new servers, recover from critical events, manage version control, and replicate environments. Popular CM tools include Puppet, Ansible, Chef, and Salt. \r\n","created_at":"2022-01-31T18:04:44.879Z","updated_at":"2022-01-28T04:27:51.818Z","admin_use_only_at":null,"admin_view_only_at":null,"type":"tag"},{"id":70,"state":"published","slug":"ansible","name":"Ansible","description":"Ansible is a configuration management system used to set up and manage infrastructure and applications in varied environments. It allows users to deploy and update applications in approachable language, using SSH, without needing to install an agent on a remote system.\r\n","created_at":"2022-01-31T18:04:44.879Z","updated_at":"2022-01-26T01:58:18.834Z","admin_use_only_at":null,"admin_view_only_at":null,"type":"tag"}],"teams":[],"origins":[]},"headers":[{"slug":"testing-connectivity-to-nodes","content":"Testing Connectivity to Nodes","text":"Testing Connectivity to Nodes","rendered":"Testing Connectivity to Nodes","level":2},{"slug":"connecting-as-a-different-user","content":"Connecting as a Different User","text":"Connecting as a Different User","rendered":"Connecting as a Different User","level":2},{"slug":"using-a-custom-ssh-key","content":"Using a Custom SSH Key","text":"Using a Custom SSH Key","rendered":"Using a Custom SSH Key","level":2},{"slug":"using-password-based-authentication","content":"Using Password-Based Authentication","text":"Using Password-Based Authentication","rendered":"Using Password-Based Authentication","level":2},{"slug":"providing-the-sudo-password","content":"Providing the `sudo` Password","text":"Providing the sudo Password","rendered":"Providing the \u003ccode\u003esudo\u003c/code\u003e Password","level":2},{"slug":"using-a-custom-inventory-file","content":"Using a Custom Inventory File","text":"Using a Custom Inventory File","rendered":"Using a Custom Inventory File","level":2},{"slug":"running-ad-hoc-commands","content":"Running *ad-hoc* Commands","text":"Running ad-hoc Commands","rendered":"Running \u003cem\u003ead-hoc\u003c/em\u003e Commands","level":2},{"slug":"running-playbooks","content":"Running Playbooks","text":"Running Playbooks","rendered":"Running Playbooks","level":2},{"slug":"getting-information-about-a-play","content":"Getting Information about a Play","text":"Getting Information about a Play","rendered":"Getting Information about a Play","level":2},{"slug":"controlling-playbook-execution","content":"Controlling Playbook Execution","text":"Controlling Playbook Execution","rendered":"Controlling Playbook Execution","level":2},{"slug":"using-ansible-vault-to-store-sensitive-data","content":"Using Ansible Vault to Store Sensitive Data","text":"Using Ansible Vault to Store Sensitive Data","rendered":"Using Ansible Vault to Store Sensitive Data","level":2},{"slug":"running-a-playbook-with-data-encrypted-via-ansible-vault","content":"Running a Playbook with Data Encrypted via Ansible Vault","text":"Running a Playbook with Data Encrypted via Ansible Vault","rendered":"Running a Playbook with Data Encrypted via Ansible Vault","level":2},{"slug":"debugging","content":"Debugging","text":"Debugging","rendered":"Debugging","level":2},{"slug":"conclusion","content":"Conclusion","text":"Conclusion","rendered":"Conclusion","level":2}],"comments":[{"id":94194,"type":"comment","content":"It helped me a lot. Reading this article is just like enjoying a good novel. Love it.","parent_id":3001,"parent_type":"tutorial","top_level_id":3001,"top_level_type":"tutorial","user_id":1297686,"resolved_by_id":null,"created_at":"2020-12-12T15:02:48.736Z","updated_at":"2020-12-12T15:03:25.142Z","state":"published","comments_locked_at":null,"user":{"id":1297686,"username":"toomding","slug":"toomding","first_name":null,"last_name":null,"title":null,"bio":null,"website":null,"twitter_handle":null,"github_handle":null,"linkedin_url":null,"stackoverflow_url":null,"city":null,"country":null,"skills":null,"has_seen_registration_at":"2022-08-30T17:06:14.808Z","created_at":"2020-12-12T15:01:13.694Z","updated_at":"2020-12-12T15:01:15.183Z","badges":[]},"editor":{},"resolved_by":{}},{"id":91700,"type":"comment","content":"concise and helpful, thanks!","parent_id":3001,"parent_type":"tutorial","top_level_id":3001,"top_level_type":"tutorial","user_id":107782,"resolved_by_id":null,"created_at":"2020-09-24T05:46:08.687Z","updated_at":"2020-09-24T05:46:09.758Z","state":"published","comments_locked_at":null,"user":{"id":107782,"username":"leechau","slug":"leechau","first_name":null,"last_name":null,"title":null,"bio":null,"website":null,"twitter_handle":null,"github_handle":null,"linkedin_url":null,"stackoverflow_url":null,"city":null,"country":null,"skills":null,"has_seen_registration_at":"2022-08-30T17:06:14.808Z","created_at":"2015-04-14T02:25:46.940Z","updated_at":"2020-09-24T05:43:57.638Z","badges":[]},"editor":{},"resolved_by":{}},{"id":84198,"type":"comment","content":"In the \"this playbook\" link under the glossary section, I _think_ the link should actually be:\r\n\r\nhttps://github.com/do-community/ansible-playbooks/blob/master/setup_ubuntu1804/playbook.yml","parent_id":3001,"parent_type":"tutorial","top_level_id":3001,"top_level_type":"tutorial","user_id":35683,"resolved_by_id":35683,"created_at":"2019-12-19T19:49:35.999Z","updated_at":"2019-12-20T14:19:52.377Z","state":"published","comments_locked_at":null,"user":{"id":35683,"username":"GrantWinney","slug":"grantwinney","first_name":"Grant","last_name":"Winney","title":null,"bio":"Technology is amazing, but it's what we do with it that matters. Proud father of 5. Programmer. TRX.","website":"https://grantwinney.com","twitter_handle":null,"github_handle":"grantwinney","linkedin_url":null,"stackoverflow_url":null,"city":null,"country":null,"skills":"","has_seen_registration_at":"2022-08-30T17:06:14.808Z","created_at":"2014-09-09T16:19:42.137Z","updated_at":"2021-11-07T03:42:43.485Z","badges":[]},"editor":{},"resolved_by":{"id":35683,"username":"GrantWinney","slug":"grantwinney","first_name":"Grant","last_name":"Winney","title":null,"bio":"Technology is amazing, but it's what we do with it that matters. Proud father of 5. Programmer. TRX.","website":"https://grantwinney.com","twitter_handle":null,"github_handle":"grantwinney","linkedin_url":null,"stackoverflow_url":null,"city":null,"country":null,"skills":"","has_seen_registration_at":"2022-08-30T17:06:14.808Z","created_at":"2014-09-09T16:19:42.137Z","updated_at":"2021-11-07T03:42:43.485Z","email":"16a25a9d1351309b19ddeb6759efbc77e3e4cf13cd6b594f0e7c8ceb53705b9f"}}],"commentsRequestParams":["tutorial",3001,{"type":"comment","page":0,"perPage":10}],"translations":[{"key":"en","label":"English","value":"how-to-use-ansible-cheat-sheet-guide"}],"followUpQuestions":[],"questionsRequestParams":{"page":0,"perPage":5},"versions":[],"canonicalVersion":null}},"__N_SSG":true},"page":"/community/tutorials/[slug]","query":{"slug":"how-to-use-ansible-cheat-sheet-guide"},"buildId":"3d97684bcc0944393e84030f785c45d2cc925214","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>