@charset "UTF-8";
:root { --gray-100: #f8f9fa; --gray-200: #e9ecef; --gray-500: #adb5bd; --color-link: #0055bb; --color-visited-link: #8440f1; --body-background: white; --body-font-color: black; --icon-filter: none; --hint-color-info: #6bf; --hint-color-warning: #fd6; --hint-color-danger: #f66; }

/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/
html { line-height: 1.15; -webkit-text-size-adjust: 100%; }

body { margin: 0; }

main { display: block; }

h1 { font-size: 2em; margin: 0.67em 0; }

hr { box-sizing: content-box; height: 0; overflow: visible; }

pre { font-family: monospace, monospace; font-size: 1em; }

a { background-color: transparent; }

abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; }

b, strong { font-weight: bolder; }

code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }

small { font-size: 80%; }

sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sub { bottom: -0.25em; }

sup { top: -0.5em; }

img { border-style: none; }

button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }

button, input { overflow: visible; }

button, select { text-transform: none; }

button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }

button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }

button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }

fieldset { padding: 0.35em 0.75em 0.625em; }

legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }

progress { vertical-align: baseline; }

textarea { overflow: auto; }

[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; }

[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }

[type="search"] { -webkit-appearance: textfield; outline-offset: -2px; }

[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }

details { display: block; }

summary { display: list-item; }

template { display: none; }

[hidden] { display: none; }

.flex { display: flex; }

.flex-auto { flex: auto; }

.flex-even { flex: 1 1; }

.flex-wrap { flex-wrap: wrap; }

.justify-start { justify-content: flex-start; }

.justify-end { justify-content: flex-end; }

.justify-center { justify-content: center; }

.justify-between { justify-content: space-between; }

.align-center { align-items: center; }

.mx-auto { margin: 0 auto; }

.text-center { text-align: center; }

.text-left { text-align: left; }

.text-right { text-align: right; }

.hidden { display: none; }

input.toggle { height: 0; width: 0; overflow: hidden; opacity: 0; position: absolute; }

.clearfix::after { content: ""; display: table; clear: both; }

html { font-size: 16px; scroll-behavior: smooth; touch-action: manipulation; }

body { min-width: 20rem; color: var(--body-font-color); background: var(--body-background); letter-spacing: 0.33px; font-weight: 400; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; box-sizing: border-box; }

body * { box-sizing: inherit; }

h1, h2, h3, h4, h5 { font-weight: 400; }

a { text-decoration: none; color: var(--color-link); }

img { vertical-align: baseline; }

:focus { outline-style: auto; outline-color: currentColor; outline-color: -webkit-focus-ring-color; }

aside nav ul { padding: 0; margin: 0; list-style: none; }

aside nav ul li { margin: 1em 0; position: relative; }

aside nav ul a { display: block; }

aside nav ul a:hover { opacity: 0.5; }

aside nav ul ul { padding-inline-start: 1rem; }

ul.pagination { display: flex; justify-content: center; list-style-type: none; }

ul.pagination .page-item a { padding: 1rem; }

.container { max-width: 80rem; margin: 0 auto; }

.book-icon { filter: var(--icon-filter); }

.book-brand { margin-top: 0; margin-bottom: 1rem; }

.book-brand img { height: 1.5em; width: 1.5em; margin-inline-end: 0.5rem; }

.book-menu { flex: 0 0 16rem; font-size: 0.875rem; }

.book-menu .book-menu-content { width: 16rem; padding: 1rem; background: var(--body-background); position: fixed; top: 0; bottom: 0; overflow-x: hidden; overflow-y: auto; }

.book-menu a, .book-menu label { color: inherit; cursor: pointer; word-wrap: break-word; }

.book-menu a.active { color: var(--color-link); }

.book-menu input.toggle + label + ul { display: none; }

.book-menu input.toggle:checked + label + ul { display: block; }

.book-menu input.toggle + label::after { content: "▸"; }

.book-menu input.toggle:checked + label::after { content: "▾"; }

body[dir="rtl"] .book-menu input.toggle + label::after { content: "◂"; }

body[dir="rtl"] .book-menu input.toggle:checked + label::after { content: "▾"; }

.book-section-flat { margin: 2rem 0; }

.book-section-flat > a, .book-section-flat > span, .book-section-flat > label { font-weight: bolder; }

.book-section-flat > ul { padding-inline-start: 0; }

.book-page { min-width: 20rem; flex-grow: 1; padding: 1rem; }

.book-post { margin-bottom: 3rem; }

.book-header { display: none; margin-bottom: 1rem; }

.book-header label { line-height: 0; }

.book-header img.book-icon { height: 1.5em; width: 1.5em; }

.book-search { position: relative; margin: 1rem 0; border-bottom: 1px solid transparent; }

.book-search input { width: 100%; padding: 0.5rem; border: 0; border-radius: 0.25rem; background: var(--gray-100); color: var(--body-font-color); }

.book-search input:required + .book-search-spinner { display: block; }

.book-search .book-search-spinner { position: absolute; top: 0; margin: 0.5rem; margin-inline-start: calc(100% - 1.5rem); width: 1rem; height: 1rem; border: 1px solid transparent; border-top-color: var(--body-font-color); border-radius: 50%; animation: spin 1s ease infinite; }

@keyframes spin { 100% { transform: rotate(360deg); } }

.book-search small { opacity: 0.5; }

.book-toc { flex: 0 0 16rem; font-size: 0.75rem; }

.book-toc .book-toc-content { width: 16rem; padding: 1rem; position: fixed; top: 0; bottom: 0; overflow-x: hidden; overflow-y: auto; }

.book-toc img { height: 1em; width: 1em; }

.book-toc nav > ul > li:first-child { margin-top: 0; }

.book-footer { padding-top: 1rem; font-size: 0.875rem; }

.book-footer img { height: 1em; width: 1em; margin-inline-end: 0.5rem; }

.book-comments { margin-top: 1rem; }

.book-languages { margin-block-end: 2rem; }

.book-languages .book-icon { height: 1em; width: 1em; margin-inline-end: 0.5em; }

.book-languages ul { padding-inline-start: 1.5em; }

.book-menu-content, .book-toc-content, .book-page, .book-header aside, .markdown { transition: 0.2s ease-in-out; transition-property: transform, margin, opacity, visibility; will-change: transform, margin, opacity; }

@media screen and (max-width: 56rem) { #menu-control, #toc-control { display: inline; } .book-menu { visibility: hidden; margin-inline-start: -16rem; font-size: 16px; z-index: 1; } .book-toc { display: none; } .book-header { display: block; } #menu-control:focus ~ main label[for="menu-control"] { outline-style: auto; outline-color: currentColor; outline-color: -webkit-focus-ring-color; } #menu-control:checked ~ main .book-menu { visibility: initial; } #menu-control:checked ~ main .book-menu .book-menu-content { transform: translateX(16rem); box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.1); } #menu-control:checked ~ main .book-page { opacity: 0.25; } #menu-control:checked ~ main .book-menu-overlay { display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0; } #toc-control:focus ~ main label[for="toc-control"] { outline-style: auto; outline-color: currentColor; outline-color: -webkit-focus-ring-color; } #toc-control:checked ~ main .book-header aside { display: block; } body[dir="rtl"] #menu-control:checked ~ main .book-menu .book-menu-content { transform: translateX(-16rem); } }

@media screen and (min-width: 80rem) { .book-page, .book-menu .book-menu-content, .book-toc .book-toc-content { padding: 2rem 1rem; } }

@font-face { font-family: roboto; font-style: normal; font-weight: 400; font-display: swap; src: local(""), url(fonts/roboto-v27-latin-regular.woff2) format("woff2"), url(fonts/roboto-v27-latin-regular.woff) format("woff"); }

@font-face { font-family: roboto; font-style: normal; font-weight: 700; font-display: swap; src: local(""), url(fonts/roboto-v27-latin-700.woff2) format("woff2"), url(fonts/roboto-v27-latin-700.woff) format("woff"); }

@font-face { font-family: roboto mono; font-style: normal; font-weight: 400; font-display: swap; src: local(""), url(fonts/roboto-mono-v13-latin-regular.woff2) format("woff2"), url(fonts/roboto-mono-v13-latin-regular.woff) format("woff"); }

body { font-family: roboto, sans-serif; }

code { font-family: roboto mono, monospace; }

@media print { .book-menu, .book-footer, .book-toc { display: none; } .book-header, .book-header aside { display: block; } main { display: block !important; } }

.markdown { line-height: 1.6; }

.markdown > :first-child { margin-top: 0; }

.markdown h1, .markdown h2, .markdown h3, .markdown h4, .markdown h5, .markdown h6 { font-weight: 400; line-height: 1; margin-top: 1.5em; margin-bottom: 1rem; }

.markdown h1 a.anchor, .markdown h2 a.anchor, .markdown h3 a.anchor, .markdown h4 a.anchor, .markdown h5 a.anchor, .markdown h6 a.anchor { opacity: 0; font-size: 0.75em; vertical-align: middle; text-decoration: none; }

.markdown h1:hover a.anchor, .markdown h1 a.anchor:focus, .markdown h2:hover a.anchor, .markdown h2 a.anchor:focus, .markdown h3:hover a.anchor, .markdown h3 a.anchor:focus, .markdown h4:hover a.anchor, .markdown h4 a.anchor:focus, .markdown h5:hover a.anchor, .markdown h5 a.anchor:focus, .markdown h6:hover a.anchor, .markdown h6 a.anchor:focus { opacity: initial; }

.markdown h4, .markdown h5, .markdown h6 { font-weight: bolder; }

.markdown h5 { font-size: 0.875em; }

.markdown h6 { font-size: 0.75em; }

.markdown b, .markdown optgroup, .markdown strong { font-weight: bolder; }

.markdown a { text-decoration: none; }

.markdown a:hover { text-decoration: underline; }

.markdown a:visited { color: var(--color-visited-link); }

.markdown img { max-width: 100%; height: auto; }

.markdown code { padding: 0 0.25rem; background: var(--gray-200); border-radius: 0.25rem; font-size: 0.875em; }

.markdown pre { padding: 1rem; background: var(--gray-100); border-radius: 0.25rem; overflow-x: auto; }

.markdown pre code { padding: 0; background: 0 0; }

.markdown p { word-wrap: break-word; }

.markdown blockquote { margin: 1rem 0; padding: 0.5rem 1rem 0.5rem 0.75rem; border-inline-start: 0.25rem solid var(--gray-200); border-radius: 0.25rem; }

.markdown blockquote :first-child { margin-top: 0; }

.markdown blockquote :last-child { margin-bottom: 0; }

.markdown table { overflow: auto; display: block; border-spacing: 0; border-collapse: collapse; margin-top: 1rem; margin-bottom: 1rem; }

.markdown table tr th, .markdown table tr td { padding: 0.5rem 1rem; border: 1px solid var(--gray-200); }

.markdown table tr:nth-child(2n) { background: var(--gray-100); }

.markdown hr { height: 1px; border: none; background: var(--gray-200); }

.markdown ul, .markdown ol { padding-inline-start: 2rem; }

.markdown dl dt { font-weight: bolder; margin-top: 1rem; }

.markdown dl dd { margin-inline-start: 0; margin-bottom: 1rem; }

.markdown .highlight table tr td:nth-child(1) pre { margin: 0; padding-inline-end: 0; }

.markdown .highlight table tr td:nth-child(2) pre { margin: 0; padding-inline-start: 0; }

.markdown details { padding: 1rem; border: 1px solid var(--gray-200); border-radius: 0.25rem; }

.markdown details summary { line-height: 1; padding: 1rem; margin: -1rem; cursor: pointer; }

.markdown details[open] summary { margin-bottom: 0; }

.markdown figure { margin: 1rem 0; }

.markdown figure figcaption p { margin-top: 0; }

.markdown-inner > :first-child { margin-top: 0; }

.markdown-inner > :last-child { margin-bottom: 0; }

.markdown .book-expand { margin-top: 1rem; margin-bottom: 1rem; border: 1px solid var(--gray-200); border-radius: 0.25rem; overflow: hidden; }

.markdown .book-expand .book-expand-head { background: var(--gray-100); padding: 0.5rem 1rem; cursor: pointer; }

.markdown .book-expand .book-expand-content { display: none; padding: 1rem; }

.markdown .book-expand input[type="checkbox"]:checked + .book-expand-content { display: block; }

.markdown .book-tabs { margin-top: 1rem; margin-bottom: 1rem; border: 1px solid var(--gray-200); border-radius: 0.25rem; overflow: hidden; display: flex; flex-wrap: wrap; }

.markdown .book-tabs label { display: inline-block; padding: 0.5rem 1rem; border-bottom: 1px transparent; cursor: pointer; }

.markdown .book-tabs .book-tabs-content { order: 999; width: 100%; border-top: 1px solid var(--gray-100); padding: 1rem; display: none; }

.markdown .book-tabs input[type="radio"]:checked + label { border-bottom: 1px solid var(--color-link); }

.markdown .book-tabs input[type="radio"]:checked + label + .book-tabs-content { display: block; }

.markdown .book-tabs input[type="radio"]:focus + label { outline-style: auto; outline-color: currentColor; outline-color: -webkit-focus-ring-color; }

.markdown .book-columns { margin-left: -1rem; margin-right: -1rem; }

.markdown .book-columns > div { margin: 1rem 0; min-width: 10rem; padding: 0 1rem; }

.markdown a.book-btn { display: inline-block; font-size: 0.875rem; color: var(--color-link); line-height: 2rem; padding: 0 1rem; border: 1px solid var(--color-link); border-radius: 0.25rem; cursor: pointer; }

.markdown a.book-btn:hover { text-decoration: none; }

.markdown .book-hint.info { border-color: #6bf; background-color: rgba(102, 187, 255, 0.1); }

.markdown .book-hint.warning { border-color: #fd6; background-color: rgba(255, 221, 102, 0.1); }

.markdown .book-hint.danger { border-color: #f66; background-color: rgba(255, 102, 102, 0.1); }

.pl-4 { padding-left: 20px; }

/*# sourceMappingURL=main.css.map */