CINXE.COM
Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin | Invicti
<!doctype html> <html lang="en-US"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="zd-site-verification" content="zbchuxl9kjemdkdydvjh49" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <title>Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin | Invicti</title> <meta name="description" content="TeamCity is a build management and CI server that allows users to run automated tests on the server before committing code. This topic explains what preliminary actions to take in Invicti, how to invoke the Invicti Enterprise API using Powershell and what configuration is required in TeamCity." /> <link rel="canonical" href="https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin | Invicti" /> <meta property="og:description" content="TeamCity is a build management and CI server that allows users to run automated tests on the server before committing code. This topic explains what preliminary actions to take in Invicti, how to invoke the Invicti Enterprise API using Powershell and what configuration is required in TeamCity." /> <meta property="og:url" content="https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/" /> <meta property="og:site_name" content="Invicti" /> <meta property="article:published_time" content="2019-02-22T09:12:09+00:00" /> <meta property="article:modified_time" content="2024-01-25T09:54:38+00:00" /> <meta property="og:image" content="https://cdn.invicti.com/statics/img/drive/xizgoseyewhppjgfddado0zmy9lyy3ebuye.png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="19 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/","url":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/","name":"Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin | Invicti","isPartOf":{"@id":"https://www.invicti.com/#website"},"primaryImageOfPage":{"@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/#primaryimage"},"image":{"@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/#primaryimage"},"thumbnailUrl":"https://cdn.invicti.com/statics/img/drive/xizgoseyewhppjgfddado0zmy9lyy3ebuye.png","datePublished":"2019-02-22T09:12:09+00:00","dateModified":"2024-01-25T09:54:38+00:00","description":"TeamCity is a build management and CI server that allows users to run automated tests on the server before committing code. This topic explains what preliminary actions to take in Invicti, how to invoke the Invicti Enterprise API using Powershell and what configuration is required in TeamCity.","breadcrumb":{"@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/#primaryimage","url":"https://cdn.invicti.com/statics/img/drive/xizgoseyewhppjgfddado0zmy9lyy3ebuye.png","contentUrl":"https://cdn.invicti.com/statics/img/drive/xizgoseyewhppjgfddado0zmy9lyy3ebuye.png"},{"@type":"BreadcrumbList","@id":"https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.invicti.com/"},{"@type":"ListItem","position":2,"name":"Support","item":"https://www.invicti.com/support/"},{"@type":"ListItem","position":3,"name":"Integrations","item":"https://www.invicti.com/support/category/integrations/"},{"@type":"ListItem","position":4,"name":"Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin"}]},{"@type":"WebSite","@id":"https://www.invicti.com/#website","url":"https://www.invicti.com/","name":"Invicti","description":"Web Application and API Security For Enterprise","publisher":{"@id":"https://www.invicti.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.invicti.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@context":"http://schema.org","@type":"Organization","name":"Invicti","logo":"https://cdn.invicti.com/branding/invicti-logo-black.svg","image":"https://cdn.invicti.com/branding/invicti-logo-black.svg","telephone":["+1 737-263-3333"],"email":"contact@invicti.com","url":"https://www.invicti.com","sameAs":["https://facebook.com/Invicti-Security-100090617259790/","https://twitter.com/InvictiSecurity","https://www.linkedin.com/company/invicti-security"],"address":{"@type":"PostalAddress","streetAddress":"1000 N Lamar Blvd Suite 300","addressLocality":"Austin","addressRegion":"Texas","addressCountry":"United States","postalCode":"78703"}}]}</script> <link rel='dns-prefetch' href='//www.invicti.com' /> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <link rel='stylesheet' id='docembdr-css' href='https://www.invicti.com/app/plugins/docembdr/css/docembdr.css?ver=1731409448' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <meta name="generator" content="Site Kit by Google 1.136.0" /><meta name="google-site-verification" content="ceMUxhM6CVvCVJcqefKlgIRfKWEkgktxWLDpqhgSIkM"> <!-- Google Tag Manager snippet added by Site Kit --> <script type="text/javascript"> /* <![CDATA[ */ ( function( w, d, s, l, i ) { w[l] = w[l] || []; w[l].push( {'gtm.start': new Date().getTime(), event: 'gtm.js'} ); var f = d.getElementsByTagName( s )[0], j = d.createElement( s ), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore( j, f ); } )( window, document, 'script', 'dataLayer', 'GTM-M7R7MXJ' ); /* ]]> */ </script> <!-- End Google Tag Manager snippet added by Site Kit --> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-270x270.png" /> <style id="theme-css-assets">/*! tailwindcss v3.0.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e5e5;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a3a3a3;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}.container-small{margin-left:auto;margin-right:auto}@media (min-width:1200px){.container-small{margin-top:6.25rem;padding-left:375px;padding-right:375px;width:100%}@media (min-width:992px){.container-small{margin-top:0;padding-left:5rem;padding-right:5rem}}.container-small{max-width:1100px!important}}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;padding-left:25px;padding-right:25px;width:100%}@media (min-width:100%){.container{max-width:100%;padding-left:25px;padding-right:25px}}@media (min-width:1380px){.container{max-width:1380px;padding-left:30px;padding-right:30px}}@media (min-width:1460px){.container{max-width:1460px;padding-left:30px;padding-right:30px}}@media (min-width:1560px){.container{max-width:1560px;padding-left:30px;padding-right:30px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-10{top:.625rem}.left-10{left:.625rem}.isolate{isolation:isolate}.z-\[99\]{z-index:99}.order-2{order:2}.col-span-9{grid-column:span 9/span 9}.mb-10{margin-bottom:.625rem}.mb-60{margin-bottom:3.75rem}.mt-50{margin-top:3.125rem}.mt-6{margin-top:.375rem}.mt-32{margin-top:2rem}.mb-32{margin-bottom:2rem}.mt-20{margin-top:1.25rem}.mt-15{margin-top:.9375rem}.mb-34{margin-bottom:2.125rem}.mt-10{margin-top:.625rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-\[36px\]{height:36px}.h-48{height:3rem}.min-h-screen{min-height:100vh}.w-1\/5{width:20%}.w-1\/4{width:25%}.w-1\/3{width:33.333333%}.w-2\/5{width:40%}.w-2\/4{width:50%}.w-3\/5{width:60%}.w-2\/3{width:66.666667%}.w-3\/4{width:75%}.w-4\/5{width:80%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-48{width:3rem}.w-1\/2{width:50%}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:.25rem}.gap-20{gap:1.25rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.3125rem*var(--tw-space-y-reverse));margin-top:calc(.3125rem*(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity))}.bg-neutral-bone,.bg-sky{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.bg-dark{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.bg-nsgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.fill-dark{fill:#101820}.p-10{padding:.625rem}.px-16{padding-left:1rem;padding-right:1rem}.px-0{padding-left:0;padding-right:0}.px-15{padding-left:.9375rem;padding-right:.9375rem}.py-18{padding-bottom:1.125rem;padding-top:1.125rem}.pt-20{padding-top:1.25rem}.pb-10{padding-bottom:.625rem}.pt-40{padding-top:2.5rem}.text-center{text-align:center}.font-circular{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}.text-\[13px\]{font-size:13px}.text-h-xs{font-size:2rem}.text-h-sm{font-size:2.125rem}.text-h-md{font-size:2.25rem}.text-h-lg{font-size:2.375rem}.text-h-xl{font-size:2.5rem}.text-h-2xl{font-size:2.625rem}.text-h-3xl{font-size:2.75rem}.text-h-4xl{font-size:2.875rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.375rem}.text-3xl{font-size:1.5rem}.text-4xl{font-size:1.625rem}.text-5xl{font-size:1.75rem}.text-6xl{font-size:1.875rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.italic{font-style:italic}.text-gray-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(136 19 55/var(--tw-text-opacity))}.text-primary-invictipurple{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.text-dark{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.text-nsgray{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity))}.text-customcolors-32{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 0.0625rem 0.125rem 0 rgba(0,0,0,0.05);--tw-shadow-colored:0 0.0625rem 0.125rem 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.hover\:border-secondary-darkpurple:hover{--tw-border-opacity:1;border-color:rgb(60 16 83/var(--tw-border-opacity))}.hover\:text-secondary-darkpurple:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.hover\:text-dark:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:opacity-80:hover{opacity:.8}.hover\:transition-opacity:hover{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:576px){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-full{width:100%}}@media (min-width:767px){.md\:ml-15{margin-left:.9375rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/5{width:20%}.md\:w-1\/4{width:25%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/5{width:40%}.md\:w-2\/4{width:50%}.md\:w-3\/5{width:60%}.md\:w-2\/3{width:66.666667%}.md\:w-3\/4{width:75%}.md\:w-4\/5{width:80%}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-full{width:100%}.md\:w-6\/12{width:50%}.md\:flex-row{flex-direction:row}.md\:px-25{padding-left:1.5625rem;padding-right:1.5625rem}.md\:pr-15{padding-right:.9375rem}.md\:pl-15{padding-left:.9375rem}.md\:text-sm{font-size:.875rem}}@media (min-width:769px){.md2\:block{display:block}.md2\:hidden{display:none}}@media (min-width:992px){.lg\:order-2{order:2}.lg\:mt-60{margin-top:3.75rem}.lg\:mb-60{margin-bottom:3.75rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-1\/5{width:20%}.lg\:w-1\/4{width:25%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/5{width:40%}.lg\:w-2\/4{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-2\/3{width:66.666667%}.lg\:w-3\/4{width:75%}.lg\:w-4\/5{width:80%}.lg\:w-10\/12{width:83.333333%}.lg\:w-11\/12{width:91.666667%}.lg\:w-full{width:100%}.lg\:w-7\/12{width:58.333333%}.lg\:w-5\/12{width:41.666667%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-10{gap:.625rem}.lg\:px-0{padding-left:0;padding-right:0}}@media (min-width:1200px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:pt-60{padding-top:3.75rem}}@media (min-width:1400px){.\32xl\:block{display:block}.\32xl\:hidden{display:none}}@media (min-width:1620px){.\33xl\:block{display:block}.\33xl\:hidden{display:none}} :root{--color-nsblue-default:#591769;--color-nsblue-dark:#3c1053;--color-nsblue-lightest:#faf9f7;--color-sky-default:#faf9f7;--color-sky-light:#faf9f7;--color-sky-lightest:#faf9f7;--color-nsgray-default:#636569;--color-nsgray-lightest:#faf9f7;--color-nsdark:#101820;--color-acunetix:#fa4216;--color-blue:#591769;--color-dark-blue:#3c1053;--color-dark:#101820;--body-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--heading-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--box-shadow-1:0 3px 15px 0 rgb(0 0 0/10%);--box-shadow-2:0 5px 50px -1px rgb(0 0 0/5%);--color-entrycontent-default:#636569;--color-entrycontent-heading:#101820;--color-entrycontent-light:#636569;--color-sky-more:#cc8bdb;--color-nsblue-medium:#7a2582;--color-customcolors-1:#d9d8d6;--color-customcolors-2:#fff;--color-customcolors-3:#3c1053;--color-customcolors-4:#636569;--color-customcolors-5:#3c1053;--color-customcolors-6:#faf9f7;--color-customcolors-7:#636569;--color-customcolors-8:#b1b1b2;--color-customcolors-9:#636569;--color-customcolors-10:#b1b1b2;--color-customcolors-11:#b1b1b2;--color-customcolors-12:#faf9f7;--color-customcolors-13:#d73829;--color-customcolors-14:#faf9f7;--color-customcolors-15:#b1b1b2;--color-customcolors-16:#f15d2a;--color-customcolors-17:#636569;--color-customcolors-18:#f15d2a;--color-customcolors-19:#faf9f7;--color-customcolors-20:#cc8bdb;--color-customcolors-21:#ff8001;--color-customcolors-22:#cc8bdb;--color-customcolors-23:#f15d2a;--color-customcolors-24:#636569;--color-customcolors-25:#d9d8d6;--color-customcolors-26:#b1b1b2;--color-customcolors-27:#636569;--color-customcolors-28:#d9d8d6;--color-customcolors-29:#b1b1b2;--color-customcolors-30:rgba(8,49,126,0);--color-customcolors-31:#fff;--color-customcolors-32:#fff;--color-customcolors-33:#cc8bdb;--color-customcolors-34:#636569;--color-customcolors-35:#b1b1b2;--color-customcolors-36:#faf9f7;--color-customcolors-37:invert(43%) sepia(32%) saturate(1361%) hue-rotate(245deg) brightness(91%) contrast(67%);--color-customcolors-38:#faf9f7;--color-customcolors-39:#faf9f7;--color-customcolors-40:#faf9f7;--color-customcolors-41:#faf9f7;--color-customcolors-42:#3c1053;--color-customcolors-43:#2c51bd;--color-customcolors-44:#636569;--color-customcolors-45:#101820;--color-customcolors-46:rgba(204,139,219,0.05);--color-primary-invictipurple:#591769;--color-secondary-darkpurple:#3c1053;--color-secondary-mediumpurple:#7a2582;--color-secondary-mauve:#a35eb4;--color-secondary-lightmauve:#cc8bdb;--color-secondary-magenta:#c554d0;--color-secondary-grape:#422991;--color-secondary-softpurple:#fdfafe;--color-secondary-periwinkle:#5d40bd;--color-neutral-invictiblack:#101820;--color-neutral-darkgray:#636569;--color-neutral-mediumgray:#b1b1b2;--color-neutral-lightgray:#d9d8d6;--color-neutral-bone:#faf9f7;--color-accent-darkred:#910710;--color-accent-darkorange:#d73829;--color-accent-brightorange:#f15d2a;--color-accent-lightorange:#ff8001;--color-accent-darkblue:#202b7b;--color-accent-mediumblue:#2c51bd;--color-accent-brightblue:#06aeef;--color-accent-lightblue:#05d5ff;--color-gradient-purple:linear-gradient(90deg,#3c1053,#7a2582);--color-gradient-purple-reverse:linear-gradient(90deg,#7a2582,#3c1053);--color-gradient-purple-radial:radial-gradient(circle,#3c1053 0%,#7a2582 100%);--color-gradient-purple-radial-reverse:radial-gradient(circle,#7a2582 0%,#3c1053 100%);--color-gradient-darksteel:linear-gradient(90deg,#101820,#636569);--color-gradient-darksteel-reverse:linear-gradient(90deg,#636569,#101820);--color-gradient-darksteel-radial:radial-gradient(circle,#101820 0%,#636569 100%);--color-gradient-darksteel-radial-reverse:radial-gradient(circle,#636569 0%,#101820 100%);--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-regular:400;--font-weight-book:450;--font-weight-medium:500;--font-weight-semibold:500;--font-weight-bold:700;--font-weight-extrabold:900;--font-weight-black:900;--font-weight-extrablack:950}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlack.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Black.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BoldItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-MediumItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Book.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BookItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Light.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-LightItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Thin.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ThinItalic.woff2) format("woff2")}*,:after,:before{word-wrap:break-word;box-sizing:border-box;overflow-wrap:break-word}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;scroll-behavior:smooth}body{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;min-height:100vh}@media (min-width:576px){body{font-size:1rem}}@media (min-width:769px){body{font-size:1.25rem}}pre{overflow:auto}img,video{min-width:1px}.block-editor-writing-flow{font-size:1rem;line-height:1.5}.site-main{margin-bottom:3rem;margin-top:3rem}.content{min-height:calc(100vh - var(--add-height, 50vh));overflow-x:clip}.content .wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}address,blockquote,dl,iframe,ol,pre,table,ul{margin-bottom:1rem}a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}a.sm{font-size:.75rem}a.md{font-size:16px}a.xl{font-size:1.25rem;font-weight:700}@media (min-width:767px){a.xl{font-size:1.5rem}}a svg{display:inline-block}a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.block-padding-large{padding-bottom:3.125rem;padding-top:3.125rem}@media (min-width:769px){.block-padding-large{padding-bottom:6.25rem;padding-top:6.25rem}}.block-bg-light-gary,.block-bg-sk{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-nsblue,.block-bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.block-bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.block-bg-secondary-mediumpurple{--tw-bg-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity))}.block-bg-secondary-mauve{--tw-bg-opacity:1;background-color:rgb(163 94 180/var(--tw-bg-opacity))}.block-bg-secondary-lightmauve{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity))}.block-bg-secondary-magenta{--tw-bg-opacity:1;background-color:rgb(197 84 208/var(--tw-bg-opacity))}.block-bg-secondary-grape{--tw-bg-opacity:1;background-color:rgb(66 41 145/var(--tw-bg-opacity))}.block-bg-secondary-periwinkle{--tw-bg-opacity:1;background-color:rgb(93 64 189/var(--tw-bg-opacity))}.block-bg-secondary-softpurple{--tw-bg-opacity:1;background-color:rgb(253 250 254/var(--tw-bg-opacity))}.block-bg-neutral-invictiblack{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.block-bg-neutral-darkgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.block-bg-neutral-mediumgray{--tw-bg-opacity:1;background-color:rgb(177 177 178/var(--tw-bg-opacity))}.block-bg-neutral-lightgray{--tw-bg-opacity:1;background-color:rgb(217 216 214/var(--tw-bg-opacity))}.block-bg-neutral-bone{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-accent-darkred{--tw-bg-opacity:1;background-color:rgb(145 7 16/var(--tw-bg-opacity))}.block-bg-accent-darkorange{--tw-bg-opacity:1;background-color:rgb(215 56 41/var(--tw-bg-opacity))}.block-bg-accent-brightorange{--tw-bg-opacity:1;background-color:rgb(241 93 42/var(--tw-bg-opacity))}.block-bg-accent-lightorange{--tw-bg-opacity:1;background-color:rgb(255 128 1/var(--tw-bg-opacity))}.block-bg-accent-darkblue{--tw-bg-opacity:1;background-color:rgb(32 43 123/var(--tw-bg-opacity))}.block-bg-accent-mediumblue{--tw-bg-opacity:1;background-color:rgb(44 81 189/var(--tw-bg-opacity))}.block-bg-accent-brightblue{--tw-bg-opacity:1;background-color:rgb(6 174 239/var(--tw-bg-opacity))}.block-bg-accent-lightblue{--tw-bg-opacity:1;background-color:rgb(5 213 255/var(--tw-bg-opacity))}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.smaller-container{max-width:1024px}.small-container{max-width:1280px}.full-container{max-width:100%}.stretch-wrapper{left:50%;margin-left:-50vw;position:relative;width:100vw}.normal-vspace{padding-bottom:37px;padding-top:37px}@media (min-width:992px){.normal-vspace{padding-bottom:75px;padding-top:75px}}.small-vspace{padding-bottom:25px;padding-top:25px}@media (min-width:992px){.small-vspace{padding-bottom:50px;padding-top:50px}}.large-vspace{padding-bottom:50px;padding-top:50px}@media (min-width:992px){.large-vspace{padding-bottom:150px;padding-top:150px}}.lg-hidden{display:none}@media (min-width:992px){.lg-hidden{display:block}}.md-hidden{display:none}@media (min-width:767px){.md-hidden{display:block}}.sm-hidden{display:none}@media (min-width:576px){.sm-hidden{display:block}}.lg-break-hidden br{display:none}@media (min-width:992px){.lg-break-hidden br{display:block}}.md-break-hidden br{display:none}@media (min-width:767px){.md-break-hidden br{display:block}}.sm-break-hidden br{display:none}@media (min-width:576px){.sm-break-hidden br{display:block}}.lg-visible{display:block}@media (min-width:992px){.lg-visible{display:none}}.md-visible{display:block}@media (min-width:767px){.md-visible{display:none}}.sm-visible{display:block}@media (min-width:576px){.sm-visible{display:none}}.wp-block-image.is-style-rounded img{border-radius:50%}.alignleft{float:left;margin-bottom:1rem;margin-right:1rem}.alignright{float:right;margin-bottom:1rem;margin-left:1rem}.aligncenter{margin:1rem auto}.alignnone{margin-bottom:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.16}.h1,h1{font-size:1.75rem;font-weight:700;margin-bottom:2rem}@media (min-width:767px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem}@media (min-width:769px){.h2,h2{font-size:2.25rem}}.h3,h3{font-size:1.375rem;margin-bottom:1rem}@media (min-width:767px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:1.375rem;margin-bottom:.75rem}.h5,h5{font-size:.875rem}.svg-sprite-wrapper{display:none}.btn{border-radius:.25rem;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.5rem;padding:.625rem 1.75rem;text-align:center}.btn--primary{background-color:rgb(122 37 130/var(--tw-bg-opacity));border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px}.btn--primary,.btn--primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--primary:hover{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.btn--primary-light{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(16 24 32/var(--tw-text-opacity))}.btn--primary-light:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--secondary{background-color:rgb(255 255 255/var(--tw-bg-opacity));border-width:2px;color:rgb(89 23 105/var(--tw-text-opacity));display:inline-block}.btn--secondary,.btn--secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity))}.btn--secondary:hover{background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--border:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:rgb(122 37 130/var(--tw-text-opacity))}.btn--full{display:block;width:100%}.btn--hero{display:inline-block;margin-top:1.875rem}.button{padding:1rem}input:not(.button),textarea{padding:.5rem .75rem}@media (min-width:767px){input:not(.button),textarea{padding-bottom:.625rem;padding-top:.625rem}}label{display:block;font-weight:500;margin-bottom:1rem}.search-form{position:relative;width:100%}.search-form .search-field{--tw-text-opacity:1;background-color:transparent;border-radius:.5rem;border-width:1px;color:rgb(0 0 0/var(--tw-text-opacity));padding:.75rem;width:100%}.search-form button{height:100%;padding-left:1rem;padding-right:1rem;position:absolute;right:0;text-align:center;top:0}.search-form button svg{font-size:1rem;height:1rem}.content-form{--tw-bg-opacity:1;--tw-shadow:rgb(0 0 0/15%) 0 7px 29px 0;--tw-shadow-colored:0 7px 29px 0 var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin-left:auto;margin-right:auto;padding:1.75rem}@media (min-width:767px){.content-form{padding-bottom:2.875rem;padding-left:38px;padding-right:38px;padding-top:2.875rem}}@media (min-width:992px){.content-form{margin-left:0;margin-right:0;max-width:500px}}.content-form__heading{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.25rem;font-weight:300;margin-bottom:1.875rem;text-align:center}@media (min-width:767px){.content-form__heading{font-size:2.25rem}}.ns-form>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.ns-form{text-align:center}.form-group .iti{font-size:1rem;width:100%}@media (max-width:500px){.form-group .iti .iti__country-list{min-width:80vw}}.form-group .iti__flag-container:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px}.form-group.optin{align-items:flex-start;display:flex;gap:.5rem;justify-content:center;margin-top:1.25rem}@media (min-width:767px){.form-group.optin{align-items:center}}.form-group.optin input{-webkit-appearance:none;appearance:none;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-position:50%;background-repeat:no-repeat;background-size:contain;border-color:rgb(212 212 212/var(--tw-border-opacity));border-radius:.125rem;border-width:1px;cursor:pointer;flex:none;height:12px;margin-right:.125rem;margin-top:.1875rem;padding:0;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:top;width:12px}.form-group.optin input,.form-group.optin input:checked{--tw-border-opacity:1;--tw-bg-opacity:1}.form-group.optin input:checked{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.form-group.optin input:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:767px){.form-group.optin input{margin-top:.25rem}}.form-group.optin input:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E")}.form-group.optin label{font-size:13px!important;margin-bottom:0!important;text-align:center!important}input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{--tw-border-opacity:1;border:1px solid rgb(212 212 212/var(--tw-border-opacity));border-radius:.25rem;font-size:.875rem;font-weight:400;height:3.125rem;outline:2px solid transparent;outline-offset:2px;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=text]:focus,select:focus,textarea:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity))}input[type=email]:focus::placeholder,input[type=number]:focus::placeholder,input[type=tel]:focus::placeholder,input[type=text]:focus::placeholder,select:focus::placeholder,textarea:focus::placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity))}@media (min-width:767px){input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{font-size:1rem}}textarea{height:auto}select{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-image:none;cursor:default;display:block;font-size:1rem;line-height:48px;margin:0;padding:0 .75rem;text-transform:none;white-space:pre;width:100%}select:focus{outline:2px solid transparent;outline-offset:2px}form .btn{padding-bottom:13px;padding-top:13px}form label.error{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity));font-size:13.6px;font-weight:500;margin-top:.3125rem;text-align:left}form .error:not(label){--tw-border-opacity:1;--tw-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #1665fb;--tw-shadow-colored:inset 0 1px 1px var(--tw-shadow-color),0 0 6px var(--tw-shadow-color);border-color:rgb(89 23 105/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.page-pricing-data .content-form .btn{margin-left:auto;margin-right:auto;margin-top:3rem;width:auto}#pardot-err{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));border-radius:.125rem;color:rgb(255 255 255/var(--tw-text-opacity));padding:1.25rem;text-align:left}#pardot-err h5{display:flex;font-size:.875rem;font-weight:500;gap:.3125rem;margin-bottom:.4375rem}#pardot-err p{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-size:.875rem;margin-bottom:.125rem}.modal{bottom:0;display:none;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1050}.modal.modal-open{display:block;overflow-x:hidden;overflow-y:auto}.modal .modal-dialog{--tw-translate-x:-50%;--tw-translate-y:-50%;left:50%;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:auto}.modal .modal-content{--tw-bg-opacity:1;background-clip:padding-box;background-color:rgb(255 255 255/var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;padding:1.5rem;position:relative}.modal .modal-content .modal-header{text-align:center}.modal .modal-content .modal-body,.modal .modal-content .modal-footer{position:relative}.modal .fluid-embed embed,.modal .fluid-embed iframe,.modal .fluid-embed object{border-style:none}.close{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:block;margin-top:.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem}.site-header{--tw-bg-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:flex;font-size:1.125rem;left:0;padding-bottom:.9375rem;padding-top:.9375rem;position:sticky;right:0;top:0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:50}@media (min-width:767px){.site-header{padding-bottom:1.375rem;padding-top:1.375rem}}@media (min-width:992px){.site-header{font-size:1rem;padding-bottom:1.125rem;padding-top:1.125rem}}@media (min-width:1400px){.site-header{font-size:1.125rem}}@media (min-width:992px){.site-header{height:100px}.site-header>.container{align-items:center;display:flex;justify-content:space-between}}.site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:none;float:right;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;margin-left:.9375rem;padding:.375rem 1.125rem}.site-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}@media (min-width:767px){.site-header .btn-get-demo{display:block}}.site-header .btn-get-demo{letter-spacing:.3px}@media (min-width:992px){.site-header .btn-get-demo{height:max-content;order:3}}.site-header .mobile-logo,.site-header .sticky-logo{display:none}.site-header.no-sticky,.site-header.no-sticky .top-slogan{position:relative}.site-header.centered-logo .navigation-header{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}.site-header.centered-logo .navigation-header .logo{height:auto;margin-left:auto;margin-right:auto;width:6.25rem}@media (min-width:767px){.site-header.centered-logo .navigation-header .logo{width:120px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .logo{width:150px}}.site-header.centered-logo .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:9px;font-weight:300;text-align:center}@media (min-width:767px){.site-header.centered-logo .navigation-header .top-slogan{font-size:11px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .top-slogan{font-size:14px}}.site-header.centered-logo .top-slogan{display:block}.site-header.purple-header .navigation-header .navbar-toggle-open path[fill],.site-header.transparent-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.site-header.purple-header .navigation-header .top-slogan,.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a,.site-header.transparent-header .navigation-header .top-slogan,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23CC8BDB'/%3E%3C/svg%3E")}.site-header.purple-header .btn-get-demo,.site-header.transparent-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.site-header.purple-header .btn-get-demo:hover,.site-header.transparent-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.transparent-header{background-color:transparent;position:absolute}.site-header.purple-header{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.site-header.white-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header .top-logo{display:none}@media (min-width:767px){body.sticky-header:not(.mobile-menu-active) .site-header .sticky-logo{display:block}}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23591769'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header,body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .sticky-header-btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(163 94 180/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23A35EB4'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}body:not(.sticky-header) .site-header:not(.centered-logo) .logo{margin-top:-.4375rem}body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:71px}@media (min-width:767px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:5rem}}@media (min-width:992px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:6.25rem}}.sticky-header-enabled .site-header{padding-bottom:1.25rem}@media (min-width:767px){.sticky-header-enabled .site-header{padding-bottom:1.875rem}}.sticky-header-enabled.sticky-header .site-header{--tw-shadow:0 1px 6px rgb(0 0 0/15%);--tw-shadow-colored:0 1px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.625rem;padding-top:.625rem;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:767px){.sticky-header-enabled.sticky-header .site-header{padding-bottom:.9375rem;padding-top:.9375rem}}@media (min-width:992px){.sticky-header-enabled.sticky-header .site-header{height:63px}}.sticky-header-enabled.sticky-header .site-header.transparent-header{position:fixed}.sticky-header-enabled.sticky-header .site-header .navigation-header,.sticky-header-enabled.sticky-header .site-header .primary-menu-wrapper .primary-menu li a{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}body.pricing .site-header{border-bottom:1px solid #e8e8e9}.invicti-bar{display:none;position:relative;z-index:1}.invicti-bar .bar-close{--tw-text-opacity:1;align-items:center;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:flex;height:1.25rem;justify-content:center;position:absolute;right:1.5rem;width:1.25rem}.invicti-bar .bar-close:hover{opacity:.5}.invicti-bar .bar-close svg{height:1.125rem;width:1.125rem}.invicti-bar .transition-message{--tw-bg-opacity:1;align-items:center;background-color:rgb(122 37 130/var(--tw-bg-opacity));display:flex;flex-wrap:wrap;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;gap:.125rem;height:45px;justify-content:center;padding-left:1.25rem;padding-right:1.25rem}.invicti-bar .transition-message,.invicti-bar a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));width:100%}.invicti-bar a{text-align:center}.invicti-bar a:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}body.invicti-bar-active .invicti-bar{display:block}.transparent-header-active:not(.mobile-menu-active){margin-top:2.8125rem}.transparent-header-active:not(.mobile-menu-active) .invicti-bar{margin-top:-2.8125rem}.transparent-header-active:not(.mobile-menu-active) .transparent-header{top:2.8125rem}.transparent-header-active:not(.mobile-menu-active).sticky-header,.transparent-header-active:not(.mobile-menu-active).sticky-header .invicti-bar{margin-top:0}.transparent-header-active:not(.mobile-menu-active).sticky-header .transparent-header{top:0}.site-footer{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.9375rem;padding-bottom:1.25rem;padding-top:1.25rem}.site-footer .copyright-mobile{margin-bottom:.625rem}@media (min-width:767px){.site-footer .copyright-mobile{display:none;margin-left:.9375rem;margin-right:.9375rem}}.site-footer .company-info-wrapper .footerlogo{margin-bottom:.9375rem}@media (min-width:992px){.site-footer .company-info-wrapper .company-info{line-height:21.4286px}}.site-footer .company-info-wrapper .copyright{display:none}@media (min-width:767px){.site-footer .company-info-wrapper .copyright{display:block;margin-top:1.25rem}}@media (min-width:992px){.site-footer .company-info-wrapper .copyright{display:none}}@media (min-width:1200px){.site-footer .company-info-wrapper .copyright{display:block}}.site-footer .company-info-wrapper br{display:none}@media (min-width:767px){.site-footer .company-info-wrapper br{display:block}}.site-footer .company-info-wrapper .social-icons{margin-bottom:1.375rem}.site-footer .company-info-wrapper .social-icons>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.site-footer .company-info-wrapper .social-icons{zoom:.9}.site-footer .company-info-wrapper .social-icons a{transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.site-footer .company-info-wrapper .social-icons a:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.site-footer .primary-footer{display:grid;gap:1.875rem;justify-content:space-between;padding-bottom:1.5625rem;padding-top:1.5625rem}@media (min-width:767px){.site-footer .primary-footer{gap:3.75rem;grid-template-columns:max-content minmax(min-content,540px)}}@media (min-width:992px){.site-footer .primary-footer{grid-template-columns:max-content minmax(min-content,1140px)}}.site-footer .footer-primary-menu{display:grid;gap:1.875rem;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,1fr);grid-template-rows:auto;justify-content:space-between;margin:0;padding:0}@media (min-width:610px){.site-footer .footer-primary-menu{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,auto)}}@media (min-width:992px){.site-footer .footer-primary-menu{grid-template-columns:repeat(5,auto);grid-template-rows:auto}}.site-footer .footer-primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:700;margin-bottom:.625rem}.site-footer .footer-primary-menu .sub-menu{font-size:14px;margin:0}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu{margin-top:.375rem}}.site-footer .footer-primary-menu .sub-menu li{line-height:1.25rem;margin-bottom:.4375rem}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu li{margin-bottom:.3125rem}}.site-footer .footer-primary-menu .sub-menu li:last-child{margin-bottom:0}.site-footer .footer-primary-menu .sub-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;letter-spacing:.5px}.site-footer .footer-primary-menu .sub-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.site-footer .footer-bottom-menu{display:flex;flex-wrap:wrap;margin-bottom:0;padding:0}@media (min-width:767px){.site-footer .footer-bottom-menu{display:inline-flex;line-height:1rem}}.site-footer .footer-bottom-menu li{width:100%}@media (min-width:767px){.site-footer .footer-bottom-menu li{margin-right:.625rem;width:auto}}@media (min-width:992px){.site-footer .footer-bottom-menu li{margin-right:1.75rem}}.site-footer .footer-bottom-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.75rem;font-weight:700;letter-spacing:.5px}.site-footer .footer-bottom-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.landing-page .site-footer{padding-bottom:0;padding-top:0}.gallery-caption figcaption,.wp-caption-text{font-size:.875rem}ul.checkmark-bullets{list-style:none!important;padding-left:2.5rem}ul.checkmark-bullets li{position:relative}ul.checkmark-bullets li:not(:last-child){margin-bottom:.3125rem}ul.checkmark-bullets li:before{background-repeat:no-repeat;background-size:contain;content:"";display:block;float:left;height:14px;left:-38px;position:absolute;top:8px;width:19px}ul.checkmark-bullets--blue li:before{background-image:url(https://cdn.invicti.com/app/uploads/2024/01/29150338/checkmark-blue.svg)}ul.general-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.9375rem*var(--tw-space-y-reverse));margin-top:calc(.9375rem*(1 - var(--tw-space-y-reverse)))}ul.general-list{padding-left:31px}ul.general-list li{position:relative}.fas-li{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:9999px;height:.5rem;left:-1.5em;position:absolute;text-align:center;top:9px;width:.5rem}.main ul{list-style-position:outside;list-style-type:disc;overflow-wrap:break-word;padding-left:2.5rem}.main ul ul{list-style-type:circle}.main ul ul ul{list-style-type:square}.main ol{list-style-position:outside;list-style-type:decimal;overflow-wrap:break-word;padding-left:2.5rem}.main ol ol{list-style:lower-alpha}.main ol ol ol{list-style-type:lower-roman}.main ol,.main ul{overflow-wrap:break-word}.main ol ol,.main ol ul,.main ul ol,.main ul ul{margin-top:1rem}.main ol li,.main ul li{margin-bottom:.5rem}.cookie-notice{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(251 251 251/var(--tw-bg-opacity));border-color:rgb(235 235 235/var(--tw-border-opacity));border-top-width:1px;bottom:0;display:none;font-size:.75rem;justify-content:center;padding:.9375rem;position:fixed;width:100%;z-index:999}@media (min-width:767px){.cookie-notice{font-size:.875rem}}.cookie-notice.active{display:flex}.cookie-notice p a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.cookie-notice p a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.cookie-notice .cookie-notice-button{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;font-weight:700;margin-bottom:-.625rem;margin-left:.625rem;margin-top:-.625rem;padding:.4375rem 1.5625rem}.cookie-notice .cookie-notice-button:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.entry-content>*{font-size:1.125rem}.entry-content>h1,.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content>h1:first-child,.entry-content>h2:first-child,.entry-content>h3:first-child,.entry-content>h4:first-child,.entry-content>h5:first-child,.entry-content>h6:first-child{margin-top:0}.entry-content>h1,.entry-content>h2{font-weight:700;margin-bottom:1.875rem;margin-top:3.125rem}.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-bottom:1.125rem;margin-top:2rem}.entry-content>h1{font-size:1.75rem}@media (min-width:767px){.entry-content>h1{font-size:2.25rem}}.entry-content>h2{font-size:1.625rem}@media (min-width:767px){.entry-content>h2{font-size:2rem}}.entry-content>h3{font-size:1.5rem}@media (min-width:767px){.entry-content>h3{font-size:1.75rem}}.entry-content>h4{font-size:1.375rem}.entry-content>h5{font-size:1.25rem}.entry-content>h6{font-size:1.125rem}.entry-content>address,.entry-content>dl,.entry-content>figure,.entry-content>iframe,.entry-content>img,.entry-content>p,.entry-content>pre,.entry-content>table{margin-bottom:1.5625rem}.entry-content>figure,.entry-content>iframe,.entry-content>img{margin-bottom:3rem;margin-top:3rem}.entry-content>blockquote.wp-block-quote{margin-bottom:3.125rem;margin-top:3.125rem}.entry-content>.wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}.entry-content>.wp-block-table{margin-top:2rem}.entry-content a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content code{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(215 56 41/var(--tw-text-opacity));font-size:90%;padding:.125rem .25rem;white-space:pre-wrap}.entry-content code,.entry-content pre{background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem}.entry-content pre{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(177 177 178/var(--tw-border-opacity));border-width:1px;color:rgb(16 24 32/var(--tw-text-opacity));font-size:13px;line-height:1.42857143;padding:.625rem}.entry-content pre>code{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgb(16 24 32/var(--tw-text-opacity));font-size:14px;margin:0;padding:0;white-space:pre-wrap}.entry-content>p a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content .wp-block-table thead{border-style:none}.entry-content .wp-block-table thead th{border-bottom-width:2px}.entry-content .wp-block-table tbody td,.entry-content .wp-block-table thead th{--tw-border-opacity:1;border-color:rgb(99 101 105/var(--tw-border-opacity))}.entry-content .image-block,.entry-content .wp-block-image{margin-bottom:3rem;margin-top:3rem}.entry-content .image-block img,.entry-content .wp-block-image img{margin-bottom:0;margin-top:0}.archive-description{margin-bottom:1.5rem}.page-template-template-sidebar-right .site-main{display:grid;gap:5rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:992px){.page-template-template-sidebar-right .site-main{grid-template-columns:repeat(3,minmax(0,1fr))}.page-template-template-sidebar-right .content-container{grid-column:span 2/span 2}} </style> <!-- Start Mutiny Code --> <script type="text/javascript" nonce="wo123jejr234982dfn"> (function(){var a=window.mutiny=window.mutiny||{}; if(!window.mutiny.client){a.client={_queue:{}}; var b=["identify","trackConversion"]; var c=[].concat(b,["defaultOptOut","optOut","optIn"]); var d=function factory(c){return function(){for(var d=arguments.length,e=new Array(d),f=0; f<d;f++){e[f]=arguments[f]}a.client._queue[c]=a.client._queue[c]||[]; if(b.includes(c)){return new Promise(function(b,d){a.client._queue[c].push({args:e,resolve:b,reject:d}); setTimeout(d,500)})}else{a.client._queue[c].push({args:e})}}};c.forEach(function(b){a.client[b]=d(b)})}})(); </script> <script data-cfasync="false" src="https://client-registry.mutinycdn.com/personalize/client/55f18a1f30252c8e.js"></script> <!-- End Mutiny Code --> <!-- TrenDemon Code --> <script type="text/javascript" id="trd-flame-load"> TRD_ACC_ID = 2632; (function (w, d) { function go() { var trdti = setInterval(function () { if (document.readyState === "complete") { var bi = document.createElement("script"); bi.type = "text/javascript"; bi.async = true; bi.src = "https://assets.trendemon.com/tag/trends.min.js"; bi.id = "trdflame"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bi, s); clearInterval(trdti); } }, 500); }; go(); }(window, document)); </script> <!-- End of TrenDemon Code --> <style id="page-dynamic-css">.single-support .article-cat a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;margin-bottom:.25rem;text-transform:uppercase}.single-support .article-heading{margin-bottom:.9375rem}.single-support .article-heading h1{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:36px;letter-spacing:-.01em;margin-bottom:0}.single-support .article-coverage{--tw-border-opacity:1;align-items:flex-start;border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;display:flex;flex-direction:column;flex-wrap:wrap;margin-bottom:1.875rem;padding:14px 1.25rem}@media (min-width:767px){.single-support .article-coverage{align-items:center;flex-direction:row}}.single-support .article-coverage span{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;text-transform:uppercase}@media (min-width:767px){.single-support .article-coverage span{margin-right:.3125rem}}.single-support .article-coverage .products{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;margin-top:-.0625rem}.single-support .entry-content{padding-bottom:40px;padding-right:0;padding-top:40px}@media (min-width:992px){.single-support .entry-content{padding-bottom:45px;padding-left:60px;padding-right:60px;padding-top:45px}}.single-support aside.toc{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:none;flex:none;left:0;margin-left:-1.5625rem;margin-right:-1.5625rem;position:sticky;right:0;top:0;z-index:10}@media (min-width:992px){.single-support aside.toc{display:block;margin-left:0;margin-right:0;padding-top:38px;position:relative;width:260px}}@media (max-width:1200px){.single-support aside.toc{display:none}}.single-support aside.toc .toc-sticky{padding-bottom:1.875rem;padding-top:1.25rem}.single-support aside.toc .toc-sticky .toc-box{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-left-width:1px}.single-support aside.toc .toc-sticky .toc-title{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;margin-bottom:1.25rem;padding-left:1.5625rem;text-transform:uppercase}.single-support aside.toc .toc-sticky .toc-list{display:flex;flex-direction:column;gap:.9375rem}.single-support aside.toc .toc-sticky .toc-list .toc-list-item{display:flex}.single-support aside.toc .toc-sticky .toc-list .toc-list-item a{--tw-text-opacity:1;border-color:transparent;border-left-width:1px;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.625;margin-left:-1px;padding-left:1.5625rem}.single-support aside.toc .toc-sticky .toc-list .toc-list-item .is-active-link{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(44 81 189/var(--tw-border-opacity));color:rgb(44 81 189/var(--tw-text-opacity))}.single-support aside.toc .toc-sticky .toc-list .toc-list-item .is-active-link:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-support aside.toc .toc-sticky .is-collapsible{max-height:1000px;overflow:hidden;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-support aside.toc .toc-sticky .is-collapsed{margin:0!important;max-height:0}.single-support .article-share{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));border-top-width:1px;display:flex;flex-direction:column;gap:.4375rem;margin-top:2.5rem;padding-bottom:1.875rem;padding-top:1.875rem}@media (min-width:767px){.single-support .article-share{flex-direction:row;gap:1.25rem}}.single-support .article-share .share-button{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(0 0 0/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:flex;flex:1 1 auto;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:500;gap:.375rem;height:42px;justify-content:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-support .article-share .share-button.share-facebook{--tw-bg-opacity:1;background-color:rgb(24 119 242/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-facebook:hover{--tw-bg-opacity:1;background-color:rgb(24 100 199/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-twitter{--tw-bg-opacity:1;background-color:rgb(29 161 242/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-twitter:hover{--tw-bg-opacity:1;background-color:rgb(37 143 210/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-linkedin{--tw-bg-opacity:1;background-color:rgb(0 119 181/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-linkedin:hover{--tw-bg-opacity:1;background-color:rgb(20 106 152/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-mail{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.single-support .article-share .share-button.share-mail:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.single-support .article-widgets{display:grid;gap:1.5625rem;grid-template-columns:repeat(1,minmax(0,1fr));margin-top:1.875rem}@media (min-width:767px){.single-support .article-widgets{grid-template-columns:repeat(2,minmax(0,1fr))}}.single-support .article-widgets .aw-box{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;display:flex;flex-direction:column;justify-content:space-between;min-height:230px;padding-bottom:1.25rem;padding-left:1.25rem;padding-right:1.25rem}.single-support .article-widgets .aw-box .widget-title{--tw-border-opacity:1;--tw-text-opacity:1;align-items:center;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));color:rgb(16 24 32/var(--tw-text-opacity));display:flex;flex:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;height:50px;margin-bottom:.9375rem;text-transform:uppercase}.single-support .article-widgets .aw-box .widget-content{display:flex;flex-direction:column;flex-grow:1;justify-content:space-between}.single-support .article-widgets .aw-box.top-articles a{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:400;padding-bottom:.3125rem;padding-top:.3125rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-support .article-widgets .aw-box.top-articles a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.single-support .article-widgets .aw-box.open-ticket h3{margin-bottom:.625rem;margin-top:1.25rem}.single-support .article-widgets .aw-box.open-ticket p{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-size:.875rem;line-height:1.5;margin-bottom:auto}.single-support .article-widgets .aw-box.open-ticket small{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));display:block;font-size:.75rem;margin-top:.9375rem}.sticky-header aside.toc .toc-sticky{top:70px}.single-support .single-support-entry img{display:inherit;margin:0 auto}.single-support .single-support-entry a.btn{display:inline-block}.single-support .single-support-entry a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.single-support .single-support-entry a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-support .single-support-entry img,.single-support .single-support-entry pre{border-radius:0;float:none;max-width:100%}.single-support .single-support-entry pre{margin-bottom:.9375rem;margin-top:.9375rem}.single-support .single-support-entry h2{scroll-margin-top:120px;scroll-padding-top:120px}.single-support .single-support-entry>ol,.single-support .single-support-entry>p,.single-support .single-support-entry>table,.single-support .single-support-entry>table>td,.single-support .single-support-entry>table>tr,.single-support .single-support-entry>ul,.single-support .single-support-entry table p{font-size:1.125rem}.single-support .single-support-entry>ol iframe,.single-support .single-support-entry>p iframe,.single-support .single-support-entry>table>td iframe,.single-support .single-support-entry>table>tr iframe,.single-support .single-support-entry>table iframe,.single-support .single-support-entry>ul iframe,.single-support .single-support-entry table p iframe{margin-top:.625rem;max-width:100%}.single-support .single-support-entry table.table-bordered{--tw-border-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-width:1px}.single-support .single-support-entry table ul{padding-left:2.5rem}.single-support .single-support-entry table img{display:block}.single-support .single-support-entry blockquote ul{margin-bottom:0}.single-support .single-support-entry img.inline-img{display:inline}.single-support .text-center{text-align:center}.single-support blockquote{border-left:5px solid #eee;font-size:17.5px;margin:0 0 20px;padding:10px 20px}.single-support blockquote.info,.single-support blockquote.tips,.single-support blockquote.warning{font-size:14px!important;margin:20px 0 30px;padding:20px 25px 20px 65px;position:relative;text-align:left!important}.single-support blockquote.info{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 254 250/var(--tw-bg-opacity));border-color:rgb(255 243 204/var(--tw-border-opacity));border-width:1px;color:rgb(121 108 16/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.info:before{--tw-bg-opacity:1;background-color:rgb(255 196 0/var(--tw-bg-opacity));content:"";height:100%;left:23px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.125rem;width:17px}.single-support blockquote.tips{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(217 237 247/var(--tw-bg-opacity));border-color:rgb(188 232 241/var(--tw-border-opacity));border-width:1px;color:rgb(49 112 143/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.tips:before{--tw-bg-opacity:1;background-color:rgb(49 112 143/var(--tw-bg-opacity));content:"";height:100%;left:20px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.25rem;width:23px}.single-support blockquote.warning{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 222 222/var(--tw-bg-opacity));border-color:rgb(235 204 209/var(--tw-border-opacity));border-width:1px;color:rgb(169 68 66/var(--tw-text-opacity));font-size:1rem;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.single-support blockquote.warning:before{--tw-bg-opacity:1;background-color:rgb(169 68 66/var(--tw-bg-opacity));content:"";height:100%;left:17px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;top:1.375rem;width:30px}.single-support blockquote.info p{color:#796c10}.single-support blockquote.warning p{color:#a94442}.single-support blockquote.tips p{color:#31708f}.single-support blockquote.info a,.single-support blockquote.tips a,.single-support blockquote.warning a{color:inherit}.single-support blockquote.info a:hover{color:#13455f}.single-support blockquote.warning a:hover{color:#6d2423}.single-support blockquote.tips a:hover{color:#4d460e}.single-support blockquote ul{margin-bottom:0}.single-support table{background-color:transparent;border-collapse:collapse;border-spacing:0;max-width:100%;overflow:auto;width:100%!important}.single-support tr td,.single-support tr th{border-top:1px solid #ddd;font-size:1rem;line-height:1.42857143;padding:10px;text-align:left;vertical-align:top}.single-support .table-classification{border:1px solid #ddd;border-collapse:separate;border-radius:4px;border-spacing:0}.single-support .table-classification>thead>tr>th{background-color:#f5f5f5;border-bottom:2px solid #c00!important;font-size:16px;padding:10px 15px;text-align:left}.single-support .table-classification>tbody>tr>td{padding:8px 15px}.single-support td.classification-subtitle{background-color:#f1f1f1;font-weight:var(--font-weight-medium)}.single-support .table-responsive{margin-bottom:15px;overflow-y:auto;width:100%}.single-support .table-responsive .table-classification{border:none}.single-support .table-bordered>tbody>tr>td,.single-support .table-bordered>tbody>tr>th,.single-support .table-bordered>tfoot>tr>td,.single-support .table-bordered>tfoot>tr>th,.single-support .table-bordered>thead>tr>td,.single-support .table-bordered>thead>tr>th{border:1px solid #ddd}@media (max-width:550px){.single-support table:not(.table-responsive){display:inline-block;overflow-y:scroll}}.single-support .outline-ddd{outline-color:#ddd!important;outline-style:solid!important;outline-width:thin!important}.single-support .bbold{font-weight:var(--font-weight-bold)}.single-support .iitalic{font-style:italic}.single-support .mt10{margin-top:10px!important}.single-support .mt30{margin-top:30px!important}.single-support .mb0{margin-bottom:0!important}.single-support .mr5{margin-right:5px!important}.single-support .ml0{margin-left:0!important}.single-support .mb20{margin-bottom:20px!important}.single-support .mt40{margin-top:40px!important}.single-support .shadow-ddd{box-shadow:0 0 1px 0 #ddd}.single-support .shadow-3e3e3e{box-shadow:0 0 1px 0 #3e3e3e}.single-support .border-ddd{border:1px solid #ddd}.single-support .y20{width:20%}.single-support .y50{width:50%}.single-support .nolrpad{padding-left:0!important;padding-right:0!important}.single-support .entry-content{overflow:hidden}.single-support .entry-content ol{list-style-type:decimal;margin-bottom:1.875rem;padding-left:1.25rem}.single-support .entry-content ol li{margin-bottom:.3125rem;margin-top:.3125rem}.single-support .entry-content ul{list-style-type:disc;margin-bottom:1.875rem;padding-left:1.25rem}.single-support .entry-content ul li{margin-bottom:.625rem;margin-top:.625rem}[open-in-lb] img{cursor:zoom-in}body.invicti-lightbox-active:after{content:"";height:100%;left:0;position:fixed;top:0;width:100%;z-index:555}.invicti-lightbox{--tw-translate-x:-50%;--tw-translate-y:-50%;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;left:50%;max-height:100vh;opacity:0;padding:.9375rem;position:fixed;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:auto;z-index:9999}@media (min-width:767px){.invicti-lightbox{max-height:95vh}}.invicti-lightbox{box-shadow:0 0 0 100vw #000000d1;max-width:calc(100vw - 30px);transition:opacity .3s ease}.invicti-lightbox img{margin:0;-o-object-fit:contain;object-fit:contain}.invicti-lightbox iframe,.invicti-lightbox img{max-height:calc(95vh - 30px);max-width:calc(100vw - 60px)}.invicti-lightbox iframe{aspect-ratio:16/9;height:auto;margin:0}.invicti-lightbox figure.video{aspect-ratio:16/9;height:auto;width:100%}.invicti-lightbox.active{opacity:1}.invicti-lightbox .lightbox-close{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity));border-color:rgb(255 255 255/var(--tw-border-opacity));border-radius:9999px;border-width:2px;color:rgb(255 255 255/var(--tw-text-opacity));padding:.625rem;position:absolute;right:-8px;top:-8px}.invicti-lightbox .lightbox-close:not(:hover){box-shadow:0 0 10px #00000085}.invicti-lightbox .lightbox-close svg{height:auto;max-width:15px}.invicti-lightbox .lightbox-close path{fill:currentColor}.invicti-lightbox .loading{--tw-border-opacity:1;animation:spin 1s ease-in-out infinite;border-color:transparent;border-bottom-color:rgb(89 23 105/var(--tw-border-opacity));border-radius:9999px;border-top-color:rgb(89 23 105/var(--tw-border-opacity));border-width:2px;display:inline-block;height:3.125rem;margin:3.125rem;width:3.125rem}@keyframes spin{to{-webkit-transform:rotate(1turn)}}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{position:relative;margin:.5em 0;overflow:visible;padding:1px}pre[class*=language-]>code{position:relative;z-index:1}code[class*=language-]{max-height:inherit;height:inherit;padding:0 1em;display:block;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{position:relative;padding:.2em;border-radius:.3em;color:#c92c2c;border:1px solid rgba(0,0,0,.1);display:inline;white-space:normal}pre[class*=language-]:after,pre[class*=language-]:before{content:'';display:block;position:absolute;bottom:.75em;left:.18em;width:40%;height:20%;max-height:13em}pre[class*=language-]:after{right:.75em;left:auto;-webkit-transform:rotate(2deg);-moz-transform:rotate(2deg);-ms-transform:rotate(2deg);-o-transform:rotate(2deg);transform:rotate(2deg)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7782}.token.punctuation{color:#5f6364}.token.boolean,.token.constant,.token.deleted,.token.function-name,.token.number,.token.property,.token.symbol,.token.tag{color:#c92c2c}.token.attr-name,.token.builtin,.token.char,.token.function,.token.inserted,.token.selector,.token.string{color:#2f9c0a}.token.entity,.token.operator,.token.url,.token.variable{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.class-name,.token.keyword{color:#1990b8}.token.important,.token.regex{color:#e90}.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,.5)}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:after,pre[class*=language-]:before{bottom:14px;box-shadow:none}}pre[class*=language-].line-numbers.line-numbers{padding-left:0}pre[class*=language-].line-numbers.line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers.line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-top:0;padding-bottom:0;padding-left:0}pre[data-line] code{position:relative;padding-left:4em}pre .line-highlight{margin-top:0}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:6;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}pre[class*=language]>code{border-style:none;padding-left:0;padding-right:0;padding-top:.625rem;padding-bottom:.625rem}pre[class*=language]:not(.line-numbers){border-radius:4px!important}pre[class*=language]:not(.line-numbers)>code{border-style:none;padding:.625rem 1em}pre[class*=language]>code .punctuation{--tw-text-opacity:1;color:rgb(29 28 41 / var(--tw-text-opacity))}div.code-toolbar>pre[class*=language]>code .line-numbers-rows{padding-top:.625rem;padding-bottom:.625rem}div.code-toolbar>.toolbar{right:.3em}div.code-toolbar>.toolbar>.toolbar-item>button{border-radius:.25rem;border-width:0;--tw-bg-opacity:1;background-color:rgb(204 204 204 / var(--tw-bg-opacity));padding-left:.625rem;padding-right:.625rem;padding-top:.25rem;padding-bottom:.25rem;text-transform:lowercase;line-height:1;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.navigation-header{align-items:center;display:flex;justify-content:space-between;min-height:36px}.navigation-header .logo{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:79px}@media (min-width:1200px){.navigation-header .logo{width:6.25rem}}.navigation-header .mobile-logo-icon{display:none;height:2rem;margin-left:auto;margin-right:auto}.navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:7.5px;font-weight:300;position:absolute;transition-delay:.2s;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear}@media (min-width:1200px){.navigation-header .top-slogan{font-size:9.4px}}.navigation-header .sticky-header-btn{--tw-translate-x:-50%;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(250 249 247/var(--tw-text-opacity));display:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;left:50%;line-height:1.25rem;padding:.375rem 1.125rem;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:767px){.navigation-header .sticky-header-btn{padding-left:2.5rem;padding-right:2.5rem}}.navigation-header .navbar-toggle{cursor:pointer;margin-bottom:0;outline:2px solid transparent;outline-offset:2px;padding:0}@media (min-width:767px){.navigation-header .navbar-toggle{margin-right:.625rem}}@media (min-width:992px){.navigation-header .navbar-toggle{display:none}}.navigation-header .navbar-toggle-close{display:none}.primary-menu-wrapper{height:0;overflow-y:auto;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper{display:inline-block;height:auto;margin-left:auto;margin-right:0}}.primary-menu-wrapper .btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(16 24 32/var(--tw-text-opacity));display:none;font-size:1rem;font-weight:700;line-height:1.25rem;padding-bottom:.9375rem;padding-top:.9375rem;position:relative;width:100%;z-index:1}.primary-menu-wrapper .primary-menu{display:flex;flex-direction:column;margin-bottom:0;margin-top:1.25rem;width:100%}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(255 255 255/.2);border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}@media (min-width:992px){.primary-menu-wrapper .primary-menu{display:inline-flex;flex-direction:row;margin-top:0}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){border-style:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu{padding-left:0;padding-right:0}}}.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;align-items:center;color:rgb(250 249 247/var(--tw-text-opacity));display:flex;font-size:42px;font-weight:300;justify-content:space-between;padding:1.25rem 0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.9375rem;font-weight:500;line-height:1.25rem;padding-bottom:1.25rem;padding-left:14px;padding-right:14px;padding-top:1.25rem}}@media (min-width:1200px){.primary-menu-wrapper .primary-menu li a{font-size:1.125rem;padding-left:1.125rem;padding-right:1.125rem}}.primary-menu-wrapper .primary-menu li.partners-custom{position:relative}.primary-menu-wrapper .primary-menu li.partners-custom .sub-menu.level--2{right:100%;top:-.4375rem}.primary-menu-wrapper .primary-menu .menu-item-has-children{backface-visibility:hidden;-webkit-backface-visibility:hidden}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:cover;display:block;height:9px;position:relative;transform-origin:center;transition-duration:.1s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);width:16px}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:contain;height:.75rem;width:.75rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";-webkit-transform-style:preserve-3d}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E");margin-left:.375rem;margin-right:0;top:.0625rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children .active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a:after{--tw-rotate:180deg;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%237A2582'/%3E%3C/svg%3E");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>.sub-menu{display:block}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu{display:flex;left:100%;padding-bottom:5px;top:0}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu li a{padding-bottom:.125rem;padding-top:.125rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level:hover>a:after{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level .sub-menu>li>a:after{display:none}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level .sub-menu>li>a:after{display:none}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{display:block;opacity:.8}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{opacity:1}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:2.5rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:0}.primary-menu-wrapper .primary-menu li.menu-item-18>.sub-menu{width:200px}.primary-menu-wrapper .primary-menu li.menu-item-14>.sub-menu{width:260px}}.primary-menu-wrapper .primary-menu .sub-menu{display:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu{--tw-bg-opacity:1;--tw-shadow:0 0.25rem 0.375rem -0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.25rem -0.0625rem rgba(0,0,0,0.06);--tw-shadow-colored:0 0.25rem 0.375rem -0.0625rem var(--tw-shadow-color),0 0.125rem 0.25rem -0.0625rem var(--tw-shadow-color);background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.5rem;padding-top:.5rem;position:absolute;width:auto;z-index:50}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col{width:max-content}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:700;margin-bottom:-.9375rem;margin-left:-.9375rem;margin-right:-.9375rem;text-transform:uppercase}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{font-weight:700;margin-left:0}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{margin-left:-.9375rem;margin-right:-.9375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;margin-bottom:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0;position:static}}.primary-menu-wrapper .primary-menu .sub-menu li a{font-weight:500;line-height:1.75rem;padding-bottom:.4375rem;padding-top:.4375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li a{padding-bottom:.3125rem;padding-top:.3125rem}.primary-menu-wrapper .primary-menu .sub-menu li a:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a:after{background:#05d5ff;border-radius:2px;color:#101820;content:"NEW";font-size:12px;font-weight:700;line-height:1;margin-left:5px;padding:2px 3px}@media (max-width:991px){.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a{display:inline-block}}.mobile-menu-active{overflow:hidden}.mobile-menu-active .site-header{background:radial-gradient(81.5% 67% at 39% 50%,#431658 0,#3f1353 25%,#180427 100%)}.mobile-menu-active .site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.mobile-menu-active .site-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header{min-height:50px}.mobile-menu-active .site-header .navigation-header .logo.mobile-logo{display:block}.mobile-menu-active .site-header .navigation-header .logo.sticky-logo,.mobile-menu-active .site-header .navigation-header .logo.top-logo,.mobile-menu-active .site-header .navigation-header .mobile-logo-icon{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close path[fill],.mobile-menu-active .site-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.mobile-menu-active .site-header .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header .navbar-toggle-open,.mobile-menu-active .site-header .navigation-header .sticky-header-btn{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close{display:block}.mobile-menu-active .site-header .primary-menu-wrapper{height:100vh;padding-top:3.125rem;position:relative}@media (min-width:992px){.mobile-menu-active .site-header .primary-menu-wrapper{height:auto}}.mobile-menu-active .site-header .primary-menu-wrapper:after{height:150px;left:0;opacity:.2;position:absolute;top:0;width:100%}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper:after{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper:after{background:radial-gradient(50% 50% at 50% 50%,#c554d0 0,rgba(63,20,83,0) 100%);content:""}.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:block}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu{display:block;padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu a{font-size:1.125rem;font-weight:700}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li{padding-left:0}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>a{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>.sub-menu{padding-left:0;padding-top:.9375rem}.sticky-header .site-header .logo{display:none}@media (min-width:767px){.sticky-header .site-header .logo{display:block}.sticky-header .site-header .logo.mobile-logo{display:none}}.sticky-header .site-header .top-slogan{opacity:0;transition-delay:0ms;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sticky-header .site-header .mobile-logo-icon{display:block}@media (min-width:767px){.sticky-header .site-header .mobile-logo-icon{display:none}}.sticky-header .site-header .sticky-header-btn{display:block;text-align:center}@media (min-width:767px){.sticky-header .site-header .sticky-header-btn{display:none}}.post-type-archive-support .top,.single-support .top,.support-search-template .top,.tax-support-categories .top,body.support .top{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity));padding-bottom:1.25rem;padding-top:1.25rem}.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{display:flex;flex-direction:column;gap:.9375rem;justify-content:space-between}@media (min-width:767px){.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{flex-direction:row}}@media (min-width:992px){.post-type-archive-support .top>.container,.single-support .top>.container,.support-search-template .top>.container,.tax-support-categories .top>.container,body.support .top>.container{gap:1.25rem}}.post-type-archive-support .top .header #breadcrumbs a,.post-type-archive-support .top .header #breadcrumbs span,.single-support .top .header #breadcrumbs a,.single-support .top .header #breadcrumbs span,.support-search-template .top .header #breadcrumbs a,.support-search-template .top .header #breadcrumbs span,.tax-support-categories .top .header #breadcrumbs a,.tax-support-categories .top .header #breadcrumbs span,body.support .top .header #breadcrumbs a,body.support .top .header #breadcrumbs span{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;text-transform:uppercase}.post-type-archive-support .top .header .support-title,.single-support .top .header .support-title,.support-search-template .top .header .support-title,.tax-support-categories .top .header .support-title,body.support .top .header .support-title{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:32px;font-weight:500;letter-spacing:-.01em;line-height:1;margin-bottom:.3125rem;margin-top:.1875rem}.post-type-archive-support .top .search,.single-support .top .search,.support-search-template .top .search,.tax-support-categories .top .search,body.support .top .search{align-items:flex-end;display:flex;flex-grow:1;justify-content:flex-end;padding-bottom:.125rem}.post-type-archive-support .top .search form,.single-support .top .search form,.support-search-template .top .search form,.tax-support-categories .top .search form,body.support .top .search form{align-items:center;display:flex;justify-content:flex-end;position:relative;width:100%}.post-type-archive-support .top .search input[type=text],.single-support .top .search input[type=text],.support-search-template .top .search input[type=text],.tax-support-categories .top .search input[type=text],body.support .top .search input[type=text]{--tw-border-opacity:0.7;--tw-text-opacity:1;background-color:transparent;border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:1px;color:rgb(255 255 255/var(--tw-text-opacity));height:45px;max-width:100%;padding-left:.9375rem;padding-right:1.5625rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .top .search input[type=text]::placeholder,.single-support .top .search input[type=text]::placeholder,.support-search-template .top .search input[type=text]::placeholder,.tax-support-categories .top .search input[type=text]::placeholder,body.support .top .search input[type=text]::placeholder{--tw-text-opacity:0.7;color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .top .search input[type=text]:hover,.single-support .top .search input[type=text]:hover,.support-search-template .top .search input[type=text]:hover,.tax-support-categories .top .search input[type=text]:hover,body.support .top .search input[type=text]:hover{--tw-border-opacity:1}.post-type-archive-support .top .search input[type=text]:focus,.single-support .top .search input[type=text]:focus,.support-search-template .top .search input[type=text]:focus,.tax-support-categories .top .search input[type=text]:focus,body.support .top .search input[type=text]:focus{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:rgb(99 101 105/var(--tw-text-opacity))}.post-type-archive-support .top .search input[type=text]:focus::placeholder,.single-support .top .search input[type=text]:focus::placeholder,.support-search-template .top .search input[type=text]:focus::placeholder,.tax-support-categories .top .search input[type=text]:focus::placeholder,body.support .top .search input[type=text]:focus::placeholder{--tw-text-opacity:0.7;color:rgb(99 101 105/var(--tw-text-opacity))}@media (min-width:767px){.post-type-archive-support .top .search input[type=text],.single-support .top .search input[type=text],.support-search-template .top .search input[type=text],.tax-support-categories .top .search input[type=text],body.support .top .search input[type=text]{max-width:470px}}.post-type-archive-support .top .search input[type=text]:focus~button,.single-support .top .search input[type=text]:focus~button,.support-search-template .top .search input[type=text]:focus~button,.tax-support-categories .top .search input[type=text]:focus~button,body.support .top .search input[type=text]:focus~button{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.post-type-archive-support .top .search button,.single-support .top .search button,.support-search-template .top .search button,.tax-support-categories .top .search button,body.support .top .search button{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));position:absolute;right:.9375rem;top:13px}.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-right-width:0;flex:none;left:0;margin-left:-1.5625rem;margin-right:-1.5625rem;position:sticky;right:0;top:0;z-index:10}@media (min-width:992px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{border-right-width:1px;margin-left:0;margin-right:0;padding-top:40px;position:relative;width:300px}}@media (max-width:1500px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:250px}}@media (max-width:1200px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:220px}}@media (max-width:1000px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:200px}}@media (max-width:992px){.post-type-archive-support .content .sidebar,.single-support .content .sidebar,.support-search-template .content .sidebar,.tax-support-categories .content .sidebar,body.support .content .sidebar{width:auto}}.post-type-archive-support .content .sidebar .sidebar-menu,.single-support .content .sidebar .sidebar-menu,.support-search-template .content .sidebar .sidebar-menu,.tax-support-categories .content .sidebar .sidebar-menu,body.support .content .sidebar .sidebar-menu{--tw-bg-opacity:1;--tw-shadow:0px 4px 10px rgba(0,0,0,0.1);--tw-shadow-colored:0px 4px 10px var(--tw-shadow-color);background-color:rgb(248 248 248/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:none}@media (min-width:992px){.post-type-archive-support .content .sidebar .sidebar-menu,.single-support .content .sidebar .sidebar-menu,.support-search-template .content .sidebar .sidebar-menu,.tax-support-categories .content .sidebar .sidebar-menu,body.support .content .sidebar .sidebar-menu{--tw-bg-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:rgb(255 255 255/var(--tw-bg-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block}}.post-type-archive-support .content .sidebar .sidebar-menu.active,.single-support .content .sidebar .sidebar-menu.active,.support-search-template .content .sidebar .sidebar-menu.active,.tax-support-categories .content .sidebar .sidebar-menu.active,body.support .content .sidebar .sidebar-menu.active{display:block}.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{list-style-type:none;margin:0}.post-type-archive-support .content .sidebar .menu>:not([hidden])~:not([hidden]),.single-support .content .sidebar .menu>:not([hidden])~:not([hidden]),.support-search-template .content .sidebar .menu>:not([hidden])~:not([hidden]),.tax-support-categories .content .sidebar .menu>:not([hidden])~:not([hidden]),body.support .content .sidebar .menu>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;--tw-divide-opacity:1;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(250 249 247/var(--tw-divide-opacity));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{border-bottom-width:0;padding-left:1.5625rem;padding-right:1.5625rem}@media (min-width:767px){.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity))}}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu,.single-support .content .sidebar .menu,.support-search-template .content .sidebar .menu,.tax-support-categories .content .sidebar .menu,body.support .content .sidebar .menu{padding-left:0;padding-right:0}}.post-type-archive-support .content .sidebar .menu a[href="#"],.single-support .content .sidebar .menu a[href="#"],.support-search-template .content .sidebar .menu a[href="#"],.tax-support-categories .content .sidebar .menu a[href="#"],body.support .content .sidebar .menu a[href="#"]{cursor:default}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:13px;font-weight:700;text-transform:uppercase;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block>a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.single-support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.support-search-template .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,.tax-support-categories .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander,body.support .content .sidebar .menu>.menu-item-has-children>.menu-item-block:hover span.menu-expander{--tw-text-opacity:0.6}.post-type-archive-support .content .sidebar .menu .menu-item-block,.single-support .content .sidebar .menu .menu-item-block,.support-search-template .content .sidebar .menu .menu-item-block,.tax-support-categories .content .sidebar .menu .menu-item-block,body.support .content .sidebar .menu .menu-item-block{align-items:stretch;cursor:pointer;display:flex;justify-content:space-between}.post-type-archive-support .content .sidebar .menu .menu-item-block>a,.single-support .content .sidebar .menu .menu-item-block>a,.support-search-template .content .sidebar .menu .menu-item-block>a,.tax-support-categories .content .sidebar .menu .menu-item-block>a,body.support .content .sidebar .menu .menu-item-block>a{--tw-text-opacity:1;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));cursor:pointer;display:flex;flex-grow:1;padding-bottom:.5rem;padding-top:.5rem;position:relative;-webkit-text-decoration-line:none;text-decoration-line:none}.post-type-archive-support .content .sidebar .menu .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item-block span.menu-expander{--tw-text-opacity:0.25;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));display:flex;transition:opacity .15s ease-in-out}.post-type-archive-support .content .sidebar .menu>.menu-item,.single-support .content .sidebar .menu>.menu-item,.support-search-template .content .sidebar .menu>.menu-item,.tax-support-categories .content .sidebar .menu>.menu-item,body.support .content .sidebar .menu>.menu-item{padding-bottom:.625rem;padding-top:.625rem}.post-type-archive-support .content .sidebar .menu>.menu-item>a,.single-support .content .sidebar .menu>.menu-item>a,.support-search-template .content .sidebar .menu>.menu-item>a,.tax-support-categories .content .sidebar .menu>.menu-item>a,body.support .content .sidebar .menu>.menu-item>a{--tw-text-opacity:1;align-items:center;color:rgb(16 24 32/var(--tw-text-opacity));cursor:pointer;display:flex;font-size:16px;font-weight:500;padding-bottom:.5rem;padding-top:.5rem;position:relative;-webkit-text-decoration-line:none;text-decoration-line:none}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander{justify-content:flex-end;width:50px}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu{display:block;list-style-type:none;padding-bottom:10px;padding-left:0}.post-type-archive-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.single-support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2,body.support .content .sidebar .menu .menu-item.menu-item-has-children.active>.sub-menu.level--2{padding-bottom:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu,.single-support .content .sidebar .menu .menu-item .sub-menu,.support-search-template .content .sidebar .menu .menu-item .sub-menu,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu,body.support .content .sidebar .menu .menu-item .sub-menu{display:none;list-style-type:none;margin-bottom:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.single-support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.support-search-template .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),.tax-support-categories .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]),body.support .content .sidebar .menu .menu-item .sub-menu>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu,.single-support .content .sidebar .menu .menu-item .sub-menu,.support-search-template .content .sidebar .menu .menu-item .sub-menu,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu,body.support .content .sidebar .menu .menu-item .sub-menu{padding-bottom:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu.level--2,.single-support .content .sidebar .menu .menu-item .sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item .sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu.level--2,body.support .content .sidebar .menu .menu-item .sub-menu.level--2{margin-bottom:.75rem;margin-left:1.25rem;margin-top:.625rem;padding-bottom:0;padding-right:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu.level--3,.single-support .content .sidebar .menu .menu-item .sub-menu.level--3,.support-search-template .content .sidebar .menu .menu-item .sub-menu.level--3,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu.level--3,body.support .content .sidebar .menu .menu-item .sub-menu.level--3{margin-left:.625rem;margin-top:.625rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li,.single-support .content .sidebar .menu .menu-item .sub-menu li,.support-search-template .content .sidebar .menu .menu-item .sub-menu li,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li,body.support .content .sidebar .menu .menu-item .sub-menu li{border-style:none;line-height:1}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander{flex-shrink:0;justify-content:flex-end;width:50px}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children .menu-item-block>a{line-height:1.4;padding-bottom:0;padding-top:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children.active>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block a,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander{--tw-rotate:180deg;justify-content:flex-start;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:992px){.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.menu-item-block span.menu-expander{justify-content:center}}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item>.sub-menu.level--2{display:block;padding-right:1.25rem}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li a,.single-support .content .sidebar .menu .menu-item .sub-menu li a,.support-search-template .content .sidebar .menu .menu-item .sub-menu li a,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li a,body.support .content .sidebar .menu .menu-item .sub-menu li a{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity));cursor:pointer;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.4;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li a:hover,.single-support .content .sidebar .menu .menu-item .sub-menu li a:hover,.support-search-template .content .sidebar .menu .menu-item .sub-menu li a:hover,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li a:hover,body.support .content .sidebar .menu .menu-item .sub-menu li a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.single-support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.support-search-template .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander,body.support .content .sidebar .menu .menu-item .sub-menu li:hover span.menu-expander{--tw-text-opacity:0.6}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.single-support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.single-support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.support-search-template .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children,body.support .content .sidebar .menu .menu-item .sub-menu li.current-menu-item,body.support .content .sidebar .menu .menu-item .sub-menu li.menu-item-has-children{padding-bottom:0;padding-top:0}.post-type-archive-support .content .sidebar .menu .menu-item .sub-menu li ul,.single-support .content .sidebar .menu .menu-item .sub-menu li ul,.support-search-template .content .sidebar .menu .menu-item .sub-menu li ul,.tax-support-categories .content .sidebar .menu .menu-item .sub-menu li ul,body.support .content .sidebar .menu .menu-item .sub-menu li ul{padding-bottom:0}.post-type-archive-support .content .support-menu-trigger,.single-support .content .support-menu-trigger,.support-search-template .content .support-menu-trigger,.tax-support-categories .content .support-menu-trigger,body.support .content .support-menu-trigger{--tw-border-opacity:1;--tw-bg-opacity:0.2;--tw-shadow:0 2px 4px rgba(0,0,0,0.04);--tw-shadow-colored:0 2px 4px var(--tw-shadow-color);align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;gap:1.125rem;height:58px;justify-content:space-between;letter-spacing:-.01em;padding-left:1.5625rem;padding-right:1.5625rem;position:relative}@media (min-width:992px){.post-type-archive-support .content .support-menu-trigger,.single-support .content .support-menu-trigger,.support-search-template .content .support-menu-trigger,.tax-support-categories .content .support-menu-trigger,body.support .content .support-menu-trigger{display:none}}.post-type-archive-support .content .support-menu-trigger:before,.single-support .content .support-menu-trigger:before,.support-search-template .content .support-menu-trigger:before,.tax-support-categories .content .support-menu-trigger:before,body.support .content .support-menu-trigger:before{--tw-translate-y:-50%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z' fill='%23C2C9D1'/%3E%3Cpath d='M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z' fill='%23000' fill-opacity='.25'/%3E%3C/svg%3E");content:"";height:.4375rem;position:absolute;right:1.5625rem;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:.625rem}.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-bottom:60px;padding-left:0;padding-top:40px}@media (min-width:767px){.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-bottom:6.25rem}}@media (min-width:992px){.post-type-archive-support .content .page-content,.single-support .content .page-content,.support-search-template .content .page-content,.tax-support-categories .content .page-content,body.support .content .page-content{padding-left:60px;padding-top:55px}}.post-type-archive-support .content .page-content .search,.single-support .content .page-content .search,.support-search-template .content .page-content .search,.tax-support-categories .content .page-content .search,body.support .content .page-content .search{margin-top:1.875rem;position:relative}.post-type-archive-support .content .page-content .search input[type=text],.single-support .content .page-content .search input[type=text],.support-search-template .content .page-content .search input[type=text],.tax-support-categories .content .page-content .search input[type=text],body.support .content .page-content .search input[type=text]{--tw-border-opacity:1;--tw-text-opacity:1;--tw-shadow:0 2px 4px rgba(0,0,0,0.05);--tw-shadow-colored:0 2px 4px var(--tw-shadow-color);border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.125rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(60 16 83/var(--tw-text-opacity));font-size:1rem;height:55px;letter-spacing:-.01em;padding-left:1.25rem;padding-right:3.125rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .page-content .search input[type=text]::placeholder,.single-support .content .page-content .search input[type=text]::placeholder,.support-search-template .content .page-content .search input[type=text]::placeholder,.tax-support-categories .content .page-content .search input[type=text]::placeholder,body.support .content .page-content .search input[type=text]::placeholder{--tw-text-opacity:1;color:rgb(177 177 178/var(--tw-text-opacity))}.post-type-archive-support .content .page-content .search input[type=text]:focus,.single-support .content .page-content .search input[type=text]:focus,.support-search-template .content .page-content .search input[type=text]:focus,.tax-support-categories .content .page-content .search input[type=text]:focus,body.support .content .page-content .search input[type=text]:focus{--tw-border-opacity:1;--tw-shadow:0 2px 6px rgba(22,101,251,0.05);--tw-shadow-colored:0 2px 6px var(--tw-shadow-color);border-color:rgb(89 23 105/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.post-type-archive-support .content .page-content .search button,.single-support .content .page-content .search button,.support-search-template .content .page-content .search button,.tax-support-categories .content .page-content .search button,body.support .content .page-content .search button{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity));position:absolute;right:1.25rem;top:19px}.post-type-archive-support .content .page-content .popular-searches,.single-support .content .page-content .popular-searches,.support-search-template .content .page-content .popular-searches,.tax-support-categories .content .page-content .popular-searches,body.support .content .page-content .popular-searches{align-items:center;display:flex;flex-wrap:wrap;gap:.9375rem;margin-top:17px}.post-type-archive-support .content .page-content .popular-searches p,.single-support .content .page-content .popular-searches p,.support-search-template .content .page-content .popular-searches p,.tax-support-categories .content .page-content .popular-searches p,body.support .content .page-content .popular-searches p{flex:none}@media (min-width:992px){.post-type-archive-support .content .page-content .popular-searches p,.single-support .content .page-content .popular-searches p,.support-search-template .content .page-content .popular-searches p,.tax-support-categories .content .page-content .popular-searches p,body.support .content .page-content .popular-searches p{flex:1 1 auto}}.post-type-archive-support .content .page-content .popular-searches a,.single-support .content .page-content .popular-searches a,.support-search-template .content .page-content .popular-searches a,.tax-support-categories .content .page-content .popular-searches a,body.support .content .page-content .popular-searches a{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;color:rgb(99 101 105/var(--tw-text-opacity));display:flex;flex:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;justify-content:center;padding:8px 1rem;text-align:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.post-type-archive-support .content .page-content .popular-searches a:hover,.single-support .content .page-content .popular-searches a:hover,.support-search-template .content .page-content .popular-searches a:hover,.tax-support-categories .content .page-content .popular-searches a:hover,body.support .content .page-content .popular-searches a:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}@media (min-width:992px){.post-type-archive-support .content .page-content .popular-searches a,.single-support .content .page-content .popular-searches a,.support-search-template .content .page-content .popular-searches a,.tax-support-categories .content .page-content .popular-searches a,body.support .content .page-content .popular-searches a{flex:1 1 auto}}.post-type-archive-support .content .page-content .support-section,.single-support .content .page-content .support-section,.support-search-template .content .page-content .support-section,.tax-support-categories .content .page-content .support-section,body.support .content .page-content .support-section{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-top-width:1px;margin-top:2.5rem}.post-type-archive-support .content .page-content .support-section .support-section-title,.single-support .content .page-content .support-section .support-section-title,.support-search-template .content .page-content .support-section .support-section-title,.tax-support-categories .content .page-content .support-section .support-section-title,body.support .content .page-content .support-section .support-section-title{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:500;margin-bottom:1.5625rem;margin-top:2.5rem;text-transform:uppercase}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-section-title,.single-support .content .page-content .support-section .support-section-title,.support-search-template .content .page-content .support-section .support-section-title,.tax-support-categories .content .page-content .support-section .support-section-title,body.support .content .page-content .support-section .support-section-title{font-size:15px}}.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{display:grid;gap:1.875rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.post-type-archive-support .content .page-content .support-section .support-categories-loop,.single-support .content .page-content .support-section .support-categories-loop,.support-search-template .content .page-content .support-section .support-categories-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop,body.support .content .page-content .support-section .support-categories-loop{grid-template-columns:repeat(3,minmax(0,1fr))}}.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:767px){.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.post-type-archive-support .content .page-content .support-section .support-categories-loop.log-loop,.single-support .content .page-content .support-section .support-categories-loop.log-loop,.support-search-template .content .page-content .support-section .support-categories-loop.log-loop,.tax-support-categories .content .page-content .support-section .support-categories-loop.log-loop,body.support .content .page-content .support-section .support-categories-loop.log-loop{grid-template-columns:repeat(2,minmax(0,1fr))}}.post-type-archive-support .content .page-content .support-section .cat-box,.single-support .content .page-content .support-section .cat-box,.support-search-template .content .page-content .support-section .cat-box,.tax-support-categories .content .page-content .support-section .cat-box,body.support .content .page-content .support-section .cat-box{--tw-border-opacity:1;--tw-bg-opacity:0.2;--tw-shadow:0 2px 4px rgba(0,0,0,0.04);--tw-shadow-colored:0 2px 4px var(--tw-shadow-color);background-color:rgb(250 249 247/var(--tw-bg-opacity));border-color:rgb(250 249 247/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:flex;gap:1.125rem;padding:1.375rem;position:relative;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .page-content .support-section .cat-box:hover,.single-support .content .page-content .support-section .cat-box:hover,.support-search-template .content .page-content .support-section .cat-box:hover,.tax-support-categories .content .page-content .support-section .cat-box:hover,body.support .content .page-content .support-section .cat-box:hover{--tw-shadow:0 4px 8px rgba(0,0,0,0.06);--tw-shadow-colored:0 4px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.post-type-archive-support .content .page-content .support-section .cat-box.log-box,.single-support .content .page-content .support-section .cat-box.log-box,.support-search-template .content .page-content .support-section .cat-box.log-box,.tax-support-categories .content .page-content .support-section .cat-box.log-box,body.support .content .page-content .support-section .cat-box.log-box{align-items:center;padding:13px 1.25rem}.post-type-archive-support .content .page-content .support-section .cat-box.log-box .cat-icon,.single-support .content .page-content .support-section .cat-box.log-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box.log-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box.log-box .cat-icon,body.support .content .page-content .support-section .cat-box.log-box .cat-icon{height:40px;width:40px}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box,.single-support .content .page-content .support-section .cat-box.sub-box,.support-search-template .content .page-content .support-section .cat-box.sub-box,.tax-support-categories .content .page-content .support-section .cat-box.sub-box,body.support .content .page-content .support-section .cat-box.sub-box{align-items:center;gap:.9375rem;padding:12px 1.25rem}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box .cat-icon,.single-support .content .page-content .support-section .cat-box.sub-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box.sub-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box.sub-box .cat-icon,body.support .content .page-content .support-section .cat-box.sub-box .cat-icon{height:38px;width:38px}.post-type-archive-support .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.single-support .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.support-search-template .content .page-content .support-section .cat-box.sub-box .cat-icon svg,.tax-support-categories .content .page-content .support-section .cat-box.sub-box .cat-icon svg,body.support .content .page-content .support-section .cat-box.sub-box .cat-icon svg{width:22px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-link,.single-support .content .page-content .support-section .cat-box .cat-link,.support-search-template .content .page-content .support-section .cat-box .cat-link,.tax-support-categories .content .page-content .support-section .cat-box .cat-link,body.support .content .page-content .support-section .cat-box .cat-link{bottom:0;left:0;position:absolute;right:0;top:0}.post-type-archive-support .content .page-content .support-section .cat-box .cat-icon,.single-support .content .page-content .support-section .cat-box .cat-icon,.support-search-template .content .page-content .support-section .cat-box .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box .cat-icon,body.support .content .page-content .support-section .cat-box .cat-icon{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:9999px;color:rgb(89 23 105/var(--tw-text-opacity));display:flex;flex:none;height:48px;justify-content:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:48px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-icon img,.single-support .content .page-content .support-section .cat-box .cat-icon img,.support-search-template .content .page-content .support-section .cat-box .cat-icon img,.tax-support-categories .content .page-content .support-section .cat-box .cat-icon img,body.support .content .page-content .support-section .cat-box .cat-icon img{width:22px}.post-type-archive-support .content .page-content .support-section .cat-box .cat-content h5,.single-support .content .page-content .support-section .cat-box .cat-content h5,.support-search-template .content .page-content .support-section .cat-box .cat-content h5,.tax-support-categories .content .page-content .support-section .cat-box .cat-content h5,body.support .content .page-content .support-section .cat-box .cat-content h5{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:17px;font-weight:500;letter-spacing:-.01em}.post-type-archive-support .content .page-content .support-section .cat-box .cat-content p,.single-support .content .page-content .support-section .cat-box .cat-content p,.support-search-template .content .page-content .support-section .cat-box .cat-content p,.tax-support-categories .content .page-content .support-section .cat-box .cat-content p,body.support .content .page-content .support-section .cat-box .cat-content p{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:-.005em;margin-top:.4375rem}.post-type-archive-support .content .page-content .support-section .cat-box:hover .cat-icon,.single-support .content .page-content .support-section .cat-box:hover .cat-icon,.support-search-template .content .page-content .support-section .cat-box:hover .cat-icon,.tax-support-categories .content .page-content .support-section .cat-box:hover .cat-icon,body.support .content .page-content .support-section .cat-box:hover .cat-icon{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .content .page-content .support-section small,.single-support .content .page-content .support-section small,.support-search-template .content .page-content .support-section small,.tax-support-categories .content .page-content .support-section small,body.support .content .page-content .support-section small{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));display:block;font-size:.75rem;margin-top:.625rem}.post-type-archive-support .content .open-ticket h3,.single-support .content .open-ticket h3,.support-search-template .content .open-ticket h3,.tax-support-categories .content .open-ticket h3,body.support .content .open-ticket h3{font-size:1.5rem;font-weight:500;margin-bottom:.3125rem;margin-top:2.5rem}.post-type-archive-support .content .open-ticket p,.single-support .content .open-ticket p,.support-search-template .content .open-ticket p,.tax-support-categories .content .open-ticket p,body.support .content .open-ticket p{font-size:1.125rem;margin-bottom:1.25rem}.post-type-archive-support .content .open-ticket .open-ticket-btn,.single-support .content .open-ticket .open-ticket-btn,.support-search-template .content .open-ticket .open-ticket-btn,.tax-support-categories .content .open-ticket .open-ticket-btn,body.support .content .open-ticket .open-ticket-btn{--tw-border-opacity:1;--tw-text-opacity:1;align-items:center;border-color:rgb(89 23 105/var(--tw-border-opacity));border-radius:.25rem;border-width:1px;color:rgb(89 23 105/var(--tw-text-opacity));display:inline-flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:17px;font-weight:500;gap:.375rem;justify-content:center;letter-spacing:-.005em;padding:10px 1.125rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.post-type-archive-support .content .open-ticket .open-ticket-btn:hover,.single-support .content .open-ticket .open-ticket-btn:hover,.support-search-template .content .open-ticket .open-ticket-btn:hover,.tax-support-categories .content .open-ticket .open-ticket-btn:hover,body.support .content .open-ticket .open-ticket-btn:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.post-type-archive-support .content .open-ticket .open-ticket-btn.large,.single-support .content .open-ticket .open-ticket-btn.large,.support-search-template .content .open-ticket .open-ticket-btn.large,.tax-support-categories .content .open-ticket .open-ticket-btn.large,body.support .content .open-ticket .open-ticket-btn.large{min-width:240px}.post-type-archive-support .content .open-ticket .open-ticket-btn.widget,.single-support .content .open-ticket .open-ticket-btn.widget,.support-search-template .content .open-ticket .open-ticket-btn.widget,.tax-support-categories .content .open-ticket .open-ticket-btn.widget,body.support .content .open-ticket .open-ticket-btn.widget{width:100%}.post-type-archive-support .content .open-ticket .open-ticket-btn svg,.single-support .content .open-ticket .open-ticket-btn svg,.support-search-template .content .open-ticket .open-ticket-btn svg,.tax-support-categories .content .open-ticket .open-ticket-btn svg,body.support .content .open-ticket .open-ticket-btn svg{margin-bottom:-.3125rem;margin-left:.1875rem}.post-type-archive-support aside.toc,.support-search-template aside.toc,.tax-support-categories aside.toc,body.support aside.toc{display:none}.support-search-template .page-content,.tax-support-categories .page-content{width:100%}.support-search-template .search-results-count,.tax-support-categories .search-results-count{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;margin-bottom:1.25rem;margin-top:3.125rem;text-transform:uppercase}.support-search-template .search-results,.tax-support-categories .search-results{display:flex;flex-direction:column;gap:1.75rem;margin-bottom:1.875rem}.tax-support-categories .page-content{width:100%}.tax-support-categories .page-content h1{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.01em;line-height:1.5;margin:0}.tax-support-categories .page-content p{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-size:1.125rem;line-height:1.5;margin-top:.375rem}.tax-support-categories .page-content .tax-name{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;line-height:1.5;text-transform:uppercase}.tax-support-categories .support-post-index{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-top-width:1px;margin-bottom:1.875rem;margin-top:1.875rem;padding-bottom:1.875rem}.tax-support-categories .support-post-index a{display:block}.tax-support-categories .support-post-index>li{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(250 249 247/var(--tw-border-opacity));padding-bottom:1.875rem;padding-top:1.875rem}.tax-support-categories .support-post-index>li>a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;font-weight:500;margin-bottom:.625rem;text-transform:uppercase}.tax-support-categories .support-post-index>li>a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.tax-support-categories .support-post-index>li>ul{margin-bottom:.625rem}.tax-support-categories .support-post-index>li>ul li{margin-bottom:0}.tax-support-categories .support-post-index>li>ul li a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));display:flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;font-weight:500;padding-bottom:.375rem;padding-top:.375rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tax-support-categories .support-post-index>li>ul li a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.tax-support-categories .support-post-index>li>ul li:last-child>a{padding-bottom:0}.tax-support-categories .support-post-index>li>ul li:last-child>ul{margin:0}.tax-support-categories .support-post-index>li>ul ul{padding-left:1.25rem}.post-type-archive-support .page-content{width:100%}</style></head> <body class="support-template-default single single-support postid-17687 single-format-standard installing-configuring-invicti-enterprise-scan-teamcity-plugin sticky-header-enabled app-data index-data singular-data single-data single-support-data single-support-installing-configuring-invicti-enterprise-scan-teamcity-plugin-data"> <!-- Google Tag Manager (noscript) snippet added by Site Kit --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M7R7MXJ" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) snippet added by Site Kit --> <div class="sticky-header-observer"></div> <div class="invicti-bar" hidden> <div class="transition-message"> <a href="https://www.invicti.com/blog/news/netsparker-is-now-invicti-signaling-a-new-era-for-modern-appsec/" title="Netsparker is now Invicti">Netsparker is now Invicti</a> <button class="bar-close" title="Hello bar close button"> <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.5858L1.41422 0L0 1.41422L13.5858 15L0.150757 28.435L1.56497 29.8492L15 16.4142L28.2843 29.6985L29.6985 28.2843L16.4142 15L29.8492 1.56497L28.435 0.150757L15 13.5858Z" fill="currentColor"></path> </svg> </button> </div> </div> <header class="site-header"> <div class="container"> <a href="https://www.invicti.com/get-demo/" class="btn-get-demo">Get a demo</a> <div class="navigation-header"> <a href="https://www.invicti.com/" rel="noreferrer"> <img class="logo-icon logo top-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo sticky-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo mobile-logo" src="https://cdn.invicti.com/branding/invicti-logo-bone.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <span class="top-slogan">AppSec with Zero Noise</span> <img class="logo-icon mobile-logo-icon" src="https://cdn.invicti.com/branding/invicti-logo-icon.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="32" height="32" /> </a> <a href="https://www.invicti.com/get-demo/" class="sticky-header-btn">Get a demo</a> <svg class="navbar-toggle navbar-toggle-open" xmlns="http://www.w3.org/2000/svg" width="22" height="13" fill="none"><path fill="black" fill-rule="evenodd" d="M22 0H0v3h22V0Zm0 10H0v3h22v-3Z" clip-rule="evenodd"/></svg> <svg class="navbar-toggle navbar-toggle-close" xmlns="http://www.w3.org/2000/svg" width="17" height="17" fill="none"><path fill="black" fill-rule="evenodd" d="M9 6.718 2.282 0 .162 2.121 6.878 8.84.16 15.556l2.121 2.122L9 10.96l6.717 6.718 2.122-2.122L11.12 8.84 17.84 2.12 15.718 0 9 6.718Z" clip-rule="evenodd"/></svg> </div> <nav id="site-navigation" class="primary-menu-wrapper navigation-menu" aria-label="Main Navigation"> <a href="https://www.invicti.com/get-demo/" class="btn">Get a demo</a> <ul id="primary-menu" class="primary-menu"><li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-14"><a href="#">Product</a> <ul class="sub-menu level--1"> <li id="menu-item-55161" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55161"><a href="https://www.invicti.com/product/">Web Application Security</a></li> <li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a href="https://www.invicti.com/product/api-security/">API Security</a></li> <li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-55889" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55889"><a href="https://www.invicti.com/product/dast/">DAST</a></li> <li id="menu-item-55937" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55937"><a href="https://www.invicti.com/product/sast/">SAST</a></li> </ul> </li> <li id="menu-item-18" class="solution menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-18"><a href="#">Why Us?</a> <ul class="sub-menu level--1"> <li id="menu-item-394" class="has-3rd-level menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-394"><a href="#">Solutions</a> <ul class="sub-menu level--2"> <li id="menu-item-48" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-48"><a href="#">Industries</a> <ul class="sub-menu level--3"> <li id="menu-item-19" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-19"><a href="https://www.invicti.com/solutions/it-and-telecom/">IT & Telecom</a></li> <li id="menu-item-20" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-20"><a href="https://www.invicti.com/solutions/government/">Government</a></li> <li id="menu-item-21" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-21"><a href="https://www.invicti.com/solutions/financial-services/">Financial Services</a></li> <li id="menu-item-22" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-22"><a href="https://www.invicti.com/solutions/higher-education/">Education</a></li> <li id="menu-item-23" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-23"><a href="https://www.invicti.com/solutions/healthcare/">Healthcare</a></li> </ul> </li> <li id="menu-item-49" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-49"><a href="#">Roles</a> <ul class="sub-menu level--3"> <li id="menu-item-24" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-24"><a href="https://www.invicti.com/solutions/cto-ciso/">CTO & CISO</a></li> <li id="menu-item-25" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-25"><a href="https://www.invicti.com/solutions/engineering-manager/">Engineering Manager</a></li> <li id="menu-item-26" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-26"><a href="https://www.invicti.com/solutions/security-engineer/">Security Engineer</a></li> <li id="menu-item-27" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-27"><a href="https://www.invicti.com/solutions/devsecops/">DevSecOps</a></li> </ul> </li> </ul> </li> <li id="menu-item-402" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-402"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparison</a></li> <li id="menu-item-401" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-401"><a href="https://www.invicti.com/case-studies/">Case studies</a></li> <li id="menu-item-400" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-400"><a href="https://www.invicti.com/customers/">Customers</a></li> <li id="menu-item-399" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-399"><a href="https://www.invicti.com/testimonials/">Testimonials</a></li> </ul> </li> <li id="menu-item-28" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28"><a href="https://www.invicti.com/pricing/">Pricing</a></li> <li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-29"><a href="#">About Us</a> <ul class="sub-menu level--1"> <li id="menu-item-395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-395"><a href="https://www.invicti.com/about/">Our Story</a></li> <li id="menu-item-398" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-398"><a href="https://www.invicti.com/blog/news/">In the news</a></li> <li id="menu-item-397" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-397"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-396" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-396"><a href="https://www.invicti.com/contact/">Contact us</a></li> </ul> </li> <li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-30"><a href="#">Resources</a> <ul class="sub-menu level--1"> <li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31"><a href="https://www.invicti.com/blog/">Blog</a></li> <li id="menu-item-33" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33"><a href="https://www.invicti.com/white-papers/">White Papers</a></li> <li id="menu-item-10430" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10430"><a href="https://www.invicti.com/webinars/">Webinars</a></li> <li id="menu-item-56654" class="new-promotion menu-item menu-item-type-post_type menu-item-object-page menu-item-56654"><a href="https://www.invicti.com/podcasts/">Podcasts</a></li> <li id="menu-item-27789" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27789"><a href="https://www.invicti.com/learn/">Invicti Learn</a></li> <li id="menu-item-34" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34"><a href="https://www.invicti.com/resources/">Resource Library</a></li> <li id="menu-item-37" class="partners-custom menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-37"><a href="#">Partners</a> <ul class="sub-menu level--2"> <li id="menu-item-27215" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27215"><a href="https://www.invicti.com/partners/">Channel</a></li> <li id="menu-item-27218" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27218"><a href="https://www.invicti.com/clp/managed-security-service-provider/">MSSP</a></li> </ul> </li> <li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a href="https://www.invicti.com/support/">Support</a></li> </ul> </li> </ul> </nav><!-- #site-navigation--> </div> </header><!-- .site-header--> <div class="top"> <div class="container"> <div class="header"> <p id="breadcrumbs"><span><span><a href="https://www.invicti.com/">Home</a></span> / <span><a href="https://www.invicti.com/support/">Support</a></span> / <span><a href="https://www.invicti.com/support/category/integrations/">Integrations</a></span> / <span class="breadcrumb_last" aria-current="page">Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin</span></span></p> <div class="support-title">Support</div> </div> <div class="search"> <form role="search" method="get" id="searchform" action="https://www.invicti.com/support/"> <label class="screen-reader-text" for="s">Search in support</label> <input type="text" value="" name="s" id="s" placeholder="Search in support" /> <button type="submit"> <svg width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.625 16.625L13.0736 13.0673L16.625 16.625ZM15.0416 8.31254C15.0416 10.0972 14.3327 11.8088 13.0707 13.0708C11.8088 14.3327 10.0972 15.0417 8.31248 15.0417C6.52779 15.0417 4.8162 14.3327 3.55424 13.0708C2.29228 11.8088 1.58331 10.0972 1.58331 8.31254C1.58331 6.52785 2.29228 4.81626 3.55424 3.5543C4.8162 2.29234 6.52779 1.58337 8.31248 1.58337C10.0972 1.58337 11.8088 2.29234 13.0707 3.5543C14.3327 4.81626 15.0416 6.52785 15.0416 8.31254V8.31254Z" stroke="currentColor" stroke-width="2.08333" stroke-linecap="round" stroke-linejoin="round" /> </svg> </button> </form> </div> </div> </div> <div class="content"> <div class="container flex flex-col lg:flex-row min-h-screen"> <aside class="sidebar"> <div class="support-menu-trigger"> <span>Support Categories</span> </div> <div class="sidebar-menu"> <ul class="menu support-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Getting Started</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/what-is-invicti/">What is Invicti?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-editions/">Comparing Editions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-licensing/">Invicti Licensing</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-does-invicti-licensing-work/">Licensing FAQs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-glossary/">Glossary</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/logging-in-invicti/">Logging in to Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/navigation-in-invicti/">Navigation in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-quick-start-guide/">Quick start guide</a> </li> <li class="article"> <a href="https://www.invicti.com/support/using-filters/">Using filters in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-dashboards-invicti/">Introduction to Invicti Enterprise dashboards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/the-global-dashboard/">Global Dashboard (Invicti Enterprise)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/downloading-invicti-standard-from-invicti-enterprise/">Downloading Invicti Standard from Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise On-Premises Installation</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/step-1-components-architecture-prerequisites-download/">Step 1: Components and architecture, prerequisites, and download</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-2-installing-configuring-web-app-av/">Step 2: Installing and configuring the web app server and AV service</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-3-installing-configuring-agent/">Step 3: Installing and configuring the Agent</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-4-installing-configuring-auth-verif/">Step 4: Installing and configuring the Authentication Verifier agent</a> </li> <li class="article"> <a href="https://www.invicti.com/support/step-5-installing-iast-bridge/">Step 5: Installing the IAST bridge</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-a-proxy-for-the-invicti-enterprise-web-application/">Configuring a proxy for the Invicti Enterprise Web Application</a> </li> <li class="article"> <a href="https://www.invicti.com/support/security-hardening-invicti-onpremises/">Security Hardening for Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-enterprise-onpremises/">Updating Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-enterprise-for-amazon-web-services/">Configuring Invicti Enterprise for Amazon Web Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-enterprise-for-linux-on-amazon-web-services/">Configuring Invicti Enterprise for Linux on Amazon Web Services (Ubuntu)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-migration-invicti-enterprise/">Migrating data in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-enterprise-silent-mode/">Installing Invicti Enterprise On-Premises in Silent Mode</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-hawk-internally/">Installing Invicti Hawk internally</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Standard</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-standard/">Installing Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-to-invicti-standard-dashboards/">Introduction to Invicti Standard Dashboards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/navigation-in-invicti-standard/">Navigation in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-standard-scan-summary-dashboard/">Scan Summary Dashboard (Invicti Standard)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-hawk-internally/">Installing Invicti Hawk internally</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-from-antivirus/">Excluding Invicti files from antivirus scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-standard/">Updating Invicti Standard</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Web Asset Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/application-and-service-discovery/">The Discovery Service - Introduction</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-discovery-service/">Configuring the Discovery Service</a> </li> <li class="article"> <a href="https://www.invicti.com/support/creating-websites-discovery/">Managing the Discovered Websites List</a> </li> <li class="article"> <a href="https://www.invicti.com/support/discover-amazon-web-services/">Configuring AWS Connections</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Predictive Risk Scoring</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/introduction-to-predictive-risk-scoring/">Introduction to Predictive Risk Scoring</a> </li> <li class="article"> <a href="https://www.invicti.com/support/utilizing-predictive-risk-scoring/">Utilizing Predictive Risk Scoring</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Targets</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Managing Targets</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/what-is-a-target/">What is a Target?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/websites-and-apis-dashboards/">Targets Dashboard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/adding-website-invicti-enterprise/">Adding a Target</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-websites-invicti-enterprise/">Importing Targets</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-websites-invicti-enterprise/">Managing Targets</a> </li> <li class="article"> <a href="https://www.invicti.com/support/verifying-website-ownership-invicti-enterprise/">Verifying Target Ownership</a> </li> <li class="article"> <a href="https://www.invicti.com/support/what-are-target-groups/">What are Target Groups?</a> </li> <li class="article"> <a href="https://www.invicti.com/support/website-groups-invicti-enterprise/">Creating and Managing Target Groups</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-filter-target-groups/">Viewing and Filtering Target Groups</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API Security</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/install-api-security-on-premises/">Installing Invicti API Security On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/api-types-formats/">API types and specification formats</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-invicti-api-security-on-premises/">Updating Invicti API Security On-Premises</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API Discovery</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/api-discovery-overview/">API Discovery Overview</a> </li> <li class="article"> <a href="https://www.invicti.com/support/introduction-api-management-integrations/">Introduction to API Discovery Sources</a> </li> <li class="article"> <a href="https://www.invicti.com/support/zero-config-api-discovery/">Getting Started with Zero Configuration API Discovery</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-invicti-network-traffic-analyzer/">Installing the Invicti Network Traffic Analyzer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/network-api-discovery-tap-plugin-faqs/">Network Traffic Analyzer: Tap Plugin FAQs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-amazon-api-gateway/">Integrating with Amazon API Gateway</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-apigee-api-hub/">Integrating with Apigee API hub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-azure-api-management/">Integrating with Azure API Management</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-mulesoft-anypoint-exchange/">Integrating MuleSoft Anypoint Exchange with Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-mulesoft-anypoint-exchange-on-premises/">Integrating MuleSoft Anypoint Exchange with Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-your-api-inventory/">Managing your API Inventory</a> </li> <li class="article"> <a href="https://www.invicti.com/support/linking-unlinking-api-target/">Linking and unlinking discovered APIs to targets</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scanning APIs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/overview-scanning-api/">Overview of Scanning APIs</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-grpc-api-web-services-with-invicti-enterprise/">Scanning gRPC API Web Services with Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-grpc-api-web-services-with-invicti-standard/">Scanning gRPC API Web Services with Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-soap-web-services/">Scanning SOAP API Web Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-restful-api-web-service/">Scanning a RESTful API Web Service</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-graphql-api/">Scanning a GraphQL API for vulnerabilities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-links-api-definitions/">Importing links and API definitions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/imported-links/">Importing links from supported tools</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Scanning</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/web-application-security-scanning-flow/">Web Application Security Scanning Flow</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-production-environment/">Scanning Production Environments</a> </li> <li class="article"> <a href="https://www.invicti.com/support/stages-scanning/">Stages of Scanning</a> </li> <li class="article"> <a href="https://www.invicti.com/support/overview-scanning-invicti/">Overview of Scanning</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Launching Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/creating-new-scan-invicti/">Creating a New Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduling-scans/">Scheduling Scans in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduled-scans-best-practices/">Best practices for creating effective scan schedules in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scheduling-scans-in-invicti-standard/">Scheduling Scans in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/setting-up-incremental-scan/">Setting up incremental scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/pci-dss-scanning-invicti/">PCI DSS Scanning</a> </li> <li class="article"> <a href="https://www.invicti.com/support/retrieve-mend-sast-scan-results/">Retrieving Mend SAST scan results</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Results</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/recent-scans/">Recent Scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/reviewing-scan-results-imported-vulnerabilities/">Reviewing Scan Results and Imported Vulnerabilities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/view-mend-sast-scan-results/">Viewing Mend SAST scan results in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-detected-technologies/">Viewing detected technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/checking-the-vdb-version-in-invicti-enterprise-on-premises/">Checking the VDB version in Invicti Enterprise On-Premises</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Scans</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-scans/">Suspending, pausing, and resuming scans</a> </li> <li class="article"> <a href="https://www.invicti.com/support/manual-crawling-proxy-mode-invicti/">Manual Crawling in Proxy Mode</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-parts-website-from-scan/">Excluding Parts of a Website From a Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exclude-include-links-sitemap-after-crawling/">Excluding and Including Links from the Sitemap After Crawling</a> </li> <li class="article"> <a href="https://www.invicti.com/support/additional-websites-invicti/">Configuring Additional Websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-applications-ip-range/">Scanning Applications in an IP Range</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-url-rewrite-rules-invicti/">Configuring URL Rewrite Rules</a> </li> <li class="article"> <a href="https://www.invicti.com/support/prerequest-scripts/">Pre-Request Scripts</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-groups-in-invicti-enterprise/">Scan Groups in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/business-logic-recorder-invicti/">Using the business logic recorder</a> </li> <li class="article"> <a href="https://www.invicti.com/support/performance-analysis-in-invicti/">Performance Analysis in Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/importing-and-exporting-scan-sessions/">Importing and Exporting Scan Sessions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-time-window/">Scan Time Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-coverage-gaps/">Checking scan coverage and addressing gaps</a> </li> <li class="article"> <a href="https://www.invicti.com/support/factors-leading-to-longer-scan-times/">Factors leading to longer scan times</a> </li> <li class="article"> <a href="https://www.invicti.com/support/reducing-scan-times/">Reducing scan times</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-search-in-invicti-standard/">Scan Search in Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Profiles</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-profiles-invicti/">Overview of Scan Profiles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-scan-profiles-invicti-enterprise/">Configuring Scan Profiles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-scan-profiles-invicti-standard/">Configuring Scan Profiles in Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Security Checks</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/setting-security-check-options/">Security Checks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/waf-identifier/">WAF Identifier</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-graphql-library-detection/">GraphQL Library Detection</a> </li> <li class="article"> <a href="https://www.invicti.com/support/identifying-mongodb-injection-vulnerabilities/">Identifying MongoDB injection vulnerabilities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/breach-attack-detection/">BREACH Attack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/forced-browsing/">Forced Browsing</a> </li> <li class="article"> <a href="https://www.invicti.com/support/login-page-identifier/">Login Page Identifier</a> </li> <li class="article"> <a href="https://www.invicti.com/support/malware-analyzer/">Malware Analyzer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-security-checks-invicti-enterprise/">Custom Scripts for Security Checks in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-security-checks/">Custom Scripts for Security Checks in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-security-checks-scripting/">Custom Security Checks via Scripting</a> </li> <li class="article"> <a href="https://www.invicti.com/support/identifying-sensitive-data/">Identifying sensitive data</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-invicti-reports-vulnerabilities/">How Invicti reports vulnerabilities</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">HTTP Request Builder</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/http-request-builder-invicti/">HTTP Request Builder</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Command Line Interface</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/command-line-interface-invicti-standard/">Command Line Interface</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Authentication</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/authentication/">Overview of Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-verifying-form-authentication-invicti-enterprise/">Configuring and Verifying Form Authentication in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-form-authentication-with-otp/">Configuring Form Authentication with OTP</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-scripts-form-authentication/">Custom Scripts for Form Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-profiles/">Authentication Profiles</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-basic-digest-ntlm-kerberos-negotiate-authentication/">Configuring Basic, Digest, NTLM/Kerberos and Negotiate Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-client-certificate-authentication/">Configuring Client Certificate Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-oauth-authentication/">Configuring OAuth2 Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-header-authentication/">Configuring Header Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logout-problems/">Logout Problems</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logout-detection-invicti/">Logout Detection</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-form-authentication-invicti-standard/">Configuring Form Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/verifying-form-authentication-configuration-invicti-standard/">Verifying the Form Authentication Configuration in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-manual-authentication-invicti-standard/">Manual Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-smart-card-authentication-invicti-standard/">Configuring Smart Card Authentication in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hmac-authentication-scripting/">HMAC Authentication via Scripting in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/interactive-logins-invicti-standard/">Interactive Logins in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/form-authentication-api/">Form Authentication API</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Scan Scopes</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-scope/">Scan Scope</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-file-types-scan/">Excluding file types from a scan</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Shark (IAST and SCA)</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Deploy Invicti Shark</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-invicti-iast-bridge/">Configuring Invicti IAST Bridge</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-onprem/">Deploying Shark (IAST) in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast/">Deploying Shark (IAST) in Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-shark-enriches-vulnerability-reports/">How Invicti Shark enriches vulnerability reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/software-composition-analysis-invicti/">Analyzing software composition with Invicti Shark (IAST)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for PHP</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-php/">Deploying Invicti Shark for PHP</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-php-docker/">Deploying Invicti Shark for PHP - Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-php-aws-elastic-beanstalk/">Deploying Invicti Shark for PHP - AWS Elastic Beanstalk</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for Java</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java/">Installing Invicti Shark for Java websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-windows/">Deploying Invicti Shark for Java - Tomcat (Windows/Linux/Docker)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-docker-springboot/">Deploying Invicti Shark for Java - Docker (Spring Boot)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-jboss-7-4-standalone-war-file/">Deploying Invicti Shark for JAVA - Windows/Linux (JBOSS 7.4 Standalone + WAR File)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-jetty-war-file/">Deploying Invicti Shark for Java - Windows/Linux (Jetty 10.0.10 + WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-iast-for-java-windows-wildfly-26-1-1-final-standalone-war-file/">Deploying Invicti Shark for Java - Windows/Linux (Wildfly 26.1.1 Final Standalone + WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-java-linux-websphere/">Deploying Invicti Shark for Java - Linux (WebSphere Liberty 19.0.0.9+ with WAR file)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-shark-scan-aws-java/">Scanning an application in AWS Elastic Beanstalk (Tomcat + WAR File)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for .NET</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-dot-net-supported-scenarios/">Deploying Invicti Shark for .NET - Supported Scenarios</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-net/">Deploying Shark for .NET in Invicti Enterprise On-Demand</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-net-onprem/">Deploying Shark for .NET in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-agent-for-net-core/">Deploying Invicti Shark agent for .NET Core</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-for-net-aws-elastic-beanstalk/">Deploying Invicti Shark for .NET - AWS Elastic Beanstalk</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Shark for Nodejs</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs/">Deploying Invicti Shark for Node.js</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs-docker/">Deploying Invicti Shark (IAST) for Node.js - Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/deploying-invicti-shark-nodejs-aws/">Deploying Invicti Shark agent for Node.js - AWS Elastic Beanstalk</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Reporting</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/why-do-we-need-reports-invicti/">Overview of Reports</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Types of Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/built-in-reports-invicti/">Built-In Reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/trend-matrix-report/">Trend Matrix Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/report-templates-invicti/">Report Templates</a> </li> <li class="article"> <a href="https://www.invicti.com/support/detailed-scan-report/">Detailed Scan Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/technical-report/">Technical Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/executive-summary-report/">Executive Summary Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hipaa-compliance-report/">HIPAA Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/iso-27001-compliance-report/">ISO 27001 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/disa-stig-scan-report/">DISA STIG Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/nist-sp-scan-report/">NIST SP 800-53 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2021-report/">OWASP Top Ten 2021 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-api-top-ten-2019-report/">OWASP API Top Ten 2019 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2017-report/">OWASP Top Ten 2017 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-top-ten-2013-report/">OWASP Top Ten 2013 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/owasp-asvs-compliance-report/">ASVS 4.0 Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/pci-compliance-report/">PCI DSS Compliance Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sans-top-25-report/">SANS Top 25 Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/wasc-threat-classification-report/">WASC Threat Classification Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/knowledge-base-report/">Knowledge Base Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/modsecurity-waf-rules-report/">ModSecurity WAF Rules Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/f5-big-ip-asm-waf-rules-report/">F5 BIG-IP ASM WAF Rules Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/lists-invicti/">Lists</a> </li> <li class="article"> <a href="https://www.invicti.com/support/comparison-report/">Comparison Report (Invicti Standard)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-reports-templates-invicti/">Custom Reports (Invicti Standard)</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Web Application Firewall Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/fortiweb-waf-rules/">Generating FortiWeb WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/imperva-securesphere-waf-rules/">Generating Imperva SecureSphere WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cloudflare-waf-rules/">Generating Cloudflare WAF Rules from Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/amazon-web-services-waf-rules/">Generating Amazon Web Services WAF Rules From Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/f5-big-ip-asm-waf-rules/">Generating F5 BIG-IP Application Security Manager WAF Rules From Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-application-firewall/">Web Application Firewall Support in Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/modsecurity-waf-rules/">Generating ModSecurity WAF Rules from Invicti Standard</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working with Reports</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/chart-reports-invicti-enterprise/">Chart Reports</a> </li> <li class="article"> <a href="https://www.invicti.com/support/editing-vulnerabilities-and-assigning-security-standards-in-invicti-enterprise/">Editing vulnerabilities and adding security standards in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/editing-vulnerabilities-and-assigning-security-standards-in-invicti-standard/">Editing vulnerabilities and adding security standards in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/inconsistent-web-security-scan-results-invicti/">Troubleshooting Inconsistent Web Security Scan Results</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Knowledge Base Nodes</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/knowledge-base-nodes/">Knowledge Base Nodes</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-shark-node/">Invicti Shark Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/software-composition-analysis-node/">Software Composition Analysis (SCA) Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/crawling-performance-node/">Crawling Performance Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-services-soap-node/">Web Services (SOAP) Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/web-pages-with-inputs-node/">Web Pages With Inputs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/url-rewrite-node/">URL Rewrite Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/ssl-node/">SSL Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/site-profile-node/">Site Profile Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/slowest-pages-node/">Slowest Pages Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-performance-node/">Scan Performance Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/rest-apis-node/">REST APIs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/proofs-node/">Proofs Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/out-of-scope-links-node/">Out of Scope Links Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/not-founds-node/">Not Founds Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/mime-types-nodes/">MIME Types Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/javascript-files-node/">JavaScript Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/interesting-headers-node/">Interesting Headers Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/incremental-scan-node/">Incremental Scan Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/google-web-toolkit-node/">Google Web Toolkit Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/form-validation-errors-node/">Form Validation Errors Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/file-extensions-node/">File Extensions Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-scripts-node/">External Scripts Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-frames-node/">External Frames Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/external-css-files-node/">External CSS Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/embedded-objects-node/">Embedded Objects Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/css-files-node/">CSS Files Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/comments-node/">Comments Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/attack-possibilities-node/">Attack Possibilities Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/ajax-xml-http-requests-node/">AJAX/XML HTTP Requests Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/email-addresses-node/">Email Addresses Node</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cookies-node/">Cookies Node</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Issues</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Working With Issues</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-issues-invicti/">Managing Issues</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-issues-invicti-enterprise/">Viewing issues in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-issues-invicti-standard/">Viewing Issues in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/generating-exploits-vulnerabilities-invicti-standard/">Generating Exploits for Vulnerabilities in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/vulnerability-severity-levels-invicti/">Vulnerability Severity Levels</a> </li> <li class="article"> <a href="https://www.invicti.com/support/exporting-issues-invicti/">Sending vulnerabilities manually to an issue tracking system</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-issue-another-team-member/">Assigning an Issue to Another Team Member</a> </li> <li class="article"> <a href="https://www.invicti.com/support/disabling-assigning-issues-code-committer/">Disabling the Assigning of Issues in Invicti to the Code Committer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-http-request-response-issue/">Viewing the HTTP Request and Response of an Issue</a> </li> <li class="article"> <a href="https://www.invicti.com/support/updating-status-issue-invicti-enterprise/">Updating the status of an issue in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/tagging-invicti-enterprise/">Tagging in Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Explanations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/invicti-fips/">How Invicti approaches FIPS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/error-messages-in-scan-failures/">Error messages in scan failures</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Technologies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Explanations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/technologies-invicti/">Technologies dashboard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-recent-technologies-invicti/">Viewing recent technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/technology-notifications/">Technology notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/how-invicti-identifies-outofdate/">How Invicti identifies out-of-date technologies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/fingerprinting-libraries/">Fingerprinting libraries</a> </li> <li class="article"> <a href="https://www.invicti.com/support/detecting-log4j-vulnerability-invicti/">Detecting the Log4j vulnerability with Invicti</a> </li> <li class="article"> <a href="https://www.invicti.com/support/log4j-faq/">Log4J FAQ</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/scan-policies-invicti/">Overview of Scan Policies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy-editor-invicti/">Scan Policy Editor</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-scan-policies-invicti/">Configuring Scan Policies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-single-page-applications/">Scanning Single Page Applications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scanning-parameter-based-navigation-websites/">Scanning Parameter-Based Navigation Websites</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy-optimizer-invicti/">Scan Policy Optimizer</a> </li> <li class="article"> <a href="https://www.invicti.com/support/excluding-parameters-from-scan/">Excluding Parameters From a Scan</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-predetermined-web-form-values/">Configuring Predefined Web Form Values</a> </li> <li class="article"> <a href="https://www.invicti.com/support/hawk-vulnerabilities/">How Invicti Hawk finds vulnerabilities</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Report Policies</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/report-policies-invicti/">Overview of Report Policies</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-report-policies-invicti/">Custom Report Policies</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Notifications</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Notifications in Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/notifications-invicti-enterprise/">Introduction to Notifications</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Configuring Notifications in Invicti Enterprise</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-user-profile-notifications/">Configuring the User Profile for Notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/creating-notifications/">Creating notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-notifications/">Managing Notifications</a> </li> <li class="article"> <a href="https://www.invicti.com/support/report-vulnerabilities-issue-tracking-system/">Configuring Notifications to Report Vulnerabilities to an Issue Tracking System</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-notification-priorities/">Managing Notification Priorities</a> </li> <li class="article"> <a href="https://www.invicti.com/support/previewing-notifications/">Previewing Notifications</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children active"> <div class="menu-item-block"> <a href="#" onclick="return false;">Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-vulnerability-management-system/">Integrating Invicti into Your Vulnerability Management System</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-sdlc/">Integrating Invicti Enterprise into Your Existing SDLC</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Configuring Integrations</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-user-mappings/">Configuring user mappings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/automating-scanning-with-bitbucket-pipelines/">Automating scanning with Bitbucket Pipelines</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-integrations-invicti-enterprise/">Managing Integrations</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-gocd-automation-server/">Integrating Invicti Standard with GoCD Automation Server</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Issue Tracking Systems</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-issue-tracking-system/">Integrating Invicti Enterprise with an issue tracking system</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-boards/">Integrating Invicti Enterprise with Azure Boards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bitbucket/">Integrating Invicti Enterprise with Bitbucket</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bugzilla/">Integrating Invicti Enterprise with Bugzilla</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-defectdojo/">Integrating Invicti Enterprise with DefectDojo</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-fogbugz/">Integrating Invicti Enterprise with FogBugz</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-freshservice/">Integrating Invicti Enterprise with Freshservice</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-github/">Integrating Invicti Enterprise with GitHub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-gitlab-issue-tracking/">Integrating Invicti Enterprise with GitLab Issues (Issue Tracking)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-jazzteam/">Integrating Invicti Enterprise with Jazz Team Server</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-jira/">Integrating Invicti Enterprise with Jira</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-kafka/">Integrating Invicti Enterprise with Kafka</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-kenna/">Integrating Invicti Enterprise with Kenna</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-pagerduty/">Integrating Invicti Enterprise with PagerDuty</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-pivotal-tracker/">Integrating Invicti Enterprise with Pivotal Tracker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-redmine/">Integrating Invicti Enterprise with Redmine</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow/">Integrating Invicti Enterprise with ServiceNow Incident Management</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-shortcut/">Integrating Invicti Enterprise with Shortcut</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-enterprise-addon-splunk/">Integrating Invicti Enterprise with Splunk</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-tfs/">Integrating Invicti Enterprise with TFS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-netsparking-enterprise-unfuddle/">Integrating Invicti Enterprise with Unfuddle</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-youtrack/">Integrating Invicti Enterprise with YouTrack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-with-invicti-enterprise/">Integrating Invicti Standard with Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Project Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-asana/">Integrating Invicti Enterprise with Asana</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-trello/">Integrating Invicti Enterprise with Trello</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-asana/">Integrating Invicti Standard with Asana</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-trello/">Integrating Invicti Standard with Trello</a> </li> </ul> </li> <li class="menu-item menu-item-has-children active"> <div class="menu-item-block"> <a href="#" onclick="return false;">Continuous Integration Systems</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/viewing-continuous-integrations-information-status-window/">Viewing Continuous Integration Information in the Status Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/viewing-continuous-integration-information-issues-window/">Viewing Continuous Integration Information in the Issues Window</a> </li> <li class="article"> <a href="https://www.invicti.com/support/continuous-integration-details-scan-report/">Accessing Continuous Integration Details in the Scan Report</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-pipelines/">Integrating Invicti Enterprise with Azure Pipelines</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-bamboo-plugin/">Integrating Invicti Enterprise with the Bamboo Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-circleci/">Integrating Invicti Enterprise with CircleCI</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-gitlab-ci-cd/">Integrating Invicti Enterprise with GitLab CI/CD</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-urbancode-deploy/">Integrating Invicti Enterprise with UrbanCode Deploy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-github-actions/">Integrating Invicti Enterprise with GitHub Actions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-scan-jenkins-plugin/">Integrating Invicti Enterprise with Jenkins</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jenkins/">Integrating Invicti Standard with Jenkins</a> </li> <li class="article current-menu-item active"> <a href="https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/">Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-teamcity-plugin/">Integrating Invicti Enterprise with the TeamCity Plugin</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-travis-ci/">Integrating Invicti Enterprise with Travis CI</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Communication</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-mattermost/">Integrating Invicti Enterprise with Mattermost</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-microsoft-teams/">Integrating Invicti Enterprise with Microsoft Teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-slack/">Integrating Invicti Enterprise with Slack</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Secret and Encryption Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-azure-key-vault/">Integrating Invicti Enterprise with Azure Key Vault</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-cyberark-vault/">Integrating Invicti Enterprise with CyberArk Vault</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-hashicorp-vault/">Integrating Invicti Enterprise with HashiCorp Vault</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">API</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-webhook/">Integrating Invicti Enterprise with Webhooks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-zapier/">Integrating Invicti Enterprise with Zapier</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Single Sign-On Providers</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/single-sign-on-saml-authentication/">SAML Authentication Services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-azureactivedirectory-single-sign-on-integration-with-saml/">Configuring Microsoft Entra ID (Azure Active Directory) Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-google-single-sign-on-integration-with-saml/">Configuring Google Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-microsoftactivedirectory-single-sign-on-integration-with-saml/">Configuring Microsoft Active Directory Federation Services Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-okta-sso-integration-with-saml/">Configuring Okta Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-pingfederate-single-sign-on-integration-with-saml/">Configuring PingFederate Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-pingidentity-single-sign-on-integration-with-saml/">Configuring Ping Identity Single Sign-On Integration with SAML</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sso-configuring-saml-based-single-sign-on-integration/">Configuring SAML-Based Single Sign-On Integration</a> </li> <li class="article"> <a href="https://www.invicti.com/support/troubleshooting-sso-issues/">Troubleshooting SSO Issues</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">System for Cross-domain Identity Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-azure-active-directory-integration-with-scim/">Configuring Microsoft Entra ID (Azure Active Directory) Integration with SCIM</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-okta-integration-with-scim/">Configuring Okta Integration with SCIM</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Vulnerability Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow-vulnerability-response-plugin/">Integrating Invicti Enterprise with ServiceNow Vulnerability Response (Plugin)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-enterprise-servicenow-vulnerability-response/">Integrating Invicti Enterprise with ServiceNow Vulnerability Response using an integration script</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrate-servicenow-application-vulnerability-response/">Integrating Invicti Enterprise with ServiceNow Application Vulnerability Response</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Connections</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/integrate-mend-sast/">Integrating Invicti Enterprise with Mend SAST</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Send To Actions</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-auto-send-to-actions-invicti-standard/">Configuring Auto Send To Actions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-send-to-actions-invicti/">Configuring the User Interface for Custom Send To Actions in Invicti Standard</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-azure-boards/">Integrating Invicti Standard with Azure Boards</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-bitbucket/">Integrating Invicti Standard with Bitbucket</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-bugzilla/">Integrating Invicti Standard with Bugzilla</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-email/">Integrating Invicti Standard with Email</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-fogbugz/">Integrating Invicti Standard with FogBugz</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-freshservice/">Integrating Invicti Standard with Freshservice</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-github/">Integrating Invicti Standard with GitHub</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-gitlab/">Integrating Invicti Standard with GitLab</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jazzteam/">Integrating Invicti Standard with Jazz Team Server</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-jira/">Integrating Invicti Standard with Jira</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-kenna/">Integrating Invicti Standard with Kenna</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-microsoft-teams/">Integrating Invicti Standard with Microsoft Teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-pivotal-tracker/">Integrating Invicti Standard with Pivotal Tracker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-redmine/">Integrating Invicti Standard with Redmine</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-shortcut-invicti-standard/">Integrating Invicti Standard with Shortcut</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-tfs/">Integrating Invicti Standard with TFS</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-unfuddle/">Integrating Invicti Standard with Unfuddle</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-webhook/">Integrating Invicti Standard with Webhooks</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-youtrack/">Integrating Invicti Standard with YouTrack</a> </li> <li class="article"> <a href="https://www.invicti.com/support/integrating-invicti-standard-zapier/">Integrating Invicti Standard with Zapier</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Team Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Introduction to Team Management</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/overview-of-team-management/">Overview of team management in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-members-invicti-enterprise/">Managing team members in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-roles-invicti-enterprise/">Managing roles in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/managing-teams-invicti-enterprise/">Managing teams in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/activity-log/">Activity Logs</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">User Permissions</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/viewing-roles-and-teams/">Viewing your roles and teams</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general-settings-user-roles-and-permissions/">User roles and permissions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-roles-invicti-enterprise/">Configuring roles in Invicti Enterprise</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Team Administrator role</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/team-administrator-capabilities-assigning-role/">Team Administrator capabilities and assigning the role</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-roles-to-specific-member/">Assigning roles to a specific member</a> </li> <li class="article"> <a href="https://www.invicti.com/support/assigning-roles-to-a-team/">Assigning roles to a team</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-team-administrator-roles-with-setup-examples/">Custom Team Administrator roles with setup examples</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">LDAP service</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/configuring-ldap/">Configuring LDAP</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Scan Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/agents-invicti-enterprise-on-premises/">Agents in Invicti Enterprise On-Premises</a> </li> <li class="article"> <a href="https://www.invicti.com/support/internal-agents-invicti-enterprise/">Internal Agents in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-internal-agents/">Installing scan agents on Windows</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-linux-debian/">Installing scan agents on Linux (Debian Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-linux-redhat/">Installing scan agents on Linux (RedHat Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scan-agent-dockerization/">Installing scan agents via Docker</a> </li> <li class="article"> <a href="https://www.invicti.com/support/installing-scanner-agent-via-openshift-kubernetes/">Installing scan agents via Kubernetes and OpenShift</a> </li> <li class="article"> <a href="https://www.invicti.com/support/agent-token-encryption/">Encrypting the Agent Token</a> </li> <li class="article"> <a href="https://www.invicti.com/support/agent-secret-management/">Configuring internal agents for secrets management services</a> </li> <li class="article"> <a href="https://www.invicti.com/support/troubleshooting-agent-issues/">Troubleshooting agent issues</a> </li> <li class="article"> <a href="https://www.invicti.com/support/malware-analyzer-clamav-invicti/">Malware Analysis with ClamAV in Invicti Enterprise</a> </li> <li class="article"> <a href="https://www.invicti.com/support/internal-agents-version/">Internal agents version</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Authentication Verifier Agents</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-authentication-verifier-agent-invicti/">Managing Authentication Verifier Agents</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent/">Installing Authentication Verifier Agents</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent-linux-debian/">Installing Authentication Verifier Agent on Linux (Debian Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-agent-linux-redhat/">Installing Authentication Verifier Agent on Linux (RedHat Distribution)</a> </li> <li class="article"> <a href="https://www.invicti.com/support/starting-the-authverifier-on-docker-using-a-docker-scan-agent/">Starting the AuthVerifier on Docker using a Docker Scan Agent</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Agent Groups</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/managing-agent-groups/">Managing Agent Groups</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Settings</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise Settings</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/general-settings-invicti/">General Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general-settings-user-roles-and-permissions/">User roles and permissions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/data-encryption-storage-retention/">Data Encryption, Storage, and Retention</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-login-warning-banner/">Configuring Login Warning Banner</a> </li> <li class="article"> <a href="https://www.invicti.com/support/single-sign-on-settings/">Single Sign-On Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/ip-restrictions-settings/">IP Restrictions Settings</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Enterprise On-Premises</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/security-settings/">Security settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/email-settings/">Email settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/sms-settings/">SMS Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/encryption-invicti-enterprise/">Encryption Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/service-credentials-settings/">Service Credentials settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/cloud-provider-settings/">Cloud Provider Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/licensing-settings/">Licensing settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/database-settings/">Database settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/authentication-verifier-settings/">Authentication Verifier Settings</a> </li> <li class="article"> <a href="https://www.invicti.com/support/custom-db-maintenance/">Configuring custom database maintenance</a> </li> <li class="article"> <a href="https://www.invicti.com/support/configuring-agent-selection/">Configuring agent selection</a> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Invicti Standard Options</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/advanced/">Accessing Advanced Options</a> </li> <li class="article"> <a href="https://www.invicti.com/support/send-to-actions/">Send To Actions</a> </li> <li class="article"> <a href="https://www.invicti.com/support/logging/">Logging</a> </li> <li class="article"> <a href="https://www.invicti.com/support/invicti-assistant/">Invicti Assistant</a> </li> <li class="article"> <a href="https://www.invicti.com/support/enterprise-integration/">Enterprise Integration</a> </li> <li class="article"> <a href="https://www.invicti.com/support/proxy/">Proxy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/internal-proxy/">Internal Proxy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/scan-policy/">Scan Policy</a> </li> <li class="article"> <a href="https://www.invicti.com/support/auto-update/">Auto Update</a> </li> <li class="article"> <a href="https://www.invicti.com/support/storage/">Storage</a> </li> <li class="article"> <a href="https://www.invicti.com/support/general/">General</a> </li> </ul> </li> </ul> </li> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Your Account</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"></path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu"> <li class="menu-item menu-item-has-children"> <div class="menu-item-block"> <a href="#" onclick="return false;">Account Options</a> <span class="menu-expander"><svg width="10" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor"> </path> <path d="M1.175.912 5 4.73 8.825.912 10 2.087l-5 5-5-5L1.175.912Z" fill="currentColor" fill-opacity=".25"></path> </svg></span> </div> <ul class="sub-menu level--2"> <li class="article"> <a href="https://www.invicti.com/support/account-invicti/">Account</a> </li> <li class="article"> <a href="https://www.invicti.com/support/settings-password-invicti/">Managing Your Account Settings and Password</a> </li> <li class="article"> <a href="https://www.invicti.com/support/api-overview/">API Settings Overview</a> </li> <li class="article"> <a href="https://www.invicti.com/support/two-factor-authentication/">Two-Factor Authentication</a> </li> <li class="article"> <a href="https://www.invicti.com/support/license/">License</a> </li> <li class="article"> <a href="https://www.invicti.com/support/about/">About</a> </li> </ul> </li> </ul> </li> </ul> </div> </aside> <main class="entry-content single-support-entry old-support-post post-17687 support type-support status-publish format-standard hentry support-categories-continuous-integration-systems support-categories-integrations"> <div class="article-cat"> <a href="https://www.invicti.com/support/category/continuous-integration-systems/"> Continuous Integration Systems</a> </div> <div class="article-heading entry-title"> <h1>Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin</h1> </div> <div class="article-coverage"> <span>This document is for:</span> <div class="products"> Invicti Enterprise On-Demand, Invicti Enterprise On-Premises </div> </div> <p>TeamCity is a build management and CI server that allows users to run automated tests on the server after committing code but before going into production.</p> <p>These instructions assume you are familiar with the basic concepts of Invicti Enterprise and TeamCity, such as Websites, Scans and Build Configuration.</p> <p>You must also have:</p> <ul> <li>A Invicti Enterprise account</li> <li>A TeamCity account with Administrative privileges</li> <li>Knowledge of PowerShell or at least basic programming understanding</li> </ul> <p>First, we will make some small settings on the Invicti Enterprise website:</p> <ul> <li>We will define the website we want to scan every night and note down our Invicti Enterprise API credentials which will be required in the following step (see <a href="#preliminary-actions-in-netsparker-enterprise">Preliminary Actions in Invicti Enterprise</a>).</li> <li>Next, we will write a PowerShell script to launch a new scan, query the status of the scan and download the scan report file.</li> <li>Finally, we will create a Build Configuration in TeamCity which will be executed nightly. To keep it simple, we will trigger the Build Configuration nightly. With a little bit of configuration change it can also be triggered just after a git commit.</li> </ul> <h2 id="preliminary-actions-in-netsparker-enterprise">Preliminary Actions in Invicti Enterprise</h2> <p>Regardless of whether you choose to run a Full Scan or an Incremental Scan, there are several things you need to do first:</p> <ul> <li>Add a website to Invicti Enterprise and verify ownership: <ul> <li>See <a href="https://www.invicti.com/support/adding-website-netsparker-enterprise/">Adding a Website in Invicti Enterprise</a>.</li> <li>Later, you will invoke some REST API methods. Just like any other REST API, the Invicti Enterprise Web API requires some credentials. You can find them in <span class="uunderline"><a href="https://www.invicti.com/support/api-settings/">API settings</a></span>.</li> </ul> </li> <li><span>Run a Invicti Enterprise Scan (see <a href="https://www.invicti.com/support/overview-scanning-netsparker/">Introduction to Scans</a> and <a href="https://www.invicti.com/support/creating-new-scan-netsparker/">Creating a New Scan</a>)</span> <ul> <li><span>Find the Scan Id in the Scan Report – <a href="https://www.invicti.com/support/creating-new-scan-netsparker/#how-to-run-an-incremental-scan-in-netsparker-enterprise">Incremental Scan</a> (see <a href="https://www.invicti.com/support/built-in-reports-netsparker/#how-to-find-the-scan-id-of-a-report">How to Find the Scan ID of a Report</a>)</span> <ul> <li>For further details on the results of the scan, you can open a scan report in Invicti Enterprise from which you can extract the ScanId</li> </ul> </li> <li>The reason for launching Incremental Scans rather than Full Scans from TeamCity, is that Full Scans often take too much time, whereas Incremental Scans are completed much quicker.</li> </ul> </li> <li>Access the Invicti Enterprise API Credentials, including User ID and Token (see <span class="uunderline"><a href="https://www.invicti.com/support/api-settings/">How to Access Your API Credentials</a></span> <ul> <li>Authentication to the API is via <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">HTTP Basic Access Authentication</a><a href="https://en.wikipedia.org/wiki/Basic_access_authentication">:</a> <ul> <li>When you make any calls to the API, you will need to provide your User ID and API Token in the HTTP Basic authentication header, in this format (where <code class="inline-code">{XXX}</code> is your Base64-encoded <code class="inline-code">USERID:API-TOKEN</code>) <ul> <li><code class="inline-code">Authorization: Basic {XXX}</code></li> </ul> </li> </ul> </li> </ul> </li> </ul> <p>Now, you are ready to proceed with one of the following:</p> <ul> <li>Full Scan</li> <li>Incremental Scan</li> </ul> <h2 id="full-scan">Full Scan</h2> <p>First, ensure that you have completed the <span class="uunderline"><a href="#preliminary-actions-in-netsparker-enterprise">Preliminary Actions in Invicti Enterprise</a></span>.</p> <p>At the end of this tutorial, you will have a TeamCity Build Configuration which will be executed nightly. This Build Configuration will launch a scan by invoking the Invicti Enterprise Web API and will display the Scan Report in a Report Tab in TeamCity.</p> <h3 id="invoking-netsparker-enterprise-web-api-using-powershell">Invoking Invicti Enterprise Web API Using PowerShell</h3> <p>If you are not interested in how PowerShell script and Invicti Enterprise Web API works, and just want to achieve the end result, go directly to the <span class="uunderline"><a href="https://www.invicti.com/support/installing-configuring-netsparker-enterprise-scan-teamcity-plugin/#final-powershell-script">Final Script</a></span>, and replace the parameters with your own values in the <code class="inline-code">$headers</code> and <code class="inline-code">$newScanBody</code> variables.</p> <p>Invicti Enterprise exposes a Web API that allows client applications to view and manipulate scan tasks.</p> <p>To invoke the Invicti Enterprise API, we use PowerShell, because TeamCity is able to execute PowerShell scripts as a Build Step.</p> <p>For further information about the Invicti Enterprise Web API, see <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/">API v 1.0 Documentation</a></span>.</p> <p>The script does the following:</p> <ul> <li>Launch a new scan</li> <li>Check the status every 10 seconds, until the scan is finished</li> <li>If the scan finishes successfully, download and save the Scan Report as an html file</li> </ul> <p>We will invoke three different methods from the API:</p> <ul> <li>The first method creates a new scan</li> <li>The second method checks the status of the scan</li> <li>The third method downloads the Scan Report</li> </ul> <h4>Preliminary Steps</h4> <p>Before starting to write PowerShell:</p> <ol start="1"> <li>Create a .bat file called scan.bat. Add the following command to the file: <ul style="list-style-type: circle"> <li><code class="inline-code">pausepowershell -ExecutionPolicy ByPass .\scan.ps1</code></li> </ul> </li> </ol> <p>This is the PowerShell command that executes the script. This .bat file will ensure that we do not have to enter the same command over and over during tests</p> <ol start="2"> <li>Create a second file named 'scan.ps1' in the same directory as 'scan.bat'. All the PowerShell commands will go into this file. <ul style="list-style-type: circle"> <li>To keep the PowerShell script clean, you need to define some values at the top of the .ps1 file. Add the following line in the top of .ps1 file: <ul style="list-style-type: circle"> <li><code class="inline-code">$baseUri = "https://www.netsparkercloud.com/api/1.0/scans/"</code></li> </ul> </li> </ul> </li> </ol> <p style="padding-left: 60px">This is the base URI of the Invicti Enterprise Web API. All addresses we will be invoking will start like this.</p> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"> <li>Then add the following under <code class="inline-code">$baseUri</code> line (replacing Your Base64 Encoded USERID:API-TOKEN with yours from your <a href="https://www.invicti.com/support/api-settings/">API Credentials</a>): <ul> <li><code class="inline-code">$headers = @{</code><br /> <code class="inline-code">"Authorization"="Basic [Your Base64 Encoded USERID:API-TOKEN]"</code> <br /> <code class="inline-code">"Content-Type"="application/json"</code><br /><code class="inline-code">}</code></li> </ul> </li> </ul> </ul> <p style="padding-left: 60px">These are the HTTP header values which will be sent along with every request.</p> <h3>Launching a New Scan</h3> <p>To launch a new scan we will invoke the <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_New">POST /scans/new</a></span> method.</p> <h4 class="iitalic"><span class="iitalic">How to Launch a New Scan</span></h4> <ol> <li>Add the following code to this method in JSON format:</li> </ol> <pre><code>{<br /> TargetUri: 'http://www.example.com/',<br /> FormAuthenticationSettingModel: {<br /> IsEnabled: true,<br /> LoginFormUrl: 'http://www.example.com/login',<br /> Personas: [{<br /> UserName: 'username',<br /> Password: 'password',<br /> IsActive: true<br /> }]<br /> }<br />}</code></pre> </p> <ol start="2"> <ul style="list-style-type: circle"> <li>It contains: <ul> <li>The URL of the website that we have defined in <a href="https://www.invicti.com/support/adding-website-netsparker-enterprise/">Adding a Website to Invicti Enterprise</a></li> <li>Login information (login form url, username and password) to the web site that we want to scan</li> </ul> </li> <li>If your web site does not require login you can simply remove <code class="inline-code">FormAuthenticationSettingModel</code> and only send the TargetUri</li> <li>If your web site uses another authentication mechanism you can check docs whether it is supported and how</li> <li>You can also find other parameters supported by this method in the <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_New">API v 1.0 Documentation</a></span>.</li> </ul> <li>Add the following lines after $headers value in .ps1 file (where <code class="inline-code">$newScanUri</code> is the Invicti Enterprise Web API endpoint address for new scan launching method and <code class="inline-code">$newScanBody</code> is the data that will be posted to invoke this method): <ul style="list-style-type: circle"> <li><code class="inline-code">$newScanUri = $baseUri + "new"</code></li> </ul> </li> </ol> <pre><code>$newScanBody = "{TargetUri:'<span class="bbold uunderline">http://www.example.com/</span><span class="uunderline">',FormAuthenticationSettingModel:{IsEnabled:true,LoginFormUrl:'</span><span class="bbold uunderline">http://www.example.com/login</span><span class="uunderline">',Personas:[{UserName:'</span><span class="bbold uunderline">username</span><span class="uunderline">',Password:'</span><span class="bbold uunderline">password</span><span class="uunderline">',IsActive:true</span>}]}}"</code></pre> <ol start="3"> <ul style="list-style-type: circle"> <li>Do not forget to replace TargetUri, LoginFormUrl, UserName and Password values with your own values</li> </ul> <li>Add the following lines: <ol start="2"></ol> <ul style="list-style-type: circle"> <li><code class="inline-code">$newScanResp = Invoke-RestMethod -Uri $newScanUri -Headers $headers -Body $newScanBody -Method POST</code> <p><code class="inline-code">$id = $newScanResp[0].Id</code></li> <li>This invokes the rest method located at <code class="inline-code">$newScanUri</code> by posting <code class="inline-code">$newScanBody</code></li> <li>If successful, the result will be a response holding the Id value of the Scan, which will be used for the other methods invocations we are about to make</li> <li>We store its value in a variable called <code class="inline-code">$id</code></li> <li>For other values that are returned with the response, see <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_New">API 1.0 Documentation</a></span>.<a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_New">Docs</a>.</li> </ul> </li> <li>Finally, the completed .ps1 file looks like this: <ul style="list-style-type: circle"> <li><code class="inline-code">$baseUri = "https://www.netsparkercloud.com/api/1.0/scans/"</code><br /><code class="inline-code">$headers = @{<br /><code class="inline-code"> "Authorization"="Basic [Your Base64 Encoded USERID:API-TOKEN]"</code><br /><code class="inline-code"> "Content-Type"="application/json"</code><br />}</code> <p><code class="inline-code">$newScanUri = $baseUri + "new"</code><br /><code class="inline-code">$newScanBody = "{TargetUri:'http://www.example.com/',FormAuthenticationSettingModel:{IsEnabled:true,LoginFormUrl:'http://www.example.com/login',Personas:[{UserName:'username',Password:'password',IsActive:true}]}}"</code></p> <p>$newScanResp = Invoke-RestMethod -Uri $newScanUri -Headers $headers -Body $newScanBody -Method POST<br /><code class="inline-code">$id = $newScanResp[0].Id</code></li> </ul> </li> <li>You can now launch a new scan by running the scan.bat file. Script execution will stop immediately after launching the scan.</li> </ol> <h4>Querying Scan Status</h4> <ol> <li>Add this line under $newScanUri at the top of the .ps1 file:</li> <ul style="list-style-type: circle"> <li><code class="inline-code">$statusUri = $baseUri + "status/"</code></li> </ul> </ol> <p style="padding-left: 30px">This is the base uri that is used to query the status of the scan:</p> <ol start="2"> <ul style="list-style-type: circle"> <li>It invokes the <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_Status">GET /scans/status/{id}</a></span> method</li> <li>This method needs be invoked periodically until the scan finishes</li> <li>Eventually, the scan will have a Complete, Failed or Cancelled status</li> <li>We will create a loop that checks the status of the scan, until it has one of these states</li> </ul> <li>Add the following lines to the .ps1 file: <ul style="list-style-type: circle"> <li><code class="inline-code">$statusFinalUri = $statusUri + $id</code> <p><code class="inline-code">Do</code><br /><code class="inline-code">{</code><br /> <code class="inline-code">Start-Sleep -s 10</code></p> <p> <code class="inline-code">$statusResp = Invoke-RestMethod -Uri $statusFinalUri -Headers $headers -Method GET</code></p> <p><code class="inline-code">} While ($statusResp.State -ne "Complete" -And $statusResp.State -ne "Failed" -And $statusResp.State -ne "Cancelled")</code></li> </ul> </li> </ol> <p>In this code, the following applies:</p> <ol start="3"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"> <li><code class="inline-code">$statusFinalUri</code> holds the full address that is required to query the scan status</li> <li>The <code class="inline-code">Do-While</code> loop executes until the scan has one of the specified states</li> <li><code class="inline-code">Start-Sleep</code> pauses script execution for 10 seconds</li> <li>The <code class="inline-code">$statusResp</code> variable holds the response returned from the method invocation</li> </ul> </ul> <li>Finally, the complete .ps1 file looks like this: <ul> <li><code class="inline-code">$baseUri = "https://www.netsparkercloud.com/api/1.0/scans/"</code><br /><code class="inline-code">$headers = @{</code><br /> <code class="inline-code">"Authorization"="Basic [Your Base64 Encoded USERID:API-TOKEN]"</code><br /> <code class="inline-code">"Content-Type"="application/json"</code><br /><code class="inline-code">}</code> <p><code class="inline-code">$newScanUri = $baseUri + "new"</code><br /><code class="inline-code">$statusUri = $baseUri + "status/"</code></p> <p><code class="inline-code">$newScanBody = "{TargetUri:'http://www.example.com/',FormAuthenticationSettingModel:{IsEnabled:true,LoginFormUrl:'http://www.example.com/login',Personas:[{UserName:'username',Password:'password',IsActive:true}]}}"</code></p> <p><code class="inline-code">$newScanResp = Invoke-RestMethod -Uri $newScanUri -Headers $headers -Body $newScanBody -Method POST</code><br /><code class="inline-code">$id = $newScanResp[0].Id</code></p> <p><code class="inline-code">$statusFinalUri = $statusUri + $id</code><br /><code class="inline-code">Do</code><br /><code class="inline-code">{</code><br /> <code class="inline-code">Start-Sleep -s 10</code></p> <p><code class="inline-code">$statusResp = Invoke-RestMethod -Uri $statusFinalUri -Headers $headers -Method GET</code></p> <p><code class="inline-code">} While ($statusResp.State -ne "Complete" -And $statusResp.State -ne "Failed" -And $statusResp.State -ne "Cancelled")</code></li> </ul> </li> <li>You can now launch a new scan by running the scan.bat file. The script will execute as long as the scan executes.</li> </ol> <h4 id="downloading-scan-report">Downloading Scan Report</h4> <ol> <li>Add this line under $statusUri at top of the .ps1 file: <ul style="list-style-type: circle"> <li><code class="inline-code">$reportUri = $baseUri + "report?type=ScanDetail&format=Html&id="</code> <p><code class="inline-code">$reportFileName = "index.html"</code></li> </ul> </li> </ol> <p>This is the base uri that we will use for querying status of the Scan:</p> <ol start="2"> <ol start="2"> <ul style="list-style-type: circle"> <ul> <li>The Full Scan Report file downloads in Html format (for further information on other support report types and formats, see <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_Report">API Documentation</a></span></li> <li><code class="inline-code">$reportFileName</code> will be used as the filename when saving the downloaded report file, but if you choose to give it a different name, store it somewhere safe, because we will be using this value in TeamCity configuration</li> <li>To query scan report file we will invoke the <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_Report">GET /scans/report/{id}</a></span> method. We should only invoke this method if scan has finished successfully. A scan having “Complete” state means scan has finished successfully. So we need to check if <code class="inline-code">$statusResp.State</code> has this value.</li> </ul> </ul> </ol> <li>Add this code underneath the Do-While loop in the .ps1 file: <ul style="list-style-type: circle"> <li><code class="inline-code">if ($statusResp.State -eq "Complete")</code><br /><code class="inline-code">{</code><br /> <code class="inline-code">$reportFinalUri = $reportUri + $id</code> <p> <code class="inline-code">$html = Invoke-WebRequest -Uri $reportFinalUri -Headers $headers -Method GET -UseBasicParsing</code></p> <p> <code class="inline-code">"$html" | Out-File $reportFileName</code><br /><code class="inline-code">}</code></li> <li>Here, we first check <code class="inline-code">$statusResp.State</code> if it has value of 'Complete' which indicates that scan has completed successfully.</li> <li>$reportFinalUri holds the full address that is required to download scan report file.</li> <li>After invoking method $html holds the HTML content of the Scan report. In other words this variable holds the downloaded data that should be written onto disk.</li> <li>Finally we write HTML data into the index.html file using Out-File.</li> </ul> </li> <li>Now the completed .ps1 file looks like this: <ul> <li> <pre><code>$baseUri = "https://www.netsparkercloud.com/api/1.0/scans/" <br />$headers = @{<br /> "Authorization"="Basic [Your Base64 Encoded USERID:API-TOKEN]"<br /> "Content-Type"="application/json"<br />}<br /> <br />$newScanUri = $baseUri + "new"<br />$statusUri = $baseUri + "status/"<br />$reportUri = $baseUri + "report?type=ScanDetail&format=Html&id="<br /><br />$reportFileName = "index.html"<br /><br />$newScanBody = "{TargetUri:'http://www.example.com/',FormAuthenticationSettingModel:{IsEnabled:true,LoginFormUrl:'http://www.example.com/login',Personas:[{UserName:'username',Password:'password',IsActive:true}]}}"<br /> <br />$newScanResp = Invoke-RestMethod -Uri $newScanUri -Headers $headers -Body $newScanBody -Method POST<br />$id = $newScanResp[0].Id<br /><br />$statusFinalUri = $statusUri + $id<br />Do<br />{<br /> Start-Sleep -s 10<br />$statusResp = Invoke-RestMethod -Uri $statusFinalUri -Headers $headers -Method GET<br />} While ($statusResp.State -ne "Complete" -And $statusResp.State -ne "Failed" -And $statusResp.State -ne "Cancelled")<br />if ($statusResp.State -eq "Complete")<br />{<br /> $reportFinalUri = $reportUri + $id<br /> <br /> $html = Invoke-WebRequest -Uri $reportFinalUri -Headers $headers -Method GET -UseBasicParsing<br /> <br /> "$html" | Out-File $reportFileName<br />}</code></pre> </li> </ul> </li> <li>You can now launch a new scan by running the scan.bat file. The script will execute as long as the Scan executes. and after executed is completed you should have the scan report file named as “index.html” next to .ps1 file.</li> </ol> <ol start="2"> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <h4 id="final-powershell-script">Final PowerShell Script</h4> <p>Up to this point, for the sake of simplicity, we have focused on the task. However, when things go wrong, we need to be ready.</p> <p>In the final script, we added some exception handling, logging and exit codes. At this point, the only thing you need to know about this extra code is that the messages that are written using the <code class="inline-code">Write-host</code> method, which you can view in the Build Logs tab in TeamCity. Others are simply for handling error cases.</p> <p>The final script looks like this:</p> <pre><code>$baseUri = "https://www.netsparkercloud.com/api/1.0/scans/"<br />$headers = @{<br /> "Authorization"="Basic [Your Base64 Encoded USERID:API-TOKEN]"<br /> "Content-Type"="application/json"<br />}<br /> <br />$newScanUri = $baseUri + "new"<br />$statusUri = $baseUri + "status/"<br />$reportUri = $baseUri + "report?type=ScanDetail&format=Html&id="<br /><br />$reportFileName = "index.html"<br /><br />$newScanBody = "{TargetUri:'http://www.example.com/',FormAuthenticationSettingModel:{IsEnabled:true,LoginFormUrl:'http://www.example.com/login',Personas:[{UserName:'username',Password:'password',IsActive:true}]}}"<br /><br />try<br />{<br /> $newScanResp = Invoke-RestMethod -Uri $newScanUri -Headers $headers -Body $newScanBody -Method POST<br /><br /> $id = $newScanResp[0].Id<br /><br /> $lastState = ""<br /><br /> $statusFinalUri = $statusUri + $id<br /><br /> Do<br />{<br /> Start-Sleep -s 10<br /><br /> $statusResp = Invoke-RestMethod -Uri $statusFinalUri -Headers $headers -Method GET<br /><br /> if ($statusResp.State -ne $lastState)<br /> {<br /> Write-Host $statusResp.State<br /> $lastState = $statusResp.State<br /> }<br /> } While ($statusResp.State -ne "Complete" -And $statusResp.State -ne "Failed" -And $statusResp.State -ne "Cancelled")<br /><br /> if ($statusResp.State -eq "Complete")<br /> {<br /> $reportFinalUri = $reportUri + $id<br /><br /> $html = Invoke-WebRequest -Uri $reportFinalUri -Headers $headers -Method GET -UseBasicParsing<br /><br /> "$html" | Out-File $reportFileName<br /><br /> exit 0<br /> }<br /> else<br /> {<br /> exit -1<br /> }<br />}<br />catch<br />{<br /> $errResponse = $_.Exception.Response <br /><br /> if (!$errResponse)<br /> {<br /> Write-host $_.Exception.Message<br /> exit -1<br /> }<br /><br /> $errRespStream = $errResponse.GetResponseStream()<br /> $errRespStream.Position = 0<br /><br /> $reader = New-Object System.IO.StreamReader($errRespStream)<br /> $responseBody = $reader.ReadToEnd();<br /><br /> Write-host $errResponse.StatusCode<br /> Write-host $errResponse.StatusDescription <br /> Write-host $responseBody<br /><br /> exit $errResponse.StatusCode<br />}</code></pre> <h2 id="teamcity-configuration">TeamCity Configuration</h2> <p>Since you need a Build Configuration that will execute the PowerShell script each night to scan your website and then display the Scan Report in a Report Tab inside TeamCity, you need to configure the following options in TeamCity.</p> <p>This tutorial assumes that you are already familiar with TeamCity and have some Projects on it. If you do not have any Projects in TeamCity, first read Jetbrains' <span class="uunderline"><a href="https://confluence.jetbrains.com/display/TCD10/Creating+and+Editing+Projects">Creating and Editing Projects</a></span> documentation.</p> <ul style="list-style-type: disc"> <li>First, you will need to get a TeamCity account with Administrative privileges. Confirm whether you have Administrative privileges by logging in to TeamCity and checking that you can see the Administration link on the top right of the screen. If it is not there, you do not have Administrative rights. Find the TeamCity Admin and request them.</li> <li>After logging in, click <span class="bbold">Administration</span>, then select the Project in which you want to create your Build Configuration.</li> </ul> <h4>Adding a Build Report Tab</h4> <p>First we need to create a Report Tab, a Project-wide setting in TeamCity. This means if you add a Report Tab to a Project, any Build Configuration under this Project can benefit (not necessarily) from it.</p> <h3>How to Add a Build Report Tab</h3> <ol> <li>In TeamCity, in the left hand menu, under <span class="bbold">Project Settings</span>, click <span class="bbold">Report Tabs</span>.</li> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/xizgoseyewhppjgfddado0zmy9lyy3ebuye.png" loading="lazy" /></p> <ol start="2"> <li>Click <span class="bbold">+ Create new build report tab</span>. The <span class="bbold">Edit Report Tab</span> Settings dialog is displayed.</li> </ol> <p><img alt="" src="https://cdn.invicti.com/statics/img/drive/hxyna68pfkrafj7f1nenzsdccn0cacyz9ep.png" loading="lazy" /></p> <ol start="3"> <li>In the <span class="bbold">Tab Title</span> field, enter 'Invicti Enterprise'. This is the name of the tab that will be displayed in the Build Detail page (similar to other tabs such as Overview, Build Logs and Parameters).</li> <li>In the <span class="bbold">Start page</span> field, enter the name of the relative path from the root of the build's artifacts to a start page of the generated report. The default value: index.html. If you used this value for <code class="inline-code">$reportFileName</code> in <a href="https://www.invicti.com/support/installing-configuring-netsparker-enterprise-scan-teamcity-plugin/#downloading-scan-report">Downloading Scan Report</a>, you can leave it as it is. This value must have the same value as <code class="inline-code">$reportFileName</code>.</li> <li>Click <span class="bbold">Save</span>.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <h4>Creating the Build Configuration</h4> <p>Creating the Build Configuration is what does the actual job.</p> <h3>How to Create a New Build Configuration</h3> <ol> <li>In TeamCity, in the left hand menu, under <span class="bbold">Project Settings</span>, click <span class="bbold">General Settings</span>.</li> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/y4omguecdtnmgiuaxd5coojvyqyn1ar9fjm.png" loading="lazy" /></p> <ol start="2"> <li>From the <span class="bbold">Build Configurations</span> section, click <span class="bbold">+ Create build configuration</span>. The <span class="bbold">Create Build Configuration</span> window is displayed.</li> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/kh72j2xiako6rgivllk9xmx4ou-xzbdyzo9.png" loading="lazy" /></p> <ol start="3"> <li>The <span class="bbold">Parent project</span> drop-down list is already set your project, NS Enterprise.</li> <li>In the <span class="bbold">Name</span> field, enter a name for the new build configuration.</li> <li>As you type, <span class="bbold">Build configuration ID</span> is automatically generated.</li> <li>Click <span class="bbold">Create</span> to create additional build configurations.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <p>After creating the Build Configuration, TeamCity will redirect you to the Version Control Settings window.</p> <h3>General Settings</h3> <ol> <li>In TeamCity, in the left hand menu, click <span class="bbold">General Settings</span>.</li> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/jnuuxngkhgogkk8yijxtvuh1euvf4lgvomh.png" loading="lazy" /></p> <ol start="2"> <li>If the advanced options are hidden, click <span class="bbold">Show advanced options</span>.</li> <li>Some fields are already populated.</li> <li>In the <span class="bbold">Artifact paths</span> field, enter 'index.html' (or the value you used for <code class="inline-code">$reportFileName</code> in <a href="#downloading-scan-report">Downloading Scan Report</a>).</li> <li>Leave all other default options as they are.</li> <li>Click <span class="bbold">Save</span>.</li> </ol> <h5>Triggering the Build Configuration</h5> <p>Now we want to configure when the Build Configuration will run. To keep it simple, these instructions are for a scheduled trigger, which will run the configuration nightly. You can easily configure this to <span class="uunderline"><a href="https://confluence.jetbrains.com/display/TCD9/Configuring+VCS+Triggers">run after a git commit</a></span>.</p> <h6>How to Configure the Build Configuration</h6> <ol> <li>In TeamCity, in the left hand menu, click Triggers.</li> <li>Click <span class="bbold">+ Add new trigger</span>, then click <span class="bbold">Schedule Trigger</span>. The <span class="bbold">Schedule Trigger</span> dialog is displayed.</li> </ol> <p><img alt="" src="https://cdn.invicti.com/statics/img/drive/ea8e_mowbkwgqd_0aecn0exksrt0zupqms5.png" loading="lazy" /></p> <ol start="3"> <li>If the advanced options are hidden, click <span class="bbold">Show advanced options</span>.</li> <li>Change the <span class="bbold">Date and Time</span> options, including time zone, to your required settings.</li> <li>Leave all other default options as they are.</li> <li>Click <span class="bbold">Save</span>.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <h5>Creating a Build Step (PowerShell)</h5> <p>The final step is to give the PowerShell script, that we have prepared in <a href="https://www.invicti.com/support/installing-configuring-netsparker-enterprise-scan-teamcity-plugin/#invoking-netsparker-enterprise-web-api-using-powershell">Invoking Invicti Enterprise Web API Using PowerShell</a>, to TeamCity.</p> <h6>How to Create a Build Step</h6> <ol start="1"> <li>In TeamCity, in the left hand menu, under <span class="bbold">Build Configuration Settings</span>, click <span class="bbold">Build Steps</span>, then click <span class="bbold">+ Add Build Step</span>. The <span class="bbold">New Build Step</span> window is displayed.</li> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/s2owaeimwpqqwtm_0rd5999pw03dwdyygnv.png" loading="lazy" /></p> <ol start="2"> <li>From the <span class="bbold">Runner type</span> drop-down, click <span class="bbold">Powershell</span>.</li> <li>If the advanced options are hidden, click <span class="bbold">Show advanced options</span>.</li> <li>In the <span class="bbold">Step name</span> field, enter a name.</li> <li>From the <span class="bbold">Powershell run mode</span> drop-downs, <span class="bbold">Version</span> and <span class="bbold">Bitness</span>, click the options that match the version of PowerShell installed on your TeamCity server.</li> <li>From the <span class="bbold">Script</span> drop-down, click <span class="bbold">Source code</span>.</li> <li>In the <span class="bbold">Script source</span> field, paste the contents of the .ps1 file.</li> <li>From the <span class="bbold">Script execution mode</span> drop-down, click <span class="bbold">Execute .ps1 from external file</span>.</li> <li>Click <span class="bbold">Save</span>.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <h4>Running the Build Configuration and Viewing the Scan Report in TeamCity</h4> <p>Now we have everything configured and ready to see some results. Our build configuration is scheduled run every night but we can also run it manually any time we want.</p> <h6>How to Run the Build Configuration</h6> <ol> <li>In TeamCity, in the left hand menu, click Build Configuration Settings.</li> <li>Click <span class="bbold">Run</span>.</li> <li>From the <span class="bbold">Projects</span> drop-down, select your project.</li> <li>From the <span class="bbold">Overview</span> tab, click on your newly-created Build Configuration.</li> <li>In the <span class="bbold">Recent history</span> section, you can view completed and running configurations.</li> <li>Click on the completed execution. The <span class="bbold">Build details</span> window is displayed, showing both . where you can see both the <span class="bbold">Build Log</span> and <span class="bbold">Invicti </span><span class="bbold">Enterprise</span> tabs.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/ct5t7oaluicnetdyvm1stw0riq6eyjthw51.png" loading="lazy" /></p> <ol start="7"> <li>Click the <span class="bbold">Build Log</span> tab to view the progress of the build. After a completed Build Configuration execution (failed or successful) you can see the log messages that are written by the Write-host command in the PowerShell script.</li> <li>Click the <span class="bbold">Invicti </span><span class="bbold">Enterprise</span> tab (which will be visible if the PowerShell script execution completed successfully, the Report file is saved as index.html successfully and the Build Configuration has been successfully executed) you can view the Full Scan Report.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/suvgaoufffxgoqmjp3odu3m8bdk_c1x-brp.png" loading="lazy" /></p> <h2 id="incremental-scan">Incremental Scan</h2> <p>First, ensure that you have completed the <span class="uunderline"><a href="#preliminary-actions-in-netsparker-enterprise">Preliminary Actions in Invicti Enterprise</a></span>.</p> <p>At the end of this tutorial, you will have a TeamCity Build Step, which will be executed after a git push, and will launch a scan by invoking the Invicti Enterprise Web API. The purpose of this is to find any vulnerabilities caused by a new git push, before they are reflected to the production environment.</p> <h3 id="invoking-netsparker-enterprise-web-api-using-powershell">Invoking Invicti Enterprise Web API Using PowerShell</h3> <p>Invicti Enterprise exposes a Web API that allows client applications to view and manipulate scan tasks.</p> <p>To invoke the API, we use PowerShell, because TeamCity is able to execute PowerShell scripts as a Build Step.</p> <p>For further information about the Invicti Enterprise Web API, see <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/">API v 1.0 Documentation</a></span>.</p> <h6>How to Invoke Invicti Enterprise Web API Using PowerShell</h6> <ol> <li>First create a file called scan.ps1. Add the following script to the file:</li> <ul style="list-style-type: circle"> <li><code class="inline-code">$scanUri = "https://www.netsparkercloud.com/api/1.0/scans/incremental"</code> <p><code class="inline-code">$headers = @{</code><br /> <code class="inline-code">"Authorization"="Basic <span class="bbold">[AuthToken]"</span></code><br /> <code class="inline-code">"Content-Type"="application/json"</code><br /><code class="inline-code">}</code></p> <p><code class="inline-code">$requestBody = "{BaseScanId: '<span class="bbold">[ScanId]</span>'}"</code></p> <p><code class="inline-code">try</code><br /><code class="inline-code">{</code><br /> <code class="inline-code">Invoke-RestMethod -Uri $scanUri -Headers $headers -Body $requestBody -Method POST</code><br /> <code class="inline-code">Write-hot</code><br /> <code class="inline-code">exit 0</code><br /><code class="inline-code">}</code><br /><code class="inline-code">catch</code><br /><code class="inline-code">{</code><br /> <code class="inline-code">$errResponse = $_.Exception.Response</code> </p> <p> <code class="inline-code">if (!$errResponse)</code><br /> <code class="inline-code">{</code><br /> <code class="inline-code">Write-host $_.Exception.Message</code><br /> <code class="inline-code">exit -1</code><br /> <code class="inline-code">}</code></p> <p> <code class="inline-code">$errRespStream = $errResponse.GetResponseStream()</code><br /> <code class="inline-code">$errRespStream.Position = 0</code></p> <p> <code class="inline-code">$reader = New-Object</code><br /> <code class="inline-code">System.IO.StreamReader($errRespStream)</code><br /> <code class="inline-code">$responseBody = $reader.ReadToEnd();</code></p> <p> <code class="inline-code">Write-host $errResponse.StatusCode</code><br /> <code class="inline-code">Write-host $errResponse.StatusDescription</code><br /> <code class="inline-code">Write-host $responseBody</code></p> <p> <code class="inline-code">exit $errResponse.StatusCode</code><br /><code class="inline-code">}</code></li> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ul> </ol> <ol start="2"> <ul style="list-style-type: circle"> <li>Replace '[AuthToken]' with your Base64 Encoded USERID:API-TOKEN (<a href="https://www.invicti.com/support/api-settings/#How-to-Access-Your-API-Credentials">How to Access Your API Credentials</a>).</li> <li><span>Replace '[ScanId]' with the ScanId value, including the brackets (see <a href="https://www.invicti.com/support/built-in-reports-netsparker/#how-to-find-the-scan-id-of-a-report">How to Find the Scan Id of a Report</a>).</span></li> </ul> <li>This script invokes the <span class="uunderline"><a href="https://www.netsparkercloud.com/docs/index#!/Scans/Scans_Incremental">/scans/incremental</a></span> method, which launches a new Incremental Scan using the Invicti Enterprise Web API. It does so by sending the base scan's ScanId to the Incremental Scan. The code inside the catch clause is intended for exception handling and will help us if we have any issues about triggering the scan. Messages written using the Write-host command will be visible in the Build Logs tab of the Build Configuration window.</li> <li>Open inside the standard command window (cmd.exe), run the script with the command to launch an Incremental Scan: <ul style="list-style-type: circle"> <li><code class="inline-code">powershell .\scan.ps1 -ExecutionPolicy ByPass</code></li> </ul> </li> <ul></ul> </ol> <h3 id="teamcity-configuration">TeamCity Configuration</h3> <p>Since, you need a Build Configuration with a PowerShell Build step that will trigger an Incremental Scan inside TeamCity using Invicti Enterprise Web API, you need to configure the following options in TeamCity.</p> <p>This tutorial assumes that you are already familiar with TeamCity and have a Build Configuration that runs following a git push. If you do not have any Projects or Build Configurations in TeamCity, first read Jetbrains' <span class="uunderline"><a href="https://confluence.jetbrains.com/display/TCD10/Creating+and+Editing+Projects">Creating and Editing Projects</a></span> documentation.</p> <ul> <li>First, you will need to get a TeamCity account with Administrative privileges. Confirm whether you have Administrative privileges by logging in to TeamCity and checking that you can see the Administration link on the top right of the screen. If it is not there, you do not have Administrative rights. Find the TeamCity Admin and request them.</li> <li>After logging in, click Administration, then select the Project and Build Configuration in which you want to add the PowerShell Build Step. The Build Configuration Settings window is displayed.</li> </ul> <ol start="2"> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <h6>How To Add a Build Step</h6> <ol> <li>In TeamCity, in the left hand menu, under <span class="bbold">Build Configuration Settings</span>, click <span class="bbold">Build Steps</span>.</li> <li>Click <span class="bbold">+ Add build step</span>. The <span class="bbold">New Build Step</span> window is displayed.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <p><img class="outline-ddd" alt="" src="https://cdn.invicti.com/statics/img/drive/sd_2mp9kbuf92d9lp-otv28soqnz6s2k9fx.png" loading="lazy" /></p> <ol start="3"> <li>From the <span class="bbold">Runner type</span> drop-down, click <span class="bbold">Powershell</span>.</li> <li>If the advanced options are hidden, click <span class="bbold">Show advanced options</span>.</li> <li>In the <span class="bbold">Step name</span> field, enter a name for the step.</li> <li>From the <span class="bbold">Powershell run mode</span> drop-downs, <span class="bbold">Version</span> and <span class="bbold">Bitness</span>, click the options that match the version of PowerShell installed on your TeamCity server.</li> <li>From the <span class="bbold">Script</span> drop-down, click <span class="bbold">Source code</span>.</li> <li>In the <span class="bbold">Script source</span> field, paste the contents of the scan.ps1 file.</li> <li>From the <span class="bbold">Script execution mode</span> drop-down, click <span class="bbold">Execute .ps1 from external file</span>.</li> <li>Click <span class="bbold">Save</span>.</li> <ol start="2"> <ul style="list-style-type: circle"> <ul style="list-style-type: circle"></ul> </ul> </ol> </ol> <p>Now that you have successfully added the PowerShell script to TeamCity, it will run following the completion of the Build Steps, and trigger an Incremental Scan on your website to see if the new build caused any vulnerabilities.</p> <div class="article-share"> <a class="share-button share-twitter" href="https://twitter.com/intent/tweet?url=https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/&text=Installing and Configuring the Invicti Enterprise Scan TeamCity Plugin"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19.375 4.27735C18.6717 4.58296 17.9275 4.7843 17.166 4.87501C17.9663 4.4064 18.5681 3.66195 18.8586 2.78126C18.102 3.22367 17.2756 3.5341 16.4148 3.69922C16.0524 3.31935 15.6165 3.01716 15.1336 2.811C14.6507 2.60484 14.1309 2.49904 13.6059 2.50001C11.4801 2.50001 9.75977 4.19532 9.75977 6.28516C9.75826 6.57585 9.79157 6.86567 9.85898 7.14844C8.33464 7.07698 6.842 6.68812 5.47656 6.00674C4.11111 5.32537 2.90292 4.36647 1.9293 3.19141C1.58772 3.76724 1.40708 4.42424 1.40625 5.09375C1.40625 6.40625 2.09102 7.56641 3.125 8.2461C2.51239 8.23156 1.91234 8.06942 1.37578 7.77344V7.82032C1.37578 9.65625 2.70391 11.1836 4.46172 11.5313C4.13117 11.6194 3.79053 11.664 3.44844 11.6641C3.20569 11.6645 2.9635 11.6409 2.72539 11.5938C3.21406 13.0977 4.63633 14.1914 6.32109 14.2227C4.9521 15.2777 3.27134 15.8479 1.54297 15.8438C1.23618 15.8433 0.929674 15.825 0.625 15.7891C2.38327 16.9118 4.42713 17.5057 6.51328 17.5C13.5977 17.5 17.468 11.7305 17.468 6.72657C17.468 6.5625 17.4637 6.39844 17.4559 6.23829C18.2071 5.70393 18.857 5.03989 19.375 4.27735Z" fill="white" /> </svg> Tweet </a> <a class="share-button share-facebook" href="https://www.facebook.com/sharer.php?u=https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M18.75 10.0527C18.75 5.2207 14.832 1.30273 10 1.30273C5.16797 1.30273 1.25 5.2207 1.25 10.0527C1.25 14.4199 4.44922 18.0398 8.63281 18.6969V12.5828H6.41055V10.0527H8.63281V8.125C8.63281 5.93242 9.93945 4.72031 11.9379 4.72031C12.8953 4.72031 13.8969 4.89141 13.8969 4.89141V7.04492H12.793C11.7066 7.04492 11.3668 7.71914 11.3668 8.41211V10.0527H13.7934L13.4059 12.5828H11.3672V18.6976C15.5508 18.041 18.75 14.4211 18.75 10.0527Z" fill="white" /> </svg> Share </a> <a class="share-button share-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.3504 1.25H2.74531C1.94727 1.25 1.25 1.82422 1.25 2.61289V17.2504C1.25 18.0434 1.94727 18.75 2.74531 18.75H17.3461C18.1484 18.75 18.75 18.0387 18.75 17.2504V2.61289C18.7547 1.82422 18.1484 1.25 17.3504 1.25ZM6.67461 15.8371H4.16758V8.04219H6.67461V15.8371ZM5.50781 6.85703H5.48984C4.6875 6.85703 4.16797 6.25977 4.16797 5.51211C4.16797 4.75078 4.70117 4.16758 5.52148 4.16758C6.3418 4.16758 6.84375 4.74648 6.86172 5.51211C6.86133 6.25977 6.3418 6.85703 5.50781 6.85703ZM15.8371 15.8371H13.3301V11.575C13.3301 10.5539 12.9652 9.85625 12.0582 9.85625C11.3652 9.85625 10.9551 10.325 10.7727 10.7816C10.7043 10.9457 10.6859 11.1691 10.6859 11.3973V15.8371H8.17891V8.04219H10.6859V9.12695C11.0508 8.60742 11.6207 7.85977 12.9469 7.85977C14.5926 7.85977 15.8375 8.94453 15.8375 11.2832L15.8371 15.8371Z" fill="white" /> </svg> Share </a> <a class="share-button share-mail" href="mailto:someone@gmail.com?body=https://www.invicti.com/support/installing-configuring-invicti-enterprise-scan-teamcity-plugin/"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.5625 3.75H3.4375C2.57456 3.75 1.875 4.44956 1.875 5.3125V14.6875C1.875 15.5504 2.57456 16.25 3.4375 16.25H16.5625C17.4254 16.25 18.125 15.5504 18.125 14.6875V5.3125C18.125 4.44956 17.4254 3.75 16.5625 3.75Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> <path d="M4.375 6.25L10 10.625L15.625 6.25" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Email </a> </div> <div class="article-widgets"> <div class="aw-box top-articles"> <div class="widget-title">Top Articles</div> <div class="widget-content"> <p><a href="https://www.invicti.com/support/what-is-invicti/">What is Invicti?</a></p> <p><a href="https://www.invicti.com/support/scan-policies-invicti/">Overview of Scan Policies</a></p> <p><a href="https://www.invicti.com/support/scheduling-scans/">Scheduling Scans</a></p> <p><a href="https://www.invicti.com/support/managing-integrations-invicti-enterprise/">Managing Integrations</a></p> <p><a href="https://www.invicti.com/support/built-in-reports-invicti/">Built-In Reports</a></p> </div> </div> <div class="aw-box open-ticket"> <h3>Invicti Help Center</h3> <div class="widget-content"> <p> Our Support team is ready to provide you with technical help. </p> <a class="open-ticket-btn widget" href="https://support.invicti.com/hc/en-us" target="blank"> Go to Help Center <svg class="svg-icon" viewBox="0 0 11 13" width="0.5em" height="0.63em"> <path fill="currentColor" d="M11,6.5L0,13V0L11,6.5z"></path> </svg> </a> <small>This will redirect you to the ticketing system.</small> </div> </div> </div> </main> <aside class="toc"> <div class="toc-sticky"> <div class="toc-box"> <div class="toc-title">In this topic</div> <div id="toc-content"> </div> </div> </div> </aside> </div> </div> <footer class="site-footer"> <div class="container primary-footer"> <div class="company-info-wrapper"> <figure> <img class="logo-icon footerlogo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="128" height="36" /> </figure> <div class="social-icons"> <a href="https://twitter.com/InvictiSecurity" aria-label="Twitter" target="_blank" rel="noopener noreferrer" title="Twitter"> <svg xmlns="http://www.w3.org/2000/svg" width="20.616" height="16.969"> <path d="M20.532 2.035a8.514 8.514 0 01-2.085.595c.336-.057.827-.663 1.025-.909a3.838 3.838 0 00.693-1.262c.017-.036.031-.081-.005-.109a.119.119 0 00-.111.009 10.543 10.543 0 01-2.472.946.168.168 0 01-.171-.044 1.845 1.845 0 00-.216-.221 4.377 4.377 0 00-1.2-.734 4.167 4.167 0 00-1.836-.3 4.4 4.4 0 00-1.743.493 4.473 4.473 0 00-1.405 1.148 4.316 4.316 0 00-.84 1.682 4.557 4.557 0 00-.044 1.775c.013.1 0 .112-.085.1A13.2 13.2 0 011.543.881c-.1-.112-.154-.112-.235.009a4.307 4.307 0 00.734 5.089c.167.158.339.315.522.46a4.342 4.342 0 01-1.639-.46c-.1-.062-.149-.026-.158.087a2.622 2.622 0 00.027.486 4.357 4.357 0 002.683 3.473 2.548 2.548 0 00.544.165 4.841 4.841 0 01-1.608.05c-.116-.022-.162.036-.116.149a4.523 4.523 0 003.38 2.829c.154.026.306.026.46.062-.009.014-.018.014-.027.027a5.364 5.364 0 01-2.306 1.223 8.282 8.282 0 01-3.5.449c-.189-.028-.228-.026-.279 0s-.006.076.054.125c.239.158.482.3.729.433a11.571 11.571 0 002.343.936 12.471 12.471 0 0012.106-2.831c2.481-2.465 3.351-5.866 3.351-9.27 0-.133.158-.207.251-.278a8.157 8.157 0 001.648-1.713.518.518 0 00.109-.328v-.018c0-.054 0-.039-.084 0z" fill="currentColor"/> </svg> </a> <a href="https://facebook.com/Invicti-Security-100090617259790/" aria-label="Facebook" target="_blank" rel="noopener noreferrer" title="Facebook"> <svg xmlns="http://www.w3.org/2000/svg" width="11.862" height="22.315"> <path d="M11.085 12.457l.615-4.008H7.854v-2.6a2 2 0 012.26-2.165h1.748V.272a21.277 21.277 0 00-3.1-.271c-3.167 0-5.237 1.92-5.237 5.395v3.055H.003v4.008h3.522v9.69a14.013 14.013 0 002.166.168 14.013 14.013 0 002.166-.168v-9.69z" fill="currentColor"/> </svg> </a> <a href="https://www.linkedin.com/company/invicti-security" aria-label="Linkedin" target="_blank" rel="noopener noreferrer" title="Linkedin"> <svg xmlns="http://www.w3.org/2000/svg" width="20.636" height="20.588"> <path d="M.342 6.834h4.282v13.754H.342zM2.483-.002a2.478 2.478 0 012.478 2.477 2.48 2.48 0 01-2.478 2.481 2.482 2.482 0 01-2.481-2.48A2.48 2.48 0 012.483-.002M7.305 6.834h4.1v1.882h.056a4.5 4.5 0 014.049-2.219c4.329 0 5.125 2.847 5.125 6.551v7.543h-4.271v-6.686c0-1.6-.032-3.648-2.223-3.648-2.226 0-2.564 1.737-2.564 3.53v6.8H7.305z" fill="currentColor"/> </svg> </a> <a href="https://www.invicti.com/blog/feed/" aria-label="RSS Feed" target="_blank" rel="noopener noreferrer" title="RSS Feed"> <svg width="20" height="20" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 6.34887C6.05667 6.08303 9.25 9.2772 8.985 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1.83333 14.3339C2.29357 14.3339 2.66667 13.9608 2.66667 13.5005C2.66667 13.0403 2.29357 12.6672 1.83333 12.6672C1.3731 12.6672 1 13.0403 1 13.5005C1 13.9608 1.3731 14.3339 1.83333 14.3339Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1 1.02553C9.42833 0.583866 14.7508 5.90637 14.3083 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <div class="company-info"> <p>Invicti Security Corp <br>1000 N Lamar Blvd Suite 300 <br>Austin, TX 78703, US</p> </div> <div class="copyright hidden-md"> <p>© Invicti 2024</p> </div> </div> <ul id="footer-primary-menu" class="footer-primary-menu"><li id="menu-item-50" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-50"><a href="#">RESOURCES</a> <ul class="sub-menu level--1"> <li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-52" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-52"><a href="https://www.invicti.com/integrations/">Integrations</a></li> <li id="menu-item-53" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-53"><a href="https://www.invicti.com/plans/">Plans</a></li> <li id="menu-item-54" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-54"><a href="https://www.invicti.com/case-studies/">Case Studies</a></li> <li id="menu-item-55" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55"><a href="https://www.invicti.com/changelogs/">Changelogs</a></li> <li id="menu-item-22395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22395"><a href="https://www.invicti.com/learn/welcome/">Invicti Learn</a></li> </ul> </li> <li id="menu-item-57" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-57"><a href="#">USE CASES</a> <ul class="sub-menu level--1"> <li id="menu-item-58" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="https://www.invicti.com/penetration-testing-software/">Penetration Testing Software</a></li> <li id="menu-item-59" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59"><a href="https://www.invicti.com/website-security-scanner/">Website Security Scanner</a></li> <li id="menu-item-60" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="https://www.invicti.com/ethical-hacking-software/">Ethical Hacking Software</a></li> <li id="menu-item-61" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-61"><a href="https://www.invicti.com/web-vulnerability-scanner/">Web Vulnerability Scanner</a></li> <li id="menu-item-62" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-62"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparisons</a></li> <li id="menu-item-63" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63"><a href="https://www.invicti.com/online-web-application-security-scanner/">Online Application Scanner</a></li> </ul> </li> <li id="menu-item-64" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-64"><a href="#">WEB SECURITY</a> <ul class="sub-menu level--1"> <li id="menu-item-70" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-70"><a href="https://www.invicti.com/blog/web-security/false-positives-web-application-security/">The Problem with False Positives</a></li> <li id="menu-item-69" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-69"><a href="https://www.invicti.com/blog/web-security/comparison-commercial-non-commercial-web-application-security-scanner/">Why Pay for Web Scanners</a></li> <li id="menu-item-68" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-68"><a href="https://www.invicti.com/blog/web-security/sql-injection-cheat-sheet/">SQL Injection Cheat Sheet</a></li> <li id="menu-item-67" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-67"><a href="https://www.invicti.com/blog/web-security/getting-started-web-application-security/">Getting Started with Web Security</a></li> <li id="menu-item-66" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66"><a href="https://www.invicti.com/web-vulnerability-scanner/vulnerabilities/">Vulnerability Index</a></li> <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65"><a href="https://www.invicti.com/blog/web-security/content-security-policy/">Using Content Security Policy to Secure Web Applications</a></li> </ul> </li> <li id="menu-item-55407" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-55407"><a href="#">COMPARISON</a> <ul class="sub-menu level--1"> <li id="menu-item-55408" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55408"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-burp-suite/">Burp Suite vs. Invicti</a></li> <li id="menu-item-55409" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55409"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-probely/">Probely vs. Invicti</a></li> <li id="menu-item-55410" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55410"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-acunetix/">Acunetix vs. Invicti</a></li> <li id="menu-item-55411" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55411"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-qualys/">Qualys vs. Invicti</a></li> <li id="menu-item-55412" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55412"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-nessus/">Tenable Nessus vs. Invicti</a></li> </ul> </li> <li id="menu-item-71" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-71"><a href="#">COMPANY</a> <ul class="sub-menu level--1"> <li id="menu-item-72" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-72"><a href="https://www.invicti.com/about/">About Us</a></li> <li id="menu-item-73" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-73"><a href="https://www.invicti.com/contact/">Contact Us</a></li> <li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-74"><a href="https://www.invicti.com/support/">Support</a></li> <li id="menu-item-75" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-76"><a href="https://www.invicti.com/resources/">Resources</a></li> <li id="menu-item-77" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-77"><a href="https://www.invicti.com/partners/">Partners</a></li> </ul> </li> </ul> </div> <div class="container copyright-mobile"> © Invicti 2024 </div> <div class="container"> <ul id="footer-bottom-menu" class="footer-bottom-menu"><li id="menu-item-55180" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55180"><a href="https://www.invicti.com/compliance/">Compliance</a></li> <li id="menu-item-78" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-78"><a href="https://www.invicti.com/legal/">Legal</a></li> <li id="menu-item-79" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-79"><a href="https://www.invicti.com/compliance/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-8973" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8973"><a href="https://www.invicti.com/compliance/california-privacy-rights/">California Privacy Rights</a></li> <li id="menu-item-80" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-80"><a href="https://www.invicti.com/legal/terms/">Terms of Use</a></li> <li id="menu-item-81" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-81"><a href="https://www.invicti.com/accessibility/">Accessibility</a></li> <li id="menu-item-82" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-82"><a href="https://www.invicti.com/sitemap/">Sitemap</a></li> </ul> </div> </footer> <div class="cookie-notice" id="cookie-notice-bar"> <p> By using this website you agree with our use of cookies to improve its performance and enhance your experience. More information in our <a href="https://www.invicti.com/privacy-policy" rel="noreferrer">Privacy Policy</a>. </p> <button class="cookie-notice-button" title="OK">OK</button> </div><link rel='stylesheet' id='wp-block-library-css' href='https://www.invicti.com/wp/wp-includes/css/dist/block-library/style.min.css' type='text/css' media='all' /> <style id='wp-block-library-inline-css' type='text/css'> .is-style-quote-primary.wp-block-quote{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity));border-left-width:0;color:rgb(16 24 32/var(--tw-text-opacity));margin-bottom:0;margin-left:2.5rem;padding-left:1.25rem;position:relative}@media (min-width:767px){.is-style-quote-primary.wp-block-quote{border-left-width:5px;margin-left:65px;padding-bottom:.1875rem;padding-left:2.5rem;padding-top:.1875rem}}.is-style-quote-primary.wp-block-quote a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-primary.wp-block-quote cite{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:500;margin-top:.625rem}@media (min-width:576px){.is-style-quote-primary.wp-block-quote cite{font-size:.875rem}}.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));height:100%;left:-45px;position:absolute;top:0;width:37px}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity));left:-65px;width:21px}}.is-style-quote-primary.wp-block-quote:before{content:"";-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{-webkit-mask-position:center;mask-position:center}} .is-style-quote-warning.wp-block-quote,blockquote.warning{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 222 222/var(--tw-bg-opacity));border-color:rgb(235 204 209/var(--tw-border-opacity));border-width:1px;color:rgb(169 68 66/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-warning.wp-block-quote a,blockquote.warning a{--tw-text-opacity:1;color:rgb(169 68 66/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-warning.wp-block-quote a:hover,blockquote.warning a:hover{--tw-text-opacity:1;color:rgb(109 36 35/var(--tw-text-opacity))}.is-style-quote-warning.wp-block-quote:before,blockquote.warning:before{--tw-bg-opacity:1;background-color:rgb(169 68 66/var(--tw-bg-opacity));content:"";height:100%;left:17px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:30px} .is-style-quote-info.wp-block-quote,blockquote.info{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(217 237 247/var(--tw-bg-opacity));border-color:rgb(188 232 241/var(--tw-border-opacity));border-width:1px;color:rgb(49 112 143/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-info.wp-block-quote a,blockquote.info a{--tw-text-opacity:1;color:rgb(49 112 143/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-info.wp-block-quote a:hover,blockquote.info a:hover{--tw-text-opacity:1;color:rgb(19 69 95/var(--tw-text-opacity))}.is-style-quote-info.wp-block-quote:before,blockquote.info:before{--tw-bg-opacity:1;background-color:rgb(49 112 143/var(--tw-bg-opacity));content:"";height:100%;left:20px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:25px} .is-style-quote-tips.wp-block-quote,blockquote.tips{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 254 250/var(--tw-bg-opacity));border-color:rgb(255 243 204/var(--tw-border-opacity));border-width:1px;color:rgb(121 108 16/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-tips.wp-block-quote a,blockquote.tips a{--tw-text-opacity:1;color:rgb(121 108 16/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-tips.wp-block-quote a:hover,blockquote.tips a:hover{--tw-text-opacity:1;color:rgb(77 70 14/var(--tw-text-opacity))}.is-style-quote-tips.wp-block-quote:before,blockquote.tips:before{--tw-bg-opacity:1;background-color:rgb(255 196 0/var(--tw-bg-opacity));content:"";height:100%;left:23px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:20px} .wp-block-group.is-style-group-info{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-width:1px;padding:1.5625rem} .is-style-whitepaper-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-top:1rem}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}@media (max-width:766px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} .is-style-whitepaper-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:0;margin-top:.625rem}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}.is-style-whitepaper-featured-query.wp-block-query .wp-block-post-excerpt__excerpt{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:1.36;padding-bottom:1.875rem;padding-top:1.25rem} .is-style-webinar-primary-query.wp-block-query ul{list-style-type:none;padding-left:0}.is-style-webinar-primary-query.wp-block-query ul li{margin-bottom:2rem}.is-style-webinar-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-featured-image{min-height:160px}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-bottom:.3125rem;margin-top:1rem}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}@media (max-width:766px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} @charset "UTF-8";.is-style-webinar-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-featured-image{margin-left:auto;margin-right:auto;max-width:600px}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.25rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:.625rem;margin-top:1.25rem}@media (min-width:767px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{margin-top:0}}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt{margin-bottom:1.25rem;margin-top:1.25rem}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{line-height:1.5}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:.9375rem}}@media (min-width:1200px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:1rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;margin-bottom:0;position:relative}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:after{content:"▶";font-size:.875rem;margin-left:.3125rem} .wp-block-code.is-style-code-highlighter>code{border-style:none;padding:.625rem 0}.wp-block-code.is-style-code-highlighter>code .punctuation{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.wp-block-code.is-style-code-highlighter>code .line-numbers-rows{padding-bottom:.625rem;padding-top:.625rem}.wp-block-code.is-style-code-highlighter+.toolbar{right:.3em}.wp-block-code.is-style-code-highlighter+.toolbar>.toolbar-item>button{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:rgb(177 177 178/var(--tw-bg-opacity));border-radius:.25rem;border-width:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(255 255 255/var(--tw-text-opacity));line-height:1;padding:.25rem .625rem;text-transform:lowercase} </style> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <script type="text/javascript" id="app-footer-js" nonce="wo123jejr234982dfn">!function(){"use strict";var r,n={},t={};function e(r){var o=t[r];if(void 0!==o)return o.exports;var u=t[r]={exports:{}};return n[r](u,u.exports,e),u.exports}e.m=n,r=[],e.O=function(n,t,o,u){if(!t){var i=1/0;for(s=0;s<r.length;s++){t=r[s][0],o=r[s][1],u=r[s][2];for(var f=!0,c=0;c<t.length;c++)(!1&u||i>=u)&&Object.keys(e.O).every((function(r){return e.O[r](t[c])}))?t.splice(c--,1):(f=!1,u<i&&(i=u));if(f){r.splice(s--,1);var a=o();void 0!==a&&(n=a)}}return n}u=u||0;for(var s=r.length;s>0&&r[s-1][2]>u;s--)r[s]=r[s-1];r[s]=[t,o,u]},e.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},function(){var r={8546:0,8138:0,9049:0,4522:0,8056:0,3626:0,2917:0,7260:0,7484:0,995:0,5398:0,1697:0,3896:0,687:0,7555:0,3206:0,9484:0,1120:0,4167:0,9774:0,3615:0,2229:0,9944:0,1785:0,196:0,896:0,1548:0,2651:0,1739:0,7532:0,1891:0,9047:0,7368:0,6469:0,2078:0,3415:0,8320:0,1010:0,4906:0,2855:0,4098:0,973:0,8201:0,7089:0,6840:0,3770:0,8043:0,4216:0,226:0,383:0,2285:0,6045:0,6567:0,1575:0,1855:0,9489:0,7215:0,4674:0,5177:0,9190:0,9402:0,4346:0,175:0,1121:0,6231:0,4055:0,5517:0,4298:0,7695:0,7916:0,8947:0,4915:0,547:0,7258:0,8624:0,2039:0,7381:0,7123:0,5839:0,3501:0,2132:0,1518:0,530:0,148:0,1909:0,5605:0,3375:0,188:0,1981:0,6362:0,798:0,2212:0,5950:0,8517:0,7991:0,5551:0,2125:0,1099:0,9331:0,5760:0,2126:0,4692:0,495:0,4777:0,961:0,9598:0,2845:0,2019:0,2879:0,2365:0};e.O.j=function(n){return 0===r[n]};var n=function(n,t){var o,u,i=t[0],f=t[1],c=t[2],a=0;if(i.some((function(n){return 0!==r[n]}))){for(o in f)e.o(f,o)&&(e.m[o]=f[o]);if(c)var s=c(e)}for(n&&n(t);a<i.length;a++)u=i[a],e.o(r,u)&&r[u]&&r[u][0](),r[i[a]]=0;return e.O(s)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}()}(); !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,(function(){"use strict";var t="undefined"!=typeof document&&document.documentMode,e={rootMargin:"0px",threshold:0,load:function(e){if("picture"===e.nodeName.toLowerCase()){var r=e.querySelector("img"),a=!1;null===r&&(r=document.createElement("img"),a=!0),t&&e.getAttribute("data-iesrc")&&(r.src=e.getAttribute("data-iesrc")),e.getAttribute("data-alt")&&(r.alt=e.getAttribute("data-alt")),a&&e.append(r)}if("video"===e.nodeName.toLowerCase()&&!e.getAttribute("data-src")&&e.children){for(var o=e.children,i=void 0,n=0;n<=o.length-1;n++)(i=o[n].getAttribute("data-src"))&&(o[n].src=i);e.load()}e.getAttribute("data-poster")&&(e.poster=e.getAttribute("data-poster")),e.getAttribute("data-src")&&(e.src=e.getAttribute("data-src")),e.getAttribute("data-srcset")&&e.setAttribute("srcset",e.getAttribute("data-srcset"));var d=",";if(e.getAttribute("data-background-delimiter")&&(d=e.getAttribute("data-background-delimiter")),e.getAttribute("data-background-image"))e.style.backgroundImage="url('"+e.getAttribute("data-background-image").split(d).join("'),url('")+"')";else if(e.getAttribute("data-background-image-set")){var u=e.getAttribute("data-background-image-set").split(d),g=u[0].substr(0,u[0].indexOf(" "))||u[0];g=-1===g.indexOf("url(")?"url("+g+")":g,1===u.length?e.style.backgroundImage=g:e.setAttribute("style",(e.getAttribute("style")||"")+"background-image: "+g+"; background-image: -webkit-image-set("+u+"); background-image: image-set("+u+")")}e.getAttribute("data-toggle-class")&&e.classList.toggle(e.getAttribute("data-toggle-class"))},loaded:function(){}};function r(t){t.setAttribute("data-loaded",!0)}var a=function(t){return"true"===t.getAttribute("data-loaded")},o=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return t instanceof Element?[t]:t instanceof NodeList?t:e.querySelectorAll(t)};return function(){var t,i,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:".lozad",d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},u=Object.assign({},e,d),g=u.root,s=u.rootMargin,c=u.threshold,l=u.load,b=u.loaded,f=void 0;"undefined"!=typeof window&&window.IntersectionObserver&&(f=new IntersectionObserver((t=l,i=b,function(e,o){e.forEach((function(e){(0<e.intersectionRatio||e.isIntersecting)&&(o.unobserve(e.target),a(e.target)||(t(e.target),r(e.target),i(e.target)))}))}),{root:g,rootMargin:s,threshold:c}));for(var A,m=o(n,g),v=0;v<m.length;v++)(A=m[v]).getAttribute("data-placeholder-background")&&(A.style.background=A.getAttribute("data-placeholder-background"));return{observe:function(){for(var t=o(n,g),e=0;e<t.length;e++)a(t[e])||(f?f.observe(t[e]):(l(t[e]),r(t[e]),b(t[e])))},triggerLoad:function(t){a(t)||(l(t),r(t),b(t))},observer:f}}})); !function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}((function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function t(o){function r(){}function i(n,t,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},r.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=o.write?o.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var u in i)i[u]&&(f+="; "+u,!0!==i[u]&&(f+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+f}}function c(e,t){if("undefined"!=typeof document){for(var r={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var f=i[c].split("="),u=f.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var a=n(f[0]);if(u=(o.read||o)(u,a)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(r[a]=u,e===a)break}catch(e){}}return e?r[e]:r}}return r.set=i,r.get=function(e){return c(e,!1)},r.getJSON=function(e){return c(e,!0)},r.remove=function(n,t){i(n,"",e(t,{expires:-1}))},r.defaults={},r.withConverter=t,r}((function(){}))})); (self.webpackChunk=self.webpackChunk||[]).push([[9742],{4006:function(){var e=function(){"use strict";var e={},t=[];return e.extend=function(t,o){e[t]=o},e.init=function(e){t.push(e)},e.getAll=function(){return e},e.on=function(e,t,o,n){if(!e)throw new Error("Please provide an element to attach the event to.");if(!t)throw new Error("Please provide an event to listen for.");if(!o||"function"!=typeof o)throw new Error("Please provide a valid callback function to run");e.addEventListener(t,o,n||!1)},e.off=function(e,t){e.removeEventListener(t,t)},e.imageLazyLoading=function(){lozad(".lozad",{rootMargin:"300px",threshold:0}).observe()},e.pageSettings=function(){var e=0,t=document.querySelector(":root"),o=document.querySelector(".site-footer"),n=document.querySelector(".site-header");if(n){var i=n.offsetHeight;e+=i,t.style.setProperty("--header-height",i+"px")}if(o){var a=o.offsetHeight;e+=a,t.style.setProperty("--footer-height",a+"px")}t.style.setProperty("--add-height",e+"px")},e.ready=function(){var e=new Event("ready");document.dispatchEvent(e)},document.addEventListener("DOMContentLoaded",e.ready),e.init(e.imageLazyLoading),e.init(e.pageSettings),window.onload=function(){e.pageSettings()},window.onresize=function(){e.pageSettings()},document.addEventListener("DOMContentLoaded",(function(){t.forEach((function(e){e.call()}))})),e}();window.App=e,e.init((function(){var e=document.getElementById("cookie-notice-bar"),t=e.getElementsByClassName("cookie-notice-button")[0],o=new Event("cookiesAllowed");Cookies.get("cookiebar")||e.classList.add("active"),t.onclick=function(){Cookies.set("cookiebar","hide",{expires:999}),window.dispatchEvent(o)},window.addEventListener("cookiesAllowed",(function(t){t.preventDefault(),e.classList.remove("active")}),!1)})),e.extend("utm",{nsUtmKeys:["utm_source","utm_campaign","utm_medium","utm_content","utm_term","utm_concept","vwo_id","vwo_variation","gclid"],localStoragePrefix:"",localStorageLandingPageKey:"ns_landing_page_key",localStorageReferrerKey:"referrerUrl",saveUtmDataToLocalStorage:function(){var e=this;try{var t=new URLSearchParams(window.location.search);this.nsUtmKeys.forEach((function(o){!0===t.has(o)&&null!=t.get(o)&&"null"!=t.get(o)&&localStorage.setItem(e.localStoragePrefix+o,t.get(o))})),Cookies.get(this.localStorageLandingPageKey)||(Cookies.set(this.localStorageLandingPageKey,window.location.protocol+"//"+window.location.host+window.location.pathname,{expires:1/48}),e.saveReferrer())}catch(e){console.error(e)}},saveReferrer:function(){var e=this,t=document.referrer;""!==t&&(t=(t=(t=(t=t.replace("http://","")).replace("https://","")).replace("www.","")).replace("/","")),localStorage.setItem(this.localStorageReferrerKey,t);var o=localStorage.getItem(e.localStoragePrefix+"utm_source");if(""!==t&&(null===o||""==o)){var n=e.getSearchEngine(t);localStorage.setItem(e.localStoragePrefix+"utm_source",n),localStorage.setItem(e.localStoragePrefix+"utm_medium",n!=t?"organic":"referral")}""!==t&&-1===t.indexOf("invicti.com")||null!==o&&""!=o||(localStorage.setItem(e.localStoragePrefix+"utm_source","direct"),localStorage.setItem(e.localStoragePrefix+"utm_medium","direct"))},getSearchEngine:function(e){return null==e?e:-1!=e.indexOf("google")?"google":-1!=e.indexOf("bing.com")?"bing":-1!=e.indexOf("duckduckgo.com")?"duckduckgo":-1!=e.indexOf("yahoo")?"yahoo":-1!=e.indexOf("baidu.com")?"baidu":-1!=e.indexOf("ecosia.org")?"ecosia.org ":-1!=e.indexOf("yandex")?"yandex":-1!=e.indexOf("qwant.com")?"qwant":-1!=e.indexOf("naver.com")?"naver":-1!=e.indexOf("ask")?"ask.com ":-1!=e.indexOf("so.com")?"so.com ":-1!=e.indexOf("sogou.com")?"sogou":e},vwoInit:function(){window.VWO=window.VWO||[],window.VWO.push(["onVariationApplied",function(e){if(e){var t=e[1],o=e[2];if(void 0!==window._vwo_exp[t].comb_n[o]&&["VISUAL_AB","VISUAL","SPLIT_URL","SURVEY"].indexOf(window._vwo_exp[t].type)>-1){var n=parseInt(sessionStorage.getItem("ns_vwo_id"),10);(isNaN(n)||n>t)&&(sessionStorage.setItem("ns_vwo_id",t),sessionStorage.setItem("ns_vwo_variation",o))}}}])},init:function(){var t=e.utm;t.vwoInit(),t.saveUtmDataToLocalStorage()}}),e.init(e.utm.init),e.init((function(){"function"==typeof WOW&&new WOW({boxClass:"wow",animateClass:"animated",offset:165,mobile:!1,live:!1}).init()})),e.init((function(){var e=document.querySelector(".invicti-bar"),t=localStorage.getItem("hello_bar");if(e&&(null==t||"hide"!==t)){var o=document.querySelector(".bar-close"),n=document.querySelector("body"),i=document.querySelector(".transparent-header");n.classList.add("invicti-bar-active"),i&&n.classList.add("transparent-header-active"),o.addEventListener("click",(function(){localStorage.setItem("hello_bar","hide"),n.classList.remove("invicti-bar-active"),n.classList.remove("transparent-header-active")}))}}))}},function(e){var t;t=4006,e(e.s=t)}]); /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+aspnet+c+csharp+graphql+java+json+json5+jsonp+markup-templating+nginx+php+python+regex+ruby+sql&plugins=line-numbers+toolbar+copy-to-clipboard */ var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(n,t){var r,i;switch(t=t||{},a.util.type(n)){case"Object":if(i=a.util.objId(n),t[i])return t[i];for(var l in r={},t[i]=r,n)n.hasOwnProperty(l)&&(r[l]=e(n[l],t));return r;case"Array":return i=a.util.objId(n),t[i]?t[i]:(r=[],t[i]=r,n.forEach((function(n,a){r[a]=e(n,t)})),r);default:return n}},getLanguage:function(e){for(;e;){var t=n.exec(e.className);if(t)return t[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,t){e.className=e.className.replace(RegExp(n,"gi"),""),e.classList.add("language-"+t)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var n=document.getElementsByTagName("script");for(var t in n)if(n[t].src==e)return n[t]}return null}},isActive:function(e,n,t){for(var r="no-"+n;e;){var a=e.classList;if(a.contains(n))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!t}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,n){var t=a.util.clone(a.languages[e]);for(var r in n)t[r]=n[r];return t},insertBefore:function(e,n,t,r){var i=(r=r||a.languages)[e],l={};for(var o in i)if(i.hasOwnProperty(o)){if(o==n)for(var s in t)t.hasOwnProperty(s)&&(l[s]=t[s]);t.hasOwnProperty(o)||(l[o]=i[o])}var u=r[e];return r[e]=l,a.languages.DFS(a.languages,(function(n,t){t===u&&n!=e&&(this[n]=l)})),l},DFS:function e(n,t,r,i){i=i||{};var l=a.util.objId;for(var o in n)if(n.hasOwnProperty(o)){t.call(n,o,n[o],r||o);var s=n[o],u=a.util.type(s);"Object"!==u||i[l(s)]?"Array"!==u||i[l(s)]||(i[l(s)]=!0,e(s,t,o,i)):(i[l(s)]=!0,e(s,t,null,i))}}},plugins:{},highlightAll:function(e,n){a.highlightAllUnder(document,e,n)},highlightAllUnder:function(e,n,t){var r={callback:t,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,l=0;i=r.elements[l++];)a.highlightElement(i,!0===n,r.callback)},highlightElement:function(n,t,r){var i=a.util.getLanguage(n),l=a.languages[i];a.util.setLanguage(n,i);var o=n.parentElement;o&&"pre"===o.nodeName.toLowerCase()&&a.util.setLanguage(o,i);var s={element:n,language:i,grammar:l,code:n.textContent};function u(e){s.highlightedCode=e,a.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,a.hooks.run("after-highlight",s),a.hooks.run("complete",s),r&&r.call(s.element)}if(a.hooks.run("before-sanity-check",s),(o=s.element.parentElement)&&"pre"===o.nodeName.toLowerCase()&&!o.hasAttribute("tabindex")&&o.setAttribute("tabindex","0"),!s.code)return a.hooks.run("complete",s),void(r&&r.call(s.element));if(a.hooks.run("before-highlight",s),s.grammar)if(t&&e.Worker){var c=new Worker(a.filename);c.onmessage=function(e){u(e.data)},c.postMessage(JSON.stringify({language:s.language,code:s.code,immediateClose:!0}))}else u(a.highlight(s.code,s.grammar,s.language));else u(a.util.encode(s.code))},highlight:function(e,n,t){var r={code:e,grammar:n,language:t};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,n){var t=n.rest;if(t){for(var r in t)n[r]=t[r];delete n.rest}var a=new s;return u(a,a.head,e),o(e,a,n,a.head,0),function(e){for(var n=[],t=e.head.next;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=a.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=a.hooks.all[e];if(t&&t.length)for(var r,i=0;r=t[i++];)r(n)}},Token:i};function i(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function l(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function o(e,n,t,r,s,g){for(var f in t)if(t.hasOwnProperty(f)&&t[f]){var h=t[f];h=Array.isArray(h)?h:[h];for(var d=0;d<h.length;++d){if(g&&g.cause==f+","+d)return;var v=h[d],p=v.inside,m=!!v.lookbehind,y=!!v.greedy,k=v.alias;if(y&&!v.pattern.global){var x=v.pattern.toString().match(/[imsuy]*$/)[0];v.pattern=RegExp(v.pattern.source,x+"g")}for(var b=v.pattern||v,w=r.next,A=s;w!==n.tail&&!(g&&A>=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(j<O||"string"==typeof C.value);C=C.next)L++,j+=C.value.length;L--,E=e.slice(A,j),P.index-=A}else if(!(P=l(b,0,E,m)))continue;S=P.index;var N=P[0],_=E.slice(0,S),M=E.slice(S+N.length),W=A+E.length;g&&W>g.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a<t&&r!==e.tail;a++)r=r.next;n.next=r,r.prev=n,e.length-=a}if(e.Prism=a,i.stringify=function e(n,t){if("string"==typeof n)return n;if(Array.isArray(n)){var r="";return n.forEach((function(n){r+=e(n,t)})),r}var i={type:n.type,content:e(n.content,t),tag:"span",classes:["token",n.type],attributes:{},language:t},l=n.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(i.classes,l):i.classes.push(l)),a.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=" "+s+'="'+(i.attributes[s]||"").replace(/"/g,""")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+o+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^<!\[CDATA\[|\]\]>$/i;var t={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; !function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; !function(e){function n(e,n){return e.replace(/<<(\d+)>>/g,(function(e,s){return"(?:"+n[+s]+")"}))}function s(e,s,a){return RegExp(n(e,s),a||"")}function a(e,n){for(var s=0;s<n;s++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var t="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",r="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var d=l(r),p=RegExp(l(t+" "+r+" "+i+" "+o)),c=l(r+" "+i+" "+o),u=l(t+" "+r+" "+o),g=a("<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>",2),b=a("\\((?:[^()]|<<self>>)*\\)",2),h="@?\\b[A-Za-z_]\\w*\\b",f=n("<<0>>(?:\\s*<<1>>)?",[h,g]),m=n("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[c,f]),k="\\[\\s*(?:,\\s*)*\\]",y=n("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[m,k]),w=n("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[g,b,k]),v=n("\\(<<0>>+(?:,<<0>>+)+\\)",[w]),x=n("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[v,m,k]),$={keyword:p,punctuation:/[<>()?,.:[\]]/},_="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",B='"(?:\\\\.|[^\\\\"\r\n])*"';e.languages.csharp=e.languages.extend("clike",{string:[{pattern:s("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:s("(^|[^@$\\\\])<<0>>",[B]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:s("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[m]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[h,x]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+)<<0>>(?=\\s*=)",[h]),lookbehind:!0},{pattern:s("(\\b<<0>>\\s+)<<1>>",[d,f]),lookbehind:!0,inside:$},{pattern:s("(\\bcatch\\s*\\(\\s*)<<0>>",[m]),lookbehind:!0,inside:$},{pattern:s("(\\bwhere\\s+)<<0>>",[h]),lookbehind:!0},{pattern:s("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[y]),lookbehind:!0,inside:$},{pattern:s("\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[x,u,h]),inside:$}],keyword:p,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:s("([(,]\\s*)<<0>>(?=\\s*:)",[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:s("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:s("(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[b]),lookbehind:!0,alias:"class-name",inside:$},"return-type":{pattern:s("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[x,m]),inside:$,alias:"class-name"},"constructor-invocation":{pattern:s("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[x]),lookbehind:!0,inside:$,alias:"class-name"},"generic-method":{pattern:s("<<0>>\\s*<<1>>(?=\\s*\\()",[h,g]),inside:{function:s("^<<0>>",[h]),generic:{pattern:RegExp(g),alias:"class-name",inside:$}}},"type-list":{pattern:s("\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))",[d,f,h,x,p.source,b,"\\bnew\\s*\\(\\s*\\)"]),lookbehind:!0,inside:{"record-arguments":{pattern:s("(^(?!new\\s*\\()<<0>>\\s*)<<1>>",[f,b]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:p,"class-name":{pattern:RegExp(x),greedy:!0,inside:$},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var E=B+"|"+_,R=n("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[E]),z=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),S="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",j=n("<<0>>(?:\\s*\\(<<1>>*\\))?",[m,z]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:s("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[S,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:s("^<<0>>(?=\\s*:)",[S]),alias:"keyword"},"attribute-arguments":{pattern:s("\\(<<0>>*\\)",[z]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=":[^}\r\n]+",F=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),P=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[F,A]),U=a(n("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<<self>>*\\)",[E]),2),Z=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[U,A]);function q(n,a){return{interpolation:{pattern:s("((?:^|[^{])(?:\\{\\{)*)<<0>>",[n]),lookbehind:!0,inside:{"format-string":{pattern:s("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[a,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:s('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[P]),lookbehind:!0,greedy:!0,inside:q(P,F)},{pattern:s('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[Z]),lookbehind:!0,greedy:!0,inside:q(Z,U)}],char:{pattern:RegExp(_),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism); Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:Prism.languages.csharp||{}}}); Prism.languages.c=Prism.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}}),Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete Prism.languages.c.boolean; Prism.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:Prism.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},Prism.hooks.add("after-tokenize",(function(n){if("graphql"===n.language)for(var t=n.tokens.filter((function(n){return"string"!=typeof n&&"comment"!==n.type&&"scalar"!==n.type})),e=0;e<t.length;){var a=t[e++];if("keyword"===a.type&&"mutation"===a.content){var r=[];if(c(["definition-mutation","punctuation"])&&"("===l(1).content){e+=2;var i=f(/^\($/,/^\)$/);if(-1===i)continue;for(;e<i;e++){var o=l(0);"variable"===o.type&&(b(o,"variable-input"),r.push(o.content))}e=i+1}if(c(["punctuation","property-query"])&&"{"===l(0).content&&(e++,b(l(0),"property-mutation"),r.length>0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var u=e;u<s;u++){var p=t[u];"variable"===p.type&&r.indexOf(p.content)>=0&&b(p,"variable-input")}}}}function l(n){return t[e+n]}function c(n,t){t=t||0;for(var e=0;e<n.length;e++){var a=l(e+t);if(!a||a.type!==n[e])return!1}return!0}function f(n,a){for(var r=1,i=e;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"==typeof s)if(n.test(s))r++;else if(a.test(s)&&0==--r)return i}return-1}function b(n,t){var e=n.alias;e?Array.isArray(e)||(n.alias=e=[e]):n.alias=e=[],e.push(t)}})); !function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(/<keyword>/g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; !function(n){var e=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;n.languages.json5=n.languages.extend("json",{property:[{pattern:RegExp(e.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:e,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(Prism); Prism.languages.jsonp=Prism.languages.extend("json",{punctuation:/[{}[\]();,.]/}),Prism.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/}); !function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u<i.length&&!(r>=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism); !function(e){var n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}(Prism); !function(e){var a=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:a,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];e.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:a,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(a){/<\?/.test(a.code)&&e.languages["markup-templating"].buildPlaceholders(a,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"php")}))}(Prism); Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python; !function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(Prism); !function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+["([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)","\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]","<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>"].join("|")+")",i='(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)';e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp("%r"+t+"[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp("(^|[^:]):"+i),lookbehind:!0,greedy:!0},{pattern:RegExp("([\r\n{(,][ \t]*)"+i+"(?=:(?!:))"),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp("%[qQiIwWs]?"+t),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp("%x"+t),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism); Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);t<r&&(t=r),t>s&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("<span></span>");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;r<t.length;r++)void 0===t[r]&&(t[r]=n.children[i++].getBoundingClientRect().height)})),t.forEach((function(e){var n=e.sizer,t=e.element.querySelector(".line-numbers-rows");n.style.display="none",n.innerHTML="",e.lineHeights.forEach((function(e,n){t.children[n].style.height=e+"px"}))}))}}}(); !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=[],t={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var r;r="function"==typeof a?a:function(e){var t;return"function"==typeof a.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){a.onClick.call(this,e)}))):"string"==typeof a.url?(t=document.createElement("a")).href=a.url:t=document.createElement("span"),a.className&&t.classList.add(a.className),t.textContent=a.text,t},n in t?console.warn('There is a button with the key "'+n+'" registered already.'):e.push(t[n]=r)},r=Prism.plugins.toolbar.hook=function(a){var r=a.element.parentNode;if(r&&/pre/i.test(r.nodeName)&&!r.parentNode.classList.contains("code-toolbar")){var o=document.createElement("div");o.classList.add("code-toolbar"),r.parentNode.insertBefore(o,r),o.appendChild(r);var i=document.createElement("div");i.classList.add("toolbar");var l=e,d=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(a.element);d&&(l=d.map((function(e){return t[e]||n}))),l.forEach((function(e){var t=e(a);if(t){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(t),i.appendChild(n)}})),o.appendChild(i)}};a("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var n,a,r=t.getAttribute("data-label");try{a=document.querySelector("template#"+r)}catch(e){}return a?n=a.content:(t.hasAttribute("data-url")?(n=document.createElement("a")).href=t.getAttribute("data-url"):n=document.createElement("span"),n.textContent=r),n}})),Prism.hooks.add("complete",r)}}(); !function(){function t(t){var e=document.createElement("textarea");e.value=t.getText(),e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{var o=document.execCommand("copy");setTimeout((function(){o?t.success():t.error()}),1)}catch(e){setTimeout((function(){t.error(e)}),1)}document.body.removeChild(e)}"undefined"!=typeof Prism&&"undefined"!=typeof document&&(Prism.plugins.toolbar?Prism.plugins.toolbar.registerButton("copy-to-clipboard",(function(e){var o=e.element,n=function(t){var e={copy:"Copy","copy-error":"Press Ctrl+C to copy","copy-success":"Copied!","copy-timeout":5e3};for(var o in e){for(var n="data-prismjs-"+o,c=t;c&&!c.hasAttribute(n);)c=c.parentElement;c&&(e[o]=c.getAttribute(n))}return e}(o),c=document.createElement("button");c.className="copy-to-clipboard-button",c.setAttribute("type","button");var r=document.createElement("span");return c.appendChild(r),u("copy"),function(e,o){e.addEventListener("click",(function(){!function(e){navigator.clipboard?navigator.clipboard.writeText(e.getText()).then(e.success,(function(){t(e)})):t(e)}(o)}))}(c,{getText:function(){return o.textContent},success:function(){u("copy-success"),i()},error:function(){u("copy-error"),setTimeout((function(){!function(t){window.getSelection().selectAllChildren(t)}(o)}),1),i()}}),c;function i(){setTimeout((function(){u("copy")}),n["copy-timeout"])}function u(t){r.textContent=n[t],c.setAttribute("data-copy-state",t)}})):console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."))}(); (self.webpackChunk=self.webpackChunk||[]).push([[1137],{2768:function(){App.init((function(){document.querySelectorAll(".is-style-code-highlighter").forEach((function(e){-1===e.classList.value.search("language-")&&e.classList.add("language-javascript"),e.classList.add("line-numbers"),e.parentNode.classList.add("line-numbers")})),Prism.highlightAll(document.querySelector("main.main"))}))}},function(e){var s;s=2768,e(e.s=s)}]); (self.webpackChunk=self.webpackChunk||[]).push([[9772],{2540:function(){App.init((function(){document.querySelectorAll(".single-support-entry img:not(.inline-img)").forEach((function(e){e.classList.contains("unpretty")||(e.parentElement.getAttribute("data-target")?e.parentElement.setAttribute("open-in-lb",e.getAttribute("src")):e.complete&&e.naturalWidth>0?App.lightbox.createLightboxLink(e,!1):e.addEventListener("load",(function(){App.lightbox.createLightboxLink(e,!0)})))})),document.querySelectorAll(".entry-content h2, .entry-content h3").forEach((function(e){null==e.getAttribute("id")&&e.setAttribute("id",function(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var t="åàáãäâèéëêìíïîòóöôùúüûñç·/_,:;",n=0,o=t.length;n<o;n++)e=e.replace(new RegExp(t.charAt(n),"g"),"aaaaaaeeeeiiiioooouuuunc------".charAt(n));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}(e.textContent))}));var e=document.querySelector("aside.toc");void 0!==e&&null!=e&&tocbot.init({tocSelector:"#toc-content",contentSelector:".entry-content",headingSelector:"h2",hasInnerContainers:!0,headingsOffset:80,scrollSmoothOffset:80,collapseDepth:1,scrollSmooth:!1})}))}},function(e){var t;t=2540,e(e.s=t)}]); (self.webpackChunk=self.webpackChunk||[]).push([[1815],{320:function(){App.extend("lightbox",{lightboxClose:new Event("lightboxClose"),body:document.querySelector("body"),modalOutClicks:function(e){"BODY"==e.target.tagName&&(document.removeEventListener("click",this.modalOutClicks,{modal:!0}),window.dispatchEvent(App.lightbox.lightboxClose))},appendImage:function(e,t){var n=new Image;n.src=e,n.addEventListener("load",(function(){document.body.appendChild(n);var e=n.offsetWidth;document.body.removeChild(n),n.style.width=e+"px",t.querySelector("figure").classList.add("image"),t.querySelector("figure").appendChild(n),t.querySelector(".loading").remove()}))},appendVideo:function(e,t,n,o){var i=new URLSearchParams([]);i.append("autoplay","1"),i.append("start",o);var l=document.createElement("iframe");if(l.width=728,l.height=504,l.title=this.playLabel,l.allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",l.allowFullscreen=!0,"youtube"==n)l.src="https://www.youtube-nocookie.com/embed/".concat(encodeURIComponent(e),"?").concat(i.toString());else{var c=o?"#t=".concat(o,"s"):"";l.src="https://player.vimeo.com/video/".concat(encodeURIComponent(e),"?").concat(i.toString()).concat(c)}t.querySelector("figure").classList.add("video"),t.querySelector("figure").appendChild(l),l.focus(),t.querySelector(".loading").remove()},appendContent:function(e,t){var n=document.getElementsByClassName(e)[0];if(n){var o,i=document.createElement("div"),l=t.querySelector("figure");i.classList.add("temp-location"),n.parentNode.insertBefore(i,n.nextSibling),l.classList.add("custom-content"),l.appendChild(n),null===(o=l.querySelector(".".concat(e," style")))||void 0===o||o.remove(),l.querySelector(".".concat(e)).style.display="block",t.querySelector(".loading").remove()}},createLightbox:function(e){var t=this;e.addEventListener("click",(function(n){n.preventDefault();var o=document.querySelector("body"),i=e.getAttribute("open-in-lb"),l=e.getAttribute("video-lb"),c=e.getAttribute("time-lb"),r=e.getAttribute("class-lb");if(void 0!==i||"undefined"!=r){var a=document.createElement("div");a.setAttribute("class","invicti-lightbox"),a.innerHTML='\n <button class="lightbox-close"><svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.5858L1.41422 0L0 1.41422L13.5858 15L0.150757 28.435L1.56497 29.8492L15 16.4142L28.2843 29.6985L29.6985 28.2843L16.4142 15L29.8492 1.56497L28.435 0.150757L15 13.5858Z" fill="#591769"></path>\n </svg></button>\n <figure><span class="loading"></span></figure>\n ',o.appendChild(a),l?t.appendVideo(i,a,l,c):r?t.appendContent(r,a):t.appendImage(i,a),setTimeout((function(){return a.classList.add("active")}),10);var d=a.querySelector(".lightbox-close");document.addEventListener("click",t.modalOutClicks,{modal:!0}),o.classList.add("invicti-lightbox-active"),d.addEventListener("click",(function(){window.dispatchEvent(t.lightboxClose)}))}})),e.addEventListener("mouseover",(function(){if(void 0===e.getAttribute("video-lb")){var t=e.getAttribute("open-in-lb");if(!e.classList.contains("prefetched")){e.classList.add("prefetched");var n=document.createElement("link");n.rel="prefetch",n.href=t,document.head.append(n)}}}))},createLightboxLink:function(e,t){var n=document.createElement("a");n.href=e.getAttribute("src"),n.setAttribute("open-in-lb",e.getAttribute("src")),(null!==e.getAttribute("width")&&e.getAttribute("width")<e.naturalWidth||e.naturalWidth>900)&&(e.parentNode.insertBefore(n,e),n.appendChild(e),t&&App.lightbox.createLightbox(n))},init:function(){var e=App.lightbox,t=document.querySelectorAll("[open-in-lb]");document.body.addEventListener("keydown",(function(t){"Escape"==t.key&&window.dispatchEvent(e.lightboxClose)})),window.addEventListener("lightboxClose",(function(){var t=document.querySelector(".invicti-lightbox");null==t||t.classList.remove("active"),e.body.classList.remove("invicti-lightbox-active");var n=document.querySelector(".temp-location");if(n){var o,i=t.querySelector(".custom-content").childNodes[0];i.style.display="none",n.parentNode.insertBefore(i,n),n.remove(),null==t||null===(o=t.parentNode)||void 0===o||o.removeChild(t)}else setTimeout((function(){var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)}),300)})),t.forEach((function(t){e.createLightbox(t)}))}}),App.init(App.lightbox.init)}},function(e){var t;t=320,e(e.s=t)}]); (self.webpackChunk=self.webpackChunk||[]).push([[4998],{1035:function(){App.extend("navbar",{stickyHeader:function(){var e=document.querySelector("body"),t=document.querySelector(".sticky-header-observer");t&&new IntersectionObserver((function(t){t[0].isIntersecting?e.classList.remove("sticky-header"):e.classList.add("sticky-header")})).observe(t)},mobileSubMenu:function(){document.querySelectorAll("#site-navigation .menu-item-has-children a").forEach((function(e){App.on(e,"click",(function(){App.mobileMenuActive&&(e.parentElement.classList.contains("active-sub-menu")?e.parentElement.classList.remove("active-sub-menu"):e.parentElement.classList.add("active-sub-menu"))}))}))},mobileMenu:function(){var e=document.querySelectorAll(".navbar-toggle"),t=document.querySelector("body");e&&e.forEach((function(e){App.on(e,"click",(function(){var e=document.querySelector(".site-header"),n=document.querySelector(".primary-menu-wrapper"),i=window.innerHeight;t.classList.contains("mobile-menu-active")?(n.removeAttribute("style"),t.classList.remove("mobile-menu-active"),App.extend("mobileMenuActive",!1)):(n.style.height=i-e.offsetHeight+"px",t.classList.add("mobile-menu-active"),App.extend("mobileMenuActive",!0))}))}))},resizer:function(){App.on(window,"resize",(function(){var e=document.querySelector(".primary-menu-wrapper");e&&(e.removeAttribute("style"),document.querySelector("body").classList.remove("mobile-menu-active"))}))},init:function(){var e=App.navbar;e.stickyHeader(),e.mobileMenu(),e.mobileSubMenu(),e.resizer()}}),App.init(App.navbar.init)}},function(e){var t;t=1035,e(e.s=t)}]); !function(e){var t={};function n(o){if(t[o])return t[o].exports;var l=t[o]={i:o,l:!1,exports:{}};return e[o].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(o,l,function(t){return e[t]}.bind(null,l));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){(function(o){var l,r,i;!function(o,s){r=[],l=function(e){"use strict";var t,o,l,r=n(2),i={},s={},c=n(3),a=n(4),u=n(5),d=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||d){var f=Object.prototype.hasOwnProperty;return s.destroy=function(){if(!i.skipRendering)try{document.querySelector(i.tocSelector).innerHTML=""}catch(e){console.warn("Element not found: "+i.tocSelector)}i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(i.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1))},s.init=function(e){if(d&&(i=function(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var o in n)f.call(n,o)&&(e[o]=n[o])}return e}(r,e||{}),this.options=i,this.state={},i.scrollSmooth&&(i.duration=i.scrollSmoothDuration,i.offset=i.scrollSmoothOffset,s.scrollSmooth=n(6).initSmoothScrolling(i)),t=c(i),o=a(i),this._buildHtml=t,this._parseContent=o,s.destroy(),null!==(l=o.selectHeadings(i.contentSelector,i.headingSelector)))){var h=o.nestHeadingsArray(l).nest;i.skipRendering||t.render(i.tocSelector,h),this._scrollListener=m((function(e){t.updateToc(l),!i.disableTocScrollSync&&u(i);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(l),i.scrollEndCallback&&i.scrollEndCallback(e))}),i.throttleTimeout),this._scrollListener(),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var p=null;return this._clickListener=m((function(e){i.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(l),p&&clearTimeout(p),p=setTimeout((function(){t.enableTocAnimation()}),i.scrollSmoothDuration)}),i.throttleTimeout),i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}},s.refresh=function(e){s.destroy(),s.init(e||this.options)},e.tocbot=s,s}function m(e,t,n){var o,l;return t||(t=250),function(){var r=n||this,i=+new Date,s=arguments;o&&i<o+t?(clearTimeout(l),l=setTimeout((function(){o=i,e.apply(r,s)}),t)):(o=i,e.apply(r,s))}}}(o),void 0===(i="function"==typeof l?l.apply(t,r):l)||(e.exports=i)}(void 0!==o?o:this.window||this.global)}).call(this,n(1))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports={tocSelector:".js-toc",contentSelector:".js-toc-content",headingSelector:"h1, h2, h3",ignoreSelector:".js-toc-ignore",hasInnerContainers:!1,linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},headingsOffset:1,throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,onClick:function(e){},orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:null,basePath:"",disableTocScrollSync:!1}},function(e,t){e.exports=function(e){var t=[].forEach,n=[].some,o=document.body,l=!0,r=" ";function i(n,o){var l=o.appendChild(function(n){var o=document.createElement("li"),l=document.createElement("a");return e.listItemClass&&o.setAttribute("class",e.listItemClass),e.onClick&&(l.onclick=e.onClick),e.includeHtml&&n.childNodes.length?t.call(n.childNodes,(function(e){l.appendChild(e.cloneNode(!0))})):l.textContent=n.textContent,l.setAttribute("href",e.basePath+"#"+n.id),l.setAttribute("class",e.linkClass+r+"node-name--"+n.nodeName+r+e.extraLinkClasses),o.appendChild(l),o}(n));if(n.children.length){var c=s(n.isCollapsed);n.children.forEach((function(e){i(e,c)})),l.appendChild(c)}}function s(t){var n=e.orderedList?"ol":"ul",o=document.createElement(n),l=e.listClass+r+e.extraListClasses;return t&&(l+=r+e.collapsibleClass,l+=r+e.isCollapsedClass),o.setAttribute("class",l),o}return{enableTocAnimation:function(){l=!0},disableTocAnimation:function(t){var n=t.target||t.srcElement;"string"==typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(l=!1)},render:function(e,t){var n=s(!1);t.forEach((function(e){i(e,n)}));var o=document.querySelector(e);if(null!==o)return o.firstChild&&o.removeChild(o.firstChild),0===t.length?o:o.appendChild(n)},updateToc:function(i){var s;s=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop,e.positionFixedSelector&&function(){var t;t=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop;var n=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=document.querySelector(e.tocSelector).offsetTop),t>e.fixedSidebarOffset?-1===n.className.indexOf(e.positionFixedClass)&&(n.className+=r+e.positionFixedClass):n.className=n.className.split(r+e.positionFixedClass).join("")}();var c,a=i;if(l&&null!==document.querySelector(e.tocSelector)&&a.length>0){n.call(a,(function(t,n){return function t(n){var o=0;return n!==document.querySelector(e.contentSelector&&null!=n)&&(o=n.offsetTop,e.hasInnerContainers&&(o+=t(n.offsetParent))),o}(t)>s+e.headingsOffset+10?(c=a[0===n?n:n-1],!0):n===a.length-1?(c=a[a.length-1],!0):void 0}));var u=document.querySelector(e.tocSelector).querySelectorAll("."+e.linkClass);t.call(u,(function(t){t.className=t.className.split(r+e.activeLinkClass).join("")}));var d=document.querySelector(e.tocSelector).querySelectorAll("."+e.listItemClass);t.call(d,(function(t){t.className=t.className.split(r+e.activeListItemClass).join("")}));var f=document.querySelector(e.tocSelector).querySelector("."+e.linkClass+".node-name--"+c.nodeName+'[href="'+e.basePath+"#"+c.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');-1===f.className.indexOf(e.activeLinkClass)&&(f.className+=r+e.activeLinkClass);var m=f.parentNode;m&&-1===m.className.indexOf(e.activeListItemClass)&&(m.className+=r+e.activeListItemClass);var h=document.querySelector(e.tocSelector).querySelectorAll("."+e.listClass+"."+e.collapsibleClass);t.call(h,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=r+e.isCollapsedClass)})),f.nextSibling&&-1!==f.nextSibling.className.indexOf(e.isCollapsedClass)&&(f.nextSibling.className=f.nextSibling.className.split(r+e.isCollapsedClass).join("")),function t(n){return-1!==n.className.indexOf(e.collapsibleClass)&&-1!==n.className.indexOf(e.isCollapsedClass)?(n.className=n.className.split(r+e.isCollapsedClass).join(""),t(n.parentNode.parentNode)):n}(f.parentNode.parentNode)}}}}},function(e,t){e.exports=function(e){var t=[].reduce;function n(e){return e[e.length-1]}function o(t){if(!(t instanceof window.HTMLElement))return t;if(e.ignoreHiddenElements&&(!t.offsetHeight||!t.offsetParent))return null;var n={id:t.id,children:[],nodeName:t.nodeName,headingLevel:function(e){return+e.nodeName.split("H").join("")}(t),textContent:e.headingLabelCallback?String(e.headingLabelCallback(t.textContent)):t.textContent.trim()};return e.includeHtml&&(n.childNodes=t.childNodes),e.headingObjectCallback?e.headingObjectCallback(n,t):n}return{nestHeadingsArray:function(l){return t.call(l,(function(t,l){var r=o(l);return r&&function(t,l){for(var r=o(t),i=r.headingLevel,s=l,c=n(s),a=i-(c?c.headingLevel:0);a>0;)(c=n(s))&&void 0!==c.children&&(s=c.children),a--;i>=e.collapseDepth&&(r.isCollapsed=!0),s.push(r)}(r,t.nest),t}),{nest:[]})},selectHeadings:function(t,n){var o=n;e.ignoreSelector&&(o=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return document.querySelector(t).querySelectorAll(o)}catch(e){return console.warn("Element not found: "+t),null}}}}},function(e,t){e.exports=function(e){var t=document.querySelector(e.tocSelector);if(t&&t.scrollHeight>t.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},function(e,t){function n(e,t){var n,o,l=window.pageYOffset,r={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||function(e,t,n,o){return(e/=o/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}},i=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]'),s="string"==typeof e?r.offset+(e?i&&i.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,c="function"==typeof r.duration?r.duration(s):r.duration;function a(e){o=e-n,window.scrollTo(0,r.easing(o,l,s,c)),o<c?requestAnimationFrame(a):(window.scrollTo(0,l+s),"function"==typeof r.callback&&r.callback())}requestAnimationFrame((function(e){n=e,a(e)}))}t.initSmoothScrolling=function(e){document.documentElement.style;var t=e.duration,o=e.offset,l=location.hash?r(location.href):location.href;function r(e){return e.slice(0,e.lastIndexOf("#"))}document.body.addEventListener("click",(function(i){!function(e){return"a"===e.tagName.toLowerCase()&&(e.hash.length>0||"#"===e.href.charAt(e.href.length-1))&&(r(e.href)===l||r(e.href)+"#"===l)}(i.target)||i.target.className.indexOf("no-smooth-scroll")>-1||"#"===i.target.href.charAt(i.target.href.length-2)&&"!"===i.target.href.charAt(i.target.href.length-1)||-1===i.target.className.indexOf(e.linkClass)||n(i.target.hash,{duration:t,offset:o,callback:function(){!function(e){var t=document.getElementById(e.substring(1));t&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}(i.target.hash)}})}),!1)}}]); (self.webpackChunk=self.webpackChunk||[]).push([[6631],{6688:function(){App.init((function(){var e=document.querySelectorAll(".sidebar-menu .menu-item.menu-item-has-children"),t=document.querySelector(".support-menu-trigger");e&&(e.forEach((function(e){e.classList.contains("current-menu-ancestor")&&e.classList.add("active"),e.querySelector(".menu-item-block").addEventListener("click",(function(){e.classList.toggle("active")}))})),t.addEventListener("click",(function(){document.querySelector(".sidebar-menu").classList.toggle("active"),document.querySelector(".sidebar").classList.toggle("active")})))}))}},function(e){var t;t=6688,e(e.s=t)}]); </script> <style id="prismcss">code[class*=language-],pre[class*=language-]{color:#000;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{position:relative;margin:.5em 0;overflow:visible;padding:1px}pre[class*=language-]>code{position:relative;z-index:1}code[class*=language-]{max-height:inherit;height:inherit;padding:0 1em;display:block;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{position:relative;padding:.2em;border-radius:.3em;color:#c92c2c;border:1px solid rgba(0,0,0,.1);display:inline;white-space:normal}pre[class*=language-]:after,pre[class*=language-]:before{content:'';display:block;position:absolute;bottom:.75em;left:.18em;width:40%;height:20%;max-height:13em}pre[class*=language-]:after{right:.75em;left:auto;-webkit-transform:rotate(2deg);-moz-transform:rotate(2deg);-ms-transform:rotate(2deg);-o-transform:rotate(2deg);transform:rotate(2deg)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7782}.token.punctuation{color:#5f6364}.token.boolean,.token.constant,.token.deleted,.token.function-name,.token.number,.token.property,.token.symbol,.token.tag{color:#c92c2c}.token.attr-name,.token.builtin,.token.char,.token.function,.token.inserted,.token.selector,.token.string{color:#2f9c0a}.token.entity,.token.operator,.token.url,.token.variable{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.class-name,.token.keyword{color:#1990b8}.token.important,.token.regex{color:#e90}.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,.5)}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:after,pre[class*=language-]:before{bottom:14px;box-shadow:none}}pre[class*=language-].line-numbers.line-numbers{padding-left:0}pre[class*=language-].line-numbers.line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers.line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-top:0;padding-bottom:0;padding-left:0}pre[data-line] code{position:relative;padding-left:4em}pre .line-highlight{margin-top:0}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:6;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}pre[class*=language]>code{border-style:none;padding-left:0;padding-right:0;padding-top:.625rem;padding-bottom:.625rem}pre[class*=language]:not(.line-numbers){border-radius:4px!important}pre[class*=language]:not(.line-numbers)>code{border-style:none;padding:.625rem 1em}pre[class*=language]>code .punctuation{--tw-text-opacity:1;color:rgb(29 28 41 / var(--tw-text-opacity))}div.code-toolbar>pre[class*=language]>code .line-numbers-rows{padding-top:.625rem;padding-bottom:.625rem}div.code-toolbar>.toolbar{right:.3em}div.code-toolbar>.toolbar>.toolbar-item>button{border-radius:.25rem;border-width:0;--tw-bg-opacity:1;background-color:rgb(204 204 204 / var(--tw-bg-opacity));padding-left:.625rem;padding-right:.625rem;padding-top:.25rem;padding-bottom:.25rem;text-transform:lowercase;line-height:1;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)} </style> <!-- Start VWO Async SmartCode --> <script async type='text/javascript' nonce="wo123jejr234982dfn"> window._vwo_code = window._vwo_code || (function(){ var account_id=301870, settings_tolerance=2000, library_tolerance=2500, use_existing_jquery=false, is_spa=1, hide_element='body', /* DO NOT EDIT BELOW THIS LINE */ f=false,d=document,code={use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById('_vis_opt_path_hides');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement('script');b.src=a;b.type='text/javascript';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName('head')[0].appendChild(b);},init:function(){ window.settings_timer=setTimeout(function () {_vwo_code.finish() },settings_tolerance);var a=d.createElement('style'),b=hide_element?hide_element+'{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}':'',h=d.getElementsByTagName('head')[0];a.setAttribute('id','_vis_opt_path_hides');a.setAttribute('type','text/css');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&f='+(+is_spa)+'&r='+Math.random());return settings_timer; }};window._vwo_settings_timer = code.init(); return code; }()); </script> <!-- End VWO Async SmartCode --> </body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->