diff --git a/_config.yml b/_config.yml
index 5933f6f..f25d9e6 100644
--- a/_config.yml
+++ b/_config.yml
@@ -2,6 +2,18 @@ title_primary: "活版印字" # the bigger text
title_secondary: "Typography" # the smaller text
keywords:
+tag:
+ min_font: 18 # Minimum font size
+ max_font: 25 # Maximum font size
+ start_color: '#0073e6'
+ end_color: '#003366'
+ show_count: true # Display the number of posts for each tag
+ amount: # Total amount of tags. Default: unlimited
+
+toc:
+ enable: true
+ list_number: false # Displays list number
+
twitter: #username
rss: atom.xml
weibo: #username/id
diff --git a/languages/en.yml b/languages/en.yml
index 865b616..e4373e2 100644
--- a/languages/en.yml
+++ b/languages/en.yml
@@ -11,6 +11,7 @@ Tags: Tags
About: About
Links: Links
Comments: Comments
+ToC: Table of Contents
posted_at: Posted at
TagCount: '%d tags'
ArchiveCount: '%d post'
diff --git a/languages/zh-cn.yml b/languages/zh-cn.yml
index 66874d8..5be1ea4 100644
--- a/languages/zh-cn.yml
+++ b/languages/zh-cn.yml
@@ -11,6 +11,7 @@ Tags: 标签
About: 关于
Links: 链接
Comments: 评论
+ToC: 目录
posted_at: 发布于
TagCount: '%d 篇'
ArchiveCount: '%d 篇'
diff --git a/layout/mixins.pug b/layout/mixins.pug
index ab5c758..043b334 100644
--- a/layout/mixins.pug
+++ b/layout/mixins.pug
@@ -7,7 +7,7 @@ mixin make_post(item, is_detail)
a(href= url_for(item.path))= item.title
p.post-meta
span.date.meta-item!=__("posted_at")+" " + date(item.date, 'YYYY-MM-DD')
- if theme.duoshuo || theme.disqus
+ if theme.livere || theme.disqus
span.meta-item
i.fa.fa-comment-o
span
@@ -32,6 +32,9 @@ mixin make_post(item, is_detail)
a.a-tag(href=config.root + item.path, title= item.name)= item.name
span
- });
+ if theme.toc.enable
+ span= _p('ToC')
+ .toc!= toc(page.content, {list_number: theme.toc.list_number})
if is_detail
p.post-abstract!= item.content
else
@@ -103,20 +106,14 @@ mixin postList()
|
mixin tagList()
- ul.listing
- - site.tags.each(function (item) {
- |
- .listing-post
- p.post-title
- a(href= url_for(item.path), title= item.name)= item.name
- span.date.meta-item
- != __('TagCount', item.posts.length)
- |
- - })
+ .tag-cloud__title= page.title
+ | -
+ span.tag-cloud__amount= site.tags.length
+ .tag-cloud-tags!= tagcloud({min_font: theme.tag.min_font, max_font: theme.tag.max_font, amout: theme.tag.amount, color: true, start_color: theme.tag.start_color, end_color: theme.tag.end_color, show_count: theme.tag.show_count})
mixin categoryList()
ul.listing
- - site.categories.each(function (item) {
+ - site.categories.each(function (item) {
|
.listing-post
p.post-title
diff --git a/layout/partial/comments.pug b/layout/partial/comments.pug
index 302f968..790741b 100644
--- a/layout/partial/comments.pug
+++ b/layout/partial/comments.pug
@@ -16,7 +16,7 @@ if theme.disqus
script(id='dsq-count-scr' src='//#{theme.disqus}.disqus.com/count.js' async)
if theme.livere
- #lv-container(data-id='city', data-uid='#{theme.livere}')
+ #lv-container(data-id='city', data-uid=theme.livere)
script(type='text/javascript').
(function (d, s) {
var j, e = d.getElementsByTagName(s)[0];
@@ -59,4 +59,4 @@ if theme.dove
| 3. 我们在收到您的评论后将立即审核并更新至网站
br
i
- small 评论一经采用,信函恕不退还,信鸽也不退还,请知悉。
\ No newline at end of file
+ small 评论一经采用,信函恕不退还,信鸽也不退还,请知悉。
diff --git a/layout/partial/head.pug b/layout/partial/head.pug
index 6fef9f8..5d62e10 100644
--- a/layout/partial/head.pug
+++ b/layout/partial/head.pug
@@ -16,6 +16,7 @@ meta(content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-sca
meta(content="yes",name="apple-mobile-web-app-capable")
meta(content="black",name="apple-mobile-web-app-status-bar-style")
meta(content="telephone=no",name="format-detection")
+meta(name="referrer",content="no-referrer")
meta(name="renderer",content="webkit")
link(rel="short icon", href="images/favicon.png",type="image/x-icon")
diff --git a/source/css/blog_basic.css b/source/css/blog_basic.css
index 4687aa6..2e13919 100644
--- a/source/css/blog_basic.css
+++ b/source/css/blog_basic.css
@@ -1,294 +1,408 @@
.content > .post > .post-content > p {
- word-wrap: break-word;
- word-break: break-all;
+ word-wrap: break-word;
+ word-break: break-all;
}
#ds-thread {
- margin: 0 30px!important
+ margin: 0 30px !important;
}
pre {
- font-size: 0.8em!important;
- background-color: #f8f8f8!important;
- font-family: 'Roboto Mono','Lucida Console','Trebuchet MS','Courier New', Monaco, courier,'PingFang SC','Hiragino Sans GB','Microsoft Jhenghei','Microsoft YaHei', monospace!important
+ font-size: 0.8em !important;
+ background-color: #f8f8f8 !important;
+ font-family: "Roboto Mono", "Lucida Console", "Trebuchet MS", "Courier New",
+ Monaco, courier, "PingFang SC", "Hiragino Sans GB", "Microsoft Jhenghei",
+ "Microsoft YaHei", monospace !important;
}
figure.highlight {
- position: relative!important;
- margin: 1em 0!important;
- border-radius: 2px!important;
- line-height: 1.1em!important;
- background-color: #f8f8f8!important;
- overflow-x: auto!important
+ position: relative !important;
+ margin: 1em 0 !important;
+ border-radius: 2px !important;
+ line-height: 1.1em !important;
+ background-color: #f8f8f8 !important;
+ overflow-x: auto !important;
}
-figure.highlight table,figure.highlight tr,figure.highlight td {
- width: 100%!important;
- border-collapse: collapse!important;
- padding: 0!important;
- margin: 0!important
+figure.highlight table,
+figure.highlight tr,
+figure.highlight td {
+ width: 100% !important;
+ border-collapse: collapse !important;
+ padding: 0 !important;
+ margin: 0 !important;
}
figure.highlight .gutter {
- display: none!important
+ display: none !important;
}
figure.highlight .code pre {
- padding: 1.2em 1.4em!important;
- line-height: 1.5em!important;
- margin: 0!important
-}
-
-figure.highlight.html .code:after,figure.highlight.js .code:after,figure.highlight.bash .code:after,figure.highlight.css .code:after,figure.highlight.scss .code:after,figure.highlight.diff .code:after,figure.highlight.java .code:after,figure.highlight.xml .code:after,figure.highlight.python .code:after,figure.highlight.json .code:after,figure.highlight.swift .code:after,figure.highlight.ruby .code:after,figure.highlight.perl .code:after,figure.highlight.php .code:after,figure.highlight.c .code:after,figure.highlight.cpp .code:after {
- position: absolute!important;
- top: 0!important;
- right: 0!important;
- color: #ccc!important;
- text-align: right!important;
- font-size: 0.75em!important;
- padding: 5px 10px 0!important;
- line-height: 15px!important;
- height: 15px!important;
- font-weight: 600!important
+ padding: 1.2em 1.4em !important;
+ line-height: 1.5em !important;
+ margin: 0 !important;
+}
+
+figure.highlight.html .code:after,
+figure.highlight.js .code:after,
+figure.highlight.bash .code:after,
+figure.highlight.css .code:after,
+figure.highlight.scss .code:after,
+figure.highlight.diff .code:after,
+figure.highlight.java .code:after,
+figure.highlight.xml .code:after,
+figure.highlight.python .code:after,
+figure.highlight.json .code:after,
+figure.highlight.swift .code:after,
+figure.highlight.ruby .code:after,
+figure.highlight.perl .code:after,
+figure.highlight.php .code:after,
+figure.highlight.c .code:after,
+figure.highlight.cpp .code:after {
+ position: absolute !important;
+ top: 0 !important;
+ right: 0 !important;
+ color: #ccc !important;
+ text-align: right !important;
+ font-size: 0.75em !important;
+ padding: 5px 10px 0 !important;
+ line-height: 15px !important;
+ height: 15px !important;
+ font-weight: 600 !important;
}
figure.highlight.html .code:after {
- content: "HTML"
+ content: "HTML";
}
figure.highlight.js .code:after {
- content: "JS"
+ content: "JS";
}
figure.highlight.bash .code:after {
- content: "BASH"
+ content: "BASH";
}
figure.highlight.css .code:after {
- content: "CSS"
+ content: "CSS";
}
figure.highlight.scss .code:after {
- content: "SCSS"
+ content: "SCSS";
}
figure.highlight.diff .code:after {
- content: "DIFF"
+ content: "DIFF";
}
figure.highlight.java .code:after {
- content: "JAVA"
+ content: "JAVA";
}
figure.highlight.xml .code:after {
- content: "XML"
+ content: "XML";
}
figure.highlight.python .code:after {
- content: "PYTHON"
+ content: "PYTHON";
}
figure.highlight.json .code:after {
- content: "JSON"
+ content: "JSON";
}
figure.highlight.swift .code:after {
- content: "SWIFT"
+ content: "SWIFT";
}
figure.highlight.ruby .code:after {
- content: "RUBY"
+ content: "RUBY";
}
figure.highlight.perl .code:after {
- content: "PERL"
+ content: "PERL";
}
figure.highlight.php .code:after {
- content: "PHP"
+ content: "PHP";
}
figure.highlight.c .code:after {
- content: "C"
+ content: "C";
}
figure.highlight.java .code:after {
- content: "JAVA"
+ content: "JAVA";
}
figure.highlight.cpp .code:after {
- content: "CPP"
+ content: "CPP";
}
figure.highlight.cpp .code:after {
- content: 'C++'
+ content: "C++";
}
pre {
- color: #525252!important
+ color: #525252 !important;
}
-pre .function .keyword,pre .constant {
- color: #0092db!important
+pre .function .keyword,
+pre .constant {
+ color: #0092db !important;
}
-pre .keyword,pre .attribute {
- color: #e96900!important
+pre .keyword,
+pre .attribute {
+ color: #e96900 !important;
}
-pre .number,pre .literal {
- color: #ae81ff!important
+pre .number,
+pre .literal {
+ color: #ae81ff !important;
}
-pre .tag,pre .tag .title,pre .change,pre .winutils,pre .flow,pre .lisp .title,pre .clojure .built_in,pre .nginx .title,pre .tex .special {
- color: #2973b7!important
+pre .tag,
+pre .tag .title,
+pre .change,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .clojure .built_in,
+pre .nginx .title,
+pre .tex .special {
+ color: #2973b7 !important;
}
-pre .symbol,pre .symbol .string,pre .value,pre .regexp {
- color: #42b983!important
+pre .symbol,
+pre .symbol .string,
+pre .value,
+pre .regexp {
+ color: #42b983 !important;
}
pre .title {
- color: #83B917!important
-}
-
-pre .tag .value,pre .string,pre .subst,pre .haskell .type,pre .preprocessor,pre .ruby .class .parent,pre .built_in,pre .sql .aggregate,pre .django .template_tag,pre .django .variable,pre .smalltalk .class,pre .javadoc,pre .django .filter .argument,pre .smalltalk .localvars,pre .smalltalk .array,pre .attr_selector,pre .pseudo,pre .addition,pre .stream,pre .envvar,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .prompt {
- color: #42b983!important
-}
-
-pre .comment,pre .java .annotation,pre .python .decorator,pre .template_comment,pre .pi,pre .doctype,pre .shebang,pre .apache .sqbracket,pre .tex .formula {
- color: #b3b3b3!important
+ color: #83b917 !important;
+}
+
+pre .tag .value,
+pre .string,
+pre .subst,
+pre .haskell .type,
+pre .preprocessor,
+pre .ruby .class .parent,
+pre .built_in,
+pre .sql .aggregate,
+pre .django .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .javadoc,
+pre .django .filter .argument,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .attr_selector,
+pre .pseudo,
+pre .addition,
+pre .stream,
+pre .envvar,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .command,
+pre .prompt {
+ color: #42b983 !important;
+}
+
+pre .comment,
+pre .java .annotation,
+pre .python .decorator,
+pre .template_comment,
+pre .pi,
+pre .doctype,
+pre .shebang,
+pre .apache .sqbracket,
+pre .tex .formula {
+ color: #b3b3b3 !important;
}
pre .deletion {
- color: #BA4545!important
+ color: #ba4545 !important;
}
-pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata {
- opacity: 0.5!important
+pre .coffeescript .javascript,
+pre .javascript .xml,
+pre .tex .formula,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .xml .css,
+pre .xml .cdata {
+ opacity: 0.5 !important;
}
html {
- height: 100%;
- max-height: 100%;
- padding: 0;
- margin: 0; }
+ height: 100%;
+ max-height: 100%;
+ padding: 0;
+ margin: 0;
+}
- body {
+body {
padding: 0;
margin: 0;
- line-height: 1.6em; }
+ line-height: 1.6em;
+}
- .clear {
- clear: both;
- display: block;
- overflow: hidden;
- visibility: hidden;
- width: 0;
- height: 0; }
+.clear {
+ clear: both;
+ display: block;
+ overflow: hidden;
+ visibility: hidden;
+ width: 0;
+ height: 0;
+}
- h1, h2, h3, h4, h5, h6 {
- text-rendering: optimizeLegibility;
- line-height: 1;
- margin: 2rem 0; }
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ text-rendering: optimizeLegibility;
+ line-height: 1;
+ margin: 2rem 0;
+}
- h1 {
- font-size: 2.1rem;
- line-height: 1.2em; }
+h1 {
+ font-size: 2.1rem;
+ line-height: 1.2em;
+}
- h2 {
- font-size: 1.9rem;
- line-height: 1.2em; }
+h2 {
+ font-size: 1.9rem;
+ line-height: 1.2em;
+}
- h3 {
- font-size: 1.75rem; }
+h3 {
+ font-size: 1.75rem;
+}
- h4 {
- font-size: 1.3rem; }
+h4 {
+ font-size: 1.3rem;
+}
- h5 {
- font-size: 1.3rem; }
+h5 {
+ font-size: 1.3rem;
+}
- h6 {
- font-size: 1.3rem; }
+h6 {
+ font-size: 1.3rem;
+}
- img {
- max-width: 100%;
- height: auto; }
+img {
+ max-width: 100%;
+ height: auto;
+}
- p, ul, ol, dl {
- margin: 1em 0; }
+p,
+ul,
+ol,
+dl {
+ margin: 1em 0;
+}
- ol ol, ul ul, ul ol, ol ul {
- margin: 0.4em 0; }
+ol ol,
+ul ul,
+ul ol,
+ol ul {
+ margin: 0.4em 0;
+}
- ul p, ol p, li p, .content li p, blockquote p, .content blockquote p,
- .post blockquote p, .post li p {
- margin: 0;
- overflow: visible; }
+ul p,
+ol p,
+li p,
+.content li p,
+blockquote p,
+.content blockquote p,
+.post blockquote p,
+.post li p {
+ margin: 0;
+ overflow: visible;
+}
- a img {
- border: none; }
+a img {
+ border: none;
+}
dl dt {
- float: left;
- width: 180px;
- overflow: hidden;
- clear: left;
- text-align: right;
- text-overflow: ellipsis;
- white-space: nowrap;
- font-weight: bold;
- margin-bottom: 1em; }
-
- dl dd {
+ float: left;
+ width: 180px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-weight: bold;
+ margin-bottom: 1em;
+}
+
+dl dd {
margin-left: 200px;
- margin-bottom: 1em; }
-
- hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #efefef;
- margin: 3.2em 0;
- padding: 0; }
-
- blockquote {
- box-sizing: border-box;
- margin: 1.6em 0 1.6em -2.2em;
- padding: 0 0 0 1.6em;
- border-left: #4a4a4a 0.4em solid; }
-
- blockquote p {
- margin: 0.8em 0; }
-
- blockquote small {
- display: inline-block;
- margin: 0.8em 0 0.8em 1.5em;
- font-size: 0.9em;
- color: #ccc; }
-
- blockquote small:before {
- content: '\2014 \00A0'; }
-
- blockquote cite {
- font-weight: bold; }
-
- blockquote cite a {
- font-weight: normal; }
-
- mark {
- background-color: #ffc336; }
-
- code, tt {
- padding: 1px 3px;
- font-family: Inconsolata, monospace, sans-serif;
- font-size: 0.85em;
- white-space: pre-wrap;
- border: 1px solid #E3EDF3;
- background: #f7f7f9;
- color: #d14;
- border-radius: 2px; }
+ margin-bottom: 1em;
+}
+
+hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #efefef;
+ margin: 3.2em 0;
+ padding: 0;
+}
+
+blockquote {
+ box-sizing: border-box;
+ margin: 1.6em 0 1.6em -2.2em;
+ padding: 0 0 0 1.6em;
+ border-left: #4a4a4a 0.4em solid;
+}
+
+blockquote p {
+ margin: 0.8em 0;
+}
+
+blockquote small {
+ display: inline-block;
+ margin: 0.8em 0 0.8em 1.5em;
+ font-size: 0.9em;
+ color: #ccc;
+}
+
+blockquote small:before {
+ content: "\2014 \00A0";
+}
+
+blockquote cite {
+ font-weight: bold;
+}
+
+blockquote cite a {
+ font-weight: normal;
+}
+
+mark {
+ background-color: #ffc336;
+}
+
+code,
+tt {
+ padding: 1px 3px;
+ font-family: Inconsolata, monospace, sans-serif;
+ font-size: 0.85em;
+ white-space: pre-wrap;
+ border: 1px solid #e3edf3;
+ background: #f7f7f9;
+ color: #d14;
+ border-radius: 2px;
+}
/**
pre {
-moz-box-sizing: border-box;
@@ -374,68 +488,85 @@ dl dt {
**/
.toc {
- border: 1px solid #f0f0f0;
- margin-bottom: 20px;
- padding: 10px 30px; }
+ border: 1px solid #f0f0f0;
+ margin-bottom: 20px;
+ padding: 10px 30px;
+}
- #fb_comments_container {
+#fb_comments_container {
overflow: hidden;
- margin: 0 auto; }
- #fb_comments_container #fb_comments {
- list-style-type: none;
- padding: 0; }
- #fb_comments_container #fb_comments h1 {
- font-size: 1.3em; }
- #fb_comments_container #fb_comments h2 {
- font-size: 1.2em; }
- #fb_comments_container #fb_comments h3 {
- font-size: 1.1em; }
- #fb_comments_container #fb_comments h4, #fb_comments_container #fb_comments h5,
- #fb_comments_container #fb_comments h6 {
- font-size: 1.05em; }
- #fb_comments_container #fb_comments .comment {
- position: relative;
- padding: 25px 0;
- border-bottom: 1px solid rgba(150, 150, 150, 0.2);
- *border-bottom: 1px solid #f0f0f0; }
- #fb_comments_container #fb_comments .comment .avatar {
- position: absolute;
- top: 25px;
- left: 0;
- width: 50px;
- float: left; }
- #fb_comments_container #fb_comments .comment .avatar img {
- width: 48px;
- border: none;
- border-radius: 5px;
- margin: 0; }
- #fb_comments_container #fb_comments .comment .comment_body,
- #fb_comments_container #fb_comments .comment .c_content {
- margin-left: 70px;
- display: block; }
- #fb_comments_container #fb_comments .comment .comment_body p,
- #fb_comments_container #fb_comments .comment .c_content p {
- margin: 5px 0 15px 0;
- padding: 0;
- line-height: 1.8; }
- #fb_comments_container #fb_comments .comment .comment_body .author,
- #fb_comments_container #fb_comments .comment .c_content .author {
- line-height: 1.5em;
- margin: 0;
- padding: 0; }
- #fb_comments_container #fb_comments .comment .comment_body .author b,
- #fb_comments_container #fb_comments .comment .c_content .author b {
- color: #555; }
- #fb_comments_container #fb_comments .comment .comment_body .author small,
- #fb_comments_container #fb_comments .comment .c_content .author small {
- font-weight: normal;
- padding-left: 10px;
- font-size: 0.7em;
- color: #666; }
+ margin: 0 auto;
+}
+#fb_comments_container #fb_comments {
+ list-style-type: none;
+ padding: 0;
+}
+#fb_comments_container #fb_comments h1 {
+ font-size: 1.3em;
+}
+#fb_comments_container #fb_comments h2 {
+ font-size: 1.2em;
+}
+#fb_comments_container #fb_comments h3 {
+ font-size: 1.1em;
+}
+#fb_comments_container #fb_comments h4,
+#fb_comments_container #fb_comments h5,
+#fb_comments_container #fb_comments h6 {
+ font-size: 1.05em;
+}
+#fb_comments_container #fb_comments .comment {
+ position: relative;
+ padding: 25px 0;
+ border-bottom: 1px solid rgba(150, 150, 150, 0.2);
+ *border-bottom: 1px solid #f0f0f0;
+}
+#fb_comments_container #fb_comments .comment .avatar {
+ position: absolute;
+ top: 25px;
+ left: 0;
+ width: 50px;
+ float: left;
+}
+#fb_comments_container #fb_comments .comment .avatar img {
+ width: 48px;
+ border: none;
+ border-radius: 5px;
+ margin: 0;
+}
+#fb_comments_container #fb_comments .comment .comment_body,
+#fb_comments_container #fb_comments .comment .c_content {
+ margin-left: 70px;
+ display: block;
+}
+#fb_comments_container #fb_comments .comment .comment_body p,
+#fb_comments_container #fb_comments .comment .c_content p {
+ margin: 5px 0 15px 0;
+ padding: 0;
+ line-height: 1.8;
+}
+#fb_comments_container #fb_comments .comment .comment_body .author,
+#fb_comments_container #fb_comments .comment .c_content .author {
+ line-height: 1.5em;
+ margin: 0;
+ padding: 0;
+}
+#fb_comments_container #fb_comments .comment .comment_body .author b,
+#fb_comments_container #fb_comments .comment .c_content .author b {
+ color: #555;
+}
+#fb_comments_container #fb_comments .comment .comment_body .author small,
+#fb_comments_container #fb_comments .comment .c_content .author small {
+ font-weight: normal;
+ padding-left: 10px;
+ font-size: 0.7em;
+ color: #666;
+}
#fb_new_comment {
- padding-bottom: 50px; }
- #fb_new_comment textarea {
+ padding-bottom: 50px;
+}
+#fb_new_comment textarea {
border-radius: 5px;
height: 80px;
width: 98%;
@@ -443,50 +574,63 @@ dl dt {
font-size: 1em;
border: 1px solid rgba(150, 150, 150, 0.5);
*border: 1px solid #a8a8a8;
- line-height: 1.5; }
- #fb_new_comment .comment_error {
- color: red;
- text-align: center;
- display: block;
- font-size: 0.8em;
- padding-top: 1em; }
- #fb_new_comment .c_button:hover {
- background: #E60900;
- color: #fff;
- text-decoration: none; }
- #fb_new_comment .c_button, #fb_new_comment #c_submit {
- cursor: pointer;
- font-family: "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
- font-size: 1em;
- line-height: 1.3em;
- letter-spacing: 1px;
- border-radius: 5px;
- padding: 5px 5px 2px 5px; }
- #fb_new_comment .input_body {
- margin-top: 10px; }
- #fb_new_comment .input_body ul {
- list-style: none;
- padding: 5px 0;
- margin: auto 0; }
- #fb_new_comment .input_body ul li {
- float: left;
- margin-right: 2.2%;
- *margin-right: 22px; }
- #fb_new_comment .input_body ul li label {
- line-height: 1em; }
- #fb_new_comment .input_body ul li input {
- border-radius: 5px;
- border: 1px solid #ddd;
- padding: 5px;
- background: rgba(255, 255, 255, 0.5);
- margin: 0 0 10px 0; }
+ line-height: 1.5;
+}
+#fb_new_comment .comment_error {
+ color: red;
+ text-align: center;
+ display: block;
+ font-size: 0.8em;
+ padding-top: 1em;
+}
+#fb_new_comment .c_button:hover {
+ background: #e60900;
+ color: #fff;
+ text-decoration: none;
+}
+#fb_new_comment .c_button,
+#fb_new_comment #c_submit {
+ cursor: pointer;
+ font-family: "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
+ font-size: 1em;
+ line-height: 1.3em;
+ letter-spacing: 1px;
+ border-radius: 5px;
+ padding: 5px 5px 2px 5px;
+}
+#fb_new_comment .input_body {
+ margin-top: 10px;
+}
+#fb_new_comment .input_body ul {
+ list-style: none;
+ padding: 5px 0;
+ margin: auto 0;
+}
+#fb_new_comment .input_body ul li {
+ float: left;
+ margin-right: 2.2%;
+ *margin-right: 22px;
+}
+#fb_new_comment .input_body ul li label {
+ line-height: 1em;
+}
+#fb_new_comment .input_body ul li input {
+ border-radius: 5px;
+ border: 1px solid #ddd;
+ padding: 5px;
+ background: rgba(255, 255, 255, 0.5);
+ margin: 0 0 10px 0;
+}
#SwfStore_farbox_0 {
- height: 0;
- overflow: hidden; }
+ height: 0;
+ overflow: hidden;
+}
- @media screen and (max-width: 320px) {
- #fb_comments .c_content, #fb_comments .comment_body {
- margin-left: 57px; }
+@media screen and (max-width: 320px) {
+ #fb_comments .c_content,
+ #fb_comments .comment_body {
+ margin-left: 57px;
+ }
}
-/*# sourceMappingURL=data:application/json;base64,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QjtFQUNyQjtJQUNFLGtCQUFBO0lBQ0EsWUFBQTtJQUNBLFVBQUE7SUFDQSxZQUFBO0lBQ0EsY0FBQTtJQUNBLDBDQUFBO0tBQUEseUJBQ0E7SUFDQSxnQkFBQSxFQUFpQjtJQUNqQjtNQUNFLFVBQUE7TUFDQSxrQkFBQTtNQUNBLGNBQUE7TUFDQSxnQkFBQTtNQUNBLGdCQUFBLEVBQWlCO01BQ2pCO1FBQ0UsbUJBQUE7UUFDQSxXQUFBO1FBQ0EscUJBQUEsRUFBc0I7UUFDdEI7VUFDRSxlQUFBO1VBQ0EsOERBQUE7VUFDQSxjQUFBO1VBQ0Esa0JBQUE7VUFDQSxtQkFBQTtVQUNBLGtCQUFBO1VBQ0Esd0JBQUEsRUFBeUI7VUFDekI7WUFDRSxnQkFBQSxFQUFpQjtZQUNqQjtjQUNFLGdCQUFBO2NBQ0EsY0FBQTtjQUNBLGNBQUEsRUFBZTtjQUNmO2dCQUNFLFdBQUE7Z0JBQ0Esa0JBQUE7aUJBQUEsa0JBQ0EsRUFBb0I7Z0JBQ3BCO2tCQUNFLGdCQUFBLEVBQWlCO2tCQUNqQjtvQkFDRSxrQkFBQTtvQkFDQSxzQkFBQTtvQkFDQSxZQUFBO29CQUNBLG9DQUFBO29CQUNBLGtCQUFBLEVBQW1COztBQUV2QztFQUNFLFNBQUE7RUFDQSxnQkFBQSxFQUFpQjs7RUFFakI7SUFDRTtNQUNFLGlCQUFBLElBQWtCO0FBQXhCIiwiZmlsZSI6ImJsb2dfYmFzaWMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRlbnQgPiAucG9zdCA+IC5wb3N0LWNvbnRlbnQgPiBwIHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbiNkcy10aHJlYWQge1xuXHRtYXJnaW46IDAgMzBweCFpbXBvcnRhbnRcbn1cblxucHJlIHtcblx0Zm9udC1zaXplOiAwLjhlbSFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjghaW1wb3J0YW50O1xuXHRmb250LWZhbWlseTogJ1JvYm90byBNb25vJywnTHVjaWRhIENvbnNvbGUnLCdUcmVidWNoZXQgTVMnLCdDb3VyaWVyIE5ldycsIE1vbmFjbywgY291cmllciwnUGluZ0ZhbmcgU0MnLCdIaXJhZ2lubyBTYW5zIEdCJywnTWljcm9zb2Z0IEpoZW5naGVpJywnTWljcm9zb2Z0IFlhSGVpJywgbW9ub3NwYWNlIWltcG9ydGFudFxufVxuXG5maWd1cmUuaGlnaGxpZ2h0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlIWltcG9ydGFudDtcblx0bWFyZ2luOiAxZW0gMCFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDJweCFpbXBvcnRhbnQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjFlbSFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjghaW1wb3J0YW50O1xuXHRvdmVyZmxvdy14OiBhdXRvIWltcG9ydGFudFxufVxuXG5maWd1cmUuaGlnaGxpZ2h0IHRhYmxlLGZpZ3VyZS5oaWdobGlnaHQgdHIsZmlndXJlLmhpZ2hsaWdodCB0ZCB7XG5cdHdpZHRoOiAxMDAlIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQgLmd1dHRlciB7XG5cdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQgLmNvZGUgcHJlIHtcblx0cGFkZGluZzogMS4yZW0gMS40ZW0haW1wb3J0YW50O1xuXHRsaW5lLWhlaWdodDogMS41ZW0haW1wb3J0YW50O1xuXHRtYXJnaW46IDAhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQuaHRtbCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmpzIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuYmFzaCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmNzcyAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnNjc3MgLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5kaWZmIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuamF2YSAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnhtbCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnB5dGhvbiAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0Lmpzb24gLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5zd2lmdCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnJ1YnkgLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5wZXJsIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQucGhwIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuYyAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmNwcCAuY29kZTphZnRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7XG5cdHRvcDogMCFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwIWltcG9ydGFudDtcblx0Y29sb3I6ICNjY2MhaW1wb3J0YW50O1xuXHR0ZXh0LWFsaWduOiByaWdodCFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMC43NWVtIWltcG9ydGFudDtcblx0cGFkZGluZzogNXB4IDEwcHggMCFpbXBvcnRhbnQ7XG5cdGxpbmUtaGVpZ2h0OiAxNXB4IWltcG9ydGFudDtcblx0aGVpZ2h0OiAxNXB4IWltcG9ydGFudDtcblx0Zm9udC13ZWlnaHQ6IDYwMCFpbXBvcnRhbnRcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5odG1sIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJIVE1MXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5qcyAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiSlNcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmJhc2ggLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkJBU0hcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmNzcyAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiQ1NTXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5zY3NzIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJTQ1NTXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5kaWZmIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJESUZGXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5qYXZhIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJKQVZBXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC54bWwgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlhNTFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucHl0aG9uIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJQWVRIT05cIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0Lmpzb24gLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkpTT05cIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LnN3aWZ0IC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJTV0lGVFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucnVieSAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiUlVCWVwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucGVybCAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiUEVSTFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucGhwIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJQSFBcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmMgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkNcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmphdmEgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkpBVkFcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmNwcCAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiQ1BQXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5jcHAgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiAnQysrJ1xufVxuXG5wcmUge1xuXHRjb2xvcjogIzUyNTI1MiFpbXBvcnRhbnRcbn1cblxucHJlIC5mdW5jdGlvbiAua2V5d29yZCxwcmUgLmNvbnN0YW50IHtcblx0Y29sb3I6ICMwMDkyZGIhaW1wb3J0YW50XG59XG5cbnByZSAua2V5d29yZCxwcmUgLmF0dHJpYnV0ZSB7XG5cdGNvbG9yOiAjZTk2OTAwIWltcG9ydGFudFxufVxuXG5wcmUgLm51bWJlcixwcmUgLmxpdGVyYWwge1xuXHRjb2xvcjogI2FlODFmZiFpbXBvcnRhbnRcbn1cblxucHJlIC50YWcscHJlIC50YWcgLnRpdGxlLHByZSAuY2hhbmdlLHByZSAud2ludXRpbHMscHJlIC5mbG93LHByZSAubGlzcCAudGl0bGUscHJlIC5jbG9qdXJlIC5idWlsdF9pbixwcmUgLm5naW54IC50aXRsZSxwcmUgLnRleCAuc3BlY2lhbCB7XG5cdGNvbG9yOiAjMjk3M2I3IWltcG9ydGFudFxufVxuXG5wcmUgLnN5bWJvbCxwcmUgLnN5bWJvbCAuc3RyaW5nLHByZSAudmFsdWUscHJlIC5yZWdleHAge1xuXHRjb2xvcjogIzQyYjk4MyFpbXBvcnRhbnRcbn1cblxucHJlIC50aXRsZSB7XG5cdGNvbG9yOiAjODNCOTE3IWltcG9ydGFudFxufVxuXG5wcmUgLnRhZyAudmFsdWUscHJlIC5zdHJpbmcscHJlIC5zdWJzdCxwcmUgLmhhc2tlbGwgLnR5cGUscHJlIC5wcmVwcm9jZXNzb3IscHJlIC5ydWJ5IC5jbGFzcyAucGFyZW50LHByZSAuYnVpbHRfaW4scHJlIC5zcWwgLmFnZ3JlZ2F0ZSxwcmUgLmRqYW5nbyAudGVtcGxhdGVfdGFnLHByZSAuZGphbmdvIC52YXJpYWJsZSxwcmUgLnNtYWxsdGFsayAuY2xhc3MscHJlIC5qYXZhZG9jLHByZSAuZGphbmdvIC5maWx0ZXIgLmFyZ3VtZW50LHByZSAuc21hbGx0YWxrIC5sb2NhbHZhcnMscHJlIC5zbWFsbHRhbGsgLmFycmF5LHByZSAuYXR0cl9zZWxlY3RvcixwcmUgLnBzZXVkbyxwcmUgLmFkZGl0aW9uLHByZSAuc3RyZWFtLHByZSAuZW52dmFyLHByZSAuYXBhY2hlIC50YWcscHJlIC5hcGFjaGUgLmNicmFja2V0LHByZSAudGV4IC5jb21tYW5kLHByZSAucHJvbXB0IHtcblx0Y29sb3I6ICM0MmI5ODMhaW1wb3J0YW50XG59XG5cbnByZSAuY29tbWVudCxwcmUgLmphdmEgLmFubm90YXRpb24scHJlIC5weXRob24gLmRlY29yYXRvcixwcmUgLnRlbXBsYXRlX2NvbW1lbnQscHJlIC5waSxwcmUgLmRvY3R5cGUscHJlIC5zaGViYW5nLHByZSAuYXBhY2hlIC5zcWJyYWNrZXQscHJlIC50ZXggLmZvcm11bGEge1xuXHRjb2xvcjogI2IzYjNiMyFpbXBvcnRhbnRcbn1cblxucHJlIC5kZWxldGlvbiB7XG5cdGNvbG9yOiAjQkE0NTQ1IWltcG9ydGFudFxufVxuXG5wcmUgLmNvZmZlZXNjcmlwdCAuamF2YXNjcmlwdCxwcmUgLmphdmFzY3JpcHQgLnhtbCxwcmUgLnRleCAuZm9ybXVsYSxwcmUgLnhtbCAuamF2YXNjcmlwdCxwcmUgLnhtbCAudmJzY3JpcHQscHJlIC54bWwgLmNzcyxwcmUgLnhtbCAuY2RhdGEge1xuXHRvcGFjaXR5OiAwLjUhaW1wb3J0YW50XG59XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4gIGJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbTsgfVxuXG4gICAgLmNsZWFyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7IH1cblxuICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW46IDJyZW0gMDsgfVxuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cblxuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtOyB9XG5cbiAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG5cbiAgICAgICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuXG4gICAgICAgICAgICAgICAgICBoNiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICBwLCB1bCwgb2wsIGRsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMWVtIDA7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgb2wgb2wsIHVsIHVsLCB1bCBvbCwgb2wgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNGVtIDA7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bCBwLCBvbCBwLCBsaSBwLCAuY29udGVudCBsaSBwLCBibG9ja3F1b3RlIHAsIC5jb250ZW50IGJsb2NrcXVvdGUgcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnBvc3QgYmxvY2txdW90ZSBwLCAucG9zdCBsaSBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgfVxuXG5kbCBkdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxZW07IH1cblxuICBkbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG4gICAgaHIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgICAgbWFyZ2luOiAzLjJlbSAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW46IDEuNmVtIDAgMS42ZW0gLTIuMmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjZlbTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICM0YTRhNGEgMC40ZW0gc29saWQ7IH1cblxuICAgICAgICBibG9ja3F1b3RlIHAge1xuICAgICAgICAgIG1hcmdpbjogMC44ZW0gMDsgfVxuXG4gICAgICAgICAgYmxvY2txdW90ZSBzbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAuOGVtIDAgMC44ZW0gMS41ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICAgICAgY29sb3I6ICNjY2M7IH1cblxuICAgICAgICAgICAgYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7IH1cblxuICAgICAgICAgICAgICBibG9ja3F1b3RlIGNpdGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiAgICAgICAgICAgICAgICBibG9ja3F1b3RlIGNpdGUgYSB7XG4gICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbiAgICAgICAgICAgICAgICAgIG1hcmsge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMzM2OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29kZSwgdHQge1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEluY29uc29sYXRhLCBtb25vc3BhY2UsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFM0VERjM7XG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y3ZjdmOTtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2QxNDtcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbi8qKlxuICAgICAgICAgICAgICAgICAgICAgIHByZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxLjZlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0UzRURGMztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBJbmNvbnNvbGF0YSwgbW9ub3NwYWNlLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGN0ZBRkI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlIGNvZGUsIHR0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogLW1vei1wcmUtd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtiZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAjY2NjIDFweCBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogI2ZmZiAwIDFweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDAgMCB3aGl0ZSBpbnNldDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLCB0YWJsZSB0ciwgdGFibGUgdHIgdGQsIHRhYmxlIHRyIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUgdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNjY2NjY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGZkZmQ7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ciB0aCwgdHIgdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyIHRoOmxhc3QtY2hpbGQsIHRyIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMHB4OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSB0Ym9keSA+IHRyOm50aC1jaGlsZChvZGQpID4gdGQsIHRhYmxlIHRib2R5ID4gdHI6bnRoLWNoaWxkKG9kZCkgPiB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2lzdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdpc3QgdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5naXN0IHRhYmxlIHByZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2lzdCB0YWJsZSAubGluZS1udW1iZXJzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7IH1cbioqL1xuXG4udG9jIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMTBweCAzMHB4OyB9XG5cbiAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNlbTsgfVxuICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyBoMiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJlbTsgfVxuICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xZW07IH1cbiAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGg0LCAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyBoNSxcbiAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGg2IHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjA1ZW07IH1cbiAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yKTtcbiAgICAgICAgICAgICAgICAqYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7IH1cbiAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfYm9keSxcbiAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3MHB4O1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X2JvZHkgcCxcbiAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jX2NvbnRlbnQgcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IDAgMTVweCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OyB9XG4gICAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X2JvZHkgLmF1dGhvcixcbiAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNfY29udGVudCAuYXV0aG9yIHtcbiAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY29tbWVudF9ib2R5IC5hdXRob3IgYixcbiAgICAgICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY19jb250ZW50IC5hdXRob3IgYiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzU1NTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfYm9keSAuYXV0aG9yIHNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNfY29udGVudCAuYXV0aG9yIHNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuN2VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjsgfVxuXG4jZmJfbmV3X2NvbW1lbnQge1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICAjZmJfbmV3X2NvbW1lbnQgdGV4dGFyZWEge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgd2lkdGg6IDk4JTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjUpO1xuICAgICpib3JkZXI6IDFweCBzb2xpZCAjYThhOGE4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAjZmJfbmV3X2NvbW1lbnQgLmNvbW1lbnRfZXJyb3Ige1xuICAgICAgY29sb3I6IHJlZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAxZW07IH1cbiAgICAgICNmYl9uZXdfY29tbWVudCAuY19idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRTYwOTAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICNmYl9uZXdfY29tbWVudCAuY19idXR0b24sICNmYl9uZXdfY29tbWVudCAjY19zdWJtaXQge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJIaXJhZ2lubyBTYW5zIEdCXCIsIFwiTWljcm9zb2Z0IFlhSGVpXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDVweCA1cHggMnB4IDVweDsgfVxuICAgICAgICAgICNmYl9uZXdfY29tbWVudCAuaW5wdXRfYm9keSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gICAgICAgICAgICAjZmJfbmV3X2NvbW1lbnQgLmlucHV0X2JvZHkgdWwge1xuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7IH1cbiAgICAgICAgICAgICAgI2ZiX25ld19jb21tZW50IC5pbnB1dF9ib2R5IHVsIGxpIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMiU7XG4gICAgICAgICAgICAgICAgKm1hcmdpbi1yaWdodDogMjJweDsgfVxuICAgICAgICAgICAgICAgICNmYl9uZXdfY29tbWVudCAuaW5wdXRfYm9keSB1bCBsaSBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtOyB9XG4gICAgICAgICAgICAgICAgICAjZmJfbmV3X2NvbW1lbnQgLmlucHV0X2JvZHkgdWwgbGkgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7IH1cblxuI1N3ZlN0b3JlX2ZhcmJveF8wIHtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgICAjZmJfY29tbWVudHMgLmNfY29udGVudCwgI2ZiX2NvbW1lbnRzIC5jb21tZW50X2JvZHkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDU3cHg7ICAgfVxufVxuIl19 */
\ No newline at end of file
+/*# sourceMappingURL=data:application/json;base64,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QjtFQUNyQjtJQUNFLGtCQUFBO0lBQ0EsWUFBQTtJQUNBLFVBQUE7SUFDQSxZQUFBO0lBQ0EsY0FBQTtJQUNBLDBDQUFBO0tBQUEseUJBQ0E7SUFDQSxnQkFBQSxFQUFpQjtJQUNqQjtNQUNFLFVBQUE7TUFDQSxrQkFBQTtNQUNBLGNBQUE7TUFDQSxnQkFBQTtNQUNBLGdCQUFBLEVBQWlCO01BQ2pCO1FBQ0UsbUJBQUE7UUFDQSxXQUFBO1FBQ0EscUJBQUEsRUFBc0I7UUFDdEI7VUFDRSxlQUFBO1VBQ0EsOERBQUE7VUFDQSxjQUFBO1VBQ0Esa0JBQUE7VUFDQSxtQkFBQTtVQUNBLGtCQUFBO1VBQ0Esd0JBQUEsRUFBeUI7VUFDekI7WUFDRSxnQkFBQSxFQUFpQjtZQUNqQjtjQUNFLGdCQUFBO2NBQ0EsY0FBQTtjQUNBLGNBQUEsRUFBZTtjQUNmO2dCQUNFLFdBQUE7Z0JBQ0Esa0JBQUE7aUJBQUEsa0JBQ0EsRUFBb0I7Z0JBQ3BCO2tCQUNFLGdCQUFBLEVBQWlCO2tCQUNqQjtvQkFDRSxrQkFBQTtvQkFDQSxzQkFBQTtvQkFDQSxZQUFBO29CQUNBLG9DQUFBO29CQUNBLGtCQUFBLEVBQW1COztBQUV2QztFQUNFLFNBQUE7RUFDQSxnQkFBQSxFQUFpQjs7RUFFakI7SUFDRTtNQUNFLGlCQUFBLElBQWtCO0FBQXhCIiwiZmlsZSI6ImJsb2dfYmFzaWMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRlbnQgPiAucG9zdCA+IC5wb3N0LWNvbnRlbnQgPiBwIHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbiNkcy10aHJlYWQge1xuXHRtYXJnaW46IDAgMzBweCFpbXBvcnRhbnRcbn1cblxucHJlIHtcblx0Zm9udC1zaXplOiAwLjhlbSFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjghaW1wb3J0YW50O1xuXHRmb250LWZhbWlseTogJ1JvYm90byBNb25vJywnTHVjaWRhIENvbnNvbGUnLCdUcmVidWNoZXQgTVMnLCdDb3VyaWVyIE5ldycsIE1vbmFjbywgY291cmllciwnUGluZ0ZhbmcgU0MnLCdIaXJhZ2lubyBTYW5zIEdCJywnTWljcm9zb2Z0IEpoZW5naGVpJywnTWljcm9zb2Z0IFlhSGVpJywgbW9ub3NwYWNlIWltcG9ydGFudFxufVxuXG5maWd1cmUuaGlnaGxpZ2h0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlIWltcG9ydGFudDtcblx0bWFyZ2luOiAxZW0gMCFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDJweCFpbXBvcnRhbnQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjFlbSFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjghaW1wb3J0YW50O1xuXHRvdmVyZmxvdy14OiBhdXRvIWltcG9ydGFudFxufVxuXG5maWd1cmUuaGlnaGxpZ2h0IHRhYmxlLGZpZ3VyZS5oaWdobGlnaHQgdHIsZmlndXJlLmhpZ2hsaWdodCB0ZCB7XG5cdHdpZHRoOiAxMDAlIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQgLmd1dHRlciB7XG5cdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQgLmNvZGUgcHJlIHtcblx0cGFkZGluZzogMS4yZW0gMS40ZW0haW1wb3J0YW50O1xuXHRsaW5lLWhlaWdodDogMS41ZW0haW1wb3J0YW50O1xuXHRtYXJnaW46IDAhaW1wb3J0YW50XG59XG5cbmZpZ3VyZS5oaWdobGlnaHQuaHRtbCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmpzIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuYmFzaCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmNzcyAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnNjc3MgLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5kaWZmIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuamF2YSAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnhtbCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnB5dGhvbiAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0Lmpzb24gLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5zd2lmdCAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LnJ1YnkgLmNvZGU6YWZ0ZXIsZmlndXJlLmhpZ2hsaWdodC5wZXJsIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQucGhwIC5jb2RlOmFmdGVyLGZpZ3VyZS5oaWdobGlnaHQuYyAuY29kZTphZnRlcixmaWd1cmUuaGlnaGxpZ2h0LmNwcCAuY29kZTphZnRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7XG5cdHRvcDogMCFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwIWltcG9ydGFudDtcblx0Y29sb3I6ICNjY2MhaW1wb3J0YW50O1xuXHR0ZXh0LWFsaWduOiByaWdodCFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMC43NWVtIWltcG9ydGFudDtcblx0cGFkZGluZzogNXB4IDEwcHggMCFpbXBvcnRhbnQ7XG5cdGxpbmUtaGVpZ2h0OiAxNXB4IWltcG9ydGFudDtcblx0aGVpZ2h0OiAxNXB4IWltcG9ydGFudDtcblx0Zm9udC13ZWlnaHQ6IDYwMCFpbXBvcnRhbnRcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5odG1sIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJIVE1MXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5qcyAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiSlNcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmJhc2ggLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkJBU0hcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmNzcyAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiQ1NTXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5zY3NzIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJTQ1NTXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5kaWZmIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJESUZGXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5qYXZhIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJKQVZBXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC54bWwgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlhNTFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucHl0aG9uIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJQWVRIT05cIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0Lmpzb24gLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkpTT05cIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LnN3aWZ0IC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJTV0lGVFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucnVieSAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiUlVCWVwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucGVybCAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiUEVSTFwiXG59XG5cbmZpZ3VyZS5oaWdobGlnaHQucGhwIC5jb2RlOmFmdGVyIHtcblx0Y29udGVudDogXCJQSFBcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmMgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkNcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmphdmEgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiBcIkpBVkFcIlxufVxuXG5maWd1cmUuaGlnaGxpZ2h0LmNwcCAuY29kZTphZnRlciB7XG5cdGNvbnRlbnQ6IFwiQ1BQXCJcbn1cblxuZmlndXJlLmhpZ2hsaWdodC5jcHAgLmNvZGU6YWZ0ZXIge1xuXHRjb250ZW50OiAnQysrJ1xufVxuXG5wcmUge1xuXHRjb2xvcjogIzUyNTI1MiFpbXBvcnRhbnRcbn1cblxucHJlIC5mdW5jdGlvbiAua2V5d29yZCxwcmUgLmNvbnN0YW50IHtcblx0Y29sb3I6ICMwMDkyZGIhaW1wb3J0YW50XG59XG5cbnByZSAua2V5d29yZCxwcmUgLmF0dHJpYnV0ZSB7XG5cdGNvbG9yOiAjZTk2OTAwIWltcG9ydGFudFxufVxuXG5wcmUgLm51bWJlcixwcmUgLmxpdGVyYWwge1xuXHRjb2xvcjogI2FlODFmZiFpbXBvcnRhbnRcbn1cblxucHJlIC50YWcscHJlIC50YWcgLnRpdGxlLHByZSAuY2hhbmdlLHByZSAud2ludXRpbHMscHJlIC5mbG93LHByZSAubGlzcCAudGl0bGUscHJlIC5jbG9qdXJlIC5idWlsdF9pbixwcmUgLm5naW54IC50aXRsZSxwcmUgLnRleCAuc3BlY2lhbCB7XG5cdGNvbG9yOiAjMjk3M2I3IWltcG9ydGFudFxufVxuXG5wcmUgLnN5bWJvbCxwcmUgLnN5bWJvbCAuc3RyaW5nLHByZSAudmFsdWUscHJlIC5yZWdleHAge1xuXHRjb2xvcjogIzQyYjk4MyFpbXBvcnRhbnRcbn1cblxucHJlIC50aXRsZSB7XG5cdGNvbG9yOiAjODNCOTE3IWltcG9ydGFudFxufVxuXG5wcmUgLnRhZyAudmFsdWUscHJlIC5zdHJpbmcscHJlIC5zdWJzdCxwcmUgLmhhc2tlbGwgLnR5cGUscHJlIC5wcmVwcm9jZXNzb3IscHJlIC5ydWJ5IC5jbGFzcyAucGFyZW50LHByZSAuYnVpbHRfaW4scHJlIC5zcWwgLmFnZ3JlZ2F0ZSxwcmUgLmRqYW5nbyAudGVtcGxhdGVfdGFnLHByZSAuZGphbmdvIC52YXJpYWJsZSxwcmUgLnNtYWxsdGFsayAuY2xhc3MscHJlIC5qYXZhZG9jLHByZSAuZGphbmdvIC5maWx0ZXIgLmFyZ3VtZW50LHByZSAuc21hbGx0YWxrIC5sb2NhbHZhcnMscHJlIC5zbWFsbHRhbGsgLmFycmF5LHByZSAuYXR0cl9zZWxlY3RvcixwcmUgLnBzZXVkbyxwcmUgLmFkZGl0aW9uLHByZSAuc3RyZWFtLHByZSAuZW52dmFyLHByZSAuYXBhY2hlIC50YWcscHJlIC5hcGFjaGUgLmNicmFja2V0LHByZSAudGV4IC5jb21tYW5kLHByZSAucHJvbXB0IHtcblx0Y29sb3I6ICM0MmI5ODMhaW1wb3J0YW50XG59XG5cbnByZSAuY29tbWVudCxwcmUgLmphdmEgLmFubm90YXRpb24scHJlIC5weXRob24gLmRlY29yYXRvcixwcmUgLnRlbXBsYXRlX2NvbW1lbnQscHJlIC5waSxwcmUgLmRvY3R5cGUscHJlIC5zaGViYW5nLHByZSAuYXBhY2hlIC5zcWJyYWNrZXQscHJlIC50ZXggLmZvcm11bGEge1xuXHRjb2xvcjogI2IzYjNiMyFpbXBvcnRhbnRcbn1cblxucHJlIC5kZWxldGlvbiB7XG5cdGNvbG9yOiAjQkE0NTQ1IWltcG9ydGFudFxufVxuXG5wcmUgLmNvZmZlZXNjcmlwdCAuamF2YXNjcmlwdCxwcmUgLmphdmFzY3JpcHQgLnhtbCxwcmUgLnRleCAuZm9ybXVsYSxwcmUgLnhtbCAuamF2YXNjcmlwdCxwcmUgLnhtbCAudmJzY3JpcHQscHJlIC54bWwgLmNzcyxwcmUgLnhtbCAuY2RhdGEge1xuXHRvcGFjaXR5OiAwLjUhaW1wb3J0YW50XG59XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4gIGJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbTsgfVxuXG4gICAgLmNsZWFyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7IH1cblxuICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW46IDJyZW0gMDsgfVxuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cblxuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtOyB9XG5cbiAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG5cbiAgICAgICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuXG4gICAgICAgICAgICAgICAgICBoNiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICBwLCB1bCwgb2wsIGRsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMWVtIDA7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgb2wgb2wsIHVsIHVsLCB1bCBvbCwgb2wgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNGVtIDA7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bCBwLCBvbCBwLCBsaSBwLCAuY29udGVudCBsaSBwLCBibG9ja3F1b3RlIHAsIC5jb250ZW50IGJsb2NrcXVvdGUgcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnBvc3QgYmxvY2txdW90ZSBwLCAucG9zdCBsaSBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsgfVxuXG5kbCBkdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxZW07IH1cblxuICBkbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG4gICAgaHIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgICAgbWFyZ2luOiAzLjJlbSAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW46IDEuNmVtIDAgMS42ZW0gLTIuMmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjZlbTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICM0YTRhNGEgMC40ZW0gc29saWQ7IH1cblxuICAgICAgICBibG9ja3F1b3RlIHAge1xuICAgICAgICAgIG1hcmdpbjogMC44ZW0gMDsgfVxuXG4gICAgICAgICAgYmxvY2txdW90ZSBzbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAuOGVtIDAgMC44ZW0gMS41ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICAgICAgY29sb3I6ICNjY2M7IH1cblxuICAgICAgICAgICAgYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7IH1cblxuICAgICAgICAgICAgICBibG9ja3F1b3RlIGNpdGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiAgICAgICAgICAgICAgICBibG9ja3F1b3RlIGNpdGUgYSB7XG4gICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbiAgICAgICAgICAgICAgICAgIG1hcmsge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMzM2OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29kZSwgdHQge1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEluY29uc29sYXRhLCBtb25vc3BhY2UsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFM0VERjM7XG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y3ZjdmOTtcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2QxNDtcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbi8qKlxuICAgICAgICAgICAgICAgICAgICAgIHByZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxLjZlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0UzRURGMztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBJbmNvbnNvbGF0YSwgbW9ub3NwYWNlLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGN0ZBRkI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlIGNvZGUsIHR0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogLW1vei1wcmUtd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtiZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAjY2NjIDFweCBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogI2ZmZiAwIDFweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDAgMCB3aGl0ZSBpbnNldDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLCB0YWJsZSB0ciwgdGFibGUgdHIgdGQsIHRhYmxlIHRyIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUgdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNjY2NjY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGZkZmQ7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ciB0aCwgdHIgdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyIHRoOmxhc3QtY2hpbGQsIHRyIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMHB4OyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSB0Ym9keSA+IHRyOm50aC1jaGlsZChvZGQpID4gdGQsIHRhYmxlIHRib2R5ID4gdHI6bnRoLWNoaWxkKG9kZCkgPiB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2lzdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdpc3QgdGFibGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5naXN0IHRhYmxlIHByZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2lzdCB0YWJsZSAubGluZS1udW1iZXJzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7IH1cbioqL1xuXG4udG9jIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMTBweCAzMHB4OyB9XG5cbiAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNlbTsgfVxuICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyBoMiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjJlbTsgfVxuICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xZW07IH1cbiAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGg0LCAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyBoNSxcbiAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIGg2IHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjA1ZW07IH1cbiAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yKTtcbiAgICAgICAgICAgICAgICAqYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7IH1cbiAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfYm9keSxcbiAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3MHB4O1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X2JvZHkgcCxcbiAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jX2NvbnRlbnQgcCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IDAgMTVweCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OyB9XG4gICAgICAgICAgICAgICAgICAgICNmYl9jb21tZW50c19jb250YWluZXIgI2ZiX2NvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X2JvZHkgLmF1dGhvcixcbiAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNfY29udGVudCAuYXV0aG9yIHtcbiAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY29tbWVudF9ib2R5IC5hdXRob3IgYixcbiAgICAgICAgICAgICAgICAgICAgICAjZmJfY29tbWVudHNfY29udGFpbmVyICNmYl9jb21tZW50cyAuY29tbWVudCAuY19jb250ZW50IC5hdXRob3IgYiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzU1NTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfYm9keSAuYXV0aG9yIHNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZiX2NvbW1lbnRzX2NvbnRhaW5lciAjZmJfY29tbWVudHMgLmNvbW1lbnQgLmNfY29udGVudCAuYXV0aG9yIHNtYWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuN2VtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjsgfVxuXG4jZmJfbmV3X2NvbW1lbnQge1xuICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICAjZmJfbmV3X2NvbW1lbnQgdGV4dGFyZWEge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgd2lkdGg6IDk4JTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjUpO1xuICAgICpib3JkZXI6IDFweCBzb2xpZCAjYThhOGE4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAjZmJfbmV3X2NvbW1lbnQgLmNvbW1lbnRfZXJyb3Ige1xuICAgICAgY29sb3I6IHJlZDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAxZW07IH1cbiAgICAgICNmYl9uZXdfY29tbWVudCAuY19idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRTYwOTAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICNmYl9uZXdfY29tbWVudCAuY19idXR0b24sICNmYl9uZXdfY29tbWVudCAjY19zdWJtaXQge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJIaXJhZ2lubyBTYW5zIEdCXCIsIFwiTWljcm9zb2Z0IFlhSGVpXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDVweCA1cHggMnB4IDVweDsgfVxuICAgICAgICAgICNmYl9uZXdfY29tbWVudCAuaW5wdXRfYm9keSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gICAgICAgICAgICAjZmJfbmV3X2NvbW1lbnQgLmlucHV0X2JvZHkgdWwge1xuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7IH1cbiAgICAgICAgICAgICAgI2ZiX25ld19jb21tZW50IC5pbnB1dF9ib2R5IHVsIGxpIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIuMiU7XG4gICAgICAgICAgICAgICAgKm1hcmdpbi1yaWdodDogMjJweDsgfVxuICAgICAgICAgICAgICAgICNmYl9uZXdfY29tbWVudCAuaW5wdXRfYm9keSB1bCBsaSBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtOyB9XG4gICAgICAgICAgICAgICAgICAjZmJfbmV3X2NvbW1lbnQgLmlucHV0X2JvZHkgdWwgbGkgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7IH1cblxuI1N3ZlN0b3JlX2ZhcmJveF8wIHtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgICAjZmJfY29tbWVudHMgLmNfY29udGVudCwgI2ZiX2NvbW1lbnRzIC5jb21tZW50X2JvZHkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDU3cHg7ICAgfVxufVxuIl19 */
diff --git a/source/js/duoshuo.js b/source/js/duoshuo.js
deleted file mode 100644
index 89a2999..0000000
--- a/source/js/duoshuo.js
+++ /dev/null
@@ -1,1504 +0,0 @@
-/**
- * Created by shiyiwan on 16/9/13.
- */
-!function (e, t, s) {
- function a() {
- return c.short_name ? g + "//" + c.short_name + "." + S.DOMAIN : S.REMOTE
- }
-
- function i() {
- function t() {
- for (var t; t = y.shift();) {
- var a = t.url, i = new s(t.title, {dir: "auto", icon: t.iconUrl, body: t.body});
- try {
- i.onclick = function () {
- e.focus(), h.href = a, i.close()
- }
- } catch (r) {
- }
- setTimeout(function () {
- i.close && i.close()
- }, 8e3)
- }
- }
-
- var s = e.Notification;
- "Notification" in e && "denied" !== s.permission && ("granted" === s.permission && t(), s.requestPermission(function (e) {
- "granted" === e && t()
- }))
- }
-
- function r() {
- return 0 == nt.data.user_id
- }
-
- function n(e) {
- S.theme = e, "none" != e && o.injectStylesheet(S.STATIC_URL + "/styles/embed" + (e ? "." + e + ".css?" + U[e] : "." + short_name) + ".css")
- }
-
- var o = {}, d = t.getElementsByTagName("head")[0] || t.getElementsByTagName("body")[0];
- if (o.extend = function (e, t) {
- for (var s in t)e[s] = t[s];
- return e
- }, o.injectScript = function (a, i) {
- var r = t.createElement("script"), n = t.head || t.getElementsByTagName("head")[0] || t.documentElement;
- r.type = "text/javascript", r.src = a, r.async = "async", r.charset = "utf-8", i && (r.onload = r.onreadystatechange = function (t, a) {
- var o = a || !r.readyState || /loaded|complete/.test(r.readyState);
- o && (r.onload = r.onreadystatechange = null, n && r.parentNode && n.removeChild(r), r = s, a || i.call(e))
- }), n.insertBefore(r, n.firstChild)
- }, o.injectStylesheet = function (e) {
- var s = t.createElement("link");
- s.type = "text/css", s.rel = "stylesheet", s.href = e, d.appendChild(s)
- }, o.injectStyle = function (e) {
- var s = t.createElement("style");
- return s.type = "text/css", d.appendChild(s), e = e.replace(/\}/g, "}\n"), s.styleSheet ? s.styleSheet.cssText = e : s.appendChild(t.createTextNode(e)), s
- }, o.getCookie = function (e) {
- for (var a, i, r, n = " " + e + "=", o = t.cookie.split(";"), d = 0; d < o.length; d++)if (a = " " + o[d], i = a.indexOf(n), i >= 0 && i + n.length == (r = a.indexOf("=") + 1))return decodeURIComponent(a.substring(r, a.length).replace(/\+/g, ""));
- return s
- }, o.param = function (e) {
- var t = [];
- for (var a in e)e[a] != s && t.push(a + "=" + encodeURIComponent(e[a]));
- return t.join("&")
- }, o.cssProperty = function (e, s) {
- var a = (t.body || t.documentElement).style;
- if ("undefined" == typeof a)return !1;
- if ("string" == typeof a[e])return s ? e : !0;
- for (var i = ["Moz", "Webkit", "ms"], e = e.charAt(0).toUpperCase() + e.substr(1), r = 0; r < i.length; r++)if ("string" == typeof a[i[r] + e])return s ? i[r] + e : !0
- }, !e.DUOSHUO) {
- for (var l in Object.prototype)return alert("Object.prototype 不为空,请不要给 Object.prototype 设置方法");
- var c, u, p = e.JSON, h = e.location, f = e.XMLHttpRequest, m = p && p.stringify && e.localStorage, v = e.navigator.userAgent, g = "https:" == t.location.protocol ? "https:" : "http:", b = 0, y = [], _ = u = function () {
- function e(e) {
- return t[e] || "&"
- }
-
- var t = {
- "<": "<",
- ">": ">",
- '"': """,
- "'": "'",
- "`": "`"
- }, s = /&(?!\w+;)|[<>"'`]/g, a = /[&<>"'`]/;
- return function (t) {
- return null == t || t === !1 ? "" : a.test(t) ? t.replace(s, e) : t
- }
- }(), k = function (e) {
- if (e.match(/^(http|https):/))return e;
- var s = t.createElement("a");
- return s.href = e, P.hrefNormalized ? s.href : s.getAttribute("href", 4)
- }, w = function (e) {
- return function () {
- return e
- }
- }, x = function () {
- for (var e = {}, t = 0; t < arguments.length; t++)arguments[t] && o.extend(e, arguments[t]);
- var s = o.param(e);
- return s ? "?" + s : ""
- }, T = function () {
- var e = o.getCookie("duoshuo_token");
- return e ? {jwt: e} : c.remote_auth ? {short_name: c.short_name, remote_auth: c.remote_auth} : s
- }, q = function () {
- if (!c && (c = e.duoshuoQuery)) {
- if (!c.short_name || "your_duoshuo_short_name" === c.short_name)return c = s, void alert("你还没有设置多说域名(duoshuoQuery.short_name),填入已有域名或创建新站点:http://duoshuo.com/create-site/");
- it.trigger("queryDefined")
- }
- return c
- }, C = function (e) {
- return e && e.error && e.warn ? e : {
- error: function () {
- }, log: function () {
- }, warn: function () {
- }
- }
- }(e.console), S = e.DUOSHUO = {
- sourceName: {
- weibo: "新浪微博",
- qq: "QQ",
- qzone: "QQ空间",
- qqt: "腾讯微博",
- renren: "人人网",
- douban: "豆瓣网",
- kaixin: "开心网",
- sohu: "搜狐微博",
- baidu: "百度",
- google: "谷歌",
- wechat: "微信",
- weixin: "微信",
- facebook: "Facebook",
- twitter: "Twitter",
- linkedin: "Linkedin"
- },
- serviceNames: {
- weibo: "微博",
- qq: "QQ",
- douban: "豆瓣",
- renren: "人人",
- kaixin: "开心",
- baidu: "百度",
- google: "谷歌",
- wechat: "微信",
- weixin: "微信",
- facebook: "Facebook",
- twitter: "Twitter",
- linkedin: "Linkedin"
- },
- parseDate: function (e) {
- return e.parse("2011-10-28T00:00:00+08:00") && function (t) {
- return new e(t)
- } || e.parse("2011/10/28T00:00:00+0800") && function (t) {
- return new e(t.replace(/-/g, "/").replace(/:(\d\d)$/, "$1"))
- } || e.parse("2011/10/28 00:00:00+0800") && function (t) {
- return new e(t.replace(/-/g, "/").replace(/:(\d\d)$/, "$1").replace("T", " "))
- } || function (t) {
- return new e(t)
- }
- }(Date),
- fullTime: function (e) {
- var t = S.parseDate(e);
- return t.getFullYear() + "年" + (t.getMonth() + 1) + "月" + t.getDate() + "日 " + t.toLocaleTimeString()
- },
- elapsedTime: function (e) {
- var t = S.parseDate(e), s = new Date, a = (s - b - t) / 1e3;
- return 10 > a ? "刚刚" : 60 > a ? Math.round(a) + "秒前" : 3600 > a ? Math.round(a / 60) + "分钟前" : 86400 > a ? Math.round(a / 3600) + "小时前" : (s.getFullYear() == t.getFullYear() ? "" : t.getFullYear() + "年") + (t.getMonth() + 1) + "月" + t.getDate() + "日"
- },
- compileStyle: function (e) {
- var t = "", s = {};
- if (s.textbox = "#ds-thread #ds-reset .ds-replybox .ds-textarea-wrapper", !e)return t;
- for (var a in e)t += s[a] + "{" + e[a] + "}\n";
- return t
- },
- init: function (e, t) {
- e && !O[e] && (O[e] = t || {type: "EmbedThread"}), S.initView && S.initView()
- }
- }, j = t.all, P = S.support = function () {
- var s = t.createElement("div");
- s.innerHTML = 'a ';
- var a = s.getElementsByTagName("a")[0], i = s.getElementsByTagName("input")[0], r = {
- placeholder: "placeholder" in i,
- touch: "ontouchstart" in e || "onmsgesturechange" in e,
- opacity: /^0.55$/.test(a.style.opacity),
- hrefNormalized: "/a" === a.getAttribute("href"),
- iOS: v.match(/ \((iPad|iPhone|iPod);( U;)? CPU( iPhone)? OS /),
- android: v.match(/ \(Linux; U; Android /)
- };
- return r.ie6 = !f && "undefined" == typeof s.style.maxHeight, r.authInWin = e.postMessage && e.screen.width > 800 && !r.iOS && !r.android && h.origin, r
- }(), O = S.selectors = {
- ".ds-thread": {type: "EmbedThread"},
- ".ds-recent-comments": {type: "RecentComments"},
- ".ds-recent-visitors": {type: "RecentVisitors"},
- ".ds-top-users": {type: "TopUsers"},
- ".ds-top-threads": {type: "TopThreads"},
- ".ds-login": {type: "LoginWidget"},
- ".ds-thread-count": {type: "ThreadCount"},
- ".ds-share": {type: "ShareWidget"}
- }, E = S.openDialog = function (e) {
- return S.dialog !== s && S.dialog.el.remove(), S.dialog = new st.Dialog(et.dialog(e)).open()
- }, L = S.smilies = {};
- S.require = function () {
- function t(e) {
- var t = R[e] ? "?" + R[e] + ".js" : "";
- return S.STATIC_URL + "/libs/" + e + ".js" + t
- }
-
- var s = {mzadxN: "undefined" != typeof mzadxN};
- return "undefined" != typeof jQuery && jQuery.fn.jquery >= "1.5" && (s["embed.compat"] = !0, S.jQuery = e.jQuery), function (e, a) {
- if ("string" == typeof e)s[e] ? a() : o.injectScript(t(e), function () {
- s[e] = !0, a()
- }); else if ("object" == typeof e) {
- var i, r = !0;
- for (i = 0; i < e.length; i++)(function (n) {
- s[e[i]] || (r = !1, o.injectScript(t(n), function () {
- s[n] = !0;
- for (var t = 0; t < e.length; t++)if (!s[e[t]])return;
- a()
- }))
- })(e[i]);
- r && a()
- }
- }
- }();
- for (var N = 0, I = ["EmbedThread", "RecentComments", "RecentVisitors", "TopUsers", "TopThreads", "LoginWidget", "ThreadCount"]; N < I.length; N++)S[I[N]] = function (e) {
- return function (t, s) {
- s = s || {}, s.type = e, t && !O[t] && (O[t] = s), S.initSelector && S.initSelector(t, s)
- }
- }(I[N]), S["create" + I[N]] = function (e) {
- return function (s, a) {
- var i = t.createElement(s);
- for (var r in a)i.setAttribute("data-" + r, a[r]);
- return S[e](i), i
- }
- }(I[N]);
- S.RecentCommentsWidget = S.RecentComments;
- var A = S.API = {
- ajax: function (e, t, i, r, n) {
- function d(e) {
- var t = e.getResponseHeader("Date");
- t && (b = new Date - new Date(t))
- }
-
- function l(e, t, s) {
- var a, i, o, l = t;
- if (e >= 200 && 300 > e || 304 === e)if (304 === e)l = "notmodified", o = !0; else try {
- a = p.parse(s), l = "success", o = !0
- } catch (c) {
- l = "parsererror", i = c
- } else {
- i = l, (!l || e) && (l = "error", 0 > e && (e = 0));
- try {
- a = p.parse(s)
- } catch (c) {
- l = "parsererror", i = c
- }
- }
- o ? r && r(a) : "parseerror" === l ? C.error("解析错误: " + s) : (C.error("出错啦(" + a.code + "): " + a.errorMessage), n && n(a), a.errorTrace && C.error(a.errorTrace)), d(m)
- }
-
- var u = o.getCookie("duoshuo_token");
- i = i || {}, i.v = S.version, u ? i.jwt = u : c.remote_auth && (i.remote_auth = c.remote_auth);
- var h = f && p && p.parse;
- if (h) {
- var m = new f, v = !!m && "withCredentials" in m;
- if (v) {
- var g;
- return m.open(e, a() + "/api/" + t + ".json" + ("GET" == e ? "?" + o.param(i) : ""), !0), m.withCredentials = !0, m.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"), m.send("GET" == e ? null : o.param(i)), g = function (e, t) {
- var a, i, r, n;
- try {
- if (g && (t || 4 === m.readyState))if (g = s, t)4 !== m.readyState && m.abort(); else {
- a = m.status, r = m.getAllResponseHeaders();
- try {
- n = m.responseText
- } catch (e) {
- }
- try {
- i = m.statusText
- } catch (o) {
- i = ""
- }
- }
- } catch (d) {
- t || l(-1, d)
- }
- n && l(a, i, n, r)
- }, void(4 === m.readyState ? g() : m.onreadystatechange = g)
- }
- }
- "GET" != e && (i._method = "POST");
- var y = "cb_" + Math.round(1e6 * Math.random());
- A[y] = function (e) {
- switch (e.code) {
- case 0:
- r && r(e);
- break;
- default:
- n && n(e), C.error("出错啦(" + e.code + "): " + e.errorMessage), e.errorTrace && C.error(e.errorTrace)
- }
- }, i.callback = "DUOSHUO.API['" + y + "']", o.injectScript(a() + "/api/" + t + ".jsonp?" + o.param(i))
- }, get: function (e, t, s, a) {
- return this.ajax("GET", e, t, s, a)
- }, post: function (e, t, s, a) {
- return this.ajax("POST", e, t, s, a)
- }
- }, M = S.ws = {
- messages: [], send: function (s) {
- if (!("WebSocket" in e && p))return !1;
- var a = this;
- if (a.messages.push(p.stringify(s)), !a.webSocket) {
- var r = "https:" === t.location.protocol ? "wss://ws.duoshuo.com:8202/" : "ws://ws.duoshuo.com:8201/", n = a.webSocket = new WebSocket(r);
- n.onopen = function () {
- var e, t = 1 === n.readyState;
- if (t)for (; e = a.messages.shift();)n.send(e)
- }, n.onmessage = function (e) {
- try {
- var t = p.parse(e.data)
- } catch (s) {
- return
- }
- switch (t.type) {
- case"post":
- for (var a, r = 0; r < S.pagelets.length; r++)a = S.pagelets[r], a.threadId == t.thread_id && a.onMessage(t);
- break;
- case"notification":
- y.push(t), i()
- }
- }, e.addEventListener("beforeunload", function () {
- n.close()
- })
- }
- a.webSocket.onopen()
- }
- };
- S.DOMAIN = "duoshuo.com", S.STATIC_URL = g + "//static.duoshuo.com", S.REMOTE = g + "//duoshuo.com", S.version = "15.11.15";
- var U = {
- "default": "79dc948b",
- dark: "ddc346d8",
- bluebox: "0f0f035c",
- newhua: "dc453ca2"
- }, R = {"embed.compat": "24f8ca3f", smilies: "921e8eda"}, z = {
- post: "发布",
- posting: "正在发布",
- settings: "设置",
- reply: "回复",
- like: "顶",
- repost: "转发",
- report: "举报",
- "delete": "删除",
- reply_to: "回复 ",
- reposts: "转发",
- comments: "评论",
- floor: "楼",
- latest: "最新",
- earliest: "最早",
- hottest: "最热",
- share_to: "分享到:",
- leave_a_message: "说点什么吧…",
- no_comments_yet: "还没有评论,沙发等你来抢",
- repost_reason: "请输入转发理由",
- hot_posts_title: "被顶起来的评论",
- comments_zero: "暂无评论",
- comments_one: "1条评论",
- comments_multiple: "{num}条评论",
- reposts_zero: "暂无转发",
- reposts_one: "1条转发",
- reposts_multiple: "{num}条转发",
- weibo_reposts_zero: "暂无新浪微博",
- weibo_reposts_one: "1条新浪微博",
- weibo_reposts_multiple: "{num}条新浪微博",
- qqt_reposts_zero: "暂无腾讯微博",
- qqt_reposts_one: "1条腾讯微博",
- qqt_reposts_multiple: "{num}条腾讯微博"
- }, D = {
- get: function (e) {
- return m ? m[e] : void 0
- }, save: function (e, t) {
- if (m)try {
- m.removeItem(e), m[e] = p.stringify(t), m.removeItem(e + ":timestamp"), m[e + ":timestamp"] = Math.floor((new Date - b) / 1e3)
- } catch (s) {
- }
- }
- }, W = S.loadRequire = function (t) {
- if (t.visitor && (!nt.data && t.visitor.user_id && e.Notification && M.send({logged_user_id: t.visitor.user_id}), nt.reset(t.visitor)), t.site && (rt.reset(t.site), D.save("ds_site_" + c.short_name, t.site)), !S.theme && rt.data.theme && n(rt.data.theme), t.lang && (o.extend(z, t.lang), D.save("ds_lang_" + c.short_name, t.lang)), t.stylesheets)for (var s = 0; s < t.stylesheets.length; s++)o.injectStylesheet(t.stylesheets[s]);
- if (t.nonce && (S.nonce = t.nonce), t.style && o.injectStyle((t.style || "") + S.compileStyle(c.component_style)), t.unread && ot.reset(t.unread), t.warnings)for (var s = 0; s < t.warnings.length; s++)C.warn(t.warnings[s])
- }, H = 0, B = S.Class = function () {
- };
- B.extend = function (e) {
- function t() {
- !H && this.init && this.init.apply(this, arguments)
- }
-
- H = 1;
- var s = new this;
- H = 0;
- for (var a in e)s[a] = e[a];
- return t.prototype = s, t.prototype.constructor = t, t.extend = arguments.callee, t
- };
- var J = S.Event = B.extend({
- on: function (e, t) {
- var a = this.handlers || (this.handlers = {});
- return a[e] === s && (a[e] = []), a[e].push(t), this
- }, trigger: function (e, t) {
- var s = (this.handlers || (this.handlers = {}))[e];
- if (s)for (var a = 0; a < s.length && s[a].call(this, t) !== !1; a++);
- return this
- }
- }), Q = S.Widget = J.extend({
- init: function (e, t) {
- this.el = e, this.options = t || {}, this.render()
- }, render: function () {
- }, reset: function () {
- }, load: function (e) {
- switch (e.code) {
- case 0:
- W(e);
- var t = this.prepare(e);
- t.options = o.extend(this.options, e.options), this.onload(t);
- break;
- default:
- this.onError(e)
- }
- }, onload: function (e) {
- this.el.html(et[this.tmpl](e))
- }, prepare: function (e) {
- return e
- }, onMessage: function () {
- }, onError: function (e) {
- C.error("出错啦(" + e.code + "): " + e.errorMessage), e.errorTrace && C.error(e.errorTrace)
- }
- }), V = S.Model = J.extend({
- init: function (e) {
- this.data = e
- }, reset: function (e) {
- this.data = e, this.trigger("reset")
- }, remove: function (e) {
- this.data.splice(e, 1), this.trigger("reset")
- }, set: function (e, t) {
- if (t === s)for (var a in e)this.data[a] = e[a]; else this.data[e] = t;
- return this.trigger("reset"), this
- }, toJSON: function () {
- return o.extend({}, this.data)
- }
- }), $ = V.extend({
- toJSON: function () {
- return o.extend({}, this.data)
- }
- }), F = V.extend({
- toJSON: function () {
- var e = o.extend({}, this.data);
- return e.theAuthor = ct[this.data.author_id] && ct[this.data.author_id].data || this.data.author, e.parents = this.data.parents || [], e
- }
- }), G = V.extend({
- toJSON: function () {
- return o.extend({}, this.data)
- }
- }), Y = function (e) {
- this.model = e
- };
- Y.prototype.set = function (e) {
- for (var t in e)e[t] && (this[t] ? this[t].set(e[t]) : this[t] = new this.model(e[t]))
- }, Y.prototype.get = function (e) {
- for (var t = 0, s = []; t < e.length; t++)s[t] = this[e[t]];
- return s
- }, Y.prototype.getJSON = function (e) {
- for (var t = 0, s = []; t < e.length; t++)this[e[t]] && s.push(this[e[t]].toJSON());
- return s
- };
- var Z = {
- userUrl: function (e) {
- return e.url
- }, avatarUrl: function (e) {
- if (document.location.protocol == "https:") {
- if (e.avatar_url) {
- e.avatar_url = e.avatar_url.replace(/^http\:\/\//, "https://");
- e.avatar_url = e.avatar_url.replace(/himg\.bdimg\.com/, "nzriuc44h.qnssl.com");
- e.avatar_url = e.avatar_url.replace(/ds\.cdncache\.org/, "nzrisok3d.qnssl.com");
- e.avatar_url = e.avatar_url.replace(/img\.kaixin001\.com\.cn/, "nzrktdox3.qnssl.com");
- e.avatar_url = e.avatar_url.replace(/img\d+\.douban\.com/, "img1.doubanio.com");
- e.avatar_url = e.avatar_url.replace(/app\.qlogo\.cn/, "nzvcelvwu.qnssl.com");
- e.avatar_url = e.avatar_url.replace(/wx\.qlogo\.cn/, "nzwsf9aei.qnssl.com");
- e.avatar_url = e.avatar_url.replace(/tp\d+\.sinaimg\.cn/, "odfhb4m72.qnssl.com");
- e.avatar_url = e.avatar_url.replace('img.t.sinajs.cn', "nznlz6ohs.qnssl.com");
- e.avatar_url = e.avatar_url.replace('0.gravatar.com/avatar', "cdn.v2ex.com/gravatar");
- } else {
- rt.data.default_avatar_url = rt.data.default_avatar_url.replace(/^http\:\/\//, "https://");
- }
- }
- return e.avatar_url || rt.data.default_avatar_url
- }, loginUrl: function (e, t) {
- return t || (t = {}), c.sso && c.sso.login && (t.sso = 1, t.redirect_uri = c.sso.login), a() + "/login/" + e + "/" + x(t)
- }, bindUrl: function (e) {
- return a() + "/bind/" + e + "/" + x(c.sso && c.sso.login ? {
- sso: 1,
- redirect_uri: c.sso.login
- } : null, T())
- }, logoutUrl: function () {
- return a() + "/logout/" + x(c.sso && c.sso.logout ? {sso: 1, redirect_uri: c.sso.logout} : null)
- }
- }, X = ["weixin", "weibo", "qq", "renren"], K = ["douban", "kaixin", "baidu", "google"], et = S.templates = {
- userAnchor: function (e) {
- return e.url ? '' + _(e.name) + " " : _(e.name)
- },
- avatarImg: function (e, t) {
- return ' "
- },
- avatar: function (e, t) {
- var s = et.avatarImg(e, t), i = Z.userUrl(e);
- return i ? '' + s + " " : s
- },
- timeText: function (e) {
- return e ? '' + S.elapsedTime(e) + " " : ""
- },
- timeAnchor: function (e, t) {
- return e ? '' + S.elapsedTime(e) + " " : ""
- },
- serviceIcon: function (e, t) {
- return ' '
- },
- poweredBy: function (e) {
- return '' + _(e) + "
"
- },
- indicator: w('
'),
- waitingImg: w('
'),
- loginItem: function (e, t) {
- var s = Z[t ? "bindUrl" : "loginUrl"](e);
- return ' ' + S.serviceNames[e] + (nt.data.social_uid[e] ? ' ' : "") + " "
- }
- }, tt = function (e) {
- var t = [];
- for (var s in e)t.push(' ');
- return t.join("\n")
- };
- et.commentList = function (e) {
- var t = "", s = e.list;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '";
- return t
- }, et.ctxPost = function (e) {
- var t = "";
- e.post.message = e.post.message.replace(/src=(["|'])http:\/\//g, "src=$1//nznlz6ohs.qnssl.com/");
- e.post.message = e.post.message.replace('img.t.sinajs.cn/', '');
- return e.post && (t += '' + et.avatar(e.post.theAuthor || e.post.author) + '
' + et.userAnchor(e.post.theAuthor || e.post.author) + et.timeAnchor(e.post.created_at, e.post.url), e.index >= 0 && (t += '
' + (e.index + 1) + z.floor + "
"), t += '
' + e.post.message, e.index >= 0 && (t += ' "), t += "
"), t
- }, et["dialog-anonymous"] = function (e) {
- var t = '社交帐号登录 ', s = e.services;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '
' + S.sourceName[a] + " ";
- return t += "
", e.options.deny_anonymous || (t += '作为游客留言 '), t
- }, et["dialog-ask-for-auth"] = function () {
- var e = '社交帐号登录 ' + et.serviceList(X) + ' ' + et.serviceList(K) + " ";
- return e
- }, et["dialog-bind-more"] = function () {
- var e = '绑定更多帐号 ' + et.serviceBindList(X) + ' ' + et.serviceBindList(K) + '
';
- return e
- }, et["dialog-qrcode"] = function (e) {
- var t = '微信扫一扫,分享到朋友圈 ';
- return t
- }, et["dialog-reposts"] = function (e) {
- var t = '转发到微博 @' + u(e.post.theAuthor.name) + " : " + e.post.message + "
"
- }, et.dialog = function (e) {
- var t = '';
- return t
- }, et.hotPosts = function (e) {
- var t = '", s = e.list;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += et.post({
- post: a,
- options: e.options
- });
- return t += " "
- }, et.likePost = function (e) {
- var t = ' ' + z.like;
- return e.likes > 0 && (t += "(" + e.likes + ")"), t += " "
- }, et.likeTooltip = function (e) {
- var t = ''
- }, et.loginButtons = function () {
- var e = '";
- return e
- }, et.loginWidget = function (e) {
- var t = '', s = e;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '
' + S.sourceName[a] + " ";
- return t += "
"
- }, et.meta = function (e) {
- var t = ''
- }, et.notify = function (e) {
- var t = '"
- }, et.post = function (e) {
- var t = "", s = e.post, i = e.options, r = s.author;
- if (document.location.protocol == 'https:') {
- if (s.message.indexOf('static.duoshuo.com') == '-1') {
- s.message = s.message.replace(/src=(["|'])http:\/\//g, "src=$1//nznlz6ohs.qnssl.com/");
- }
- }
- if (s.message.indexOf('static.duoshuo.com') != '-1') {
- s.message = s.message.replace(/src=(["|'])http:\/\//g, "src=$1https://");
- }
- s.message = s.message.replace(/_org.gif/g, "_thumb.gif");
- if (t += '" + et.avatar(r), S.sourceName[s.source] && (t += et.serviceIcon(s.source)), t += '
", 1 == i.max_depth && i.show_context && s.parents.length) {
- t += '
';
- var n = lt.getJSON(s.parents);
- if (n)for (var o, d = -1, l = n.length - 1; l > d;)o = n[d += 1], 1 == d && s.parents.length > 2 && (t += '还有' + (s.parents.length - 2) + "条评论 "), t += et.ctxPost({
- post: o,
- index: d,
- hidden: d && d < s.parents.length - 1
- });
- t += " "
- }
- if (t += "
", s.parents.length >= i.max_depth && (!i.show_context || i.max_depth > 1) && s.parent_id && lt[s.parent_id] && (t += '"), t += s.message + '
", i.max_depth > 1 && (s.childrenArray || s.children) && "weibo" != s.source && "qqt" != s.source) {
- t += '';
- var c = lt.getJSON(s.childrenArray || s.children);
- if (c)for (var s, d = -1, p = c.length - 1; p > d;)s = c[d += 1], t += et.post({post: s, options: i});
- t += " "
- }
- return t += " "
- }, et.postListHead = function (e) {
- var t = '"
- }, et.recentVisitors = function (e) {
- var t = "", s = e.response;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '' + et.avatar(a, e.options.avatar_size) + "
";
- return t
- }, et.replybox = function (e) {
- var t = '"
- }, et.serviceBindList = function (e) {
- var t = "", s = e;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '' + S.serviceNames[a], nt.data.social_uid[a] && (t += ' '), t += " ";
- return t
- }, et.serviceList = function (e) {
- var t = "", s = e;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '' + S.serviceNames[a] + " ";
- return t
- }, et.shareWidget = function (e) {
- var t = ' ', s = e.services;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += ' ' + S.sourceName[a] + " ";
- return t += ' "
- }, et.smiliesTooltip = function (e) {
- var t = ''
- }, et.toolbar = function () {
- var e = ''
- }, et.topThreads = function (e) {
- var t = "", s = e.response;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '' + u(a.title) + " ";
- return t
- }, et.topUsers = function (e) {
- var t = "", s = e.response;
- if (s)for (var a, i = -1, r = s.length - 1; r > i;)a = s[i += 1], t += '' + et.avatar(a, e.options.avatar_size) + "
" + u(a.name) + " ";
- return t
- }, et.userInfo = function (e) {
- var t = '' + et.avatarImg(e) + ' ' + u(e.name) + " ";
- for (var s in e.social_uid)t += ' ';
- return t += '' + e.comments + " 条评论
", e.description && (t += '' + u(e.description) + "
"), t
- };
- var st = S.Views = {}, at = (S.Callbacks = {}, S.pagelets = []), it = S.events = new J, rt = S.site = new V, nt = S.visitor = new $, ot = S.unread = new V, dt = S.threadPool = new Y(G), lt = S.postPool = new Y(F), ct = S.userPool = new Y($);
- it.on("queryDefined", function () {
- var e = c.short_name;
- if (c.theme && n(c.theme), m) {
- var t = m["ds_site_" + e], s = m["ds_lang_" + e];
- t && rt.reset(p.parse(t)), s && o.extend(z, p.parse(s))
- }
- }), q(), S.require("embed.compat", function () {
- function i(e) {
- e.stopPropagation()
- }
-
- function n(e) {
- (e.ctrlKey && 13 == e.which || 10 == e.which) && B(this.form).trigger("submit")
- }
-
- function d() {
- var e = B(this);
- e.height(Math.max(54, e.next(".ds-hidden-text").text(this.value).height() + 27))
- }
-
- function l() {
- if (P.authInWin) {
- var e = this.href.match(/\/(login|bind)\/(\w+)\//i);
- if (e && S.serviceNames[e[2]])return !b(e[2], this.href)
- }
- }
-
- function u() {
- var e, s, a, i, r, n = this, o = 0, d = 0;
- t.selection && (s = t.selection.createRange(), s && s.parentElement() == n && (i = n.value.length, e = n.value.replace(/\r\n/g, "\n"), a = n.createTextRange(), a.moveToBookmark(s.getBookmark()), r = n.createTextRange(), r.collapse(!1), a.compareEndPoints("StartToEnd", r) > -1 ? o = d = i : (o = -a.moveStart("character", -i), o += e.slice(0, o).split("\n").length - 1, a.compareEndPoints("EndToEnd", r) > -1 ? d = i : (d = -a.moveEnd("character", -i), d += e.slice(0, d).split("\n").length - 1)))), B(n).data("ds-range-start", o).data("ds-range-end", d)
- }
-
- function p(e) {
- return P.touch && e.addClass("ds-touch"), o.cssProperty("transition") || e.addClass("ds-no-transition"), P.ie6 && e.addClass("ds-ie6"), P.opacity || e.addClass("ds-no-opacity"), e
- }
-
- function f(e) {
- if (!P.placeholder) {
- var t = e.attr("placeholder");
- e.val(t).focus(function () {
- this.value === t && (this.value = "")
- }).blur(function () {
- "" === this.value && (this.value = t)
- })
- }
- return e
- }
-
- function g(e) {
- if ("http://duoshuo.com" === e.origin)switch (e.data.type) {
- case"login":
- h.href = e.data.redirectUrl
- }
- }
-
- function b(t, s) {
- var a = {
- weibo: [760, 600],
- renren: [420, 322],
- qq: [504, 445],
- weixin: [450, 550],
- google: [600, 440]
- }[t] || [550, 400];
- return e.open(s + (-1 == s.indexOf("?") ? "?" : "&") + o.param({origin: h.origin || "http://" + h.host}), "_blank", "width=" + a[0] + ",height=" + a[1] + ",toolbar=no,menubar=no,location=yes")
- }
-
- function y(e) {
- var t = Z[r() ? "loginUrl" : "bindUrl"](e);
- P.authInWin && b(e, t) || (h.href = t)
- }
-
- function w() {
- var e = E(et["dialog-ask-for-auth"]({})).el.find(".ds-dialog").css("width", "300px");
- e.find("a.ds-service-link").click(l)
- }
-
- function x(e, t, s, a) {
- function i() {
- function e(e) {
- if (s && a) {
- var t = s.options, i = U(s.postList.el, e.response[a], t);
- "asc" == t.order == ("top" == t.formPosition) && S.scrollTo(i);
- var r = s.el.find(".ds-comments-tab-" + a + " span.ds-highlight");
- r.html(parseInt(r.html()) + 1)
- }
- }
-
- return a || l.find("[type=checkbox]:checked")[0] ? (A.post("posts/repost", S.toJSON(l), e), o.close(), !1) : (alert("还没有选发布到哪儿呢"), !1)
- }
-
- function r() {
- var e = this.value;
- return this.checked && !nt.data.social_uid["qqt" == e ? "qq" : e] ? void y(e) : void 0
- }
-
- var o = E(et["dialog-reposts"]({
- post: e.toJSON(),
- repostMessage: t,
- service: a
- })), l = o.el.find("form");
- return l.submit(i), l.find(".ds-actions [type=checkbox]").change(r), f(l.find("textarea")).keyup(n).keyup(d).focus(), !1
- }
-
- function T(e) {
- var t = {
- "unread-comments": {
- title: "新留言及回复", apiUrl: "users/unreadComments", tmpl: function (e) {
- return e.thread ? '' + B.map(e.authors, et.userAnchor).join("、") + ' 在 ' + _(e.thread.title || "无标题") + ' 中回复了你 知道了 ' : ""
- }, read: function (e) {
- var t = e.attr("data-thread-id");
- A.post("threads/read", {thread_id: t}), ot.data.comments--
- }
- }, "unread-notifications": {
- title: "系统消息", apiUrl: "users/unreadNotifications", tmpl: function (e) {
- return '' + e.content + ' 知道了 '
- }, read: function (e) {
- var t = e.attr("data-notification-id");
- A.post("notifications/read", {notification_id: t}), ot.data.notifications--
- }
- }
- }[e], s = E("" + t.title + ' ');
- s.on("close", S.resetNotify);
- var a = s.el.find(".ds-unread-list").delegate(".ds-delete", "click", function () {
- return B(this).parent().remove(), 0 === a.children().length && s.close(), !1
- }).delegate(".ds-read", "click", function () {
- t.read(B(this).parent())
- });
- B("#ds-notify").hide(), A.get(t.apiUrl, {}, function (e) {
- s.el.find(".ds-unread-list").html(B.map(e.response, t.tmpl).join("\n"))
- })
- }
-
- function N() {
- bubbleOutTimer && (clearTimeout(bubbleOutTimer), bubbleOutTimer = 0)
- }
-
- function I() {
- bubbleOutTimer = setTimeout(function () {
- bubbleOutTimer = 0, X.detach()
- }, 400)
- }
-
- function U(e, t, s) {
- return e.find(".ds-post[data-post-id=" + t.data.post_id + "]")[0] ? void 0 : (e.find(".ds-post-placeholder").remove(), B(et.post({
- post: t.toJSON(),
- options: s
- })).hide()["asc" == s.order ? "appendTo" : "prependTo"](e).slideDown(function () {
- }))
- }
-
- function R(e, t) {
- function s() {
- if (r())return w(), !1;
- var e = B(this).parent(), t = e.hasClass("ds-post-liked"), s = B(this).html().match(/\((\d+)\)/), a = (s ? parseInt(s[1]) : 0) + (t ? -1 : 1);
- return A.post("posts/vote", {
- post_id: e.closest(".ds-ctx-entry, .ds-post-self").attr("data-post-id"),
- vote: t ? 0 : 1
- }), B(this).html(B(this).html().replace(/\(\d+\)/, "") + (a ? "(" + a + ")" : "")), e[t ? "removeClass" : "addClass"]("ds-post-liked"), !1
- }
-
- function a() {
- var e = B(this).closest(".ds-post-self"), t = lt[e.attr("data-post-id")];
- return x(t, ""), !1
- }
-
- function i() {
- if (!confirm("确定要删除这条评论吗?"))return !1;
- var t = B(this).closest(".ds-post-self");
- return A.post("posts/remove", {post_id: t.attr("data-post-id")}), t.parent().fadeOut(200, function () {
- e.data.comments--, e.updateCounter("duoshuo"), B(this).remove()
- }), !1
- }
-
- function n() {
- if (!confirm("确定要举报这条评论吗?"))return !1;
- var e = B(this).closest(".ds-post-self");
- return A.post("posts/report", {post_id: e.attr("data-post-id")}), alert("感谢您的反馈!"), !1
- }
-
- function o() {
- var s = B(this), a = s.closest(".ds-comment-actions");
- if (a.hasClass("ds-reply-active"))h.el.fadeOut(200, function () {
- B(this).detach()
- }), a.removeClass("ds-reply-active"); else {
- var i = s.closest(".ds-ctx-entry, .ds-post-self");
- h ? h.actionsBar.removeClass("ds-reply-active") : (h = new st.Replybox(e), h.render(!0).el.addClass("ds-inline-replybox").detach()), h.el.find("[name=parent_id]").val(i.attr("data-post-id")), h.el.show().appendTo(s.closest(".ds-ctx-body, .ds-comment-body")).find("textarea").focus(), h.actionsBar = a.addClass("ds-reply-active"), t.max_depth <= 1 ? h.postList = e.postList.el : (h.postList = i.siblings(".ds-children"), h.postList[0] || (h.postList = B('').insertAfter(i)))
- }
- return !1
- }
-
- function d() {
- function e(e) {
- W(e), i.append(B.map(e.response, function (e) {
- return et.post({post: e, options: t})
- }).join(""))
- }
-
- {
- var s = B(this).closest(".ds-post-self"), a = s.attr("data-post-id");
- s.data("source")
- }
- if (0 != s.attr("data-root-id"))return !1;
- var i = s.siblings(".ds-children");
- return i[0] ? (i.remove(), !1) : (i = B('').insertAfter(s), A.get("posts/listComments", H({post_id: a}), e), !1)
- }
-
- function l() {
- var t = B(this).closest(".ds-post-self"), s = lt[t.attr("data-post-id")], a = s.data.source;
- if (!nt.data.social_uid["qqt" == a ? "qq" : a])return void y(a);
- var i = s.data.root_id, r = "0" != i ? lt[i] : s, n = "";
- if ("0" != i) {
- var o = prepatePost(s.data).theAuthor;
- n = ("weibo" == a ? "//@" + o.name : "|| @" + o.qqt_account) + ":" + s.data.message
- }
- return x(r, n, e, a), !1
- }
-
- function c() {
- var e = B(this).parent();
- return e.siblings().show(), e.remove(), !1
- }
-
- function u() {
- function t() {
- function t(e) {
- var t = e.response;
- ct[c] ? ct[c].set(t) : ct[c] = new $(t), X.owner == s && K.html(et.userInfo(t))
- }
-
- tt = 0, X.owner = s, N();
- var i = a.offset(), r = e.el.offset(), n = a.innerWidth() / 2,
- o = e.el.innerHeight() - (i.top - r.top) + 6, d = i.left - r.left - 35 + (n > 35 ? 35 : n);
- try {
- if (a.hasClass("ds-comment-context"))K.attr("id", "ds-ctx-bubble").attr("data-post-id", a.attr("data-post-id")).html('' + et.ctxPost({post: lt[a.attr("data-parent-id")].toJSON()}) + ' '); else if (a.hasClass("ds-avatar") || a.hasClass("ds-user-name")) {
- var l = {}, c = l.user_id = a.attr("data-user-id");
- if (!c)throw"no info";
- K.attr("id", "ds-user-card").attr("data-user-id", c).empty(), ct[c] ? K.html(et.userInfo(ct[c].data)) : A.get("users/profile", H(l), t)
- }
- X.css({bottom: o, left: d}).appendTo(e.innerEl)
- } catch (u) {
- X.detach()
- }
- }
-
- var s = this;
- if (bubbleOutTimer && X.owner == s)return clearTimeout(bubbleOutTimer), void(bubbleOutTimer = 0);
- var a = B(s);
- tt = setTimeout(t, 200)
- }
-
- function p() {
- tt ? (clearTimeout(tt), tt = 0) : bubbleOutTimer || I()
- }
-
- var h;
- this.delegate("a.ds-post-likes", "click", s).delegate("a.ds-post-repost", "click", a).delegate("a.ds-post-delete", "click", i).delegate("a.ds-post-report", "click", n).delegate("a.ds-post-reply", "click", o).delegate("a.ds-weibo-comments", "click", d).delegate("a.ds-weibo-reposts", "click", l).delegate("a.ds-expand", "click", c), P.touch || this.delegate("a.ds-comment-context, .ds-avatar, .ds-user-name", "mouseenter", u).delegate("a.ds-comment-context, .ds-avatar, .ds-user-name", "mouseleave", p)
- }
-
- function H(e) {
- var s = {
- require: "site,visitor,nonce,lang" + (it++ ? "" : ",unread,log,extraCss"),
- site_ims: D.get("ds_site_" + c.short_name + ":timestamp"),
- lang_ims: D.get("ds_lang_" + c.short_name + ":timestamp"),
- referer: t.referrer
- };
- c.stylePatch && (s.style_patch = c.stylePatch);
- for (var a in s)s[a] && (!P.ie6 || encodeURIComponent(s[a]).length < 200) && (e[a] = s[a]);
- return e
- }
-
- var B = S.jQuery, V = B(e), Y = B(t);
- e.postMessage && (e.addEventListener ? e.addEventListener("message", g, !1) : e.attachEvent && e.attachEvent("onmessage", g)), S.scrollTo = function (e) {
- var t = e.offset().top;
- (t < V.scrollTop() || t > V.scrollTop() + V.height()) && B("html, body").animate({scrollTop: t - 40}, 200, "swing")
- }, S.toJSON = function (e) {
- var t = /\r?\n/g, s = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, a = /^(?:select|textarea)/i, i = e.map(function () {
- return this.elements ? B.makeArray(this.elements) : this
- }).filter(function () {
- return this.name && !this.disabled && (this.checked || a.test(this.nodeName) || s.test(this.type))
- }).map(function (e, s) {
- var a = B(this).val();
- return null == a ? null : B.isArray(a) ? B.map(a, function (e) {
- return {name: s.name, value: e.replace(t, "\r\n")}
- }) : {name: s.name, value: a.replace(t, "\r\n")}
- }).toArray(), r = {};
- return B.each(i, function () {
- r[this.name] = this.value
- }), r
- }, S.resetNotify = function () {
- var e = B("#ds-notify"), s = ot.data;
- e[0] || (e = B('
').css({
- hidden: {display: "none"},
- "top-right": {top: "24px", right: "24px"},
- "bottom-right": {bottom: "24px", right: "24px"}
- }[rt.data.notify_position]).delegate(".ds-notify-unread a", "click", function () {
- return T(B(this).data("type")), !1
- }).appendTo(t.body)), e.html(et.notify(s))[!s.comments && !s.notifications || "hidden" === rt.data.notify_position || B(".ds-dialog")[0] ? "hide" : "show"]()
- }, ot.on("reset", S.resetNotify), st.Replybox = function (e) {
- this.embedThread = e
- }, st.Replybox.prototype = {
- render: function (e) {
- function s(e) {
- e.data("submitting", !0), e.find(".ds-post-button").addClass("ds-waiting").html(z.posting)[0].disabled = !0
- }
-
- function a(e) {
- e.data("submitting", !1), e.find(".ds-post-button").removeClass("ds-waiting").html(z.post)[0].disabled = !1
- }
-
- var i = this, o = i.embedThread, c = o.options, p = function () {
- S.require("smilies", function () {
- })
- }, h = {
- thread: o,
- options: c,
- inline: e,
- params: {thread_id: o.threadId, parent_id: "", nonce: S.nonce},
- repostArray: [],
- checked: 0
- };
- for (var v in nt.data.repostOptions)nt.data.repostOptions[v] && (h.repostArray.push(v), h.checked = 1);
- var g = i.el = B(et.replybox(h)).click(p), b = g.find("form"), y = b.find("input[type=checkbox]")[0], _ = b.find("a.ds-service-icon, a.ds-service-icon-grey"), k = f(b.find("textarea")).focus(p).keyup(n).keyup(d).bind("focus mousedown mouseup keyup", u), w = g.find(".ds-add-emote").click(function (e) {
- var s = S.smiliesTooltip;
- return w.toggleClass("ds-expanded").hasClass("ds-expanded") ? (s || (s = S.smiliesTooltip = new st.SmiliesTooltip, s.render(), S.require("smilies", function () {
- s.reset("微博-默认")
- })), s.replybox = i, s.el.appendTo(t.body).css({
- top: i.el.offset().top + i.el.outerHeight() + 4 + "px",
- left: i.el.find(".ds-textarea-wrapper").offset().left + "px"
- }), B(t.body).click(x)) : x(e), !1
- }), x = (g.find(".ds-add-image").click(function (e) {
- var s = k[0], a = s.value, i = "请输入图片地址", r = ' ';
- if (t.selection) {
- s.value = a.substring(0, k.data("ds-range-start")) + r + a.substring(k.data("ds-range-end"), a.length), s.value = s.value.replace("说点什么吧 ...", ""), s.focus();
- var n = t.selection.createRange();
- n.collapse(), n.findText(i), n.select()
- } else {
- s.value = a.substring(0, s.selectionStart) + r + a.substring(s.selectionEnd);
- var o = s.value.search(i);
- s.setSelectionRange(o, o + i.length), s.focus()
- }
- e.preventDefault()
- }), i.hideSmilies = function () {
- w.removeClass("ds-expanded"), S.smiliesTooltip.el.detach(), B(t.body).unbind("click", x)
- }), T = function (e, t) {
- var s = E(et["dialog-anonymous"]({
- services: ["weixin", "weibo", "qq", "renren", "kaixin", "douban"],
- options: c
- })), a = s.el.find(".ds-dialog").css("width", "320px");
- if (a.find(".ds-icons-32 a").click(l), !c.deny_anonymous) {
- var i = s.el.find("form");
- i.submit(function () {
- var e = i.find("input[name=author_email]").val();
- return !e && !c.require_guest_email || e.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/) ? (t(S.toJSON(i)), s.close(), !1) : (alert("请输入一个有效的email地址."), !1)
- }), i.find("input[name=author_name]")[0].focus()
- }
- };
- c.deny_anonymous && k.focus(function () {
- if (r()) {
- T(b, q);
- var e = function (t) {
- t.stopPropagation(), k.unbind("click", e)
- };
- k.click(e)
- }
- return !1
- });
- var q = function (e) {
- s(b), A.post("posts/create", B.extend(S.toJSON(b), e), function (e) {
- var t = lt[e.response.post_id] = new F(e.response), s = U(i.postList, t, c);
- if ("asc" == c.order == ("top" == c.formPosition) && S.scrollTo(s), o.data.comments++, o.updateCounter("duoshuo"), k.val("").trigger("keyup"), a(b), g.hasClass("ds-inline-replybox") && (g.detach(), i.actionsBar.removeClass("ds-reply-active")), m)try {
- m.removeItem("ds_draft_" + o.threadId)
- } catch (r) {
- }
- }, function (e) {
- a(b), alert(e.errorMessage)
- })
- };
- b.submit(function () {
- if (b.data("submitting"))return !1;
- var e = B.trim(b[0].message.value);
- return "" == e || !P.placeholder && e == k.attr("placeholder") ? (alert("您还没写内容呢"), !1) : (r() ? T(b, q) : q(), !1)
- });
- var C = function (e) {
- return B(e).hasClass("ds-service-icon-grey") ? null : B(e).attr("data-service")
- };
- if (_.click(function () {
- return B(this).toggleClass("ds-service-icon-grey").toggleClass("ds-service-icon"), y.value = B.map(_, C).join(","), y.checked = "" != y.value, !1
- }), B(y).change(function () {
- var e = this.checked;
- _[e ? "removeClass" : "addClass"]("ds-service-icon-grey")[e ? "addClass" : "removeClass"]("ds-service-icon"), this.value = B.map(_, C).join(",")
- }), !e && m) {
- var j = "ds_draft_" + o.threadId;
- k.bind("focus blur keyup", function (e) {
- var t = B(e.currentTarget).val();
- try {
- m[j] = t
- } catch (e) {
- }
- }), m[j] && k.val(m[j])
- }
- return this
- }
- }, st.Dialog = J.extend({
- init: function (e, t) {
- (this.el = B("#ds-wrapper"))[0] || (this.el = p(B('
'))), this.options = B.extend({width: 600}, t), e !== s && B(e).attr("id", "ds-reset").appendTo(this.el)
- }, open: function () {
- function e(e) {
- return 27 == e.which ? (a.close(), !1) : void 0
- }
-
- function s() {
- return a.close(), !1
- }
-
- var a = this;
- return a.el.hide().appendTo(t.body).fadeIn(200), P.ie6 && a.el.css("top", V.scrollTop() + 100), a.el.show().find(".ds-dialog").delegate("a.ds-dialog-close", "click", function () {
- return a.close(), !1
- }).click(i), Y.keydown(e), B(t.body).click(s), a.close = function () {
- Y.unbind("keydown", e), B(t.body).unbind("click", s), a.el.fadeOut(200, function () {
- B(this).remove()
- }), a.trigger("close")
- }, a
- }
- }), et.likePanel = function (e) {
- return e.likes ? '' + e.likes + " 人喜欢" : ""
- }, st.Meta = function (e) {
- this.embedThread = e
- }, st.Meta.prototype = {
- render: function () {
- function a(a) {
- function r(e) {
- o.set(e), n.resetLikePanel()
- }
-
- function c() {
- n.tooltip.detach(), B(t.body).unbind("click", c)
- }
-
- function u(t) {
- switch (this.className) {
- case"ds-like-tooltip-close":
- c(t);
- break;
- default:
- if (!e.open(this.href, "_blank", "height=500,width=600,top=0,left=0,toolbar=no,menubar=no,resizable=yes,location=yes,status=no"))return
- }
- return !1
- }
-
- var p = l.hasClass("ds-thread-liked");
- if (A.post("threads/vote", {
- thread_id: n.embedThread.threadId,
- vote: p ? 0 : 1
- }, r), l.toggleClass("ds-thread-liked"), l.find(".ds-thread-like-text").text(p ? "喜欢" : "已喜欢"), p)return n.tooltip && c(a), !1;
- if (n.tooltip === s) {
- var h = et.likeTooltip({
- services: {
- qzone: "QQ空间",
- weibo: "新浪微博",
- qqt: "腾讯微博",
- renren: "人人网",
- kaixin: "开心网",
- douban: "豆瓣网",
- baidu: "百度搜藏"
- }, thread_id: o.data.thread_id
- });
- n.tooltip = B(h).click(i).delegate("a", "click", u)
- }
- var f = {};
- return f.left = 0, f.top = d.position().top + d.outerHeight() - 4 + "px", n.tooltip.appendTo(n.embedThread.innerEl).css(f), B(t.body).click(c), !1
- }
-
- var n = this, o = n.embedThread.model, d = n.el = B(et.meta(o.toJSON())), l = d.find(".ds-like-thread-button");
- return l.click(a), n.resetLikePanel(), r() && d.hide(), n
- }, resetLikePanel: function () {
- this.el.find(".ds-like-panel").html(et.likePanel(this.embedThread.model.toJSON()))
- }
- }, st.PostListHead = function (e) {
- this.embedThread = e
- }, st.PostListHead.prototype = {
- render: function () {
- function e(e) {
- r.find("a.ds-current").removeClass("ds-current"), a.params.page = 1;
- var t = e.currentTarget;
- switch (t.className) {
- case"ds-comments-tab-duoshuo":
- a.params.source = "duoshuo", s.replybox.el.show();
- break;
- case"ds-comments-tab-repost":
- a.params.source = "repost", s.replybox.el.hide();
- break;
- case"ds-comments-tab-weibo":
- a.params.source = "weibo", s.replybox.el.hide();
- break;
- case"ds-comments-tab-qqt":
- a.params.source = "qqt", s.replybox.el.hide()
- }
- return B(t).addClass("ds-current"), a.refetch(), !1
- }
-
- function t() {
- return n.find("a.ds-current").removeClass("ds-current"), a.params.order = s.options.order = this.className.replace("ds-order-", ""), a.params.page = 1, a.refetch(), B(this).addClass("ds-current"), !1
- }
-
- var s = this.embedThread, a = s.postList, i = this.el = B(et.postListHead({
- thread: s.model.toJSON(),
- options: s.options
- })), r = i.find("ul.ds-comments-tabs");
- r.delegate(".ds-tab a", "click", e);
- var n = i.find(".ds-sort");
- return n.delegate("a", "click", t), n.find(".ds-order-" + a.params.order).addClass("ds-current"), this
- }
- }, st.Paginator = function (e) {
- function t() {
- return i.params.page = parseInt(this.innerHTML), i.refetch(), a.find(".ds-current").removeClass("ds-current"), B(this).addClass("ds-current"), !1
- }
-
- e = e || {};
- var s = this, a = s.el = e.el || B('
'), i = s.collection = e.collection;
- a.delegate("a", "click", t)
- }, st.Paginator.prototype = {
- reset: function (e) {
- function t(e) {
- i.push('' + e + " ")
- }
-
- var s, a = this.collection.params.page || 1, i = [];
- if (a > 1)for (t(1), s = a > 4 ? a - 2 : 2, s > 2 && i.push('... '); a > s; s++)t(s);
- if (i.push('' + a + " "), a < e.pages) {
- for (s = a + 1; a + 4 >= s && s < e.pages; s++)t(s);
- s < e.pages && i.push('... '), t(e.pages)
- }
- this.el.html('
' + i.join(" "))[e.pages > 1 ? "show" : "hide"]()
- }
- }, S.addSmilies = function (e, t) {
- var s = S.smiliesTooltip;
- s && s.el.find("ul.ds-smilies-tabs").append("" + e + " "), S.smilies[e] = t
- }, st.SmiliesTooltip = function () {
- }, st.SmiliesTooltip.prototype = {
- render: function () {
- function e() {
- var e = s.replybox, a = e.el.find("textarea"), i = a[0], r = i.value;
- if (t.selection) {
- i.value = r.substring(0, a.data("ds-range-start")) + this.title + r.substring(a.data("ds-range-end"), r.length), i.value = i.value.replace(z.leave_a_message, ""), i.focus();
- var n = t.selection.createRange();
- n.moveStart("character", a.data("ds-range-start") + this.title.length), n.collapse(), n.select()
- } else {
- var o = i.selectionStart + this.title.length;
- i.value = r.substring(0, i.selectionStart) + this.title + r.substring(i.selectionEnd), i.setSelectionRange(o, o)
- }
- e.hideSmilies(), i.focus()
- }
-
- var s = this, a = s.el = B(et.smiliesTooltip(L));
- return a.click(i).find("ul.ds-smilies-tabs").delegate("a", "click", function () {
- s.reset(this.innerHTML)
- }), a.find(".ds-smilies-container").delegate("img", "click", e), this
- }, reset: function (e) {
- function t(t, s) {
- var i = 0 === e.indexOf("微博") ? "http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/" + s.replace("_org", "_thumb") : S.STATIC_URL + "/images/smilies/" + s;
- if (document.location.protocol == 'https:') {
- i = i.replace("http://", "//nznlz6ohs.qnssl.com/");
- i = i.replace("http://img.t.sinajs.cn/", "//nznlz6ohs.qnssl.com/");
- }
- i = i.replace("_org.gif", "_thumb.gif");
- "WordPress" === e && (t = " " + t + " "), a += ' '
- }
-
- var s = this.el.find("ul.ds-smilies-tabs");
- s.find("a.ds-current").removeClass("ds-current"), s.find("a").filter(function () {
- return this.innerHTML == e
- }).addClass("ds-current");
- var a = "";
- return B.each(L[e], t), a += " ", this.el.find(".ds-smilies-container").html(a), this
- }
- }, et.postPlaceholder = function () {
- return ['', z.no_comments_yet, " "].join("")
- };
- var X = B(''), K = X.find(".ds-bubble-content").delegate("a.ds-ctx-open", "click", function () {
- function e(e) {
- function t(e, t) {
- return et.ctxPost({post: e, index: t})
- }
-
- C.log(B.map(e.response, t).join("\n"));
- s.el.find("ol");
- s.el.find("ol").html(B.map(e.response, t).join("\n"))
- }
-
- var t = {};
- t.post_id = K.attr("data-post-id"), A.get("posts/conversation", t, e);
- var s = E('查看对话 ');
- return s.el.find(".ds-dialog").css("width", "600px"), s.el.find(".ds-dialog-body").css({
- "max-height": "350px",
- _height: "350px",
- "overflow-y": "auto",
- "padding-top": "10px"
- }), !1
- }), tt = bubbleOutTimer = 0;
- X.mouseenter(N).mouseleave(I), st.PostList = function (e) {
- e && (e.params && (this.params = e.params), e.embedThread && (this.embedThread = e.embedThread)), this.el = B('')
- }, st.PostList.prototype = {
- url: "threads/listPosts", render: function () {
- return R.call(this.el, this.embedThread, this.embedThread.options), this
- }, reset: function (e) {
- var t = this.embedThread.options;
- this.el.html(e[0] ? B.map(lt.getJSON(e), function (e) {
- return et.post({post: e, options: t})
- }).join("") : et.postPlaceholder())
- }, refetch: function () {
- function e(e) {
- lt.set(e.parentPosts || e.relatedPosts), ct.set(e.users), s.reset(e.response), s.embedThread.paginator.reset(e.cursor), s.el.fadeTo(200, 1), S.scrollTo(s.el), a.remove()
- }
-
- var s = this, a = B(et.indicator()).appendTo(t.body).fadeIn(200);
- s.el.fadeTo(200, .5), A.get(s.url, s.params, e)
- }
- }, st.EmbedThread = Q.extend({
- uri: "threads/listPosts",
- params: "thread-id local-thread-id source-thread-id thread-key category channel-key author-key author-id url limit order max-depth form-position container-url" + (v.match(/MSIE 6\.0/) ? "" : " title image thumbnail"),
- render: function () {
- var e = this.el;
- if ("请将此处替换成文章在你的站点中的ID" === e.data("thread-key"))return alert("请设置正确的 data-thread-key 属性"), !1;
- e.attr("id", "ds-thread").append(et.waitingImg());
- var t = e.width(), s = e.data("url") || !e.attr("data-thread-id") && B("link[rel=canonical]").attr("href");
- s ? e.data("url", k(s)) : e.data("container-url", h.href), t && 400 >= t && e.addClass("ds-narrow").data("max-depth", 1)
- },
- updateCounter: function (e) {
- function t(e) {
- return e.substr(e.indexOf("}") + 1)
- }
-
- var s = {
- duoshuo: ["comments", t(z.comments_multiple) || "评论"],
- repost: ["reposts", t(z.reposts_multiple) || "转载"],
- weibo: ["weibo_reposts", t(z.weibo_reposts_multiple) || "新浪微博"],
- qqt: ["qqt_reposts", t(z.qqt_reposts_multiple) || "腾讯微博"]
- };
- for (var a in s)if (!e || e == a) {
- var i = this.data[s[a][0]];
- this.el.find(".ds-comments-tab-" + a).html(this.el.hasClass("ds-narrow") ? ' ' + i : (i ? '' + i + " " : "0") + s[a][1])
- }
- },
- onError: function (e) {
- this.el.html("评论框出错啦(" + e.code + "): " + e.errorMessage)
- },
- onload: function (t) {
- var a = this, i = a.threadId = t.thread.thread_id, n = t.cursor, o = a.options = t.options, d = a.innerEl = p(B('
').appendTo(a.el));
- a.model = new G(a.data = t.thread), lt.set(t.parentPosts || t.relatedPosts), ct.set(t.users), a.el.find("#ds-waiting").remove(), o.like_thread_enabled && (a.meta = new st.Meta(a), d.append(a.meta.render().el)), o.hot_posts && t.hotPosts && t.hotPosts.length && (a.hotPosts = new st.HotPosts(B('
'), {
- max_depth: 1,
- show_context: o.show_context
- }), a.hotPosts.thread = a, d.append(a.hotPosts.el), a.hotPosts.onload({list: lt.getJSON(t.hotPosts)})), a.postListHead = new st.PostListHead(a), a.postList = new st.PostList({
- embedThread: a,
- params: {
- source: "duoshuo",
- thread_id: i,
- max_depth: o.max_depth,
- order: o.order,
- limit: o.limit
- }
- }), a.postList.render().reset(t.response), a.paginator = new st.Paginator({collection: a.postList}), a.paginator.reset(n);
- var c = a.replybox = new st.Replybox(a);
- c.postList = a.postList.el, r() ? a.loginButtons = B(et.loginButtons()).delegate("a.ds-more-services", "click", function () {
- return a.loginButtons.find(".ds-additional-services").toggle(), !1
- }).delegate("a.ds-service-link", "click", l) : a.toolbar = B(et.toolbar()).delegate(".ds-account-control", "mouseenter", function () {
- B(this).addClass("ds-active")
- }).delegate(".ds-account-control", "mouseleave", function () {
- B(this).removeClass("ds-active")
- }).delegate("a.ds-bind-more", "click", function () {
- var e = E(et["dialog-bind-more"]()).el.find(".ds-dialog").addClass("ds-dialog-bind-more").css("width", "300px");
- return e.find("a.ds-service-link").click(l), !1
- }).delegate("a.ds-unread-comments-count", "click", function () {
- return T("unread-comments"), !1
- });
- var u = [' ', a.toolbar || a.loginButtons, c.render().el];
- "top" == o.formPosition && B.fn.append.apply(d, u), d.append(a.postListHead.render().el, a.postList.el, a.paginator.el), "bottom" == o.formPosition && B.fn.append.apply(d, u), d.append(et.poweredBy(o.poweredby_text)), a.updateCounter(), t.alerts && B.each(t.alerts, function (e, t) {
- B('' + t + "
").insertBefore(a.toolbar || loginButtons)
- }), o.message && c.el.find("textarea").val(o.message).focus(), ot.on("reset", function () {
- var e = ot.data.comments || 0;
- d.find("a.ds-unread-comments-count").html(e).attr("title", e ? "你有" + e + "条新回复" : "你没有新回复").css("display", e ? "inline" : "none")
- }), o.mzadx_id && (S.require("mzadxN", function () {
- }), B('
').appendTo(d), __mz_rpq = e.__mz_rpq || [], __mz_rpq.push({
- l: [o.mzadx_id],
- r: "1",
- _srv: "MZADX",
- _callback: function () {
- }
- })), S.thread = a, ot.data !== s && ot.trigger("reset"), r() || M.send({visit_thread_id: a.threadId})
- },
- onMessage: function (e) {
- U(this.postList.el, new F(e), this.options)
- }
- }), st.HotPosts = Q.extend({
- tmpl: "hotPosts", params: "show-quote", render: function () {
- return this.el.attr("id", "ds-hot-posts"), this
- }, onload: function (e) {
- e.options = B.extend(this.options, e.options), Q.prototype.onload.call(this, e), R.call(this.el.find("ul"), this.thread, this.options)
- }
- }), st.RecentComments = Q.extend({
- tmpl: "commentList",
- uri: "sites/listRecentPosts",
- params: "show-avatars show-time show-title avatar-size show-admin excerpt-length num-items channel-key",
- render: function () {
- this.el.attr("id", "ds-recent-comments")
- },
- prepare: function (e) {
- return {
- list: B.map(e.response, function (e) {
- return new F(e).toJSON()
- })
- }
- }
- }), st.RecentVisitors = Q.extend({
- tmpl: "recentVisitors",
- uri: "sites/listVisitors",
- params: "show-time avatar-size num-items channel-key",
- render: function () {
- this.el.children().detach(), this.el.attr("id", "ds-recent-visitors").append(this.waitingEl = B(et.waitingImg()))
- }
- }), st.TopThreads = Q.extend({
- tmpl: "topThreads",
- uri: "sites/listTopThreads",
- params: "range num-items channel-key",
- render: function () {
- this.el.children().detach(), this.el.attr("id", "ds-top-threads").append(this.waitingEl = B(et.waitingImg()))
- }
- }), st.LoginWidget = Q.extend({
- tmpl: "loginWidget", render: function () {
- var e = this.el;
- e.attr("id", "ds-login").html(et.loginWidget(["weixin", "weibo", "qq", "renren", "kaixin", "douban"])), e.find("a").click(l), e.find("a.ds-logout").attr("href", Z.logoutUrl())
- }
- }), st.ThreadCount = Q.extend({
- onload: function (e) {
- var t = this.el, s = t.data("count-type") || "comments", a = e.data[s];
- t[t.data("replace") ? "replaceWith" : "html"](z[s + "_" + (a ? a > 1 ? "multiple" : "one" : "zero")].replace("{num}", a))
- }
- }), st.ShareWidget = Q.extend({
- tmpl: "shareWidget", render: function () {
- var e = {
- copyright: "多说分享插件",
- services: ["weibo", "qzone", "sohu", "renren", "netease", "qqt", "kaixin", "douban", "qq", "meilishuo", "mogujie", "baidu", "taobao", "google", "wechat", "diandian", "huaban", "duitang", "youdao", "pengyou", "facebook", "twitter", "linkedin", "msn"]
- };
- this.el.attr("id", "ds-share"), this.el.children().attr("id", "ds-reset"), this.el.find(".ds-share-aside-inner").html(et.shareWidget(e)), this.el.find(".ds-share-icons-more").html(et.shareWidget(e)), this.el.find(".ds-share-icons-more").hide(), this.el.hasClass("flat") && this.el.find("a").each(function () {
- B(this).addClass("flat")
- }), p(this.el), this.delegateEvents()
- }, delegateEvents: function () {
- var s = this, i = s.el;
- if (i.children().hasClass("ds-share-inline")) {
- var r = ".ds-share-icons-more", n = i.find(r), d = "[data-toggle=ds-share-icons-more]";
- i.delegate(d, "mouseover", function () {
- n.show()
- }), i.delegate(d, "mouseout", function () {
- n.hide()
- }), i.delegate(r, "mouseover", function () {
- n.show()
- }), i.delegate(r, "mouseout", function () {
- n.hide()
- })
- } else {
- var l = i.children().hasClass("ds-share-aside-left") ? "slide-to-right" : "slide-to-left", c = i.children();
- if (!o.cssProperty("transition")) {
- var u = i.children().hasClass("ds-share-aside-left") ? "left" : "right";
- i.delegate(".ds-share-aside-toggle", "mouseover", function () {
- var e = {}, s = P.ie6 && "right" === u;
- s ? e.left = (t.documentElement.scrollLeft + t.documentElement.clientWidth - this.offsetWidth - (parseInt(this.currentStyle.marginLeft, 10) || 0) - parseInt(this.currentStyle.marginRight, 10) || 0) - 195 : e[u] = 0, c.animate(e, 200)
- }), i.delegate(".ds-share-aside-inner", "mouseleave", function () {
- var e = {}, s = P.ie6 && "right" === u;
- s ? e.left = (t.documentElement.scrollLeft + t.documentElement.clientWidth - this.offsetWidth - (parseInt(this.currentStyle.marginLeft, 10) || 0) - parseInt(this.currentStyle.marginRight, 10) || 0) + 230 : e[u] = -229, c.animate(e, 200)
- })
- }
- i.delegate(".ds-share-aside-toggle,.ds-share-aside-inner", "mouseover", function () {
- c.addClass(l)
- }), i.delegate(".ds-share-aside-toggle,.ds-share-aside-inner", "mouseleave", function () {
- c.removeClass(l)
- })
- }
- i.delegate("a", "click", function (t) {
- var s = B(this).data("service");
- if (!i.data("url"))return void alert("请设置data-url");
- if ("wechat" === s) {
- var r = a() + "/api/qrcode/getImage.png", n = "?size=240&text=" + i.data("url"), d = E(et["dialog-qrcode"]({
- qrcode_url: r + n,
- url: i.data("url")
- }));
- d.el.find(".ds-dialog").css("width", "320px")
- } else {
- var l = a() + "/share-proxy/?" + o.param({
- service: B(this).data("service"),
- thread_key: i.data("threadKey"),
- title: i.data("title"),
- images: i.data("images"),
- content: i.data("content"),
- url: i.data("url")
- });
- e.open(l, "_blank")
- }
- t.preventDefault(), t.stopPropagation()
- })
- }
- });
- var it = 0;
- S.initSelector = function (e, t) {
- function s(e) {
- W(e), o.extend(z, e.options), dt.set(e.response)
- }
-
- var a = [];
- !q() || !B.isReady && j || B(e).each(function (e, s) {
- var i = B(s);
- if (!i.data("initialized")) {
- i.data("initialized", !0);
- var r = new st[t.type](i, t);
- if (at.push(r), "ThreadCount" === t.type) {
- var n = i.attr("data-thread-key");
- i.attr("data-channel-key") && (n = i.attr("data-channel-key") + ":" + n), a.push(n), dt[n] || (dt[n] = new G({})), dt[n].on("reset", function () {
- r.onload(this)
- })
- } else if (r.uri) {
- var o = {};
- B.each(r.params.split(" "), function (e, t) {
- o[t.replace(/-/g, "_")] = i.attr("data-" + t) || i.data(t)
- }), A.get(r.uri, H(o), function (e) {
- r.load(e)
- })
- }
- }
- }), a.length && A.get("threads/counts", H({threads: a.join(",")}), s)
- }, (S.initView = function () {
- B.each(O, S.initSelector)
- })(), B(function () {
- if (!c) {
- if (!q())return C.error("缺少 duoshuoQuery 的定义");
- C.warn("请在加载多说 embed.js 之前定义 duoshuoQuery")
- }
- setInterval(function () {
- B(".ds-time").each(function () {
- var e = B(this).attr("datetime");
- e && (this.innerHTML = S.elapsedTime(e))
- })
- }, 2e4), c.ondomready && c.ondomready(), S.initView(), !it && c.short_name && A.get("analytics/ping", H({}), W)
- })
- })
- }
-}(window, document);
\ No newline at end of file