:root {
    --html-font-size: 1em;
    --pixel-to-rem: 16 *1rem;
    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-weight: 400;
    --monospace-font-family: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;
    --body-background-color: #fff;
    --panel-background-color: #f6f8fa;
    --panel-group-background-color: #e1e8e8;
    --panel-border-color: #eaedf0;
    --color-accent-1: #ebf2f2;
    --color-accent-2: #d7e7e7;
    --color-accent-3: #6db33f;
    --body-font-color: #191e1e;
    --body-font-light-color: #273030;
    --body-font-dark-color: #141818;
    --link-font-color: #1565c0;
    --hover-link-font-color: #104d92;
    --scrollbar-thumb-color: silver;
    --mark-background-color: #39ff14;
    --selected-background-color: #191e1e;
    --layout-banner-logo-offset: 18px;
    --layout-banner-logo-height: 50px;
    --layout-max-width: 1400px;
    --layout-banner-height: 50px;
    --layout-border-color: var(--color-accent-1);
    --layout-switchtheme-invert-filter: invert();
    --layout-switchtheme-background-color: var(--body-background-color);
    --layout-switchtheme-button-color: var(--body-background-color);
    --layout-switchtheme-button-hover-color: var(--color-accent-1);
    --asciidoctor-doc-embellishment-margin-width: 250px;
    --asciidoctor-doc-background-embellishment-height: 147px;
    --asciidoctor-details-background: var(--color-accent-1);
    --asciidoctor-details-font-color: var(--body-font-light-color);
    --asciidoctor-author-separator-color: var(--color-accent-3);
    --asciidoctor-panel-background: var(--panel-background-color);
    --asciidoctor-panel-border-color: var(--panel-border-color);
    --asciidoctor-font-color: var(--body-font-color);
    --asciidoctor-heading-font-color: var(--body-font-dark-color);
    --asciidoctor-heading-font-weight: 600;
    --asciidoctor-alt-heading-font-weight: 600;
    --asciidoctor-section-divider-color: var(--color-accent-1);
    --asciidoctor-link-font-color: var(--link-font-color);
    --asciidoctor-hover-link-font-color: var(--hover-link-font-color);
    --asciidoctor-unresolved-link-font-color: #d32f2f;
    --asciidoctor-code-font-color: var(--asciidoctor-font-color);
    --asciidoctor-code-link-font-color: var(--link-font-color);
    --asciidoctor-code-background: rgba(27, 31, 35, 0.05);
    --asciidoctor-code-data-lang-color: #999;
    --asciidoctor-table-border-color: var(--asciidoctor-panel-border-color);
    --asciidoctor-table-header-footer-background: var(--color-accent-1);
    --asciidoctor-table-stripe-background: var(--color-accent-1);
    --asciidoctor-table-footer-background: linear-gradient(180deg, var(--color-accent-1) 0%, var(--body-background-color));
    --asciidoctor-admonition-background: var(--color-accent-1);
    --asciidoctor-admonition-pre-background: var(--color-accent-2);
    --asciidoctor-admonition-label-font-weight: 500;
    --asciidoctor-admonition-font-color: #f0f0f0;
    --asciidoctor-admonition-caution-background: #561164;
    --asciidoctor-admonition-important-background: #960000;
    --asciidoctor-admonition-note-background: #015785;
    --asciidoctor-admonition-tip-background: #3e6b1f;
    --asciidoctor-admonition-warning-background: #bd7400;
    --asciidoctor-abstract-background: var(--asciidoctor-panel-background);
    --asciidoctor-abstract-border-color: var(--asciidoctor-panel-border-color);
    --asciidoctor-quote-background: var(--color-accent-1);
    --asciidoctor-quote-border-color: var(--color-accent-3);
    --asciidoctor-quote-attribution-font-color: var(--color-accent-3);
    --asciidoctor-caption-font-color: var(--body-font-light-color);
    --asciidoctor-caption-font-weight: 400;
    --asciidoctor-example-background: var(--asciidoctor-panel-background);
    --asciidoctor-example-border-color: var(--asciidoctor-panel-border-color);
    --asciidoctor-sidebar-background: var(--color-accent-1);
    --asciidoctor-pre-background: var(--asciidoctor-panel-background);
    --asciidoctor-pre-border-color: var(--asciidoctor-panel-border-color);
    --asciidoctor-callout-background: var(--body-font-dark-color);
    --asciidoctor-callout-font-color: var(--body-background-color);
    --asciidoctor-footer-font-color: #b6b6b6;
    --highlight-background-color: var(--asciidoctor-pre-background);
    --highlight-font-color: #24292e;
    --highlight-keyword-font-color: #d73a49;
    --highlight-comment-font-color: #6a737d;
    --highlight-string-font-color: #032f62;
    --highlight-meta-font-color: #6a737d;
    --highlight-constant-font-color: #032f62;
    --highlight-variable-font-color: #005cc5;
    --highlight-tag-font-color: #22863a;
    --highlight-tag-attribute-font-color: #6f42c1;
    --highlight-type-font-color: #6f42c1;
    --highlight-link-font-color: var(--link-font-color);
    --highlight-addition-font-color: #22863a;
    --highlight-deletion-font-color: #24292e;
    --highlight-regex-font-color: #032f62;
    --tabs-border-color: var(--selected-background-color);
    --tabs-background-color: var(--body-background-color);
    --tabs-font-color: var(--body-font-color);
    --tabs-selected-background-color: var(--selected-background-color);
    --tabs-selected-font-color: var(--body-background-color);
    --tabs-hover-font-color: var(--hover-link-font-color);
    --tabs-hover-background: var(--color-accent-1);
    --tabs-group-background-color: var(--panel-group-background-color);
    --toc-width: 20rem;
    --toc-display: block;
    --toc-font-color: var(--body-font-color);
    --toc-hover-background-color: var(--color-accent-1);
    --toc-active-background-color: #63B175;
    --toc-active-font-color: #fff;
    --toc-back-to-index-filter: none;
    --toc-bar-display: none;
    --toc-bar-height: 24px;
    --toc-bar-button-filter: none;
    --codetools-button-filter: none;
    --codetools-button-active-filter: invert();
    --codetools-background-color: var(--body-background-color);
    --codetools-border-color: rgba(0, 0, 0, 0.3);
    --codetools-hover-background-color: var(--color-accent-1);
    --codetools-divider-color: var(--codetools-border-color);
    --codetools-popup-background-color: var(--selected-background-color);
    --codetools-popup-font-color: var(--body-background-color)
}

@media screen and (max-width: 1024px) {
    :root {
        --toc-width: 16rem;
        --asciidoctor-doc-embellishment-margin-width: 140px
    }
}

@media screen and (max-width: 800px) {
    :root {
        --layout-banner-height: 51px;
        --layout-banner-logo-height: 30px;
        --layout-banner-logo-offset: 10px;
        --layout-border-color: var(--body-background-color);
        --toc-bar-display: block;
        --toc-bar-height: 24px;
        --toc-width: 0;
        --toc-display: none;
        --asciidoctor-doc-embellishment-margin-width: 0
    }
}

html.dark-theme {
    --font-weight: 300;
    --body-background-color: #1b1f23;
    --panel-background-color: #262a2d;
    --panel-group-background-color: #303741;
    --panel-border-color: #2c3135;
    --color-accent-1: #272c33;
    --color-accent-1-invert: #d8d3cc;
    --color-accent-2: #2d333a;
    --color-accent-3: #6db33f;
    --body-font-color: #bbbcbe;
    --body-font-light-color: #abacaf;
    --body-font-dark-color: #cecfd1;
    --link-font-color: #086dc3;
    --hover-link-font-color: #107ddd;
    --scrollbar-thumb-color: #5f5f5f;
    --mark-background-color: #2eca12;
    --selected-background-color: #8d8d8d;
    --layout-switchtheme-invert-filter: none;
    --layout-switchtheme-background-color: var(--selected-background-color);
    --asciidoctor-code-background: rgba(177, 209, 241, 0.15);
    --asciidoctor-code-data-lang-color: #6e6e6e;
    --asciidoctor-admonition-font-color: #f0f0f0;
    --asciidoctor-admonition-caution-background: #603668;
    --asciidoctor-admonition-important-background: #924040;
    --asciidoctor-admonition-note-background: #355463;
    --asciidoctor-admonition-tip-background: #4d6340;
    --asciidoctor-admonition-warning-background: #967745;
    --asciidoctor-footer-font-color: #5e5e5e;
    --highlight-background-color: var(--asciidoctor-pre-background);
    --highlight-font-color: #f6f8fa;
    --highlight-keyword-font-color: #ea4a5a;
    --highlight-comment-font-color: #959da5;
    --highlight-string-font-color: #79b8ff;
    --highlight-meta-font-color: #959da5;
    --highlight-constant-font-color: #79b8ff;
    --highlight-variable-font-color: #c8e1ff;
    --highlight-tag-font-color: #7bcc72;
    --highlight-tag-attribute-font-color: #b392f0;
    --highlight-type-font-color: #b392f0;
    --highlight-link-font-color: #1565c0;
    --highlight-addition-font-color: #7bcc72;
    --highlight-deletion-font-color: #f6f8fa;
    --highlight-regex-font-color: #79b8ff;
    --toc-back-to-index-filter: invert();
    --toc-bar-button-filter: invert();
    --codetools-button-filter: invert();
    --codetools-button-active-filter: none;
    --codetools-hover-background-color: var(--color-accent-1-invert);
    --codetools-border-color: hsla(0, 0%, 100%, 0.274);
    --codetools-divider-color: rgba(44, 44, 44, 0.274)
}

html {
    box-sizing: border-box
}

*, :after, :before {
    box-sizing: inherit
}

body {
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    text-size-adjust: none
}

html {
    height: 100%;
    font-size: var(--html-font-size);
    scroll-behavior: smooth;
    min-width: 340px
}

body {
    margin: 0;
    overflow-wrap: anywhere;
    -ms-scroll-chaining: none;
    overscroll-behavior: none;
    font-family: var(--font-family);
    font-weight: var(--font-weight);
    color: var(--body-font-color);
    background-color: var(--body-background-color)
}

img, object, embed {
    max-width: 100%;
    height: auto;
}

a {
    text-decoration: none
}

a:hover {
    text-decoration: underline
}

a:active {
    background-color: none
}

code, kbd, pre {
    font-family: var(--monospace-font-family)
}

@supports (scrollbar-width:thin) {
    body * {
        scrollbar-width: thin;
        scrollbar-color: var(--scrollbar-thumb-color) transparent
    }
}

table {
    border-collapse: collapse;
    word-wrap: normal
}

mark {
    background: var(--mark-background-color)
}

#banner-container {
    height: var(--layout-banner-height);
    overflow: hidden;
    border-bottom: 1px solid var(--layout-border-color)
}

#banner {
    height: 100%;
    background: no-repeat top var(--layout-banner-logo-offset) left var(--layout-banner-logo-offset)/auto var(--layout-banner-logo-height);
    /*
    background-image: url(static/images/springboot/banner-logo.svg)
    */
}

#doc {
    overflow: hidden;
}

.contained {
    max-width: var(--layout-max-width);
    margin: 0 auto
}

#switch-theme label, div#switch-theme {
    display: none
}

html.js div#switch-theme {
    display: block;
    float: right;
    margin: 8px 6px 0 0
}

#switch-theme input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    position: relative;
    width: 40px;
    height: 22px;
    background: no-repeat url(../../images/springboot/octicons-16.svg#view-sun) 90% 50%/16px 16px, no-repeat url(../../images/springboot/octicons-16.svg#view-moon) 10% 50%/16px 16px;
    background-color: var(--layout-switchtheme-background-color);
    outline: none
}

#switch-theme input, #switch-theme input:before {
    filter: var(--layout-switchtheme-invert-filter);
    border-radius: 25px
}

#switch-theme input:before {
    content: "";
    position: absolute;
    left: 2px;
    top: 2px;
    height: 18px;
    width: 18px;
    background-color: var(--layout-switchtheme-button-color);
    transition: transform .2s
}

#switch-theme:hover input:before {
    background-color: var(--layout-switchtheme-button-hover-color)
}

#switch-theme input:checked:before {
    transform: translateX(18px)
}

.doc {
    color: var(--asciidoctor-font-color);
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    line-height: 1.6;
    letter-spacing: -.0027777778rem;
    margin: 0
}

.doc #content, .doc #footer {
    margin: 0 1.0rem
}

.doc #header > :not(#toc) {
    margin-left: 2rem;
    margin-right: 2rem
}

.doc #content {
    padding-bottom: 2rem
}

#doc {
    background: no-repeat 100% 0/305px 147px;
    background-image: url(../../images/springboot/doc-background.svg)
}

.doc #header {
    margin-right: var(--asciidoctor-doc-embellishment-margin-width)
}

.doc #header .details {
    background: var(--asciidoctor-details-background);
    color: var(--asciidoctor-details-font-color);
    padding: 1rem 1.5rem;
    font-weight: 600;
    font-size: .8em
}

.doc #header div.details {
    display: flex;
    flex-wrap: wrap
}

#header .details br {
    display: none
}

.doc #header .details span.author:after {
    content: "\2022";
    font-weight: 400;
    margin: .4em;
    color: var(--asciidoctor-author-separator-color)
}

#header .details span.author:nth-last-child(2):after {
    content: ""
}

.doc #preamble + .sect1, .doc .sect1 + .sect1 {
    margin-top: 4rem
}

.doc .sect1 + .sect1 {
    border-top: 1px solid var(--asciidoctor-section-divider-color)
}

.doc h1 {
    font-size: 2.3em
}

.doc h2 {
    font-size: 2em
}

.doc h3 {
    font-size: 1.7em
}

.doc h4 {
    font-size: 1.6em
}

.doc h5 {
    font-size: 1.4em
}

.doc h6 {
    font-size: 1.3em
}

.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 {
    color: var(--asciidoctor-heading-font-color);
    font-weight: var(--asciidoctor-heading-font-weight);
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    line-height: 1.3;
    margin: 1rem 0 1rem;
    padding-top: 1.6rem
}

.doc h1.sect0 {
    background: var(--asciidoctor-abstract-background);
    font-size: 1.8em;
    margin: 1.5rem -1rem 0;
    padding: .5rem 1rem
}

.doc h1:first-child {
    margin: 1.3rem 0
}

.doc h2:not(.discrete) {
    margin-left: -1rem;
    margin-right: -1rem;
    padding: 1.8rem 1rem .1rem
}

.doc h3:not(.discrete) {
    font-weight: var(--asciidoctor-alt-heading-font-weight)
}

.doc h1 .anchor, .doc h2 .anchor, .doc h3 .anchor, .doc h4 .anchor, .doc h5 .anchor, .doc h6 .anchor {
    position: absolute;
    text-decoration: none;
    width: 2.25ex;
    margin-left: -2ex;
    padding-left: .5ex;
    visibility: hidden;
    font-weight: 400
}

.doc h1 .anchor:before, .doc h2 .anchor:before, .doc h3 .anchor:before, .doc h4 .anchor:before, .doc h5 .anchor:before, .doc h6 .anchor:before {
    content: "\0023"
}

.doc h1:hover .anchor, .doc h2:hover .anchor, .doc h3:hover .anchor, .doc h4:hover .anchor, .doc h5:hover .anchor, .doc h6:hover .anchor {
    visibility: visible
}

.doc dl, .doc p {
    margin: 0
}

.doc a.bare {
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none
}

.doc a {
    color: var(--asciidoctor-link-font-color)
}

.doc a:hover {
    color: var(--asciidoctor-hover-link-font-color)
}

.doc a.unresolved {
    color: var(--asciidoctor-unresolved-link-font-color)
}

.doc .admonitionblock code, .doc p code, .doc thead code {
    color: var(--asciidoctor-code-font-color);
    background: var(--asciidoctor-code-background);
    border-radius: .25em;
    font-size: .95em;
    padding: .125em .25em
}

.doc .admonitionblock a code, .doc p a code, .doc thead a code {
    color: var(--asciidoctor-code-link-font-color)
}

.doc code, .doc pre {
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none
}

.doc pre {
    font-size: calc(14 / var(--pixel-to-rem));
    line-height: 1.3;
    margin: 0
}

.doc .listingblock pre:not(.highlight), .doc .literalblock pre, .doc pre.highlight code {
    background: var(--asciidoctor-pre-background);
    box-shadow: inset 0 0 1.75px var(--asciidoctor-pre-border-color);
    display: block;
    overflow-x: auto;
    padding: .95rem;
    border-radius: 4px
}

.doc pre.highlight code[data-lang]:before {
    content: attr(data-lang);
    text-transform: uppercase;
    display: block;
    position: absolute;
    top: .3rem;
    right: .3rem;
    line-height: 1;
    font-size: .65em;
    color: var(--asciidoctor-code-data-lang-color)
}

.doc pre.highlight {
    position: relative
}

.doc table pre.highlight code[data-lang]:before {
    display: none
}

.doc blockquote {
    margin: 0
}

.doc .paragraph.lead > p {
    font-size: calc(18 / var(--pixel-to-rem))
}

.doc .dlist, .doc .exampleblock, .doc .hdlist, .doc .imageblock, .doc .listingblock, .doc .literalblock, .doc .olist, .doc .paragraph, .doc .partintro, .doc .quoteblock, .doc .sidebarblock, .doc .ulist, .doc .verseblock, .doc details, .doc hr {
    margin: 1rem 0 0
}

.doc table.tableblock {
    display: block;
    width: 100%;
    overflow-x: auto
}

.doc table.tableblock td {
    min-width: 6rem
}

.doc table.tableblock {
    font-size: calc(15 / var(--pixel-to-rem));
    margin: 1.5rem 0 0
}

.doc table.tableblock + * {
    margin-top: 2rem
}

.doc td.tableblock > .content > :first-child {
    margin-top: 0
}

.doc table.tableblock td, .doc table.tableblock th {
    padding: .5rem
}

.doc table.tableblock thead th {
    border-bottom: 2.5px solid var(--asciidoctor-table-border-color)
}

.doc table.tableblock > :not(thead) th, .doc table.tableblock td {
    border-top: 1px solid var(--asciidoctor-table-border-color);
    border-bottom: 1px solid var(--asciidoctor-table-border-color)
}

.doc table.stripes-all > tbody > tr, .doc table.stripes-even > tbody > tr:nth-of-type(2n), .doc table.stripes-hover > tbody > tr:hover, .doc table.stripes-odd > tbody > tr:nth-of-type(odd) {
    background: var(--asciidoctor-table-stripe-background)
}

.doc table.tableblock > tfoot {
    background: var(--asciidoctor-table-footer-background)
}

.doc .listingblock.wrap pre, .doc .tableblock code, .doc .tableblock pre {
    white-space: pre-wrap
}

.doc td:first-child .listingblock.wrap pre, .doc td:first-child .tableblock code, .doc td:first-child .tableblock pre {
    white-space: nowrap
}

.doc .admonitionblock {
    margin: 2.5rem 0
}

.doc .admonitionblock p, .doc .admonitionblock td.content {
    font-size: calc(16 / var(--pixel-to-rem))
}

.doc .admonitionblock td.content > .title + *, .doc .admonitionblock td.content > :not(.title):first-child {
    margin-top: 0
}

.doc .admonitionblock pre {
    font-size: calc(14 / var(--pixel-to-rem));
    border: none
}

.doc .admonitionblock > table {
    table-layout: fixed;
    position: relative;
    width: 100%
}

.doc .admonitionblock td.content {
    padding: 1rem 1rem .75rem;
    background: var(--asciidoctor-admonition-background);
    width: 100%;
    word-wrap: anywhere
}

.doc .admonitionblock td.icon {
    position: absolute;
    top: 0;
    left: 0;
    font-size: calc(16 / var(--pixel-to-rem));
    line-height: 1;
    transform: translate(-.5rem, -50%);
    border-radius: .45rem;
    padding: .25em .075em
}

.doc .admonitionblock .icon i {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: 16px;
    background-repeat: no-repeat;
    background-position: .5em 0;
    filter: invert(100%);
    padding-left: 2em;
    vertical-align: initial
}

.doc .admonitionblock .icon i:after {
    border-left: 1px solid hsla(0, 0%, 100%, .3);
    content: attr(title);
    text-transform: capitalize;
    filter: invert(100%);
    font-weight: var(--asciidoctor-admonition-label-font-weight);
    color: var(--asciidoctor-admonition-font-color);
    font-style: normal;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    padding: 0 .5em;
    margin: -.05em
}

i.fa {
    background-size: 16px 16px
}

i.fa.icon-caution {
    background-image: url(../../images/springboot/octicons-16.svg#view-flame)
}

i.fa.icon-important {
    background-image: url(../../images/springboot/octicons-16.svg#view-stop)
}

i.fa.icon-note {
    background-image: url(../../images/springboot/octicons-16.svg#view-info)
}

i.fa.icon-tip {
    background-image: url(../../images/springboot/octicons-16.svg#view-light-bulb)
}

i.fa.icon-warning {
    background-image: url(../../images/springboot/octicons-16.svg#view-alert)
}

.doc .admonitionblock.caution td.icon {
    background: var(--asciidoctor-admonition-caution-background)
}

.doc .admonitionblock.important td.icon {
    background: var(--asciidoctor-admonition-important-background)
}

.doc .admonitionblock.note .icon {
    background: var(--asciidoctor-admonition-note-background)
}

.doc .admonitionblock.tip .icon {
    background: var(--asciidoctor-admonition-tip-background)
}

.doc .admonitionblock.warning .icon {
    background-color: var(--asciidoctor-admonition-warning-background)
}

.doc .imageblock {
    display: flex;
    flex-direction: column;
    align-items: center
}

.doc .image > img, .doc .imageblock img {
    display: inline-block;
    height: auto;
    max-width: 100%;
    vertical-align: middle
}

.doc .image:not(.left):not(.right) > img {
    margin-top: -.2em
}

.doc #preamble .abstract blockquote {
    background: var(--asciidoctor-abstract-background);
    border-left: 5px solid var(--asciidoctor-abstract-border-color);
    font-size: calc(16 / var(--pixel-to-rem));
    padding: .75em 1em
}

.doc .quoteblock, .doc .verseblock {
    background: var(--asciidoctor-quote-background);
    border-left: 5px solid var(--asciidoctor-quote-border-color)
}

.doc .quoteblock {
    padding: .25rem 2rem 1.25rem
}

.doc .quoteblock .attribution {
    color: var(--asciidoctor-quote-attribution-font-color);
    font-size: calc(15 / var(--pixel-to-rem));
    margin-top: .75rem
}

.doc .quoteblock blockquote {
    margin-top: 1rem
}

.doc .quoteblock .paragraph {
    font-style: italic
}

.doc .quoteblock cite {
    padding-left: 1em
}

.doc .verseblock {
    font-size: 1.15em;
    padding: 1rem 2rem
}

.doc .verseblock pre {
    font-family: inherit;
    font-size: inherit
}

.doc ol, .doc ul {
    margin: 0;
    padding: 0 0 0 2rem
}

.doc ol.none, .doc ol.unnumbered, .doc ol.unstyled, .doc ul.checklist, .doc ul.no-bullet, .doc ul.none, .doc ul.unstyled {
    list-style-type: none
}

.doc ol.unnumbered, .doc ul.no-bullet {
    padding-left: 1.25rem
}

.doc ol.unstyled, .doc ul.unstyled {
    padding-left: 0
}

.doc ul.circle, .doc ul.disc, .doc ul.square {
    list-style-type: square
}

.doc ol.arabic {
    list-style-type: decimal
}

.doc ol.decimal {
    list-style-type: decimal-leading-zero
}

.doc ol.loweralpha {
    list-style-type: lower-alpha
}

.doc ol.upperalpha {
    list-style-type: upper-alpha
}

.doc ol.lowerroman {
    list-style-type: lower-roman
}

.doc ol.upperroman {
    list-style-type: upper-roman
}

.doc ol.lowergreek {
    list-style-type: lower-greek
}

.doc ul.checklist {
    padding-left: .5rem
}

.doc ul.checklist p > i.fa-check-square-o:first-child, .doc ul.checklist p > i.fa-square-o:first-child {
    display: inline-flex;
    justify-content: center;
    width: 1.25rem
}

.doc ul.checklist i.fa-check-square-o:before {
    content: "\2713"
}

.doc ul.checklist i.fa-square-o:before {
    content: "\274f"
}

.doc .dlist .dlist, .doc .dlist .olist, .doc .dlist .ulist, .doc .olist .dlist, .doc .olist .olist, .doc .olist .ulist, .doc .ulist .dlist, .doc .ulist .olist, .doc .ulist .ulist {
    margin-top: .5rem
}

.doc .olist li, .doc .ulist li {
    margin-bottom: .3rem
}

.doc .admonitionblock .listingblock, .doc .olist .listingblock, .doc .ulist .listingblock {
    padding: 0
}

.doc .admonitionblock .title, .doc .exampleblock .title, .doc .imageblock .title, .doc .listingblock .title, .doc .literalblock .title, .doc .openblock .title, .doc .tableblock caption {
    color: var(--asciidoctor-caption-font-color);
    font-size: calc(14 / var(--pixel-to-rem));
    font-weight: var(--asciidoctor-caption-font-weight);
    font-style: italic;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    letter-spacing: .01em;
    padding-bottom: .075rem;
    text-align: left
}

.doc .imageblock .title {
    margin-top: .5rem;
    padding-bottom: 0
}

.doc .exampleblock > .content {
    background: var(--asciidoctor-example-background);
    border: 1px solid var(--asciidoctor-example-border-color);
    border-radius: 4px;
    padding: .75rem
}

.doc .exampleblock > .content > :first-child {
    margin-top: 0
}

.doc .sidebarblock {
    background: var(--asciidoctor-sidebar-background);
    padding: 2.2rem
}

.doc .sidebarblock > .content > .title {
    font-size: calc(23 / var(--pixel-to-rem));
    font-weight: var(--asciidoctor-alt-heading-font-weight);
    line-height: 1.3;
    margin-bottom: 1.2rem
}

.doc .sidebarblock > .content > :not(.title):first-child {
    margin-top: 0
}

.doc b.button {
    white-space: nowrap
}

.doc b.button:before {
    content: "[";
    padding-right: .25em
}

.doc b.button:after {
    content: "]";
    padding-left: .25em
}

.doc .menuseq, .doc .path {
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none
}

.doc .menuseq i.caret:before {
    content: "\203a";
    font-size: 1.1em;
    font-weight: var(--asciidoctor-body-font-weight-bold);
    line-height: .90909
}

.doc kbd {
    display: inline-block;
    font-size: calc(12 / var(--pixel-to-rem));
    background: var(--asciidoctor-kbd-background);
    border: 1px solid var(--asciidoctor-kbd-border-color);
    border-radius: .25em;
    box-shadow: 0 1px 0 var(--asciidoctor-kbd-border-color), 0 0 0 .1em var(--body-background) inset;
    padding: .25em .5em;
    vertical-align: text-bottom;
    white-space: nowrap
}

.doc .keyseq, .doc kbd {
    line-height: 1
}

.doc .keyseq {
    font-size: calc(16 / var(--pixel-to-rem))
}

.doc .keyseq kbd {
    margin: 0 .125em
}

.doc .keyseq kbd:first-child {
    margin-left: 0
}

.doc .keyseq kbd:last-child {
    margin-right: 0
}

.doc i.fa {
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    font-style: normal
}

.doc .language-console .hljs-meta {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.doc .dlist dt {
    font-style: italic
}

.doc .dlist dd {
    margin: 0 0 .25rem 1.5rem
}

.doc .dlist dd:last-of-type {
    margin-bottom: 0
}

.doc td.hdlist1, .doc td.hdlist2 {
    padding: .5rem 0 0;
    vertical-align: top
}

.doc tr:first-child > .hdlist1, .doc tr:first-child > .hdlist2 {
    padding-top: 0
}

.doc td.hdlist1 {
    font-weight: var(--body-font-weight-bold);
    padding-right: .25rem
}

.doc td.hdlist2 {
    padding-left: .25rem
}

.doc .colist {
    font-size: calc(16 / var(--pixel-to-rem));
    margin: .25rem 0 -.25rem
}

.doc .colist > table > tbody > tr > :first-child, .doc .colist > table > tr > :first-child {
    padding: .25em .5rem 0;
    vertical-align: top
}

.doc .colist > table > tbody > tr > :last-child, .doc .colist > table > tr > :last-child {
    padding: .25rem 0
}

.doc .conum[data-value] {
    font-family: var(--monospace-font-family);
    border-radius: 100%;
    display: inline-block;
    font-size: calc(12.5 / var(--pixel-to-rem));
    font-style: normal;
    line-height: 1.2;
    text-align: center;
    width: 1.25em;
    height: 1.25em;
    letter-spacing: -.25ex;
    text-indent: -.25ex;
    background: var(--asciidoctor-callout-background);
    color: var(--asciidoctor-callout-font-color)
}

.doc .conum[data-value]:after {
    content: attr(data-value)
}

.doc .conum[data-value] + b {
    display: none
}

.doc hr {
    border: solid var(--asciidoctor-section-divider-color);
    border-width: 2px 0 0;
    height: 0
}

.doc :not(pre).nowrap {
    white-space: nowrap
}

.doc .nobreak {
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    word-wrap: normal
}

.doc .right {
    float: right
}

.doc .left {
    float: left
}

.doc .stretch {
    width: 100%
}

.doc .underline {
    text-decoration: underline
}

.doc .line-through {
    text-decoration: line-through
}

.doc .halign-left {
    text-align: left
}

.doc .halign-right {
    text-align: right
}

.doc .halign-center {
    text-align: center
}

.doc .valign-top {
    vertical-align: top
}

.doc .valign-bottom {
    vertical-align: bottom
}

.doc .valign-middle {
    vertical-align: middle
}

#footer #footer-text {
    font-size: calc(14 / var(--pixel-to-rem));
    color: var(--asciidoctor-footer-font-color);
    padding: 2rem 0;
    border-top: 1px solid var(--asciidoctor-section-divider-color)
}

/*html.dark-theme #doc {
    background: no-repeat 100% 0/305px 147px;
    background-image: url(static/images/springboot/doc-background-dark.svg)
}

@media screen and (max-width: 1024px) {
    #doc {
        background: no-repeat 100% 0/203px 95px;
        background-image: url(static/images/springboot/doc-background.svg)
    }

    html.dark-theme #doc {
        background: no-repeat 100% 0/203px 95px;
        background-image: url(static/images/springboot/doc-background-dark.svg)
    }
}*/

@media screen and (max-width: 800px) {
    #doc, html.dark-theme #doc {
        background: 0 0
    }
}

.hljs {
    display: block;
    overflow-x: auto;
    padding: .5em;
    background: var(--highlight-background-color);
    color: var(--highlight-font-color)
}

.hljs-keyword, .hljs-selector-tag, .hljs-subst {
    color: var(--highlight-keyword-font-color)
}

.hljs-comment, .hljs-quote {
    color: var(--highlight-comment-font-color)
}

.hljs-doctag, .hljs-string {
    color: var(--highlight-string-font-color)
}

.hljs-meta {
    color: var(--highlight-meta-font-color)
}

.hljs-built_in, .hljs-builtin-name, .hljs-literal, .hljs-number, .hljs-symbol {
    color: var(--highlight-constant-font-color)
}

.hljs-template-variable, .hljs-variable {
    color: var(--highlight-variable-font-color)
}

.hljs-attribute, .hljs-name, .hljs-tag {
    color: var(--highlight-tag-font-color)
}

.hljs-tag .hljs-attr {
    color: var(--highlight-tag-attribute-font-color)
}

.hljs-class .hljs-title, .hljs-type {
    color: var(--highlight-type-font-color)
}

.hljs-regexp {
    color: var(--highlight-regex-font-color)
}

.hljs-link {
    text-decoration: underline;
    color: var(--highlight-link-font-color)
}

.hljs-addition {
    color: var(--highlight-addition-font-color)
}

.hljs-deletion {
    color: var(--highlight-deletion-font-color)
}

.hljs-emphasis {
    font-style: italic
}

.hljs-strong {
    font-weight: 700
}

.language-json .hljs-literal, .language-json .hljs-number {
    color: var(--highlight-variable-font-color)
}

.language-json .hljs-attr {
    color: var(--highlight-string-font-color)
}

.hidden {
    display: none
}

.doc .tabs {
    font-weight: 700;
    font-size: calc(12 / var(--pixel-to-rem));
    border-style: none;
    display: inline-block;
    position: relative;
    bottom: 0;
    margin-top: .5rem;
    margin-bottom: calc(2 / var(--pixel-to-rem))
}

.doc .tab, .doc .tab:not(:first-child) {
    border: 1px solid var(--tabs-border-color)
}

.doc .tab {
    padding: .3rem .6rem;
    background-color: var(--tabs-background-color);
    color: var(--tabs-font-color);
    display: inline-block;
    cursor: pointer;
    margin-bottom: calc(2 / var(--pixel-to-rem));
    border-radius: 0;
    transition: background-color .2s
}

.doc .tab:hover {
    color: var(--tabs-hover-font-color);
    background-color: var(--tabs-hover-background);
    text-decoration: underline
}

.doc .tab.selected {
    background-color: var(--tabs-selected-background-color);
    border-color: var(--tabs-selected-background-color);
    color: var(--tabs-selected-font-color)
}

.doc .tab.selected:hover {
    color: var(--tabs-selected-font-color);
    text-decoration: none
}

.doc div.openblock.tabs-content > .content {
    padding: 1rem;
    background-color: var(--tabs-group-background-color)
}

body.toc-left #doc {
    border-left: 1px solid var(--layout-border-color);
    overflow: hidden;
    margin-left: var(--toc-width)
}

#toc {
    display: var(--toc-display);
    position: absolute;
    top: 200px;
    width: var(--toc-width);
    margin-left: calc(var(--toc-width) * -1);
    border-right: 1px solid var(--layout-border-color);
    padding: 2.0rem 1rem 0;
    font-size: .95rem;
    line-height: 1.1
}

#toctitle {
    display: none
}

#toc ol, #toc ul {
    padding: 0
}

#toc ul ol, #toc ul ul {
    padding-left: .8rem
}

#toc li {
    display: block;
    list-style: none
}

#toc a {
    display: block;
    text-decoration: none;
    color: var(--toc-font-color);
    padding: .4rem .6rem;
    border-radius: 4px
}

#toc a:hover {
    background-color: var(--toc-hover-background-color)
}

body.fixed-toc #toc {
    position: fixed;
    top: 60px;
    overflow-x: hidden;
    height: 100%
}

#toc li.active > a {
    background-color: var(--toc-active-background-color);
    color: var(--toc-active-font-color)
}

#toc > ol ol, #toc > ul ul {
    display: none
}

#toc li.active > ol, #toc li.active > ul, #toc ol.expanded, #toc ul.expanded {
    display: block
}

#back-to-index {
    display: block;
    margin-bottom: .6rem
}

#back-to-index a {
    padding-left: 1.6rem;
    margin-bottom: .6rem;
    margin-top: 1.3rem
}

#back-to-index a:before {
    content: "";
    filter: var(--toc-back-to-index-filter);
    background: no-repeat 50%/16px 16px;
    background-image: url(../../images/springboot/octicons-16.svg#view-chevron-left);
    display: block;
    position: absolute;
    min-width: 16px;
    min-height: 16px;
    left: 1.4rem
}

#tocbar-container {
    position:absolute;
    display: var(--toc-bar-display);
    width: 100%;
    /*
    height: var(--tocbar-height);
    */
    background-color: var(--body-background-color);
    border-bottom: 1px solid var(--panel-border-color);
    z-index: 100
}

#tocbar {
    width: 100%;
    height: 100%;
    padding-left: 6px
}

body.fixed-toc #tocbar-container {
    position: fixed;
    top: 55px;
}

button#toggle-toc {
    width: var(--toc-bar-height);
    height: var(--toc-bar-height);
    filter: var(--toc-bar-button-filter);
    background: no-repeat 50%/16px 16px;
    background-image: url(../../images/springboot/octicons-16.svg#view-three-bars);
    border: none;
    outline: none;
    padding: 0;
    display: block
}

body.show-toc button#toggle-toc {
    background-image: url(../../images/springboot/octicons-16.svg#view-x)
}

@media screen and (max-width: 800px) {
    body.fixed-toc #toc {
        /*
        top: var(--toc-bar-height)
        */
    }

    #toc {
        top: calc(var(--layout-banner-height) + var(--toc-bar-height));
        width: 100%;
        height: 100%;
        left: 0;
        background-color: var(--body-background-color);
        z-index: 10000
    }

    body.show-toc #toc {
        display: block
    }
}

div.codetools {
    --button-width: 28px;
    --button-height: 24px;
    --arrow-size: 5px;
    display: flex;
    position: absolute;
    bottom: 9px;
    right: 8px;
    background: var(--codetools-background-color);
    padding: 0;
    border-radius: 2px;
    border: 1px solid var(--codetools-border-color);
    opacity: 0;
    transition: opacity .15s ease-in-out
}

.doc pre.highlight:hover div.codetools {
    opacity: 1
}

div.codetools button {
    width: var(--button-width);
    height: var(--button-height);
    filter: var(--codetools-button-filter);
    background: no-repeat 50%/16px 16px;
    border: none;
    padding: 0;
    outline: none
}

div.codetools button:not(:last-child) {
    border-right: 1px solid var(--codetools-divider-color)
}

div.codetools button:hover {
    background-color: var(--codetools-hover-background-color);
    transition: filter .3s
}

div.codetools button:active {
    filter: var(--codetools-button-active-filter);
    transition: filter none
}

div.codetools button span.label {
    display: none
}

div.codetools button.copy-button {
    background-image: url(../../images/springboot/octicons-16.svg#view-clippy)
}

div.codetools button.unfold-button {
    background-image: url(../../images/springboot/octicons-16.svg#view-unfold)
}

div.codetools button.fold-button {
    background-image: url(../../images/springboot/octicons-16.svg#view-fold)
}

div.codetools span.copied {
    opacity: 0;
    display: block;
    content: "";
    position: relative;
    width: var(--button-width);
    height: var(--button-height);
    z-index: 1000000;
    transition: opacity .5s
}

div.codetools button:active span.copied {
    filter: invert();
    transition: filter none
}

div.codetools span.copied:before {
    position: absolute;
    bottom: calc(var(--arrow-size) * -1);
    left: 50%;
    margin-left: calc(var(--arrow-size) / -2);
    content: "";
    border: var(--arrow-size) solid var(--codetools-popup-background-color);
    border-left-color: transparent;
    border-bottom-color: var(--codetools-popup-background-color);
    border-right-color: transparent;
    border-top-color: transparent
}

div.codetools span.copied:after {
    content: "Copied to clipboard!";
    position: absolute;
    top: calc(var(--button-height) + var(--arrow-size));
    right: 100%;
    margin-right: calc(var(--button-width) * -1);
    background-color: var(--codetools-popup-background-color);
    color: var(--codetools-popup-font-color);
    padding: 5px 8px;
    border-radius: 3px;
    font-weight: 700
}

div.codetools button.clicked span.copied {
    opacity: 1
}

span.fold-block {
    position: relative;
    float: left;
    clear: left;
    padding-right: .75rem;
    overflow: hidden
}

code.unfolded span.fold-block.hide-when-folded, code:not(.unfolded) span.fold-block.hide-when-unfolded {
    max-height: 99999px;
    opacity: 1
}

code.unfolded span.fold-block.hide-when-unfolded, code:not(.unfolded) span.fold-block.hide-when-folded {
    max-height: 0;
    opacity: 0
}

code.unfolding span.fold-block.hide-when-folded {
    max-height: 600px;
    opacity: 1
}

code.folding span.fold-block.hide-when-unfolded {
    max-height: 400px;
    opacity: 1
}

code.folding span.fold-block.hide-when-folded, code.unfolding span.fold-block.hide-when-unfolded {
    max-height: 0;
    opacity: 0
}

code.unfolding span.fold-block.hide-when-unfolded {
    transition: max-height .2s cubic-bezier(0, 1, 0, 1), opacity .2s linear
}

code.folding span.fold-block.hide-when-unfolded, code.unfolding span.fold-block.hide-when-folded {
    transition: max-height .2s cubic-bezier(1, 0, 1, 0), opacity .2s linear
}

code.folding span.fold-block.hide-when-folded {
    transition: max-height .2s cubic-bezier(0, 1, 0, 1), opacity .2s linear
}