:root{--ink:#203345;--muted:#596c7b;--line:#dbe4eb;--accent:#006b74;--soft:#eef4f7}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:16px/1.75 system-ui,'Microsoft YaHei',sans-serif;background:white}a{color:var(--accent);text-underline-offset:3px}header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:20px;padding:14px 24px;min-height:70px;background:white;border-bottom:1px solid var(--line)}.brand{font-size:23px;font-weight:750;text-decoration:none}.search{position:relative;margin-left:auto;width:min(460px,45vw)}input,select,button{font:inherit}input{width:100%;padding:8px 12px;border:1px solid #9db3bf;border-radius:5px}button{cursor:pointer}.hits{display:none;position:absolute;top:100%;right:0;max-height:70vh;overflow:auto;width:min(650px,90vw);background:white;box-shadow:0 8px 28px #2343;border:1px solid var(--line)}.hits a{display:block;padding:10px 15px;text-decoration:none;border-bottom:1px solid var(--line)}.hits small{display:block;color:var(--muted)}.layout{display:grid;grid-template-columns:240px minmax(0,1fr) 225px;max-width:1700px;margin:auto}nav{padding:22px 14px;background:var(--soft);height:calc(100vh - 70px);overflow:auto;position:sticky;top:70px}nav h2{font-size:13px;margin:20px 10px 6px;color:var(--muted);border:0;padding:0}nav a{display:block;font-size:14px;padding:5px 10px;text-decoration:none;border-radius:4px}nav a.active{background:#d5e9e9;font-weight:700;color:#004f59}main{min-width:0;padding:30px 38px 70px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:20px}h1{font-size:32px;line-height:1.4;margin:0 0 25px}h2{font-size:24px;border-top:1px solid var(--line);padding-top:20px;margin-top:38px}h3{font-size:19px;margin-top:28px}h4{font-size:16px;margin-top:22px}h1,h2,h3,h4{overflow-wrap:anywhere;scroll-margin-top:95px}aside{padding:28px 18px 20px 0;position:sticky;top:70px;height:calc(100vh - 70px);overflow:auto;font-size:12px}aside a,.mobile-toc a{display:block;padding:4px 0;text-decoration:none;overflow-wrap:anywhere}aside .depth-3,.mobile-toc .depth-3{padding-left:14px}p{margin:15px 0}code{font-family:Consolas,monospace;font-size:.9em;overflow-wrap:anywhere}p code,li code,td code{background:var(--soft);padding:2px 4px;border-radius:3px}pre{position:relative;padding:20px;background:#f5f7fa;border:1px solid var(--line);border-radius:6px;overflow:auto;font:13px/1.65 Consolas,monospace}pre code{white-space:pre;overflow-wrap:normal}table{border-collapse:collapse;width:100%;font-size:14px;margin:22px 0}td,th{border:1px solid var(--line);text-align:left;padding:9px 11px;vertical-align:top;overflow-wrap:anywhere}th{background:var(--soft)}tr:nth-child(even){background:#fafcfd}.table-wrap{overflow:auto}blockquote{border-left:4px solid #568f96;background:#f0f6f8;padding:8px 18px;margin:20px 0}details{margin:18px 0}summary{cursor:pointer}.pager{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:45px}footer{color:var(--muted);font-size:12px;margin-top:32px}.skip{position:fixed;top:-50px;left:10px;background:white;z-index:20}.skip:focus{top:5px}.mobile-toc,#nav-toggle{display:none}.source-line{display:block;white-space:pre}.source-line:target{background:#fff2b4}.num{display:inline-block;width:55px;color:#6a7a88;user-select:none}@media(max-width:1180px){.layout{grid-template-columns:220px minmax(0,1fr)}aside{display:none}.mobile-toc{display:block}}@media(max-width:760px){header{gap:12px;flex-wrap:wrap;padding:12px}header>span{display:none}.search{width:100%;margin:0}.layout{display:block}#nav-toggle{display:block;margin-left:auto}nav{display:none;position:static;height:auto}nav.open{display:block}main{padding:24px 16px}h1{font-size:27px}h2{font-size:21px}table{font-size:13px}td,th{min-width:100px}pre{padding:14px}html{scroll-padding-top:150px}}pre code.hljs {
  display: block;
  overflow-x: auto;
  padding: 1em
}
code.hljs {
  padding: 3px 5px
}
/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/
.hljs {
  color: #24292e;
  background: #ffffff
}
.hljs-doctag,
.hljs-keyword,
.hljs-meta .hljs-keyword,
.hljs-template-tag,
.hljs-template-variable,
.hljs-type,
.hljs-variable.language_ {
  /* prettylights-syntax-keyword */
  color: #d73a49
}
.hljs-title,
.hljs-title.class_,
.hljs-title.class_.inherited__,
.hljs-title.function_ {
  /* prettylights-syntax-entity */
  color: #6f42c1
}
.hljs-attr,
.hljs-attribute,
.hljs-literal,
.hljs-meta,
.hljs-number,
.hljs-operator,
.hljs-variable,
.hljs-selector-attr,
.hljs-selector-class,
.hljs-selector-id {
  /* prettylights-syntax-constant */
  color: #005cc5
}
.hljs-regexp,
.hljs-string,
.hljs-meta .hljs-string {
  /* prettylights-syntax-string */
  color: #032f62
}
.hljs-built_in,
.hljs-symbol {
  /* prettylights-syntax-variable */
  color: #e36209
}
.hljs-comment,
.hljs-code,
.hljs-formula {
  /* prettylights-syntax-comment */
  color: #6a737d
}
.hljs-name,
.hljs-quote,
.hljs-selector-tag,
.hljs-selector-pseudo {
  /* prettylights-syntax-entity-tag */
  color: #22863a
}
.hljs-subst {
  /* prettylights-syntax-storage-modifier-import */
  color: #24292e
}
.hljs-section {
  /* prettylights-syntax-markup-heading */
  color: #005cc5;
  font-weight: bold
}
.hljs-bullet {
  /* prettylights-syntax-markup-list */
  color: #735c0f
}
.hljs-emphasis {
  /* prettylights-syntax-markup-italic */
  color: #24292e;
  font-style: italic
}
.hljs-strong {
  /* prettylights-syntax-markup-bold */
  color: #24292e;
  font-weight: bold
}
.hljs-addition {
  /* prettylights-syntax-markup-inserted */
  color: #22863a;
  background-color: #f0fff4
}
.hljs-deletion {
  /* prettylights-syntax-markup-deleted */
  color: #b31d28;
  background-color: #ffeef0
}
.hljs-char.escape_,
.hljs-link,
.hljs-params,
.hljs-property,
.hljs-punctuation,
.hljs-tag {
  /* purposely ignored */
  
}
.code-tools{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);padding:8px 12px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;background:var(--soft)}.code-tools button{margin-left:auto;border:1px solid #a9bbc5;border-radius:4px;background:white;padding:2px 10px}.code-block pre{margin-top:0;border-radius:0 0 6px 6px}.code-block pre code.hljs{padding:0;background:transparent;overflow:visible}
.search-controls{display:flex;gap:6px}.search-controls input{min-width:0}.search-controls select{max-width:120px;border:1px solid #9db3bf;border-radius:5px;font-size:13px}.search-status{padding:8px 14px;font-size:13px;color:var(--muted)}.hits button{margin:12px;padding:6px 14px}.hits a:focus{background:#e1f1f1;outline:2px solid var(--accent);outline-offset:-2px}