diff options
author | Dillon <dillonzq@outlook.com> | 2020-01-31 13:46:28 +0300 |
---|---|---|
committer | Dillon <dillonzq@outlook.com> | 2020-01-31 13:46:28 +0300 |
commit | 344f0a9f411a9b28d6e5732e591f26953d9c1263 (patch) | |
tree | 52ed7ce26bdcf9e40e2bd782da377e5c0c4653ca | |
parent | 7e6236361f790ec76a1d282021e6507a8378f40f (diff) |
fix(css): fix some css bugs
36 files changed, 706 insertions, 430 deletions
diff --git a/archetypes/default.md b/archetypes/default.md index 4ee62f4..97e6386 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -6,13 +6,13 @@ draft: true description: "" show_in_homepage: true show_description: false -license: '' +license: "" tags: [] categories: [] -featured_image: '' -featured_image_preview: '' +featured_image: "" +featured_image_preview: "" comment: true toc: false diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss index 80cf7df..6d1a264 100644 --- a/assets/css/_core/_base.scss +++ b/assets/css/_core/_base.scss @@ -1,7 +1,5 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900); - html { - font-family: "Lato", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", STHeiti, "Microsoft Yahei", "WenQuanYi Micro Hei", Arial, Verdana, sans-serif; + font-family: $global-font-family; /* scrollbar, only support webkit */ &::-webkit-scrollbar { diff --git a/assets/css/_core/_media.scss b/assets/css/_core/_media.scss index 0f5d524..e8a0f61 100644 --- a/assets/css/_core/_media.scss +++ b/assets/css/_core/_media.scss @@ -1,5 +1,5 @@ @media only screen and (max-width: 1800px) { - .post-warp { + .warpper { max-width: 780px; .post-toc { @@ -9,7 +9,7 @@ } @media only screen and (max-width: 1300px) { - .post-warp { + .warpper { max-width: 560px; .post-toc { @@ -25,7 +25,7 @@ } } - .post-warp { + .warpper { max-width: 80%; .post-toc { @@ -38,7 +38,7 @@ } } -@media only screen and (max-width: 480px) { +@media only screen and (max-width: 560px) { .navbar { display: none; } @@ -47,7 +47,7 @@ display: block; } - .post-warp { + .warpper { max-width: 100%; .categories-card { diff --git a/assets/css/_core/_normalize.scss b/assets/css/_core/_normalize.scss index 20dbded..192eb9c 100644 --- a/assets/css/_core/_normalize.scss +++ b/assets/css/_core/_normalize.scss @@ -1,4 +1,4 @@ -/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ @@ -7,41 +7,35 @@ * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. */ - @charset "UTF-8"; - html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - } + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} /* Sections - ========================================================================== */ + ========================================================================== */ /** -* Remove the margin in all browsers. -*/ - -html, -body, -main, -div, -span, -a, -li, -ul, -hr, -h1, -h2, -h3, -h4, -h5, -h6 { - padding: 0; + * Remove the margin in all browsers. + */ + +body { margin: 0; } + /** -* Correct the font size and margin on `h1` elements within `section` and -* `article` contexts in Chrome, Firefox, and Safari. -*/ + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ h1 { font-size: 2em; @@ -49,12 +43,12 @@ h1 { } /* Grouping content - ========================================================================== */ + ========================================================================== */ /** -* 1. Add the correct box sizing in Firefox. -* 2. Show the overflow in Edge and IE. -*/ + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ hr { box-sizing: content-box; /* 1 */ @@ -63,9 +57,9 @@ hr { } /** -* 1. Correct the inheritance and scaling of font size in all browsers. -* 2. Correct the odd `em` font sizing in all browsers. -*/ + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ pre { font-family: monospace, monospace; /* 1 */ @@ -73,20 +67,20 @@ pre { } /* Text-level semantics - ========================================================================== */ + ========================================================================== */ /** -* Remove the gray background on active links in IE 10. -*/ + * Remove the gray background on active links in IE 10. + */ a { background-color: transparent; } /** -* 1. Remove the bottom border in Chrome 57- -* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. -*/ + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ abbr[title] { border-bottom: none; /* 1 */ @@ -95,8 +89,8 @@ abbr[title] { } /** -* Add the correct font weight in Chrome, Edge, and Safari. -*/ + * Add the correct font weight in Chrome, Edge, and Safari. + */ b, strong { @@ -104,9 +98,9 @@ strong { } /** -* 1. Correct the inheritance and scaling of font size in all browsers. -* 2. Correct the odd `em` font sizing in all browsers. -*/ + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ code, kbd, @@ -116,17 +110,17 @@ samp { } /** -* Add the correct font size in all browsers. -*/ + * Add the correct font size in all browsers. + */ small { font-size: 80%; } /** -* Prevent `sub` and `sup` elements from affecting the line height in -* all browsers. -*/ + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ sub, sup { @@ -145,23 +139,23 @@ sup { } /* Embedded content - ========================================================================== */ + ========================================================================== */ /** -* Remove the border on images inside links in IE 10. -*/ + * Remove the border on images inside links in IE 10. + */ img { border-style: none; } /* Forms - ========================================================================== */ + ========================================================================== */ /** -* 1. Change the font styles in all browsers. -* 2. Remove the margin in Firefox and Safari. -*/ + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ button, input, @@ -175,30 +169,28 @@ textarea { } /** -* Show the overflow in IE. -* 1. Show the overflow in Edge. -*/ + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ button, -input { - /* 1 */ +input { /* 1 */ overflow: visible; } /** -* Remove the inheritance of text transform in Edge, Firefox, and IE. -* 1. Remove the inheritance of text transform in Firefox. -*/ + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ button, -select { - /* 1 */ +select { /* 1 */ text-transform: none; } /** -* Correct the inability to style clickable types in iOS and Safari. -*/ + * Correct the inability to style clickable types in iOS and Safari. + */ button, [type="button"], @@ -208,8 +200,8 @@ button, } /** -* Remove the inner border and padding in Firefox. -*/ + * Remove the inner border and padding in Firefox. + */ button::-moz-focus-inner, [type="button"]::-moz-focus-inner, @@ -220,8 +212,8 @@ button::-moz-focus-inner, } /** -* Restore the focus styles unset by the previous rule. -*/ + * Restore the focus styles unset by the previous rule. + */ button:-moz-focusring, [type="button"]:-moz-focusring, @@ -231,19 +223,19 @@ button:-moz-focusring, } /** -* Correct the padding in Firefox. -*/ + * Correct the padding in Firefox. + */ fieldset { padding: 0.35em 0.75em 0.625em; } /** -* 1. Correct the text wrapping in Edge and IE. -* 2. Correct the color inheritance from `fieldset` elements in IE. -* 3. Remove the padding so developers are not caught out when they zero out -* `fieldset` elements in all browsers. -*/ + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ legend { box-sizing: border-box; /* 1 */ @@ -255,25 +247,25 @@ legend { } /** -* Add the correct vertical alignment in Chrome, Firefox, and Opera. -*/ + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ progress { vertical-align: baseline; } /** -* Remove the default vertical scrollbar in IE 10+. -*/ + * Remove the default vertical scrollbar in IE 10+. + */ textarea { overflow: auto; } /** -* 1. Add the correct box sizing in IE 10. -* 2. Remove the padding in IE 10. -*/ + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ [type="checkbox"], [type="radio"] { @@ -282,8 +274,8 @@ textarea { } /** -* Correct the cursor style of increment and decrement buttons in Chrome. -*/ + * Correct the cursor style of increment and decrement buttons in Chrome. + */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { @@ -291,9 +283,9 @@ textarea { } /** -* 1. Correct the odd appearance in Chrome and Safari. -* 2. Correct the outline style in Safari. -*/ + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ [type="search"] { -webkit-appearance: textfield; /* 1 */ @@ -301,17 +293,17 @@ textarea { } /** -* Remove the inner padding in Chrome and Safari on macOS. -*/ + * Remove the inner padding in Chrome and Safari on macOS. + */ [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** -* 1. Correct the inability to style clickable types in iOS and Safari. -* 2. Change font properties to `inherit` in Safari. -*/ + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ @@ -319,38 +311,38 @@ textarea { } /* Interactive - ========================================================================== */ + ========================================================================== */ /* -* Add the correct display in Edge, IE 10+, and Firefox. -*/ + * Add the correct display in Edge, IE 10+, and Firefox. + */ details { display: block; } /* -* Add the correct display in all browsers. -*/ + * Add the correct display in all browsers. + */ summary { display: list-item; } /* Misc - ========================================================================== */ + ========================================================================== */ /** -* Add the correct display in IE 10+. -*/ + * Add the correct display in IE 10+. + */ template { display: none; } /** -* Add the correct display in IE 10. -*/ + * Add the correct display in IE 10. + */ [hidden] { display: none; diff --git a/assets/css/_page/_index.scss b/assets/css/_page/_index.scss index e0f8894..8a0b5df 100644 --- a/assets/css/_page/_index.scss +++ b/assets/css/_page/_index.scss @@ -1,6 +1,6 @@ @import "_home"; -.post-warp { +.warpper { position: relative; width: 100%; max-width: 960px; @@ -26,4 +26,4 @@ text-align: right; padding-bottom: 2rem; } -}
\ No newline at end of file +} diff --git a/assets/css/_page/_post.scss b/assets/css/_page/_post.scss index 8bac91a..513eb44 100644 --- a/assets/css/_page/_post.scss +++ b/assets/css/_page/_post.scss @@ -7,14 +7,14 @@ .post-meta { font-size: .88rem; - color: rgba(85, 85, 85, 0.52941) !important; + color: $global-font-secondary-color; span { display: inline-block; } .dark-theme & { - color: $global-font-secondary-color-dark !important; + color: $global-font-secondary-color-dark; } a { @@ -246,7 +246,6 @@ max-width: 100%; margin: .625rem 0; border-spacing: 0; - box-shadow: 2px 2px 3px rgba(0,0,0,.125); background: $table-background-color; .dark-theme & { @@ -306,7 +305,7 @@ margin: 0 0 2em 0; position: relative; - &:before { + &::before { content: '\201C'; position: absolute; top: 0em; @@ -323,8 +322,8 @@ } } - &:after { - content: "#blockquote" attr(cite); + &::after { + content: '#blockquote' attr(cite); display: block; text-align: right; font-size: 0.875em; @@ -340,6 +339,14 @@ } } + .footnotes { + color: $global-font-secondary-color; + + .dark-theme & { + color: $global-font-secondary-color-dark; + } + } + @import "../_partial/_post/code"; @import "../_partial/_post/admonition"; @@ -420,45 +427,9 @@ .code { padding: .375rem; font-size: .875rem; - font-family: Consolas, Monaco, Menlo, Consolas, monospace; + font-family: $code-font-family; font-weight: bold; word-break: break-all; - - .k { - color: #D371E3; - } - - .kt { - color: #D371E3; - } - - .kc { - color: #D371E3; - } - - .o { - color: #D371E3; - } - - .nf { - color: #F16473; - } - - .na { - color: #41B1F5; - } - - .s { - color: #8BC56F; - } - - .n { - color: #DB975C; - } - - .c1 { - color: #7E848F; - } } } @@ -544,20 +515,20 @@ } .post-nav { - &:before, - &:after { - content: " "; + &::before, + &::after { + content: ' '; display: table; } & a.prev, & a.next { - font-weight: 600; font-size: 1rem; + font-weight: 600; + transition-duration: .3s; transition-property: transform; transition-timing-function: ease-out; - transition-duration: 0.3s; } & a.prev { @@ -580,4 +551,4 @@ .post-comment { padding: 4rem 0; -}
\ No newline at end of file +} diff --git a/assets/css/_page/_posts.scss b/assets/css/_page/_posts.scss index 9daa4cf..43e4a18 100644 --- a/assets/css/_page/_posts.scss +++ b/assets/css/_page/_posts.scss @@ -24,7 +24,7 @@ width: 100%; padding: 30% 0 0; position: relative; - margin-bottom: 1rem; + margin: 0.6rem auto; img { position: absolute; @@ -32,7 +32,7 @@ height: 100%; left: 0; top: 0; - object-fit: scale-down; + object-fit: cover; } } diff --git a/assets/css/_partial/_post/_code.scss b/assets/css/_partial/_post/_code.scss index d43d256..8d2d0ff 100644 --- a/assets/css/_partial/_post/_code.scss +++ b/assets/css/_partial/_post/_code.scss @@ -34,9 +34,8 @@ p > code { // chroma .highlight > .chroma { margin: 1em 0; - border-radius: 5px; + border-radius: 6px; overflow-x: auto; - box-shadow: 1px 1px 2px rgba(0,0,0,0.125); position: relative; background: $code-background-color; @@ -66,7 +65,7 @@ p > code { } @each $sign, $text in $code-type-list { - &.#{$sign} table::after { + & .#{$sign} table::after { content: $text; } } @@ -119,7 +118,7 @@ p > code { } } -.code { +.highlight { /* Parentheses */ .p { color: #A9A9B3 } /* Keyword */ .k { color: #859900 } /* KeywordConstant */ .kc { color: #859900; font-weight: bold } diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss index 26412a7..4301ae8 100644 --- a/assets/css/_variables.scss +++ b/assets/css/_variables.scss @@ -3,6 +3,10 @@ // ============================== // ========== Global ========== // +@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900); + +$global-font-family: Lato, -apple-system, BlinkMacSystemFont, PingFang-SC-Regular, Hiragino Sans GB, Microsoft Yahei, Arial, sans-serif !default; + // Background color of the body $global-background-color: #fff !default; $global-background-color-dark: #292a2d !default; @@ -31,7 +35,7 @@ $navbar-active-color-dark: #fff !default; $post-link-color: #2d96bd !default; $post-link-color-dark: #eee !default; $post-link-hover-color: #ef3982 !default; -$post-link-hover-color-dark: #fff !default; +$post-link-hover-color-dark: #2d96bd !default; $pagination-link-color: #2d96bd !default; $pagination-link-color-dark: #a9a9b3 !default; @@ -52,7 +56,7 @@ $code-color: #E74C3C !default; $code-color-dark: #E5BF78 !default; // Color of the code background. -$code-background-color: whitesmoke !default; +$code-background-color: #f5f5f5 !default; $code-background-color-dark: #272C34 !default; $code-info-color: #cacaca !default; @@ -61,7 +65,7 @@ $code-info-color: #cacaca !default; $code-font-size: 13px !default; // Font family of the code. -$code-font-family: Consolas, Monaco, Menlo, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace !default; +$code-font-family: Source Code Pro, Consolas, Liberation Mono, Menlo, Courier, monospace !default; // Code type list. $code-type-list: ( diff --git a/assets/js/blog.js b/assets/js/blog.js index be86965..6abaeaa 100644 --- a/assets/js/blog.js +++ b/assets/js/blog.js @@ -157,27 +157,23 @@ jQuery(function($) { }; changeTocState(); - const HEADERFIX = 100; + const HEADERFIX = 150; const $toclink = $('.toc-link'); const $headerlink = $('.headerlink'); const $tocLinkLis = $('.post-toc-content li'); - const activeIndex = function() { + const activeIndex = function () { const scrollTop = $(window).scrollTop(); const headerlinkTop = $.map($headerlink, function(link) { return $(link).offset().top; }); - const headerLinksOffsetForSearch = $.map(headerlinkTop, function(offset) { - return offset - HEADERFIX; - }); const searchActiveTocIndex = function(array, target) { for (let i = 0; i < array.length - 1; i++) { - if (target > array[i] && target <= array[i + 1]) return i; + if ( target < array[i + 1]) return i; } - if (target > array[array.length - 1]) return array.length - 1; - return 0; + return array.length - 1; }; - const activeTocIndex = searchActiveTocIndex(headerLinksOffsetForSearch, scrollTop); + const activeTocIndex = searchActiveTocIndex(headerlinkTop, scrollTop + HEADERFIX); $($toclink).removeClass('active'); $($tocLinkLis).removeClass('has-active'); diff --git a/exampleSite/static/images/loading.svg b/assets/svg/loading.svg index 075a399..b852575 100644 --- a/exampleSite/static/images/loading.svg +++ b/assets/svg/loading.svg @@ -1,10 +1,10 @@ <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> -<svg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg"> +<svg width="319" height="319" viewBox="-281 -281 600 600" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient x1="8.042%" y1="0%" x2="65.682%" y2="23.865%" id="a"> - <stop stop-color="#fff" stop-opacity="0" offset="0%"/> - <stop stop-color="#fff" stop-opacity=".631" offset="63.146%"/> - <stop stop-color="#fff" offset="100%"/> + <stop stop-color="#a5a5a5" stop-opacity="0" offset="0%"/> + <stop stop-color="#a5a5a5" stop-opacity=".631" offset="63.146%"/> + <stop stop-color="#a5a5a5" offset="100%"/> </linearGradient> </defs> <g fill="none" fill-rule="evenodd"> @@ -18,7 +18,7 @@ dur="0.9s" repeatCount="indefinite" /> </path> - <circle fill="#fff" cx="36" cy="18" r="1"> + <circle fill="#a5a5a5" cx="36" cy="18" r="1"> <animateTransform attributeName="transform" type="rotate" @@ -29,4 +29,4 @@ </circle> </g> </g> -</svg> +</svg>
\ No newline at end of file diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 532195c..218d8b6 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -1,41 +1,64 @@ baseURL = "https://example.com/" -languageCode = "en" # website language -defaultContentLanguage = "en" # [en, zh, ...] determines which i18n file to use -title = "LoveIt Theme" # website title -theme = "LoveIt" # theme -enableGitInfo = false # whether to use git commit log to generate lastmod record -hasCJKLanguage = false # whether to include chinese/japanese/korean -paginate = 12 # default amount of posts in each pages -enableEmoji = true # whether to use emoji code -enableRobotsTXT = true # whether to use robots.txt -googleAnalytics = "" # [UA-XXXXXXXX-X] google analytics code -disqusShortname = "dillonzq" # Disqus shortname to use Disqus in posts +# website language +languageCode = "en" +# [en, zh, ...] determines which i18n file to use +defaultContentLanguage = "en" +# website title +title = "LoveIt Theme" +# theme +theme = "LoveIt" +# whether to use git commit log to generate lastmod record +enableGitInfo = false +# whether to include chinese/japanese/korean +hasCJKLanguage = false +# default amount of posts in each pages +paginate = 12 +# whether to use emoji code +enableEmoji = true +# whether to use robots.txt +enableRobotsTXT = true +# [UA-XXXXXXXX-X] google analytics code +googleAnalytics = "" +# copyright description used only for seo schema copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License." - # copyright description used only for seo schema - - #### Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting) -pygmentsOptions = "linenos=table" -pygmentsCodefences = true -pygmentsUseClasses = true -pygmentsCodefencesGuessSyntax = true +# Markup related configuration in Hugo [markup] -[markup.goldmark] -[markup.goldmark.renderer] -unsafe = true + # Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting) + [markup.highlight] + codeFences = true + guessSyntax = true + lineNoStart = 1 + lineNos = true + lineNumbersInTable = true + noClasses = false + style = "monokai" + tabWidth = 4 + # Goldmark is from Hugo 0.60 the default library used for Markdown + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + # Table Of Contents settings + [markup.tableOfContents] + startLevel = 2 + endLevel = 6 -[author] #### Author Info - name = "XXXX" +# Author Info +[author] + name = "xxxx" -[sitemap] #### Sitemap Info +# Sitemap Info +[sitemap] changefreq = "weekly" filename = "sitemap.xml" priority = 0.5 -[Permalinks] #### Permalinks Info (https://gohugo.io/content-management/urls/#permalinks) +# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks) +[Permalinks] posts = ":year/:month/:filename" -[menu] #### Menu Info +# Menu Info +[menu] [[menu.main]] identifier = "posts" name = "Posts" @@ -62,41 +85,56 @@ unsafe = true [[menu.main]] identifier = "zh" - name = '<i class="fas fa-language fa-fw"></i>' + name = '<i class="fas fa-language fa-fw" title="简体中文"></i>' url = "https://hugo-loveit-zh.netlify.com" weight = 5 [params] - version = "5.x" # LoveIt theme version - description = "LoveIt Theme Demo" # site description - keywords = ["XXXX", "Theme", "Hugo"] # site keywords + # LoveIt theme version + version = "0.1.X" + # site description + description = "LoveIt Theme Demo" + # site keywords + keywords = ["Theme", "Hugo"] - #### Home Page Info - home_mode = "post" # [post, other] home mode - home_paginate = 6 # special amount of posts in each home post page - avatar = "images/avatar.png" # URL of avatar shown in home page - subtitle = "A Clean, Elegant but Advanced Hugo Theme" # subtitle shown in home page + # Home Page Info + ## [post, other] home mode + home_mode = "post" + ## special amount of posts in each home post page + home_paginate = 6 + ## URL of avatar shown in home page + avatar = "images/avatar.png" + ## subtitle shown in home page + subtitle = "A Clean, Elegant but Advanced Hugo Theme" - socialShare = true # whether to show social share links in post page + # whether to show social share links in post page + socialShare = true - #### Footer CopyRight Info - since = 2018 # Site creation time - icp = '' # ICP info only in China (HTML format is allowed) + # Footer CopyRight Info + ## Site creation time + since = 2018 + ## ICP info only in China (HTML format is allowed) + icp = "" + ## license info (HTML format is allowed) license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>' - # license info (HTML format is allowed) - gitRepo = "" # public git repo url to link lastmod git commit only then enableGitInfo is true - linkToMarkdown = true # whether to show link to Raw Markdown content of the post + # public git repo url to link lastmod git commit only then enableGitInfo is true + gitRepo = "" + + # whether to show link to Raw Markdown content of the post + linkToMarkdown = true - #### site verification code for Google/Bing/Yandex/Pinterest/Baidu + # site verification code for Google/Bing/Yandex/Pinterest/Baidu google_verification = "" bing_verification = "" yandex_verification = "" pinterest_verification = "" baidu_verification = "" - [params.cdn] #### CSS and JS Files CDN - fontawesome_free_css = '' # for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">' + # CSS and JS Files CDN + [params.cdn] + ## for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">' + fontawesome_free_css = '' animate_css = '' gitalk_css = '' gitalk_js = '' @@ -116,15 +154,17 @@ unsafe = true aplayer_js = '' meting_js = '' - [params.gravatar] # Gravatar Info for preferred avatar in home page + # Gravatar Info for preferred avatar in home page + [params.gravatar] email = "" - [params.social] # Social Info in home page + # Social Info in home page + [params.social] GitHub = "xxxx" Linkedin = "xxxx" Twitter = "xxxx" #Instagram = "xxxx" - #Email = "xxxx" + Email = "xxxx@outlook.com" Facebook = "xxxx" Telegram = "xxxx" #Medium = "xxxx" @@ -180,7 +220,8 @@ unsafe = true #Thingiverse = "xxxx" #Devto = "xxxx" - [params.share] # Social Share Links in post page + # Social Share Links in post page + [params.share] enable = true Twitter = true Facebook = true @@ -193,30 +234,40 @@ unsafe = true #VKontakte = true #Weibo = true - [params.publisher] # Publisher Info just for SEO - name = "XXXX" + # Publisher Info just for SEO + [params.publisher] + name = "xxxx" [params.publisher.logo] url = "logo.png" width = 127 height = 40 - [params.logo] # Website Log Info just for SEO + # Website Log Info just for SEO + [params.logo] url = "logo.png" width = 127 height = 40 - [params.image] # Website Image Info just for SEO + # Website Image Info just for SEO + [params.image] url = "cover.png" width = 800 height = 600 - [params.gitalk] # Gittalk Comment Config (https://github.com/gitalk/gitalk) + # Disqus Comment Config (https://disqus.com/) + [params.disqus] + # Disqus shortname to use Disqus in posts + shortname = "" + + # Gittalk Comment Config (https://github.com/gitalk/gitalk) + [params.gitalk] owner = "" repo = "" clientId = "" clientSecret = "" - [params.valine] # Valine Comment Config (https://github.com/xCss/Valine) + # Valine Comment Config (https://github.com/xCss/Valine) + [params.valine] enable = false appId = "" appKey = "" @@ -227,30 +278,35 @@ unsafe = true visitor = true recordIP = true - [params.facebook] # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments) + # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments) + [params.facebook] enable = false width = "100%" numPosts = 10 appId = "" languageCode = "en_US" -[privacy] #### Privacy Info (https://gohugo.io/about/hugo-and-gdpr/) +# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/) +[privacy] [privacy.googleAnalytics] anonymizeIP = true [privacy.youtube] privacyEnhanced = true -[mediaTypes] #### Options to make hugo output .md files. +# Options to make hugo output .md files. +[mediaTypes] [mediaTypes."text/plain"] suffixes = ["md"] -[outputFormats.MarkDown] #### Options to make hugo output .md files. +# Options to make hugo output .md files. +[outputFormats.MarkDown] mediaType = "text/plain" isPlainText = true isHTML = false -[outputs] #### Options to make hugo output .md files. +# Options to make hugo output files. +[outputs] home = ["HTML", "RSS"] page = ["HTML", "MarkDown"] section = ["HTML", "RSS"] diff --git a/exampleSite/content/posts/LoveIt-Preview.md b/exampleSite/content/posts/LoveIt-Preview.md index b9f215d..f9938d6 100644 --- a/exampleSite/content/posts/LoveIt-Preview.md +++ b/exampleSite/content/posts/LoveIt-Preview.md @@ -6,13 +6,13 @@ draft: false description: "This is a LoveIt theme preview and documentation page." show_in_homepage: true show_description: false -license: '' +license: "" -tags: ['Hugo', 'Theme'] -categories: ['Documentation'] +tags: ["Hugo", "Theme"] +categories: ["Documentation"] -featured_image: '' -featured_image_preview: '' +featured_image: "" +featured_image_preview: "" comment: true toc: true diff --git a/exampleSite/content/posts/markdown-syntax.md b/exampleSite/content/posts/markdown-syntax.md new file mode 100644 index 0000000..ffb943a --- /dev/null +++ b/exampleSite/content/posts/markdown-syntax.md @@ -0,0 +1,169 @@ +--- +author: "Hugo Authors" +title: "Markdown Syntax Guide" +date: 2020-01-30T21:57:40+08:00 +lastmod: 2020-01-30T21:57:40+08:00 +draft: false +description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements." +show_in_homepage: true +show_description: false +license: "" + +tags: [ + "markdown", + "css", + "html", + "themes", +] +categories: [ + "themes", + "syntax", +] + +featured_image: /images/markdown.png +featured_image_preview: "" + +comment: true +toc: true +autoCollapseToc: true +math: false +--- + +This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. +<!--more--> + +## Headings + +The following HTML `<h2>`—`<h6>` elements represent six levels of section headings. `<h2>` is the highest section level while `<h6>` is the lowest. + +## H2 +### H3 +#### H4 +##### H5 +###### H6 + +## Paragraph + +Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, +voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit +peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, +offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, +cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea +corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum +fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate +dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer +sperchicium faceata tiustia prat. + +Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is +sinveli squiatum, core et que aut hariosam ex eat. + +## Blockquotes + +The blockquote element represents content that is quoted from another source, optionally +with a citation which must be within a `footer` or `cite` element, and optionally with +in-line changes such as annotations and abbreviations. + +### Blockquote without attribution + +> Tiam, ad mint andaepu dandae nostion secatur sequo quae. +> **Note** that you can use *Markdown syntax* within a blockquote. + +### Blockquote with attribution + +> Don't communicate by sharing memory, share memory by communicating.</p> +> — <cite>Rob Pike[^1]</cite> + +## Tables + +Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box. + + Name | Age +--------|------ + Bob | 27 + Alice | 23 + +### Inline Markdown within tables + +| Inline | Markdown | In | Table | +| ---------- | --------- | ----------------- | ---------- | +| *italics* | **bold** | ~~strikethrough~~ | `code` | + +## Code Blocks + +### Code block with backticks + +```html +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Example HTML5 Document</title> + </head> + <body> + <p>Test</p> + </body> +</html> +``` + +### Code block indented with four spaces + + <!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Example HTML5 Document</title> + </head> + <body> + <p>Test</p> + </body> + </html> + +### Code block with Hugo's internal highlight shortcode + +{{< highlight html >}} +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Example HTML5 Document</title> + </head> + <body> + <p>Test</p> + </body> +</html> +{{< /highlight >}} + +## List Types + +### Ordered List + +1. First item +2. Second item +3. Third item + +### Unordered List + +* List item +* Another item +* And another item + +### Nested list + +* Item + 1. First Sub-item + 2. Second Sub-item + +## Other Elements — abbr, sub, sup, kbd, mark + +<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format. + +H<sub>2</sub>O + +X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup> + +Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session. + +Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, +and other small creatures. + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. diff --git a/exampleSite/static/images/markdown.png b/exampleSite/static/images/markdown.png Binary files differnew file mode 100644 index 0000000..b31e1a5 --- /dev/null +++ b/exampleSite/static/images/markdown.png diff --git a/i18n/en.toml b/i18n/en.toml index 0653e75..48889d4 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -48,7 +48,7 @@ other = "Theme - " # === posts/single.html === [toc] -other = "Table of Contents" +other = "Contents" [publish] other = "published on" @@ -103,6 +103,9 @@ other = "return" [pageNotFound] other = "Page not found" +[pageNotFoundText] +other = "The page you're looking for doesn't exist. Sorry." + [backToHome] other = "Back to Home" # === 404.html === diff --git a/i18n/zh.toml b/i18n/zh.toml index d60b617..71c0f36 100644 --- a/i18n/zh.toml +++ b/i18n/zh.toml @@ -106,6 +106,9 @@ other = "返回" [pageNotFound] other = "页面没找到" +[pageNotFoundText] +other = "抱歉,您要查找的页面不存在。" + [backToHome] other = "回到主页" # === 404.html === diff --git a/layouts/404.html b/layouts/404.html index 6e10189..f49926d 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -1,10 +1,16 @@ -{{ define "title" }}{{ T "pageNotFound" }} | {{ .Site.Title }}{{ end -}} +{{- define "title" }}{{ T "pageNotFound" | printf "404 %s" }} | {{ .Site.Title }}{{ end -}} -{{ define "content" }} +{{- define "content" -}} <div class="notfound"> <h1 class="error-emoji"></h1> - <p class="error-text">/* 404 {{ T "pageNotFound" }}. */</p> - <p class="error-link"><a href="{{ .Site.BaseURL }}">↑ {{ T "backToHome" }} ↑</a></p> + <p class="error-text"> + {{- T "pageNotFoundText" -}} + </p> + <p class="error-link"> + <a href="{{ .Site.BaseURL }}"> + {{- T "backToHome" | printf "← %s" -}} + </a> + </p> </div> <script> var errorEmojiContainer = document.getElementsByClassName('error-emoji')[0]; @@ -15,4 +21,4 @@ var errorEmoji = emojiArray[Math.floor(Math.random() * emojiArray.length)]; errorEmojiContainer.appendChild(document.createTextNode(errorEmoji)); </script> -{{ end }}
\ No newline at end of file +{{- end -}}
\ No newline at end of file diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..8ab4804 --- /dev/null +++ b/layouts/_default/_markup/render-image.html @@ -0,0 +1,20 @@ +<figure> + <img + {{ $res := resources.Get "svg/loading.svg" | minify }} + src="{{ $res.RelPermalink }}" + data-sizes="auto" + data-src="{{ .Destination | safeURL }}" + alt="{{ .Text }}" + {{- with .Title -}} + title="{{ . }}" + {{- end -}} + class="lazyload" + > + <figcaption class="image-caption"> + {{- if .Title -}} + {{- .Title -}} + {{- else -}} + {{- .Text -}} + {{- end -}} + </figcaption> +</figure>
\ No newline at end of file diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html new file mode 100644 index 0000000..ccac741 --- /dev/null +++ b/layouts/_default/_markup/render-link.html @@ -0,0 +1,10 @@ +<a href="{{ .Destination | safeURL }}" + {{- with .Title -}} + title="{{ . }}" + {{- end -}} + {{- if strings.HasPrefix .Destination "http" -}} + target="_blank" + {{- end -}} + > + {{- .Text -}} +</a>
\ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 39ca8e0..cd1072b 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,13 +1,13 @@ -{{ if ne .Site.Params.version "5.x" -}} - {{ errorf "\n\nThere are two possible situations that led to this error:\n 1. You haven't copied the config.toml yet. See https://github.com/dillonzq/LoveIt#installation \n 2. You have an incompatible update. See https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n\n有两种可能的情况会导致这个错误发生:\n 1. 你还没有复制 config.toml 参考 https://github.com/dillonzq/LoveIt#installation \n 2. 你进行了一次不兼容的更新 参考 https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n" -}} -{{ end -}} +{{- if ne .Site.Params.version "0.1.X" -}} + {{- errorf "\n\nThere are two possible situations that led to this error:\n 1. You haven't copied the config.toml yet. See https://github.com/dillonzq/LoveIt#installation \n 2. You have an incompatible update. See https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n\n有两种可能的情况会导致这个错误发生:\n 1. 你还没有复制 config.toml 参考 https://github.com/dillonzq/LoveIt#installation \n 2. 你进行了一次不兼容的更新 参考 https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n" -}} +{{- end -}} <!DOCTYPE html> <html lang="{{ .Site.LanguageCode }}"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title> - {{- partial "head.html" . }} + {{- partial "head.html" . -}} </head> <body> <script> @@ -15,15 +15,17 @@ window.isDark && document.body.classList.add('dark-theme'); </script> <div class="wrapper"> - {{ partial "header.html" . -}} + {{- partial "header.html" . -}} <main class="main"> <div class="container"> - {{ block "content" . }}{{ end -}} + {{- block "content" . }}{{ end -}} </div> </main> - {{ partial "footer.html" . -}} - {{ partial "scripts.html" . -}} + {{- partial "footer.html" . -}} + {{- partial "scripts.html" . -}} </div> - <a href="#" class="dynamic-to-top" id="dynamic-to-top" data-scroll><span> </span></a> + <a href="#" class="dynamic-to-top" id="dynamic-to-top" data-scroll> + <span> </span> + </a> </body> </html>
\ No newline at end of file diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 8ef2cf1..620e737 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -1,17 +1,19 @@ -{{ define "title" }}{{ T "all" | humanize}}{{ T .Section | default .Section | humanize }} | {{ .Site.Title }}{{ end -}} +{{- define "title" }}{{ T "all" | humanize}}{{ T .Section | default .Section | humanize }} | {{ .Site.Title }}{{ end -}} -{{ define "content" -}} - {{ $data := .Data -}} - <div class="post-warp archive"> +{{- define "content" -}} + {{- $data := .Data -}} + <div class="warpper archive"> <h2 class="post-title animated pulse faster"> - {{ T "all" | humanize}}{{ T .Section | default .Section | humanize }} + {{- T "all" | humanize}}{{ T .Section | default .Section | humanize -}} </h2> {{- range (.Paginate (.Pages.GroupByDate "2006")).PageGroups -}} <h3>{{ .Key }}</h3> {{- range .Pages -}} <article class="archive-item"> - <a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a> + <a href="{{ .RelPermalink }}" class="archive-item-link"> + {{- .Title -}} + </a> <span class="archive-item-date"> {{- .Date.Format (.Site.Params.dateFormatToUse | default "01-02") -}} </span> @@ -20,4 +22,4 @@ {{- end -}} {{- partial "paginator.html" . -}} </div> -{{- end }}
\ No newline at end of file +{{- end -}}
\ No newline at end of file diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 871d9e0..1c22375 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,35 +1,28 @@ -{{ define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end }} +{{- define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end -}} -{{ define "content" }} - <div class="post-warp single"> - <h1 class="post-title animated pulse faster">{{ .Title }}</h1> +{{- define "content" -}} + <div class="warpper single"> + <h1 class="post-title animated pulse faster"> + {{- .Title -}} + </h1> <div class="post-content"> - {{ $content := .Content }} - {{ $REin := `<img src="([^"]+)" alt="([^"]+)?" />` }} - {{ $REout := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }} - {{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `:\(([\w- ]+?)\):` }} - {{ $REout = `<i class="$1 fa-fw"></i>` }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `\[(.+?)\]\^\((.+?)\)` }} - {{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<sup>\[return\]</sup>` }} - {{ $REout = printf "<sup>[%s]</sup>" (T "return") }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(h[123456]) (id=".+?")>` }} - {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(sup class="footnote-ref") (id="fnref:.+?")>` }} - {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(li) (id="fn:.+?")>` }} - {{ $REout = `<$1><a class="post-dummy-target" $2></a>` }} - {{ $content = replaceRE $REin $REout $content }} - {{ $content | safeHTML }} + {{- $content := .Content -}} + {{- $REin := `:\(([\w- ]+?)\):` -}} + {{- $REout := `<i class="$1 fa-fw"></i>` -}} + {{- $content = replaceRE $REin $REout $content -}} + {{- $REin = `\[(.+?)\]\^\((.+?)\)` -}} + {{- $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` -}} + {{- $content = replaceRE $REin $REout $content -}} + {{- $REin = `<sup>\[return\]</sup>` -}} + {{- $REout = printf "<sup>[%s]</sup>" (T "return") -}} + {{- $content = replaceRE $REin $REout $content -}} + {{- $REin = `<(h[23456]) (id=".+?")>` -}} + {{- $REout = `<a class="post-dummy-target" $2></a><$1>` -}} + {{- $content = replaceRE $REin $REout $content -}} + {{- $REin = `<(.+) (id="fnref:.+?")>` -}} + {{- $REout = `<a class="post-dummy-target" $2></a><$1>` -}} + {{- $content = replaceRE $REin $REout $content -}} + {{- $content | safeHTML -}} </div> </div> -{{end }}
\ No newline at end of file +{{- end -}}
\ No newline at end of file diff --git a/layouts/_default/single.md b/layouts/_default/single.md index 6153d0e..e34c2d4 100644 --- a/layouts/_default/single.md +++ b/layouts/_default/single.md @@ -1,3 +1,3 @@ # {{ .Title }} -{{ .RawContent }}
\ No newline at end of file +{{ .RawContent }} diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html index 6a39c15..eed92b7 100644 --- a/layouts/_default/summary.html +++ b/layouts/_default/summary.html @@ -9,7 +9,8 @@ {{ with .Params.featured_image }} {{ $image := $.Params.featured_image_preview | default . }} <div class="post-featured-image-preview"> - <img src=/images/loading.svg data-sizes=auto data-src={{ $image }} alt="featured image" class="lazyload"> + {{ $res := resources.Get "svg/loading.svg" | minify }} + <img src="{{ $res.RelPermalink }}" data-sizes="auto" data-src="{{ $image }}" alt="featured image" class="lazyload"> </div> {{ end }} <!-- end featured_image--> @@ -42,7 +43,7 @@ {{ $summary = replaceRE $REin $REout $summary }} {{ $REin = `\[(.+?)\]\^\((.+?)\)` }} {{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }} - {{ $summary = replaceRE $REin $REout $summary }} + {{ $summary = replaceRE $REin $REout $summary }} {{ $summary | safeHTML }} {{ end }} </div> diff --git a/layouts/index.atom.xml b/layouts/index.atom.xml index e212cdb..b07556e 100644 --- a/layouts/index.atom.xml +++ b/layouts/index.atom.xml @@ -1,37 +1,49 @@ <feed xmlns="http://www.w3.org/2005/Atom"> - {{ if .IsHome }} - <title>{{ .Title }}</title> - {{ else }} - <title>{{ .Title }} - {{ .Site.Title }}</title> - {{ end }} + {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}} <link href="{{ .Permalink }}index.xml" rel="self"/> <link href="{{ .Permalink }}"/> - {{ if not .Date.IsZero }} - <updated>{{ .Date.Format "02-01-2006T15:04:05-07:00" | safeHTML }}</updated> - {{ end }} - <id>{{ .Permalink }}</id> + {{- if not .Date.IsZero -}} + <updated> + {{- .Date.Format "02-01-2006T15:04:05-07:00" | safeHTML -}} + </updated> + {{- end -}} + <id> + {{- .Permalink -}} + </id> <author> - {{ with .Site.Author.name }} + {{- with .Site.Author.name -}} <name>{{ . }}</name> - {{ end }} - {{ with $.Site.Author.email }} + {{- end -}} + {{- with .Site.Author.email -}} <email>{{ . }}</email> - {{ end }} + {{- end -}} </author> <generator>Hugo -- gohugo.io</generator> - {{ range first 15 (where .Data.Pages "Type" "in" .Site.Params.mainSections) }} + {{- range first 15 (where .Data.Pages "Type" "in" .Site.Params.mainSections) -}} <entry> - {{ `<title type="html"><![CDATA[` | safeHTML }}{{ .Title }}]]></title> + <title type="html"> + {{- printf "<![CDATA[%s]]>" .Title | safeHTML -}} + </title> <link href="{{ .Permalink }}"/> - <id>{{ .Permalink }}</id> - {{ with .Site.Author.name }} + <id> + {{- .Permalink -}} + </id> + {{- with .Site.Author.name -}} <author> - <name>{{ . }}</name> + <name> + {{- . -}} + </name> </author> - {{ end }} - <published>{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</published> - <updated>{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated> - {{ `<content type="html"><![CDATA[` | safeHTML }}{{ .Content }}]]></content> + {{- end -}} + <published> + {{- .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML -}} + </published> + <updated> + {{- .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML -}} + </updated> + <content type="html"> + {{- printf "<![CDATA[%s]]>" .Content | safeHTML -}} + </content> </entry> - {{ end }} -</feed> + {{- end -}} +</feed>
\ No newline at end of file diff --git a/layouts/index.html b/layouts/index.html index 740169e..ad26191 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,22 +1,22 @@ -{{ define "content" -}} - {{ if eq .Site.Params.home_mode "post" -}} - <div class="post-warp"> +{{- define "content" -}} + {{- if eq .Site.Params.home_mode "post" -}} + <div class="warpper"> {{- partial "home/profile.html" . -}} - {{ $paginator := where .Site.RegularPages "Type" "posts" -}} - {{ $paginator = where $paginator "Params.show_in_homepage" "!=" false -}} - {{ with .Site.Params.home_paginate -}} - {{ $paginator = $.Paginate $paginator . -}} - {{ else -}} - {{ $paginator = $.Paginate $paginator -}} - {{ end -}} - {{ range $paginator.Pages -}} - {{ .Render "summary" -}} - {{ end -}} + {{- $paginator := where .Site.RegularPages "Type" "posts" -}} + {{- $paginator = where $paginator "Params.show_in_homepage" "!=" false -}} + {{- with .Site.Params.home_paginate -}} + {{- $paginator = $.Paginate $paginator . -}} + {{- else -}} + {{- $paginator = $.Paginate $paginator -}} + {{- end -}} + {{- range $paginator.Pages -}} + {{- .Render "summary" -}} + {{- end -}} - {{ partial "paginator.html" . -}} + {{- partial "paginator.html" . -}} </div> {{- else -}} - {{ partial "home/profile.html" . -}} - {{ end -}} -{{ end }}
\ No newline at end of file + {{- partial "home/profile.html" . -}} + {{- end -}} +{{- end -}}
\ No newline at end of file diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html index a0543f0..1babef2 100644 --- a/layouts/partials/comments.html +++ b/layouts/partials/comments.html @@ -1,6 +1,6 @@ {{ if eq (getenv "HUGO_ENV") "production" | and .IsPage | and (ne .Params.comment false) -}} <!-- Disqus Comment System--> - {{- if .Site.DisqusShortname -}} + {{- if .Site.Params.disqus.shortname -}} <div id="disqus_thread"></div> <script type="text/javascript"> (function() { @@ -10,7 +10,7 @@ return; var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true; - var disqus_shortname = "{{ .Site.DisqusShortname }}"; + var disqus_shortname = "{{ .Site.Params.disqus.shortname }}"; dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js"; (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq); })(); @@ -92,4 +92,4 @@ data-numposts="{{ .Site.Params.facebook.numPosts }}" ></div> {{- end -}} -{{- end }} +{{- end }}
\ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 7a392a8..1a6ceb0 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -40,17 +40,17 @@ {{ partial "seo.html" . -}} -{{ $res := resources.Get "css/style.scss" | resources.ToCSS | resources.Minify -}} +{{ $res := resources.Get "css/style.scss" | toCSS | minify -}} <link rel="stylesheet" href="{{ $res.RelPermalink }}"> {{ if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.fontawesome_free_css -}} {{ .Site.Params.cdn.fontawesome_free_css | safeHTML }} {{ else -}} - {{ $res := resources.Get "css/lib/fontawesome-free/all.min.css" | resources.Minify -}} + {{ $res = resources.Get "css/lib/fontawesome-free/all.min.css" | minify -}} <link rel="stylesheet" href="{{ $res.RelPermalink }}"> {{ end }} {{ if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.animate_css -}} {{ .Site.Params.cdn.animate_css | safeHTML }} {{ else -}} - {{ $res := resources.Get "css/lib/animate/animate.min.css" | resources.Minify -}} + {{ $res = resources.Get "css/lib/animate/animate.min.css" | minify -}} <link rel="stylesheet" href="{{ $res.RelPermalink }}"> -{{ end }} +{{ end }}
\ No newline at end of file diff --git a/layouts/posts/single.html b/layouts/posts/single.html index 8fbe768..2ca270d 100644 --- a/layouts/posts/single.html +++ b/layouts/posts/single.html @@ -7,7 +7,7 @@ {{ $author = .Site.Author.name }} {{ end }} - <article class="post-warp"> + <article class="warpper"> <h1 class="post-title animated flipInX">{{ .Title }}</h1> <div class="post-meta"> @@ -39,7 +39,8 @@ {{ with .Params.featured_image }} <div class="post-featured-image"> - <img src=/images/loading.svg data-sizes=auto data-src={{ . }} alt="featured image" class="lazyload"> + {{ $res := resources.Get "svg/loading.svg" | minify }} + <img src="{{ $res.RelPermalink }}" data-sizes="auto" data-src="{{ . }}" alt="featured image" class="lazyload"> </div> {{ end }} @@ -65,14 +66,8 @@ <div class="post-content"> {{ $content := .Content }} - {{ $REin := `<img src="([^"]+)" alt="([^"]+)?" />` }} - {{ $REout := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }} - {{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }} - {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `:\(([\w- ]+?)\):` }} - {{ $REout = `<i class="$1 fa-fw"></i>` }} + {{ $REin := `:\(([\w- ]+?)\):` }} + {{ $REout := `<i class="$1 fa-fw"></i>` }} {{ $content = replaceRE $REin $REout $content }} {{ $REin = `\[(.+?)\]\^\((.+?)\)` }} {{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }} @@ -80,15 +75,12 @@ {{ $REin = `<sup>\[return\]</sup>` }} {{ $REout = printf "<sup>[%s]</sup>" (T "return") }} {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(h[123456]) (id=".+?")>` }} + {{ $REin = `<(h[23456]) (id=".+?")>` }} {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }} {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(sup class="footnote-ref") (id="fnref:.+?")>` }} + {{ $REin = `<(.+) (id="fnref:.+?")>` }} {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }} {{ $content = replaceRE $REin $REout $content }} - {{ $REin = `<(li) (id="fn:.+?")>` }} - {{ $REout = `<$1><a class="post-dummy-target" $2></a>` }} - {{ $content = replaceRE $REin $REout $content }} {{ $content | safeHTML }} </div> diff --git a/layouts/rss.xml b/layouts/rss.xml index f352eac..7c5274d 100644 --- a/layouts/rss.xml +++ b/layouts/rss.xml @@ -1,34 +1,62 @@ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> - <title>{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}</title> - <link>{{ .Permalink }}</link> - <description>Recent content {{ with .Title }}in {{ . }} {{ end }}on {{ .Site.Title }}</description> + <title> + {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}} + </title> + <link> + {{- .Permalink -}} + </link> + <description> + {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}} + </description> <generator>Hugo -- gohugo.io</generator> - {{ with .Site.LanguageCode }} - <language>{{ . }}</language> - {{ end }} - {{ with .Site.Author.email }} - <managingEditor>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</managingEditor> - <webMaster>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</webMaster> - {{ end }} - {{ with .Site.Copyright }} - <copyright>{{ . }}</copyright> - {{ end }} - {{ if not .Date.IsZero }} - <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate> - {{ end }} + {{- with .Site.LanguageCode -}} + <language> + {{- . -}} + </language> + {{- end -}} + {{- with .Site.Author.email -}} + <managingEditor> + {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}} + </managingEditor> + <webMaster> + {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}} + </webMaster> + {{- end -}} + {{- with .Site.Copyright -}} + <copyright> + {{- . -}} + </copyright> + {{- end -}} + {{- if not .Date.IsZero -}} + <lastBuildDate> + {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}} + </lastBuildDate> + {{- end -}} <atom:link href="{{.Permalink}}" rel="self" type="application/rss+xml" /> - {{ range first 15 (where .Data.Pages "Type" "!=" "home") }} + {{- range first 15 (where .Data.Pages "Type" "!=" "home") -}} <item> - <title>{{ .Title }}</title> - <link>{{ .Permalink }}</link> - <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate> - {{ with .Site.Author.email }} - <author>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</author> - {{ end }} - <guid>{{ .Permalink }}</guid> - <description>{{ .Content | html }}</description> + <title> + {{- .Title -}} + </title> + <link> + {{- .Permalink -}} + </link> + <pubDate> + {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}} + </pubDate> + {{- with .Site.Author.email -}} + <author> + {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}} + </author> + {{- end -}} + <guid> + {{- .Permalink -}} + </guid> + <description> + {{- .Content | html -}} + </description> </item> - {{ end }} + {{- end -}} </channel> -</rss> +</rss>
\ No newline at end of file diff --git a/layouts/shortcodes/typeit.html b/layouts/shortcodes/typeit.html index 110589f..ecd061b 100644 --- a/layouts/shortcodes/typeit.html +++ b/layouts/shortcodes/typeit.html @@ -20,7 +20,7 @@ <!-- fix "<br />" location error which is a bug of Typeit HTML parser --> {{ $content = replaceRE `<br /></span>` "</span><br />" $content }} <div id={{ printf "r%s" $id }} hidden=true>{{ $content | safeHTML }}</div> - <div class="code" id={{ $id }}></div> + <div class="highlight" id={{ $id }}></div> {{ else }} {{ $tag := .Get "tag" | default "p" }} {{ $content = $content | markdownify | chomp }} diff --git a/layouts/sitemap.xml b/layouts/sitemap.xml index 15bffee..62bb932 100644 --- a/layouts/sitemap.xml +++ b/layouts/sitemap.xml @@ -1,22 +1,41 @@ -<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> - {{ range (where .Data.Pages "Section" "!=" "gallery") }} +<urlset + xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" + xmlns:xhtml="http://www.w3.org/1999/xhtml" + > + {{- range (where .Data.Pages "Section" "!=" "gallery") -}} <url> - <loc>{{ .Permalink }}</loc> - {{ if not .Lastmod.IsZero }} - <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod> - {{ end }} - {{ with .Sitemap.ChangeFreq }} - <changefreq>{{ . }}</changefreq> - {{ end }} - {{ if ge .Sitemap.Priority 0.0 }} - <priority>{{ .Sitemap.Priority }}</priority> - {{ end }} - {{ if .IsTranslated }} - {{ range .Translations }} - <xhtml:link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}"/> - {{ end }} - <xhtml:link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}"/> - {{ end }} + <loc> + {{- .Permalink -}} + </loc> + {{- if not .Lastmod.IsZero -}} + <lastmod> + {{- safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) -}} + </lastmod> + {{- end -}} + {{- with .Sitemap.ChangeFreq -}} + <changefreq> + {{- . -}} + </changefreq> + {{- end -}} + {{- if ge .Sitemap.Priority 0.0 -}} + <priority> + {{- .Sitemap.Priority -}} + </priority> + {{- end -}} + {{- if .IsTranslated -}} + {{- range .Translations -}} + <xhtml:link + rel="alternate" + hreflang="{{ .Lang }}" + href="{{ .Permalink }}" + /> + {{- end -}} + <xhtml:link + rel="alternate" + hreflang="{{ .Lang }}" + href="{{ .Permalink }}" + /> + {{- end -}} </url> - {{ end }} -</urlset> + {{- end -}} +</urlset>
\ No newline at end of file diff --git a/layouts/taxonomy/list.html b/layouts/taxonomy/list.html index 412fc02..0bc9119 100644 --- a/layouts/taxonomy/list.html +++ b/layouts/taxonomy/list.html @@ -1,7 +1,7 @@ {{ define "title" }}{{ .Title }} | {{ T .Data.Singular | default (humanize .Data.Singular) }} | {{ .Site.Title }}{{ end }} {{ define "content" }} - <div class="post-warp archive"> + <div class="warpper archive"> <h2 class="post-title animated pulse faster"> {{ $taxonomy := .Data.Singular }} {{ if eq $taxonomy "category" }} diff --git a/layouts/taxonomy/terms.html b/layouts/taxonomy/terms.html index 82111bd..47b01af 100644 --- a/layouts/taxonomy/terms.html +++ b/layouts/taxonomy/terms.html @@ -5,7 +5,7 @@ {{ $terms := .Data.Terms.ByCount }} {{ $type := .Type }} - <div class="post-warp archive"> + <div class="warpper archive"> <h2 class="post-title animated pulse faster"> {{ T "all" | humanize}}{{ T $taxonomies | default $taxonomies | humanize }} </h2> diff --git a/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content b/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content index 1b561e1..a0e50b3 100644 --- a/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content +++ b/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content @@ -1 +1 @@ -/*!normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css*/@import "https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900";html{line-height:1.15;-webkit-text-size-adjust:100%}html,body,main,div,span,a,li,ul,hr,h1,h2,h3,h4,h5,h6{padding:0;margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:lato,-apple-system,BlinkMacSystemFont,helvetica neue,pingfang sc,hiragino sans gb,STHeiti,microsoft yahei,wenquanyi micro hei,Arial,Verdana,sans-serif}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-thumb{height:40px;background-color:#87878d;border-radius:16px}html::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(0,149,255,.1)}body{font-size:16px;font-weight:400;line-height:26px;background-color:#fff;color:#161209}body:before{content:"";background-repeat:no-repeat;background-position:50%;opacity:.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:98vh;width:100%}.main{flex:1 0 auto}.container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.notfound{font-size:2rem;transform:translateY(35vh);text-align:center}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 .3618em rgba(0,0,0,.05);box-shadow:0 0 0 .3618em rgba(0,0,0,.05);margin:0 auto;-webkit-transition:all ease .4s;-moz-transition:all ease .4s;-o-transition:all ease .4s;transition:all ease .4s;cursor:pointer}.home-intro .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home-intro .home-description{font-size:1rem;font-weight:400;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.4rem}.post-warp{position:relative;width:100%;max-width:960px;margin:0 auto;padding-top:6rem}.post-warp .post-title{margin:0!important;font-size:1.8rem;line-height:3rem}.post-warp .post-meta{font-size:.88rem;color:rgba(85,85,85,.52941)!important}.post-warp .post-meta span{display:inline-block}.dark-theme .post-warp .post-meta{color:#87878d!important}.post-warp .post-meta a{color:#2d96bd}.dark-theme .post-warp .post-meta a{color:#eee}.post-warp .post-meta a:hover{color:#ef3982}.dark-theme .post-warp .post-meta a:hover{color:#fff}.post-warp .post-meta .author{font-size:1.05rem}.post-warp .post-featured-image{padding-top:.6rem}.post-warp .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.post-warp .post-toc{display:block;position:absolute;width:240px;max-width:300px;margin-left:980px;padding:.8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.post-warp .post-toc .post-toc-title{font-weight:400;text-transform:uppercase}.post-warp .post-toc .post-toc-content.always-active ul{display:block}.post-warp .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.post-warp .post-toc .post-toc-content ul{padding-left:.625rem;list-style:none}.post-warp .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.post-warp .post-toc .post-toc-content ul .has-active>ul{display:block}.post-warp .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.post-warp .post-toc-mobile{display:none;padding-top:.8rem}.post-warp .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:700;line-height:2em;padding:0 .625rem;background:#f5f5f5}.post-warp .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .post-warp .post-toc-mobile details summary .post-toc-title{background:#272c34}.post-warp .post-toc-mobile details summary::-webkit-details-marker{display:none}.post-warp .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.post-warp .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.post-warp .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.post-warp .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.post-warp .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .post-warp .post-toc-mobile .post-toc-content{border:2px solid #272c34}.post-warp .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.post-warp .post-content h2,.post-warp .post-content h3,.post-warp .post-content h4,.post-warp .post-content h5,.post-warp .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.post-warp .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .post-warp .post-content h2::before{color:#eee}.post-warp .post-content h3::before,.post-warp .post-content h4::before,.post-warp .post-content h5::before,.post-warp .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .post-warp .post-content h3::before,.dark-theme .post-warp .post-content h4::before,.dark-theme .post-warp .post-content h5::before,.dark-theme .post-warp .post-content h6::before{color:#eee}.post-warp .post-content p{font-size:1rem;margin:.5rem 0;text-align:justify}.post-warp .post-content a{color:#2d96bd}.dark-theme .post-warp .post-content a{color:#eee}.post-warp .post-content a:hover{color:#ef3982}.dark-theme .post-warp .post-content a:hover:hover{color:#fff;font-weight:700}.post-warp .post-content ul{padding-left:2rem}.post-warp .post-content ruby{background:#f5f5f5}.post-warp .post-content ruby rt{color:#a9a9b3}.dark-theme .post-warp .post-content ruby{background:#272c34}.dark-theme .post-warp .post-content ruby rt{color:#87878d}.post-warp .post-content .table-wrapper{overflow-x:auto}.post-warp .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;box-shadow:2px 2px 3px rgba(0,0,0,.125);background:#fff}.dark-theme .post-warp .post-content .table-wrapper>table{background:#272c34}.post-warp .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .post-warp .post-content .table-wrapper>table thead{background-color:#20252b}.post-warp .post-content .table-wrapper>table th,.post-warp .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .post-warp .post-content .table-wrapper>table th,.dark-theme .post-warp .post-content .table-wrapper>table td{border:1px double #4a4b50}.post-warp .post-content figure{text-align:center}.post-warp .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.post-warp .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.post-warp .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em .5em;margin:0 0 2em;position:relative}.post-warp .post-content blockquote:before{content:'\201C';position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:3rem;height:2rem;font:6em/1.08em pt sans,sans-serif;color:#2d96bd;text-align:center}.dark-theme .post-warp .post-content blockquote:before{color:#eee}.post-warp .post-content blockquote:after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:.875em;color:#2d96bd}.dark-theme .post-warp .post-content blockquote:after{color:#eee}.dark-theme .post-warp .post-content blockquote{border-color:#4a4b50}.post-warp .post-content code,.post-warp .post-content pre{padding:7px;font-size:13px;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#f5f5f5}.dark-theme .post-warp .post-content code,.dark-theme .post-warp .post-content pre{background:#272c34}.post-warp .post-content code{padding:3px 5px;border-radius:4px;color:#e74c3c;background:#f5f5f5}.dark-theme .post-warp .post-content code{color:#e5bf78;background:#272c34}.post-warp .post-content p>code{background:#ededed}.dark-theme .post-warp .post-content p>code{color:#e5bf78;background:#20252b}.post-warp .post-content .highlight>.chroma{margin:1em 0;border-radius:5px;overflow-x:auto;box-shadow:1px 1px 2px rgba(0,0,0,.125);position:relative;background:#f5f5f5}.post-warp .post-content .highlight>.chroma code{padding:0}.post-warp .post-content .highlight>.chroma table{position:relative}.post-warp .post-content .highlight>.chroma table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:700;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .post-warp .post-content .highlight>.chroma table::after{background:#20252b}.post-warp .post-content .highlight>.chroma.language-bash table::after{content:"Bash"}.post-warp .post-content .highlight>.chroma.language-c table::after{content:"C"}.post-warp .post-content .highlight>.chroma.language-cs table::after{content:"C#"}.post-warp .post-content .highlight>.chroma.language-cpp table::after{content:"C++"}.post-warp .post-content .highlight>.chroma.language-css table::after{content:"CSS"}.post-warp .post-content .highlight>.chroma.language-coffeescript table::after{content:"CoffeeScript"}.post-warp .post-content .highlight>.chroma.language-html table::after{content:"HTML"}.post-warp .post-content .highlight>.chroma.language-xml table::after{content:"XML"}.post-warp .post-content .highlight>.chroma.language-http table::after{content:"HTTP"}.post-warp .post-content .highlight>.chroma.language-json table::after{content:"JSON"}.post-warp .post-content .highlight>.chroma.language-java table::after{content:"Java"}.post-warp .post-content .highlight>.chroma.language-js table::after{content:"JavaScript"}.post-warp .post-content .highlight>.chroma.language-javascript table::after{content:"JavaScript"}.post-warp .post-content .highlight>.chroma.language-makefile table::after{content:"Makefile"}.post-warp .post-content .highlight>.chroma.language-markdown table::after{content:"Markdown"}.post-warp .post-content .highlight>.chroma.language-objectivec table::after{content:"Objective-C"}.post-warp .post-content .highlight>.chroma.language-php table::after{content:"PHP"}.post-warp .post-content .highlight>.chroma.language-perl table::after{content:"Perl"}.post-warp .post-content .highlight>.chroma.language-python table::after{content:"Python"}.post-warp .post-content .highlight>.chroma.language-ruby table::after{content:"Ruby"}.post-warp .post-content .highlight>.chroma.language-sql table::after{content:"SQL"}.post-warp .post-content .highlight>.chroma.language-shell table::after{content:"Shell"}.post-warp .post-content .highlight>.chroma.language-erlang table::after{content:"Erlang"}.post-warp .post-content .highlight>.chroma.language-go table::after{content:"Go"}.post-warp .post-content .highlight>.chroma.language-go-html-template table::after{content:"Go HTML Template"}.post-warp .post-content .highlight>.chroma.language-groovy table::after{content:"Groovy"}.post-warp .post-content .highlight>.chroma.language-haskell table::after{content:"Haskell"}.post-warp .post-content .highlight>.chroma.language-kotlin table::after{content:"Kotlin"}.post-warp .post-content .highlight>.chroma.language-clojure table::after{content:"Clojure"}.post-warp .post-content .highlight>.chroma.language-less table::after{content:"Less"}.post-warp .post-content .highlight>.chroma.language-lisp table::after{content:"Lisp"}.post-warp .post-content .highlight>.chroma.language-lua table::after{content:"Lua"}.post-warp .post-content .highlight>.chroma.language-matlab table::after{content:"Matlab"}.post-warp .post-content .highlight>.chroma.language-rust table::after{content:"Rust"}.post-warp .post-content .highlight>.chroma.language-scss table::after{content:"Scss"}.post-warp .post-content .highlight>.chroma.language-scala table::after{content:"Scala"}.post-warp .post-content .highlight>.chroma.language-swift table::after{content:"Swift"}.post-warp .post-content .highlight>.chroma.language-typescript table::after{content:"TypeScript"}.post-warp .post-content .highlight>.chroma.language-yml table::after{content:"YAML"}.post-warp .post-content .highlight>.chroma.language-yaml table::after{content:"YAML"}.post-warp .post-content .highlight>.chroma.language-toml table::after{content:"TOML"}.post-warp .post-content .highlight>.chroma.language-diff table::after{content:"Diff"}.post-warp .post-content .highlight>.chroma .lntd{line-height:20px}.post-warp .post-content .highlight>.chroma .lntd:first-child{width:10px}.post-warp .post-content .highlight>.chroma .lntd:first-child pre{margin:0;padding:38px 7px 8px}.post-warp .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.post-warp .post-content .highlight>.chroma .lntd:last-child pre{margin:0;padding:38px 10px 8px}.post-warp .post-content .highlight>.chroma table,.post-warp .post-content .highlight>.chroma tr,.post-warp .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .post-warp .post-content .highlight>.chroma table,.dark-theme .post-warp .post-content .highlight>.chroma tr,.dark-theme .post-warp .post-content .highlight>.chroma td{border-color:#272c34}.post-warp .post-content .highlight>.chroma .lnt{color:#cacaca}.post-warp .post-content .highlight>.chroma .hl{display:block;width:100%;background-color:#e8e8e8}.dark-theme .post-warp .post-content .highlight>.chroma .hl{background-color:#1c2025}.post-warp .post-content .code{}.post-warp .post-content .code .p{color:#a9a9b3}.post-warp .post-content .code .k{color:#859900}.post-warp .post-content .code .kc{color:#859900;font-weight:700}.post-warp .post-content .code .kd{color:#859900}.post-warp .post-content .code .kn{color:#dc322f;font-weight:700}.post-warp .post-content .code .kp{color:#859900}.post-warp .post-content .code .kr{color:#859900}.post-warp .post-content .code .kt{color:#859900;font-weight:700}.post-warp .post-content .code .n{color:#268bd2}.post-warp .post-content .code .na{color:#268bd2}.post-warp .post-content .code .nb{color:#cb4b16}.post-warp .post-content .code .bp{color:#268bd2}.post-warp .post-content .code .nc{color:#cb4b16}.post-warp .post-content .code .no{color:#268bd2}.post-warp .post-content .code .nd{color:#268bd2}.post-warp .post-content .code .ni{color:#268bd2}.post-warp .post-content .code .ne{color:#268bd2}.post-warp .post-content .code .nf{color:#268bd2}.post-warp .post-content .code .fm{color:#268bd2}.post-warp .post-content .code .nl{color:#268bd2}.post-warp .post-content .code .nn{color:#268bd2}.post-warp .post-content .code .nx{color:#268bd2}.post-warp .post-content .code .py{color:#268bd2}.post-warp .post-content .code .nt{color:#268bd2;font-weight:700}.post-warp .post-content .code .nv{color:#268bd2}.post-warp .post-content .code .vc{color:#268bd2}.post-warp .post-content .code .vg{color:#268bd2}.post-warp .post-content .code .vi{color:#268bd2}.post-warp .post-content .code .vm{color:#268bd2}.post-warp .post-content .code .l{color:#2aa198}.post-warp .post-content .code .ld{color:#2aa198}.post-warp .post-content .code .s{color:#2aa198}.post-warp .post-content .code .sa{color:#2aa198}.post-warp .post-content .code .sb{color:#2aa198}.post-warp .post-content .code .sc{color:#2aa198}.post-warp .post-content .code .dl{color:#2aa198}.post-warp .post-content .code .sd{color:#2aa198}.post-warp .post-content .code .s2{color:#2aa198}.post-warp .post-content .code .se{color:#2aa198}.post-warp .post-content .code .sh{color:#2aa198}.post-warp .post-content .code .si{color:#2aa198}.post-warp .post-content .code .sx{color:#2aa198}.post-warp .post-content .code .sr{color:#2aa198}.post-warp .post-content .code .s1{color:#2aa198}.post-warp .post-content .code .ss{color:#2aa198}.post-warp .post-content .code .m{color:#2aa198;font-weight:700}.post-warp .post-content .code .mb{color:#2aa198;font-weight:700}.post-warp .post-content .code .mf{color:#2aa198;font-weight:700}.post-warp .post-content .code .mh{color:#2aa198;font-weight:700}.post-warp .post-content .code .mi{color:#2aa198;font-weight:700}.post-warp .post-content .code .il{color:#2aa198;font-weight:700}.post-warp .post-content .code .mo{color:#2aa198;font-weight:700}.post-warp .post-content .code .ow{color:#859900}.post-warp .post-content .code .c{color:#93a1a1;font-style:italic}.post-warp .post-content .code .ch{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cm{color:#93a1a1;font-style:italic}.post-warp .post-content .code .c1{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cs{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cp{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cpf{color:#93a1a1;font-style:italic}.post-warp .post-content .code .g{color:#d33682}.post-warp .post-content .code .gd{color:#b58900}.post-warp .post-content .code .ge{color:#d33682}.post-warp .post-content .code .gr{color:#d33682}.post-warp .post-content .code .gh{color:#d33682}.post-warp .post-content .code .gi{color:#859900}.post-warp .post-content .code .go{color:#d33682}.post-warp .post-content .code .gp{color:#d33682}.post-warp .post-content .code .gs{color:#d33682}.post-warp .post-content .code .gu{color:#d33682}.post-warp .post-content .code .gt{color:#d33682}.dark-theme .post-warp .post-content .code{background:#272c34}.dark-theme .post-warp .post-content .code .p{color:#a9a9b3}.dark-theme .post-warp .post-content .code .k{color:#d371e3}.dark-theme .post-warp .post-content .code .kc{color:#d371e3}.dark-theme .post-warp .post-content .code .kd{color:#d371e3}.dark-theme .post-warp .post-content .code .kn{color:#d371e3}.dark-theme .post-warp .post-content .code .kp{color:#d371e3}.dark-theme .post-warp .post-content .code .kr{color:#d371e3}.dark-theme .post-warp .post-content .code .kt{color:#8be9fd}.dark-theme .post-warp .post-content .code .na{color:#41b1f5}.dark-theme .post-warp .post-content .code .nb{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .nc{color:#e5bf78}.dark-theme .post-warp .post-content .code .nf{color:#19b8c0}.dark-theme .post-warp .post-content .code .nx{color:#f16473}.dark-theme .post-warp .post-content .code .nl{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .nt{color:#d371e3}.dark-theme .post-warp .post-content .code .nv{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vc{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vg{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vi{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .s{color:#8bc56f}.dark-theme .post-warp .post-content .code .sa{color:#8bc56f}.dark-theme .post-warp .post-content .code .sb{color:#8bc56f}.dark-theme .post-warp .post-content .code .sc{color:#8bc56f}.dark-theme .post-warp .post-content .code .dl{color:#8bc56f}.dark-theme .post-warp .post-content .code .sd{color:#8bc56f}.dark-theme .post-warp .post-content .code .s2{color:#8bc56f}.dark-theme .post-warp .post-content .code .se{color:#8bc56f}.dark-theme .post-warp .post-content .code .sh{color:#8bc56f}.dark-theme .post-warp .post-content .code .si{color:#8bc56f}.dark-theme .post-warp .post-content .code .sx{color:#8bc56f}.dark-theme .post-warp .post-content .code .sr{color:#8bc56f}.dark-theme .post-warp .post-content .code .s1{color:#8bc56f}.dark-theme .post-warp .post-content .code .ss{color:#8bc56f}.dark-theme .post-warp .post-content .code .m{color:#bd93f9}.dark-theme .post-warp .post-content .code .mb{color:#bd93f9}.dark-theme .post-warp .post-content .code .mf{color:#bd93f9}.dark-theme .post-warp .post-content .code .mh{color:#bd93f9}.dark-theme .post-warp .post-content .code .mi{color:#bd93f9}.dark-theme .post-warp .post-content .code .il{color:#bd93f9}.dark-theme .post-warp .post-content .code .mo{color:#bd93f9}.dark-theme .post-warp .post-content .code .o{color:#d371e3}.dark-theme .post-warp .post-content .code .ow{color:#d371e3}.dark-theme .post-warp .post-content .code .c{color:#7e848f}.dark-theme .post-warp .post-content .code .ch{color:#7e848f}.dark-theme .post-warp .post-content .code .cm{color:#7e848f}.dark-theme .post-warp .post-content .code .c1{color:#7e848f}.dark-theme .post-warp .post-content .code .cs{color:#7e848f}.dark-theme .post-warp .post-content .code .cp{color:#d371e3}.dark-theme .post-warp .post-content .code .cpf{color:#d371e3}.dark-theme .post-warp .post-content .code .gd{color:#8b080b}.dark-theme .post-warp .post-content .code .ge{text-decoration:underline}.dark-theme .post-warp .post-content .code .gh{font-weight:700}.dark-theme .post-warp .post-content .code .gi{font-weight:700}.dark-theme .post-warp .post-content .code .go{color:#44475a}.dark-theme .post-warp .post-content .code .gu{font-weight:700}.dark-theme .post-warp .post-content .code .gl{text-decoration:underline}.post-warp .post-content .admonition{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:.9765em 0;padding:0 .75rem;border-left:.25rem solid #448aff;border-radius:.125rem;overflow:auto}.post-warp .post-content .admonition .admonition-title{margin:0 -.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:.1rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}.post-warp .post-content .admonition i.icon{font-size:16px;cursor:auto;position:absolute;left:.75rem;top:.75rem}.post-warp .post-content .admonition.note{border-left-color:#448aff}.post-warp .post-content .admonition.note i.icon{color:#448aff}.post-warp .post-content .admonition.abstract{border-left-color:#00b0ff}.post-warp .post-content .admonition.abstract .admonition-title{background-color:rgba(0,176,255,.1)}.post-warp .post-content .admonition.abstract i.icon{color:#00b0ff}.post-warp .post-content .admonition.info{border-left-color:#00b8d4}.post-warp .post-content .admonition.info .admonition-title{background-color:rgba(0,184,212,.1)}.post-warp .post-content .admonition.info i.icon{color:#00b8d4}.post-warp .post-content .admonition.tip{border-left-color:#00bfa5}.post-warp .post-content .admonition.tip .admonition-title{background-color:rgba(0,191,165,.1)}.post-warp .post-content .admonition.tip i.icon{color:#00bfa5}.post-warp .post-content .admonition.success{border-left-color:#00c853}.post-warp .post-content .admonition.success .admonition-title{background-color:rgba(0,200,83,.1)}.post-warp .post-content .admonition.success i.icon{color:#00c853}.post-warp .post-content .admonition.question{border-left-color:#64dd17}.post-warp .post-content .admonition.question .admonition-title{background-color:rgba(100,221,23,.1)}.post-warp .post-content .admonition.question i.icon{color:#64dd17}.post-warp .post-content .admonition.warning{border-left-color:#ff9100}.post-warp .post-content .admonition.warning .admonition-title{background-color:rgba(255,145,0,.1)}.post-warp .post-content .admonition.warning i.icon{color:#ff9100}.post-warp .post-content .admonition.failure{border-left-color:#ff5252}.post-warp .post-content .admonition.failure .admonition-title{background-color:rgba(255,82,82,.1)}.post-warp .post-content .admonition.failure i.icon{color:#ff5252}.post-warp .post-content .admonition.danger{border-left-color:#ff1744}.post-warp .post-content .admonition.danger .admonition-title{background-color:rgba(255,23,68,.1)}.post-warp .post-content .admonition.danger i.icon{color:#ff1744}.post-warp .post-content .admonition.bug{border-left-color:#f50057}.post-warp .post-content .admonition.bug .admonition-title{background-color:rgba(245,0,87,.1)}.post-warp .post-content .admonition.bug i.icon{color:#f50057}.post-warp .post-content .admonition.example{border-left-color:#651fff}.post-warp .post-content .admonition.example .admonition-title{background-color:rgba(101,31,255,.1)}.post-warp .post-content .admonition.example i.icon{color:#651fff}.post-warp .post-content .admonition.quote{border-left-color:#9e9e9e}.post-warp .post-content .admonition.quote .admonition-title{background-color:rgba(158,158,158,.1)}.post-warp .post-content .admonition.quote i.icon{color:#9e9e9e}.post-warp .post-content .admonition:last-child{margin-bottom:.75rem}.post-warp .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.post-warp .post-content details.admonition summary::-webkit-details-marker{display:none}.post-warp .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .post-warp .post-content details.admonition summary i.details{color:#a9a9b3}.post-warp .post-content details.admonition[open] i.details{transform:rotate(180deg)}.post-warp .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.post-warp .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.post-warp .post-content .mermaid .label text{fill:#333}.post-warp .post-content .mermaid .node rect,.post-warp .post-content .mermaid .node circle,.post-warp .post-content .mermaid .node ellipse,.post-warp .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.post-warp .post-content .mermaid .node .label{text-align:center}.post-warp .post-content .mermaid .node.clickable{cursor:pointer}.post-warp .post-content .mermaid .arrowheadPath{fill:#333}.post-warp .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.post-warp .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.post-warp .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.post-warp .post-content .mermaid .cluster text{fill:#333}.post-warp .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.post-warp .post-content .mermaid .actor{stroke:#999;fill:#eee}.post-warp .post-content .mermaid text.actor{fill:#333;stroke:none}.post-warp .post-content .mermaid .actor-line{stroke:#666}.post-warp .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.post-warp .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.post-warp .post-content .mermaid #arrowhead{fill:#333}.post-warp .post-content .mermaid .sequenceNumber{fill:#fff}.post-warp .post-content .mermaid #sequencenumber{fill:#333}.post-warp .post-content .mermaid #crosshead path{fill:#333!important;stroke:#333!important}.post-warp .post-content .mermaid .messageText{fill:#333;stroke:none}.post-warp .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.post-warp .post-content .mermaid .labelText{fill:#333;stroke:none}.post-warp .post-content .mermaid .loopText{fill:#333;stroke:none}.post-warp .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.post-warp .post-content .mermaid .note{stroke:#770;fill:#ffa}.post-warp .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.post-warp .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .section{stroke:none;opacity:.2}.post-warp .post-content .mermaid .section0{fill:#80b3e6}.post-warp .post-content .mermaid .section2{fill:#80b3e6}.post-warp .post-content .mermaid .section1,.post-warp .post-content .mermaid .section3{fill:#fff;opacity:.2}.post-warp .post-content .mermaid .sectionTitle0{fill:#333}.post-warp .post-content .mermaid .sectionTitle1{fill:#333}.post-warp .post-content .mermaid .sectionTitle2{fill:#333}.post-warp .post-content .mermaid .sectionTitle3{fill:#333}.post-warp .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:.3;shape-rendering:crispEdges}.post-warp .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .grid path{stroke-width:0}.post-warp .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.post-warp .post-content .mermaid .task{stroke-width:2}.post-warp .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .taskText:not([font-size]){font-size:11px}.post-warp .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.post-warp .post-content .mermaid .task.clickable{cursor:pointer}.post-warp .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskText0,.post-warp .post-content .mermaid .taskText1,.post-warp .post-content .mermaid .taskText2,.post-warp .post-content .mermaid .taskText3{fill:#fff}.post-warp .post-content .mermaid .task0,.post-warp .post-content .mermaid .task1,.post-warp .post-content .mermaid .task2,.post-warp .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.post-warp .post-content .mermaid .taskTextOutside0,.post-warp .post-content .mermaid .taskTextOutside2{fill:#333}.post-warp .post-content .mermaid .taskTextOutside1,.post-warp .post-content .mermaid .taskTextOutside3{fill:#333}.post-warp .post-content .mermaid .active0,.post-warp .post-content .mermaid .active1,.post-warp .post-content .mermaid .active2,.post-warp .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.post-warp .post-content .mermaid .activeText0,.post-warp .post-content .mermaid .activeText1,.post-warp .post-content .mermaid .activeText2,.post-warp .post-content .mermaid .activeText3{fill:#333!important}.post-warp .post-content .mermaid .done0,.post-warp .post-content .mermaid .done1,.post-warp .post-content .mermaid .done2,.post-warp .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.post-warp .post-content .mermaid .doneText0,.post-warp .post-content .mermaid .doneText1,.post-warp .post-content .mermaid .doneText2,.post-warp .post-content .mermaid .doneText3{fill:#333!important}.post-warp .post-content .mermaid .crit0,.post-warp .post-content .mermaid .crit1,.post-warp .post-content .mermaid .crit2,.post-warp .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.post-warp .post-content .mermaid .activeCrit0,.post-warp .post-content .mermaid .activeCrit1,.post-warp .post-content .mermaid .activeCrit2,.post-warp .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.post-warp .post-content .mermaid .doneCrit0,.post-warp .post-content .mermaid .doneCrit1,.post-warp .post-content .mermaid .doneCrit2,.post-warp .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.post-warp .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.post-warp .post-content .mermaid .milestoneText{font-style:italic}.post-warp .post-content .mermaid .doneCritText0,.post-warp .post-content .mermaid .doneCritText1,.post-warp .post-content .mermaid .doneCritText2,.post-warp .post-content .mermaid .doneCritText3{fill:#333!important}.post-warp .post-content .mermaid .activeCritText0,.post-warp .post-content .mermaid .activeCritText1,.post-warp .post-content .mermaid .activeCritText2,.post-warp .post-content .mermaid .activeCritText3{fill:#333!important}.post-warp .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.post-warp .post-content .mermaid g.classGroup text .title{font-weight:bolder}.post-warp .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.post-warp .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.post-warp .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.post-warp .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.post-warp .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .commit-id,.post-warp .post-content .mermaid .commit-msg,.post-warp .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.post-warp .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.post-warp .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.post-warp .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.post-warp .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.post-warp .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.post-warp .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.post-warp .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.post-warp .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .post-warp .post-content .mermaid{}.dark-theme .post-warp .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .post-warp .post-content .mermaid .label text{fill:#333}.dark-theme .post-warp .post-content .mermaid .node rect,.dark-theme .post-warp .post-content .mermaid .node circle,.dark-theme .post-warp .post-content .mermaid .node ellipse,.dark-theme .post-warp .post-content .mermaid .node polygon{fill:#bdd5ea;stroke:purple;stroke-width:1px}.dark-theme .post-warp .post-content .mermaid .node .label{text-align:center}.dark-theme .post-warp .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .post-warp .post-content .mermaid .arrowheadPath{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .edgePath .path{stroke:lightgrey;stroke-width:1.5px}.dark-theme .post-warp .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .post-warp .post-content .mermaid .cluster rect{fill:#6d6d65;stroke:rgba(255,255,255,.25);stroke-width:1px}.dark-theme .post-warp .post-content .mermaid .cluster text{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6d6d65;border:1px solid rgba(255,255,255,.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .post-warp .post-content .mermaid .actor{stroke:#81b1db;fill:#bdd5ea}.dark-theme .post-warp .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .post-warp .post-content .mermaid .actor-line{stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid #arrowhead{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .post-warp .post-content .mermaid #sequencenumber{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid #crosshead path{fill:lightgrey!important;stroke:lightgrey!important}.dark-theme .post-warp .post-content .mermaid .messageText{fill:lightgrey;stroke:none}.dark-theme .post-warp .post-content .mermaid .labelBox{stroke:#81b1db;fill:#bdd5ea}.dark-theme .post-warp .post-content .mermaid .labelText{fill:#323d47;stroke:none}.dark-theme .post-warp .post-content .mermaid .loopText{fill:lightgrey;stroke:none}.dark-theme .post-warp .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81b1db}.dark-theme .post-warp .post-content .mermaid .note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .post-warp .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .post-warp .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .section{stroke:none;opacity:.2}.dark-theme .post-warp .post-content .mermaid .section0{fill:rgba(255,255,255,.3)}.dark-theme .post-warp .post-content .mermaid .section2{fill:#eae8b9}.dark-theme .post-warp .post-content .mermaid .section1,.dark-theme .post-warp .post-content .mermaid .section3{fill:#fff;opacity:.2}.dark-theme .post-warp .post-content .mermaid .sectionTitle0{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle1{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle2{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle3{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .grid .tick{stroke:lightgrey;opacity:.3;shape-rendering:crispEdges}.dark-theme .post-warp .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .grid path{stroke-width:0}.dark-theme .post-warp .post-content .mermaid .today{fill:none;stroke:#db5757;stroke-width:2px}.dark-theme .post-warp .post-content .mermaid .task{stroke-width:2}.dark-theme .post-warp .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideRight{fill:#323d47;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideLeft{fill:#323d47;text-anchor:end;font-size:11px}.dark-theme .post-warp .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .post-warp .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskText0,.dark-theme .post-warp .post-content .mermaid .taskText1,.dark-theme .post-warp .post-content .mermaid .taskText2,.dark-theme .post-warp .post-content .mermaid .taskText3{fill:#323d47}.dark-theme .post-warp .post-content .mermaid .task0,.dark-theme .post-warp .post-content .mermaid .task1,.dark-theme .post-warp .post-content .mermaid .task2,.dark-theme .post-warp .post-content .mermaid .task3{fill:#bdd5ea;stroke:rgba(255,255,255,.5)}.dark-theme .post-warp .post-content .mermaid .taskTextOutside0,.dark-theme .post-warp .post-content .mermaid .taskTextOutside2{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .taskTextOutside1,.dark-theme .post-warp .post-content .mermaid .taskTextOutside3{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .active0,.dark-theme .post-warp .post-content .mermaid .active1,.dark-theme .post-warp .post-content .mermaid .active2,.dark-theme .post-warp .post-content .mermaid .active3{fill:#81b1db;stroke:rgba(255,255,255,.5)}.dark-theme .post-warp .post-content .mermaid .activeText0,.dark-theme .post-warp .post-content .mermaid .activeText1,.dark-theme .post-warp .post-content .mermaid .activeText2,.dark-theme .post-warp .post-content .mermaid .activeText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .done0,.dark-theme .post-warp .post-content .mermaid .done1,.dark-theme .post-warp .post-content .mermaid .done2,.dark-theme .post-warp .post-content .mermaid .done3{stroke:grey;fill:lightgrey;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .doneText0,.dark-theme .post-warp .post-content .mermaid .doneText1,.dark-theme .post-warp .post-content .mermaid .doneText2,.dark-theme .post-warp .post-content .mermaid .doneText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .crit0,.dark-theme .post-warp .post-content .mermaid .crit1,.dark-theme .post-warp .post-content .mermaid .crit2,.dark-theme .post-warp .post-content .mermaid .crit3{stroke:#e83737;fill:#e83737;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .activeCrit0,.dark-theme .post-warp .post-content .mermaid .activeCrit1,.dark-theme .post-warp .post-content .mermaid .activeCrit2,.dark-theme .post-warp .post-content .mermaid .activeCrit3{stroke:#e83737;fill:#81b1db;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .doneCrit0,.dark-theme .post-warp .post-content .mermaid .doneCrit1,.dark-theme .post-warp .post-content .mermaid .doneCrit2,.dark-theme .post-warp .post-content .mermaid .doneCrit3{stroke:#e83737;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .post-warp .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.dark-theme .post-warp .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .post-warp .post-content .mermaid .doneCritText0,.dark-theme .post-warp .post-content .mermaid .doneCritText1,.dark-theme .post-warp .post-content .mermaid .doneCritText2,.dark-theme .post-warp .post-content .mermaid .doneCritText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .activeCritText0,.dark-theme .post-warp .post-content .mermaid .activeCritText1,.dark-theme .post-warp .post-content .mermaid .activeCritText2,.dark-theme .post-warp .post-content .mermaid .activeCritText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .post-warp .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .post-warp .post-content .mermaid g.classGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .post-warp .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .post-warp .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .post-warp .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .post-warp .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #aggregationStart{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #aggregationEnd{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .commit-id,.dark-theme .post-warp .post-content .mermaid .commit-msg,.dark-theme .post-warp .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .post-warp .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .post-warp .post-content .mermaid g.stateGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .post-warp .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .post-warp .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.dark-theme .post-warp .post-content .mermaid .state-note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .post-warp .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.dark-theme .post-warp .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .post-warp .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .post-warp .post-content .aplayer{background:#212121}.dark-theme .post-warp .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .post-warp .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .post-warp .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .post-warp .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .post-warp .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .post-warp .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .post-warp .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .post-warp .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .post-warp .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .post-warp .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top,#212121 0%,rgba(255,255,255,0) 100%);background:-webkit-linear-gradient(top,#212121 0%,rgba(255,255,255,0) 100%);background:linear-gradient(to bottom,#212121 0%,rgba(255,255,255,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121',endColorstr='#00212121',GradientType=0 )}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121',endColorstr='#cc212121',GradientType=0 )}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .post-warp .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.post-warp .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.post-warp .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.post-warp .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.post-warp .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .post-warp .post-content hr{border-top:1px dashed #4a4b50}.post-warp .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;color:#e74c3c}.dark-theme .post-warp .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#e5bf78}.post-warp .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Consolas,Monaco,Menlo,Consolas,monospace;font-weight:700;word-break:break-all}.post-warp .post-content .typeit .code .k{color:#d371e3}.post-warp .post-content .typeit .code .kt{color:#d371e3}.post-warp .post-content .typeit .code .kc{color:#d371e3}.post-warp .post-content .typeit .code .o{color:#d371e3}.post-warp .post-content .typeit .code .nf{color:#f16473}.post-warp .post-content .typeit .code .na{color:#41b1f5}.post-warp .post-content .typeit .code .s{color:#8bc56f}.post-warp .post-content .typeit .code .n{color:#db975c}.post-warp .post-content .typeit .code .c1{color:#7e848f}.post-warp .post-content .align-left{text-align:left}.post-warp .post-content .align-center{text-align:center}.post-warp .post-content .align-right{text-align:right}.post-warp .post-content .float-left{float:left}.post-warp .post-content .float-right{float:right}.post-warp .post-footer{margin-top:3rem}.post-warp .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 .3rem}.dark-theme .post-warp .post-footer .post-info{border-bottom:1px solid #4a4b50}.post-warp .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.post-warp .post-footer .post-info .post-info-line .post-info-mod{font-size:.8em;color:#a9a9b3}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-mod{color:#87878d}.post-warp .post-footer .post-info .post-info-line .post-info-license{font-size:.8em;color:#a9a9b3}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-license{color:#87878d}.post-warp .post-footer .post-info .post-info-line .post-info-md a{font-size:.8em;color:#2d96bd}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.post-warp .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-md a:hover{color:#fff}.post-warp .post-footer .post-info-more{padding:.3rem 0 1rem;display:flex;justify-content:space-between;font-size:.9rem}.post-warp .post-footer .post-nav:before,.post-warp .post-footer .post-nav:after{content:" ";display:table}.post-warp .post-footer .post-nav a.prev,.post-warp .post-footer .post-nav a.next{font-weight:600;font-size:1rem;transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s}.post-warp .post-footer .post-nav a.prev{float:left}.post-warp .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.post-warp .post-footer .post-nav a.next{float:right}.post-warp .post-footer .post-nav a.next:hover{transform:translateX(4px)}.post-warp .post-comment{padding:4rem 0}.post-warp .home-intro{transform:translateY(0);padding:2rem 0}.post-warp .home-intro .home-avatar img{width:6rem}.post-warp .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .post-warp .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.post-warp .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin-bottom:1rem}.post-warp .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.post-warp .post .post-list-title{font-size:1.6rem}.post-warp .post .post-meta{font-size:.875rem!important}.post-warp .post .post-meta a{color:#a9a9b3!important}.dark-theme .post-warp .post .post-meta a{color:#87878d!important}.post-warp .post .post-meta a:hover{color:#2d96bd!important}.dark-theme .post-warp .post .post-meta a:hover{color:#fff!important}.post-warp .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.post-warp .post .post-content h2,.post-warp .post .post-content h3,.post-warp .post .post-content h4,.post-warp .post .post-content h5,.post-warp .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.post-warp .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.post-warp .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem!important}.post-warp .post .post-footer a{color:#2d96bd!important}.dark-theme .post-warp .post .post-footer a{color:#eee!important}.post-warp .post .post-footer a:hover{color:#ef3982!important}.dark-theme .post-warp .post .post-footer a:hover{color:#fff!important}.post-warp .post .post-footer .post-tags{padding:0}.post-warp .post .post-footer .post-tags a{color:#161209!important}.dark-theme .post-warp .post .post-footer .post-tags a{color:#a9a9b3!important}.post-warp .post .post-footer .post-tags a:hover{color:#2d96bd!important}.dark-theme .post-warp .post .post-footer .post-tags a:hover{color:#fff!important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .categories{width:100%;overflow:hidden}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#87878d}.archive .more-post{text-align:right}.archive .categories h3{display:inline-block}.archive .categories span{float:right;padding-right:1rem}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 6rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all .3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s,.2s transform;-moz-transition:.2s margin .2s,.2s transform;transition:.2s margin .2s,.2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin,.2s transform .2s;-moz-transition:.2s margin,.2s transform .2s;transition:.2s margin,.2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg)translate(4px,6px);-ms-transform:rotate(45deg)translate(4px,6px);-webkit-transform:rotate(45deg)translate(4px,6px);transform:rotate(45deg)translate(4px,6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg)translate(8px,-10px);-ms-transform:rotate(-45deg)translate(8px,-10px);-webkit-transform:rotate(-45deg)translate(8px,-10px);transform:rotate(-45deg)translate(8px,-10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0 2px 4px rgba(0,0,0,.1),0 4px 8px rgba(0,0,0,.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:700;padding:1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==)no-repeat 50%}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px;text-decoration:none;transition:.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:.3s;bottom:0}.dark-theme .pagination li:before,.dark-theme .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width:1800px){.post-warp{max-width:780px}.post-warp .post-toc{margin-left:800px}}@media only screen and (max-width:1300px){.post-warp{max-width:560px}.post-warp .post-toc{margin-left:580px}}@media only screen and (max-width:1080px){.navbar .navbar-container{margin:0 2rem}.post-warp{max-width:80%}.post-warp .post-toc{display:none}.post-warp .post-toc-mobile{display:block}}@media only screen and (max-width:480px){.navbar{display:none}.navbar-mobile{display:block}.post-warp{max-width:100%}.post-warp .categories-card .card-item{width:95%}.dynamic-to-top{display:none!important}}
\ No newline at end of file +@import "https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900";/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:Lato,-apple-system,BlinkMacSystemFont,PingFang-SC-Regular,Hiragino Sans GB,Microsoft Yahei,Arial,sans-serif}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-thumb{height:40px;background-color:#87878d;border-radius:16px}html::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(0,149,255,.1)}body{font-size:16px;font-weight:400;line-height:26px;background-color:#fff;color:#161209}body:before{content:"";background-repeat:no-repeat;background-position:50%;opacity:.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:98vh;width:100%}.main{flex:1 0 auto}.container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.notfound{font-size:2rem;transform:translateY(35vh);text-align:center}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 .3618em rgba(0,0,0,.05);box-shadow:0 0 0 .3618em rgba(0,0,0,.05);margin:0 auto;-webkit-transition:all ease .4s;-moz-transition:all ease .4s;-o-transition:all ease .4s;transition:all ease .4s;cursor:pointer}.home-intro .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home-intro .home-description{font-size:1rem;font-weight:400;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.4rem}.warpper{position:relative;width:100%;max-width:960px;margin:0 auto;padding-top:6rem}.warpper .post-title{margin:0!important;font-size:1.8rem;line-height:3rem}.warpper .post-meta{font-size:.88rem;color:#a9a9b3}.warpper .post-meta span{display:inline-block}.dark-theme .warpper .post-meta{color:#87878d}.warpper .post-meta a{color:#2d96bd}.dark-theme .warpper .post-meta a{color:#eee}.warpper .post-meta a:hover{color:#ef3982}.dark-theme .warpper .post-meta a:hover{color:#2d96bd}.warpper .post-meta .author{font-size:1.05rem}.warpper .post-featured-image{padding-top:.6rem}.warpper .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.warpper .post-toc{display:block;position:absolute;width:240px;max-width:300px;margin-left:980px;padding:.8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.warpper .post-toc .post-toc-title{font-weight:400;text-transform:uppercase}.warpper .post-toc .post-toc-content.always-active ul{display:block}.warpper .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.warpper .post-toc .post-toc-content ul{padding-left:.625rem;list-style:none}.warpper .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.warpper .post-toc .post-toc-content ul .has-active>ul{display:block}.warpper .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.warpper .post-toc-mobile{display:none;padding-top:.8rem}.warpper .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:700;line-height:2em;padding:0 .625rem;background:#f5f5f5}.warpper .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .warpper .post-toc-mobile details summary .post-toc-title{background:#272c34}.warpper .post-toc-mobile details summary::-webkit-details-marker{display:none}.warpper .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.warpper .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.warpper .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.warpper .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.warpper .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .warpper .post-toc-mobile .post-toc-content{border:2px solid #272c34}.warpper .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.warpper .post-content h2,.warpper .post-content h3,.warpper .post-content h4,.warpper .post-content h5,.warpper .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.warpper .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .warpper .post-content h2::before{color:#eee}.warpper .post-content h3::before,.warpper .post-content h4::before,.warpper .post-content h5::before,.warpper .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .warpper .post-content h3::before,.dark-theme .warpper .post-content h4::before,.dark-theme .warpper .post-content h5::before,.dark-theme .warpper .post-content h6::before{color:#eee}.warpper .post-content p{font-size:1rem;margin:.5rem 0;text-align:justify}.warpper .post-content a{color:#2d96bd}.dark-theme .warpper .post-content a{color:#eee}.warpper .post-content a:hover{color:#ef3982}.dark-theme .warpper .post-content a:hover:hover{color:#2d96bd;font-weight:700}.warpper .post-content ul{padding-left:2rem}.warpper .post-content ruby{background:#f5f5f5}.warpper .post-content ruby rt{color:#a9a9b3}.dark-theme .warpper .post-content ruby{background:#272c34}.dark-theme .warpper .post-content ruby rt{color:#87878d}.warpper .post-content .table-wrapper{overflow-x:auto}.warpper .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff}.dark-theme .warpper .post-content .table-wrapper>table{background:#272c34}.warpper .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .warpper .post-content .table-wrapper>table thead{background-color:#20252b}.warpper .post-content .table-wrapper>table th,.warpper .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .warpper .post-content .table-wrapper>table th,.dark-theme .warpper .post-content .table-wrapper>table td{border:1px double #4a4b50}.warpper .post-content figure{text-align:center}.warpper .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.warpper .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.warpper .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em .5em;margin:0 0 2em;position:relative}.warpper .post-content blockquote::before{content:'\201C';position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:3rem;height:2rem;font:6em/1.08em pt sans,sans-serif;color:#2d96bd;text-align:center}.dark-theme .warpper .post-content blockquote::before{color:#eee}.warpper .post-content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:.875em;color:#2d96bd}.dark-theme .warpper .post-content blockquote::after{color:#eee}.dark-theme .warpper .post-content blockquote{border-color:#4a4b50}.warpper .post-content .footnotes{color:#a9a9b3}.dark-theme .warpper .post-content .footnotes{color:#87878d}.warpper .post-content code,.warpper .post-content pre{padding:7px;font-size:13px;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;background:#f5f5f5}.dark-theme .warpper .post-content code,.dark-theme .warpper .post-content pre{background:#272c34}.warpper .post-content code{padding:3px 5px;border-radius:4px;color:#e74c3c;background:#f5f5f5}.dark-theme .warpper .post-content code{color:#e5bf78;background:#272c34}.warpper .post-content p>code{background:#ededed}.dark-theme .warpper .post-content p>code{color:#e5bf78;background:#20252b}.warpper .post-content .highlight>.chroma{margin:1em 0;border-radius:6px;overflow-x:auto;position:relative;background:#f5f5f5}.warpper .post-content .highlight>.chroma code{padding:0}.warpper .post-content .highlight>.chroma table{position:relative}.warpper .post-content .highlight>.chroma table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:700;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .warpper .post-content .highlight>.chroma table::after{background:#20252b}.warpper .post-content .highlight>.chroma .language-bash table::after{content:"Bash"}.warpper .post-content .highlight>.chroma .language-c table::after{content:"C"}.warpper .post-content .highlight>.chroma .language-cs table::after{content:"C#"}.warpper .post-content .highlight>.chroma .language-cpp table::after{content:"C++"}.warpper .post-content .highlight>.chroma .language-css table::after{content:"CSS"}.warpper .post-content .highlight>.chroma .language-coffeescript table::after{content:"CoffeeScript"}.warpper .post-content .highlight>.chroma .language-html table::after{content:"HTML"}.warpper .post-content .highlight>.chroma .language-xml table::after{content:"XML"}.warpper .post-content .highlight>.chroma .language-http table::after{content:"HTTP"}.warpper .post-content .highlight>.chroma .language-json table::after{content:"JSON"}.warpper .post-content .highlight>.chroma .language-java table::after{content:"Java"}.warpper .post-content .highlight>.chroma .language-js table::after{content:"JavaScript"}.warpper .post-content .highlight>.chroma .language-javascript table::after{content:"JavaScript"}.warpper .post-content .highlight>.chroma .language-makefile table::after{content:"Makefile"}.warpper .post-content .highlight>.chroma .language-markdown table::after{content:"Markdown"}.warpper .post-content .highlight>.chroma .language-objectivec table::after{content:"Objective-C"}.warpper .post-content .highlight>.chroma .language-php table::after{content:"PHP"}.warpper .post-content .highlight>.chroma .language-perl table::after{content:"Perl"}.warpper .post-content .highlight>.chroma .language-python table::after{content:"Python"}.warpper .post-content .highlight>.chroma .language-ruby table::after{content:"Ruby"}.warpper .post-content .highlight>.chroma .language-sql table::after{content:"SQL"}.warpper .post-content .highlight>.chroma .language-shell table::after{content:"Shell"}.warpper .post-content .highlight>.chroma .language-erlang table::after{content:"Erlang"}.warpper .post-content .highlight>.chroma .language-go table::after{content:"Go"}.warpper .post-content .highlight>.chroma .language-go-html-template table::after{content:"Go HTML Template"}.warpper .post-content .highlight>.chroma .language-groovy table::after{content:"Groovy"}.warpper .post-content .highlight>.chroma .language-haskell table::after{content:"Haskell"}.warpper .post-content .highlight>.chroma .language-kotlin table::after{content:"Kotlin"}.warpper .post-content .highlight>.chroma .language-clojure table::after{content:"Clojure"}.warpper .post-content .highlight>.chroma .language-less table::after{content:"Less"}.warpper .post-content .highlight>.chroma .language-lisp table::after{content:"Lisp"}.warpper .post-content .highlight>.chroma .language-lua table::after{content:"Lua"}.warpper .post-content .highlight>.chroma .language-matlab table::after{content:"Matlab"}.warpper .post-content .highlight>.chroma .language-rust table::after{content:"Rust"}.warpper .post-content .highlight>.chroma .language-scss table::after{content:"Scss"}.warpper .post-content .highlight>.chroma .language-scala table::after{content:"Scala"}.warpper .post-content .highlight>.chroma .language-swift table::after{content:"Swift"}.warpper .post-content .highlight>.chroma .language-typescript table::after{content:"TypeScript"}.warpper .post-content .highlight>.chroma .language-yml table::after{content:"YAML"}.warpper .post-content .highlight>.chroma .language-yaml table::after{content:"YAML"}.warpper .post-content .highlight>.chroma .language-toml table::after{content:"TOML"}.warpper .post-content .highlight>.chroma .language-diff table::after{content:"Diff"}.warpper .post-content .highlight>.chroma .lntd{line-height:20px}.warpper .post-content .highlight>.chroma .lntd:first-child{width:10px}.warpper .post-content .highlight>.chroma .lntd:first-child pre{margin:0;padding:38px 7px 8px}.warpper .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.warpper .post-content .highlight>.chroma .lntd:last-child pre{margin:0;padding:38px 10px 8px}.warpper .post-content .highlight>.chroma table,.warpper .post-content .highlight>.chroma tr,.warpper .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .warpper .post-content .highlight>.chroma table,.dark-theme .warpper .post-content .highlight>.chroma tr,.dark-theme .warpper .post-content .highlight>.chroma td{border-color:#272c34}.warpper .post-content .highlight>.chroma .lnt{color:#cacaca}.warpper .post-content .highlight>.chroma .hl{display:block;width:100%;background-color:#e8e8e8}.dark-theme .warpper .post-content .highlight>.chroma .hl{background-color:#1c2025}.warpper .post-content .highlight{}.warpper .post-content .highlight .p{color:#a9a9b3}.warpper .post-content .highlight .k{color:#859900}.warpper .post-content .highlight .kc{color:#859900;font-weight:700}.warpper .post-content .highlight .kd{color:#859900}.warpper .post-content .highlight .kn{color:#dc322f;font-weight:700}.warpper .post-content .highlight .kp{color:#859900}.warpper .post-content .highlight .kr{color:#859900}.warpper .post-content .highlight .kt{color:#859900;font-weight:700}.warpper .post-content .highlight .n{color:#268bd2}.warpper .post-content .highlight .na{color:#268bd2}.warpper .post-content .highlight .nb{color:#cb4b16}.warpper .post-content .highlight .bp{color:#268bd2}.warpper .post-content .highlight .nc{color:#cb4b16}.warpper .post-content .highlight .no{color:#268bd2}.warpper .post-content .highlight .nd{color:#268bd2}.warpper .post-content .highlight .ni{color:#268bd2}.warpper .post-content .highlight .ne{color:#268bd2}.warpper .post-content .highlight .nf{color:#268bd2}.warpper .post-content .highlight .fm{color:#268bd2}.warpper .post-content .highlight .nl{color:#268bd2}.warpper .post-content .highlight .nn{color:#268bd2}.warpper .post-content .highlight .nx{color:#268bd2}.warpper .post-content .highlight .py{color:#268bd2}.warpper .post-content .highlight .nt{color:#268bd2;font-weight:700}.warpper .post-content .highlight .nv{color:#268bd2}.warpper .post-content .highlight .vc{color:#268bd2}.warpper .post-content .highlight .vg{color:#268bd2}.warpper .post-content .highlight .vi{color:#268bd2}.warpper .post-content .highlight .vm{color:#268bd2}.warpper .post-content .highlight .l{color:#2aa198}.warpper .post-content .highlight .ld{color:#2aa198}.warpper .post-content .highlight .s{color:#2aa198}.warpper .post-content .highlight .sa{color:#2aa198}.warpper .post-content .highlight .sb{color:#2aa198}.warpper .post-content .highlight .sc{color:#2aa198}.warpper .post-content .highlight .dl{color:#2aa198}.warpper .post-content .highlight .sd{color:#2aa198}.warpper .post-content .highlight .s2{color:#2aa198}.warpper .post-content .highlight .se{color:#2aa198}.warpper .post-content .highlight .sh{color:#2aa198}.warpper .post-content .highlight .si{color:#2aa198}.warpper .post-content .highlight .sx{color:#2aa198}.warpper .post-content .highlight .sr{color:#2aa198}.warpper .post-content .highlight .s1{color:#2aa198}.warpper .post-content .highlight .ss{color:#2aa198}.warpper .post-content .highlight .m{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mb{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mf{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mh{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mi{color:#2aa198;font-weight:700}.warpper .post-content .highlight .il{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mo{color:#2aa198;font-weight:700}.warpper .post-content .highlight .ow{color:#859900}.warpper .post-content .highlight .c{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .ch{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cm{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .c1{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cs{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cp{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cpf{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .g{color:#d33682}.warpper .post-content .highlight .gd{color:#b58900}.warpper .post-content .highlight .ge{color:#d33682}.warpper .post-content .highlight .gr{color:#d33682}.warpper .post-content .highlight .gh{color:#d33682}.warpper .post-content .highlight .gi{color:#859900}.warpper .post-content .highlight .go{color:#d33682}.warpper .post-content .highlight .gp{color:#d33682}.warpper .post-content .highlight .gs{color:#d33682}.warpper .post-content .highlight .gu{color:#d33682}.warpper .post-content .highlight .gt{color:#d33682}.dark-theme .warpper .post-content .highlight{background:#272c34}.dark-theme .warpper .post-content .highlight .p{color:#a9a9b3}.dark-theme .warpper .post-content .highlight .k{color:#d371e3}.dark-theme .warpper .post-content .highlight .kc{color:#d371e3}.dark-theme .warpper .post-content .highlight .kd{color:#d371e3}.dark-theme .warpper .post-content .highlight .kn{color:#d371e3}.dark-theme .warpper .post-content .highlight .kp{color:#d371e3}.dark-theme .warpper .post-content .highlight .kr{color:#d371e3}.dark-theme .warpper .post-content .highlight .kt{color:#8be9fd}.dark-theme .warpper .post-content .highlight .na{color:#41b1f5}.dark-theme .warpper .post-content .highlight .nb{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .nc{color:#e5bf78}.dark-theme .warpper .post-content .highlight .nf{color:#19b8c0}.dark-theme .warpper .post-content .highlight .nx{color:#f16473}.dark-theme .warpper .post-content .highlight .nl{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .nt{color:#d371e3}.dark-theme .warpper .post-content .highlight .nv{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vc{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vg{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vi{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .s{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sa{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sb{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sc{color:#8bc56f}.dark-theme .warpper .post-content .highlight .dl{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sd{color:#8bc56f}.dark-theme .warpper .post-content .highlight .s2{color:#8bc56f}.dark-theme .warpper .post-content .highlight .se{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sh{color:#8bc56f}.dark-theme .warpper .post-content .highlight .si{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sx{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sr{color:#8bc56f}.dark-theme .warpper .post-content .highlight .s1{color:#8bc56f}.dark-theme .warpper .post-content .highlight .ss{color:#8bc56f}.dark-theme .warpper .post-content .highlight .m{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mb{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mf{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mh{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mi{color:#bd93f9}.dark-theme .warpper .post-content .highlight .il{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mo{color:#bd93f9}.dark-theme .warpper .post-content .highlight .o{color:#d371e3}.dark-theme .warpper .post-content .highlight .ow{color:#d371e3}.dark-theme .warpper .post-content .highlight .c{color:#7e848f}.dark-theme .warpper .post-content .highlight .ch{color:#7e848f}.dark-theme .warpper .post-content .highlight .cm{color:#7e848f}.dark-theme .warpper .post-content .highlight .c1{color:#7e848f}.dark-theme .warpper .post-content .highlight .cs{color:#7e848f}.dark-theme .warpper .post-content .highlight .cp{color:#d371e3}.dark-theme .warpper .post-content .highlight .cpf{color:#d371e3}.dark-theme .warpper .post-content .highlight .gd{color:#8b080b}.dark-theme .warpper .post-content .highlight .ge{text-decoration:underline}.dark-theme .warpper .post-content .highlight .gh{font-weight:700}.dark-theme .warpper .post-content .highlight .gi{font-weight:700}.dark-theme .warpper .post-content .highlight .go{color:#44475a}.dark-theme .warpper .post-content .highlight .gu{font-weight:700}.dark-theme .warpper .post-content .highlight .gl{text-decoration:underline}.warpper .post-content .admonition{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:.9765em 0;padding:0 .75rem;border-left:.25rem solid #448aff;border-radius:.125rem;overflow:auto}.warpper .post-content .admonition .admonition-title{margin:0 -.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:.1rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}.warpper .post-content .admonition i.icon{font-size:16px;cursor:auto;position:absolute;left:.75rem;top:.75rem}.warpper .post-content .admonition.note{border-left-color:#448aff}.warpper .post-content .admonition.note i.icon{color:#448aff}.warpper .post-content .admonition.abstract{border-left-color:#00b0ff}.warpper .post-content .admonition.abstract .admonition-title{background-color:rgba(0,176,255,.1)}.warpper .post-content .admonition.abstract i.icon{color:#00b0ff}.warpper .post-content .admonition.info{border-left-color:#00b8d4}.warpper .post-content .admonition.info .admonition-title{background-color:rgba(0,184,212,.1)}.warpper .post-content .admonition.info i.icon{color:#00b8d4}.warpper .post-content .admonition.tip{border-left-color:#00bfa5}.warpper .post-content .admonition.tip .admonition-title{background-color:rgba(0,191,165,.1)}.warpper .post-content .admonition.tip i.icon{color:#00bfa5}.warpper .post-content .admonition.success{border-left-color:#00c853}.warpper .post-content .admonition.success .admonition-title{background-color:rgba(0,200,83,.1)}.warpper .post-content .admonition.success i.icon{color:#00c853}.warpper .post-content .admonition.question{border-left-color:#64dd17}.warpper .post-content .admonition.question .admonition-title{background-color:rgba(100,221,23,.1)}.warpper .post-content .admonition.question i.icon{color:#64dd17}.warpper .post-content .admonition.warning{border-left-color:#ff9100}.warpper .post-content .admonition.warning .admonition-title{background-color:rgba(255,145,0,.1)}.warpper .post-content .admonition.warning i.icon{color:#ff9100}.warpper .post-content .admonition.failure{border-left-color:#ff5252}.warpper .post-content .admonition.failure .admonition-title{background-color:rgba(255,82,82,.1)}.warpper .post-content .admonition.failure i.icon{color:#ff5252}.warpper .post-content .admonition.danger{border-left-color:#ff1744}.warpper .post-content .admonition.danger .admonition-title{background-color:rgba(255,23,68,.1)}.warpper .post-content .admonition.danger i.icon{color:#ff1744}.warpper .post-content .admonition.bug{border-left-color:#f50057}.warpper .post-content .admonition.bug .admonition-title{background-color:rgba(245,0,87,.1)}.warpper .post-content .admonition.bug i.icon{color:#f50057}.warpper .post-content .admonition.example{border-left-color:#651fff}.warpper .post-content .admonition.example .admonition-title{background-color:rgba(101,31,255,.1)}.warpper .post-content .admonition.example i.icon{color:#651fff}.warpper .post-content .admonition.quote{border-left-color:#9e9e9e}.warpper .post-content .admonition.quote .admonition-title{background-color:rgba(158,158,158,.1)}.warpper .post-content .admonition.quote i.icon{color:#9e9e9e}.warpper .post-content .admonition:last-child{margin-bottom:.75rem}.warpper .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.warpper .post-content details.admonition summary::-webkit-details-marker{display:none}.warpper .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .warpper .post-content details.admonition summary i.details{color:#a9a9b3}.warpper .post-content details.admonition[open] i.details{transform:rotate(180deg)}.warpper .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.warpper .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.warpper .post-content .mermaid .label text{fill:#333}.warpper .post-content .mermaid .node rect,.warpper .post-content .mermaid .node circle,.warpper .post-content .mermaid .node ellipse,.warpper .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.warpper .post-content .mermaid .node .label{text-align:center}.warpper .post-content .mermaid .node.clickable{cursor:pointer}.warpper .post-content .mermaid .arrowheadPath{fill:#333}.warpper .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.warpper .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.warpper .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.warpper .post-content .mermaid .cluster text{fill:#333}.warpper .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.warpper .post-content .mermaid .actor{stroke:#999;fill:#eee}.warpper .post-content .mermaid text.actor{fill:#333;stroke:none}.warpper .post-content .mermaid .actor-line{stroke:#666}.warpper .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.warpper .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.warpper .post-content .mermaid #arrowhead{fill:#333}.warpper .post-content .mermaid .sequenceNumber{fill:#fff}.warpper .post-content .mermaid #sequencenumber{fill:#333}.warpper .post-content .mermaid #crosshead path{fill:#333!important;stroke:#333!important}.warpper .post-content .mermaid .messageText{fill:#333;stroke:none}.warpper .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.warpper .post-content .mermaid .labelText{fill:#333;stroke:none}.warpper .post-content .mermaid .loopText{fill:#333;stroke:none}.warpper .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.warpper .post-content .mermaid .note{stroke:#770;fill:#ffa}.warpper .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.warpper .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .section{stroke:none;opacity:.2}.warpper .post-content .mermaid .section0{fill:#80b3e6}.warpper .post-content .mermaid .section2{fill:#80b3e6}.warpper .post-content .mermaid .section1,.warpper .post-content .mermaid .section3{fill:#fff;opacity:.2}.warpper .post-content .mermaid .sectionTitle0{fill:#333}.warpper .post-content .mermaid .sectionTitle1{fill:#333}.warpper .post-content .mermaid .sectionTitle2{fill:#333}.warpper .post-content .mermaid .sectionTitle3{fill:#333}.warpper .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:.3;shape-rendering:crispEdges}.warpper .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .grid path{stroke-width:0}.warpper .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.warpper .post-content .mermaid .task{stroke-width:2}.warpper .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .taskText:not([font-size]){font-size:11px}.warpper .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.warpper .post-content .mermaid .task.clickable{cursor:pointer}.warpper .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskText0,.warpper .post-content .mermaid .taskText1,.warpper .post-content .mermaid .taskText2,.warpper .post-content .mermaid .taskText3{fill:#fff}.warpper .post-content .mermaid .task0,.warpper .post-content .mermaid .task1,.warpper .post-content .mermaid .task2,.warpper .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.warpper .post-content .mermaid .taskTextOutside0,.warpper .post-content .mermaid .taskTextOutside2{fill:#333}.warpper .post-content .mermaid .taskTextOutside1,.warpper .post-content .mermaid .taskTextOutside3{fill:#333}.warpper .post-content .mermaid .active0,.warpper .post-content .mermaid .active1,.warpper .post-content .mermaid .active2,.warpper .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.warpper .post-content .mermaid .activeText0,.warpper .post-content .mermaid .activeText1,.warpper .post-content .mermaid .activeText2,.warpper .post-content .mermaid .activeText3{fill:#333!important}.warpper .post-content .mermaid .done0,.warpper .post-content .mermaid .done1,.warpper .post-content .mermaid .done2,.warpper .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.warpper .post-content .mermaid .doneText0,.warpper .post-content .mermaid .doneText1,.warpper .post-content .mermaid .doneText2,.warpper .post-content .mermaid .doneText3{fill:#333!important}.warpper .post-content .mermaid .crit0,.warpper .post-content .mermaid .crit1,.warpper .post-content .mermaid .crit2,.warpper .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.warpper .post-content .mermaid .activeCrit0,.warpper .post-content .mermaid .activeCrit1,.warpper .post-content .mermaid .activeCrit2,.warpper .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.warpper .post-content .mermaid .doneCrit0,.warpper .post-content .mermaid .doneCrit1,.warpper .post-content .mermaid .doneCrit2,.warpper .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.warpper .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.warpper .post-content .mermaid .milestoneText{font-style:italic}.warpper .post-content .mermaid .doneCritText0,.warpper .post-content .mermaid .doneCritText1,.warpper .post-content .mermaid .doneCritText2,.warpper .post-content .mermaid .doneCritText3{fill:#333!important}.warpper .post-content .mermaid .activeCritText0,.warpper .post-content .mermaid .activeCritText1,.warpper .post-content .mermaid .activeCritText2,.warpper .post-content .mermaid .activeCritText3{fill:#333!important}.warpper .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.warpper .post-content .mermaid g.classGroup text .title{font-weight:bolder}.warpper .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.warpper .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.warpper .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.warpper .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.warpper .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.warpper .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid .commit-id,.warpper .post-content .mermaid .commit-msg,.warpper .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.warpper .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.warpper .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.warpper .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.warpper .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.warpper .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.warpper .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.warpper .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.warpper .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.warpper .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .warpper .post-content .mermaid{}.dark-theme .warpper .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .warpper .post-content .mermaid .label text{fill:#333}.dark-theme .warpper .post-content .mermaid .node rect,.dark-theme .warpper .post-content .mermaid .node circle,.dark-theme .warpper .post-content .mermaid .node ellipse,.dark-theme .warpper .post-content .mermaid .node polygon{fill:#bdd5ea;stroke:purple;stroke-width:1px}.dark-theme .warpper .post-content .mermaid .node .label{text-align:center}.dark-theme .warpper .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .warpper .post-content .mermaid .arrowheadPath{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .edgePath .path{stroke:lightgrey;stroke-width:1.5px}.dark-theme .warpper .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .warpper .post-content .mermaid .cluster rect{fill:#6d6d65;stroke:rgba(255,255,255,.25);stroke-width:1px}.dark-theme .warpper .post-content .mermaid .cluster text{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6d6d65;border:1px solid rgba(255,255,255,.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .warpper .post-content .mermaid .actor{stroke:#81b1db;fill:#bdd5ea}.dark-theme .warpper .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .warpper .post-content .mermaid .actor-line{stroke:lightgrey}.dark-theme .warpper .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .warpper .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .warpper .post-content .mermaid #arrowhead{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .warpper .post-content .mermaid #sequencenumber{fill:lightgrey}.dark-theme .warpper .post-content .mermaid #crosshead path{fill:lightgrey!important;stroke:lightgrey!important}.dark-theme .warpper .post-content .mermaid .messageText{fill:lightgrey;stroke:none}.dark-theme .warpper .post-content .mermaid .labelBox{stroke:#81b1db;fill:#bdd5ea}.dark-theme .warpper .post-content .mermaid .labelText{fill:#323d47;stroke:none}.dark-theme .warpper .post-content .mermaid .loopText{fill:lightgrey;stroke:none}.dark-theme .warpper .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81b1db}.dark-theme .warpper .post-content .mermaid .note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .warpper .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .warpper .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .section{stroke:none;opacity:.2}.dark-theme .warpper .post-content .mermaid .section0{fill:rgba(255,255,255,.3)}.dark-theme .warpper .post-content .mermaid .section2{fill:#eae8b9}.dark-theme .warpper .post-content .mermaid .section1,.dark-theme .warpper .post-content .mermaid .section3{fill:#fff;opacity:.2}.dark-theme .warpper .post-content .mermaid .sectionTitle0{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle1{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle2{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle3{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .grid .tick{stroke:lightgrey;opacity:.3;shape-rendering:crispEdges}.dark-theme .warpper .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .grid path{stroke-width:0}.dark-theme .warpper .post-content .mermaid .today{fill:none;stroke:#db5757;stroke-width:2px}.dark-theme .warpper .post-content .mermaid .task{stroke-width:2}.dark-theme .warpper .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .warpper .post-content .mermaid .taskTextOutsideRight{fill:#323d47;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .taskTextOutsideLeft{fill:#323d47;text-anchor:end;font-size:11px}.dark-theme .warpper .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .warpper .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskText0,.dark-theme .warpper .post-content .mermaid .taskText1,.dark-theme .warpper .post-content .mermaid .taskText2,.dark-theme .warpper .post-content .mermaid .taskText3{fill:#323d47}.dark-theme .warpper .post-content .mermaid .task0,.dark-theme .warpper .post-content .mermaid .task1,.dark-theme .warpper .post-content .mermaid .task2,.dark-theme .warpper .post-content .mermaid .task3{fill:#bdd5ea;stroke:rgba(255,255,255,.5)}.dark-theme .warpper .post-content .mermaid .taskTextOutside0,.dark-theme .warpper .post-content .mermaid .taskTextOutside2{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .taskTextOutside1,.dark-theme .warpper .post-content .mermaid .taskTextOutside3{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .active0,.dark-theme .warpper .post-content .mermaid .active1,.dark-theme .warpper .post-content .mermaid .active2,.dark-theme .warpper .post-content .mermaid .active3{fill:#81b1db;stroke:rgba(255,255,255,.5)}.dark-theme .warpper .post-content .mermaid .activeText0,.dark-theme .warpper .post-content .mermaid .activeText1,.dark-theme .warpper .post-content .mermaid .activeText2,.dark-theme .warpper .post-content .mermaid .activeText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .done0,.dark-theme .warpper .post-content .mermaid .done1,.dark-theme .warpper .post-content .mermaid .done2,.dark-theme .warpper .post-content .mermaid .done3{stroke:grey;fill:lightgrey;stroke-width:2}.dark-theme .warpper .post-content .mermaid .doneText0,.dark-theme .warpper .post-content .mermaid .doneText1,.dark-theme .warpper .post-content .mermaid .doneText2,.dark-theme .warpper .post-content .mermaid .doneText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .crit0,.dark-theme .warpper .post-content .mermaid .crit1,.dark-theme .warpper .post-content .mermaid .crit2,.dark-theme .warpper .post-content .mermaid .crit3{stroke:#e83737;fill:#e83737;stroke-width:2}.dark-theme .warpper .post-content .mermaid .activeCrit0,.dark-theme .warpper .post-content .mermaid .activeCrit1,.dark-theme .warpper .post-content .mermaid .activeCrit2,.dark-theme .warpper .post-content .mermaid .activeCrit3{stroke:#e83737;fill:#81b1db;stroke-width:2}.dark-theme .warpper .post-content .mermaid .doneCrit0,.dark-theme .warpper .post-content .mermaid .doneCrit1,.dark-theme .warpper .post-content .mermaid .doneCrit2,.dark-theme .warpper .post-content .mermaid .doneCrit3{stroke:#e83737;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .warpper .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.dark-theme .warpper .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .warpper .post-content .mermaid .doneCritText0,.dark-theme .warpper .post-content .mermaid .doneCritText1,.dark-theme .warpper .post-content .mermaid .doneCritText2,.dark-theme .warpper .post-content .mermaid .doneCritText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .activeCritText0,.dark-theme .warpper .post-content .mermaid .activeCritText1,.dark-theme .warpper .post-content .mermaid .activeCritText2,.dark-theme .warpper .post-content .mermaid .activeCritText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .warpper .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .warpper .post-content .mermaid g.classGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .warpper .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .warpper .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .warpper .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .warpper .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #aggregationStart{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #aggregationEnd{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .commit-id,.dark-theme .warpper .post-content .mermaid .commit-msg,.dark-theme .warpper .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .warpper .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .warpper .post-content .mermaid g.stateGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .warpper .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .warpper .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.dark-theme .warpper .post-content .mermaid .state-note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .warpper .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.dark-theme .warpper .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .warpper .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .warpper .post-content .aplayer{background:#212121}.dark-theme .warpper .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .warpper .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .warpper .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .warpper .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .warpper .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .warpper .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .warpper .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .warpper .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .warpper .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .warpper .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .warpper .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .warpper .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top,#212121 0%,rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top,#212121 0%,rgba(33,33,33,0) 100%);background:linear-gradient(to bottom,#212121 0%,rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121',endColorstr='#00212121',GradientType=0 )}.dark-theme .warpper .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121',endColorstr='#cc212121',GradientType=0 )}.dark-theme .warpper .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .warpper .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.warpper .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.warpper .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.warpper .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.warpper .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .warpper .post-content hr{border-top:1px dashed #4a4b50}.warpper .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;color:#e74c3c}.dark-theme .warpper .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#e5bf78}.warpper .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;font-weight:700;word-break:break-all}.warpper .post-content .align-left{text-align:left}.warpper .post-content .align-center{text-align:center}.warpper .post-content .align-right{text-align:right}.warpper .post-content .float-left{float:left}.warpper .post-content .float-right{float:right}.warpper .post-footer{margin-top:3rem}.warpper .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 .3rem}.dark-theme .warpper .post-footer .post-info{border-bottom:1px solid #4a4b50}.warpper .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.warpper .post-footer .post-info .post-info-line .post-info-mod{font-size:.8em;color:#a9a9b3}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-mod{color:#87878d}.warpper .post-footer .post-info .post-info-line .post-info-license{font-size:.8em;color:#a9a9b3}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-license{color:#87878d}.warpper .post-footer .post-info .post-info-line .post-info-md a{font-size:.8em;color:#2d96bd}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.warpper .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-md a:hover{color:#2d96bd}.warpper .post-footer .post-info-more{padding:.3rem 0 1rem;display:flex;justify-content:space-between;font-size:.9rem}.warpper .post-footer .post-nav::before,.warpper .post-footer .post-nav::after{content:' ';display:table}.warpper .post-footer .post-nav a.prev,.warpper .post-footer .post-nav a.next{font-size:1rem;font-weight:600;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.warpper .post-footer .post-nav a.prev{float:left}.warpper .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.warpper .post-footer .post-nav a.next{float:right}.warpper .post-footer .post-nav a.next:hover{transform:translateX(4px)}.warpper .post-comment{padding:4rem 0}.warpper .home-intro{transform:translateY(0);padding:2rem 0}.warpper .home-intro .home-avatar img{width:6rem}.warpper .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .warpper .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.warpper .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:.6rem auto}.warpper .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.warpper .post .post-list-title{font-size:1.6rem}.warpper .post .post-meta{font-size:.875rem!important}.warpper .post .post-meta a{color:#a9a9b3!important}.dark-theme .warpper .post .post-meta a{color:#87878d!important}.warpper .post .post-meta a:hover{color:#2d96bd!important}.dark-theme .warpper .post .post-meta a:hover{color:#fff!important}.warpper .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.warpper .post .post-content h2,.warpper .post .post-content h3,.warpper .post .post-content h4,.warpper .post .post-content h5,.warpper .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.warpper .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.warpper .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem!important}.warpper .post .post-footer a{color:#2d96bd!important}.dark-theme .warpper .post .post-footer a{color:#eee!important}.warpper .post .post-footer a:hover{color:#ef3982!important}.dark-theme .warpper .post .post-footer a:hover{color:#2d96bd!important}.warpper .post .post-footer .post-tags{padding:0}.warpper .post .post-footer .post-tags a{color:#161209!important}.dark-theme .warpper .post .post-footer .post-tags a{color:#a9a9b3!important}.warpper .post .post-footer .post-tags a:hover{color:#2d96bd!important}.dark-theme .warpper .post .post-footer .post-tags a:hover{color:#fff!important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .categories{width:100%;overflow:hidden}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#87878d}.archive .more-post{text-align:right}.archive .categories h3{display:inline-block}.archive .categories span{float:right;padding-right:1rem}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 6rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all .3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s,.2s transform;-moz-transition:.2s margin .2s,.2s transform;transition:.2s margin .2s,.2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin,.2s transform .2s;-moz-transition:.2s margin,.2s transform .2s;transition:.2s margin,.2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg)translate(4px,6px);-ms-transform:rotate(45deg)translate(4px,6px);-webkit-transform:rotate(45deg)translate(4px,6px);transform:rotate(45deg)translate(4px,6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg)translate(8px,-10px);-ms-transform:rotate(-45deg)translate(8px,-10px);-webkit-transform:rotate(-45deg)translate(8px,-10px);transform:rotate(-45deg)translate(8px,-10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0 2px 4px rgba(0,0,0,.1),0 4px 8px rgba(0,0,0,.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:700;padding:1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==)no-repeat 50%}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px;text-decoration:none;transition:.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:.3s;bottom:0}.dark-theme .pagination li:before,.dark-theme .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width:1800px){.warpper{max-width:780px}.warpper .post-toc{margin-left:800px}}@media only screen and (max-width:1300px){.warpper{max-width:560px}.warpper .post-toc{margin-left:580px}}@media only screen and (max-width:1080px){.navbar .navbar-container{margin:0 2rem}.warpper{max-width:80%}.warpper .post-toc{display:none}.warpper .post-toc-mobile{display:block}}@media only screen and (max-width:560px){.navbar{display:none}.navbar-mobile{display:block}.warpper{max-width:100%}.warpper .categories-card .card-item{width:95%}.dynamic-to-top{display:none!important}}
\ No newline at end of file |