diff --git a/404.html b/404.html index 14a6e6e..b0a2764 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/assets/stylesheets/main.10ba22f1.min.css b/assets/stylesheets/main.10ba22f1.min.css deleted file mode 100644 index 1659959..0000000 --- a/assets/stylesheets/main.10ba22f1.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block;margin:0 auto}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{color-scheme:light;max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-typeset .md-author{border-radius:100%;display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.md-typeset .md-author img{display:block}.md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.md-typeset .md-author--long{height:2.4rem;width:2.4rem}.md-typeset a.md-author{transform:scale(1)}.md-typeset a.md-author img{filter:grayscale(100%) opacity(75%);transition:filter 125ms}.md-typeset a.md-author:focus,.md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.md-typeset a.md-author:focus img,.md-typeset a.md-author:hover img{filter:grayscale(0)}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;opacity:.7}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem;margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem;margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.md-meta__item:not(:last-child):after{content:"ยท";margin-left:.2rem;margin-right:.2rem}.md-meta__link{color:var(--md-typeset-a-color)}.md-meta__link:focus,.md-meta__link:hover{color:var(--md-accent-fg-color)}.md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__link .md-ellipsis{position:relative}[dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}[dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em}.md-nav__link[for]:focus,.md-nav__link[for]:hover,.md-nav__link[href]:focus,.md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__container>.md-nav__link{margin-top:0}.md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.234375em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link svg{margin-top:.1em}.md-nav--primary .md-nav__link>.md-nav__link{padding:0}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.984375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav{margin-bottom:-.4rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.md-nav--secondary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.md-nav--primary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle.md-toggle--indeterminate~.md-nav,.md-nav__toggle:checked~.md-nav{grid-template-rows:1fr;opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav__link .md-icon,.md-nav__item--section>.md-nav__link>[for]{display:none}[dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}[dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-left:-.6rem}[dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-right:-.6rem}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:1fr;opacity:1;visibility:visible}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.md-pagination,.md-pagination>*{align-items:center;display:flex;justify-content:center}.md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.md-pagination__link{transition:color 125ms,background-color 125ms}.md-pagination__link:focus,.md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-pagination__link:focus svg,.md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}.md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.md-post__back{display:none}}[dir=rtl] .md-post__back svg{transform:scaleX(-1)}.md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.md-post .md-post__meta a{transition:color 125ms}.md-post .md-post__meta a:focus,.md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.md-post--excerpt{margin-bottom:3.2rem}.md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}[dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}[dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.md-post>.md-nav--secondary{margin:1em 0}.md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.md-profile__description{flex-grow:1}.md-content--post{display:flex}@media screen and (max-width:76.234375em){.md-content--post{flex-flow:column-reverse}}.md-content--post>.md-content__inner{min-width:0}@media screen and (min-width:76.25em){[dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.md-sidebar.md-sidebar--post .md-sidebar__scrollwrap{overflow:visible}.md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.md-sidebar.md-sidebar--post .md-nav__link{padding:0}.md-sidebar.md-sidebar--post .md-nav{height:auto;margin-bottom:0;position:static}}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.234375em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.984375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.984375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.984375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-source-file{margin:1em 0}[dir=ltr] .md-source-file__fact{margin-right:.6rem}[dir=rtl] .md-source-file__fact{margin-left:.6rem}.md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}[dir=ltr] .md-source-file__fact .md-author{float:left}[dir=rtl] .md-source-file__fact .md-author{float:right}.md-source-file__fact .md-author{margin-right:.2rem}.md-source-file__fact svg{width:.9rem}:root{--md-status:url('data:image/svg+xml;charset=utf-8,');--md-status--new:url('data:image/svg+xml;charset=utf-8,');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,');--md-status--encrypted:url('data:image/svg+xml;charset=utf-8,')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,');--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}[hidden]+.md-tooltip--inline{display:none}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:xxx;list-style:none}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(xxx);counter-increment:xxx;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition:focus-within,.md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .admonition.note:focus-within,.md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .admonition.abstract:focus-within,.md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .admonition.info:focus-within,.md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .admonition.tip:focus-within,.md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .admonition.success:focus-within,.md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .admonition.question:focus-within,.md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .admonition.warning:focus-within,.md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .admonition.failure:focus-within,.md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .admonition.danger:focus-within,.md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .admonition.bug:focus-within,.md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .admonition.example:focus-within,.md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .admonition.quote:focus-within,.md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}.md-typeset div.arithmatex>*{width:-webkit-min-content;width:min-content}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset div.arithmatex mjx-assistive-mml{height:0}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.md-typeset .lg,.md-typeset .xl,.md-typeset .xxl,.md-typeset .xxxl{vertical-align:text-bottom}.md-typeset .middle{vertical-align:middle}.md-typeset .lg{--md-icon-size:1.5em}.md-typeset .xl{--md-icon-size:2.25em}.md-typeset .xxl{--md-icon-size:3em}.md-typeset .xxxl{--md-icon-size:4em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"โŽ‡";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"โŒ˜";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"โŒƒ";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"โ—†";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"โŒฅ";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"โ‡ง";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"โ–";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"โŠž";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"โ†“";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"โ†";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"โ†’";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"โ†‘";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"โŒซ";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"โ‡ค";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"โ‡ช";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"โŒง";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"โ˜ฐ";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"โŒฆ";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"โ";padding-right:.4em}.md-typeset .keys .key-end:before{content:"โค“";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"โŽ‹";padding-right:.4em}.md-typeset .keys .key-home:before{content:"โค’";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"โŽ€";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"โ‡Ÿ";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"โ‡ž";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"โŽ™";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"โ‡ฅ";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"โŒค";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"โŽ";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-labels>label>[href]:first-child{color:inherit}.md-typeset .tabbed-labels--linked>label{padding:0}.md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}.md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.md-typeset .grid.cards>ol,.md-typeset .grid.cards>ul{display:contents}.md-typeset .grid.cards>ol>li,.md-typeset .grid.cards>ul>li,.md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.1rem;display:block;margin:0;padding:.8rem;transition:border .25s,box-shadow .25s}.md-typeset .grid.cards>ol>li:focus-within,.md-typeset .grid.cards>ol>li:hover,.md-typeset .grid.cards>ul>li:focus-within,.md-typeset .grid.cards>ul>li:hover,.md-typeset .grid>.card:focus-within,.md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.md-typeset .grid.cards>ol>li>hr,.md-typeset .grid.cards>ul>li>hr,.md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.md-typeset .grid.cards>ol>li>:first-child,.md-typeset .grid.cards>ul>li>:first-child,.md-typeset .grid>.card>:first-child{margin-top:0}.md-typeset .grid.cards>ol>li>:last-child,.md-typeset .grid.cards>ul>li>:last-child,.md-typeset .grid>.card>:last-child{margin-bottom:0}.md-typeset .grid>*,.md-typeset .grid>.admonition,.md-typeset .grid>.highlight>*,.md-typeset .grid>.highlighttable,.md-typeset .grid>.md-typeset details,.md-typeset .grid>details,.md-typeset .grid>pre{margin-bottom:0;margin-top:0}.md-typeset .grid>.highlight>pre:only-child,.md-typeset .grid>.highlight>pre>code,.md-typeset .grid>.highlighttable,.md-typeset .grid>.highlighttable>tbody,.md-typeset .grid>.highlighttable>tbody>tr,.md-typeset .grid>.highlighttable>tbody>tr>.code,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}} \ No newline at end of file diff --git a/assets/stylesheets/main.10ba22f1.min.css.map b/assets/stylesheets/main.10ba22f1.min.css.map deleted file mode 100644 index 0879365..0000000 --- a/assets/stylesheets/main.10ba22f1.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/templates/assets/stylesheets/main/components/_meta.scss","../../../../src/templates/assets/stylesheets/main.scss","src/templates/assets/stylesheets/main/_resets.scss","src/templates/assets/stylesheets/main/_colors.scss","src/templates/assets/stylesheets/main/_icons.scss","src/templates/assets/stylesheets/main/_typeset.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/templates/assets/stylesheets/main/components/_author.scss","src/templates/assets/stylesheets/main/components/_banner.scss","src/templates/assets/stylesheets/main/components/_base.scss","src/templates/assets/stylesheets/main/components/_clipboard.scss","src/templates/assets/stylesheets/main/components/_consent.scss","src/templates/assets/stylesheets/main/components/_content.scss","src/templates/assets/stylesheets/main/components/_dialog.scss","src/templates/assets/stylesheets/main/components/_feedback.scss","src/templates/assets/stylesheets/main/components/_footer.scss","src/templates/assets/stylesheets/main/components/_form.scss","src/templates/assets/stylesheets/main/components/_header.scss","node_modules/material-design-color/material-color.scss","src/templates/assets/stylesheets/main/components/_nav.scss","src/templates/assets/stylesheets/main/components/_pagination.scss","src/templates/assets/stylesheets/main/components/_post.scss","src/templates/assets/stylesheets/main/components/_progress.scss","src/templates/assets/stylesheets/main/components/_search.scss","src/templates/assets/stylesheets/main/components/_select.scss","src/templates/assets/stylesheets/main/components/_sidebar.scss","src/templates/assets/stylesheets/main/components/_source.scss","src/templates/assets/stylesheets/main/components/_status.scss","src/templates/assets/stylesheets/main/components/_tabs.scss","src/templates/assets/stylesheets/main/components/_tag.scss","src/templates/assets/stylesheets/main/components/_tooltip.scss","src/templates/assets/stylesheets/main/components/_top.scss","src/templates/assets/stylesheets/main/components/_version.scss","src/templates/assets/stylesheets/main/extensions/markdown/_admonition.scss","src/templates/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/templates/assets/stylesheets/main/extensions/markdown/_toc.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_keys.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/templates/assets/stylesheets/main/integrations/_mermaid.scss","src/templates/assets/stylesheets/main/modifiers/_grid.scss","src/templates/assets/stylesheets/main/modifiers/_inline.scss"],"names":[],"mappings":"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hCswGN,CgCjwGE,oEACE,0BhCowGJ,CgCjwGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCmwGN,CgC/vGI,gFACE,ahCiwGN,CgCtxGE,8DACE,oBhCyxGJ,CgCtxGI,wFACE,gChCwxGN,CgCnxGE,sEACE,0BhCsxGJ,CgCnxGI,oFACE,wBAlBG,CAmBH,sDAAA,CAAA,8ChCqxGN,CgCjxGI,kFACE,ahCmxGN,CgCxyGE,4DACE,oBhC2yGJ,CgCxyGI,sFACE,gChC0yGN,CgCryGE,oEACE,0BhCwyGJ,CgCryGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCuyGN,CgCnyGI,gFACE,ahCqyGN,CgC1zGE,4DACE,oBhC6zGJ,CgC1zGI,sFACE,gChC4zGN,CgCvzGE,oEACE,0BhC0zGJ,CgCvzGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCyzGN,CgCrzGI,gFACE,ahCuzGN,CgC50GE,0DACE,oBhC+0GJ,CgC50GI,oFACE,gChC80GN,CgCz0GE,kEACE,0BhC40GJ,CgCz0GI,gFACE,wBAlBG,CAmBH,oDAAA,CAAA,4ChC20GN,CgCv0GI,8EACE,ahCy0GN,CgC91GE,oDACE,oBhCi2GJ,CgC91GI,8EACE,gChCg2GN,CgC31GE,4DACE,0BhC81GJ,CgC31GI,0EACE,wBAlBG,CAmBH,iDAAA,CAAA,yChC61GN,CgCz1GI,wEACE,ahC21GN,CgCh3GE,4DACE,oBhCm3GJ,CgCh3GI,sFACE,gChCk3GN,CgC72GE,oEACE,0BhCg3GJ,CgC72GI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChC+2GN,CgC32GI,gFACE,ahC62GN,CgCl4GE,wDACE,oBhCq4GJ,CgCl4GI,kFACE,gChCo4GN,CgC/3GE,gEACE,0BhCk4GJ,CgC/3GI,8EACE,wBAlBG,CAmBH,mDAAA,CAAA,2ChCi4GN,CgC73GI,4EACE,ahC+3GN,CiCniHA,MACE,wMjCsiHF,CiC7hHE,sBAEE,uCAAA,CADA,gBjCiiHJ,CiC7hHI,mCACE,ajC+hHN,CiChiHI,mCACE,cjC+hHN,CiC3hHM,4BACE,sBjC6hHR,CiC1hHQ,mCAC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","file":"main.css"} \ No newline at end of file diff --git a/assets/stylesheets/main.7e359304.min.css b/assets/stylesheets/main.7e359304.min.css new file mode 100644 index 0000000..e5a7e3a --- /dev/null +++ b/assets/stylesheets/main.7e359304.min.css @@ -0,0 +1 @@ +@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-scheme=default]{color-scheme:light}[data-md-color-scheme=default] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=default] img[src$="#only-dark"]{display:none}:root,[data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block;margin:0 auto}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-typeset .md-author{border-radius:100%;display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.md-typeset .md-author img{display:block}.md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.md-typeset .md-author--long{height:2.4rem;width:2.4rem}.md-typeset a.md-author{transform:scale(1)}.md-typeset a.md-author img{filter:grayscale(100%) opacity(75%);transition:filter 125ms}.md-typeset a.md-author:focus,.md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.md-typeset a.md-author:focus img,.md-typeset a.md-author:hover img{filter:grayscale(0)}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.no-js .md-banner__button{display:none}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.984375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.md-footer__link--prev{flex-shrink:0}.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;opacity:.7}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem;margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem;margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__option>input{bottom:0}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.md-meta__item:not(:last-child):after{content:"ยท";margin-left:.2rem;margin-right:.2rem}.md-meta__link{color:var(--md-typeset-a-color)}.md-meta__link:focus,.md-meta__link:hover{color:var(--md-accent-fg-color)}.md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active,.md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.md-nav__link .md-ellipsis{position:relative}[dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}[dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em}.md-nav__link[for]:focus,.md-nav__link[for]:hover,.md-nav__link[href]:focus,.md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__container>.md-nav__link{margin-top:0}.md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.234375em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.md-nav--primary .md-nav__link svg{margin-top:.1em}.md-nav--primary .md-nav__link>.md-nav__link{padding:0}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.984375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav{margin-bottom:-.4rem}.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.md-nav--secondary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}[dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}[dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.md-nav--primary .md-nav__list{padding-bottom:.4rem}[dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}[dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.md-nav__toggle~.md-nav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.md-nav__toggle.md-toggle--indeterminate~.md-nav,.md-nav__toggle:checked~.md-nav{grid-template-rows:1fr;opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav__item--section>.md-nav__link .md-icon,.md-nav__item--section>.md-nav__link>[for]{display:none}[dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}[dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}[dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-left:-.6rem}[dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-right:-.6rem}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{grid-template-rows:1fr;opacity:1;visibility:visible}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.md-pagination,.md-pagination>*{align-items:center;display:flex;justify-content:center}.md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.md-pagination__link{transition:color 125ms,background-color 125ms}.md-pagination__link:focus,.md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-pagination__link:focus svg,.md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}.md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.md-post__back{display:none}}[dir=rtl] .md-post__back svg{transform:scaleX(-1)}.md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.md-post .md-post__meta a{transition:color 125ms}.md-post .md-post__meta a:focus,.md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.md-post--excerpt{margin-bottom:3.2rem}.md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}[dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}[dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.md-post>.md-nav--secondary{margin:1em 0}.md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.md-profile__description{flex-grow:1}.md-content--post{display:flex}@media screen and (max-width:76.234375em){.md-content--post{flex-flow:column-reverse}}.md-content--post>.md-content__inner{min-width:0}@media screen and (min-width:76.25em){[dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.md-sidebar.md-sidebar--post .md-sidebar__scrollwrap{overflow:visible}.md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.md-sidebar.md-sidebar--post .md-nav__link{padding:0}.md-sidebar.md-sidebar--post .md-nav{height:auto;margin-bottom:0;position:static}}:root{--md-progress-value:0;--md-progress-delay:400ms}.md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.984375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.234375em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.984375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.984375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.984375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.234375em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.984375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.234375em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-source-file{margin:1em 0}[dir=ltr] .md-source-file__fact{margin-right:.6rem}[dir=rtl] .md-source-file__fact{margin-left:.6rem}.md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}[dir=ltr] .md-source-file__fact .md-author{float:left}[dir=rtl] .md-source-file__fact .md-author{float:right}.md-source-file__fact .md-author{margin-right:.2rem}.md-source-file__fact svg{width:.9rem}:root{--md-status:url('data:image/svg+xml;charset=utf-8,');--md-status--new:url('data:image/svg+xml;charset=utf-8,');--md-status--deprecated:url('data:image/svg+xml;charset=utf-8,');--md-status--encrypted:url('data:image/svg+xml;charset=utf-8,')}.md-status:after{background-color:var(--md-default-fg-color--light);content:"";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.md-status:hover:after{background-color:currentcolor}.md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.234375em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}[dir=ltr] .md-tabs__link svg{margin-right:.4rem}[dir=rtl] .md-tabs__link svg{margin-left:.4rem}.md-tabs__link svg{fill:currentcolor;height:1.3em}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}:root{--md-annotation-bg-icon:url('data:image/svg+xml;charset=utf-8,');--md-annotation-icon:url('data:image/svg+xml;charset=utf-8,');--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}[hidden]+.md-tooltip--inline{display:none}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;vertical-align:text-bottom;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.md-annotation:not([hidden]){display:inline-block;line-height:1.25}.md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.md-annotation__index{width:2.2ch}[data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.md-annotation__index:after,.md-annotation__index:before{content:"";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.md-typeset .md-annotation-list{counter-reset:xxx;list-style:none}.md-typeset .md-annotation-list li{position:relative}[dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}[dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(xxx);counter-increment:xxx;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition:focus-within,.md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .admonition.note:focus-within,.md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .admonition.abstract:focus-within,.md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .admonition.info:focus-within,.md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .admonition.tip:focus-within,.md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .admonition.success:focus-within,.md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .admonition.question:focus-within,.md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .admonition.warning:focus-within,.md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .admonition.failure:focus-within,.md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .admonition.danger:focus-within,.md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .admonition.bug:focus-within,.md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .admonition.example:focus-within,.md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .admonition.quote:focus-within,.md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.md-typeset div.arithmatex{margin:0 -.8rem}.md-typeset div.arithmatex>*{width:-webkit-min-content;width:min-content}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset div.arithmatex mjx-assistive-mml{height:0}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.md-typeset .lg,.md-typeset .xl,.md-typeset .xxl,.md-typeset .xxxl{vertical-align:text-bottom}.md-typeset .middle{vertical-align:middle}.md-typeset .lg{--md-icon-size:1.5em}.md-typeset .xl{--md-icon-size:2.25em}.md-typeset .xxl{--md-icon-size:3em}.md-typeset .xxxl{--md-icon-size:4em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.984375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"โŽ‡";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"โŒ˜";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"โŒƒ";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"โ—†";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"โŒฅ";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"โ‡ง";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"โ–";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"โŠž";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"โ†“";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"โ†";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"โ†’";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"โ†‘";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"โŒซ";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"โ‡ค";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"โ‡ช";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"โŒง";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"โ˜ฐ";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"โŒฆ";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"โ";padding-right:.4em}.md-typeset .keys .key-end:before{content:"โค“";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"โŽ‹";padding-right:.4em}.md-typeset .keys .key-home:before{content:"โค’";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"โŽ€";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"โ‡Ÿ";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"โ‡ž";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"โŽ™";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"โ‡ฅ";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"โŒค";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"โŽ";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.md-typeset .tabbed-labels>label>[href]:first-child{color:inherit}.md-typeset .tabbed-labels--linked>label{padding:0}.md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.mermaid{line-height:normal;margin:1em 0}.md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.md-typeset .grid.cards>ol,.md-typeset .grid.cards>ul{display:contents}.md-typeset .grid.cards>ol>li,.md-typeset .grid.cards>ul>li,.md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.1rem;display:block;margin:0;padding:.8rem;transition:border .25s,box-shadow .25s}.md-typeset .grid.cards>ol>li:focus-within,.md-typeset .grid.cards>ol>li:hover,.md-typeset .grid.cards>ul>li:focus-within,.md-typeset .grid.cards>ul>li:hover,.md-typeset .grid>.card:focus-within,.md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.md-typeset .grid.cards>ol>li>hr,.md-typeset .grid.cards>ul>li>hr,.md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.md-typeset .grid.cards>ol>li>:first-child,.md-typeset .grid.cards>ul>li>:first-child,.md-typeset .grid>.card>:first-child{margin-top:0}.md-typeset .grid.cards>ol>li>:last-child,.md-typeset .grid.cards>ul>li>:last-child,.md-typeset .grid>.card>:last-child{margin-bottom:0}.md-typeset .grid>*,.md-typeset .grid>.admonition,.md-typeset .grid>.highlight>*,.md-typeset .grid>.highlighttable,.md-typeset .grid>.md-typeset details,.md-typeset .grid>details,.md-typeset .grid>pre{margin-bottom:0;margin-top:0}.md-typeset .grid>.highlight>pre:only-child,.md-typeset .grid>.highlight>pre>code,.md-typeset .grid>.highlighttable,.md-typeset .grid>.highlighttable>tbody,.md-typeset .grid>.highlighttable>tbody>tr,.md-typeset .grid>.highlighttable>tbody>tr>.code,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre,.md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}} \ No newline at end of file diff --git a/assets/stylesheets/main.7e359304.min.css.map b/assets/stylesheets/main.7e359304.min.css.map new file mode 100644 index 0000000..15b8fcf --- /dev/null +++ b/assets/stylesheets/main.7e359304.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/templates/assets/stylesheets/main/components/_meta.scss","../../../../src/templates/assets/stylesheets/main.scss","src/templates/assets/stylesheets/main/_resets.scss","src/templates/assets/stylesheets/main/_colors.scss","src/templates/assets/stylesheets/main/_icons.scss","src/templates/assets/stylesheets/main/_typeset.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/templates/assets/stylesheets/main/components/_author.scss","src/templates/assets/stylesheets/main/components/_banner.scss","src/templates/assets/stylesheets/main/components/_base.scss","src/templates/assets/stylesheets/main/components/_clipboard.scss","src/templates/assets/stylesheets/main/components/_consent.scss","src/templates/assets/stylesheets/main/components/_content.scss","src/templates/assets/stylesheets/main/components/_dialog.scss","src/templates/assets/stylesheets/main/components/_feedback.scss","src/templates/assets/stylesheets/main/components/_footer.scss","src/templates/assets/stylesheets/main/components/_form.scss","src/templates/assets/stylesheets/main/components/_header.scss","node_modules/material-design-color/material-color.scss","src/templates/assets/stylesheets/main/components/_nav.scss","src/templates/assets/stylesheets/main/components/_pagination.scss","src/templates/assets/stylesheets/main/components/_post.scss","src/templates/assets/stylesheets/main/components/_progress.scss","src/templates/assets/stylesheets/main/components/_search.scss","src/templates/assets/stylesheets/main/components/_select.scss","src/templates/assets/stylesheets/main/components/_sidebar.scss","src/templates/assets/stylesheets/main/components/_source.scss","src/templates/assets/stylesheets/main/components/_status.scss","src/templates/assets/stylesheets/main/components/_tabs.scss","src/templates/assets/stylesheets/main/components/_tag.scss","src/templates/assets/stylesheets/main/components/_tooltip.scss","src/templates/assets/stylesheets/main/components/_top.scss","src/templates/assets/stylesheets/main/components/_version.scss","src/templates/assets/stylesheets/main/extensions/markdown/_admonition.scss","src/templates/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/templates/assets/stylesheets/main/extensions/markdown/_toc.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_keys.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/templates/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/templates/assets/stylesheets/main/integrations/_mermaid.scss","src/templates/assets/stylesheets/main/modifiers/_grid.scss","src/templates/assets/stylesheets/main/modifiers/_inline.scss"],"names":[],"mappings":"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E,oEACE,0BhCmwGJ,CgChwGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCkwGN,CgC9vGI,gFACE,ahCgwGN,CgCrxGE,8DACE,oBhCwxGJ,CgCrxGI,wFACE,gChCuxGN,CgClxGE,sEACE,0BhCqxGJ,CgClxGI,oFACE,wBAlBG,CAmBH,sDAAA,CAAA,8ChCoxGN,CgChxGI,kFACE,ahCkxGN,CgCvyGE,4DACE,oBhC0yGJ,CgCvyGI,sFACE,gChCyyGN,CgCpyGE,oEACE,0BhCuyGJ,CgCpyGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCsyGN,CgClyGI,gFACE,ahCoyGN,CgCzzGE,4DACE,oBhC4zGJ,CgCzzGI,sFACE,gChC2zGN,CgCtzGE,oEACE,0BhCyzGJ,CgCtzGI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChCwzGN,CgCpzGI,gFACE,ahCszGN,CgC30GE,0DACE,oBhC80GJ,CgC30GI,oFACE,gChC60GN,CgCx0GE,kEACE,0BhC20GJ,CgCx0GI,gFACE,wBAlBG,CAmBH,oDAAA,CAAA,4ChC00GN,CgCt0GI,8EACE,ahCw0GN,CgC71GE,oDACE,oBhCg2GJ,CgC71GI,8EACE,gChC+1GN,CgC11GE,4DACE,0BhC61GJ,CgC11GI,0EACE,wBAlBG,CAmBH,iDAAA,CAAA,yChC41GN,CgCx1GI,wEACE,ahC01GN,CgC/2GE,4DACE,oBhCk3GJ,CgC/2GI,sFACE,gChCi3GN,CgC52GE,oEACE,0BhC+2GJ,CgC52GI,kFACE,wBAlBG,CAmBH,qDAAA,CAAA,6ChC82GN,CgC12GI,gFACE,ahC42GN,CgCj4GE,wDACE,oBhCo4GJ,CgCj4GI,kFACE,gChCm4GN,CgC93GE,gEACE,0BhCi4GJ,CgC93GI,8EACE,wBAlBG,CAmBH,mDAAA,CAAA,2ChCg4GN,CgC53GI,4EACE,ahC83GN,CiCliHA,MACE,wMjCqiHF,CiC5hHE,sBAEE,uCAAA,CADA,gBjCgiHJ,CiC5hHI,mCACE,ajC8hHN,CiC/hHI,mCACE,cjC8hHN,CiC1hHM,4BACE,sBjC4hHR,CiCzhHQ,mCACE,gCjC2hHV,Ci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","file":"main.css"} \ No newline at end of file diff --git a/botscrobbling/index.html b/botscrobbling/index.html index 7c2582d..d01d007 100644 --- a/botscrobbling/index.html +++ b/botscrobbling/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/albums/index.html b/commands/albums/index.html index a45935c..25bf814 100644 --- a/commands/albums/index.html +++ b/commands/albums/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/artists/index.html b/commands/artists/index.html index 8347e79..c2b36e3 100644 --- a/commands/artists/index.html +++ b/commands/artists/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/countries/index.html b/commands/countries/index.html index d03ca99..26bcad4 100644 --- a/commands/countries/index.html +++ b/commands/countries/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/crowns/index.html b/commands/crowns/index.html index 0055f12..e385783 100644 --- a/commands/crowns/index.html +++ b/commands/crowns/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/discogs/index.html b/commands/discogs/index.html index bbbc0f9..7ca322a 100644 --- a/commands/discogs/index.html +++ b/commands/discogs/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/featured/index.html b/commands/featured/index.html index cb9b528..9a851ef 100644 --- a/commands/featured/index.html +++ b/commands/featured/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/friends/index.html b/commands/friends/index.html index d4204f0..cff811d 100644 --- a/commands/friends/index.html +++ b/commands/friends/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/genius/index.html b/commands/genius/index.html index 46b887c..4f24066 100644 --- a/commands/genius/index.html +++ b/commands/genius/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/genres/index.html b/commands/genres/index.html index 4997f4c..bc7a22f 100644 --- a/commands/genres/index.html +++ b/commands/genres/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/index.html b/commands/index.html index d65dfb2..9908fd0 100644 --- a/commands/index.html +++ b/commands/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/misc/index.html b/commands/misc/index.html index c97eb76..7a3747b 100644 --- a/commands/misc/index.html +++ b/commands/misc/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/plays/index.html b/commands/plays/index.html index 24102b9..45ad1d3 100644 --- a/commands/plays/index.html +++ b/commands/plays/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/spotify/index.html b/commands/spotify/index.html index f7e3a7c..b343f42 100644 --- a/commands/spotify/index.html +++ b/commands/spotify/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/tracks/index.html b/commands/tracks/index.html index 38e7290..e1f71a4 100644 --- a/commands/tracks/index.html +++ b/commands/tracks/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/whoknows/index.html b/commands/whoknows/index.html index 6c5b8fb..c0a5530 100644 --- a/commands/whoknows/index.html +++ b/commands/whoknows/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/commands/youtube/index.html b/commands/youtube/index.html index 52278dc..39ae8ce 100644 --- a/commands/youtube/index.html +++ b/commands/youtube/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/faq/index.html b/faq/index.html index e1ff1f5..84a6354 100644 --- a/faq/index.html +++ b/faq/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/guildsettings/crownsettings/index.html b/guildsettings/crownsettings/index.html index 157e44d..00db91f 100644 --- a/guildsettings/crownsettings/index.html +++ b/guildsettings/crownsettings/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/guildsettings/index.html b/guildsettings/index.html index a46eb4d..1132781 100644 --- a/guildsettings/index.html +++ b/guildsettings/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/guildsettings/webhooks/index.html b/guildsettings/webhooks/index.html index 19f0d21..ee2ab81 100644 --- a/guildsettings/webhooks/index.html +++ b/guildsettings/webhooks/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/guildsettings/whoknowsettings/index.html b/guildsettings/whoknowsettings/index.html index 1acd4a1..0c22276 100644 --- a/guildsettings/whoknowsettings/index.html +++ b/guildsettings/whoknowsettings/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/importing/index.html b/importing/index.html index 71e9192..52d03d2 100644 --- a/importing/index.html +++ b/importing/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -1505,6 +1505,7 @@

Requesting your files from AppleSign in to your account
  • Click on Request a copy of your data
  • Select Apple Media Services Information
  • +
  • De-select the other options
  • Press Continue
  • Press Complete request
  • Wait up to 7 days for Apple to deliver your files
  • diff --git a/index.html b/index.html index ea92717..d8e9654 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/privacy/index.html b/privacy/index.html index 7ad5587..d1a559c 100644 --- a/privacy/index.html +++ b/privacy/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/search/search_index.json b/search/search_index.json index 87718dc..fbc8f2d 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"

    .fmbot is a social Discord bot that provides music statistics for you, your friends, and your fellow server members. Easily see who listens to your favorite artist in a server and make new friends. Or discover new artists within your favorite genres.

    The bot connects to a Last.fm account to see your listening history. Over 750.000 users have already connected. To get started, simply use /login.

    "},{"location":"#main-features","title":"\ud83d\udccbMain features:","text":""},{"location":"#social-features","title":"\ud83d\udc65Social features:","text":""},{"location":"#featured","title":"\u2728Featured","text":"

    Every hour we feature a random user with something they've recently listened to. Everyone is able to see this using the /featured command, and anyone who recently used the bot gets a chance to become featured!

    The bot will also change it's profile picture to the album cover of the feature. Want to be alerted when you get featured? Join our server and you'll get a ping.

    "},{"location":"#links","title":"\ud83d\udd17Links:","text":""},{"location":"#extra-information","title":"Extra information","text":"

    .fmbot is trusted by over 350.000 servers, has over 750.000 registered users, and is used more than 400.000 times every day.

    It is written in C#, uses Discord.Net and .NET 8. The bot is source-available, so anyone can see how it works.

    Thank you to all our generous supporters. Support .fmbot too and get some nice perks in return.

    "},{"location":"botscrobbling/","title":"Music bot scrobbling","text":"

    Bot scrobbling is a new feature from .fmbot that allows you to automatically scrobble music from other Discord music bots to your Last.fm account.

    The feature works fully automatic. Simply start listening to music using a supported bot and .fmbot will scrobble it for users in that voice channel.

    The bot will only scrobble songs it can find on Last.fm. The scrobbling works best with Spotify songs.

    "},{"location":"botscrobbling/#currently-supported-bots","title":"Currently supported bots:","text":""},{"location":"botscrobbling/#requirements","title":"Requirements:","text":""},{"location":"botscrobbling/#botscrobbling","title":"/botscrobbling","text":"

    Use this command to disable/enable bot scrobbling for your account or to check if you are ready for scrobbling.

    Examples

    /botscrobbling

    Info

    Please note that .fmbot is not affiliated with any of these music bots, and that .fmbot does not stream music or download music to Discord in any way.

    "},{"location":"faq/","title":"Frequently Asked","text":""},{"location":"faq/#how-do-i-get-started","title":"How do I get started?","text":"

    This bot uses your music history for various commands. For this we use a website called Last.fm. This site allows you to track your music history from various platforms.

    To get started you need to create a Last.fm account. After you've setup your account there you can connect your account to our bot by using /login within Discord.

    While we require a Last.fm account the bot is not affiliated with Last.fm.

    "},{"location":"faq/#commands-are-showing-the-wrong-songs-its-not-showing-what-i-listen-to-on-spotify","title":"Commands are showing the wrong songs / it's not showing what I listen to on Spotify","text":"

    We get what you're playing directly from your Last.fm profile, so please check there first to see what is showing on your profile.

    Last.fm often has issues with their Spotify connection. For most people it helps to reconnect Spotify in their Last.fm application settings.

    Last.fm also has an official guide on how to fix this.

    .fmbot is not affiliated with Last.fm or Spotify, so we can't fix this for you. Please don't join our support server to complain about this issue.

    "},{"location":"faq/#the-playcounts-in-the-bot-dont-match-lastfm","title":"The playcounts in the bot don't match Last.fm!","text":"

    Because we rely heavily on caching your playcounts to keep our commands fast it can sometimes happen that you don't get updated properly.

    In this case, try to use .update full. This completely re-builds the stored playcounts the bot has for you.

    "},{"location":"faq/#how-do-i-import-my-spotify-or-apple-music-history-into-fmbot","title":"How do I import my Spotify or Apple Music history into .fmbot?","text":"

    Check out the importing page for more info.

    Using imports requires an active supporter subscription.

    "},{"location":"faq/#who-picks-what-is-featured","title":"Who picks what is featured?","text":"

    The bot randomly picks any user that has used .fmbot in the last day.

    For more information, check out Featured

    "},{"location":"faq/#how-do-i-remove-someone-from-whoknows","title":"How do I remove someone from WhoKnows?","text":"

    Please check the server WhoKnows settings.

    "},{"location":"faq/#im-not-visible-in-global-whoknows","title":"I'm not visible in Global WhoKnows","text":"

    We sometimes remove users from Global WhoKnows that manipulate plays or scrobbles to get on top of our global charts. If you're not showing on the global charts this could be the case.

    You can use the .privacy command to check your status. Set your privacy to global and it will be visible, along with all necessary info.

    Users get filtered automatically for 3 months from Global WhoKnows when:

    "},{"location":"faq/#i-have-an-issue-with-lastfm","title":"I have an issue with Last.fm","text":"

    We are not affiliated with Last.fm. This bot only uses their API to show you and your friends their statistics.

    If you have issues with Last.fm, we'd suggest you check out their support forums or their Discord server.

    "},{"location":"faq/#the-bot-is-offline","title":"The bot is offline","text":"

    It could be that it just happens to be updating. If it stays down, please join the support server and ping one of the developers.

    "},{"location":"faq/#what-is-the-difference-between-the-normal-bot-and-the-develop-bot","title":"What is the difference between the normal bot and the develop bot?","text":"

    The develop bot is used to test new fixes and functionality before they go to the normal bot. This is usually announced in #beta-updates on our server.

    This bot can have more downtime and bugs than the normal bot, so that is something to keep in mind. The bots currently share the same database, so switching is easy.

    Note that if either bot leaves your server all your server data and settings will be cleared.

    "},{"location":"faq/#i-like-this-bot","title":"I like this bot","text":"

    Cool, great to hear.

    "},{"location":"faq/#i-dont-like-this-bot","title":"I don't like this bot","text":"

    :( Please let us know why in the support server. We're open to all feedback and happy to help.

    "},{"location":"faq/#is-there-any-way-to-support-the-bot","title":"Is there any way to support the bot?","text":"

    To support us financially, check out .fmbot supporter. You help us with the hosting and development of the bot while getting some nice perks in return.

    If you are familiar with C# / .NET you can also help us out and pick up one of the open issues. Please check out our contributing guidelines first.

    "},{"location":"faq/#why-does-this-bot-exist","title":"Why does this bot exist?","text":"

    This bot was made by BitL back in September 2017 and was inspired by UB3R Bot. Back then the bot just had .fm, the charts, featuring and .fmyoutube.

    Frikandel joined in when he had the idea of .friends, but was too lazy to make his own bot. Together they moved the bot from text files to an actual database and made various other improvements.

    Since 2019 Frikandel has been the main maintainer and hoster of .fmbot, adding commands like .whoknows and other much-requested features. In March 2021 Frikandel took over all parts of the bot.

    "},{"location":"faq/#i-have-a-question-that-isnt-listed-here","title":"I have a question that isn't listed here","text":"

    Join our server here and ask in the #help channel.

    Note that since .fmbot and Last.fm are two seperate things. .fmbot is the Discord bot, Last.fm is the website.

    Need help with Last.fm? Check out their support forums or their Discord server.

    "},{"location":"importing/","title":"Importing your music history","text":"

    The bot uses Last.fm by default for all your music data. We now also offer a way to import your listening history from Spotify and Apple Music and combine that together with your Last.fm stats.

    This feature is only available for .fmbot supporters. Dont have supporter yet? Get it here.

    "},{"location":"importing/#import-manage","title":"/import manage","text":"

    Allows you to manage your imports and pick the source for your playcounts.

    You can pick between the following modes:

    To delete your imports from .fmbot, switch to the Last.fm option and use the provided button.

    Examples

    /import manage

    "},{"location":"importing/#import-spotify","title":"/import spotify","text":"

    Allows you to import your Spotify streaming history in the bot.

    Shows the instructions on how to get started if you attach no files. These instructions are also listed below.

    This command only supports the 'Extended Streaming History' package. You can either upload the my_spotify_data.zip to import everything at once or upload each .json file separately.

    Examples

    /import Spotify

    Using Discord on your phone?

    Discord mobile currently has a bug where it might return Not a valid value. Please try importing your files through Discord desktop. We've reported this bug, sorry for the inconvenience.

    "},{"location":"importing/#requesting-your-files-from-spotify","title":"Requesting your files from Spotify","text":"
    1. Go to your Spotify privacy settings
    2. Scroll down to \"Download your data\"
    3. Select Extended streaming history
    4. De-select the other options
    5. Press request data
    6. Confirm your data request through your email
    7. Wait up to 30 days for Spotify to deliver your files
    "},{"location":"importing/#importing-your-data-into-fmbot","title":"Importing your data into .fmbot","text":"
    1. Download the file Spotify provided
    2. Use the /import Spotify slash command and add the .zip file as an attachment through the options
    3. Having issues? You can also attach each .json file separately
    "},{"location":"importing/#notes","title":"Notes","text":""},{"location":"importing/#import-applemusic","title":"/import applemusic","text":"

    Allows you to import your Apple Music streaming history in the bot.

    Shows the instructions on how to get started if you attach no files. These instructions are also listed below.

    Examples

    /import applemusic

    "},{"location":"importing/#requesting-your-files-from-apple","title":"Requesting your files from Apple","text":"
    1. Go to your Apple Data and Privacy
    2. Sign in to your account
    3. Click on Request a copy of your data
    4. Select Apple Media Services Information
    5. Press Continue
    6. Press Complete request
    7. Wait up to 7 days for Apple to deliver your files
    "},{"location":"importing/#importing-your-data-into-fmbot_1","title":"Importing your data into .fmbot","text":"
    1. Download the file Apple provided
    2. Use the /import applemusic slash command and add the .zip file as an attachment through the option
    3. Having issues? You can also attach the Apple Music Play Activity.csv file separately
    "},{"location":"importing/#notes_1","title":"Notes","text":""},{"location":"importing/#frequently-asked","title":"Frequently asked","text":""},{"location":"importing/#why-would-i-use-importing","title":"Why would I use importing?","text":"

    Importing helps your music history be as complete as possible. Most people have been using streaming services like Spotify before they signed up for Last.fm, which means they don't have their full history.

    Importing helps you combine your full history together with your current Last.fm data for the best .fmbot experience.

    You get to keep your original listening timestamps added together with how long you listened to each track for more accurate listening time stats.

    "},{"location":"importing/#the-import-command-keeps-saying-my-files-are-invalid","title":"The import command keeps saying my files are invalid.","text":"

    For Spotify we only support files from the 'Extended streaming history' package. You can try uploading the my_spotify_data.zip or attach each .json file separately.

    Still having issues? Please open a thread on our server.

    "},{"location":"importing/#its-adding-less-plays-to-my-fmbot-account-then-expected","title":"It's adding less plays to my .fmbot account then expected","text":"

    Try switching modes with the /import manage command. This changes how your imports are combined with your Last.fm scrobbles.

    If you want to dive deeper, use the .importdebug command. You can also filter this command to a specific artist.

    "},{"location":"importing/#how-long-does-it-take-before-spotify-sends-my-data","title":"How long does it take before Spotify sends my data?","text":"

    Spotify sends their files out in waves. For the extended streaming history package they usually do this once every 3 weeks.

    Apple Music sends your file within a week.

    "},{"location":"importing/#does-importing-in-fmbot-add-scrobbles-to-my-lastfm","title":"Does importing in .fmbot add scrobbles to my Last.fm?","text":"

    No, imported data only shows in the bot. No scrobbles are added to your Last.fm.

    "},{"location":"importing/#what-happens-if-i-cancel-my-supporter-subscription","title":"What happens if I cancel my supporter subscription?","text":"

    When your supporter subscription expires, you will be moved back to using Last.fm as your only data source.

    Your imports are however saved and will be available again if you resubscribe in the future.

    "},{"location":"importing/#are-platforms-other-then-spotify-and-apple-music-also-supported","title":"Are platforms other then Spotify and Apple Music also supported?","text":"

    At the moment we only support Spotify and Apple Music.

    Want a different platform to be supported? Open a help thread in our server. It helps if you have a data export ready for the developers, so that way they can test a possible integration.

    Each platform should have some way for you to request your listening data. This is legally required in Europe, California and various other places around the world.

    "},{"location":"importing/#can-i-change-or-delete-my-imports","title":"Can I change or delete my imports?","text":"

    See the /import manage command.

    "},{"location":"importing/#what-data-from-my-imports-do-you-store","title":"What data from my imports do you store?","text":"

    We only store the following information:

    Warning

    Imports contain personal data like your IP address and username. Never post your import files publicly.

    "},{"location":"privacy/","title":"Privacy","text":"

    What data .fmbot collects, how we use it and how you can manage it.

    Last update: 2023-10-12

    Changelog: Update command log storage policy

    "},{"location":"privacy/#what-does-your-application-do","title":"What does your application do?","text":"

    .fmbot is an open-source Last.fm Discord bot. Last.fm is a service that tracks what people listen to.

    In our bot you can do various things to analyze your and your friends music taste, like see your recent plays or see who in a server listens to a certain artist.

    To use the bot, you have to log in with a Last.fm account. After that you can optionally also login with a Discogs account.

    "},{"location":"privacy/#what-data-do-you-store","title":"What data do you store?","text":"

    When someone logins to the bot, we store the following Discord data:

    We store the following Last.fm data for every user:

    If a user logs in with Discogs, we store the following data:

    When the bot joins a server, the following data from that server is stored:

    When specific settings for a server channel are set, the following data from that channel is stored:

    When someone uses a command, the command log stores this:

    If someone imports their Spotify history, we store the following data of their import files:

    If a server has Premium Server, the following data will be stored for every logged-in user in the server:

    No data is stored from users that are not logged into the bot.

    'Logged in' means that a user has connected their Last.fm account to .fmbot with the 'login' command.

    "},{"location":"privacy/#music-bot-scrobbling","title":"Music bot scrobbling","text":"

    If you have logged into the bot the bot will scrobble (store) songs music bots play to your Last.fm profile by default. You can opt-out of this feature by using the /botscrobbling command.

    For this feature the bot tries to fetch the artist and track name from messages music bots send in your server. If a song is successfully found, it will be send to Last.fm. No message content is stored or processed otherwise.

    "},{"location":"privacy/#for-what-purpose-do-you-store-it","title":"For what purpose do you store it?","text":"

    To identify who is calling the command and get the appropriate parameters to customize their command.

    Music data and server data is used for commands that provide server-wide leaderboards and statistics.

    This data is stored for caching purposes and to ensure our commands are performant. It is not possible to fetch data like playcounts for thousands of users real-time.

    Command logs are used for statistics, debugging and helping people with bug reports.

    "},{"location":"privacy/#for-how-long-do-you-store-it","title":"For how long do you store it?","text":"

    Settings data and command logs: Forever, or until deleted.

    Server data: Forever, or until the bot is kicked from the server.

    "},{"location":"privacy/#what-is-the-process-for-users-to-request-deletion-of-their-data","title":"What is the process for users to request deletion of their data?","text":"

    For user data we have a command (/remove).

    For server data people can remove the bot and all the data related to that server will be deleted.

    Users can also request deletion of their data in our support server.

    "},{"location":"privacy/#what-systems-and-infrastructure-do-you-use","title":"What systems and infrastructure do you use?","text":"

    .fmbot is currently hosted on a Hetzner VPS in Germany.

    "},{"location":"privacy/#how-can-users-contact-you-with-security-issues","title":"How can users contact you with security issues?","text":"

    Through our server and DMs, or through Github issues. We are visibly identified as developers on the server.

    "},{"location":"privacy/#does-your-app-utilize-other-third-party-auth-services-or-connections","title":"Does your app utilize other third-party auth services or connections?","text":"

    We provide auth services to the following services:

    "},{"location":"privacy/#extra-info","title":"Extra info","text":"

    Personal .fmbot data will never be shared with any 3rd party services unless explicitly specified.

    If you have any questions after reading all this feel free to contact us on our Discord or open an issue on our Github.

    "},{"location":"setup/","title":"Development","text":"

    Setup guide for developers who wish to contribute. Selfhosting .fmbot is not supported.

    "},{"location":"setup/#installing-the-database","title":"Installing the database","text":"
    1. Download PostgreSQL 16 and start the installation.
    2. Make sure pgadmin is checked in the installation wizard.
    3. If you enter a custom password, make sure to also add it to the config.json file later.
    4. Set the port to port '5432' and continue with the installation. You can also change this port in the config if you want.
    5. After the installation is done, open pgadmin.
    6. Right-click on databases and create a database called 'fmbot'.

    Viewing the data

    To view the data in the database, use pgadmin and click the fmbot database > schemas > public > tables.

    "},{"location":"setup/#development_1","title":"Development","text":""},{"location":"setup/#internal-api","title":"Internal API","text":"

    The bot requires an internal API for some cache-heavy tasks.

    This API is not publicly available, you should however be able to run and debug the bot without it for local development.

    "},{"location":"setup/#getting-api-keys","title":"Getting API keys","text":""},{"location":"setup/#discord","title":"Discord","text":"
    1. Go to the Discord Developers Portal
    2. Create a bot and enter your token into the config file.
    "},{"location":"setup/#lastfm","title":"Last.fm","text":"
    1. Create an API account
    2. Enter the key and secret into the config file.
    "},{"location":"setup/#genius","title":"Genius","text":"
    1. Go to your API Clients
    2. Create one and enter the 'client access token' into the config file.
    "},{"location":"setup/#spotify","title":"Spotify","text":"
    1. Go to the Spotify Developer dashboard
    2. Create an app and enter both the ID and the secret into the config file.
    "},{"location":"supporter/","title":"Become a supporter","text":"

    .fmbot is open-source and free to use. Optionally you can get supporter to help support the development of the bot and receive the following extra features and benefits.

    You can get supporter either directly through Discord or through OpenCollective.

    Discord

    Monthly $3.99

    OpenCollective

    Monthly $3.99 Yearly $29.99 Lifetime $49.99 Free Supporter Help us pay for hosting, development and other costs \u274c \u2705 New Import and use your full Spotify history \u274c \u2705 New Import and use your full Apple Music history \u274c \u2705 Added friends limit 12 18 Personal automatic emoji reactions with .userreactions \u274c \u2705 Custom fm footer options 4 9 Get a better GPT-4 powered .judge command with higher limits and the ability to use the command on others \u274c \u2705 New View when you discovered artists with the .discoveries command \u274c \u2705 Discovery dates in artist, album and track \u274c \u2705 Years and listening time overview in profile \u274c \u2705 Artist Discoveries and months in year \u274c \u2705 Lifetime history in recent and overview \u274c \u2705 Higher chance of getting featured on Supporter Sunday \u274c \u2705 Supporter badge \u2b50 \u274c \u2705 Chance to sponsor bot-wide charts \u274c \u2705 Your name in the supporters command \u274c \u2705 Exclusive role and channel on our Discord with sneak peeks of new features \u274c \u2705 Cached scrobble history Up to 1.5y Lifetime Cached artists Top 4000 Unlimited Cached albums Top 5000 Unlimited Cached tracks Top 6000 Unlimited Cached Discogs collection Last 100 Unlimited Thank you to all our generous supporters.

    "},{"location":"supporter/#frequently-asked","title":"Frequently asked","text":""},{"location":"supporter/#why-a-supporter-program","title":"Why a supporter program?

    In order to help us pay for hosting, fund development and deal with other expenses we've added a way for people to donate. In return for your support you get some cool exclusive perks.

    We're dedicated to making sure the bot remains free and independent. That's why most supporter features are simply features that are nice but would be difficult to roll out to everyone. For example some of the extra statistics require us to store your full listening history, which would be difficult to do for all our users.

    By getting supporter you help us to be able to spend more time working on new features and fixes, which in return improves the user experience for everyone.

    ","text":""},{"location":"supporter/#how-do-i-activate-my-subscription","title":"How do I activate my subscription?

    If you purchase through Discord it should get automatically activated within a minute.

    If you have purchased through OpenCollective it needs to be added manually. Join our Discord and create a thread in #help. A staff member will apply it to your account as soon as possible.

    ","text":""},{"location":"supporter/#what-is-opencollective","title":"What is OpenCollective?

    OpenCollective is like Patreon, except for open source projects. It's also more transparent and easier when working with multiple people.

    They manage our funds and allow us to focus on development while they handle the financial side of things.

    OpenCollective relies on Stripe to handle their payments, which is one of the worlds biggest payment providers. You can read more about their security here.

    ","text":""},{"location":"supporter/#can-i-cancel-or-change-my-subscription","title":"Can I cancel or change my subscription?

    If you have purchased through Discord, you can go to settings and then 'Subscriptions'.

    If you have puchased through OpenCollective, you can cancel a recurring contribution at any time. To do so, go to OpenCollective and sign in. After signing in go to 'Manage Contributions' where you can change your subscription.

    ","text":""},{"location":"supporter/#what-happens-if-i-cancel-my-subscription-and-have-imported-my-plays","title":"What happens if I cancel my subscription and have imported my plays?

    When your supporter subscription expires, you will be moved back to using Last.fm as your only data source.

    Your imports are however saved and will be available again if you resubscribe in the future.

    ","text":""},{"location":"supporter/#i-have-a-question-that-isnt-listed-here","title":"I have a question that isn't listed here

    Please join our server and make a thread in the #help channel. A staff member will try to help you as soon as possible.

    ","text":""},{"location":"terms/","title":"Terms of Use","text":"

    Last updated: October 12, 2023

    "},{"location":"terms/#agreement-to-terms","title":"Agreement to Terms","text":"

    These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (\u201cyou\u201d) and .fmbot (\".fmbot\" \u201cfmbot\u201d, \u201cwe\u201d, \u201cus\u201d, or \u201cour\u201d), concerning your access to and use of .fmbot as well as any other media form, website, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the \u201cBot\u201d). You agree that by accessing the Bot, you have read, understood, and agree to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE BOT AND YOU MUST DISCONTINUE USE IMMEDIATELY. Supplemental terms and conditions or documents that may be posted on the website from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the \u201cLast updated\u201d date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Bot so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Bot after the date such revised Terms of Use are posted. The information provided on the Bot is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Bot from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. The Bot is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Bot. You may not use the Bot in a way that would violate the Gramm-Leach-Bliley Act (GLBA). The Bot is intended for users who are at least 13 years of age. All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Bot. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Bot.

    "},{"location":"terms/#user-representations","title":"User Representations","text":"

    By using the Bot, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not under the age of 13; (3) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Bot; (4) you will not access the Discord Bot through automated or non-human means, whether through a bot, script or otherwise; (5) you will not use the Bot for any illegal or unauthorized purpose; and (6) your use of the Bot will not violate any applicable law or regulation.

    "},{"location":"terms/#fees-and-payment","title":"Fees and Payment","text":"

    We use OpenCollective and Discord for payments.

    When you use Discord for any purchases, you must agree to their Paid Services Terms:

    https://support.discord.com/hc/en-us/articles/4410339366295

    If you have payment issues, you can contact them here:

    https://dis.gd/billing

    When you use OpenCollective, you must agree to their Terms of Service and Privacy Policy:

    https://opencollective.com/tos

    https://opencollective.com/privacypolicy

    If you have payment issues with OpenCollective, try contacting them. fmbot has limited access to help you resolve issues.

    "},{"location":"terms/#prohibited-activities","title":"Prohibited Activities","text":"

    You may not access or use the Bot for any purpose other than that for which we make the Bot available. The Bot may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

    As a user of the Bot, you agree not to:

    "},{"location":"terms/#contribution-license","title":"Contribution License","text":"

    You and the Bot agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings). By submitting suggestions or other feedback regarding the Bot, you agree that we can use and share such feedback for any purpose without compensation to you. We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Bot. You are solely responsible for your Contributions to the Bot and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

    "},{"location":"terms/#submissions","title":"Submissions","text":"

    You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Bot (\"Submissions\") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

    "},{"location":"terms/#third-party-websites-and-content","title":"Third-Party Websites and Content","text":"

    The Bot may contain (or you may be sent via the Bot) links to other websites (\"Third-Party Websites\") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties (\"Third-Party Content\"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Bot or any Third-Party Content posted on, available through, or installed from the Bot, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Bot and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Bot or relating to any applications you use or install from the Bot. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

    "},{"location":"terms/#bot-management","title":"Bot Management","text":"

    We reserve the right, but not the obligation, to: (1) monitor the Bot for violations of these Terms of Use; (2) take appropriate action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Bot or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Bot in a manner designed to protect our rights and property and to facilitate the proper functioning of the Bot.

    "},{"location":"terms/#privacy-policy","title":"Privacy Policy","text":"

    We care about data privacy and security. Please review our Privacy Policy: https://fmbot.xyz/privacy. By using the Bot, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Bot is hosted in Finland. If you access the Bot from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in Finland, then through your continued use of the Bot, you are transferring your data to Finland, and you agree to have your data transferred to and processed in Finland. Further, we do not knowingly accept, request, or solicit information from children or knowingly market to children. Therefore, in accordance with the U.S. Children\u2019s Online Privacy Protection Act, if we receive actual knowledge that anyone under the age of 13 has provided personal information to us without the requisite and verifiable parental consent, we will delete that information from the Bot as quickly as is reasonably practical.

    "},{"location":"terms/#term-and-termination","title":"Term and Termination","text":"

    These Terms of Use shall remain in full force and effect while you use the Bot. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE BOT (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE BOT OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION. If we terminate or suspend your access for any reason, you are prohibited from using a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

    "},{"location":"terms/#modifications-and-interruptions","title":"Modifications and Interruptions","text":"

    We reserve the right to change, modify, or remove the contents of the bot at any time or for any reason at our sole discretion without notice. While we will make a best effort to inform our users we have no obligation to update any information on our bot. We also reserve the right to modify or discontinue all or part of the bot without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the bot. We cannot guarantee the bot will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the bot, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the bot at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the bot during any downtime or discontinuance of the bot. Nothing in these Terms of Use will be construed to obligate us to maintain and support the bot or to supply any corrections, updates, or releases in connection therewith.

    "},{"location":"terms/#governing-law","title":"Governing Law","text":"

    These conditions are governed by and interpreted following the laws of the Netherlands, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. .fmbot and yourself both agree to submit to the non-exclusive jurisdiction of the courts of The Netherlands, which means that you may make a claim to defend your consumer protection rights in regards to these Conditions of Use in the Netherlands, or in the EU country in which you reside.

    "},{"location":"terms/#corrections","title":"Corrections","text":"

    There may be information on the bot that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the bot at any time, without prior notice.

    "},{"location":"terms/#disclaimer","title":"Disclaimer","text":"

    THE BOT IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE BOT AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE BOT\u2019S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE BOT AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE BOT, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE WEBSITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE BOT BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE BOT. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE BOT, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

    "},{"location":"terms/#limitations-of-liability","title":"Limitations of Liability","text":"

    IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE BOT, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

    "},{"location":"terms/#indemnification","title":"Indemnification","text":"

    You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys\u2019 fees and expenses, made by any third party due to or arising out of: (1) use of the Bot; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Bot with whom you connected via the Bot. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

    "},{"location":"terms/#user-data","title":"User Data","text":"

    We will maintain certain data that you transmit to the Bot for the purpose of managing the performance of the Bot, as well as data relating to your use of the Bot. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Bot. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

    "},{"location":"terms/#electric-communications-transactions-and-signatures","title":"Electric Communications, Transactions and Signatures","text":"

    Using the Bot, visiting the website, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Bot, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE BOT. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

    "},{"location":"terms/#california-users-and-residents","title":"California Users and Residents","text":"

    If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

    "},{"location":"terms/#miscellaneous","title":"Miscellaneous","text":"

    These Terms of Use and any policies or operating rules posted by us on the website or in respect to the Bot constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Bot. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

    "},{"location":"terms/#contact-us","title":"Contact Us","text":"

    Discord: https://discord.gg/fmbot

    "},{"location":"commands/","title":"Getting started","text":"

    To view a list of all available commands, use the sidebar. The basic commands to get started are listed below.

    .fmbot uses Last.fm to get information about your music taste. Don't have a Last.fm account? You can create one here.

    For more information on connecting Last.fm to Spotify other music services, please click here.

    Note that .fmbot is not associated with Last.fm, we simply use their API. For issues with Last.fm you can check out their support forums.

    Have an issue with the bot you need help with? Please check the Frequently Asked section first.

    "},{"location":"commands/#login","title":".login","text":"

    This command connects your Last.fm account to .fmbot.

    After using this command the bot will DM you a link where you can allow access to your Last.fm account.

    Not receiving a DM from .fmbot when using this command? Please check if you have DMs enabled in the servers privacy settings.

    Examples

    .login

    /login (responds in-channel)

    Please note that users in shared servers will be able to see and request your Last.fm username.

    To delete all your data from .fmbot, including friends and other settings, use .remove.

    "},{"location":"commands/#help","title":".help","text":"

    Shows information about getting started with the bot.

    Examples

    .help

    "},{"location":"commands/#profile","title":".profile","text":"

    Shows you or someone else their user profile with some interesting statistics.

    Options:

    Examples

    .profile

    .stats

    Want to see a yearly overview on your profile? Get .fmbot supporter here.

    "},{"location":"commands/#settings","title":".settings","text":"

    Shows an overview of all your .fmbot settings.

    Use the dropdown to pick what setting you want to change.

    Examples

    .settings

    /settings (responds in-channel)

    "},{"location":"commands/#fmmode","title":".fmmode","text":"

    This command allows you to change how your .fm command looks.

    Available modes:

    You can also enable up to 4 custom options to show in your .fm footer.

    Use the provided dropdowns to select and de-select which options you want.

    Examples

    .fmmode

    /fmmode (responds in-channel)

    Supporters can select up 9 options, and have access to some exclusive options like first artist listen. Get .fmbot supporter here.

    "},{"location":"commands/#responsemode","title":".responsemode","text":"

    This command allows you to change how responses to the various whoknows and top lists commmand look.

    Modes: embed or image

    You can also override this preference on every invididual command. Simply add img or embed to the command.

    Examples

    .responsemode

    Override examples

    .whoknows the beatles image

    .toptracks 2023 img

    .globalwhoknows mac miller embed

    "},{"location":"commands/#userreactions","title":".userreactions","text":"

    Sets automatic emoji reactions for every .fm and featured command you use.

    To disable, simply use .userreactions without any emojis.

    Make sure the emojis you enable are in a server that .fmbot is also in.

    Max amount of emojis is 5. Please put a space between every emoji.

    This setting is supporter only. Get .fmbot supporter here.

    Examples

    .userreactions :PagChomp: :PensiveBlob:

    .userreactions \ud83d\ude00 \ud83d\ude2f \ud83e\udd75

    .userreactions \ud83d\ude00 \ud83d\ude2f :PensiveBlob:

    .userreactions

    "},{"location":"commands/albums/","title":"Albums","text":""},{"location":"commands/albums/#album-ab","title":".album (.ab)","text":"

    Gets information about current album or the one you're searching for.

    Examples

    .ab

    .album

    .album Ventura Anderson .Paak

    Want this command to also show the date you discovered an album? Get .fmbot supporter here.

    "},{"location":"commands/albums/#albumplays-abp","title":".albumplays (.abp)","text":"

    Shows you your playcount for current album or the one you're searching for.

    Options:

    Examples

    .abp

    .albumplays

    .albumplays The Slow Rush

    "},{"location":"commands/albums/#chart-c","title":".chart (.c)","text":"

    Creates a chart of your top albums over a certain time period.

    Options:

    Available time periods: weekly, monthly, quarterly, half, yearly or alltime (w, m, q, h, y or a)

    Examples

    .c

    .chart

    .chart 5x5

    .chart 8x8 yearly

    .chart 6x8 alltime notitles

    .chart released:2022

    .c 8x10 a nt s

    "},{"location":"commands/albums/#albumsoftheyear-aoty","title":".albumsoftheyear (.aoty)","text":"

    Generates a chart of albums released in a specific year.

    It works the exact same as the chart command, except that you can directly input the release year for the filter.

    Examples

    .aoty 2023

    "},{"location":"commands/albums/#topalbums-tab","title":".topalbums (.tab)","text":"

    Shows a list of you or your friends top albums over a certain time period.

    Options:

    Time periods:

    Examples

    .tab

    .topalbums billboard

    .tab a bb

    .topalbums 2023 @user

    .topalbums quarterly @slipper

    .topalbums r:2022

    "},{"location":"commands/albums/#albumtracks-abt","title":".albumtracks (.abt)","text":"

    Shows a list of tracks in an album that you have plays on.

    Note that Last.fm or Spotify will sometimes not return the tracks within an album.

    Options:

    Examples

    .abt

    .albumtracks

    .albumtracks the beatles yesterday

    "},{"location":"commands/albums/#cover-co","title":".cover (.co)","text":"

    Shows the cover for current album or the one you're searching for.

    Examples

    .co

    .cover

    .cover la priest inji

    .cover featured

    "},{"location":"commands/albums/#whoknowsalbum-wkab-wa","title":".whoknowsalbum (.wkab, .wa)","text":"

    Shows who in your server listened to current album or the one you're searching for.

    Options:

    Examples

    .wa

    .whoknowsalbum

    .whoknowsalbum The Beatles Abbey Road

    .whoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#friendwhoknowsalbum-fwkab-fwa","title":".friendwhoknowsalbum (.fwkab, .fwa)","text":"

    Shows who from your friends listened to current album or the one you're searching for.

    Options:

    Examples

    .fwa

    .friendwhoknowsalbum

    .friendwhoknowsalbum The Beatles Abbey Road

    .friendwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#globalwhoknowsalbum-gwka-gwa","title":".globalwhoknowsalbum (.gwka, .gwa)","text":"

    Shows who in .fmbot listened to current album or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gwa

    .globalwhoknowsalbum

    .globalwhoknowsalbum The Beatles Abbey Road

    .globalwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#serveralbums","title":".serveralbums","text":"

    Shows top albums for everyone in your server.

    Options:

    Examples

    .sab

    .serveralbums a p

    .serveralbums alltime plays

    .serveralbums listeners weekly

    "},{"location":"commands/artists/","title":"Artist commands","text":""},{"location":"commands/artists/#artist-a","title":".artist (.a)","text":"

    Shows information about current artist or the one you're searching for.

    Options:

    Examples

    .a

    .artist

    .a Gorillaz

    .artist David Vunk

    Want this command to also show the date you discovered an artist? Get .fmbot supporter here.

    "},{"location":"commands/artists/#affinity-aff","title":".affinity (.aff)","text":"

    Shows users in the same server with similar music taste to you.

    Uses your alltime top artists and recent top artists.

    Options:

    Examples

    .aff

    .affinity

    "},{"location":"commands/artists/#artistplays-ap","title":".artistplays (.ap)","text":"

    Shows you your playcount for the artist you're currently listening to or searching for.

    Options:

    Examples

    .ap

    .artistplays

    .artistplays Mall Grab

    "},{"location":"commands/artists/#artistchart-ac","title":".artistchart (.ac)","text":"

    Creates a chart of your top artists over a certain time period.

    Options:

    Available time periods: weekly, monthly, quarterly, half, yearly or alltime (w, m, q, h, y or a)

    Examples

    .ac

    .artistchart

    .artistchart 5x5

    .artistchart 4x8 yearly

    .artistchart 8x8 alltime notitles

    .artistchart 8x8 alltime notitles skip

    .ac 8x10 a nt s

    "},{"location":"commands/artists/#artisttracks-at","title":".artisttracks (.at)","text":"

    Shows you your all-time top tracks for current artist or the one you're searching for.

    Options:

    Examples

    .at

    .artisttracks

    .artisttracks Crystal Castles

    "},{"location":"commands/artists/#artistalbums-aa","title":".artistalbums (.aa)","text":"

    Shows you your all-time top albums for current artist or the one you're searching for.

    Options:

    Examples

    .aa

    .artistalbums

    .artistalbums Frank Ocean

    "},{"location":"commands/artists/#topartists-ta","title":".topartists (.ta)","text":"

    Shows a list of you or your friends top artists over a certain time period.

    Options:

    Time periods:

    Examples

    .ta

    .artists

    .topartists billboard

    .ta w bb

    .topartists 2023 @user

    .topartists alltime @drasil

    "},{"location":"commands/artists/#taste-t","title":".taste (.t)","text":"

    Compares your top artists, genres, countries and Discogs to those of someone else.

    Options:

    Time periods:

    Modes:

    Examples

    .t frikandel_

    .t @user

    .taste bitldev

    .taste @user monthly embed

    .t @user m e

    "},{"location":"commands/artists/#whoknows-wk-w","title":".whoknows (.wk, .w)","text":"

    Shows who in your server listened to current artist or the one you're searching for.

    Options:

    Examples

    .w

    .wk

    .w COMA

    .whoknows

    .whoknows Agar Agar img

    "},{"location":"commands/artists/#friendwhoknows-fwk-fw","title":".friendwhoknows (.fwk, .fw)","text":"

    Shows who from your friends listened to current artist or the one you're searching for.

    Options:

    Examples

    .fw

    .fwk

    .fw COMA

    .friendwhoknows

    .friendwhoknows KAYTRANADA

    "},{"location":"commands/artists/#globalwhoknows-gwk-gw","title":".globalwhoknows (.gwk, .gw)","text":"

    Shows who in .fmbot listened to current artist or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gw

    .gwk

    .gw COMA

    .globalwhoknows

    .globalwhoknows Romy

    "},{"location":"commands/artists/#serverartists","title":".serverartists","text":"

    Shows top artists for everyone in your server.

    Options:

    Examples

    .sa

    .serverartists a p

    .serverartists alltime plays

    .serverartists listeners weekly

    "},{"location":"commands/artists/#discoveries-d","title":".discoveries (.d)","text":"

    Shows a list of when you discovered artists, together with their alltime playcount.

    Options:

    Time periods:

    Examples

    .ta

    .artists

    .topartists billboard

    .ta w bb

    .topartists weekly @user

    .topartists alltime @drasil

    This command requires .fmbot to store your full listening history, which we only do for supporters. Get .fmbot supporter here.

    "},{"location":"commands/countries/","title":"Country commands","text":"

    Countries are sourced from MusicBrainz.

    To enter countries, you can either enter the full name or the 2 letter ISO code.

    "},{"location":"commands/countries/#topcountriestc","title":".topcountries(.tc)","text":"

    Shows a list of you or your friends top countries over a certain time period.

    Options:

    Time periods:

    Examples

    .tc

    .topcountries billboard

    .topcountries weekly @user

    .tc alltime @Voaz bb

    .topcountries monthly lfm:fm-bot

    "},{"location":"commands/countries/#country-from","title":".country (.from)","text":"

    Shows country information for your current artist or your top artists for the country you're searching for.

    Examples

    .from

    .country

    .country Netherlands

    .country Mac DeMarco

    "},{"location":"commands/crowns/","title":"Crowns","text":"

    A crown is an award that you get if you're the #1 listener for a certain artist in a server.

    To get crowns you can use .whoknows.

    Crown server settings are available here. Leaving a server resets all your crowns for that server.

    "},{"location":"commands/crowns/#crowns-cws","title":".crowns (.cws)","text":"

    Shows your top crowns or crowns for a user you're searching for.

    Options:

    Examples

    .cws

    .crowns

    .crowns @frikandel

    "},{"location":"commands/crowns/#crown-cw","title":".crown (.cw)","text":"

    Shows the current crown owner and crown history for the artist you're currently listening to or searching for.

    Examples

    .cw

    .crown

    .crown the beatles

    .crown tame impala

    "},{"location":"commands/crowns/#crownleaderboard-cwlb","title":".crownleaderboard (.cwlb)","text":"

    Shows the users with the most crowns on your server.

    Examples

    .cwlb

    .crownleaderboard

    Looking for automatic crowns, crown settings and ways to moderate crowns on your server? That's available here in the server setting section.

    "},{"location":"commands/discogs/","title":"Discogs commands","text":""},{"location":"commands/discogs/#discogs","title":".discogs","text":"

    Allows you to connect or manage the connection with your Discogs account.

    The bot will send you a DM where you can configure this.

    You can also show/hide the display of your collection value on your profile.

    Examples

    .discogs

    "},{"location":"commands/discogs/#collection","title":".collection","text":"

    Shows you or someone else their Discogs collection.

    Allows for searching through artist or album title. One can also search by format type, include cassette, cd or vinyl in the command to enable.

    This command updates your stored collection in .fmbot. Your collection can only be updated once per hour.

    Some places where your collection can also be visible are the profile, artist, album as well as taste commands if both you and the other user have run .discogs.

    Options:

    Examples

    .collection

    .collection mall grab

    .collection cd

    Only the last 100 items you've added to Discogs can be viewed and stored.

    Want to view your whole collection? Get .fmbot supporter here.

    "},{"location":"commands/featured/","title":"Featured commands","text":""},{"location":"commands/featured/#featured","title":".featured","text":"

    Shows the user that is currently featured.

    Anyone that is registered in fmbot can get featured, on one condition: They must have used .fmbot in the last day.

    To get pinged when you get featured you can join our server.

    Possible featured modes:

    If your top album doesn't have a picture, no worries. The bot will just grab the next album that has a picture. The album cover will also be used as the bot's profile picture.

    Examples

    .featured

    Every first Sunday of each month is Supporter Sunday. On this day .fmbot picks featured from .fmbot supporters, as a thank you for supporting the bot. Get .fmbot supporter here.

    "},{"location":"commands/featured/#featuredlog","title":".featuredlog","text":"

    Shows your or someone else their featured history.

    Options:

    Examples

    .featuredlog

    .featuredlog @user

    .featuredlog server

    "},{"location":"commands/friends/","title":"Friend commands","text":""},{"location":"commands/friends/#friends-f","title":".friends (.f)","text":"

    Shows the latest scrobble of your added friends in a list.

    Examples

    .friends

    "},{"location":"commands/friends/#addfriends","title":".addfriends","text":"

    Adds one or multiple friends to your friends list.

    Select other users by mention, Discord ID or Last.fm username

    Examples

    .addfriends frikandel_

    .addfriends frikandel_ otherlastfmuser

    .addfriends frikandel_ @discorduser

    .addfriends 356268235697553409

    Did you know there's also another way to add friends? Simply rightclick their profile > Apps > Add Friend

    Want to be able to add more friends (up to 18)? Get .fmbot supporter here.

    "},{"location":"commands/friends/#removefriends","title":".removefriends","text":"

    Removes one or multiple friends from your friends list.

    Select other users by mention, Discord ID or Last.fm username

    Examples

    .removefriends frikandel_

    .removefriends frikandel_ otherlastfmuser

    .removefriends frikandel_ @discorduser

    .removefriends 356268235697553409

    Did you know there's also another way to add friends? Simply rightclick their profile > Apps > Remove Friend

    "},{"location":"commands/friends/#removeallfriends","title":".removeallfriends","text":"

    Removes all your friends from your friends list.

    Examples

    .removeallfriends

    "},{"location":"commands/friends/#friendwhoknows-fwk-fw","title":".friendwhoknows (.fwk, .fw)","text":"

    Shows who from your friends listened to an artist you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fw

    .fwk

    .fw MGMT

    .friendwhoknows

    .friendwhoknows Nia Archives

    "},{"location":"commands/friends/#friendwhoknowsalbum-fwkab-fwa","title":".friendwhoknowsalbum (.fwkab, .fwa)","text":"

    Shows who from your friends listened to an album you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fwa

    .friendwhoknowsalbum

    .friendwhoknowsalbum The Beatles Help

    .friendwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/friends/#friendwhoknowstrack-fwkt-fwt","title":".friendwhoknowstrack (.fwkt, .fwt)","text":"

    Shows who from your friends listened to an track you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fwt

    .friendwhoknowstrack

    .friendwhoknowstrack Vansire Metamodernity

    .friendwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/genius/","title":"Genius commands","text":""},{"location":"commands/genius/#genius-gen","title":".genius (.gen)","text":"

    Gets the Genius link for the song you're currently listening to, or the one you're searching for.

    Examples

    .gen

    .genius

    .gen Nas Never Die

    .genius Mac Miller Good News

    "},{"location":"commands/genres/","title":"Genre commands","text":"

    Genres are sourced from Spotify.

    To view a list of all Spotify genres, you can use the website everynoise.com

    "},{"location":"commands/genres/#topgenrestg","title":".topgenres(.tg)","text":"

    Shows a list of you or your friends top genres over a certain time period.

    Options:

    Time periods:

    Examples

    .tg

    .topgenres billboard

    .topgenres weekly @user

    .tg alltime @drasil bb

    .topgenres 2023 lfm:fm-bot

    "},{"location":"commands/genres/#genre-g","title":".genre (.g)","text":"

    Shows genre information for your current artist or your top artists for the genre you're searching for.

    Options:

    Examples

    .g

    .genre

    .genre electro

    .genre Mac DeMarco

    .g lfm:fm-bot

    "},{"location":"commands/genres/#whoknowsgenre-wg","title":".whoknowsgenre (.wg)","text":"

    Shows who in your server listened to a genre you're searching for.

    Options:

    Examples

    .wg

    .wkg

    .wg hiphop

    .whoknowsgenre techno

    "},{"location":"commands/genres/#servergenres","title":".servergenres","text":"

    Shows top genres for everyone in your server.

    Options:

    Examples

    .sg

    .servergenres a p

    .servergenres alltime plays

    .servergenres listeners weekly

    "},{"location":"commands/misc/","title":"Miscellaneous","text":""},{"location":"commands/misc/#deleting-fmbot-responses","title":"Deleting fmbot responses","text":"

    It's possible to remove .fmbot's response, even if you don't have permission to manage messages.

    Mobile: Long press message > Apps > Delete response

    Desktop: Right-click message > Apps > Delete response

    "},{"location":"commands/misc/#reply-context","title":"Reply context","text":"

    You can reply to any fmbot command or response that contains an artist, album or track to directly use that as context for your new command.

    Example below:

    "},{"location":"commands/misc/#judge","title":".judge","text":"

    Judges your music taste using AI. You can pick between either a compliment or a roast.

    Free users can use this command 3 times a day, supporters up to 15.

    Supporters also get access to higher quality GPT-4 powered compliments and roasts.

    Options:

    Examples

    .judge

    The usage limits for this command might be adjusted depending on popularity and cost.

    "},{"location":"commands/misc/#rateyourmusic","title":".rateyourmusic","text":"

    Enables/disabled an option that changes all album links to link to RateYourMusic.

    Examples

    .rym

    "},{"location":"commands/misc/#info","title":".info","text":"

    Shows all the information and links related to the bot.

    Examples

    .info

    "},{"location":"commands/misc/#status","title":".status","text":"

    Gets the bot status information.

    Examples

    .status

    "},{"location":"commands/misc/#remove","title":".remove","text":"

    Deletes all your user information, including all your friends and other settings.

    Examples

    .remove

    "},{"location":"commands/plays/","title":"Play commands","text":""},{"location":"commands/plays/#getting-your-latest-scrobbles","title":"Getting your latest scrobbles","text":""},{"location":"commands/plays/#fm","title":".fm","text":"

    Shows your last 1 or 2 scrobbles, either in embed or text format.

    You can set how your .fm embed looks with the .mode command.

    Options:

    Examples

    .fm

    .fm @user

    .fm lfm:lastfmusername

    .fm this is a nice song

    Tip: You can click the embed title to go to the users Last.fm profile.

    If you want .fmbot to add reactions to this command, please see .serverreactions.

    "},{"location":"commands/plays/#recent-r","title":".recent (.r)","text":"

    Shows your latest plays.

    Options:

    Examples

    .r

    .recent

    For supporters this command expands to your full listening history. Supporters can also filter to specific artists. Get .fmbot supporter here.

    "},{"location":"commands/plays/#streak-str","title":".streak (.str)","text":"

    Shows your track, album or artist streak.

    Options:

    Examples

    .str

    .streak

    "},{"location":"commands/plays/#overview-o","title":".overview (.o)","text":"

    Shows you an overview of your top track, album and artist for the last few days.

    Options:

    Examples

    .o

    .overview

    .overview 8

    "},{"location":"commands/plays/#pace-pc","title":".pace (.pc)","text":"

    Shows you an estimate of when you will reach a certain amount of plays.

    Options:

    Time periods: weekly, monthly, quarterly, half, yearly or alltime. (w, m, q, h, y or a)

    Examples

    .pc

    .pace

    .pace a 73k

    .pace 50000 quarterly

    "},{"location":"commands/plays/#milestone-ms","title":".milestone (.ms)","text":"

    Shows you your latest scrobble milestones.

    Options:

    Examples

    .ms

    .ms 30k

    .milestone

    .milestone 20k

    .milestone 1337 @frikandel

    .milestone rnd

    "},{"location":"commands/plays/#year-wrapped","title":".year (.wrapped)","text":"

    Shows you an overview of you or someone else their year.

    Supporters get an extra page with Artist Discoveries and a monthly overview.

    Options:

    Examples

    .year

    .year 2023

    .wrapped @frikandel

    "},{"location":"commands/spotify/","title":"Spotify commands","text":""},{"location":"commands/spotify/#spotify-sp","title":".spotify (.sp)","text":"

    Gets the Spotify link for the song you're currently listening to, or the one you're searching for.

    Examples

    .sp

    .spotify

    .sp C418 Sweden

    .spotify Delta Sleep Camp Adventure

    "},{"location":"commands/spotify/#spotifyalbum-spab","title":".spotifyalbum (.spab)","text":"

    Gets the Spotify link for the album you're currently listening to, or the one you're searching for.

    Examples

    .spab

    .spotifyalbum

    .spab De Jeugd De Lachende Derde

    .spotifyalbum Alexander Robotnick April

    "},{"location":"commands/spotify/#spotifyartist-spa","title":".spotifyartist (.spa)","text":"

    Gets the Spotify link for the artist you're currently listening to, or the one you're searching for.

    Examples

    .spa

    .spotifyartist

    .spa Green Day

    .spotifyartist Acid Pauli

    "},{"location":"commands/tracks/","title":"Track commands","text":""},{"location":"commands/tracks/#viewing-your-tracks","title":"Viewing your tracks","text":""},{"location":"commands/tracks/#track-tr","title":".track (.tr)","text":"

    Gets information about the track you're currently listening to or searching for.

    Examples

    .tr

    .track

    .track Kaytranada You're The One

    Want this command to also show the date you discovered a track? Get .fmbot supporter here.

    "},{"location":"commands/tracks/#trackplays-tp","title":".trackplays (.tp)","text":"

    Shows you your playcount for current track or the one you're searching for.

    Options:

    Examples

    .tp

    .trackplays

    .trackplays Infected Mushroom Can't Stop

    "},{"location":"commands/tracks/#trackdetailstd","title":".trackdetails(.td)","text":"

    Shows metadata for current track or the one you're searching for.

    Examples

    .td

    .trackdetails

    .trackdetails Underworld Born Slippy

    "},{"location":"commands/tracks/#recent-r","title":".recent (.r)","text":"

    Shows your latest plays.

    Options:

    Examples

    .r

    .recent

    For supporters this command expands to your full listening history. Get .fmbot supporter here.

    "},{"location":"commands/tracks/#toptracks-tt","title":".toptracks (.tt)","text":"

    Shows a list of you or your friends top tracks over a certain time period.

    Options:

    Time periods:

    Examples

    .tt

    .toptracks billboard

    .tt y bb

    .toptracks 2023 @user

    .toptracks @john alltime

    "},{"location":"commands/tracks/#receipt-rcpt","title":".receipt (.rcpt)","text":"

    Shows your track receipt. Based on Receiptify.

    Options:

    Time periods:

    Examples

    .rcpt

    .receipt

    .receipt march 2021

    .receipt weekly @user

    "},{"location":"commands/tracks/#whoknowstrack-wktr-wt","title":".whoknowstrack (.wktr, .wt)","text":"

    Shows who in your server listened to current track or the one you're searching for.

    Note that the playcount for the user that requested the command will always be up to date.

    Options:

    Examples

    .wt

    .whoknowstrack

    .whoknowstrack Hothouse Flowers Don't Go

    .whoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#friendwhoknowstrack-fwkt-fwt","title":".friendwhoknowstrack (.fwkt, .fwt)","text":"

    Shows who from your friends listened to current track or the one you're searching for.

    Options:

    Examples

    .fwt

    .friendwhoknowstrack

    .friendwhoknowstrack Hothouse Flowers Don't Go

    .friendwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#globalwhoknowstrack-gwkt-gwt","title":".globalwhoknowstrack (.gwkt, .gwt)","text":"

    Shows who in .fmbot listened to current track or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gwt

    .globalwhoknowstrack

    .globalwhoknowstrack Hothouse Flowers Don't Go

    .globalwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#servertracks","title":".servertracks","text":"

    Shows top tracks for everyone in your server.

    Options:

    Examples

    .st

    .servertracks a p

    .servertracks alltime plays

    .servertracks listeners weekly

    "},{"location":"commands/tracks/#love-l","title":".love (.l)","text":"

    Adds current track or the one you're searching for to your Last.fm loved tracks.

    Examples

    .l

    .love

    .love Tame Impala Borderline

    "},{"location":"commands/tracks/#unlove-ul","title":".unlove (.ul)","text":"

    Removes current track or the one you're searching for from your Last.fm loved tracks.

    Examples

    .ul

    .unlove

    .unlove Lou Reed Brandenburg Gate---

    "},{"location":"commands/tracks/#loved-lt","title":".loved (.lt)","text":"

    Displays a user's loved tracks.

    Options:

    Examples

    .lt

    .loved

    .lovedtracks

    .lovedtracks @user

    "},{"location":"commands/tracks/#scrobble-sb","title":".scrobble (.sb)","text":"

    Scrobbles the track you're searching for. You can only scrobble tracks that already exist on Last.fm.

    Options:

    Examples

    .scrobble

    .sb The Less I Know The Better

    .scrobble Loona Heart Attack

    .scrobble Mac DeMarco | Chamber of Reflection

    .scrobble Home | Climbing Out | Falling into Place

    .scrobble https://www.discogs.com/release/249504-Rick-Astley-Never-Gonna-Give-You-Up

    "},{"location":"commands/whoknows/","title":"Caching","text":"

    .fmbot uses various ways of making sure all commands are fast and smooth.

    This includes storing a copy of your Last.fm history and storing what registered .fmbot members are in which server.

    Most of this is done automatically behind the scenes, but you can also adjust this manually.

    "},{"location":"commands/whoknows/#update","title":".update","text":"

    This command updates your playcount cache in the bot. This works by fetching your latest scrobbles from Last.fm and updating our cache accordingly.

    "},{"location":"commands/whoknows/#note","title":"Note:","text":"

    Examples

    .u

    .update

    .update full

    If you want .fmbot to store more then just your top 4/5/6k artist/albums/tracks, check out .fmbot supporter!

    Having issues with the bot not picking up what you're playing on Spotify? Check out the FAQ entry.

    "},{"location":"commands/whoknows/#refreshmembers","title":".refreshmembers","text":"

    Refreshes the cache of which .fmbot users are in your server for server-wide commands.

    "},{"location":"commands/whoknows/#note_1","title":"Note:","text":"

    Examples

    .refreshmembers

    "},{"location":"commands/youtube/","title":"Youtube commands","text":""},{"location":"commands/youtube/#youtube-yt","title":".youtube (.yt)","text":"

    Gets the Youtube link for the song you're currently listening to, or the one you're searching for.

    Youtube embeds will be hidden if the user requesting does not have the 'Embed Links' permission.

    Examples

    .yt

    .youtube

    .yt Rick Astley Never Gonna Give You Up

    .youtube Hi Stranger

    "},{"location":"guildsettings/","title":"Server settings","text":"

    Server settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/#configuration","title":".configuration","text":"

    Shows all server settings in an easy overview.

    Use the dropdown to pick a setting that you want to change.

    Examples

    .config

    .serversettings

    "},{"location":"guildsettings/#serverreactions","title":".serverreactions","text":"

    Sets automatic emoji reactions for every .fm and featured command in your server.

    To disable, simply use .serverreactions without any emojis.

    Make sure the emojis you enable are on your server, or in a server that .fmbot is also in.

    Max amount of emojis is 3. Please put a space between every emoji.

    Examples

    .serverreactions :PagChomp: :PensiveBlob:

    .serverreactions \ud83d\ude00 \ud83d\ude2f \ud83e\udd75

    .serverreactions \ud83d\ude00 \ud83d\ude2f :PensiveBlob:

    .serverreactions

    "},{"location":"guildsettings/#togglecommand","title":".togglecommand","text":"

    Enable/disable commands per channel, or completely disable the bot in a channel.

    You can also force an fm mode for everyone in the channel.

    Use the up/down options to pick the channel you want to change.

    Examples

    .togglecommand

    "},{"location":"guildsettings/#toggleservercommand","title":".toggleservercommand","text":"

    You can enable/disable commands server-wide.

    Examples

    .toggleservercommand

    "},{"location":"guildsettings/#prefix","title":".prefix","text":"

    This command allows you to change the .fmbot prefix on your server.

    Note that you can always mention the bot, this will work regardless of prefix.

    Examples

    .prefix

    @.fmbot prefix

    Examples of commands when prefix is set to !

    !fm

    !chart

    !whoknows

    !topalbums

    !prefix

    "},{"location":"guildsettings/crownsettings/","title":"Crown settings","text":"

    You can change what users are able to gain crowns, configure other crown settings or completely disable crowns.

    These settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/crownsettings/#crownthreshold","title":".crownthreshold","text":"

    Allows you set a minimum amount of plays required for someone to claim a crown.

    The default value for this is 30.

    Examples

    .crownthreshold

    "},{"location":"guildsettings/crownsettings/#crownactivitythreshold","title":".crownactivitythreshold","text":"

    Allows you to block users from gaining crowns if they have not been active in a certain amount of days.

    A user is counted as active once they use .fmbot.

    Examples

    .crownactivitythreshold

    "},{"location":"guildsettings/crownsettings/#killcrown","title":".killcrown","text":"

    Allows you to remove a crown and all crown history for a certain artist.

    Examples

    .killcrown deadmau5

    .killcrown the beatles

    "},{"location":"guildsettings/crownsettings/#killallcrowns","title":".killallcrowns","text":"

    Removes all crowns from your server.

    Examples

    .killallcrowns

    .killallcrowns confirm

    "},{"location":"guildsettings/crownsettings/#removeusercrowns","title":".removeusercrowns","text":"

    Removes all crowns from a specific user

    Examples

    .removeusercrowns 748900688129687642

    .removeusercrowns lastfmsupport

    "},{"location":"guildsettings/crownsettings/#crownblock","title":".crownblock","text":"

    Blocks a user from getting any crowns. They will still be visible in the whoknows output.

    Examples

    .crownblock 748900688129687642

    .crownblock lastfmsupport

    "},{"location":"guildsettings/crownsettings/#unblock","title":".unblock","text":"

    Unblocks a user and allows them to gain crowns again.

    Examples

    .unblock 748900688129687642

    .unblock lastfmsupport

    "},{"location":"guildsettings/crownsettings/#crownblockedmembers","title":".crownblockedmembers","text":"

    View all blocked members on your server.

    Examples

    .crownblockedmembers

    "},{"location":"guildsettings/crownsettings/#crownseeder","title":".crownseeder","text":"

    Automatically adds crowns for your server. If you've done this before, it will update all automatically seeded crowns.

    Crown seeding again only updates automatically seeded crowns, not manually claimed crowns.

    Examples

    .crownseeder

    "},{"location":"guildsettings/crownsettings/#killallseededcrowns","title":".killallseededcrowns","text":"

    Removes all automatically seeded crowns from your server.

    Examples

    .killallseededcrowns

    .killallseededcrowns confirm

    "},{"location":"guildsettings/crownsettings/#togglecrowns","title":".togglecrowns","text":"

    Enables/disables all crowns for your server.

    All mentions of crowns will be hidden and all crowns that exist will be removed.

    Examples

    .togglecrowns

    "},{"location":"guildsettings/webhooks/","title":"Webhook settings","text":"

    You can use .fmbot webhooks to automatically post the featured music to your own channel.

    To see more information about how featured works, click here.

    "},{"location":"guildsettings/webhooks/#addwebhook","title":".addwebhook","text":"

    Adds a webhook to the channel or thread you're in.

    Requires the bot to have the 'Manage Webhooks' permission.

    To change the channel simply change it in the server integration settings.

    To remove the webhook simply delete it from your server integrations.

    Examples

    .addwebhook

    "},{"location":"guildsettings/webhooks/#testwebhook","title":".testwebhook","text":"

    Sends a test message through the webhook you've setup in your server. You can use this to check if you've set everything up correctly.

    Examples

    .testwebhook

    "},{"location":"guildsettings/whoknowsettings/","title":"WhoKnows settings","text":"

    You can change what users appear in the whoknows commands and other commands that use all server members

    These settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/whoknowsettings/#activitythreshold","title":".activitythreshold","text":"

    Allows you to filter users from commands that have not been active in a certain amount of days.

    A user is counted as active once they use .fmbot.

    Examples

    .activitythreshold

    "},{"location":"guildsettings/whoknowsettings/#block","title":".block","text":"

    Blocks a user from appearing in whoknows and from being in any server-wide statistic.

    Examples

    .block 748900688129687642

    .block lastfmsupport

    "},{"location":"guildsettings/whoknowsettings/#unblock","title":".unblock","text":"

    Unblocks a user from appearing in whoknows and from being in any server-wide statistic.

    Also unblocks a user in case of any crown bans.

    Examples

    .unblock 748900688129687642

    .unblock lastfmsupport

    "},{"location":"guildsettings/whoknowsettings/#blockedmembers","title":".blockedmembers","text":"

    View all blocked members on your server.

    Examples

    .blockedmembers

    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"

    .fmbot is a social Discord bot that provides music statistics for you, your friends, and your fellow server members. Easily see who listens to your favorite artist in a server and make new friends. Or discover new artists within your favorite genres.

    The bot connects to a Last.fm account to see your listening history. Over 750.000 users have already connected. To get started, simply use /login.

    "},{"location":"#main-features","title":"\ud83d\udccbMain features:","text":""},{"location":"#social-features","title":"\ud83d\udc65Social features:","text":""},{"location":"#featured","title":"\u2728Featured","text":"

    Every hour we feature a random user with something they've recently listened to. Everyone is able to see this using the /featured command, and anyone who recently used the bot gets a chance to become featured!

    The bot will also change it's profile picture to the album cover of the feature. Want to be alerted when you get featured? Join our server and you'll get a ping.

    "},{"location":"#links","title":"\ud83d\udd17Links:","text":""},{"location":"#extra-information","title":"Extra information","text":"

    .fmbot is trusted by over 350.000 servers, has over 750.000 registered users, and is used more than 400.000 times every day.

    It is written in C#, uses Discord.Net and .NET 8. The bot is source-available, so anyone can see how it works.

    Thank you to all our generous supporters. Support .fmbot too and get some nice perks in return.

    "},{"location":"botscrobbling/","title":"Music bot scrobbling","text":"

    Bot scrobbling is a new feature from .fmbot that allows you to automatically scrobble music from other Discord music bots to your Last.fm account.

    The feature works fully automatic. Simply start listening to music using a supported bot and .fmbot will scrobble it for users in that voice channel.

    The bot will only scrobble songs it can find on Last.fm. The scrobbling works best with Spotify songs.

    "},{"location":"botscrobbling/#currently-supported-bots","title":"Currently supported bots:","text":""},{"location":"botscrobbling/#requirements","title":"Requirements:","text":""},{"location":"botscrobbling/#botscrobbling","title":"/botscrobbling","text":"

    Use this command to disable/enable bot scrobbling for your account or to check if you are ready for scrobbling.

    Examples

    /botscrobbling

    Info

    Please note that .fmbot is not affiliated with any of these music bots, and that .fmbot does not stream music or download music to Discord in any way.

    "},{"location":"faq/","title":"Frequently Asked","text":""},{"location":"faq/#how-do-i-get-started","title":"How do I get started?","text":"

    This bot uses your music history for various commands. For this we use a website called Last.fm. This site allows you to track your music history from various platforms.

    To get started you need to create a Last.fm account. After you've setup your account there you can connect your account to our bot by using /login within Discord.

    While we require a Last.fm account the bot is not affiliated with Last.fm.

    "},{"location":"faq/#commands-are-showing-the-wrong-songs-its-not-showing-what-i-listen-to-on-spotify","title":"Commands are showing the wrong songs / it's not showing what I listen to on Spotify","text":"

    We get what you're playing directly from your Last.fm profile, so please check there first to see what is showing on your profile.

    Last.fm often has issues with their Spotify connection. For most people it helps to reconnect Spotify in their Last.fm application settings.

    Last.fm also has an official guide on how to fix this.

    .fmbot is not affiliated with Last.fm or Spotify, so we can't fix this for you. Please don't join our support server to complain about this issue.

    "},{"location":"faq/#the-playcounts-in-the-bot-dont-match-lastfm","title":"The playcounts in the bot don't match Last.fm!","text":"

    Because we rely heavily on caching your playcounts to keep our commands fast it can sometimes happen that you don't get updated properly.

    In this case, try to use .update full. This completely re-builds the stored playcounts the bot has for you.

    "},{"location":"faq/#how-do-i-import-my-spotify-or-apple-music-history-into-fmbot","title":"How do I import my Spotify or Apple Music history into .fmbot?","text":"

    Check out the importing page for more info.

    Using imports requires an active supporter subscription.

    "},{"location":"faq/#who-picks-what-is-featured","title":"Who picks what is featured?","text":"

    The bot randomly picks any user that has used .fmbot in the last day.

    For more information, check out Featured

    "},{"location":"faq/#how-do-i-remove-someone-from-whoknows","title":"How do I remove someone from WhoKnows?","text":"

    Please check the server WhoKnows settings.

    "},{"location":"faq/#im-not-visible-in-global-whoknows","title":"I'm not visible in Global WhoKnows","text":"

    We sometimes remove users from Global WhoKnows that manipulate plays or scrobbles to get on top of our global charts. If you're not showing on the global charts this could be the case.

    You can use the .privacy command to check your status. Set your privacy to global and it will be visible, along with all necessary info.

    Users get filtered automatically for 3 months from Global WhoKnows when:

    "},{"location":"faq/#i-have-an-issue-with-lastfm","title":"I have an issue with Last.fm","text":"

    We are not affiliated with Last.fm. This bot only uses their API to show you and your friends their statistics.

    If you have issues with Last.fm, we'd suggest you check out their support forums or their Discord server.

    "},{"location":"faq/#the-bot-is-offline","title":"The bot is offline","text":"

    It could be that it just happens to be updating. If it stays down, please join the support server and ping one of the developers.

    "},{"location":"faq/#what-is-the-difference-between-the-normal-bot-and-the-develop-bot","title":"What is the difference between the normal bot and the develop bot?","text":"

    The develop bot is used to test new fixes and functionality before they go to the normal bot. This is usually announced in #beta-updates on our server.

    This bot can have more downtime and bugs than the normal bot, so that is something to keep in mind. The bots currently share the same database, so switching is easy.

    Note that if either bot leaves your server all your server data and settings will be cleared.

    "},{"location":"faq/#i-like-this-bot","title":"I like this bot","text":"

    Cool, great to hear.

    "},{"location":"faq/#i-dont-like-this-bot","title":"I don't like this bot","text":"

    :( Please let us know why in the support server. We're open to all feedback and happy to help.

    "},{"location":"faq/#is-there-any-way-to-support-the-bot","title":"Is there any way to support the bot?","text":"

    To support us financially, check out .fmbot supporter. You help us with the hosting and development of the bot while getting some nice perks in return.

    If you are familiar with C# / .NET you can also help us out and pick up one of the open issues. Please check out our contributing guidelines first.

    "},{"location":"faq/#why-does-this-bot-exist","title":"Why does this bot exist?","text":"

    This bot was made by BitL back in September 2017 and was inspired by UB3R Bot. Back then the bot just had .fm, the charts, featuring and .fmyoutube.

    Frikandel joined in when he had the idea of .friends, but was too lazy to make his own bot. Together they moved the bot from text files to an actual database and made various other improvements.

    Since 2019 Frikandel has been the main maintainer and hoster of .fmbot, adding commands like .whoknows and other much-requested features. In March 2021 Frikandel took over all parts of the bot.

    "},{"location":"faq/#i-have-a-question-that-isnt-listed-here","title":"I have a question that isn't listed here","text":"

    Join our server here and ask in the #help channel.

    Note that since .fmbot and Last.fm are two seperate things. .fmbot is the Discord bot, Last.fm is the website.

    Need help with Last.fm? Check out their support forums or their Discord server.

    "},{"location":"importing/","title":"Importing your music history","text":"

    The bot uses Last.fm by default for all your music data. We now also offer a way to import your listening history from Spotify and Apple Music and combine that together with your Last.fm stats.

    This feature is only available for .fmbot supporters. Dont have supporter yet? Get it here.

    "},{"location":"importing/#import-manage","title":"/import manage","text":"

    Allows you to manage your imports and pick the source for your playcounts.

    You can pick between the following modes:

    To delete your imports from .fmbot, switch to the Last.fm option and use the provided button.

    Examples

    /import manage

    "},{"location":"importing/#import-spotify","title":"/import spotify","text":"

    Allows you to import your Spotify streaming history in the bot.

    Shows the instructions on how to get started if you attach no files. These instructions are also listed below.

    This command only supports the 'Extended Streaming History' package. You can either upload the my_spotify_data.zip to import everything at once or upload each .json file separately.

    Examples

    /import Spotify

    Using Discord on your phone?

    Discord mobile currently has a bug where it might return Not a valid value. Please try importing your files through Discord desktop. We've reported this bug, sorry for the inconvenience.

    "},{"location":"importing/#requesting-your-files-from-spotify","title":"Requesting your files from Spotify","text":"
    1. Go to your Spotify privacy settings
    2. Scroll down to \"Download your data\"
    3. Select Extended streaming history
    4. De-select the other options
    5. Press request data
    6. Confirm your data request through your email
    7. Wait up to 30 days for Spotify to deliver your files
    "},{"location":"importing/#importing-your-data-into-fmbot","title":"Importing your data into .fmbot","text":"
    1. Download the file Spotify provided
    2. Use the /import Spotify slash command and add the .zip file as an attachment through the options
    3. Having issues? You can also attach each .json file separately
    "},{"location":"importing/#notes","title":"Notes","text":""},{"location":"importing/#import-applemusic","title":"/import applemusic","text":"

    Allows you to import your Apple Music streaming history in the bot.

    Shows the instructions on how to get started if you attach no files. These instructions are also listed below.

    Examples

    /import applemusic

    "},{"location":"importing/#requesting-your-files-from-apple","title":"Requesting your files from Apple","text":"
    1. Go to your Apple Data and Privacy
    2. Sign in to your account
    3. Click on Request a copy of your data
    4. Select Apple Media Services Information
    5. De-select the other options
    6. Press Continue
    7. Press Complete request
    8. Wait up to 7 days for Apple to deliver your files
    "},{"location":"importing/#importing-your-data-into-fmbot_1","title":"Importing your data into .fmbot","text":"
    1. Download the file Apple provided
    2. Use the /import applemusic slash command and add the .zip file as an attachment through the option
    3. Having issues? You can also attach the Apple Music Play Activity.csv file separately
    "},{"location":"importing/#notes_1","title":"Notes","text":""},{"location":"importing/#frequently-asked","title":"Frequently asked","text":""},{"location":"importing/#why-would-i-use-importing","title":"Why would I use importing?","text":"

    Importing helps your music history be as complete as possible. Most people have been using streaming services like Spotify before they signed up for Last.fm, which means they don't have their full history.

    Importing helps you combine your full history together with your current Last.fm data for the best .fmbot experience.

    You get to keep your original listening timestamps added together with how long you listened to each track for more accurate listening time stats.

    "},{"location":"importing/#the-import-command-keeps-saying-my-files-are-invalid","title":"The import command keeps saying my files are invalid.","text":"

    For Spotify we only support files from the 'Extended streaming history' package. You can try uploading the my_spotify_data.zip or attach each .json file separately.

    Still having issues? Please open a thread on our server.

    "},{"location":"importing/#its-adding-less-plays-to-my-fmbot-account-then-expected","title":"It's adding less plays to my .fmbot account then expected","text":"

    Try switching modes with the /import manage command. This changes how your imports are combined with your Last.fm scrobbles.

    If you want to dive deeper, use the .importdebug command. You can also filter this command to a specific artist.

    "},{"location":"importing/#how-long-does-it-take-before-spotify-sends-my-data","title":"How long does it take before Spotify sends my data?","text":"

    Spotify sends their files out in waves. For the extended streaming history package they usually do this once every 3 weeks.

    Apple Music sends your file within a week.

    "},{"location":"importing/#does-importing-in-fmbot-add-scrobbles-to-my-lastfm","title":"Does importing in .fmbot add scrobbles to my Last.fm?","text":"

    No, imported data only shows in the bot. No scrobbles are added to your Last.fm.

    "},{"location":"importing/#what-happens-if-i-cancel-my-supporter-subscription","title":"What happens if I cancel my supporter subscription?","text":"

    When your supporter subscription expires, you will be moved back to using Last.fm as your only data source.

    Your imports are however saved and will be available again if you resubscribe in the future.

    "},{"location":"importing/#are-platforms-other-then-spotify-and-apple-music-also-supported","title":"Are platforms other then Spotify and Apple Music also supported?","text":"

    At the moment we only support Spotify and Apple Music.

    Want a different platform to be supported? Open a help thread in our server. It helps if you have a data export ready for the developers, so that way they can test a possible integration.

    Each platform should have some way for you to request your listening data. This is legally required in Europe, California and various other places around the world.

    "},{"location":"importing/#can-i-change-or-delete-my-imports","title":"Can I change or delete my imports?","text":"

    See the /import manage command.

    "},{"location":"importing/#what-data-from-my-imports-do-you-store","title":"What data from my imports do you store?","text":"

    We only store the following information:

    Warning

    Imports contain personal data like your IP address and username. Never post your import files publicly.

    "},{"location":"privacy/","title":"Privacy","text":"

    What data .fmbot collects, how we use it and how you can manage it.

    Last update: 2023-10-12

    Changelog: Update command log storage policy

    "},{"location":"privacy/#what-does-your-application-do","title":"What does your application do?","text":"

    .fmbot is an open-source Last.fm Discord bot. Last.fm is a service that tracks what people listen to.

    In our bot you can do various things to analyze your and your friends music taste, like see your recent plays or see who in a server listens to a certain artist.

    To use the bot, you have to log in with a Last.fm account. After that you can optionally also login with a Discogs account.

    "},{"location":"privacy/#what-data-do-you-store","title":"What data do you store?","text":"

    When someone logins to the bot, we store the following Discord data:

    We store the following Last.fm data for every user:

    If a user logs in with Discogs, we store the following data:

    When the bot joins a server, the following data from that server is stored:

    When specific settings for a server channel are set, the following data from that channel is stored:

    When someone uses a command, the command log stores this:

    If someone imports their Spotify history, we store the following data of their import files:

    If a server has Premium Server, the following data will be stored for every logged-in user in the server:

    No data is stored from users that are not logged into the bot.

    'Logged in' means that a user has connected their Last.fm account to .fmbot with the 'login' command.

    "},{"location":"privacy/#music-bot-scrobbling","title":"Music bot scrobbling","text":"

    If you have logged into the bot the bot will scrobble (store) songs music bots play to your Last.fm profile by default. You can opt-out of this feature by using the /botscrobbling command.

    For this feature the bot tries to fetch the artist and track name from messages music bots send in your server. If a song is successfully found, it will be send to Last.fm. No message content is stored or processed otherwise.

    "},{"location":"privacy/#for-what-purpose-do-you-store-it","title":"For what purpose do you store it?","text":"

    To identify who is calling the command and get the appropriate parameters to customize their command.

    Music data and server data is used for commands that provide server-wide leaderboards and statistics.

    This data is stored for caching purposes and to ensure our commands are performant. It is not possible to fetch data like playcounts for thousands of users real-time.

    Command logs are used for statistics, debugging and helping people with bug reports.

    "},{"location":"privacy/#for-how-long-do-you-store-it","title":"For how long do you store it?","text":"

    Settings data and command logs: Forever, or until deleted.

    Server data: Forever, or until the bot is kicked from the server.

    "},{"location":"privacy/#what-is-the-process-for-users-to-request-deletion-of-their-data","title":"What is the process for users to request deletion of their data?","text":"

    For user data we have a command (/remove).

    For server data people can remove the bot and all the data related to that server will be deleted.

    Users can also request deletion of their data in our support server.

    "},{"location":"privacy/#what-systems-and-infrastructure-do-you-use","title":"What systems and infrastructure do you use?","text":"

    .fmbot is currently hosted on a Hetzner VPS in Germany.

    "},{"location":"privacy/#how-can-users-contact-you-with-security-issues","title":"How can users contact you with security issues?","text":"

    Through our server and DMs, or through Github issues. We are visibly identified as developers on the server.

    "},{"location":"privacy/#does-your-app-utilize-other-third-party-auth-services-or-connections","title":"Does your app utilize other third-party auth services or connections?","text":"

    We provide auth services to the following services:

    "},{"location":"privacy/#extra-info","title":"Extra info","text":"

    Personal .fmbot data will never be shared with any 3rd party services unless explicitly specified.

    If you have any questions after reading all this feel free to contact us on our Discord or open an issue on our Github.

    "},{"location":"setup/","title":"Development","text":"

    Setup guide for developers who wish to contribute. Selfhosting .fmbot is not supported.

    "},{"location":"setup/#installing-the-database","title":"Installing the database","text":"
    1. Download PostgreSQL 16 and start the installation.
    2. Make sure pgadmin is checked in the installation wizard.
    3. If you enter a custom password, make sure to also add it to the config.json file later.
    4. Set the port to port '5432' and continue with the installation. You can also change this port in the config if you want.
    5. After the installation is done, open pgadmin.
    6. Right-click on databases and create a database called 'fmbot'.

    Viewing the data

    To view the data in the database, use pgadmin and click the fmbot database > schemas > public > tables.

    "},{"location":"setup/#development_1","title":"Development","text":""},{"location":"setup/#internal-api","title":"Internal API","text":"

    The bot requires an internal API for some cache-heavy tasks.

    This API is not publicly available, you should however be able to run and debug the bot without it for local development.

    "},{"location":"setup/#getting-api-keys","title":"Getting API keys","text":""},{"location":"setup/#discord","title":"Discord","text":"
    1. Go to the Discord Developers Portal
    2. Create a bot and enter your token into the config file.
    "},{"location":"setup/#lastfm","title":"Last.fm","text":"
    1. Create an API account
    2. Enter the key and secret into the config file.
    "},{"location":"setup/#genius","title":"Genius","text":"
    1. Go to your API Clients
    2. Create one and enter the 'client access token' into the config file.
    "},{"location":"setup/#spotify","title":"Spotify","text":"
    1. Go to the Spotify Developer dashboard
    2. Create an app and enter both the ID and the secret into the config file.
    "},{"location":"supporter/","title":"Become a supporter","text":"

    .fmbot is open-source and free to use. Optionally you can get supporter to help support the development of the bot and receive the following extra features and benefits.

    You can get supporter either directly through Discord or through OpenCollective.

    Discord

    Monthly $3.99

    OpenCollective

    Monthly $3.99 Yearly $29.99 Lifetime $49.99 Free Supporter Help us pay for hosting, development and other costs \u274c \u2705 New Import and use your full Spotify history \u274c \u2705 New Import and use your full Apple Music history \u274c \u2705 Added friends limit 12 18 Personal automatic emoji reactions with .userreactions \u274c \u2705 Custom fm footer options 4 9 Get a better GPT-4 powered .judge command with higher limits and the ability to use the command on others \u274c \u2705 New View when you discovered artists with the .discoveries command \u274c \u2705 Discovery dates in artist, album and track \u274c \u2705 Years and listening time overview in profile \u274c \u2705 Artist Discoveries and months in year \u274c \u2705 Lifetime history in recent and overview \u274c \u2705 Higher chance of getting featured on Supporter Sunday \u274c \u2705 Supporter badge \u2b50 \u274c \u2705 Chance to sponsor bot-wide charts \u274c \u2705 Your name in the supporters command \u274c \u2705 Exclusive role and channel on our Discord with sneak peeks of new features \u274c \u2705 Cached scrobble history Up to 1.5y Lifetime Cached artists Top 4000 Unlimited Cached albums Top 5000 Unlimited Cached tracks Top 6000 Unlimited Cached Discogs collection Last 100 Unlimited Thank you to all our generous supporters.

    "},{"location":"supporter/#frequently-asked","title":"Frequently asked","text":""},{"location":"supporter/#why-a-supporter-program","title":"Why a supporter program?

    In order to help us pay for hosting, fund development and deal with other expenses we've added a way for people to donate. In return for your support you get some cool exclusive perks.

    We're dedicated to making sure the bot remains free and independent. That's why most supporter features are simply features that are nice but would be difficult to roll out to everyone. For example some of the extra statistics require us to store your full listening history, which would be difficult to do for all our users.

    By getting supporter you help us to be able to spend more time working on new features and fixes, which in return improves the user experience for everyone.

    ","text":""},{"location":"supporter/#how-do-i-activate-my-subscription","title":"How do I activate my subscription?

    If you purchase through Discord it should get automatically activated within a minute.

    If you have purchased through OpenCollective it needs to be added manually. Join our Discord and create a thread in #help. A staff member will apply it to your account as soon as possible.

    ","text":""},{"location":"supporter/#what-is-opencollective","title":"What is OpenCollective?

    OpenCollective is like Patreon, except for open source projects. It's also more transparent and easier when working with multiple people.

    They manage our funds and allow us to focus on development while they handle the financial side of things.

    OpenCollective relies on Stripe to handle their payments, which is one of the worlds biggest payment providers. You can read more about their security here.

    ","text":""},{"location":"supporter/#can-i-cancel-or-change-my-subscription","title":"Can I cancel or change my subscription?

    If you have purchased through Discord, you can go to settings and then 'Subscriptions'.

    If you have puchased through OpenCollective, you can cancel a recurring contribution at any time. To do so, go to OpenCollective and sign in. After signing in go to 'Manage Contributions' where you can change your subscription.

    ","text":""},{"location":"supporter/#what-happens-if-i-cancel-my-subscription-and-have-imported-my-plays","title":"What happens if I cancel my subscription and have imported my plays?

    When your supporter subscription expires, you will be moved back to using Last.fm as your only data source.

    Your imports are however saved and will be available again if you resubscribe in the future.

    ","text":""},{"location":"supporter/#i-have-a-question-that-isnt-listed-here","title":"I have a question that isn't listed here

    Please join our server and make a thread in the #help channel. A staff member will try to help you as soon as possible.

    ","text":""},{"location":"terms/","title":"Terms of Use","text":"

    Last updated: October 12, 2023

    "},{"location":"terms/#agreement-to-terms","title":"Agreement to Terms","text":"

    These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (\u201cyou\u201d) and .fmbot (\".fmbot\" \u201cfmbot\u201d, \u201cwe\u201d, \u201cus\u201d, or \u201cour\u201d), concerning your access to and use of .fmbot as well as any other media form, website, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the \u201cBot\u201d). You agree that by accessing the Bot, you have read, understood, and agree to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE BOT AND YOU MUST DISCONTINUE USE IMMEDIATELY. Supplemental terms and conditions or documents that may be posted on the website from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the \u201cLast updated\u201d date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Bot so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Bot after the date such revised Terms of Use are posted. The information provided on the Bot is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Bot from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. The Bot is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Bot. You may not use the Bot in a way that would violate the Gramm-Leach-Bliley Act (GLBA). The Bot is intended for users who are at least 13 years of age. All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Bot. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Bot.

    "},{"location":"terms/#user-representations","title":"User Representations","text":"

    By using the Bot, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not under the age of 13; (3) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Bot; (4) you will not access the Discord Bot through automated or non-human means, whether through a bot, script or otherwise; (5) you will not use the Bot for any illegal or unauthorized purpose; and (6) your use of the Bot will not violate any applicable law or regulation.

    "},{"location":"terms/#fees-and-payment","title":"Fees and Payment","text":"

    We use OpenCollective and Discord for payments.

    When you use Discord for any purchases, you must agree to their Paid Services Terms:

    https://support.discord.com/hc/en-us/articles/4410339366295

    If you have payment issues, you can contact them here:

    https://dis.gd/billing

    When you use OpenCollective, you must agree to their Terms of Service and Privacy Policy:

    https://opencollective.com/tos

    https://opencollective.com/privacypolicy

    If you have payment issues with OpenCollective, try contacting them. fmbot has limited access to help you resolve issues.

    "},{"location":"terms/#prohibited-activities","title":"Prohibited Activities","text":"

    You may not access or use the Bot for any purpose other than that for which we make the Bot available. The Bot may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

    As a user of the Bot, you agree not to:

    "},{"location":"terms/#contribution-license","title":"Contribution License","text":"

    You and the Bot agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings). By submitting suggestions or other feedback regarding the Bot, you agree that we can use and share such feedback for any purpose without compensation to you. We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Bot. You are solely responsible for your Contributions to the Bot and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

    "},{"location":"terms/#submissions","title":"Submissions","text":"

    You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Bot (\"Submissions\") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

    "},{"location":"terms/#third-party-websites-and-content","title":"Third-Party Websites and Content","text":"

    The Bot may contain (or you may be sent via the Bot) links to other websites (\"Third-Party Websites\") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties (\"Third-Party Content\"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Bot or any Third-Party Content posted on, available through, or installed from the Bot, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Bot and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Bot or relating to any applications you use or install from the Bot. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

    "},{"location":"terms/#bot-management","title":"Bot Management","text":"

    We reserve the right, but not the obligation, to: (1) monitor the Bot for violations of these Terms of Use; (2) take appropriate action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Bot or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Bot in a manner designed to protect our rights and property and to facilitate the proper functioning of the Bot.

    "},{"location":"terms/#privacy-policy","title":"Privacy Policy","text":"

    We care about data privacy and security. Please review our Privacy Policy: https://fmbot.xyz/privacy. By using the Bot, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Bot is hosted in Finland. If you access the Bot from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in Finland, then through your continued use of the Bot, you are transferring your data to Finland, and you agree to have your data transferred to and processed in Finland. Further, we do not knowingly accept, request, or solicit information from children or knowingly market to children. Therefore, in accordance with the U.S. Children\u2019s Online Privacy Protection Act, if we receive actual knowledge that anyone under the age of 13 has provided personal information to us without the requisite and verifiable parental consent, we will delete that information from the Bot as quickly as is reasonably practical.

    "},{"location":"terms/#term-and-termination","title":"Term and Termination","text":"

    These Terms of Use shall remain in full force and effect while you use the Bot. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE BOT (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE BOT OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION. If we terminate or suspend your access for any reason, you are prohibited from using a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

    "},{"location":"terms/#modifications-and-interruptions","title":"Modifications and Interruptions","text":"

    We reserve the right to change, modify, or remove the contents of the bot at any time or for any reason at our sole discretion without notice. While we will make a best effort to inform our users we have no obligation to update any information on our bot. We also reserve the right to modify or discontinue all or part of the bot without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the bot. We cannot guarantee the bot will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the bot, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the bot at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the bot during any downtime or discontinuance of the bot. Nothing in these Terms of Use will be construed to obligate us to maintain and support the bot or to supply any corrections, updates, or releases in connection therewith.

    "},{"location":"terms/#governing-law","title":"Governing Law","text":"

    These conditions are governed by and interpreted following the laws of the Netherlands, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. .fmbot and yourself both agree to submit to the non-exclusive jurisdiction of the courts of The Netherlands, which means that you may make a claim to defend your consumer protection rights in regards to these Conditions of Use in the Netherlands, or in the EU country in which you reside.

    "},{"location":"terms/#corrections","title":"Corrections","text":"

    There may be information on the bot that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the bot at any time, without prior notice.

    "},{"location":"terms/#disclaimer","title":"Disclaimer","text":"

    THE BOT IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE BOT AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE BOT\u2019S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE BOT AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE BOT, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE WEBSITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE BOT BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE BOT. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE BOT, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

    "},{"location":"terms/#limitations-of-liability","title":"Limitations of Liability","text":"

    IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE BOT, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

    "},{"location":"terms/#indemnification","title":"Indemnification","text":"

    You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys\u2019 fees and expenses, made by any third party due to or arising out of: (1) use of the Bot; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Bot with whom you connected via the Bot. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

    "},{"location":"terms/#user-data","title":"User Data","text":"

    We will maintain certain data that you transmit to the Bot for the purpose of managing the performance of the Bot, as well as data relating to your use of the Bot. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Bot. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

    "},{"location":"terms/#electric-communications-transactions-and-signatures","title":"Electric Communications, Transactions and Signatures","text":"

    Using the Bot, visiting the website, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Bot, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE BOT. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

    "},{"location":"terms/#california-users-and-residents","title":"California Users and Residents","text":"

    If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

    "},{"location":"terms/#miscellaneous","title":"Miscellaneous","text":"

    These Terms of Use and any policies or operating rules posted by us on the website or in respect to the Bot constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Bot. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

    "},{"location":"terms/#contact-us","title":"Contact Us","text":"

    Discord: https://discord.gg/fmbot

    "},{"location":"commands/","title":"Getting started","text":"

    To view a list of all available commands, use the sidebar. The basic commands to get started are listed below.

    .fmbot uses Last.fm to get information about your music taste. Don't have a Last.fm account? You can create one here.

    For more information on connecting Last.fm to Spotify other music services, please click here.

    Note that .fmbot is not associated with Last.fm, we simply use their API. For issues with Last.fm you can check out their support forums.

    Have an issue with the bot you need help with? Please check the Frequently Asked section first.

    "},{"location":"commands/#login","title":".login","text":"

    This command connects your Last.fm account to .fmbot.

    After using this command the bot will DM you a link where you can allow access to your Last.fm account.

    Not receiving a DM from .fmbot when using this command? Please check if you have DMs enabled in the servers privacy settings.

    Examples

    .login

    /login (responds in-channel)

    Please note that users in shared servers will be able to see and request your Last.fm username.

    To delete all your data from .fmbot, including friends and other settings, use .remove.

    "},{"location":"commands/#help","title":".help","text":"

    Shows information about getting started with the bot.

    Examples

    .help

    "},{"location":"commands/#profile","title":".profile","text":"

    Shows you or someone else their user profile with some interesting statistics.

    Options:

    Examples

    .profile

    .stats

    Want to see a yearly overview on your profile? Get .fmbot supporter here.

    "},{"location":"commands/#settings","title":".settings","text":"

    Shows an overview of all your .fmbot settings.

    Use the dropdown to pick what setting you want to change.

    Examples

    .settings

    /settings (responds in-channel)

    "},{"location":"commands/#fmmode","title":".fmmode","text":"

    This command allows you to change how your .fm command looks.

    Available modes:

    You can also enable up to 4 custom options to show in your .fm footer.

    Use the provided dropdowns to select and de-select which options you want.

    Examples

    .fmmode

    /fmmode (responds in-channel)

    Supporters can select up 9 options, and have access to some exclusive options like first artist listen. Get .fmbot supporter here.

    "},{"location":"commands/#responsemode","title":".responsemode","text":"

    This command allows you to change how responses to the various whoknows and top lists commmand look.

    Modes: embed or image

    You can also override this preference on every invididual command. Simply add img or embed to the command.

    Examples

    .responsemode

    Override examples

    .whoknows the beatles image

    .toptracks 2023 img

    .globalwhoknows mac miller embed

    "},{"location":"commands/#userreactions","title":".userreactions","text":"

    Sets automatic emoji reactions for every .fm and featured command you use.

    To disable, simply use .userreactions without any emojis.

    Make sure the emojis you enable are in a server that .fmbot is also in.

    Max amount of emojis is 5. Please put a space between every emoji.

    This setting is supporter only. Get .fmbot supporter here.

    Examples

    .userreactions :PagChomp: :PensiveBlob:

    .userreactions \ud83d\ude00 \ud83d\ude2f \ud83e\udd75

    .userreactions \ud83d\ude00 \ud83d\ude2f :PensiveBlob:

    .userreactions

    "},{"location":"commands/albums/","title":"Albums","text":""},{"location":"commands/albums/#album-ab","title":".album (.ab)","text":"

    Gets information about current album or the one you're searching for.

    Examples

    .ab

    .album

    .album Ventura Anderson .Paak

    Want this command to also show the date you discovered an album? Get .fmbot supporter here.

    "},{"location":"commands/albums/#albumplays-abp","title":".albumplays (.abp)","text":"

    Shows you your playcount for current album or the one you're searching for.

    Options:

    Examples

    .abp

    .albumplays

    .albumplays The Slow Rush

    "},{"location":"commands/albums/#chart-c","title":".chart (.c)","text":"

    Creates a chart of your top albums over a certain time period.

    Options:

    Available time periods: weekly, monthly, quarterly, half, yearly or alltime (w, m, q, h, y or a)

    Examples

    .c

    .chart

    .chart 5x5

    .chart 8x8 yearly

    .chart 6x8 alltime notitles

    .chart released:2022

    .c 8x10 a nt s

    "},{"location":"commands/albums/#albumsoftheyear-aoty","title":".albumsoftheyear (.aoty)","text":"

    Generates a chart of albums released in a specific year.

    It works the exact same as the chart command, except that you can directly input the release year for the filter.

    Examples

    .aoty 2023

    "},{"location":"commands/albums/#topalbums-tab","title":".topalbums (.tab)","text":"

    Shows a list of you or your friends top albums over a certain time period.

    Options:

    Time periods:

    Examples

    .tab

    .topalbums billboard

    .tab a bb

    .topalbums 2023 @user

    .topalbums quarterly @slipper

    .topalbums r:2022

    "},{"location":"commands/albums/#albumtracks-abt","title":".albumtracks (.abt)","text":"

    Shows a list of tracks in an album that you have plays on.

    Note that Last.fm or Spotify will sometimes not return the tracks within an album.

    Options:

    Examples

    .abt

    .albumtracks

    .albumtracks the beatles yesterday

    "},{"location":"commands/albums/#cover-co","title":".cover (.co)","text":"

    Shows the cover for current album or the one you're searching for.

    Examples

    .co

    .cover

    .cover la priest inji

    .cover featured

    "},{"location":"commands/albums/#whoknowsalbum-wkab-wa","title":".whoknowsalbum (.wkab, .wa)","text":"

    Shows who in your server listened to current album or the one you're searching for.

    Options:

    Examples

    .wa

    .whoknowsalbum

    .whoknowsalbum The Beatles Abbey Road

    .whoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#friendwhoknowsalbum-fwkab-fwa","title":".friendwhoknowsalbum (.fwkab, .fwa)","text":"

    Shows who from your friends listened to current album or the one you're searching for.

    Options:

    Examples

    .fwa

    .friendwhoknowsalbum

    .friendwhoknowsalbum The Beatles Abbey Road

    .friendwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#globalwhoknowsalbum-gwka-gwa","title":".globalwhoknowsalbum (.gwka, .gwa)","text":"

    Shows who in .fmbot listened to current album or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gwa

    .globalwhoknowsalbum

    .globalwhoknowsalbum The Beatles Abbey Road

    .globalwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/albums/#serveralbums","title":".serveralbums","text":"

    Shows top albums for everyone in your server.

    Options:

    Examples

    .sab

    .serveralbums a p

    .serveralbums alltime plays

    .serveralbums listeners weekly

    "},{"location":"commands/artists/","title":"Artist commands","text":""},{"location":"commands/artists/#artist-a","title":".artist (.a)","text":"

    Shows information about current artist or the one you're searching for.

    Options:

    Examples

    .a

    .artist

    .a Gorillaz

    .artist David Vunk

    Want this command to also show the date you discovered an artist? Get .fmbot supporter here.

    "},{"location":"commands/artists/#affinity-aff","title":".affinity (.aff)","text":"

    Shows users in the same server with similar music taste to you.

    Uses your alltime top artists and recent top artists.

    Options:

    Examples

    .aff

    .affinity

    "},{"location":"commands/artists/#artistplays-ap","title":".artistplays (.ap)","text":"

    Shows you your playcount for the artist you're currently listening to or searching for.

    Options:

    Examples

    .ap

    .artistplays

    .artistplays Mall Grab

    "},{"location":"commands/artists/#artistchart-ac","title":".artistchart (.ac)","text":"

    Creates a chart of your top artists over a certain time period.

    Options:

    Available time periods: weekly, monthly, quarterly, half, yearly or alltime (w, m, q, h, y or a)

    Examples

    .ac

    .artistchart

    .artistchart 5x5

    .artistchart 4x8 yearly

    .artistchart 8x8 alltime notitles

    .artistchart 8x8 alltime notitles skip

    .ac 8x10 a nt s

    "},{"location":"commands/artists/#artisttracks-at","title":".artisttracks (.at)","text":"

    Shows you your all-time top tracks for current artist or the one you're searching for.

    Options:

    Examples

    .at

    .artisttracks

    .artisttracks Crystal Castles

    "},{"location":"commands/artists/#artistalbums-aa","title":".artistalbums (.aa)","text":"

    Shows you your all-time top albums for current artist or the one you're searching for.

    Options:

    Examples

    .aa

    .artistalbums

    .artistalbums Frank Ocean

    "},{"location":"commands/artists/#topartists-ta","title":".topartists (.ta)","text":"

    Shows a list of you or your friends top artists over a certain time period.

    Options:

    Time periods:

    Examples

    .ta

    .artists

    .topartists billboard

    .ta w bb

    .topartists 2023 @user

    .topartists alltime @drasil

    "},{"location":"commands/artists/#taste-t","title":".taste (.t)","text":"

    Compares your top artists, genres, countries and Discogs to those of someone else.

    Options:

    Time periods:

    Modes:

    Examples

    .t frikandel_

    .t @user

    .taste bitldev

    .taste @user monthly embed

    .t @user m e

    "},{"location":"commands/artists/#whoknows-wk-w","title":".whoknows (.wk, .w)","text":"

    Shows who in your server listened to current artist or the one you're searching for.

    Options:

    Examples

    .w

    .wk

    .w COMA

    .whoknows

    .whoknows Agar Agar img

    "},{"location":"commands/artists/#friendwhoknows-fwk-fw","title":".friendwhoknows (.fwk, .fw)","text":"

    Shows who from your friends listened to current artist or the one you're searching for.

    Options:

    Examples

    .fw

    .fwk

    .fw COMA

    .friendwhoknows

    .friendwhoknows KAYTRANADA

    "},{"location":"commands/artists/#globalwhoknows-gwk-gw","title":".globalwhoknows (.gwk, .gw)","text":"

    Shows who in .fmbot listened to current artist or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gw

    .gwk

    .gw COMA

    .globalwhoknows

    .globalwhoknows Romy

    "},{"location":"commands/artists/#serverartists","title":".serverartists","text":"

    Shows top artists for everyone in your server.

    Options:

    Examples

    .sa

    .serverartists a p

    .serverartists alltime plays

    .serverartists listeners weekly

    "},{"location":"commands/artists/#discoveries-d","title":".discoveries (.d)","text":"

    Shows a list of when you discovered artists, together with their alltime playcount.

    Options:

    Time periods:

    Examples

    .ta

    .artists

    .topartists billboard

    .ta w bb

    .topartists weekly @user

    .topartists alltime @drasil

    This command requires .fmbot to store your full listening history, which we only do for supporters. Get .fmbot supporter here.

    "},{"location":"commands/countries/","title":"Country commands","text":"

    Countries are sourced from MusicBrainz.

    To enter countries, you can either enter the full name or the 2 letter ISO code.

    "},{"location":"commands/countries/#topcountriestc","title":".topcountries(.tc)","text":"

    Shows a list of you or your friends top countries over a certain time period.

    Options:

    Time periods:

    Examples

    .tc

    .topcountries billboard

    .topcountries weekly @user

    .tc alltime @Voaz bb

    .topcountries monthly lfm:fm-bot

    "},{"location":"commands/countries/#country-from","title":".country (.from)","text":"

    Shows country information for your current artist or your top artists for the country you're searching for.

    Examples

    .from

    .country

    .country Netherlands

    .country Mac DeMarco

    "},{"location":"commands/crowns/","title":"Crowns","text":"

    A crown is an award that you get if you're the #1 listener for a certain artist in a server.

    To get crowns you can use .whoknows.

    Crown server settings are available here. Leaving a server resets all your crowns for that server.

    "},{"location":"commands/crowns/#crowns-cws","title":".crowns (.cws)","text":"

    Shows your top crowns or crowns for a user you're searching for.

    Options:

    Examples

    .cws

    .crowns

    .crowns @frikandel

    "},{"location":"commands/crowns/#crown-cw","title":".crown (.cw)","text":"

    Shows the current crown owner and crown history for the artist you're currently listening to or searching for.

    Examples

    .cw

    .crown

    .crown the beatles

    .crown tame impala

    "},{"location":"commands/crowns/#crownleaderboard-cwlb","title":".crownleaderboard (.cwlb)","text":"

    Shows the users with the most crowns on your server.

    Examples

    .cwlb

    .crownleaderboard

    Looking for automatic crowns, crown settings and ways to moderate crowns on your server? That's available here in the server setting section.

    "},{"location":"commands/discogs/","title":"Discogs commands","text":""},{"location":"commands/discogs/#discogs","title":".discogs","text":"

    Allows you to connect or manage the connection with your Discogs account.

    The bot will send you a DM where you can configure this.

    You can also show/hide the display of your collection value on your profile.

    Examples

    .discogs

    "},{"location":"commands/discogs/#collection","title":".collection","text":"

    Shows you or someone else their Discogs collection.

    Allows for searching through artist or album title. One can also search by format type, include cassette, cd or vinyl in the command to enable.

    This command updates your stored collection in .fmbot. Your collection can only be updated once per hour.

    Some places where your collection can also be visible are the profile, artist, album as well as taste commands if both you and the other user have run .discogs.

    Options:

    Examples

    .collection

    .collection mall grab

    .collection cd

    Only the last 100 items you've added to Discogs can be viewed and stored.

    Want to view your whole collection? Get .fmbot supporter here.

    "},{"location":"commands/featured/","title":"Featured commands","text":""},{"location":"commands/featured/#featured","title":".featured","text":"

    Shows the user that is currently featured.

    Anyone that is registered in fmbot can get featured, on one condition: They must have used .fmbot in the last day.

    To get pinged when you get featured you can join our server.

    Possible featured modes:

    If your top album doesn't have a picture, no worries. The bot will just grab the next album that has a picture. The album cover will also be used as the bot's profile picture.

    Examples

    .featured

    Every first Sunday of each month is Supporter Sunday. On this day .fmbot picks featured from .fmbot supporters, as a thank you for supporting the bot. Get .fmbot supporter here.

    "},{"location":"commands/featured/#featuredlog","title":".featuredlog","text":"

    Shows your or someone else their featured history.

    Options:

    Examples

    .featuredlog

    .featuredlog @user

    .featuredlog server

    "},{"location":"commands/friends/","title":"Friend commands","text":""},{"location":"commands/friends/#friends-f","title":".friends (.f)","text":"

    Shows the latest scrobble of your added friends in a list.

    Examples

    .friends

    "},{"location":"commands/friends/#addfriends","title":".addfriends","text":"

    Adds one or multiple friends to your friends list.

    Select other users by mention, Discord ID or Last.fm username

    Examples

    .addfriends frikandel_

    .addfriends frikandel_ otherlastfmuser

    .addfriends frikandel_ @discorduser

    .addfriends 356268235697553409

    Did you know there's also another way to add friends? Simply rightclick their profile > Apps > Add Friend

    Want to be able to add more friends (up to 18)? Get .fmbot supporter here.

    "},{"location":"commands/friends/#removefriends","title":".removefriends","text":"

    Removes one or multiple friends from your friends list.

    Select other users by mention, Discord ID or Last.fm username

    Examples

    .removefriends frikandel_

    .removefriends frikandel_ otherlastfmuser

    .removefriends frikandel_ @discorduser

    .removefriends 356268235697553409

    Did you know there's also another way to add friends? Simply rightclick their profile > Apps > Remove Friend

    "},{"location":"commands/friends/#removeallfriends","title":".removeallfriends","text":"

    Removes all your friends from your friends list.

    Examples

    .removeallfriends

    "},{"location":"commands/friends/#friendwhoknows-fwk-fw","title":".friendwhoknows (.fwk, .fw)","text":"

    Shows who from your friends listened to an artist you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fw

    .fwk

    .fw MGMT

    .friendwhoknows

    .friendwhoknows Nia Archives

    "},{"location":"commands/friends/#friendwhoknowsalbum-fwkab-fwa","title":".friendwhoknowsalbum (.fwkab, .fwa)","text":"

    Shows who from your friends listened to an album you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fwa

    .friendwhoknowsalbum

    .friendwhoknowsalbum The Beatles Help

    .friendwhoknowsalbum Metallica & Lou Reed | Lulu

    "},{"location":"commands/friends/#friendwhoknowstrack-fwkt-fwt","title":".friendwhoknowstrack (.fwkt, .fwt)","text":"

    Shows who from your friends listened to an track you're currently listening to or the one you're searching for.

    Options:

    Examples

    .fwt

    .friendwhoknowstrack

    .friendwhoknowstrack Vansire Metamodernity

    .friendwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/genius/","title":"Genius commands","text":""},{"location":"commands/genius/#genius-gen","title":".genius (.gen)","text":"

    Gets the Genius link for the song you're currently listening to, or the one you're searching for.

    Examples

    .gen

    .genius

    .gen Nas Never Die

    .genius Mac Miller Good News

    "},{"location":"commands/genres/","title":"Genre commands","text":"

    Genres are sourced from Spotify.

    To view a list of all Spotify genres, you can use the website everynoise.com

    "},{"location":"commands/genres/#topgenrestg","title":".topgenres(.tg)","text":"

    Shows a list of you or your friends top genres over a certain time period.

    Options:

    Time periods:

    Examples

    .tg

    .topgenres billboard

    .topgenres weekly @user

    .tg alltime @drasil bb

    .topgenres 2023 lfm:fm-bot

    "},{"location":"commands/genres/#genre-g","title":".genre (.g)","text":"

    Shows genre information for your current artist or your top artists for the genre you're searching for.

    Options:

    Examples

    .g

    .genre

    .genre electro

    .genre Mac DeMarco

    .g lfm:fm-bot

    "},{"location":"commands/genres/#whoknowsgenre-wg","title":".whoknowsgenre (.wg)","text":"

    Shows who in your server listened to a genre you're searching for.

    Options:

    Examples

    .wg

    .wkg

    .wg hiphop

    .whoknowsgenre techno

    "},{"location":"commands/genres/#servergenres","title":".servergenres","text":"

    Shows top genres for everyone in your server.

    Options:

    Examples

    .sg

    .servergenres a p

    .servergenres alltime plays

    .servergenres listeners weekly

    "},{"location":"commands/misc/","title":"Miscellaneous","text":""},{"location":"commands/misc/#deleting-fmbot-responses","title":"Deleting fmbot responses","text":"

    It's possible to remove .fmbot's response, even if you don't have permission to manage messages.

    Mobile: Long press message > Apps > Delete response

    Desktop: Right-click message > Apps > Delete response

    "},{"location":"commands/misc/#reply-context","title":"Reply context","text":"

    You can reply to any fmbot command or response that contains an artist, album or track to directly use that as context for your new command.

    Example below:

    "},{"location":"commands/misc/#judge","title":".judge","text":"

    Judges your music taste using AI. You can pick between either a compliment or a roast.

    Free users can use this command 3 times a day, supporters up to 15.

    Supporters also get access to higher quality GPT-4 powered compliments and roasts.

    Options:

    Examples

    .judge

    The usage limits for this command might be adjusted depending on popularity and cost.

    "},{"location":"commands/misc/#rateyourmusic","title":".rateyourmusic","text":"

    Enables/disabled an option that changes all album links to link to RateYourMusic.

    Examples

    .rym

    "},{"location":"commands/misc/#info","title":".info","text":"

    Shows all the information and links related to the bot.

    Examples

    .info

    "},{"location":"commands/misc/#status","title":".status","text":"

    Gets the bot status information.

    Examples

    .status

    "},{"location":"commands/misc/#remove","title":".remove","text":"

    Deletes all your user information, including all your friends and other settings.

    Examples

    .remove

    "},{"location":"commands/plays/","title":"Play commands","text":""},{"location":"commands/plays/#getting-your-latest-scrobbles","title":"Getting your latest scrobbles","text":""},{"location":"commands/plays/#fm","title":".fm","text":"

    Shows your last 1 or 2 scrobbles, either in embed or text format.

    You can set how your .fm embed looks with the .mode command.

    Options:

    Examples

    .fm

    .fm @user

    .fm lfm:lastfmusername

    .fm this is a nice song

    Tip: You can click the embed title to go to the users Last.fm profile.

    If you want .fmbot to add reactions to this command, please see .serverreactions.

    "},{"location":"commands/plays/#recent-r","title":".recent (.r)","text":"

    Shows your latest plays.

    Options:

    Examples

    .r

    .recent

    For supporters this command expands to your full listening history. Supporters can also filter to specific artists. Get .fmbot supporter here.

    "},{"location":"commands/plays/#streak-str","title":".streak (.str)","text":"

    Shows your track, album or artist streak.

    Options:

    Examples

    .str

    .streak

    "},{"location":"commands/plays/#overview-o","title":".overview (.o)","text":"

    Shows you an overview of your top track, album and artist for the last few days.

    Options:

    Examples

    .o

    .overview

    .overview 8

    "},{"location":"commands/plays/#pace-pc","title":".pace (.pc)","text":"

    Shows you an estimate of when you will reach a certain amount of plays.

    Options:

    Time periods: weekly, monthly, quarterly, half, yearly or alltime. (w, m, q, h, y or a)

    Examples

    .pc

    .pace

    .pace a 73k

    .pace 50000 quarterly

    "},{"location":"commands/plays/#milestone-ms","title":".milestone (.ms)","text":"

    Shows you your latest scrobble milestones.

    Options:

    Examples

    .ms

    .ms 30k

    .milestone

    .milestone 20k

    .milestone 1337 @frikandel

    .milestone rnd

    "},{"location":"commands/plays/#year-wrapped","title":".year (.wrapped)","text":"

    Shows you an overview of you or someone else their year.

    Supporters get an extra page with Artist Discoveries and a monthly overview.

    Options:

    Examples

    .year

    .year 2023

    .wrapped @frikandel

    "},{"location":"commands/spotify/","title":"Spotify commands","text":""},{"location":"commands/spotify/#spotify-sp","title":".spotify (.sp)","text":"

    Gets the Spotify link for the song you're currently listening to, or the one you're searching for.

    Examples

    .sp

    .spotify

    .sp C418 Sweden

    .spotify Delta Sleep Camp Adventure

    "},{"location":"commands/spotify/#spotifyalbum-spab","title":".spotifyalbum (.spab)","text":"

    Gets the Spotify link for the album you're currently listening to, or the one you're searching for.

    Examples

    .spab

    .spotifyalbum

    .spab De Jeugd De Lachende Derde

    .spotifyalbum Alexander Robotnick April

    "},{"location":"commands/spotify/#spotifyartist-spa","title":".spotifyartist (.spa)","text":"

    Gets the Spotify link for the artist you're currently listening to, or the one you're searching for.

    Examples

    .spa

    .spotifyartist

    .spa Green Day

    .spotifyartist Acid Pauli

    "},{"location":"commands/tracks/","title":"Track commands","text":""},{"location":"commands/tracks/#viewing-your-tracks","title":"Viewing your tracks","text":""},{"location":"commands/tracks/#track-tr","title":".track (.tr)","text":"

    Gets information about the track you're currently listening to or searching for.

    Examples

    .tr

    .track

    .track Kaytranada You're The One

    Want this command to also show the date you discovered a track? Get .fmbot supporter here.

    "},{"location":"commands/tracks/#trackplays-tp","title":".trackplays (.tp)","text":"

    Shows you your playcount for current track or the one you're searching for.

    Options:

    Examples

    .tp

    .trackplays

    .trackplays Infected Mushroom Can't Stop

    "},{"location":"commands/tracks/#trackdetailstd","title":".trackdetails(.td)","text":"

    Shows metadata for current track or the one you're searching for.

    Examples

    .td

    .trackdetails

    .trackdetails Underworld Born Slippy

    "},{"location":"commands/tracks/#recent-r","title":".recent (.r)","text":"

    Shows your latest plays.

    Options:

    Examples

    .r

    .recent

    For supporters this command expands to your full listening history. Get .fmbot supporter here.

    "},{"location":"commands/tracks/#toptracks-tt","title":".toptracks (.tt)","text":"

    Shows a list of you or your friends top tracks over a certain time period.

    Options:

    Time periods:

    Examples

    .tt

    .toptracks billboard

    .tt y bb

    .toptracks 2023 @user

    .toptracks @john alltime

    "},{"location":"commands/tracks/#receipt-rcpt","title":".receipt (.rcpt)","text":"

    Shows your track receipt. Based on Receiptify.

    Options:

    Time periods:

    Examples

    .rcpt

    .receipt

    .receipt march 2021

    .receipt weekly @user

    "},{"location":"commands/tracks/#whoknowstrack-wktr-wt","title":".whoknowstrack (.wktr, .wt)","text":"

    Shows who in your server listened to current track or the one you're searching for.

    Note that the playcount for the user that requested the command will always be up to date.

    Options:

    Examples

    .wt

    .whoknowstrack

    .whoknowstrack Hothouse Flowers Don't Go

    .whoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#friendwhoknowstrack-fwkt-fwt","title":".friendwhoknowstrack (.fwkt, .fwt)","text":"

    Shows who from your friends listened to current track or the one you're searching for.

    Options:

    Examples

    .fwt

    .friendwhoknowstrack

    .friendwhoknowstrack Hothouse Flowers Don't Go

    .friendwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#globalwhoknowstrack-gwkt-gwt","title":".globalwhoknowstrack (.gwkt, .gwt)","text":"

    Shows who in .fmbot listened to current track or the one you're searching for.

    This searches through all registered .fmbot users. Note that some users with fake playcounts might be excluded.

    Options:

    Examples

    .gwt

    .globalwhoknowstrack

    .globalwhoknowstrack Hothouse Flowers Don't Go

    .globalwhoknowstrack Natasha Bedingfield | Unwritten

    "},{"location":"commands/tracks/#servertracks","title":".servertracks","text":"

    Shows top tracks for everyone in your server.

    Options:

    Examples

    .st

    .servertracks a p

    .servertracks alltime plays

    .servertracks listeners weekly

    "},{"location":"commands/tracks/#love-l","title":".love (.l)","text":"

    Adds current track or the one you're searching for to your Last.fm loved tracks.

    Examples

    .l

    .love

    .love Tame Impala Borderline

    "},{"location":"commands/tracks/#unlove-ul","title":".unlove (.ul)","text":"

    Removes current track or the one you're searching for from your Last.fm loved tracks.

    Examples

    .ul

    .unlove

    .unlove Lou Reed Brandenburg Gate---

    "},{"location":"commands/tracks/#loved-lt","title":".loved (.lt)","text":"

    Displays a user's loved tracks.

    Options:

    Examples

    .lt

    .loved

    .lovedtracks

    .lovedtracks @user

    "},{"location":"commands/tracks/#scrobble-sb","title":".scrobble (.sb)","text":"

    Scrobbles the track you're searching for. You can only scrobble tracks that already exist on Last.fm.

    Options:

    Examples

    .scrobble

    .sb The Less I Know The Better

    .scrobble Loona Heart Attack

    .scrobble Mac DeMarco | Chamber of Reflection

    .scrobble Home | Climbing Out | Falling into Place

    .scrobble https://www.discogs.com/release/249504-Rick-Astley-Never-Gonna-Give-You-Up

    "},{"location":"commands/whoknows/","title":"Caching","text":"

    .fmbot uses various ways of making sure all commands are fast and smooth.

    This includes storing a copy of your Last.fm history and storing what registered .fmbot members are in which server.

    Most of this is done automatically behind the scenes, but you can also adjust this manually.

    "},{"location":"commands/whoknows/#update","title":".update","text":"

    This command updates your playcount cache in the bot. This works by fetching your latest scrobbles from Last.fm and updating our cache accordingly.

    "},{"location":"commands/whoknows/#note","title":"Note:","text":"

    Examples

    .u

    .update

    .update full

    If you want .fmbot to store more then just your top 4/5/6k artist/albums/tracks, check out .fmbot supporter!

    Having issues with the bot not picking up what you're playing on Spotify? Check out the FAQ entry.

    "},{"location":"commands/whoknows/#refreshmembers","title":".refreshmembers","text":"

    Refreshes the cache of which .fmbot users are in your server for server-wide commands.

    "},{"location":"commands/whoknows/#note_1","title":"Note:","text":"

    Examples

    .refreshmembers

    "},{"location":"commands/youtube/","title":"Youtube commands","text":""},{"location":"commands/youtube/#youtube-yt","title":".youtube (.yt)","text":"

    Gets the Youtube link for the song you're currently listening to, or the one you're searching for.

    Youtube embeds will be hidden if the user requesting does not have the 'Embed Links' permission.

    Examples

    .yt

    .youtube

    .yt Rick Astley Never Gonna Give You Up

    .youtube Hi Stranger

    "},{"location":"guildsettings/","title":"Server settings","text":"

    Server settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/#configuration","title":".configuration","text":"

    Shows all server settings in an easy overview.

    Use the dropdown to pick a setting that you want to change.

    Examples

    .config

    .serversettings

    "},{"location":"guildsettings/#serverreactions","title":".serverreactions","text":"

    Sets automatic emoji reactions for every .fm and featured command in your server.

    To disable, simply use .serverreactions without any emojis.

    Make sure the emojis you enable are on your server, or in a server that .fmbot is also in.

    Max amount of emojis is 3. Please put a space between every emoji.

    Examples

    .serverreactions :PagChomp: :PensiveBlob:

    .serverreactions \ud83d\ude00 \ud83d\ude2f \ud83e\udd75

    .serverreactions \ud83d\ude00 \ud83d\ude2f :PensiveBlob:

    .serverreactions

    "},{"location":"guildsettings/#togglecommand","title":".togglecommand","text":"

    Enable/disable commands per channel, or completely disable the bot in a channel.

    You can also force an fm mode for everyone in the channel.

    Use the up/down options to pick the channel you want to change.

    Examples

    .togglecommand

    "},{"location":"guildsettings/#toggleservercommand","title":".toggleservercommand","text":"

    You can enable/disable commands server-wide.

    Examples

    .toggleservercommand

    "},{"location":"guildsettings/#prefix","title":".prefix","text":"

    This command allows you to change the .fmbot prefix on your server.

    Note that you can always mention the bot, this will work regardless of prefix.

    Examples

    .prefix

    @.fmbot prefix

    Examples of commands when prefix is set to !

    !fm

    !chart

    !whoknows

    !topalbums

    !prefix

    "},{"location":"guildsettings/crownsettings/","title":"Crown settings","text":"

    You can change what users are able to gain crowns, configure other crown settings or completely disable crowns.

    These settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/crownsettings/#crownthreshold","title":".crownthreshold","text":"

    Allows you set a minimum amount of plays required for someone to claim a crown.

    The default value for this is 30.

    Examples

    .crownthreshold

    "},{"location":"guildsettings/crownsettings/#crownactivitythreshold","title":".crownactivitythreshold","text":"

    Allows you to block users from gaining crowns if they have not been active in a certain amount of days.

    A user is counted as active once they use .fmbot.

    Examples

    .crownactivitythreshold

    "},{"location":"guildsettings/crownsettings/#killcrown","title":".killcrown","text":"

    Allows you to remove a crown and all crown history for a certain artist.

    Examples

    .killcrown deadmau5

    .killcrown the beatles

    "},{"location":"guildsettings/crownsettings/#killallcrowns","title":".killallcrowns","text":"

    Removes all crowns from your server.

    Examples

    .killallcrowns

    .killallcrowns confirm

    "},{"location":"guildsettings/crownsettings/#removeusercrowns","title":".removeusercrowns","text":"

    Removes all crowns from a specific user

    Examples

    .removeusercrowns 748900688129687642

    .removeusercrowns lastfmsupport

    "},{"location":"guildsettings/crownsettings/#crownblock","title":".crownblock","text":"

    Blocks a user from getting any crowns. They will still be visible in the whoknows output.

    Examples

    .crownblock 748900688129687642

    .crownblock lastfmsupport

    "},{"location":"guildsettings/crownsettings/#unblock","title":".unblock","text":"

    Unblocks a user and allows them to gain crowns again.

    Examples

    .unblock 748900688129687642

    .unblock lastfmsupport

    "},{"location":"guildsettings/crownsettings/#crownblockedmembers","title":".crownblockedmembers","text":"

    View all blocked members on your server.

    Examples

    .crownblockedmembers

    "},{"location":"guildsettings/crownsettings/#crownseeder","title":".crownseeder","text":"

    Automatically adds crowns for your server. If you've done this before, it will update all automatically seeded crowns.

    Crown seeding again only updates automatically seeded crowns, not manually claimed crowns.

    Examples

    .crownseeder

    "},{"location":"guildsettings/crownsettings/#killallseededcrowns","title":".killallseededcrowns","text":"

    Removes all automatically seeded crowns from your server.

    Examples

    .killallseededcrowns

    .killallseededcrowns confirm

    "},{"location":"guildsettings/crownsettings/#togglecrowns","title":".togglecrowns","text":"

    Enables/disables all crowns for your server.

    All mentions of crowns will be hidden and all crowns that exist will be removed.

    Examples

    .togglecrowns

    "},{"location":"guildsettings/webhooks/","title":"Webhook settings","text":"

    You can use .fmbot webhooks to automatically post the featured music to your own channel.

    To see more information about how featured works, click here.

    "},{"location":"guildsettings/webhooks/#addwebhook","title":".addwebhook","text":"

    Adds a webhook to the channel or thread you're in.

    Requires the bot to have the 'Manage Webhooks' permission.

    To change the channel simply change it in the server integration settings.

    To remove the webhook simply delete it from your server integrations.

    Examples

    .addwebhook

    "},{"location":"guildsettings/webhooks/#testwebhook","title":".testwebhook","text":"

    Sends a test message through the webhook you've setup in your server. You can use this to check if you've set everything up correctly.

    Examples

    .testwebhook

    "},{"location":"guildsettings/whoknowsettings/","title":"WhoKnows settings","text":"

    You can change what users appear in the whoknows commands and other commands that use all server members

    These settings can only be changed by admins, users with the 'Ban Members' permission or .fmbot admins.

    "},{"location":"guildsettings/whoknowsettings/#activitythreshold","title":".activitythreshold","text":"

    Allows you to filter users from commands that have not been active in a certain amount of days.

    A user is counted as active once they use .fmbot.

    Examples

    .activitythreshold

    "},{"location":"guildsettings/whoknowsettings/#block","title":".block","text":"

    Blocks a user from appearing in whoknows and from being in any server-wide statistic.

    Examples

    .block 748900688129687642

    .block lastfmsupport

    "},{"location":"guildsettings/whoknowsettings/#unblock","title":".unblock","text":"

    Unblocks a user from appearing in whoknows and from being in any server-wide statistic.

    Also unblocks a user in case of any crown bans.

    Examples

    .unblock 748900688129687642

    .unblock lastfmsupport

    "},{"location":"guildsettings/whoknowsettings/#blockedmembers","title":".blockedmembers","text":"

    View all blocked members on your server.

    Examples

    .blockedmembers

    "}]} \ No newline at end of file diff --git a/setup/index.html b/setup/index.html index eb303a6..cef3c6f 100644 --- a/setup/index.html +++ b/setup/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/sitemap.xml.gz b/sitemap.xml.gz index dab659d..a5756b8 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/supporter/index.html b/supporter/index.html index 4c22d5c..3d9bcb2 100644 --- a/supporter/index.html +++ b/supporter/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/terms/index.html b/terms/index.html index 1adf080..bda5986 100644 --- a/terms/index.html +++ b/terms/index.html @@ -18,7 +18,7 @@ - + @@ -26,7 +26,7 @@ - +