.post-body{–body-bg-color:#eee;–content-bg-color:#fff;–card-bg-color:#f5f5f5;–text-color:#555;–blockquote-color:#666;–link-color:#555;–link-hover-color:#222;–brand-color:#fff;–brand-hover-color:#fff;–table-row-odd-bg-color:#f9f9f9;–table-row-hover-bg-color:#f5f5f5;–menu-item-bg-color:#f5f5f5;–btn-default-bg:#fff;–btn-default-color:#555;–btn-default-border-color:#555;–btn-default-hover-bg:#222;–btn-default-hover-color:#fff;–btn-default-hover-border-color:#222}
@media (prefers-color-scheme: dark) { .post-body{–body-bg-color:#282828;–content-bg-color:#333;–card-bg-color:#555;–text-color:#ccc;–blockquote-color:#bbb;–link-color:#ccc;–link-hover-color:#eee;–brand-color:#ddd;–brand-hover-color:#ddd;–table-row-odd-bg-color:#282828;–table-row-hover-bg-color:#363636;–menu-item-bg-color:#555;–btn-default-bg:#222;–btn-default-color:#ccc;–btn-default-border-color:#555;–btn-default-hover-bg:#666;–btn-default-hover-color:#ccc;–btn-default-hover-border-color:#666}
}
.post-body h1{font-size:2em;margin:0.67em 0}
.post-body hr{box-sizing:content-box;height:0;overflow:visible}
.post-body pre{font-family:monospace, monospace;font-size:1em}
.post-body a{background:rgba(0, 0, 0, 0)}
.post-body abbr[title]{border-bottom:none;text-decoration:dotted underline}
.post-body b, strong{font-weight:bolder}
.post-body code, kbd, samp{font-family:monospace, monospace;font-size:1em}
.post-body small{font-size:80%}
.post-body sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
.post-body sub{bottom:-0.25em}
.post-body sup{top:-0.5em}
.post-body img{border-style:none}
.post-body button, input, optgroup, select, textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
.post-body button, input{overflow:visible}
.post-body button, select{text-transform:none}
.post-body button, [type=”button”], [type=”reset”], [type=”submit”]{-webkit-appearance:button}
.post-body button::-moz-focus-inner, [type=’button’]::-moz-focus-inner,
[type=’reset’]::-moz-focus-inner,
[type=’submit’]::-moz-focus-inner{border-style:none;padding:0}
.post-body button:-moz-focusring, [type=’button’]:-moz-focusring,
[type=’reset’]:-moz-focusring,
[type=’submit’]:-moz-focusring{outline:1px dotted rgba(0, 0, 0, 1)}
.post-body fieldset{padding:0.35em 0.75em 0.625em}
.post-body legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}
.post-body progress{vertical-align:baseline}
.post-body 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”]{outline-offset:-2px;-webkit-appearance:textfield}
[type=’search’]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button}
.post-body details{display:block}
.post-body summary{display:list-item}
.post-body template{display:none}
[hidden]{display:none}::selection{background:rgba(38, 42, 48, 1);color:rgba(238, 238, 238, 1)}
.post-body h1, h2, h3, h4, h5, h6{font-family:”Lato”, “PingFang SC”, “Microsoft YaHei”, sans-serif;font-weight:bold;line-height:1.5;margin:20px 0 15px}
.post-body h1{font-size:1.5em}
.post-body h2{font-size:1.375em}
.post-body h3{font-size:1.25em}
.post-body h4{font-size:1.125em}
.post-body h5{font-size:1em}
.post-body h6{font-size:0.875em}
.post-body p{margin:0 0 20px}
.post-body a, span.exturl{border-bottom:1px solid rgba(153, 153, 153, 1);color:var(–link-color);outline:0;text-decoration:none;overflow-wrap:break-word;word-wrap:break-word;cursor:pointer}
.post-body a:hover, span.exturl:hover{border-bottom-color:var(–link-hover-color);color:var(–link-hover-color)}
.post-body iframe, img, video{display:block;margin-left:auto;margin-right:auto;max-width:100%}
.post-body hr{background-image:repeating-linear-gradient(-45deg, rgba(221, 221, 221, 1), rgba(221, 221, 221, 1) 4px, rgba(0, 0, 0, 0) 4px, rgba(0, 0, 0, 0) 8px);border:0;height:3px;margin:40px 0}
.post-body blockquote{border-left:4px solid rgba(221, 221, 221, 1);color:var(–blockquote-color);margin:0;padding:0 15px}
.post-body blockquote cite::before{content:”-“;padding:0 5px}
.post-body dt{font-weight:bold}
.post-body dd{margin:0;padding:0}
.post-body kbd{background-color:rgba(245, 245, 245, 1);background-image:linear-gradient(rgba(238, 238, 238, 1), rgba(255, 255, 255, 1), rgba(238, 238, 238, 1));border:1px solid rgba(204, 204, 204, 1);border-radius:0.2em;box-shadow:0.1em 0.1em 0.2em rgba(0, 0, 0, 0.1);color:rgba(85, 85, 85, 1);font-family:inherit;padding:0.1em 0.3em;white-space:nowrap}
.table-container{overflow:auto}
.post-body table{border-collapse:collapse;border-spacing:0;font-size:0.875em;margin:0 0 20px;width:100%}
.post-body tbody tr:nth-of-type(2n+1){background:var(–table-row-odd-bg-color)}
.post-body tbody tr:hover{background:var(–table-row-hover-bg-color)}
.post-body caption, th, td{font-weight:normal;padding:8px;vertical-align:middle}
.post-body th, td{border-top:1px solid rgba(221, 221, 221, 1);border-right:1px solid rgba(221, 221, 221, 1);border-bottom:3px solid rgba(221, 221, 221, 1);border-left:1px solid rgba(221, 221, 221, 1)}
.post-body th{font-weight:700;padding-bottom:10px}
.post-body td{border-bottom-width:1px}
.btn{background:var(–btn-default-bg);border:2px solid var(–btn-default-border-color);border-radius:2px;color:var(–btn-default-color);display:inline-block;font-size:0.875em;line-height:2;padding:0 20px;text-decoration:none;transition:background-color 0.2s ease-in-out 0s}
.btn:hover{background:var(–btn-default-hover-bg);border-color:var(–btn-default-hover-border-color);color:var(–btn-default-hover-color)}
.btn+.btn{margin:0 0 8px 8px}
.btn .fa-fw{text-align:left;width:1.28571428571429em}
.toggle{line-height:0}
.toggle .toggle-line{background:rgba(255, 255, 255, 1);display:inline-block;height:2px;left:0;position:relative;top:0;transition:all 0.4s;vertical-align:top;width:100%}
.toggle .toggle-line:not(:first-child){margin-top:3px}
.toggle.toggle-arrow .toggle-line-first{top:2px;transform:rotate(-45deg);width:50%}
.toggle.toggle-arrow .toggle-line-middle{width:90%}
.toggle.toggle-arrow .toggle-line-last{top:-2px;transform:rotate(45deg);width:50%}
.toggle.toggle-close .toggle-line-first{top:5px;transform:rotate(-45deg)}
.toggle.toggle-close .toggle-line-middle{opacity:0}
.toggle.toggle-close .toggle-line-last{top:-5px;transform:rotate(45deg)}
.highlight-container{position:relative}
.highlight-container:hover .copy-btn, .highlight-container .copy-btn:focus{opacity:1}
.copy-btn{color:rgba(255, 255, 255, 1);cursor:pointer;line-height:1.6;opacity:0;padding:2px 6px;position:absolute;transition-delay:0s;transition-duration:0.2s;transition-timing-function:ease-in-out;font-size:14px;right:0;top:2px}
.highlight-container{background:rgba(33, 37, 43, 1);border-radius:5px;box-shadow:0 10px 30px rgba(0, 0, 0, 0.4);padding-top:30px}
.highlight-container::before{background:rgba(252, 98, 93, 1);border-radius:50%;box-shadow:20px 0 rgba(253, 188, 64, 1), 40px 0 rgba(53, 205, 75, 1);content:” “;height:12px;left:12px;margin-top:-20px;position:absolute;width:12px}
.highlight-container .highlight{border-radius:0 0 5px 5px}
.highlight-container .highlight .table-container{border-radius:0 0 5px 5px}
.highlight, pre{background:rgba(45, 45, 45, 1);color:rgba(204, 204, 204, 1);line-height:1.6;margin:0 auto 20px}
pre, code{font-family:consolas, Menlo, monospace, “PingFang SC”, “Microsoft YaHei”}
code{background:rgba(238, 238, 238, 1);border-radius:3px;color:rgba(85, 85, 85, 1);padding:2px 4px;overflow-wrap:break-word;word-wrap:break-word}
.highlight *::selection{background:rgba(81, 81, 81, 1)}
.highlight pre{border:0;margin:0;padding:10px 0}
.highlight table{border:0;margin:0;width:auto}
.highlight td{border:0;padding:0}
.highlight figcaption{background:rgba(27, 27, 27, 1);color:rgba(204, 204, 204, 1);display:flex;font-size:0.875em;justify-content:space-between;line-height:1.2;padding:0.5em}
.highlight figcaption a{color:rgba(204, 204, 204, 1)}
.highlight figcaption a:hover{border-bottom-color:rgba(204, 204, 204, 1)}
.highlight .gutter{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}
.highlight .gutter pre{background:rgba(27, 27, 27, 1);color:rgba(153, 153, 153, 1);padding-left:10px;padding-right:10px;text-align:right}
.highlight .code pre{background:rgba(45, 45, 45, 1);padding-left:10px;width:100%}
.gist table{width:auto}
.gist table td{border:0}
pre{overflow:auto;padding:10px}
pre code{background:none;color:rgba(204, 204, 204, 1);font-size:0.875em;padding:0;text-shadow:none}
pre .deletion{background:rgba(128, 0, 0, 1)}
pre .addition{background:rgba(0, 128, 0, 1)}
pre .meta{color:rgba(255, 204, 102, 1);-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}
pre .comment{color:rgba(153, 153, 153, 1)}
pre .variable, pre .attribute, pre .tag, pre .name, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo{color:rgba(242, 119, 122, 1)}
pre .number, pre .preprocessor, pre .built_in, pre .builtin-name, pre .literal, pre .params, pre .constant, pre .command{color:rgba(249, 145, 87, 1)}
pre .ruby .class .title, pre .css .rules .attribute, pre .string, pre .symbol, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata, pre .special, pre .formula{color:rgba(153, 204, 153, 1)}
pre .title, pre .css .hexcolor{color:rgba(102, 204, 204, 1)}
pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title{color:rgba(102, 153, 204, 1)}
pre .keyword, pre .javascript .function{color:rgba(204, 153, 204, 1)}
.blockquote-center{border-left:none;margin:40px 0;padding:0;position:relative;text-align:center}
.blockquote-center .fa{display:block;opacity:0.6;position:absolute;width:100%}
.blockquote-center .fa-quote-left{border-top:1px solid rgba(204, 204, 204, 1);text-align:left;top:-20px}
.blockquote-center .fa-quote-right{border-bottom:1px solid rgba(204, 204, 204, 1);text-align:right;bottom:-20px}
.blockquote-center p, .blockquote-center div{text-align:center}
.post-body .group-picture img{margin:0 auto;padding:0 3px}
.group-picture-row{margin-bottom:6px;overflow:hidden}
.group-picture-column{float:left;margin-bottom:10px}
.post-body .label{color:rgba(85, 85, 85, 1);display:inline;padding:0 2px}
.post-body .label.default{background:rgba(240, 240, 240, 1)}
.post-body .label.primary{background:rgba(239, 230, 247, 1)}
.post-body .label.info{background:rgba(229, 242, 248, 1)}
.post-body .label.success{background:rgba(231, 244, 233, 1)}
.post-body .label.warning{background:rgba(252, 246, 225, 1)}
.post-body .label.danger{background:rgba(250, 232, 235, 1)}
.post-body .tabs{margin-bottom:20px}
.post-body .tabs, .tabs-comment{display:block;padding-top:10px;position:relative}
.post-body .tabs ul.nav-tabs, .tabs-comment ul.nav-tabs{display:flex;flex-wrap:wrap;margin:0 0 -1px;padding:0}
@media(max-width:413px){ .post-body .tabs ul.nav-tabs, .tabs-comment ul.nav-tabs{display:block;margin-bottom:5px}
}
.post-body .tabs ul.nav-tabs li.tab, .tabs-comment ul.nav-tabs li.tab{border-bottom:1px solid rgba(221, 221, 221, 1);border-left:1px solid rgba(0, 0, 0, 0);border-right:1px solid rgba(0, 0, 0, 0);border-top:3px solid rgba(0, 0, 0, 0);flex-grow:1;list-style-type:none;border-radius:0}
@media(max-width:413px){ .post-body .tabs ul.nav-tabs li.tab, .tabs-comment ul.nav-tabs li.tab{border-bottom:1px solid rgba(0, 0, 0, 0);border-left:3px solid rgba(0, 0, 0, 0);border-right:1px solid rgba(0, 0, 0, 0);border-top:1px solid rgba(0, 0, 0, 0)}
}
@media(max-width:413px){ .post-body .tabs ul.nav-tabs li.tab, .tabs-comment ul.nav-tabs li.tab{border-radius:0}
}
.post-body .tabs ul.nav-tabs li.tab a, .tabs-comment ul.nav-tabs li.tab a{display:block;line-height:1.8;outline:0;padding:0.25em 0.75em;text-align:center;transition-delay:0s;transition-duration:0.2s;transition-timing-function:ease-out}
.post-body .tabs ul.nav-tabs li.tab a i, .tabs-comment ul.nav-tabs li.tab a i{width:1.28571428571429em}
.post-body .tabs ul.nav-tabs li.tab.active, .tabs-comment ul.nav-tabs li.tab.active{border-bottom:1px solid rgba(0, 0, 0, 0);border-left:1px solid rgba(221, 221, 221, 1);border-right:1px solid rgba(221, 221, 221, 1);border-top:3px solid rgba(252, 100, 35, 1)}
@media(max-width:413px){ .post-body .tabs ul.nav-tabs li.tab.active, .tabs-comment ul.nav-tabs li.tab.active{border-bottom:1px solid rgba(221, 221, 221, 1);border-left:3px solid rgba(252, 100, 35, 1);border-right:1px solid rgba(221, 221, 221, 1);border-top:1px solid rgba(221, 221, 221, 1)}
}
.post-body .tabs ul.nav-tabs li.tab.active a, .tabs-comment ul.nav-tabs li.tab.active a{color:var(–link-color);cursor:default}
.post-body .tabs .tab-content .tab-pane, .tabs-comment .tab-content .tab-pane{border-top:0;border-right:1px solid rgba(221, 221, 221, 1);border-bottom:1px solid rgba(221, 221, 221, 1);border-left:1px solid rgba(221, 221, 221, 1);padding:20px 20px 0;border-radius:0}
.post-body .tabs .tab-content .tab-pane:not(.active), .tabs-comment .tab-content .tab-pane:not(.active){display:none}
.post-body .tabs .tab-content .tab-pane.active, .tabs-comment .tab-content .tab-pane.active{display:block}
.post-body .tabs .tab-content .tab-pane.active:nth-of-type(0n+1), .tabs-comment .tab-content .tab-pane.active:nth-of-type(0n+1){border-radius:0}
@media(max-width:413px){ .post-body .tabs .tab-content .tab-pane.active:nth-of-type(0n+1), .tabs-comment .tab-content .tab-pane.active:nth-of-type(0n+1){border-radius:0}
}
.post-body .note{border-radius:3px;margin-bottom:20px;padding:1em;position:relative;background:rgba(245, 245, 245, 1);border:1px solid rgba(0, 0, 0, 0)}
.post-body .note h2, .post-body .note h3, .post-body .note h4, .post-body .note h5, .post-body .note h6{margin-top:3px;margin-bottom:0;padding-top:0}
.post-body .note p:first-child, .post-body .note ul:first-child, .post-body .note ol:first-child, .post-body .note table:first-child, .post-body .note pre:first-child, .post-body .note blockquote:first-child, .post-body .note img:first-child{margin-top:0}
.post-body .note p:last-child, .post-body .note ul:last-child, .post-body .note ol:last-child, .post-body .note table:last-child, .post-body .note pre:last-child, .post-body .note blockquote:last-child, .post-body .note img:last-child{margin-bottom:0}
.post-body .note:not(.no-icon){padding-left:2.5em}
.post-body .note:not(.no-icon)::before{font-size:1.5em;left:0.4em;position:absolute;top:calc(50% – 0.7em);font-family:”Font Awesome 5 Free”;font-weight:900}
.post-body .note.default{background:rgba(243, 243, 243, 1);border-color:rgba(225, 225, 225, 1);color:rgba(102, 102, 102, 1)}
.post-body .note.default a:not(.btn), .post-body .note.default span.exturl:not(.btn){border-bottom:1px solid rgba(102, 102, 102, 1);color:rgba(102, 102, 102, 1)}
.post-body .note.default a:not(.btn):hover, .post-body .note.default span.exturl:not(.btn):hover{border-bottom:1px solid rgba(69, 69, 69, 1);color:rgba(69, 69, 69, 1)}
.post-body .note.default:not(.no-icon)::before{content:””}
.post-body .note.primary{background:rgba(243, 218, 255, 1);border-color:rgba(225, 194, 255, 1);color:rgba(111, 66, 193, 1)}
.post-body .note.primary a:not(.btn), .post-body .note.primary span.exturl:not(.btn){border-bottom:1px solid rgba(111, 66, 193, 1);color:rgba(111, 66, 193, 1)}
.post-body .note.primary a:not(.btn):hover, .post-body .note.primary span.exturl:not(.btn):hover{border-bottom:1px solid rgba(69, 50, 152, 1);color:rgba(69, 50, 152, 1)}
.post-body .note.primary:not(.no-icon)::before{content:””}
.post-body .note.info{background:rgba(217, 237, 247, 1);border-color:rgba(179, 229, 239, 1);color:rgba(49, 112, 143, 1)}
.post-body .note.info a:not(.btn), .post-body .note.info span.exturl:not(.btn){border-bottom:1px solid rgba(49, 112, 143, 1);color:rgba(49, 112, 143, 1)}
.post-body .note.info a:not(.btn):hover, .post-body .note.info span.exturl:not(.btn):hover{border-bottom:1px solid rgba(33, 87, 97, 1);color:rgba(33, 87, 97, 1)}
.post-body .note.info:not(.no-icon)::before{content:””}
.post-body .note.success{background:rgba(223, 240, 216, 1);border-color:rgba(208, 230, 190, 1);color:rgba(60, 118, 61, 1)}
.post-body .note.success a:not(.btn), .post-body .note.success span.exturl:not(.btn){border-bottom:1px solid rgba(60, 118, 61, 1);color:rgba(60, 118, 61, 1)}
.post-body .note.success a:not(.btn):hover, .post-body .note.success span.exturl:not(.btn):hover{border-bottom:1px solid rgba(50, 86, 44, 1);color:rgba(50, 86, 44, 1)}
.post-body .note.success:not(.no-icon)::before{content:””}
.post-body .note.warning{background:rgba(252, 244, 227, 1);border-color:rgba(250, 228, 205, 1);color:rgba(138, 109, 59, 1)}
.post-body .note.warning a:not(.btn), .post-body .note.warning span.exturl:not(.btn){border-bottom:1px solid rgba(138, 109, 59, 1);color:rgba(138, 109, 59, 1)}
.post-body .note.warning a:not(.btn):hover, .post-body .note.warning span.exturl:not(.btn):hover{border-bottom:1px solid rgba(113, 79, 48, 1);color:rgba(113, 79, 48, 1)}
.post-body .note.warning:not(.no-icon)::before{content:””}
.post-body .note.danger{background:rgba(242, 223, 223, 1);border-color:rgba(235, 205, 210, 1);color:rgba(169, 68, 66, 1)}
.post-body .note.danger a:not(.btn), .post-body .note.danger span.exturl:not(.btn){border-bottom:1px solid rgba(169, 68, 66, 1);color:rgba(169, 68, 66, 1)}
.post-body .note.danger a:not(.btn):hover, .post-body .note.danger span.exturl:not(.btn):hover{border-bottom:1px solid rgba(132, 51, 63, 1);color:rgba(132, 51, 63, 1)}
.post-body .note.danger:not(.no-icon)::before{content:””}
.pdfobject-container iframe, .pdfobject-container embed{height:500px;width:100%}
.pagination .prev, .pagination .next, .pagination .page-number, .pagination .space{display:inline-block;margin:0 10px;padding:0 11px;position:relative;top:-1px}
@media(max-width:767px){ .pagination .prev, .pagination .next, .pagination .page-number, .pagination .space{margin:0 5px}
}
.pagination{border-top:1px solid rgba(238, 238, 238, 1);margin:120px 0 0;text-align:center}
.pagination .prev, .pagination .next, .pagination .page-number{border-bottom:0;border-top:1px solid rgba(238, 238, 238, 1);transition:border-color 0.2s ease-in-out 0s}
.pagination .prev:hover, .pagination .next:hover, .pagination .page-number:hover{border-top-color:rgba(34, 34, 34, 1)}
.pagination .space{margin:0;padding:0}
.pagination .prev{margin-left:0}
.pagination .next{margin-right:0}
.pagination .page-number.current{background:rgba(204, 204, 204, 1);border-top-color:rgba(204, 204, 204, 1);color:rgba(255, 255, 255, 1)}
@media(max-width:767px){ .pagination{border-top:none}
.pagination .prev, .pagination .next, .pagination .page-number{border-bottom:1px solid rgba(238, 238, 238, 1);border-top:0;margin-bottom:10px;padding:0 10px}
.pagination .prev:hover, .pagination .next:hover, .pagination .page-number:hover{border-bottom-color:rgba(34, 34, 34, 1)}
}
.comments{margin-top:60px;overflow:hidden}
.comment-button-group{display:flex;flex-wrap:wrap-reverse;justify-content:center;margin:1em 0}
.comment-button-group .comment-button{margin:0.1em 0.2em}
.comment-button-group .comment-button.active{background:var(–btn-default-hover-bg);border-color:var(–btn-default-hover-border-color);color:var(–btn-default-hover-color)}
.comment-position{display:none}
.comment-position.active{display:block}
.tabs-comment{background:var(–content-bg-color);margin-top:4em;padding-top:0}
.tabs-comment .comments{border:0;box-shadow:none;margin-top:0;padding-top:0}
.container{min-height:100%;position:relative}
.main-inner{margin:0 auto;width:calc(100% – 20px)}
@media(min-width:1200px){ .main-inner{width:1160px}
}
@media(min-width:1600px){ .main-inner{width:73%}
}
@media(max-width:767px){ .content-wrap{padding:0 20px}
}
.header{background:rgba(0, 0, 0, 0)}
.header-inner{margin:0 auto;width:calc(100% – 20px)}
@media(min-width:1200px){ .header-inner{width:1160px}
}
@media(min-width:1600px){ .header-inner{width:73%}
}
.site-brand-container{display:flex;flex-shrink:0;padding:0 10px}
.headband{background:rgba(34, 34, 34, 1);height:3px}
.site-meta{flex-grow:1;text-align:center}
@media(max-width:767px){ .site-meta{text-align:center}
}
.brand{border-bottom:none;color:var(–brand-color);display:inline-block;line-height:1.375em;padding:0 40px;position:relative}
.brand:hover{color:var(–brand-hover-color)}
.site-title{font-family:”Lato”, “PingFang SC”, “Microsoft YaHei”, sans-serif;font-size:1.375em;font-weight:normal;margin:0}
.site-subtitle{color:rgba(221, 221, 221, 1);font-size:0.8125em;margin:10px 0}
.use-motion .brand{opacity:0}
.use-motion .site-title, .use-motion .site-subtitle, .use-motion .custom-logo-image{opacity:0;position:relative;top:-10px}
.site-nav-toggle, .site-nav-right{display:none}
@media(max-width:767px){ .site-nav-toggle, .site-nav-right{display:flex;flex-direction:column;justify-content:center}
}
.site-nav-toggle .toggle, .site-nav-right .toggle{color:var(–text-color);padding:10px;width:22px}
.site-nav-toggle .toggle .toggle-line, .site-nav-right .toggle .toggle-line{background:var(–text-color);border-radius:1px}
.site-nav{display:block}
@media(max-width:767px){ .site-nav{clear:both;display:none}
}
.site-nav.site-nav-on{display:block}
.menu{margin-top:20px;padding-left:0;text-align:center}
.menu-item{display:inline-block;list-style:none;margin:0 10px}
@media(max-width:767px){ .menu-item{display:block;margin-top:10px}
.menu-item.menu-item-search{display:none}
}
.menu-item a, .menu-item span.exturl{border-bottom:0;display:block;font-size:0.8125em;transition:border-color 0.2s ease-in-out 0s}
@media (hover: none) { .menu-item a:hover, .menu-item span.exturl:hover{border-bottom-color:rgba(0, 0, 0, 0) !important}
}
.menu-item .fa, .menu-item .fab, .menu-item .far, .menu-item .fas{margin-right:8px}
.menu-item .badge{display:inline-block;font-weight:bold;line-height:1;margin-left:0.35em;margin-top:0.35em;text-align:center;white-space:nowrap}
@media(max-width:767px){ .menu-item .badge{float:right;margin-left:0}
}
.menu-item-active a, .menu .menu-item a:hover, .menu .menu-item span.exturl:hover{background:var(–menu-item-bg-color)}
.use-motion .menu-item{opacity:0}
.book-mark-link{border-bottom:none;display:inline-block;position:fixed;right:30px;top:-10px;transition:0.3s}
@media(max-width:991px){ .book-mark-link{display:none}
}
.book-mark-link::before{color:rgba(232, 112, 78, 1);content:””;font-size:32px;line-height:1;font-family:”Font Awesome 5 Free”;font-weight:900}
.book-mark-link:hover, .book-mark-link-fixed{top:-2px}
.github-corner :hover .octo-arm{animation:560ms ease-in-out octocat-wave}
.github-corner svg{border:0;color:rgba(255, 255, 255, 1);fill:rgba(34, 34, 34, 1);position:absolute;right:0;top:0;z-index:1000}
@media(max-width:991px){ .github-corner{display:none}
.github-corner svg{color:rgba(34, 34, 34, 1);fill:rgba(255, 255, 255, 1)}
.github-corner .github-corner:hover .octo-arm{animation:none}
.github-corner .github-corner .octo-arm{animation:560ms ease-in-out octocat-wave}
}
@-moz-keyframes octocat-wave {
0%,
100%{transform:rotate(0);}
20%,
60%{transform:rotate(-25deg);}
40%,
80%{transform:rotate(10deg);}
}
@-webkit-keyframes octocat-wave {
0%,
100%{transform:rotate(0);}
20%,
60%{transform:rotate(-25deg);}
40%,
80%{transform:rotate(10deg);}
}
@-o-keyframes octocat-wave {
0%,
100%{transform:rotate(0);}
20%,
60%{transform:rotate(-25deg);}
40%,
80%{transform:rotate(10deg);}
}
@keyframes octocat-wave { 0%, 100%{}
20%, 60%{transform:rotate(-25deg)}
40%, 80%{transform:rotate(10deg)}
}
.sidebar{background:rgba(34, 34, 34, 1);bottom:0;position:fixed;top:0}
@media(max-width:991px){ .sidebar{display:none}
}
.sidebar-inner{color:rgba(153, 153, 153, 1);padding:18px 10px;text-align:center}
.cc-license{margin-top:10px;text-align:center}
.cc-license .cc-opacity{border-bottom:none;opacity:0.7}
.cc-license .cc-opacity:hover{opacity:0.9}
.cc-license img{display:inline-block}
.site-author-image{border:1px solid rgba(238, 238, 238, 1);display:block;margin:0 auto;max-width:120px;padding:2px;border-radius:50%}
.site-author-image{transition:transform 1s ease-out}
.site-author-image:hover{transform:rotateY(360deg)}
.site-author-name{color:var(–text-color);font-weight:600;margin:0;text-align:center}
.site-description{color:rgba(153, 153, 153, 1);font-size:0.8125em;margin-top:0;text-align:center}
.links-of-author{margin-top:15px}
.links-of-author a, .links-of-author span.exturl{border-bottom-color:rgba(85, 85, 85, 1);display:inline-block;font-size:0.8125em;margin-bottom:10px;margin-right:10px;vertical-align:middle;transition-delay:0s;transition-duration:0.2s;transition-timing-function:ease-in-out}
.links-of-author a::before, .links-of-author span.exturl::before{background:rgba(124, 255, 154, 1);border-radius:50%;content:” “;display:inline-block;height:4px;margin-right:3px;vertical-align:middle;width:4px}
.sidebar-button{margin-top:15px}
.sidebar-button a{border:1px solid rgba(252, 100, 35, 1);border-radius:4px;color:rgba(252, 100, 35, 1);display:inline-block;padding:0 15px}
.sidebar-button a .fa, .sidebar-button a .fab, .sidebar-button a .far, .sidebar-button a .fas{margin-right:5px}
.sidebar-button a:hover{background:rgba(252, 100, 35, 1);border:1px solid rgba(252, 100, 35, 1);color:rgba(255, 255, 255, 1)}
.sidebar-button a:hover .fa, .sidebar-button a:hover .fab, .sidebar-button a:hover .far, .sidebar-button a:hover .fas{color:rgba(255, 255, 255, 1)}
.links-of-blogroll{font-size:0.8125em;margin-top:10px}
.links-of-blogroll-title{font-size:0.875em;font-weight:600;margin-top:0}
.links-of-blogroll-list{list-style:none;margin:0;padding:0}
#sidebar-dimmer{display:none}
@media(max-width:767px){ #sidebar-dimmer{background:rgba(0, 0, 0, 1);display:block;height:100%;left:100%;opacity:0;position:fixed;top:0;width:100%;z-index:1100}
.sidebar-active+#sidebar-dimmer{opacity:0.7;transform:translateX(-100%);transition:opacity 0.5s}
}
.sidebar-nav{margin:0;padding-bottom:20px;padding-left:0}
.sidebar-nav li{border-bottom:1px solid rgba(0, 0, 0, 0);color:var(–text-color);cursor:pointer;display:inline-block;font-size:0.875em}
.sidebar-nav li.sidebar-nav-overview{margin-left:10px}
.sidebar-nav li:hover{color:rgba(252, 100, 35, 1)}
.sidebar-nav .sidebar-nav-active{border-bottom-color:rgba(252, 100, 35, 1);color:rgba(252, 100, 35, 1)}
.sidebar-nav .sidebar-nav-active:hover{color:rgba(252, 100, 35, 1)}
.sidebar-panel{display:none;overflow-x:hidden;overflow-y:auto}
.sidebar-panel-active{display:block}
.sidebar-toggle{background:rgba(34, 34, 34, 1);bottom:45px;cursor:pointer;height:14px;left:30px;padding:5px;position:fixed;width:14px;z-index:1300}
@media(max-width:991px){ .sidebar-toggle{left:20px;opacity:0.8;display:none}
}
.sidebar-toggle:hover .toggle-line{background:rgba(252, 100, 35, 1)}
.post-toc{font-size:0.875em}
.post-toc ol{list-style:none;margin:0;padding:0 2px 5px 10px;text-align:left}
.post-toc ol>ol{padding-left:0}
.post-toc ol a{transition:all 0.2s ease-in-out 0s}
.post-toc .nav-item{line-height:1.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-toc .nav .nav-child{display:block}
.post-toc .nav .active>.nav-child{display:block}
.post-toc .nav .active-current>.nav-child{display:block}
.post-toc .nav .active-current>.nav-child>.nav-item{display:block}
.post-toc .nav .active>a{border-bottom-color:rgba(252, 100, 35, 1);color:rgba(252, 100, 35, 1)}
.post-toc .nav .active-current>a{color:rgba(252, 100, 35, 1)}
.post-toc .nav .active-current>a:hover{color:rgba(252, 100, 35, 1)}
.site-state{display:flex;justify-content:center;line-height:1.4;margin-top:10px;overflow:hidden;text-align:center;white-space:nowrap}
.site-state-item{padding:0 15px}
.site-state-item:not(:first-child){border-left:1px solid rgba(238, 238, 238, 1)}
.site-state-item a{border-bottom:none}
.site-state-item-count{display:block;font-size:1em;font-weight:600;text-align:center}
.site-state-item-name{color:rgba(153, 153, 153, 1);font-size:0.8125em}
.footer{color:rgba(153, 153, 153, 1);font-size:0.875em;padding:20px 0}
.footer.footer-fixed{bottom:0;left:0;position:absolute;right:0}
.footer-inner{box-sizing:border-box;margin:0 auto;text-align:center;width:calc(100% – 20px)}
@media(min-width:1200px){ .footer-inner{width:1160px}
}
@media(min-width:1600px){ .footer-inner{width:73%}
}
.languages{display:inline-block;font-size:1.125em;position:relative}
.languages .lang-select-label span{margin:0 0.5em}
.languages .lang-select{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}
.with-love{color:rgba(255, 51, 72, 1);display:inline-block;margin:0 5px;animation:1.33s ease-in-out infinite iconanimate}
.powered-by, .theme-info{display:inline-block}
@-moz-keyframes iconAnimate {
0%,
100%{transform:scale(1);}
10%,
30%{transform:scale(0.9);}
20%,
40%,
60%,
80%{transform:scale(1.1);}
50%,
70%{transform:scale(1.1);}
}
@-webkit-keyframes iconAnimate {
0%,
100%{transform:scale(1);}
10%,
30%{transform:scale(0.9);}
20%,
40%,
60%,
80%{transform:scale(1.1);}
50%,
70%{transform:scale(1.1);}
}
@-o-keyframes iconAnimate {
0%,
100%{transform:scale(1);}
10%,
30%{transform:scale(0.9);}
20%,
40%,
60%,
80%{transform:scale(1.1);}
50%,
70%{transform:scale(1.1);}
}
@keyframes iconAnimate { 0%, 100%{transform:scale(1)}
10%, 30%{transform:scale(0.9)}
20%, 40%, 60%, 80%{transform:scale(1.1)}
50%, 70%{transform:scale(1.1)}
}
.back-to-top{font-size:12px;text-align:center;transition-delay:0s;transition-duration:0.2s;transition-timing-function:ease-in-out}
.back-to-top{background:rgba(0, 0, 0, 0);margin:8px -10px -20px;opacity:0}
.back-to-top.back-to-top-on{cursor:pointer;opacity:0.6}
.back-to-top.back-to-top-on:hover{opacity:0.8}
.reading-progress-bar{background:rgba(232, 112, 78, 1);display:block;height:3px;left:0;position:fixed;width:0;z-index:1500;top:0}
.post-body{font-family:”Lato”, “PingFang SC”, “Microsoft YaHei”, sans-serif;overflow-wrap:break-word;word-wrap:break-word}
@media(min-width:1200px){ .post-body{font-size:1.125em}
}
.post-body .exturl .fa{font-size:0.875em;margin-left:4px}
.post-body .image-caption, .post-body .figure .caption{color:rgba(153, 153, 153, 1);font-size:0.875em;font-weight:bold;line-height:1;margin:-20px auto 15px;text-align:center}
.post-sticky-flag{display:inline-block;transform:rotate(30deg)}
.post-button{margin-top:40px;text-align:center}
.use-motion .post-block, .use-motion .pagination, .use-motion .comments{opacity:0}
.use-motion .post-header{opacity:0}
.use-motion .post-body{opacity:0}
.use-motion .collection-header{opacity:0}
.posts-collapse{margin-left:35px;position:relative}
@media(max-width:767px){ .posts-collapse{margin-left:0;margin-right:0}
}
.posts-collapse .collection-title{font-size:1.125em;position:relative}
.posts-collapse .collection-title::before{background:rgba(153, 153, 153, 1);border:1px solid rgba(255, 255, 255, 1);border-radius:50%;content:” “;height:10px;left:0;margin-left:-6px;margin-top:-4px;position:absolute;top:50%;width:10px}
.posts-collapse .collection-year{font-size:1.5em;font-weight:bold;margin:60px 0;position:relative}
.posts-collapse .collection-year::before{background:rgba(187, 187, 187, 1);border-radius:50%;content:” “;height:8px;left:0;margin-left:-4px;margin-top:-4px;position:absolute;top:50%;width:8px}
.posts-collapse .collection-header{display:block;margin:0 0 0 20px}
.posts-collapse .collection-header small{color:rgba(187, 187, 187, 1);margin-left:5px}
.posts-collapse .post-header{border-bottom:1px dashed rgba(204, 204, 204, 1);margin:30px 0;padding-left:15px;position:relative;transition:border 0.2s ease-in-out 0s}
.posts-collapse .post-header::before{background:rgba(187, 187, 187, 1);border:1px solid rgba(255, 255, 255, 1);border-radius:50%;content:” “;height:6px;left:0;margin-left:-4px;position:absolute;top:0.75em;transition:background 0.2s ease-in-out 0s;width:6px}
.posts-collapse .post-header:hover{border-bottom-color:rgba(102, 102, 102, 1)}
.posts-collapse .post-header:hover::before{background:rgba(34, 34, 34, 1)}
.posts-collapse .post-meta{display:inline;font-size:0.75em;margin-right:10px}
.posts-collapse .post-title{display:inline}
.posts-collapse .post-title a, .posts-collapse .post-title span.exturl{border-bottom:none;color:var(–link-color)}
.posts-collapse .post-title .fa-external-link-alt{font-size:0.875em;margin-left:5px}
.posts-collapse::before{background:rgba(245, 245, 245, 1);content:” “;height:100%;left:0;margin-left:-2px;position:absolute;top:1.25em;width:4px}
.post-eof{background:rgba(204, 204, 204, 1);height:1px;margin:80px auto 60px;text-align:center;width:8%}
.post-block:last-of-type .post-eof{display:none}
.content{padding-top:40px}
@media(min-width:992px){ .post-body{text-align:justify}
}
@media(max-width:991px){ .post-body{text-align:justify}
}
.post-body h1, .post-body h2, .post-body h3, .post-body h4, .post-body h5, .post-body h6{padding-top:10px}
.post-body h1 .header-anchor, .post-body h2 .header-anchor, .post-body h3 .header-anchor, .post-body h4 .header-anchor, .post-body h5 .header-anchor, .post-body h6 .header-anchor{border-bottom-style:none;color:rgba(204, 204, 204, 1);float:right;margin-left:10px;visibility:hidden}
.post-body h1 .header-anchor:hover, .post-body h2 .header-anchor:hover, .post-body h3 .header-anchor:hover, .post-body h4 .header-anchor:hover, .post-body h5 .header-anchor:hover, .post-body h6 .header-anchor:hover{color:inherit}
.post-body h1:hover .header-anchor, .post-body h2:hover .header-anchor, .post-body h3:hover .header-anchor, .post-body h4:hover .header-anchor, .post-body h5:hover .header-anchor, .post-body h6:hover .header-anchor{visibility:visible}
.post-body iframe, .post-body img, .post-body video{margin-bottom:20px}
.post-body .video-container{height:0;margin-bottom:20px;overflow:hidden;padding-top:75%;position:relative;width:100%}
.post-body .video-container iframe, .post-body .video-container object, .post-body .video-container embed{height:100%;left:0;margin:0;position:absolute;top:0;width:100%}
.post-gallery{align-items:center;display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px}
@media(max-width:767px){ .post-gallery{grid-template-columns:1fr 1fr}
}
.post-gallery a{border:0}
.post-gallery img{margin:0}
.posts-expand .post-header{font-size:1.125em}
.posts-expand .post-title{font-size:1.5em;font-weight:normal;text-align:center;overflow-wrap:break-word;word-wrap:break-word}
.posts-expand .post-title-link{border-bottom:none;color:var(–link-color);display:inline-block;position:relative;vertical-align:top}
.posts-expand .post-title-link::before{background:var(–link-color);bottom:0;content:””;height:2px;left:0;position:absolute;transform:scaleX(0);visibility:hidden;width:100%;transition-delay:0s;transition-duration:0.2s;transition-timing-function:ease-in-out}
.posts-expand .post-title-link:hover::before{transform:scale(1);visibility:visible}
.posts-expand .post-title-link .fa-external-link-alt{font-size:0.875em;margin-left:5px}
.posts-expand .post-meta{color:rgba(153, 153, 153, 1);font-family:”Lato”, “PingFang SC”, “Microsoft YaHei”, sans-serif;font-size:0.75em;margin:3px 0 60px;text-align:center}
.posts-expand .post-meta .post-description{font-size:0.875em;margin-top:2px}
.posts-expand .post-meta time{border-bottom:1px dashed rgba(153, 153, 153, 1);cursor:pointer}
.post-meta .post-meta-item+.post-meta-item::before{content:”|”;margin:0 0.5em}
.post-meta-divider{margin:0 0.5em}
.post-meta-item-icon{margin-right:3px}
@media(max-width:991px){ .post-meta-item-icon{display:inline-block}
}
@media(max-width:991px){ .post-meta-item-text{display:none}
}
.post-nav{border-top:1px solid rgba(238, 238, 238, 1);display:flex;justify-content:space-between;margin-top:15px;padding:10px 5px 0}
.post-nav-item{flex:1}
.post-nav-item a{border-bottom:none;display:block;font-size:0.875em;line-height:1.6;position:relative}
.post-nav-item a:active{top:2px}
.post-nav-item .fa{font-size:0.75em}
.post-nav-item:first-child{margin-right:15px}
.post-nav-item:first-child .fa{margin-right:5px}
.post-nav-item:last-child{margin-left:15px;text-align:right}
.post-nav-item:last-child .fa{margin-left:5px}
.rtl.post-body p, .rtl.post-body a, .rtl.post-body h1, .rtl.post-body h2, .rtl.post-body h3, .rtl.post-body h4, .rtl.post-body h5, .rtl.post-body h6, .rtl.post-body li, .rtl.post-body ul, .rtl.post-body ol{direction:rtl;font-family:UKIJ Ekran}
.rtl.post-title{font-family:UKIJ Ekran}
.post-tags{margin-top:40px;text-align:center}
.post-tags a{display:inline-block;font-size:0.8125em}
.post-tags a:not(:last-child){margin-right:10px}
.post-widgets{border-top:1px solid rgba(238, 238, 238, 1);margin-top:15px;text-align:center}
.wp_rating{height:20px;line-height:20px;margin-top:10px;padding-top:6px;text-align:center}
.social-like{display:flex;font-size:0.875em;justify-content:center;text-align:center}
.reward-container{margin:20px auto;padding:10px 0;text-align:center;width:90%}
.reward-container button{background:rgba(0, 0, 0, 0);border:1px solid rgba(252, 100, 35, 1);border-radius:0;color:rgba(252, 100, 35, 1);cursor:pointer;line-height:2;outline:0;padding:0 15px;vertical-align:text-top}
.reward-container button:hover{background:rgba(252, 100, 35, 1);border:1px solid rgba(0, 0, 0, 0);color:rgba(250, 147, 102, 1)}
#qr{padding-top:20px}
#qr a{border:0}
#qr img{display:inline-block;margin:0.8em 2em 0;max-width:100%;width:180px}
#qr p{text-align:center}
.post-copyright{background:var(–card-bg-color);border-left:3px solid rgba(255, 42, 42, 1);list-style:none;margin:2em 0 0;padding:0.5em 1em}
.category-all-page .category-all-title{text-align:center}
.category-all-page .category-all{margin-top:20px}
.category-all-page .category-list{list-style:none;margin:0;padding:0}
.category-all-page .category-list-item{margin:5px 10px}
.category-all-page .category-list-count{color:rgba(187, 187, 187, 1)}
.category-all-page .category-list-count::before{content:” (“;display:inline}
.category-all-page .category-list-count::after{content:”) “;display:inline}
.category-all-page .category-list-child{padding-left:10px}
.event-list{padding:0}
.event-list hr{background:rgba(34, 34, 34, 1);margin:20px 0 45px}
.event-list hr::after{background:rgba(34, 34, 34, 1);color:rgba(255, 255, 255, 1);content:”NOW”;display:inline-block;font-weight:bold;padding:0 5px;text-align:right}
.event-list .event{background:rgba(34, 34, 34, 1);margin:20px 0;min-height:40px;padding:15px 0 15px 10px}
.event-list .event .event-summary{color:rgba(255, 255, 255, 1);margin:0;padding-bottom:3px}
.event-list .event .event-summary::before{animation:1s ease-in-out infinite alternate dot-flash;color:rgba(255, 255, 255, 1);content:””;display:inline-block;font-size:10px;margin-right:25px;vertical-align:middle;font-family:”Font Awesome 5 Free”;font-weight:900}
.event-list .event .event-relative-time{color:rgba(187, 187, 187, 1);display:inline-block;font-size:12px;font-weight:normal;padding-left:12px}
.event-list .event .event-details{color:rgba(255, 255, 255, 1);display:block;line-height:18px;margin-left:56px;padding-bottom:6px;padding-top:3px;text-indent:-24px}
.event-list .event .event-details::before{color:rgba(255, 255, 255, 1);display:inline-block;margin-right:9px;text-align:center;text-indent:0;width:14px;font-family:”Font Awesome 5 Free”;font-weight:900}
.event-list .event .event-details.event-location::before{content:””}
.event-list .event .event-details.event-duration::before{content:””}
.event-list .event-past{background:rgba(245, 245, 245, 1)}
.event-list .event-past .event-summary, .event-list .event-past .event-details{color:rgba(187, 187, 187, 1);opacity:0.9}
.event-list .event-past .event-summary::before, .event-list .event-past .event-details::before{animation:none;color:rgba(187, 187, 187, 1)}
@-moz-keyframes dot-flash {
from{opacity:1;transform:scale(1);}
to{opacity:0;transform:scale(0.8);}
}
@-webkit-keyframes dot-flash {
from{opacity:1;transform:scale(1);}
to{opacity:0;transform:scale(0.8);}
}
@-o-keyframes dot-flash {
from{opacity:1;transform:scale(1);}
to{opacity:0;transform:scale(0.8);}
}
@keyframes dot-flash { 0%{opacity:1;transform:scale(1)}
100%{opacity:0;transform:scale(0.8)}
}
ul.breadcrumb{font-size:0.75em;list-style:none;margin:1em 0;padding:0 2em;text-align:center}
ul.breadcrumb li{display:inline}
ul.breadcrumb li+li::before{content:”/ “;font-weight:normal;padding:0.5em}
ul.breadcrumb li+li:last-child{font-weight:bold}
.tag-cloud{text-align:center}
.tag-cloud a{display:inline-block;margin:10px}
.tag-cloud a:hover{color:var(–link-hover-color) !important}
.gt-header a, .gt-comments a, .gt-popup a{border-bottom:none}
.gt-container .gt-popup .gt-action.is–active::before{top:0.7em}
.search-pop-overlay{background:rgba(0, 0, 0, 0);height:100%;left:0;position:fixed;top:0;transition:visibility 0s linear 0.2s, background 0.2s;visibility:hidden;width:100%;z-index:1400}
.search-pop-overlay.search-active{background:rgba(0, 0, 0, 0.3);transition:background 0.2s;visibility:visible}
.search-popup{background:var(–card-bg-color);border-radius:5px;height:80%;left:calc(50% – 350px);position:fixed;top:10%;transform:scale(0);transition:transform 0.2s;width:700px;z-index:1500}
.search-active .search-popup{transform:scale(1)}
@media(max-width:767px){ .search-popup{border-radius:0;height:100%;left:0;margin:0;top:0;width:100%}
}
.search-popup .search-icon, .search-popup .popup-btn-close{color:rgba(153, 153, 153, 1);font-size:18px;padding:0 10px}
.search-popup .popup-btn-close{cursor:pointer}
.search-popup .popup-btn-close:hover .fa{color:rgba(34, 34, 34, 1)}
.search-popup .search-header{background:rgba(238, 238, 238, 1);border-top-left-radius:5px;border-top-right-radius:5px;display:flex;padding:5px}
.search-popup input.search-input{background:rgba(0, 0, 0, 0);border:0;outline:0;width:100%}
.search-popup input.search-input::-webkit-search-cancel-button{display:none}
.search-popup .search-input-container{flex-grow:1;padding:2px}
.search-popup ul.search-result-list{margin:0 5px;padding:0;width:100%}
.search-popup p.search-result{border-bottom:1px dashed rgba(204, 204, 204, 1);padding:5px 0}
.search-popup a.search-result-title{font-weight:bold}
.search-popup .search-keyword{border-bottom:1px dashed rgba(255, 42, 42, 1);color:rgba(255, 42, 42, 1);font-weight:bold}
.search-popup #search-result{display:flex;height:calc(100% – 55px);overflow:auto;padding:5px 25px}
.search-popup #no-result{color:rgba(204, 204, 204, 1);margin:auto}
.popular-posts-header{border-bottom:1px solid rgba(238, 238, 238, 1);display:block;font-size:1.125em;margin-bottom:10px;margin-top:60px}
.popular-posts{padding:0}
.popular-posts .popular-posts-item{margin-left:2em}
.popular-posts .popular-posts-item .popular-posts-title{font-size:0.875em;font-weight:normal;line-height:2.4;margin:0}
mjx-container[jax=”CHTML”][display=”true”], .has-jax{}
mjx-container+br{display:none}
.header{margin:0 auto;position:relative;width:calc(100% – 20px)}
@media(min-width:1200px){ .header{width:1160px}
}
@media(min-width:1600px){ .header{width:73%}
}
@media(max-width:991px){ .header{width:auto}
}
.header-inner{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12);overflow:hidden;padding:0;position:absolute;top:0;width:240px}
@media(min-width:1200px){ .header-inner{width:240px}
}
@media(max-width:991px){ .header-inner{position:relative;width:auto}
}
.main-inner{align-items:flex-start;display:flex;justify-content:space-between}
@media(max-width:991px){ .main-inner{width:auto}
}
.content-wrap{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12);box-sizing:border-box;padding:40px;width:calc(100% – 252px)}
@media(max-width:991px){ .content-wrap{padding:20px;width:100%}
}
.header-inner{right:0}
.book-mark-link{left:30px}
.footer-inner{padding-right:260px}
@media(max-width:991px){ .footer-inner{padding-left:0;padding-right:0;width:auto}
}
.site-brand-container{background:rgba(34, 34, 34, 1)}
@media(max-width:991px){ .site-brand-container{box-shadow:0 0 16px rgba(0, 0, 0, 0.5)}
}
.site-meta{padding:20px 0}
.brand{padding:0}
.site-subtitle{margin:10px 10px 0}
.custom-logo-image{margin-top:20px}
@media(max-width:991px){ .custom-logo-image{display:none}
}
@media(min-width:768px) and (max-width:991px){ .site-nav-toggle, .site-nav-right{display:flex;flex-direction:column;justify-content:center}
}
.site-nav-toggle .toggle, .site-nav-right .toggle{color:rgba(255, 255, 255, 1)}
.site-nav-toggle .toggle .toggle-line, .site-nav-right .toggle .toggle-line{background:rgba(255, 255, 255, 1)}
@media(min-width:768px) and (max-width:991px){ .site-nav{display:none}
}
.menu .menu-item{display:block;margin:0}
.menu .menu-item a, .menu .menu-item span.exturl{padding:5px 20px;position:relative;text-align:left;transition-property:background-color}
@media(max-width:991px){ .menu .menu-item.menu-item-search{display:none}
}
.menu .menu-item .badge{background:rgba(204, 204, 204, 1);border-radius:10px;color:rgba(255, 255, 255, 1);float:right;padding:2px 5px;text-shadow:1px 1px rgba(0, 0, 0, 0.1);vertical-align:middle}
.sub-menu{background:var(–content-bg-color);border-bottom:1px solid rgba(221, 221, 221, 1);margin:0;padding:6px 0}
.sub-menu .menu-item{display:inline-block}
.sub-menu .menu-item a, .sub-menu .menu-item span.exturl{background:rgba(0, 0, 0, 0);margin:5px 10px}
.sub-menu .menu-item a:hover, .sub-menu .menu-item span.exturl:hover{background:rgba(0, 0, 0, 0);color:rgba(252, 100, 35, 1)}
.sub-menu .menu-item-active a{border-bottom-color:rgba(252, 100, 35, 1);color:rgba(252, 100, 35, 1)}
.sub-menu .menu-item-active a:hover{border-bottom-color:rgba(252, 100, 35, 1)}
.sidebar{background:var(–body-bg-color);box-shadow:none;margin-top:100%;position:static;width:240px}
@media(max-width:991px){ .sidebar{display:none}
}
.sidebar-toggle{display:none}
.sidebar-inner{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);box-sizing:border-box;color:var(–text-color);width:240px;opacity:0}
.sidebar-inner.affix{position:fixed;top:12px}
.sidebar-inner.affix-bottom{position:absolute}
.site-state-item{padding:0 10px}
.sidebar-button{border-bottom:1px dotted rgba(204, 204, 204, 1);border-top:1px dotted rgba(204, 204, 204, 1);margin-top:10px;text-align:center}
.sidebar-button a{border:0;color:rgba(252, 100, 35, 1);display:block}
.sidebar-button a:hover{background:none;border:0;color:rgba(227, 70, 3, 1)}
.sidebar-button a:hover .fa, .sidebar-button a:hover .fab, .sidebar-button a:hover .far, .sidebar-button a:hover .fas{color:rgba(227, 70, 3, 1)}
.links-of-author{display:flex;flex-wrap:wrap;margin-top:10px;justify-content:center}
.links-of-author-item{margin:5px 0 0}
.links-of-author-item a, .links-of-author-item span.exturl{box-sizing:border-box;display:inline-block;margin-bottom:0;margin-right:0;max-width:216px;overflow:hidden;padding:0 5px;text-overflow:ellipsis;white-space:nowrap}
.links-of-author-item a, .links-of-author-item span.exturl{border-bottom:none;display:block;text-decoration:none}
.links-of-author-item a::before, .links-of-author-item span.exturl::before{display:none}
.links-of-author-item a:hover, .links-of-author-item span.exturl:hover{background:var(–body-bg-color);border-radius:4px}
.links-of-author-item .fa, .links-of-author-item .fab, .links-of-author-item .far, .links-of-author-item .fas{margin-right:2px}
.links-of-blogroll-item{padding:0}
.back-to-top{background:var(–body-bg-color);margin:-4px -10px -18px}
.back-to-top.back-to-top-on{margin-top:16px}
.content-wrap{box-shadow:initial}
.post-block{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12);padding:40px}
.post-block+.post-block{box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);margin-top:12px}
.comments{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);margin-top:12px;padding:40px}
.tabs-comment{margin-top:1em}
.content{padding-top:initial}
.post-eof{display:none}
.pagination{background:var(–content-bg-color);box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);margin:12px 0 0;padding:10px 0}
.pagination .prev, .pagination .next, .pagination .page-number{margin-bottom:initial;top:initial}
.main{padding-bottom:initial}
.footer{bottom:auto}
.sub-menu{box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12)}
.sub-menu+.content .post-block{box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);margin-top:12px}
@media(min-width:768px) and (max-width:991px){ .sub-menu+.content .post-block{margin-top:10px}
}
@media(max-width:767px){ .sub-menu+.content .post-block{margin-top:8px}
}
.post-body h1, .post-body h2{border-bottom:1px solid rgba(238, 238, 238, 1)}
.post-body h3{border-bottom:1px dotted rgba(238, 238, 238, 1)}
@media(min-width:768px) and (max-width:991px){ .content-wrap{padding:10px}
.posts-expand .post-button{margin-top:20px}
.post-block{box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);padding:20px}
.post-block+.post-block{margin-top:10px}
.comments{margin-top:10px;padding:10px 20px}
.pagination{margin:10px 0 0}
}
@media(max-width:767px){ .content-wrap{padding:8px}
.posts-expand .post-button{margin:12px 0}
.post-block{box-shadow:0 2px 2px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.06), 0 1px 5px rgba(0, 0, 0, 0.12), 0 -1px 0.5px rgba(0, 0, 0, 0.09);padding:12px}
.post-block+.post-block{margin-top:8px}
.comments{margin-top:8px;padding:10px 12px}
.pagination{margin:8px 0 0}
}
.fa, .fab, .fad, .fal, .far, .fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}
.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-0.0667em}
.fa-xs{font-size:0.75em}
.fa-sm{font-size:0.875em}
.fa-1x{font-size:1em}
.fa-2x{font-size:2em}
.fa-3x{font-size:3em}
.fa-4x{font-size:4em}
.fa-5x{font-size:5em}
.fa-6x{font-size:6em}
.fa-7x{font-size:7em}
.fa-8x{font-size:8em}
.fa-9x{font-size:9em}
.fa-10x{font-size:10em}
.fa-fw{text-align:center;width:1.25em}
.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}
.fa-ul>li{position:relative}
.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}
.fa-border{border:0.08em solid rgba(238, 238, 238, 1);border-radius:0.1em;padding:0.2em 0.25em 0.15em}
.fa-pull-left{float:left}
.fa-pull-right{float:right}
.fa.fa-pull-left, .fab.fa-pull-left, .fal.fa-pull-left, .far.fa-pull-left, .fas.fa-pull-left{margin-right:0.3em}
.fa.fa-pull-right, .fab.fa-pull-right, .fal.fa-pull-right, .far.fa-pull-right, .fas.fa-pull-right{margin-left:0.3em}
.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:2s linear infinite fa-spin}
.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:1s steps(8) infinite fa-spin}
@-webkit-keyframes fa-spin {
0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}
}
@keyframes fa-spin { 0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
100%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}
}
.fa-rotate-90{-ms-filter:”progid:DXImageTransform.Microsoft.BasicImage(rotation=1)”;-webkit-transform:rotate(90deg);transform:rotate(90deg)}
.fa-rotate-180{-ms-filter:”progid:DXImageTransform.Microsoft.BasicImage(rotation=2)”;-webkit-transform:rotate(180deg);transform:rotate(180deg)}
.fa-rotate-270{-ms-filter:”progid:DXImageTransform.Microsoft.BasicImage(rotation=3)”;-webkit-transform:rotate(270deg);transform:rotate(270deg)}
.fa-flip-horizontal{-ms-filter:”progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)”;-webkit-transform:scaleX(-1);transform:scaleX(-1)}
.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical, .fa-flip-vertical{-ms-filter:”progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)”}
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both, :root .fa-flip-horizontal, :root .fa-flip-vertical, :root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270{-webkit-filter:none;filter:none}
.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}
.fa-stack-1x, .fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}
.fa-stack-1x{line-height:inherit}
.fa-stack-2x{font-size:2em}
.fa-inverse{color:rgba(255, 255, 255, 1)}
.fa-500px:before{content:””}
.fa-accessible-icon:before{content:””}
.fa-accusoft:before{content:””}
.fa-acquisitions-incorporated:before{content:””}
.fa-ad:before{content:””}
.fa-address-book:before{content:””}
.fa-address-card:before{content:””}
.fa-adjust:before{content:””}
.fa-adn:before{content:””}
.fa-adobe:before{content:””}
.fa-adversal:before{content:””}
.fa-affiliatetheme:before{content:””}
.fa-air-freshener:before{content:””}
.fa-airbnb:before{content:””}
.fa-algolia:before{content:””}
.fa-align-center:before{content:””}
.fa-align-justify:before{content:””}
.fa-align-left:before{content:””}
.fa-align-right:before{content:””}
.fa-alipay:before{content:””}
.fa-allergies:before{content:””}
.fa-amazon:before{content:””}
.fa-amazon-pay:before{content:””}
.fa-ambulance:before{content:””}
.fa-american-sign-language-interpreting:before{content:””}
.fa-amilia:before{content:””}
.fa-anchor:before{content:””}
.fa-android:before{content:””}
.fa-angellist:before{content:””}
.fa-angle-double-down:before{content:””}
.fa-angle-double-left:before{content:””}
.fa-angle-double-right:before{content:””}
.fa-angle-double-up:before{content:””}
.fa-angle-down:before{content:””}
.fa-angle-left:before{content:””}
.fa-angle-right:before{content:””}
.fa-angle-up:before{content:””}
.fa-angry:before{content:””}
.fa-angrycreative:before{content:””}
.fa-angular:before{content:””}
.fa-ankh:before{content:””}
.fa-app-store:before{content:””}
.fa-app-store-ios:before{content:””}
.fa-apper:before{content:””}
.fa-apple:before{content:””}
.fa-apple-alt:before{content:””}
.fa-apple-pay:before{content:””}
.fa-archive:before{content:””}
.fa-archway:before{content:””}
.fa-arrow-alt-circle-down:before{content:””}
.fa-arrow-alt-circle-left:before{content:””}
.fa-arrow-alt-circle-right:before{content:””}
.fa-arrow-alt-circle-up:before{content:””}
.fa-arrow-circle-down:before{content:””}
.fa-arrow-circle-left:before{content:””}
.fa-arrow-circle-right:before{content:””}
.fa-arrow-circle-up:before{content:””}
.fa-arrow-down:before{content:””}
.fa-arrow-left:before{content:””}
.fa-arrow-right:before{content:””}
.fa-arrow-up:before{content:””}
.fa-arrows-alt:before{content:””}
.fa-arrows-alt-h:before{content:””}
.fa-arrows-alt-v:before{content:””}
.fa-artstation:before{content:””}
.fa-assistive-listening-systems:before{content:””}
.fa-asterisk:before{content:””}
.fa-asymmetrik:before{content:””}
.fa-at:before{content:””}
.fa-atlas:before{content:””}
.fa-atlassian:before{content:””}
.fa-atom:before{content:””}
.fa-audible:before{content:””}
.fa-audio-description:before{content:””}
.fa-autoprefixer:before{content:””}
.fa-avianex:before{content:””}
.fa-aviato:before{content:””}
.fa-award:before{content:””}
.fa-aws:before{content:””}
.fa-baby:before{content:””}
.fa-baby-carriage:before{content:””}
.fa-backspace:before{content:””}
.fa-backward:before{content:””}
.fa-bacon:before{content:””}
.fa-bahai:before{content:””}
.fa-balance-scale:before{content:””}
.fa-balance-scale-left:before{content:””}
.fa-balance-scale-right:before{content:””}
.fa-ban:before{content:””}
.fa-band-aid:before{content:””}
.fa-bandcamp:before{content:””}
.fa-barcode:before{content:””}
.fa-bars:before{content:””}
.fa-baseball-ball:before{content:””}
.fa-basketball-ball:before{content:””}
.fa-bath:before{content:””}
.fa-battery-empty:before{content:””}
.fa-battery-full:before{content:””}
.fa-battery-half:before{content:””}
.fa-battery-quarter:before{content:””}
.fa-battery-three-quarters:before{content:””}
.fa-battle-net:before{content:””}
.fa-bed:before{content:””}
.fa-beer:before{content:””}
.fa-behance:before{content:””}
.fa-behance-square:before{content:””}
.fa-bell:before{content:””}
.fa-bell-slash:before{content:””}
.fa-bezier-curve:before{content:””}
.fa-bible:before{content:””}
.fa-bicycle:before{content:””}
.fa-biking:before{content:””}
.fa-bimobject:before{content:””}
.fa-binoculars:before{content:””}
.fa-biohazard:before{content:””}
.fa-birthday-cake:before{content:””}
.fa-bitbucket:before{content:””}
.fa-bitcoin:before{content:””}
.fa-bity:before{content:””}
.fa-black-tie:before{content:””}
.fa-blackberry:before{content:””}
.fa-blender:before{content:””}
.fa-blender-phone:before{content:””}
.fa-blind:before{content:””}
.fa-blog:before{content:””}
.fa-blogger:before{content:””}
.fa-blogger-b:before{content:””}
.fa-bluetooth:before{content:””}
.fa-bluetooth-b:before{content:””}
.fa-bold:before{content:””}
.fa-bolt:before{content:””}
.fa-bomb:before{content:””}
.fa-bone:before{content:””}
.fa-bong:before{content:””}
.fa-book:before{content:””}
.fa-book-dead:before{content:””}
.fa-book-medical:before{content:””}
.fa-book-open:before{content:””}
.fa-book-reader:before{content:””}
.fa-bookmark:before{content:””}
.fa-bootstrap:before{content:””}
.fa-border-all:before{content:””}
.fa-border-none:before{content:””}
.fa-border-style:before{content:””}
.fa-bowling-ball:before{content:””}
.fa-box:before{content:””}
.fa-box-open:before{content:””}
.fa-box-tissue:before{content:”拏”}
.fa-boxes:before{content:””}
.fa-braille:before{content:””}
.fa-brain:before{content:””}
.fa-bread-slice:before{content:””}
.fa-briefcase:before{content:””}
.fa-briefcase-medical:before{content:””}
.fa-broadcast-tower:before{content:””}
.fa-broom:before{content:””}
.fa-brush:before{content:””}
.fa-btc:before{content:””}
.fa-buffer:before{content:””}
.fa-bug:before{content:””}
.fa-building:before{content:””}
.fa-bullhorn:before{content:””}
.fa-bullseye:before{content:””}
.fa-burn:before{content:””}
.fa-buromobelexperte:before{content:””}
.fa-bus:before{content:””}
.fa-bus-alt:before{content:””}
.fa-business-time:before{content:””}
.fa-buy-n-large:before{content:””}
.fa-buysellads:before{content:””}
.fa-calculator:before{content:””}
.fa-calendar:before{content:””}
.fa-calendar-alt:before{content:””}
.fa-calendar-check:before{content:””}
.fa-calendar-day:before{content:””}
.fa-calendar-minus:before{content:””}
.fa-calendar-plus:before{content:””}
.fa-calendar-times:before{content:””}
.fa-calendar-week:before{content:””}
.fa-camera:before{content:””}
.fa-camera-retro:before{content:””}
.fa-campground:before{content:””}
.fa-canadian-maple-leaf:before{content:””}
.fa-candy-cane:before{content:””}
.fa-cannabis:before{content:””}
.fa-capsules:before{content:””}
.fa-car:before{content:””}
.fa-car-alt:before{content:””}
.fa-car-battery:before{content:””}
.fa-car-crash:before{content:””}
.fa-car-side:before{content:””}
.fa-caravan:before{content:””}
.fa-caret-down:before{content:””}
.fa-caret-left:before{content:””}
.fa-caret-right:before{content:””}
.fa-caret-square-down:before{content:””}
.fa-caret-square-left:before{content:””}
.fa-caret-square-right:before{content:””}
.fa-caret-square-up:before{content:””}
.fa-caret-up:before{content:””}
.fa-carrot:before{content:””}
.fa-cart-arrow-down:before{content:””}
.fa-cart-plus:before{content:””}
.fa-cash-register:before{content:””}
.fa-cat:before{content:””}
.fa-cc-amazon-pay:before{content:””}
.fa-cc-amex:before{content:””}
.fa-cc-apple-pay:before{content:””}
.fa-cc-diners-club:before{content:””}
.fa-cc-discover:before{content:””}
.fa-cc-jcb:before{content:””}
.fa-cc-mastercard:before{content:””}
.fa-cc-paypal:before{content:””}
.fa-cc-stripe:before{content:””}
.fa-cc-visa:before{content:””}
.fa-centercode:before{content:””}
.fa-centos:before{content:””}
.fa-certificate:before{content:””}
.fa-chair:before{content:””}
.fa-chalkboard:before{content:””}
.fa-chalkboard-teacher:before{content:””}
.fa-charging-station:before{content:””}
.fa-chart-area:before{content:””}
.fa-chart-bar:before{content:””}
.fa-chart-line:before{content:””}
.fa-chart-pie:before{content:””}
.fa-check:before{content:””}
.fa-check-circle:before{content:””}
.fa-check-double:before{content:””}
.fa-check-square:before{content:””}
.fa-cheese:before{content:””}
.fa-chess:before{content:””}
.fa-chess-bishop:before{content:””}
.fa-chess-board:before{content:””}
.fa-chess-king:before{content:””}
.fa-chess-knight:before{content:””}
.fa-chess-pawn:before{content:””}
.fa-chess-queen:before{content:””}
.fa-chess-rook:before{content:””}
.fa-chevron-circle-down:before{content:””}
.fa-chevron-circle-left:before{content:””}
.fa-chevron-circle-right:before{content:””}
.fa-chevron-circle-up:before{content:””}
.fa-chevron-down:before{content:””}
.fa-chevron-left:before{content:””}
.fa-chevron-right:before{content:””}
.fa-chevron-up:before{content:””}
.fa-child:before{content:””}
.fa-chrome:before{content:””}
.fa-chromecast:before{content:””}
.fa-church:before{content:””}
.fa-circle:before{content:””}
.fa-circle-notch:before{content:””}
.fa-city:before{content:””}
.fa-clinic-medical:before{content:””}
.fa-clipboard:before{content:””}
.fa-clipboard-check:before{content:””}
.fa-clipboard-list:before{content:””}
.fa-clock:before{content:””}
.fa-clone:before{content:””}
.fa-closed-captioning:before{content:””}
.fa-cloud:before{content:””}
.fa-cloud-download-alt:before{content:””}
.fa-cloud-meatball:before{content:””}
.fa-cloud-moon:before{content:””}
.fa-cloud-moon-rain:before{content:””}
.fa-cloud-rain:before{content:””}
.fa-cloud-showers-heavy:before{content:””}
.fa-cloud-sun:before{content:””}
.fa-cloud-sun-rain:before{content:””}
.fa-cloud-upload-alt:before{content:””}
.fa-cloudscale:before{content:””}
.fa-cloudsmith:before{content:””}
.fa-cloudversify:before{content:””}
.fa-cocktail:before{content:””}
.fa-code:before{content:””}
.fa-code-branch:before{content:””}
.fa-codepen:before{content:””}
.fa-codiepie:before{content:””}
.fa-coffee:before{content:””}
.fa-cog:before{content:””}
.fa-cogs:before{content:””}
.fa-coins:before{content:””}
.fa-columns:before{content:””}
.fa-comment:before{content:””}
.fa-comment-alt:before{content:””}
.fa-comment-dollar:before{content:””}
.fa-comment-dots:before{content:””}
.fa-comment-medical:before{content:””}
.fa-comment-slash:before{content:””}
.fa-comments:before{content:””}
.fa-comments-dollar:before{content:””}
.fa-compact-disc:before{content:””}
.fa-compass:before{content:””}
.fa-compress:before{content:””}
.fa-compress-alt:before{content:””}
.fa-compress-arrows-alt:before{content:””}
.fa-concierge-bell:before{content:””}
.fa-confluence:before{content:””}
.fa-connectdevelop:before{content:””}
.fa-contao:before{content:””}
.fa-cookie:before{content:””}
.fa-cookie-bite:before{content:””}
.fa-copy:before{content:””}
.fa-copyright:before{content:””}
.fa-cotton-bureau:before{content:””}
.fa-couch:before{content:””}
.fa-cpanel:before{content:””}
.fa-creative-commons:before{content:””}
.fa-creative-commons-by:before{content:””}
.fa-creative-commons-nc:before{content:””}
.fa-creative-commons-nc-eu:before{content:””}
.fa-creative-commons-nc-jp:before{content:””}
.fa-creative-commons-nd:before{content:””}
.fa-creative-commons-pd:before{content:””}
.fa-creative-commons-pd-alt:before{content:””}
.fa-creative-commons-remix:before{content:””}
.fa-creative-commons-sa:before{content:””}
.fa-creative-commons-sampling:before{content:””}
.fa-creative-commons-sampling-plus:before{content:””}
.fa-creative-commons-share:before{content:””}
.fa-creative-commons-zero:before{content:””}
.fa-credit-card:before{content:””}
.fa-critical-role:before{content:””}
.fa-crop:before{content:””}
.fa-crop-alt:before{content:””}
.fa-cross:before{content:””}
.fa-crosshairs:before{content:””}
.fa-crow:before{content:””}
.fa-crown:before{content:””}
.fa-crutch:before{content:””}
.fa-css3:before{content:””}
.fa-css3-alt:before{content:””}
.fa-cube:before{content:””}
.fa-cubes:before{content:””}
.fa-cut:before{content:””}
.fa-cuttlefish:before{content:””}
.fa-d-and-d:before{content:””}
.fa-d-and-d-beyond:before{content:””}
.fa-dailymotion:before{content:”勒”}
.fa-dashcube:before{content:””}
.fa-database:before{content:””}
.fa-deaf:before{content:””}
.fa-delicious:before{content:””}
.fa-democrat:before{content:””}
.fa-deploydog:before{content:””}
.fa-deskpro:before{content:””}
.fa-desktop:before{content:””}
.fa-dev:before{content:””}
.fa-deviantart:before{content:””}
.fa-dharmachakra:before{content:””}
.fa-dhl:before{content:””}
.fa-diagnoses:before{content:””}
.fa-diaspora:before{content:””}
.fa-dice:before{content:””}
.fa-dice-d20:before{content:””}
.fa-dice-d6:before{content:””}
.fa-dice-five:before{content:””}
.fa-dice-four:before{content:””}
.fa-dice-one:before{content:””}
.fa-dice-six:before{content:””}
.fa-dice-three:before{content:””}
.fa-dice-two:before{content:””}
.fa-digg:before{content:””}
.fa-digital-ocean:before{content:””}
.fa-digital-tachograph:before{content:””}
.fa-directions:before{content:””}
.fa-discord:before{content:””}
.fa-discourse:before{content:””}
.fa-disease:before{content:””}
.fa-divide:before{content:””}
.fa-dizzy:before{content:””}
.fa-dna:before{content:””}
.fa-dochub:before{content:””}
.fa-docker:before{content:””}
.fa-dog:before{content:””}
.fa-dollar-sign:before{content:””}
.fa-dolly:before{content:””}
.fa-dolly-flatbed:before{content:””}
.fa-donate:before{content:””}
.fa-door-closed:before{content:””}
.fa-door-open:before{content:””}
.fa-dot-circle:before{content:””}
.fa-dove:before{content:””}
.fa-download:before{content:””}
.fa-draft2digital:before{content:””}
.fa-drafting-compass:before{content:””}
.fa-dragon:before{content:””}
.fa-draw-polygon:before{content:””}
.fa-dribbble:before{content:””}
.fa-dribbble-square:before{content:””}
.fa-dropbox:before{content:””}
.fa-drum:before{content:””}
.fa-drum-steelpan:before{content:””}
.fa-drumstick-bite:before{content:””}
.fa-drupal:before{content:””}
.fa-dumbbell:before{content:””}
.fa-dumpster:before{content:””}
.fa-dumpster-fire:before{content:””}
.fa-dungeon:before{content:””}
.fa-dyalog:before{content:””}
.fa-earlybirds:before{content:””}
.fa-ebay:before{content:””}
.fa-edge:before{content:””}
.fa-edit:before{content:””}
.fa-egg:before{content:””}
.fa-eject:before{content:””}
.fa-elementor:before{content:””}
.fa-ellipsis-h:before{content:””}
.fa-ellipsis-v:before{content:””}
.fa-ello:before{content:””}
.fa-ember:before{content:””}
.fa-empire:before{content:””}
.fa-envelope:before{content:””}
.fa-envelope-open:before{content:””}
.fa-envelope-open-text:before{content:””}
.fa-envelope-square:before{content:””}
.fa-envira:before{content:””}
.fa-equals:before{content:””}
.fa-eraser:before{content:””}
.fa-erlang:before{content:””}
.fa-ethereum:before{content:””}
.fa-ethernet:before{content:””}
.fa-etsy:before{content:””}
.fa-euro-sign:before{content:””}
.fa-evernote:before{content:””}
.fa-exchange-alt:before{content:””}
.fa-exclamation:before{content:””}
.fa-exclamation-circle:before{content:””}
.fa-exclamation-triangle:before{content:””}
.fa-expand:before{content:””}
.fa-expand-alt:before{content:””}
.fa-expand-arrows-alt:before{content:””}
.fa-expeditedssl:before{content:””}
.fa-external-link-alt:before{content:””}
.fa-external-link-square-alt:before{content:””}
.fa-eye:before{content:””}
.fa-eye-dropper:before{content:””}
.fa-eye-slash:before{content:””}
.fa-facebook:before{content:””}
.fa-facebook-f:before{content:””}
.fa-facebook-messenger:before{content:””}
.fa-facebook-square:before{content:””}
.fa-fan:before{content:””}
.fa-fantasy-flight-games:before{content:””}
.fa-fast-backward:before{content:””}
.fa-fast-forward:before{content:””}
.fa-faucet:before{content:”串”}
.fa-fax:before{content:””}
.fa-feather:before{content:””}
.fa-feather-alt:before{content:””}
.fa-fedex:before{content:””}
.fa-fedora:before{content:””}
.fa-female:before{content:””}
.fa-fighter-jet:before{content:””}
.fa-figma:before{content:””}
.fa-file:before{content:””}
.fa-file-alt:before{content:””}
.fa-file-archive:before{content:””}
.fa-file-audio:before{content:””}
.fa-file-code:before{content:””}
.fa-file-contract:before{content:””}
.fa-file-csv:before{content:””}
.fa-file-download:before{content:””}
.fa-file-excel:before{content:””}
.fa-file-export:before{content:””}
.fa-file-image:before{content:””}
.fa-file-import:before{content:””}
.fa-file-invoice:before{content:””}
.fa-file-invoice-dollar:before{content:””}
.fa-file-medical:before{content:””}
.fa-file-medical-alt:before{content:””}
.fa-file-pdf:before{content:””}
.fa-file-powerpoint:before{content:””}
.fa-file-prescription:before{content:””}
.fa-file-signature:before{content:””}
.fa-file-upload:before{content:””}
.fa-file-video:before{content:””}
.fa-file-word:before{content:””}
.fa-fill:before{content:””}
.fa-fill-drip:before{content:””}
.fa-film:before{content:””}
.fa-filter:before{content:””}
.fa-fingerprint:before{content:””}
.fa-fire:before{content:””}
.fa-fire-alt:before{content:””}
.fa-fire-extinguisher:before{content:””}
.fa-firefox:before{content:””}
.fa-firefox-browser:before{content:”龜”}
.fa-first-aid:before{content:””}
.fa-first-order:before{content:””}
.fa-first-order-alt:before{content:””}
.fa-firstdraft:before{content:””}
.fa-fish:before{content:””}
.fa-fist-raised:before{content:””}
.fa-flag:before{content:””}
.fa-flag-checkered:before{content:””}
.fa-flag-usa:before{content:””}
.fa-flask:before{content:””}
.fa-flickr:before{content:””}
.fa-flipboard:before{content:””}
.fa-flushed:before{content:””}
.fa-fly:before{content:””}
.fa-folder:before{content:””}
.fa-folder-minus:before{content:””}
.fa-folder-open:before{content:””}
.fa-folder-plus:before{content:””}
.fa-font:before{content:””}
.fa-font-awesome:before{content:””}
.fa-font-awesome-alt:before{content:””}
.fa-font-awesome-flag:before{content:””}
.fa-font-awesome-logo-full:before{content:””}
.fa-fonticons:before{content:””}
.fa-fonticons-fi:before{content:””}
.fa-football-ball:before{content:””}
.fa-fort-awesome:before{content:””}
.fa-fort-awesome-alt:before{content:””}
.fa-forumbee:before{content:””}
.fa-forward:before{content:””}
.fa-foursquare:before{content:””}
.fa-free-code-camp:before{content:””}
.fa-freebsd:before{content:””}
.fa-frog:before{content:””}
.fa-frown:before{content:””}
.fa-frown-open:before{content:””}
.fa-fulcrum:before{content:””}
.fa-funnel-dollar:before{content:””}
.fa-futbol:before{content:””}
.fa-galactic-republic:before{content:””}
.fa-galactic-senate:before{content:””}
.fa-gamepad:before{content:””}
.fa-gas-pump:before{content:””}
.fa-gavel:before{content:””}
.fa-gem:before{content:””}
.fa-genderless:before{content:””}
.fa-get-pocket:before{content:””}
.fa-gg:before{content:””}
.fa-gg-circle:before{content:””}
.fa-ghost:before{content:””}
.fa-gift:before{content:””}
.fa-gifts:before{content:””}
.fa-git:before{content:””}
.fa-git-alt:before{content:””}
.fa-git-square:before{content:””}
.fa-github:before{content:””}
.fa-github-alt:before{content:””}
.fa-github-square:before{content:””}
.fa-gitkraken:before{content:””}
.fa-gitlab:before{content:””}
.fa-gitter:before{content:””}
.fa-glass-cheers:before{content:””}
.fa-glass-martini:before{content:””}
.fa-glass-martini-alt:before{content:””}
.fa-glass-whiskey:before{content:””}
.fa-glasses:before{content:””}
.fa-glide:before{content:””}
.fa-glide-g:before{content:””}
.fa-globe:before{content:””}
.fa-globe-africa:before{content:””}
.fa-globe-americas:before{content:””}
.fa-globe-asia:before{content:””}
.fa-globe-europe:before{content:””}
.fa-gofore:before{content:””}
.fa-golf-ball:before{content:””}
.fa-goodreads:before{content:””}
.fa-goodreads-g:before{content:””}
.fa-google:before{content:””}
.fa-google-drive:before{content:””}
.fa-google-play:before{content:””}
.fa-google-plus:before{content:””}
.fa-google-plus-g:before{content:””}
.fa-google-plus-square:before{content:””}
.fa-google-wallet:before{content:””}
.fa-gopuram:before{content:””}
.fa-graduation-cap:before{content:””}
.fa-gratipay:before{content:””}
.fa-grav:before{content:””}
.fa-greater-than:before{content:””}
.fa-greater-than-equal:before{content:””}
.fa-grimace:before{content:””}
.fa-grin:before{content:””}
.fa-grin-alt:before{content:””}
.fa-grin-beam:before{content:””}
.fa-grin-beam-sweat:before{content:””}
.fa-grin-hearts:before{content:””}
.fa-grin-squint:before{content:””}
.fa-grin-squint-tears:before{content:””}
.fa-grin-stars:before{content:””}
.fa-grin-tears:before{content:””}
.fa-grin-tongue:before{content:””}
.fa-grin-tongue-squint:before{content:””}
.fa-grin-tongue-wink:before{content:””}
.fa-grin-wink:before{content:””}
.fa-grip-horizontal:before{content:””}
.fa-grip-lines:before{content:””}
.fa-grip-lines-vertical:before{content:””}
.fa-grip-vertical:before{content:””}
.fa-gripfire:before{content:””}
.fa-grunt:before{content:””}
.fa-guitar:before{content:””}
.fa-gulp:before{content:””}
.fa-h-square:before{content:””}
.fa-hacker-news:before{content:””}
.fa-hacker-news-square:before{content:””}
.fa-hackerrank:before{content:””}
.fa-hamburger:before{content:””}
.fa-hammer:before{content:””}
.fa-hamsa:before{content:””}
.fa-hand-holding:before{content:””}
.fa-hand-holding-heart:before{content:””}
.fa-hand-holding-medical:before{content:”樂”}
.fa-hand-holding-usd:before{content:””}
.fa-hand-holding-water:before{content:””}
.fa-hand-lizard:before{content:””}
.fa-hand-middle-finger:before{content:””}
.fa-hand-paper:before{content:””}
.fa-hand-peace:before{content:””}
.fa-hand-point-down:before{content:””}
.fa-hand-point-left:before{content:””}
.fa-hand-point-right:before{content:””}
.fa-hand-point-up:before{content:””}
.fa-hand-pointer:before{content:””}
.fa-hand-rock:before{content:””}
.fa-hand-scissors:before{content:””}
.fa-hand-sparkles:before{content:”諾”}
.fa-hand-spock:before{content:””}
.fa-hands:before{content:””}
.fa-hands-helping:before{content:””}
.fa-hands-wash:before{content:”丹”}
.fa-handshake:before{content:””}
.fa-handshake-alt-slash:before{content:”寧”}
.fa-handshake-slash:before{content:”怒”}
.fa-hanukiah:before{content:””}
.fa-hard-hat:before{content:””}
.fa-hashtag:before{content:””}
.fa-hat-cowboy:before{content:””}
.fa-hat-cowboy-side:before{content:””}
.fa-hat-wizard:before{content:””}
.fa-hdd:before{content:””}
.fa-head-side-cough:before{content:”率”}
.fa-head-side-cough-slash:before{content:”異”}
.fa-head-side-mask:before{content:”北”}
.fa-head-side-virus:before{content:”磻”}
.fa-heading:before{content:””}
.fa-headphones:before{content:””}
.fa-headphones-alt:before{content:””}
.fa-headset:before{content:””}
.fa-heart:before{content:””}
.fa-heart-broken:before{content:””}
.fa-heartbeat:before{content:””}
.fa-helicopter:before{content:””}
.fa-highlighter:before{content:””}
.fa-hiking:before{content:””}
.fa-hippo:before{content:””}
.fa-hips:before{content:””}
.fa-hire-a-helper:before{content:””}
.fa-history:before{content:””}
.fa-hockey-puck:before{content:””}
.fa-holly-berry:before{content:””}
.fa-home:before{content:””}
.fa-hooli:before{content:””}
.fa-hornbill:before{content:””}
.fa-horse:before{content:””}
.fa-horse-head:before{content:””}
.fa-hospital:before{content:””}
.fa-hospital-alt:before{content:””}
.fa-hospital-symbol:before{content:””}
.fa-hospital-user:before{content:””}
.fa-hot-tub:before{content:””}
.fa-hotdog:before{content:””}
.fa-hotel:before{content:””}
.fa-hotjar:before{content:””}
.fa-hourglass:before{content:””}
.fa-hourglass-end:before{content:””}
.fa-hourglass-half:before{content:””}
.fa-hourglass-start:before{content:””}
.fa-house-damage:before{content:””}
.fa-house-user:before{content:”便”}
.fa-houzz:before{content:””}
.fa-hryvnia:before{content:””}
.fa-html5:before{content:””}
.fa-hubspot:before{content:””}
.fa-i-cursor:before{content:””}
.fa-ice-cream:before{content:””}
.fa-icicles:before{content:””}
.fa-icons:before{content:””}
.fa-id-badge:before{content:””}
.fa-id-card:before{content:””}
.fa-id-card-alt:before{content:””}
.fa-ideal:before{content:”邏”}
.fa-igloo:before{content:””}
.fa-image:before{content:””}
.fa-images:before{content:””}
.fa-imdb:before{content:””}
.fa-inbox:before{content:””}
.fa-indent:before{content:””}
.fa-industry:before{content:””}
.fa-infinity:before{content:””}
.fa-info:before{content:””}
.fa-info-circle:before{content:””}
.fa-instagram:before{content:””}
.fa-instagram-square:before{content:”凌”}
.fa-intercom:before{content:””}
.fa-internet-explorer:before{content:””}
.fa-invision:before{content:””}
.fa-ioxhost:before{content:””}
.fa-italic:before{content:””}
.fa-itch-io:before{content:””}
.fa-itunes:before{content:””}
.fa-itunes-note:before{content:””}
.fa-java:before{content:””}
.fa-jedi:before{content:””}
.fa-jedi-order:before{content:””}
.fa-jenkins:before{content:””}
.fa-jira:before{content:””}
.fa-joget:before{content:””}
.fa-joint:before{content:””}
.fa-joomla:before{content:””}
.fa-journal-whills:before{content:””}
.fa-js:before{content:””}
.fa-js-square:before{content:””}
.fa-jsfiddle:before{content:””}
.fa-kaaba:before{content:””}
.fa-kaggle:before{content:””}
.fa-key:before{content:””}
.fa-keybase:before{content:””}
.fa-keyboard:before{content:””}
.fa-keycdn:before{content:””}
.fa-khanda:before{content:””}
.fa-kickstarter:before{content:””}
.fa-kickstarter-k:before{content:””}
.fa-kiss:before{content:””}
.fa-kiss-beam:before{content:””}
.fa-kiss-wink-heart:before{content:””}
.fa-kiwi-bird:before{content:””}
.fa-korvue:before{content:””}
.fa-landmark:before{content:””}
.fa-language:before{content:””}
.fa-laptop:before{content:””}
.fa-laptop-code:before{content:””}
.fa-laptop-house:before{content:”復”}
.fa-laptop-medical:before{content:””}
.fa-laravel:before{content:””}
.fa-lastfm:before{content:””}
.fa-lastfm-square:before{content:””}
.fa-laugh:before{content:””}
.fa-laugh-beam:before{content:””}
.fa-laugh-squint:before{content:””}
.fa-laugh-wink:before{content:””}
.fa-layer-group:before{content:””}
.fa-leaf:before{content:””}
.fa-leanpub:before{content:””}
.fa-lemon:before{content:””}
.fa-less:before{content:””}
.fa-less-than:before{content:””}
.fa-less-than-equal:before{content:””}
.fa-level-down-alt:before{content:””}
.fa-level-up-alt:before{content:””}
.fa-life-ring:before{content:””}
.fa-lightbulb:before{content:””}
.fa-line:before{content:””}
.fa-link:before{content:””}
.fa-linkedin:before{content:””}
.fa-linkedin-in:before{content:””}
.fa-linode:before{content:””}
.fa-linux:before{content:””}
.fa-lira-sign:before{content:””}
.fa-list:before{content:””}
.fa-list-alt:before{content:””}
.fa-list-ol:before{content:””}
.fa-list-ul:before{content:””}
.fa-location-arrow:before{content:””}
.fa-lock:before{content:””}
.fa-lock-open:before{content:””}
.fa-long-arrow-alt-down:before{content:””}
.fa-long-arrow-alt-left:before{content:””}
.fa-long-arrow-alt-right:before{content:””}
.fa-long-arrow-alt-up:before{content:””}
.fa-low-vision:before{content:””}
.fa-luggage-cart:before{content:””}
.fa-lungs:before{content:””}
.fa-lungs-virus:before{content:”不”}
.fa-lyft:before{content:””}
.fa-magento:before{content:””}
.fa-magic:before{content:””}
.fa-magnet:before{content:””}
.fa-mail-bulk:before{content:””}
.fa-mailchimp:before{content:””}
.fa-male:before{content:””}
.fa-mandalorian:before{content:””}
.fa-map:before{content:””}
.fa-map-marked:before{content:””}
.fa-map-marked-alt:before{content:””}
.fa-map-marker:before{content:””}
.fa-map-marker-alt:before{content:””}
.fa-map-pin:before{content:””}
.fa-map-signs:before{content:””}
.fa-markdown:before{content:””}
.fa-marker:before{content:””}
.fa-mars:before{content:””}
.fa-mars-double:before{content:””}
.fa-mars-stroke:before{content:””}
.fa-mars-stroke-h:before{content:””}
.fa-mars-stroke-v:before{content:””}
.fa-mask:before{content:””}
.fa-mastodon:before{content:””}
.fa-maxcdn:before{content:””}
.fa-mdb:before{content:””}
.fa-medal:before{content:””}
.fa-medapps:before{content:””}
.fa-medium:before{content:””}
.fa-medium-m:before{content:””}
.fa-medkit:before{content:””}
.fa-medrt:before{content:””}
.fa-meetup:before{content:””}
.fa-megaport:before{content:””}
.fa-meh:before{content:””}
.fa-meh-blank:before{content:””}
.fa-meh-rolling-eyes:before{content:””}
.fa-memory:before{content:””}
.fa-mendeley:before{content:””}
.fa-menorah:before{content:””}
.fa-mercury:before{content:””}
.fa-meteor:before{content:””}
.fa-microblog:before{content:”駱”}
.fa-microchip:before{content:””}
.fa-microphone:before{content:””}
.fa-microphone-alt:before{content:””}
.fa-microphone-alt-slash:before{content:””}
.fa-microphone-slash:before{content:””}
.fa-microscope:before{content:””}
.fa-microsoft:before{content:””}
.fa-minus:before{content:””}
.fa-minus-circle:before{content:””}
.fa-minus-square:before{content:””}
.fa-mitten:before{content:””}
.fa-mix:before{content:””}
.fa-mixcloud:before{content:””}
.fa-mixer:before{content:”稜”}
.fa-mizuni:before{content:””}
.fa-mobile:before{content:””}
.fa-mobile-alt:before{content:””}
.fa-modx:before{content:””}
.fa-monero:before{content:””}
.fa-money-bill:before{content:””}
.fa-money-bill-alt:before{content:””}
.fa-money-bill-wave:before{content:””}
.fa-money-bill-wave-alt:before{content:””}
.fa-money-check:before{content:””}
.fa-money-check-alt:before{content:””}
.fa-monument:before{content:””}
.fa-moon:before{content:””}
.fa-mortar-pestle:before{content:””}
.fa-mosque:before{content:””}
.fa-motorcycle:before{content:””}
.fa-mountain:before{content:””}
.fa-mouse:before{content:””}
.fa-mouse-pointer:before{content:””}
.fa-mug-hot:before{content:””}
.fa-music:before{content:””}
.fa-napster:before{content:””}
.fa-neos:before{content:””}
.fa-network-wired:before{content:””}
.fa-neuter:before{content:””}
.fa-newspaper:before{content:””}
.fa-nimblr:before{content:””}
.fa-node:before{content:””}
.fa-node-js:before{content:””}
.fa-not-equal:before{content:””}
.fa-notes-medical:before{content:””}
.fa-npm:before{content:””}
.fa-ns8:before{content:””}
.fa-nutritionix:before{content:””}
.fa-object-group:before{content:””}
.fa-object-ungroup:before{content:””}
.fa-odnoklassniki:before{content:””}
.fa-odnoklassniki-square:before{content:””}
.fa-oil-can:before{content:””}
.fa-old-republic:before{content:””}
.fa-om:before{content:””}
.fa-opencart:before{content:””}
.fa-openid:before{content:””}
.fa-opera:before{content:””}
.fa-optin-monster:before{content:””}
.fa-orcid:before{content:””}
.fa-osi:before{content:””}
.fa-otter:before{content:””}
.fa-outdent:before{content:””}
.fa-page4:before{content:””}
.fa-pagelines:before{content:””}
.fa-pager:before{content:””}
.fa-paint-brush:before{content:””}
.fa-paint-roller:before{content:””}
.fa-palette:before{content:””}
.fa-palfed:before{content:””}
.fa-pallet:before{content:””}
.fa-paper-plane:before{content:””}
.fa-paperclip:before{content:””}
.fa-parachute-box:before{content:””}
.fa-paragraph:before{content:””}
.fa-parking:before{content:””}
.fa-passport:before{content:””}
.fa-pastafarianism:before{content:””}
.fa-paste:before{content:””}
.fa-patreon:before{content:””}
.fa-pause:before{content:””}
.fa-pause-circle:before{content:””}
.fa-paw:before{content:””}
.fa-paypal:before{content:””}
.fa-peace:before{content:””}
.fa-pen:before{content:””}
.fa-pen-alt:before{content:””}
.fa-pen-fancy:before{content:””}
.fa-pen-nib:before{content:””}
.fa-pen-square:before{content:””}
.fa-pencil-alt:before{content:””}
.fa-pencil-ruler:before{content:””}
.fa-penny-arcade:before{content:””}
.fa-people-arrows:before{content:”泌”}
.fa-people-carry:before{content:””}
.fa-pepper-hot:before{content:””}
.fa-percent:before{content:””}
.fa-percentage:before{content:””}
.fa-periscope:before{content:””}
.fa-person-booth:before{content:””}
.fa-phabricator:before{content:””}
.fa-phoenix-framework:before{content:””}
.fa-phoenix-squadron:before{content:””}
.fa-phone:before{content:””}
.fa-phone-alt:before{content:””}
.fa-phone-slash:before{content:””}
.fa-phone-square:before{content:””}
.fa-phone-square-alt:before{content:””}
.fa-phone-volume:before{content:””}
.fa-photo-video:before{content:””}
.fa-php:before{content:””}
.fa-pied-piper:before{content:””}
.fa-pied-piper-alt:before{content:””}
.fa-pied-piper-hat:before{content:””}
.fa-pied-piper-pp:before{content:””}
.fa-pied-piper-square:before{content:”爛”}
.fa-piggy-bank:before{content:””}
.fa-pills:before{content:””}
.fa-pinterest:before{content:””}
.fa-pinterest-p:before{content:””}
.fa-pinterest-square:before{content:””}
.fa-pizza-slice:before{content:””}
.fa-place-of-worship:before{content:””}
.fa-plane:before{content:””}
.fa-plane-arrival:before{content:””}
.fa-plane-departure:before{content:””}
.fa-plane-slash:before{content:”數”}
.fa-play:before{content:””}
.fa-play-circle:before{content:””}
.fa-playstation:before{content:””}
.fa-plug:before{content:””}
.fa-plus:before{content:””}
.fa-plus-circle:before{content:””}
.fa-plus-square:before{content:””}
.fa-podcast:before{content:””}
.fa-poll:before{content:””}
.fa-poll-h:before{content:””}
.fa-poo:before{content:””}
.fa-poo-storm:before{content:””}
.fa-poop:before{content:””}
.fa-portrait:before{content:””}
.fa-pound-sign:before{content:””}
.fa-power-off:before{content:””}
.fa-pray:before{content:””}
.fa-praying-hands:before{content:””}
.fa-prescription:before{content:””}
.fa-prescription-bottle:before{content:””}
.fa-prescription-bottle-alt:before{content:””}
.fa-print:before{content:””}
.fa-procedures:before{content:””}
.fa-product-hunt:before{content:””}
.fa-project-diagram:before{content:””}
.fa-pump-medical:before{content:”索”}
.fa-pump-soap:before{content:”參”}
.fa-pushed:before{content:””}
.fa-puzzle-piece:before{content:””}
.fa-python:before{content:””}
.fa-qq:before{content:””}
.fa-qrcode:before{content:””}
.fa-question:before{content:””}
.fa-question-circle:before{content:””}
.fa-quidditch:before{content:””}
.fa-quinscape:before{content:””}
.fa-quora:before{content:””}
.fa-quote-left:before{content:””}
.fa-quote-right:before{content:””}
.fa-quran:before{content:””}
.fa-r-project:before{content:””}
.fa-radiation:before{content:””}
.fa-radiation-alt:before{content:””}
.fa-rainbow:before{content:””}
.fa-random:before{content:””}
.fa-raspberry-pi:before{content:””}
.fa-ravelry:before{content:””}
.fa-react:before{content:””}
.fa-reacteurope:before{content:””}
.fa-readme:before{content:””}
.fa-rebel:before{content:””}
.fa-receipt:before{content:””}
.fa-record-vinyl:before{content:””}
.fa-recycle:before{content:””}
.fa-red-river:before{content:””}
.fa-reddit:before{content:””}
.fa-reddit-alien:before{content:””}
.fa-reddit-square:before{content:””}
.fa-redhat:before{content:””}
.fa-redo:before{content:””}
.fa-redo-alt:before{content:””}
.fa-registered:before{content:””}
.fa-remove-format:before{content:””}
.fa-renren:before{content:””}
.fa-reply:before{content:””}
.fa-reply-all:before{content:””}
.fa-replyd:before{content:””}
.fa-republican:before{content:””}
.fa-researchgate:before{content:””}
.fa-resolving:before{content:””}
.fa-restroom:before{content:””}
.fa-retweet:before{content:””}
.fa-rev:before{content:””}
.fa-ribbon:before{content:””}
.fa-ring:before{content:””}
.fa-road:before{content:””}
.fa-robot:before{content:””}
.fa-rocket:before{content:””}
.fa-rocketchat:before{content:””}
.fa-rockrms:before{content:””}
.fa-route:before{content:””}
.fa-rss:before{content:””}
.fa-rss-square:before{content:””}
.fa-ruble-sign:before{content:””}
.fa-ruler:before{content:””}
.fa-ruler-combined:before{content:””}
.fa-ruler-horizontal:before{content:””}
.fa-ruler-vertical:before{content:””}
.fa-running:before{content:””}
.fa-rupee-sign:before{content:””}
.fa-sad-cry:before{content:””}
.fa-sad-tear:before{content:””}
.fa-safari:before{content:””}
.fa-salesforce:before{content:””}
.fa-sass:before{content:””}
.fa-satellite:before{content:””}
.fa-satellite-dish:before{content:””}
.fa-save:before{content:””}
.fa-schlix:before{content:””}
.fa-school:before{content:””}
.fa-screwdriver:before{content:””}
.fa-scribd:before{content:””}
.fa-scroll:before{content:””}
.fa-sd-card:before{content:””}
.fa-search:before{content:””}
.fa-search-dollar:before{content:””}
.fa-search-location:before{content:””}
.fa-search-minus:before{content:””}
.fa-search-plus:before{content:””}
.fa-searchengin:before{content:””}
.fa-seedling:before{content:””}
.fa-sellcast:before{content:””}
.fa-sellsy:before{content:””}
.fa-server:before{content:””}
.fa-servicestack:before{content:””}
.fa-shapes:before{content:””}
.fa-share:before{content:””}
.fa-share-alt:before{content:””}
.fa-share-alt-square:before{content:””}
.fa-share-square:before{content:””}
.fa-shekel-sign:before{content:””}
.fa-shield-alt:before{content:””}
.fa-shield-virus:before{content:”塞”}
.fa-ship:before{content:””}
.fa-shipping-fast:before{content:””}
.fa-shirtsinbulk:before{content:””}
.fa-shoe-prints:before{content:””}
.fa-shopify:before{content:”綾”}
.fa-shopping-bag:before{content:””}
.fa-shopping-basket:before{content:””}
.fa-shopping-cart:before{content:””}
.fa-shopware:before{content:””}
.fa-shower:before{content:””}
.fa-shuttle-van:before{content:””}
.fa-sign:before{content:””}
.fa-sign-in-alt:before{content:””}
.fa-sign-language:before{content:””}
.fa-sign-out-alt:before{content:””}
.fa-signal:before{content:””}
.fa-signature:before{content:””}
.fa-sim-card:before{content:””}
.fa-simplybuilt:before{content:””}
.fa-sistrix:before{content:””}
.fa-sitemap:before{content:””}
.fa-sith:before{content:””}
.fa-skating:before{content:””}
.fa-sketch:before{content:””}
.fa-skiing:before{content:””}
.fa-skiing-nordic:before{content:””}
.fa-skull:before{content:””}
.fa-skull-crossbones:before{content:””}
.fa-skyatlas:before{content:””}
.fa-skype:before{content:””}
.fa-slack:before{content:””}
.fa-slack-hash:before{content:””}
.fa-slash:before{content:””}
.fa-sleigh:before{content:””}
.fa-sliders-h:before{content:””}
.fa-slideshare:before{content:””}
.fa-smile:before{content:””}
.fa-smile-beam:before{content:””}
.fa-smile-wink:before{content:””}
.fa-smog:before{content:””}
.fa-smoking:before{content:””}
.fa-smoking-ban:before{content:””}
.fa-sms:before{content:””}
.fa-snapchat:before{content:””}
.fa-snapchat-ghost:before{content:””}
.fa-snapchat-square:before{content:””}
.fa-snowboarding:before{content:””}
.fa-snowflake:before{content:””}
.fa-snowman:before{content:””}
.fa-snowplow:before{content:””}
.fa-soap:before{content:”葉”}
.fa-socks:before{content:””}
.fa-solar-panel:before{content:””}
.fa-sort:before{content:””}
.fa-sort-alpha-down:before{content:””}
.fa-sort-alpha-down-alt:before{content:””}
.fa-sort-alpha-up:before{content:””}
.fa-sort-alpha-up-alt:before{content:””}
.fa-sort-amount-down:before{content:””}
.fa-sort-amount-down-alt:before{content:””}
.fa-sort-amount-up:before{content:””}
.fa-sort-amount-up-alt:before{content:””}
.fa-sort-down:before{content:””}
.fa-sort-numeric-down:before{content:””}
.fa-sort-numeric-down-alt:before{content:””}
.fa-sort-numeric-up:before{content:””}
.fa-sort-numeric-up-alt:before{content:””}
.fa-sort-up:before{content:””}
.fa-soundcloud:before{content:””}
.fa-sourcetree:before{content:””}
.fa-spa:before{content:””}
.fa-space-shuttle:before{content:””}
.fa-speakap:before{content:””}
.fa-speaker-deck:before{content:””}
.fa-spell-check:before{content:””}
.fa-spider:before{content:””}
.fa-spinner:before{content:””}
.fa-splotch:before{content:””}
.fa-spotify:before{content:””}
.fa-spray-can:before{content:””}
.fa-square:before{content:””}
.fa-square-full:before{content:””}
.fa-square-root-alt:before{content:””}
.fa-squarespace:before{content:””}
.fa-stack-exchange:before{content:””}
.fa-stack-overflow:before{content:””}
.fa-stackpath:before{content:””}
.fa-stamp:before{content:””}
.fa-star:before{content:””}
.fa-star-and-crescent:before{content:””}
.fa-star-half:before{content:””}
.fa-star-half-alt:before{content:””}
.fa-star-of-david:before{content:””}
.fa-star-of-life:before{content:””}
.fa-staylinked:before{content:””}
.fa-steam:before{content:””}
.fa-steam-square:before{content:””}
.fa-steam-symbol:before{content:””}
.fa-step-backward:before{content:””}
.fa-step-forward:before{content:””}
.fa-stethoscope:before{content:””}
.fa-sticker-mule:before{content:””}
.fa-sticky-note:before{content:””}
.fa-stop:before{content:””}
.fa-stop-circle:before{content:””}
.fa-stopwatch:before{content:””}
.fa-stopwatch-20:before{content:”說”}
.fa-store:before{content:””}
.fa-store-alt:before{content:””}
.fa-store-alt-slash:before{content:”殺”}
.fa-store-slash:before{content:”辰”}
.fa-strava:before{content:””}
.fa-stream:before{content:””}
.fa-street-view:before{content:””}
.fa-strikethrough:before{content:””}
.fa-stripe:before{content:””}
.fa-stripe-s:before{content:””}
.fa-stroopwafel:before{content:””}
.fa-studiovinari:before{content:””}
.fa-stumbleupon:before{content:””}
.fa-stumbleupon-circle:before{content:””}
.fa-subscript:before{content:””}
.fa-subway:before{content:””}
.fa-suitcase:before{content:””}
.fa-suitcase-rolling:before{content:””}
.fa-sun:before{content:””}
.fa-superpowers:before{content:””}
.fa-superscript:before{content:””}
.fa-supple:before{content:””}
.fa-surprise:before{content:””}
.fa-suse:before{content:””}
.fa-swatchbook:before{content:””}
.fa-swift:before{content:””}
.fa-swimmer:before{content:””}
.fa-swimming-pool:before{content:””}
.fa-symfony:before{content:””}
.fa-synagogue:before{content:””}
.fa-sync:before{content:””}
.fa-sync-alt:before{content:””}
.fa-syringe:before{content:””}
.fa-table:before{content:””}
.fa-table-tennis:before{content:””}
.fa-tablet:before{content:””}
.fa-tablet-alt:before{content:””}
.fa-tablets:before{content:””}
.fa-tachometer-alt:before{content:””}
.fa-tag:before{content:””}
.fa-tags:before{content:””}
.fa-tape:before{content:””}
.fa-tasks:before{content:””}
.fa-taxi:before{content:””}
.fa-teamspeak:before{content:””}
.fa-teeth:before{content:””}
.fa-teeth-open:before{content:””}
.fa-telegram:before{content:””}
.fa-telegram-plane:before{content:””}
.fa-temperature-high:before{content:””}
.fa-temperature-low:before{content:””}
.fa-tencent-weibo:before{content:””}
.fa-tenge:before{content:””}
.fa-terminal:before{content:””}
.fa-text-height:before{content:””}
.fa-text-width:before{content:””}
.fa-th:before{content:””}
.fa-th-large:before{content:””}
.fa-th-list:before{content:””}
.fa-the-red-yeti:before{content:””}
.fa-theater-masks:before{content:””}
.fa-themeco:before{content:””}
.fa-themeisle:before{content:””}
.fa-thermometer:before{content:””}
.fa-thermometer-empty:before{content:””}
.fa-thermometer-full:before{content:””}
.fa-thermometer-half:before{content:””}
.fa-thermometer-quarter:before{content:””}
.fa-thermometer-three-quarters:before{content:””}
.fa-think-peaks:before{content:””}
.fa-thumbs-down:before{content:””}
.fa-thumbs-up:before{content:””}
.fa-thumbtack:before{content:””}
.fa-ticket-alt:before{content:””}
.fa-times:before{content:””}
.fa-times-circle:before{content:””}
.fa-tint:before{content:””}
.fa-tint-slash:before{content:””}
.fa-tired:before{content:””}
.fa-toggle-off:before{content:””}
.fa-toggle-on:before{content:””}
.fa-toilet:before{content:””}
.fa-toilet-paper:before{content:””}
.fa-toilet-paper-slash:before{content:”沈”}
.fa-toolbox:before{content:””}
.fa-tools:before{content:””}
.fa-tooth:before{content:””}
.fa-torah:before{content:””}
.fa-torii-gate:before{content:””}
.fa-tractor:before{content:””}
.fa-trade-federation:before{content:””}
.fa-trademark:before{content:””}
.fa-traffic-light:before{content:””}
.fa-trailer:before{content:”論”}
.fa-train:before{content:””}
.fa-tram:before{content:””}
.fa-transgender:before{content:””}
.fa-transgender-alt:before{content:””}
.fa-trash:before{content:””}
.fa-trash-alt:before{content:””}
.fa-trash-restore:before{content:””}
.fa-trash-restore-alt:before{content:””}
.fa-tree:before{content:””}
.fa-trello:before{content:””}
.fa-tripadvisor:before{content:””}
.fa-trophy:before{content:””}
.fa-truck:before{content:””}
.fa-truck-loading:before{content:””}
.fa-truck-monster:before{content:””}
.fa-truck-moving:before{content:””}
.fa-truck-pickup:before{content:””}
.fa-tshirt:before{content:””}
.fa-tty:before{content:””}
.fa-tumblr:before{content:””}
.fa-tumblr-square:before{content:””}
.fa-tv:before{content:””}
.fa-twitch:before{content:””}
.fa-twitter:before{content:””}
.fa-twitter-square:before{content:””}
.fa-typo3:before{content:””}
.fa-uber:before{content:””}
.fa-ubuntu:before{content:””}
.fa-uikit:before{content:””}
.fa-umbraco:before{content:””}
.fa-umbrella:before{content:””}
.fa-umbrella-beach:before{content:””}
.fa-underline:before{content:””}
.fa-undo:before{content:””}
.fa-undo-alt:before{content:””}
.fa-uniregistry:before{content:””}
.fa-unity:before{content:”雷”}
.fa-universal-access:before{content:””}
.fa-university:before{content:””}
.fa-unlink:before{content:””}
.fa-unlock:before{content:””}
.fa-unlock-alt:before{content:””}
.fa-untappd:before{content:””}
.fa-upload:before{content:””}
.fa-ups:before{content:””}
.fa-usb:before{content:””}
.fa-user:before{content:””}
.fa-user-alt:before{content:””}
.fa-user-alt-slash:before{content:””}
.fa-user-astronaut:before{content:””}
.fa-user-check:before{content:””}
.fa-user-circle:before{content:””}
.fa-user-clock:before{content:””}
.fa-user-cog:before{content:””}
.fa-user-edit:before{content:””}
.fa-user-friends:before{content:””}
.fa-user-graduate:before{content:””}
.fa-user-injured:before{content:””}
.fa-user-lock:before{content:””}
.fa-user-md:before{content:””}
.fa-user-minus:before{content:””}
.fa-user-ninja:before{content:””}
.fa-user-nurse:before{content:””}
.fa-user-plus:before{content:””}
.fa-user-secret:before{content:””}
.fa-user-shield:before{content:””}
.fa-user-slash:before{content:””}
.fa-user-tag:before{content:””}
.fa-user-tie:before{content:””}
.fa-user-times:before{content:””}
.fa-users:before{content:””}
.fa-users-cog:before{content:””}
.fa-usps:before{content:””}
.fa-ussunnah:before{content:””}
.fa-utensil-spoon:before{content:””}
.fa-utensils:before{content:””}
.fa-vaadin:before{content:””}
.fa-vector-square:before{content:””}
.fa-venus:before{content:””}
.fa-venus-double:before{content:””}
.fa-venus-mars:before{content:””}
.fa-viacoin:before{content:””}
.fa-viadeo:before{content:””}
.fa-viadeo-square:before{content:””}
.fa-vial:before{content:””}
.fa-vials:before{content:””}
.fa-viber:before{content:””}
.fa-video:before{content:””}
.fa-video-slash:before{content:””}
.fa-vihara:before{content:””}
.fa-vimeo:before{content:””}
.fa-vimeo-square:before{content:””}
.fa-vimeo-v:before{content:””}
.fa-vine:before{content:””}
.fa-virus:before{content:”若”}
.fa-virus-slash:before{content:”掠”}
.fa-viruses:before{content:”略”}
.fa-vk:before{content:””}
.fa-vnv:before{content:””}
.fa-voicemail:before{content:””}
.fa-volleyball-ball:before{content:””}
.fa-volume-down:before{content:””}
.fa-volume-mute:before{content:””}
.fa-volume-off:before{content:””}
.fa-volume-up:before{content:””}
.fa-vote-yea:before{content:””}
.fa-vr-cardboard:before{content:””}
.fa-vuejs:before{content:””}
.fa-walking:before{content:””}
.fa-wallet:before{content:””}
.fa-warehouse:before{content:””}
.fa-water:before{content:””}
.fa-wave-square:before{content:””}
.fa-waze:before{content:””}
.fa-weebly:before{content:””}
.fa-weibo:before{content:””}
.fa-weight:before{content:””}
.fa-weight-hanging:before{content:””}
.fa-weixin:before{content:””}
.fa-whatsapp:before{content:””}
.fa-whatsapp-square:before{content:””}
.fa-wheelchair:before{content:””}
.fa-whmcs:before{content:””}
.fa-wifi:before{content:””}
.fa-wikipedia-w:before{content:””}
.fa-wind:before{content:””}
.fa-window-close:before{content:””}
.fa-window-maximize:before{content:””}
.fa-window-minimize:before{content:””}
.fa-window-restore:before{content:””}
.fa-windows:before{content:””}
.fa-wine-bottle:before{content:””}
.fa-wine-glass:before{content:””}
.fa-wine-glass-alt:before{content:””}
.fa-wix:before{content:””}
.fa-wizards-of-the-coast:before{content:””}
.fa-wolf-pack-battalion:before{content:””}
.fa-won-sign:before{content:””}
.fa-wordpress:before{content:””}
.fa-wordpress-simple:before{content:””}
.fa-wpbeginner:before{content:””}
.fa-wpexplorer:before{content:””}
.fa-wpforms:before{content:””}
.fa-wpressr:before{content:””}
.fa-wrench:before{content:””}
.fa-x-ray:before{content:””}
.fa-xbox:before{content:””}
.fa-xing:before{content:””}
.fa-xing-square:before{content:””}
.fa-y-combinator:before{content:””}
.fa-yahoo:before{content:””}
.fa-yammer:before{content:””}
.fa-yandex:before{content:””}
.fa-yandex-international:before{content:””}
.fa-yarn:before{content:””}
.fa-yelp:before{content:””}
.fa-yen-sign:before{content:””}
.fa-yin-yang:before{content:””}
.fa-yoast:before{content:””}
.fa-youtube:before{content:””}
.fa-youtube-square:before{content:””}
.fa-zhihu:before{content:””}
.sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
.sr-only-focusable:active, .sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
@font-face{font-family:”Font Awesome 5 Brands”;font-style:normal;font-weight:400;src:url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-brands-400.eot?#iefix”) format(“embedded-opentype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-brands-400.woff2”) format(“woff2”), url(“https://gyrojeff.moe/lib/font-awesome/webfonts/fa-brands-400.woff”) format(“woff”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-brands-400.ttf”) format(“truetype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-brands-400.svg#fontawesome”) format(“svg”)}
.fab{font-family:”Font Awesome 5 Brands”}
@font-face{font-family:”Font Awesome 5 Free”;font-style:normal;font-weight:400;src:url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-regular-400.eot?#iefix”) format(“embedded-opentype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-regular-400.woff2”) format(“woff2”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-regular-400.woff”) format(“woff”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-regular-400.ttf”) format(“truetype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-regular-400.svg#fontawesome”) format(“svg”)}
.fab, .far{font-weight:400}
@font-face{font-family:”Font Awesome 5 Free”;font-style:normal;font-weight:900;src:url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-solid-900.eot?#iefix”) format(“embedded-opentype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-solid-900.woff2”) format(“woff2”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-solid-900.woff”) format(“woff”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-solid-900.ttf”) format(“truetype”), url(“https://hexo.gyrojeff.moe/lib/font-awesome/webfonts/fa-solid-900.svg#fontawesome”) format(“svg”)}
.fa, .far, .fas{font-family:”Font Awesome 5 Free”}
.fa, .fas{font-weight:900}
.my_post_copyright{width:85%;max-width:45em;margin:2.8em auto 0;padding:0.5em 1em;border:1px solid rgba(211, 211, 211, 1);font-size:0.93rem;line-height:1.6em;word-break:break-all;background:rgba(255, 255, 255, 0.4)}
.my_post_copyright p{margin:0}
.my_post_copyright span{display:inline-block;width:5.2em;color:rgba(181, 181, 181, 1);font-weight:bold}
.my_post_copyright .raw{margin-left:1em;width:5em}
.my_post_copyright a{color:rgba(163, 210, 163, 1);border-bottom:0}
.my_post_copyright a:hover{color:rgba(163, 210, 163, 1);text-decoration:underline}
.my_post_copyright:hover .fa-clipboard{color:rgba(0, 0, 0, 1)}
.my_post_copyright .post-url:hover{font-weight:normal}
.my_post_copyright .copy-path{margin-left:1em;width:1em}
.my_post_copyright .copy-path:hover{color:rgba(128, 128, 128, 1);cursor:pointer}
新博客地址:https://gyrojeff.top,欢迎访问!
本文为博客自动同步文章,为了更好的阅读体验,建议您移步至我的博客?

本文标题:GAN 基本原理以及数学证明

文章作者:gyro永不抽风

发布时间:2020年08月14日 – 19:08

最后更新:2020年09月22日 – 21:09

原始链接:http://hexo.gyrojeff.moe/2020/08/14/GAN-%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E4%BB%A5%E5%8F%8A%E6%95%B0%E5%AD%A6%E8%AF%81%E6%98%8E/

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 转载请保留原文链接及作者!

Preface

今天在PD Lib和DL斗智斗勇时,突然想起了自己非常想学的GAN,机缘巧合下便百度了,得到了以下两篇文章:

  • https://zhuanlan.zhihu.com/p/72279816
  • https://blog.csdn.net/jizhidexiaoming/article/details/96485095

于是便对GAN有了初步的了解(以前肯定是心不在焉才没有理解的(划掉)),随后又在五楼生命科学的书架上找到了相关资料,遂学了一波。

GAN概述

2014 年,Ian Goodfellow 和他在蒙特利尔大学的同事发表了一篇震撼学界的论文。没错,我说的就是《Generative Adversarial Nets》,这标志着生成对抗网络(GAN)的诞生,而这是通过对计算图和博弈论的创新性结合。他们的研究展示,给定充分的建模能力,两个博弈模型能够通过简单的反向传播(backpropagation)来协同训练。

这两个模型的角色定位十分鲜明。给定真实数据集 R,G 是生成器(generator),它的任务是生成能以假乱真的假数据;而 D 是判别器 (discriminator),它从真实数据集或者 G 那里获取数据, 然后做出判别真假的标记。Ian Goodfellow 的比喻是,G 就像一个赝品作坊,想要让做出来的东西尽可能接近真品,蒙混过关。而 D 就是文物鉴定专家,要能区分出真品和高仿(但在这个例子中,造假者 G 看不到原始数据,而只有 D 的鉴定结果——前者是在盲干)。

理想情况下,D 和 G 都会随着不断训练,做得越来越好——直到 G 基本上成为了一个“赝品制造大师”,而 D 因无法正确区分两种数据分布输给 G。

实践中,Ian Goodfellow 展示的这项技术在本质上是:G 能够对原始数据集进行一种无监督学习,找到以更低维度的方式(lower-dimensional manner)来表示数据的某种方法。而无监督学习之所以重要,就好像 Yann LeCun 的那句话:“无监督学习是蛋糕的糕体”。这句话中的蛋糕,指的是无数学者、开发者苦苦追寻的“真正的 AI”。
——pytorch实现GAN

GAN – Generative Adversarial Nets, 生成对抗网络,简单来讲其有两个组成部分:

  • D (Discriminator) – 判别器,判断输入时捏造的还是真实的
  • G (Generator) – 生成器,从随机噪声中生成我们想要的数据

随着训练的进行,我们要提高D的辨析能力,但同时也要G的能力来骗过D,因为我们的最终目的是要让G来生成可以骗过D的信息。总结来说,通过对这两个模型的训练,我们就可以找到随机噪声与有意义数据的映射,达到创作的目的。

GAN的流程和目标函数

GAN的目标函数

GAN的目标函数如下:

$$ V(D, G) = \mathbb E_{x \sim P_{\text{data}} } [\log D(x)] + \mathbb E_{\boldsymbol {z} \sim P_z}[\log(1 – D(G(\boldsymbol {z})))] $$

其中,$D$为Discriminator的模型函数,$G$为Generator的模型函数,随机变量$x$服从原来正确的数据集的分布$P_\text {data}$,随机变量(这里可能是高维随机变量,取决于模型具体实现)$\boldsymbol {z}$服从分布$P_z$(生成噪音),$\mathbb E$代表期望。

GAN的流程

$$ G^* = \arg \min _G \max _D V(D, G) $$

即,可以分为两步理解:

  1. 在$G$为常数的情况下,选择合适的$D$使得$V(D,G)$能够最大化。
  2. 在这之后,选取合适的$G$来最小化$V(D, G)$,这个$G$就是我们想要的生成模型。

在每一步的训练中:

  • 取$m$个真实数据:

    $$ \{x^{(1)}, x^{(2)}, x^{(3)}, \cdots, x^{(m)}\} $$

    使用$G$和$m$组随机数(服从于噪音分布$P_G$,一般使用服从正态分布的随机数)

    $$ \{\boldsymbol {z}^{(1)}, \boldsymbol {z}^{(2)}, \boldsymbol {z}^{(3)}, \cdots, \boldsymbol {z}^{(m)}\} $$

    生成$m$个假数据,其中

    $$ \forall i \in [1, m], i \in \mathbb Z \Rightarrow x^{(i)} \sim P_{\text{data}}, \boldsymbol {z} ^ {(i)} \sim P_z $$

  • 根据$\max$部分的目标使用随机梯度上升(Stochastic Gradient Ascent)更新$D$的参数,提高$D$的分辨能力

    $$ \theta_d := \theta_d + \alpha_d \nabla_{\theta_d} \frac 1 m \sum _ {i = 1} ^ m \Big [ \log D\big ( x^{(i)} \big) + \log \big ( 1 – D \big ( G(\boldsymbol{z}^{(i)}) \big ) \big ) \Big] $$

  • 根据$\min$部分的目标使用随机梯度下降(Stochastic Gradient Descent)更新$G$的参数,使$G$生成的数据更有迷惑性

    $$ \theta_g := \theta_g – \alpha_g\nabla_{\theta_g} \frac 1 m \sum _{i = 1} ^ m\log \Big ( 1 – D\big ( G(\boldsymbol{z} ^ {(i)})\big ) \Big ) $$

GAN的数学原理

Prerequisites

信息量(自信息)

信息量是指信息多少的量度,即,对于一条信息,传达这条信息所需的最少信息长度为自信息。

信息论创始人C.E.Shannon,1938年首次使用比特(bit)概念:1(bit)= $\log_2 2$。它相当于对二个可能结局所作的一次选择量。信息论采用对随机分布概率取对数的办法,解决了不定度的度量问题。

定义:符合分布$P$的某一事件$x$出现,传达出这条信息的信息量记为:

$$ I = \log \frac 1 {P(x)} = – \log P(x) $$

香农熵

从离散分布$P$中随机抽选一个事件,传达这条信息所需的最优平均信息长度为香农熵,表达为:

$$ H(P) = \sum_x P(x) \log \frac 1 {P(x)} = – \sum_x P(x) \log P(x) $$

若分布是连续的,则:

$$ H(P) = \int_x P(x) \log \frac 1 {P(x)} \mathrm dx = -\int_x P(x) \log P(x) \mathrm dx $$

交叉熵

用分布$P$的最佳信息传递方式来传达分布$Q$中随机抽选的一个事件,所需的平均信息长度为交叉熵,表达为

$$ H_P(Q) = \sum_x Q(x) \log \frac 1 {P(x)} = – \sum_x Q(x) \log P(x) $$

$$ H_P(Q) = \int_x Q(x) \log \frac 1 {P(x)} \mathrm dx = – \int_x Q(x) \log P(x) \mathrm dx $$

$KL$ Divergence

$KL$散度:用分布$P$的最佳信息传递方式来传达分布$Q$,比用分布$Q$自己的最佳信息传递方式来传达分布$Q$,平均多耗费的信息长度为$KL$散度,表达为$D_P(Q)$或$D_{KL}(Q||P)$,$KL$散度衡量了两个分布之间的差异。

$$ \begin{aligned} D_{KL}(Q||P) = D_P(Q) &= H_P(Q) – H(Q) \\ &= \sum_x Q(x) \log \frac 1 {P(x)} – \sum _x Q(x) \log \frac 1 {Q(x)} \\ &= \sum_x Q(x) \log \frac {Q(x)} {P(x)} \end{aligned} $$

对于连续分布:

$$ D_{KL}(Q||P) = D_P(Q) = \int_{-\infty} ^ {\infty} P(x)\log \frac {P(x)}{Q(x)} \mathrm dx $$

KL Divergence越大,两个分布差异越大,反之差异越小。

数学原理

看完Prerequisites,我们回归正题讨论GAN的原理。我们现在想要做的事情,其实就是将一个服从$P_G$的随机噪声$\boldsymbol z$通过一个生成网络$G$得到一个和真实数据分布$P_{\text {data}}(x)$差不多的生成分布$P_G(x;\theta_g)$,其中$\theta_g$为生成网络$G$的参数。我们希望找到一个$\theta_g$使得两个分布$P_{\text {data}}(x)$与$P_G(x;\theta)$尽可能地相似(使得他们地KL散度尽可能得小)。

我们从真实数据分布$P_\text{data}(x)$中取$m$个样本,记作:

$$ \{x^{(1)}, x^{(2)}, x^{(3)}, \cdots, x^{(m)}\} $$

根据生成网络的参数$\theta_g$,我们可以计算出这$m$个真实样本在生成网络中出现的概率$P_G(x^{(i)}; \theta_g)$,那么生成这样的$m$个样本数据的似然(likelihood)为:

$$ L = \prod_{i = 1} ^ m P_G(x^{(i)}; \theta_g) $$

由于我们想要两个分布尽量相似,那么我们肯定希望这个似然$L$尽量大,即生成这样的真实数据的概率尽量大,遂我们最大化这个似然,找到$\theta_g^*$:

$$ \begin{aligned} \theta_g^* &= \arg \max _ {\theta_g} \prod _ {i = 1} ^ m P_G(x^{(i)}; \theta_g) \\ &\Leftrightarrow \arg \max _ {\theta_g} \log \prod _ {i = 1} ^ m P_G(x^{(i)}; \theta_g) \\ &= \arg \max _ {\theta_g} \sum_{i = 1} ^ m \log P_G(x^{(i)}; \theta_g) \\ &\approx \arg \max _ {\theta_g} \mathbb E_{x \sim P_{\text {data}}} [\log P_G(x; \theta_g)] \\ &= \arg \max _ {\theta_g} \int _ x P_\text{data}(x) \log P_G(x; \theta_g)\mathrm dx \\ &= \arg \max _ {\theta_g} \int _ x P_\text{data}(x) \log P_G(x; \theta_g)\mathrm dx \\&~~~~- \int _ x P_\text{data}(x) \log P_\text {data}(x)\mathrm dx \\ &= \arg \max _ {\theta_g} \int _ x P_\text {data} (x) \log \frac {P_G(x; \theta_g)} {P_\text {data}(x)} \mathrm dx \\ &= \arg \max _ {\theta_g} – \int _ x P_\text {data} (x) \log \frac {P_\text {data}(x)} {P_G(x; \theta_g)} \mathrm dx \\ &= \arg \min _ {\theta_g} KL(P_\text {data} || P_G(x; \theta)) \end{aligned} $$

所以可见,其实最大化这个似然,和最小化KL散度是基本相同的。

上述式子中,$P_G(x;\theta_g)$代表在生成分布中出现$x$的概率,也可以如下计算得到:

$$ P_G(x) = \int _ \boldsymbol{z} P_z(z)\cdot 1\{G(z) = x\} \mathrm dz $$

注:$1{\cdot}$的含义是若打括号内的逻辑运算为真则取$1$,假则取$0$. 即

$$1\{\text {True}\} = 1, 1 \{\text {False}\} = 0 $$

但是我们发现,上述的过程是难以进行计算的,甚至完全没办法求$P_G(x)$,这只是模型的想法而已。

现在我们看回之前我们提到的目标函数:

$$ V(D, G) = \mathbb E_{x \sim P_{\text{data}} } [\log D(x)] + \mathbb E_{\boldsymbol {z} \sim P_z}[\log(1 – D(G(\boldsymbol {z})))] $$

与最优化生成模型:

$$ G^* = \arg \min _G \max _D V(D, G) $$

我们接下来分步解释。

首先,我们不妨解释一下$\max_D V(G, D)$,这部分的含义之前也解释过,是在给定$G$的情况下,最大化$V(G, D)$。观察发现,其形式其实与交叉熵损失函数非常相似:

$$ \mathcal L(\hat y, y) = -(y\log \hat y + (1 – y) \log (1 – \hat y)) $$

其实他们表达的目的也差不多。我们先化简一下$V(G, D)$看看能得到什么结果:

$$ \begin{aligned} V(G, D) &= \mathbb E_{x \sim P_{\text{data}} } [\log D(x)] + \mathbb E_{\boldsymbol {z} \sim P_z}[\log(1 – D(G(\boldsymbol {z})))] \\ &= \int_x P_\text {data}(x) \log D(x) \mathrm dx + \int_\boldsymbol{z} P_z(\boldsymbol{z}) \log (1 – D(G(\boldsymbol{z})))\mathrm dz \\ &= \int_x P_\text {data}(x) \log D(x) \mathrm dx + \int_x P_G(x)\log (1 – D(x)) \mathrm dx \\ &= \int_x [P_\text {data}(x) \log D(x) + P_G(x)\log (1 – D(x))] \mathrm dx \end{aligned} $$

让我们考察积分内部的项,我们可以对它做指数运算,即:

$$ e^{P_\text {data}(x) \log D(x) + P_G(x)\log (1 – D(x))} = D(x) ^ {P_\text {data}}\times(1- D(x))^{P_G(x)} $$

其想表达什么便不言而喻了,它表达的就是判别器判别是真的的正确率和判别是假的的正确率,总体来说就是衡量$D$的能力,所以我们想要最大化$V$,提高$D$的判别能力。

$$ f(D) = P_\text {data}(x) \log D(x) \mathrm dx + P_G(x)\log (1 – D(x)) $$

因为这里$P_\text {data} (x)$和$P_G(x)$都可以看作常数,所以

$$ \arg \max _ D \int_x f(D) \mathrm dx = \arg \max _D f(D) $$

最大化$f(D)$,即令其导数为$0$:

$$ \frac {\mathrm d f(D)} {\mathrm dD } = \frac {P_\text {data}(x)}{D} – \frac {P_G(x)} {1 – D} = 0 $$

则:

$$ \frac {P_\text {data}(x)}{D} = \frac {P_G(x)} {1 – D} $$

$$ D^*(x) = \frac {P_\text {data}(x)}{P_\text {data}(x) + P_G(x)} $$

这样,我们就得到了那个状态下最优的$D^*$的表达式。我们将这个能够最大化$V$的$D$代入回$V(G, D)$:

$$ \begin{aligned} \max V(G, D) &= V(G, D^*) \\ &= \mathbb E_{x \sim P_\text {data}} \Big [ \log \frac {P_\text {data}(x)}{P_\text {data}(x) + P_G(x)} \Big] + \mathbb E_{x \sim P_G} \Big [ \frac {P_G(x)}{P_\text {data}(x) + P_G(x)}\Big ] \\ &= \int_x P_\text {data} (x) \log \frac {\frac 1 2 P_\text {data}}{\frac 1 2 (P_\text{data}(x) + P_G(x))} \mathrm dx + \int _ x P_G(x) \log \frac {\frac 1 2 P_G(x)} {\frac 1 2 (P_\text {data} (x) + P_G(x))} \mathrm dx \\ &= -2\log 2 + D_{KL} (P_\text {data} || \frac 1 2 [P_\text{data}(x) + P_G(x)]) + D_{KL} (P_G(x) || \frac 1 2 [P_\text {data}(x) + P_G(x)]) \\ &= -2\log 2 + JSD (P_\text{data}(x) || P_G(x)) \end{aligned} $$

其中,我们引入了$JS$ Divergence,定义如下:

$$ JSD(P||Q) = \frac 1 2 D_{KL} (P||M) + \frac 1 2 D_{KL} (Q || M), M = \frac 1 2 (P + Q) $$

容易得到,KL Divergence是不对称的,而JS Divergence是对称的。他们都可以衡量两组分布建的差异。这里我们想要两组分布差异最小,故取$\min$

所以,这也就解释了为什么:

$$ \arg \min _G \max _D V(G, D) $$

是我们的目标过程。