├── .gitignore
├── .editorconfig
├── index.js
├── logo.png
├── test
├── sass
│ ├── empty.scss
│ ├── partial
│ │ ├── empty.scss
│ │ ├── sample-cr.scss
│ │ ├── sample.scss
│ │ └── sample-crlf.scss
│ ├── overview.md
│ ├── sample-cr.scss
│ ├── sample.scss
│ └── sample-crlf.scss
├── helper
│ └── template-helper.js
├── render
│ └── render.js
├── parser
│ └── parser.js
├── const
│ └── pattern.js
└── frontnote.js
├── .istanbul.yml
├── template
├── assets
│ ├── images
│ │ ├── favicon.ico
│ │ └── frontnote.png
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ └── fontawesome-webfont.woff
│ ├── js
│ │ ├── ripple-effect.js
│ │ └── main.js
│ ├── lib
│ │ ├── jquery.mousewheel.js
│ │ ├── highlight.pack.js
│ │ └── jquery.js
│ └── css
│ │ └── style.css
└── index.ejs
├── styleguide.md
├── codeclimate.yml
├── lib
├── helper
│ └── template-helper.js
├── const
│ ├── options.js
│ └── pattern.js
├── render
│ └── render.js
├── frontnote.js
├── generator
│ └── generator.js
└── parser
│ └── parser.js
├── .travis.yml
├── .eslintrc
├── LICENSE
├── package.json
├── bin
└── index.js
├── README.md
└── CHANGELOG.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | guide
3 | coverage
4 | .idea
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.js]
2 | indent_style = space
3 | indent_size = 4
4 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | module.exports = require('./lib/frontnote');
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/logo.png
--------------------------------------------------------------------------------
/test/sass/empty.scss:
--------------------------------------------------------------------------------
1 | // empty
2 | .test {
3 | font-size: 14px;
4 | }
--------------------------------------------------------------------------------
/test/sass/partial/empty.scss:
--------------------------------------------------------------------------------
1 | // empty
2 | .test {
3 | font-size: 14px;
4 | }
--------------------------------------------------------------------------------
/.istanbul.yml:
--------------------------------------------------------------------------------
1 | instrumentation:
2 | excludes: ['node_modules']
3 | reporting:
4 | #print: none
5 | reports:
6 | - html
--------------------------------------------------------------------------------
/template/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/images/favicon.ico
--------------------------------------------------------------------------------
/template/assets/images/frontnote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/images/frontnote.png
--------------------------------------------------------------------------------
/styleguide.md:
--------------------------------------------------------------------------------
1 | # 
2 |
3 | Generated by [FrontNote](https://github.com/frontainer/frontnote)
--------------------------------------------------------------------------------
/template/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/template/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/template/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/template/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frontainer/frontnote/HEAD/template/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/test/sass/overview.md:
--------------------------------------------------------------------------------
1 | # title
2 |
3 | ## sub title
4 |
5 | overview text.
6 |
7 | ```js
8 | function() {
9 | alert('');
10 | }
11 | ```
--------------------------------------------------------------------------------
/codeclimate.yml:
--------------------------------------------------------------------------------
1 | engines:
2 | eslint:
3 | enabled: true
4 | duplication:
5 | enabled: false
6 | config:
7 | languages:
8 | - javascript
9 | ratings:
10 | paths:
11 | - lib/**
12 | exclude_paths:
13 | - test/**
14 |
--------------------------------------------------------------------------------
/test/sass/sample-cr.scss:
--------------------------------------------------------------------------------
1 | /*
#overview
sample.scss 改行コードCR
overview comment
*/
/*
#styleguide
style title
style comment.
@depulicated
@非推奨
@todo
@your-attribute
```
sample code here.
```
*/
/*
#colors
@primary #996600
@secondary #333
@color-name color-code
*/
--------------------------------------------------------------------------------
/test/sass/partial/sample-cr.scss:
--------------------------------------------------------------------------------
1 | /*
#overview
sample.scss 改行コードCR
overview comment
*/
/*
#styleguide
style title
style comment.
@depulicated
@非推奨
@todo
@your-attribute
```
sample code here.
```
*/
/*
#colors
@primary #996600
@secondary #333
@color-name color-code
*/
--------------------------------------------------------------------------------
/lib/helper/template-helper.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | const HELPER = {
3 | // currentファイルかどうか
4 | isCurrent(current,file) {
5 | return (current.file === file.file);
6 | },
7 | // 指定した属性が含まれているかどうか
8 | hasAttribute(attributes,attr) {
9 | return (attributes.indexOf(attr) !== -1);
10 | }
11 | };
12 | module.exports = HELPER;
--------------------------------------------------------------------------------
/test/sass/sample.scss:
--------------------------------------------------------------------------------
1 | /*
2 | #overview
3 | sample.scss
4 |
5 | overview comment
6 | */
7 |
8 | /*
9 | #styleguide
10 | style title
11 |
12 | style comment.
13 |
14 | @depulicated
15 | @非推奨
16 | @todo
17 | @your-attribute
18 |
19 | ```
20 | sample code here.
21 | ```
22 | */
23 |
24 | /*
25 | #colors
26 |
27 | @primary #996600
28 | @secondary #333
29 | @color-name color-code
30 | */
--------------------------------------------------------------------------------
/lib/const/options.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | overview: __dirname + '/../../styleguide.md',
3 | template: __dirname + '/../../template/index.ejs',
4 | includeAssetPath: __dirname + '/../../template/assets/**/*',
5 | css: './style.css',
6 | script: null,
7 | out: './guide',
8 | title: 'StyleGuide',
9 | verbose: false,
10 | clean: false,
11 | params: {}
12 | };
--------------------------------------------------------------------------------
/test/sass/partial/sample.scss:
--------------------------------------------------------------------------------
1 | /*
2 | #overview
3 | sample.scss
4 |
5 | overview comment
6 | */
7 |
8 | /*
9 | #styleguide
10 | style title
11 |
12 | style comment.
13 |
14 | @depulicated
15 | @非推奨
16 | @todo
17 | @your-attribute
18 |
19 | ```
20 | sample code here.
21 | ```
22 | */
23 |
24 | /*
25 | #colors
26 |
27 | @primary #996600
28 | @secondary #333
29 | @color-name color-code
30 | */
--------------------------------------------------------------------------------
/test/sass/sample-crlf.scss:
--------------------------------------------------------------------------------
1 | /*
2 | #overview
3 | sample.scss 改行コードCRLF
4 |
5 | overview comment
6 | */
7 |
8 | /*
9 | #styleguide
10 | style title
11 |
12 | style comment.
13 |
14 | @depulicated
15 | @非推奨
16 | @todo
17 | @your-attribute
18 | ```
19 |
20 | sample code here.
21 | ```
22 | */
23 |
24 | /*
25 | #colors
26 |
27 | @primary #996600
28 | @secondary #333
29 | @color-name color-code
30 | */
--------------------------------------------------------------------------------
/test/sass/partial/sample-crlf.scss:
--------------------------------------------------------------------------------
1 | /*
2 | #overview
3 | sample.scss 改行コードCRLF
4 |
5 | overview comment
6 | */
7 |
8 | /*
9 | #styleguide
10 | style title
11 |
12 | style comment.
13 |
14 | @depulicated
15 | @非推奨
16 | @todo
17 | @your-attribute
18 | ```
19 |
20 | sample code here.
21 | ```
22 | */
23 |
24 | /*
25 | #colors
26 |
27 | @primary #996600
28 | @secondary #333
29 | @color-name color-code
30 | */
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - '7'
5 | - '6'
6 | - '5'
7 | addons:
8 | code_climate:
9 | repo_token: 3b1b8a63197add999a34a21b2ec13ae89f37338e4f9deba54c4d55ad445f3425
10 | after_script:
11 | - codeclimate < lcov.info
12 | notifications:
13 | slack:
14 | secure: U3U8YuPeFmE64C9W0eRW4z2Tnz7eOwVIvEAb0Fh6+Kfr3zKvqeyY1VItkEOUpZSP9M7Rw5TF/7yRpQgRTSfyW2Up+xYEOiSWq9NrOcGAgiLh9AwwRXoEUv12eCVsJvmg+XPAExc2O1eFKVlp0gMiyihFSPh+7ky23Ms0fs69M+8=
15 |
--------------------------------------------------------------------------------
/lib/const/pattern.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | comment: /\/\*+\s*#styleguide([^*]|\*[^/])*\*+\//g,
3 | overview: /\/\*+\s*#overview([^*]|\*[^/])*\*+\//g,
4 | colors: /\/\*+\s*#colors([^*]|\*[^/])*\*+\//g,
5 | color: /@(.+)\s+(.+)$/,
6 | splitter: /\n|\r/,
7 | prefix: /(^\/\*+\s*\n*(#styleguide|#overview)?)|(\n*\s*\*+\/$)/gm,
8 | line: /^\s*$/gm,
9 | attr: /^\s*\t*@.+$/gm,
10 | attrPrefix: /^\s*\t*@/,
11 | code: /```(.|\s)+```/g,
12 | codeWrapper: /(```)\n?/g
13 | };
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true,
4 | "es6": true
5 | },
6 | "rules": {
7 | "brace-style": [2, "1tbs", { "allowSingleLine": true }],
8 | "comma-dangle": [2, "never"],
9 | "comma-style": [2, "first", {
10 | "exceptions": {
11 | "ArrayExpression": true,
12 | "ObjectExpression": true
13 | }
14 | }],
15 | "complexity": [2, 6],
16 | "curly": 2,
17 | "eqeqeq": [2, "allow-null"],
18 | "max-statements": [2, 30],
19 | "no-shadow-restricted-names": 2,
20 | "no-undef": 2,
21 | "no-use-before-define": 2,
22 | "radix": 2,
23 | "semi": 2,
24 | "space-infix-ops": 2,
25 | "strict": 0
26 | },
27 | "globals": {
28 | "AnalysisView": true,
29 | "PollingView": true,
30 | "Prism": true,
31 | "Spinner": true,
32 | "Timer": true,
33 | "moment": true
34 | }
35 | }
--------------------------------------------------------------------------------
/test/helper/template-helper.js:
--------------------------------------------------------------------------------
1 | var assert = require('power-assert');
2 | var Helper = require('../../lib/helper/template-helper');
3 |
4 | module.exports = function() {
5 | describe('template-helper', function() {
6 | it('isCurrent', function() {
7 | var same = Helper.isCurrent({
8 | file:'sample.scss'
9 | },{
10 | file:'sample.scss'
11 | });
12 | assert(same === true);
13 | var unsame = Helper.isCurrent({
14 | file:'sample.scss'
15 | },{
16 | file:'sample2.scss'
17 | });
18 | assert(unsame === false);
19 | });
20 | it ('hasAttribute', function() {
21 | var have = Helper.hasAttribute(['test'],'test');
22 | assert(have === true);
23 |
24 | var noHave = Helper.hasAttribute(['test'],'test2');
25 | assert(noHave === false);
26 | });
27 | });
28 | };
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Frontainer
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/template/assets/js/ripple-effect.js:
--------------------------------------------------------------------------------
1 | $.fn.rippleEffect=function(){function t(t){if("touchstart"===t.type)r=!0;else if(r)return void(r=!1);var e=$(this),i=t.originalEvent,p=i.touches?i.touches[0].pageX:t.pageX,a=i.touches?i.touches[0].pageY:t.pageY,o=e.offset(),c=parseInt(p-o.left),n=parseInt(a-o.top),l=e.find("svg");if(0!==l.length){var s=l.data("ripple");s&&(s.stop(),l.data("ripple",null)),l.remove()}e.append('');var f=e.find("circle"),u=$({r:.8,op:1}).animate({r:e.outerWidth(),op:1},{easing:"swing",duration:250,step:function(t,e){"op"===e.prop?f.attr("fill-opacity",t):f.attr(e.prop,t)}});f.data("ripple",u)}function e(t){var e=$(this),i=e.find("svg.fn-ripple");if($circle=i.find("circle"),0!==$circle.length){{var r=$circle.data("ripple");parseInt($circle.attr("r"))}r.stop(!0,!1).animate({r:e.outerWidth(),op:0},{easing:"swing",duration:250,step:function(t,e){"op"===e.prop?$circle.attr("fill-opacity",t):$circle.attr(e.prop,t)},complete:function(){i.remove()}})}}var i=$(this);i.css({tapHighlightColor:"rgba(0,0,0,0)"});var r=!1;i.on("mousedown touchstart",t),i.on("mouseup touchend",e)};
--------------------------------------------------------------------------------
/test/render/render.js:
--------------------------------------------------------------------------------
1 | var assert = require('power-assert');
2 | var Render = require('../../lib/render/render');
3 |
4 |
5 | module.exports = function() {
6 | describe('render', function() {
7 | var render;
8 | beforeEach(function() {
9 | render = new Render();
10 | });
11 | it('generateIncludeCss', function() {
12 | assert(render.generateIncludeCss('main.css'),'');
13 | var css = render.generateIncludeCss([
14 | 'main.css',
15 | 'style.css',
16 | 'sub.css'
17 | ]);
18 | assert(css == '\n\n');
19 | });
20 | it('generateIncludeScript', function() {
21 | assert(render.generateIncludeScript('main.js'),'');
22 | var js = render.generateIncludeScript([
23 | 'main.js',
24 | 'style.js',
25 | 'sub.js'
26 | ]);
27 | assert(js == '\n\n');
28 | });
29 | });
30 | };
--------------------------------------------------------------------------------
/template/assets/js/main.js:
--------------------------------------------------------------------------------
1 | !function(){function n(){$(this).attr("contentEditable",!1)}function o(n){n.preventDefault();var o=$(this).siblings(".fn-code");o.attr("contentEditable",!0),o.focus(),document.execCommand&&document.execCommand("selectAll",!1,null)}function e(){c.trigger("mousewheel"),r.on("blur",".fn-code",n),r.on("click",".fn-pre .fn-icon",o),$(".fn-menu, .fn-bars").rippleEffect(),$(".fn-drawer-trigger").on("click",function(n){n.preventDefault(),u.hasClass("fn-overflow")?t():s()}),$(".fn-content").on("touchstart mousedown",function(n){u.hasClass("fn-overflow")&&t()});var e=$('
');u.append(e),$(".fn-preview > *").on("mouseenter",function(n){this.className&&e.html(this.className)}).on("mousemove",function(n){this.className&&e.stop().fadeIn(i).css({top:n.clientY+f,left:n.clientX+l})}).on("mouseleave",function(n){e.stop().fadeOut(i)}),d.on("click",function(n){n.preventDefault(),d.removeClass("fn-show"),$("html,body").animate({scrollTop:0},a,"swing")}),hljs.initHighlightingOnLoad()}function t(){u.removeClass("fn-overflow")}function s(){u.addClass("fn-overflow")}var l=10,f=10,i=200,a=450,c=$(window),r=$(document),u=$(document.body),d=$(".fn-pagetop"),m=!1;c.on("resize",function(n){var o=c.width();o>680&&u.hasClass("fn-overflow")&&u.removeClass("fn-overflow")}),c.on("mousewheel",function(n){0!==c.scrollTop()?m||(d.addClass("fn-show"),m=!0):m&&(d.removeClass("fn-show"),m=!1)}),e()}();
--------------------------------------------------------------------------------
/lib/render/render.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const TemplateHelper = require('../helper/template-helper');
4 | const ejs = require('ejs');
5 |
6 | const CSS = '';
7 | const SCRIPT = '';
8 |
9 | class Render {
10 | render(template, params) {
11 | //EJSを使ってテンプレートレンダリング
12 | params.helpers = TemplateHelper;
13 | return ejs.render(template, params);
14 | }
15 |
16 | /**
17 | * HTMLに追加読み込みするファイルパスまたはパスが入った配列からタグを生成
18 | * @param type(css|script)
19 | * @param arr
20 | * @return {string|array}
21 | */
22 | generateInclude(type, data) {
23 | if (!data) return '';
24 | let template = SCRIPT;
25 | if (type === 'css') {
26 | template = CSS;
27 | }
28 | if (typeof data === 'string') {
29 | return ejs.render(template, {src: data});
30 | }
31 | let result = data.map((d) => {
32 | return ejs.render(template, {src: d});
33 | });
34 | return result.join('\n');
35 | }
36 |
37 | /**
38 | * HTMLに追加読み込みするCSSファイルパスまたはパスが入った配列からタグを生成
39 | * @param arr
40 | * @return {string|array}
41 | */
42 | generateIncludeCss(arr) {
43 | return this.generateInclude('css', arr);
44 | }
45 |
46 | /**
47 | * HTMLに追加読み込みするJSファイルパスまたはパスが入った配列からタグを生成
48 | * @param arr {string|array}
49 | */
50 | generateIncludeScript(arr) {
51 | return this.generateInclude('script', arr);
52 | }
53 | }
54 | module.exports = Render;
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "frontnote",
3 | "version": "2.0.5",
4 | "description": "StyleGuide Generator FrontNote",
5 | "license": "MIT",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/frontainer/frontnote"
9 | },
10 | "author": "frontainer (http://frontainer.com)",
11 | "engines": {
12 | "node": ">=5.0.0"
13 | },
14 | "bin": {
15 | "frontnote": "./bin/index.js"
16 | },
17 | "scripts": {
18 | "changelog": "conventional-changelog -p eslint -i CHANGELOG.md -w -s -r 0",
19 | "test": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --require intelli-espower-loader -R spec ./test/frontnote.js"
20 | },
21 | "keywords": [
22 | "styleguide",
23 | "sass",
24 | "less",
25 | "stylus",
26 | "css",
27 | "ejs"
28 | ],
29 | "dependencies": {
30 | "chalk": "^1.1.3",
31 | "commander": "^2.9.0",
32 | "cpx": "^1.5.0",
33 | "ejs": "^2.5.2",
34 | "extend": "^3.0.0",
35 | "fs-extra": "^0.30.0",
36 | "gaze": "^1.1.2",
37 | "glob": "^7.1.0",
38 | "marked": "^0.3.6",
39 | "memory-cache": "^0.1.6",
40 | "ora": "^0.3.0",
41 | "rxjs": "^5.0.0-beta.12",
42 | "sanitizer": "^0.1.3"
43 | },
44 | "devDependencies": {
45 | "conventional-changelog-cli": "^1.2.0",
46 | "espower-loader": "^1.0.1",
47 | "intelli-espower-loader": "^1.0.1",
48 | "istanbul": "^0.4.5",
49 | "mocha": "^3.1.0",
50 | "power-assert": "^1.4.1"
51 | },
52 | "bugs": {
53 | "url": "https://github.com/frontainer/frontnote/issues"
54 | },
55 | "homepage": "https://github.com/frontainer/frontnote",
56 | "main": "index.js"
57 | }
58 |
--------------------------------------------------------------------------------
/bin/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | 'use strict';
3 |
4 | const extend = require('extend');
5 | const program = require('commander');
6 | const path = require('path');
7 | const gaze = require('gaze');
8 | const pkg = require('../package.json');
9 | const DEFAULT_OPTION = require('../lib/const/options');
10 | const frontnote = require('../lib/frontnote');
11 |
12 | program._name = 'frontnote';
13 | program
14 | .version(pkg.version)
15 | .description('Frontnote CLI')
16 | .usage(' [options]')
17 | .option('-C, --clean', 'clean dest directory')
18 | .option('-c, --config [path]', 'config file path')
19 | .option('-t, --template [path]', 'template file path')
20 | .option('-a, --assets [path]', 'assets file path')
21 | .option('-v, --verbose', 'verbose')
22 | .option('-o, --overview [path]', 'overview markdown file path')
23 | .option('-w, --watch', 'watch files');
24 | program.parse(process.argv);
25 |
26 | let options = extend({},DEFAULT_OPTION);
27 | if (program.config) {
28 | let file = require(path.join(process.cwd(),program.config));
29 | options = extend(options,file);
30 | }
31 |
32 | let args = program.args;
33 | if (args.length < 1) throw new Error('At least one argument');
34 | if (args[1]) options.out = args[1];
35 | if (program.clean) options.clean = program.clean;
36 | if (program.overview) options.overview = program.overview;
37 | if (program.template) options.template = program.template;
38 | if (program.assets) options.assets = program.assets;
39 | if (program.verbose) options.verbose = program.verbose;
40 |
41 | let fn = new frontnote(options);
42 | let pattern = path.join(process.cwd(), args[0]);
43 |
44 | if (program.watch) {
45 | gaze(pattern, (err, watcher) => {
46 | watcher.on('all', function(filepath) {
47 | fn.render(pattern).subscribe(() => {
48 | }, (e) => {
49 | console.error(e);
50 | });
51 | });
52 | });
53 | } else {
54 | fn.render(pattern).subscribe((result) => {
55 | }, (e) => {
56 | console.error(e);
57 | });
58 | }
--------------------------------------------------------------------------------
/test/parser/parser.js:
--------------------------------------------------------------------------------
1 | var assert = require('power-assert');
2 | var Parser = require('../../lib/parser/parser');
3 |
4 | var sampleFile = '../test/sass/sample.scss';
5 | var sampleText = '/*\n#styleguide\nstyle title\n\nstyle comment.\n\n@depulicated\n@非推奨\n@todo\n@your-attribute\n\n```\nsample code here.\n```\n*/\n\n/*\n#colors\n\n@primary #996600\n@secondary #333\n@color-name color-code\n*/';
6 |
7 | var sampleFile2 = '../test/sass/sample2.scss';
8 | var sampleText2 = '/*\n#overview\ntest\n\n## overview title\n*/';
9 |
10 | module.exports = function() {
11 | describe('Parser', function() {
12 | var parser;
13 | beforeEach(function() {
14 | parser = new Parser();
15 | });
16 | it('parse', function() {
17 | var result = parser.parse(sampleFile,sampleText);
18 | assert(result.fileName === 'sample');
19 | assert(result.url === 'test-sass-sample.html');
20 |
21 | assert(result.ext === '.scss');
22 | assert.deepEqual(result.dirs,['..','test','sass','sample.scss']);
23 |
24 | assert(result.sections[0].title === 'style title');
25 | assert(result.sections[0].comment === 'style comment.');
26 | assert(result.sections[0].code === 'sample code here.\n');
27 |
28 | assert.deepEqual(result.sections[0].attributes, ["depulicated","非推奨","todo","your-attribute"]);
29 |
30 | assert(result.colors[0].name === 'primary');
31 | assert(result.colors[0].color === '#996600');
32 |
33 | assert(result.colors[1].name === 'secondary');
34 | assert(result.colors[1].color === '#333');
35 | });
36 |
37 | it('parse overview', function() {
38 | var result = parser.parse(sampleFile2,sampleText2);
39 | assert(result.fileName === 'sample2');
40 | assert(result.url === 'test-sass-sample2.html');
41 |
42 | assert(result.ext === '.scss');
43 | assert.deepEqual(result.dirs,['..','test','sass','sample2.scss']);
44 |
45 | assert(result.sections === null);
46 |
47 | assert(result.overview.title === 'test');
48 | assert(result.overview.comment === '## overview title');
49 | assert.deepEqual(result.overview.attributes,[]);
50 | assert(result.overview.code === null);
51 |
52 | assert(result.colors === null);
53 | });
54 | });
55 | };
--------------------------------------------------------------------------------
/template/assets/lib/jquery.mousewheel.js:
--------------------------------------------------------------------------------
1 | /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
2 | * Licensed under the MIT License (LICENSE.txt).
3 | *
4 | * Version: 3.1.12
5 | *
6 | * Requires: jQuery 1.2.2+
7 | */
8 | !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var s=t||window.event,a=h.call(arguments,1),r=0,f=0,d=0,c=0,m=0,g=0;if(t=e.event.fix(s),t.type="mousewheel","detail"in s&&(d=-1*s.detail),"wheelDelta"in s&&(d=s.wheelDelta),"wheelDeltaY"in s&&(d=s.wheelDeltaY),"wheelDeltaX"in s&&(f=-1*s.wheelDeltaX),"axis"in s&&s.axis===s.HORIZONTAL_AXIS&&(f=-1*d,d=0),r=0===d?f:d,"deltaY"in s&&(d=-1*s.deltaY,r=d),"deltaX"in s&&(f=s.deltaX,0===d&&(r=-1*f)),0!==d||0!==f){if(1===s.deltaMode){var w=e.data(this,"mousewheel-line-height");r*=w,d*=w,f*=w}else if(2===s.deltaMode){var v=e.data(this,"mousewheel-page-height");r*=v,d*=v,f*=v}if(c=Math.max(Math.abs(d),Math.abs(f)),(!l||l>c)&&(l=c,i(s,c)&&(l/=40)),i(s,c)&&(r/=40,f/=40,d/=40),r=Math[r>=1?"floor":"ceil"](r/l),f=Math[f>=1?"floor":"ceil"](f/l),d=Math[d>=1?"floor":"ceil"](d/l),u.settings.normalizeOffset&&this.getBoundingClientRect){var p=this.getBoundingClientRect();m=t.clientX-p.left,g=t.clientY-p.top}return t.deltaX=f,t.deltaY=d,t.deltaFactor=l,t.offsetX=m,t.offsetY=g,t.deltaMode=0,a.unshift(t,r,f,d),o&&clearTimeout(o),o=setTimeout(n,200),(e.event.dispatch||e.event.handle).apply(this,a)}}function n(){l=null}function i(e,t){return u.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120===0}var o,l,s=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],a="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],h=Array.prototype.slice;if(e.event.fixHooks)for(var r=s.length;r;)e.event.fixHooks[s[--r]]=e.event.mouseHooks;var u=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var n=a.length;n;)this.addEventListener(a[--n],t,!1);else this.onmousewheel=t;e.data(this,"mousewheel-line-height",u.getLineHeight(this)),e.data(this,"mousewheel-page-height",u.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var n=a.length;n;)this.removeEventListener(a[--n],t,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var n=e(t),i=n["offsetParent"in e.fn?"offsetParent":"parent"]();return i.length||(i=e("body")),parseInt(i.css("fontSize"),10)||parseInt(n.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});
--------------------------------------------------------------------------------
/test/const/pattern.js:
--------------------------------------------------------------------------------
1 | var assert = require('power-assert');
2 |
3 | module.exports = function() {
4 | describe('Pattern', function() {
5 | var Pattern = require('../../lib/const/pattern');
6 | it('comment', function() {
7 | assert('/*#styleguide*/'.search(Pattern.comment) !== -1);
8 | assert('/**#styleguide**/'.search(Pattern.comment) !== -1);
9 | assert('/** #styleguide **/'.search(Pattern.comment) !== -1);
10 | assert('/**\n#styleguide\n**/'.search(Pattern.comment) !== -1);
11 | });
12 | it('overview', function() {
13 | assert('/*#overview*/'.search(Pattern.overview) !== -1);
14 | assert('/**#overview**/'.search(Pattern.overview) !== -1);
15 | assert('/** #overview **/'.search(Pattern.overview) !== -1);
16 | assert('/**\n#overview\n**/'.search(Pattern.overview) !== -1);
17 | });
18 |
19 | it('colors', function() {
20 | assert('/*#colors*/'.search(Pattern.colors) !== -1);
21 | assert('/**#colors**/'.search(Pattern.colors) !== -1);
22 | assert('/** #colors **/'.search(Pattern.colors) !== -1);
23 | assert('/**\n#colors\n**/'.search(Pattern.colors) !== -1);
24 | });
25 |
26 | it('color', function() {
27 | assert('@primary #996600'.search(Pattern.color) !== -1);
28 | assert('@primary #996600'.search(Pattern.color) !== -1);
29 | assert('@primary #996600'.search(Pattern.color) !== -1);
30 | assert(' @primary #996600'.search(Pattern.color) !== -1);
31 | });
32 |
33 | it('spliltter', function() {
34 | assert('test\ntest'.split(Pattern.splitter).length === 2);
35 | assert('test\n\ntest'.split(Pattern.splitter).length === 3);
36 | assert('\ntest\ntest'.split(Pattern.splitter).length === 3);
37 | assert('test'.split(Pattern.splitter).length === 1);
38 | });
39 |
40 | it('prefix', function() {
41 | assert('/*#styleguide*/'.replace(Pattern.prefix,'') === '');
42 | assert('/**#styleguide**/'.replace(Pattern.prefix,'') === '');
43 | assert('/** #styleguide **/'.replace(Pattern.prefix,'') === '');
44 | assert('/**\n#styleguide\n**/'.replace(Pattern.prefix,'') === '');
45 | });
46 |
47 | it('line', function() {
48 | assert(' '.search(Pattern.line) !== -1);
49 | assert(' '.search(Pattern.line) !== -1);
50 | assert(' \n '.search(Pattern.line) !== -1);
51 | assert(' t '.search(Pattern.line) === -1);
52 | });
53 |
54 | it('attr', function() {
55 | assert('@test'.search(Pattern.attr) !== -1);
56 | assert('test\n@attr'.search(Pattern.attr) !== -1);
57 | assert(' @test'.search(Pattern.attr) !== -1);
58 | assert(' @test'.search(Pattern.attr) !== -1);
59 | assert('test@test\ntest\naaa'.search(Pattern.attr) === -1);
60 | });
61 |
62 | it('attrPrefix', function() {
63 | assert('@test'.search(Pattern.attrPrefix) !== -1);
64 | assert(' @attr'.search(Pattern.attr) !== -1);
65 | assert(' @attr'.search(Pattern.attr) !== -1);
66 | assert(' test'.search(Pattern.attr) === -1);
67 | });
68 |
69 | it('code', function() {
70 |
71 | });
72 |
73 | it('codeWrapper', function() {
74 |
75 | });
76 | })
77 | };
--------------------------------------------------------------------------------
/lib/frontnote.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | const path = require('path'),
3 | extend = require('extend'),
4 | Rx = require('rxjs'),
5 | glob = require('glob'),
6 | ora = require('ora'),
7 | chalk = require('chalk'),
8 | fs = require('fs-extra');
9 |
10 | const Parser = require('./parser/parser');
11 | const Generator = require('./generator/generator');
12 | const DEFAULT_OPTIONS = require('./const/options');
13 |
14 | /**
15 | * FrontNote
16 | * @param target {string|array} 解析するファイルのminimatch形式文字列またはminimatch形式文字列が入った配列
17 | * @param option {object} オプション
18 | * @param callback {callback} 全ての処理が正常に終了したときに実行するコールバック関数
19 | * @constructor
20 | */
21 | class FrontNote {
22 | constructor(option) {
23 | this.options = extend({},DEFAULT_OPTIONS,option);
24 | this.options.out = path.resolve(this.options.out);
25 | this.Parser = new Parser();
26 | }
27 |
28 | /**
29 | * render styleguide
30 | * @param target{String|Array}
31 | * @returns {Observable}
32 | */
33 | render(target) {
34 | const spinner = ora('Loading files...').start();
35 | let list = typeof target === 'string' ? glob.sync(target) : target.reduce((previous,current) => {
36 | return previous.concat(glob.sync(current));
37 | },[]);
38 | let obs = this.readFiles(list).map((files) => {
39 | spinner.text = 'Parsing files...';
40 | return this.parseFiles(files);
41 | }).flatMap((parsedFiles) => {
42 | spinner.text = 'Generating StyleGuide...';
43 | return this.createStyleGuide(parsedFiles);
44 | }).share();
45 | obs.take(1).subscribe((result) => {
46 | if (this.options.verbose) {
47 | result.forEach((filepath) => {
48 | console.log(chalk.green(`[w] ${filepath}`));
49 | });
50 | }
51 | spinner.text = 'Generated StyleGuide';
52 | spinner.succeed();
53 | });
54 | return obs;
55 | }
56 | readFiles(fileList) {
57 | const observers = fileList.map((filepath) => {
58 | const readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);
59 | return readFileAsObservable(filepath, 'utf8').map((data) => {
60 | return {
61 | file: filepath,
62 | content: data
63 | };
64 | });
65 | });
66 | if (observers.length === 0) {
67 | return Rx.Observable.create(observer => {
68 | observer.next([]);
69 | });
70 | }
71 | return Rx.Observable.combineLatest(observers);
72 | }
73 | parseFiles(files) {
74 | return files.map((fileData) => {
75 | const value = this.Parser.parse(fileData.file,fileData.content);
76 | if (value) {
77 | return value;
78 | }
79 | }).filter((v) => {
80 | return (v !== undefined);
81 | });
82 | }
83 | /**
84 | * スタイルガイド作成
85 | * @param data
86 | */
87 | createStyleGuide(data) {
88 | return Rx.Observable.create(observer => {
89 | const gen = new Generator(data,this.options);
90 | gen.generate().subscribe(result => {
91 | let cwd = process.cwd();
92 | result = Array.prototype.concat.apply([],result).filter((v) => {
93 | return (v);
94 | }).map((v) => {
95 | return path.relative(cwd,v);
96 | });
97 | observer.next(result);
98 | },(e) => {
99 | observer.error(e);
100 | });
101 | });
102 | }
103 | }
104 |
105 | // プラグイン関数をエクスポート
106 | module.exports = FrontNote;
--------------------------------------------------------------------------------
/lib/generator/generator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | const Rx = require('rxjs');
3 | const fs = require('fs-extra');
4 | const cpx = require('cpx');
5 | const path = require('path');
6 | const md = require("marked");
7 | const Render = require('../render/render');
8 | const helpers = require('../helper/template-helper');
9 | class Generator {
10 | constructor(data, options) {
11 | this.data = data;
12 | this.options = options;
13 | this.Render = new Render();
14 | }
15 |
16 | generate() {
17 | return this.cleanOutputDir()
18 | .flatMap(() => {
19 | return this.readFile(this.options.template);
20 | }).flatMap((tmpl) => {
21 | return Rx.Observable.combineLatest(
22 | this.writeOverview(tmpl),
23 | this.writePages(tmpl),
24 | this.copyOtherFiles()
25 | );
26 | });
27 | }
28 |
29 | cleanOutputDir() {
30 | return Rx.Observable.create(observer => {
31 | if (!this.options.clean) return observer.next();
32 | fs.remove(this.options.out, () => {
33 | observer.next();
34 | });
35 | });
36 | }
37 |
38 | readFile(filepath) {
39 | const readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);
40 | return readFileAsObservable(filepath, 'utf8');
41 | }
42 | writeFile(filepath,content) {
43 | const writeFileAsObservable = Rx.Observable.bindNodeCallback(fs.outputFile);
44 | return writeFileAsObservable(filepath, content).map(() => {
45 | return filepath;
46 | });
47 | }
48 | copyFile(from,to) {
49 | const copyFileAsObservable = Rx.Observable.bindNodeCallback(cpx.copy);
50 | return copyFileAsObservable(from, to).map(() => {
51 | return to;
52 | });
53 | }
54 |
55 | writeOverview(tmpl) {
56 | //styleguide.mdを読み込み
57 | return this.readFile(this.options.overview)
58 | .flatMap((file) => {
59 | const outputPath = this.options.out + '/index.html';
60 | const rendered = this.Render.render(tmpl, {
61 | title: this.options.title,
62 | current: md.parse(file),
63 | files: this.data,
64 | overview: true,
65 | helpers: helpers,
66 | css: this.Render.generateIncludeCss(this.options.css),
67 | script: this.Render.generateIncludeScript(this.options.script),
68 | params: this.options.params || {}
69 | });
70 | return this.writeFile(outputPath, rendered);
71 | });
72 | }
73 |
74 | writePages(tmpl) {
75 | let observers = this.data.map((section) => {
76 | const outputPath = this.options.out + '/' + section.url;
77 | const rendered = this.Render.render(tmpl, {
78 | title: this.options.title,
79 | current: section,
80 | files: this.data,
81 | overview: false,
82 | helpers: helpers,
83 | css: this.Render.generateIncludeCss(this.options.css),
84 | script: this.Render.generateIncludeScript(this.options.script),
85 | params: this.options.params || {}
86 | });
87 | return this.writeFile(outputPath, rendered);
88 | });
89 | if (observers.length === 0) {
90 | return Rx.Observable.create(observer => {
91 | observer.next();
92 | });
93 | }
94 | return Rx.Observable.combineLatest(observers);
95 | }
96 |
97 | copyOtherFiles() {
98 | if (!this.options.includeAssetPath) {
99 | return Rx.Observable.create(observer => {
100 | observer.next([]);
101 | });
102 | }
103 | let assets = typeof this.options.includeAssetPath === 'string' ? [this.options.includeAssetPath] : this.options.includeAssetPath;
104 |
105 | assets = assets.map((asset) => {
106 | return this.copyFile(asset,path.join(this.options.out,'assets'));
107 | });
108 | return Rx.Observable.combineLatest(assets);
109 | }
110 | }
111 | module.exports = Generator;
--------------------------------------------------------------------------------
/template/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%=title%> - FrontNote
6 |
7 |
8 | <%- css %>
9 |
10 |
11 |
15 |
16 |
30 | <% if(overview) {%>
31 |
32 | <%# index.htmlファイルのとき %>
33 | <%# currentにstyleguide.mdがHTMLとして格納されている %>
34 | <%-current%>
35 |
36 | <% } else { %>
37 |
38 |
39 | <% if (current.overview) { %>
40 | <%-current.overview.title%>
41 | <% } else { %>
42 | <%-current.fileName%>
43 | <% } %>
44 | <%-current.file%>
45 |
46 | <% if (current.overview) { %>
47 |
48 | <% } %>
49 |
50 | <% if(current.colors) { %>
51 | <% current.colors.forEach(function(color) { %>
52 |
53 |
<%- color.name %>
54 |
55 |
56 |
57 | <% }); %>
58 | <% } %>
59 |
60 | <% if(current.sections) { %>
61 | <% current.sections.forEach(function(section) { %>
62 |
63 | <%- section.title %>
64 | <% if(section.attributes) { %>
65 |
66 | <% section.attributes.forEach(function(attribute) {%>
67 | <% if(attribute.toLowerCase() === 'deprecated' || attribute === '非推奨') {%>
68 | - <%=attribute%>
69 | <% } else if(attribute.toLowerCase() === 'todo') { %>
70 | - <%=attribute%>
71 | <% } else { %>
72 | - <%=attribute%>
73 | <% } %>
74 | <% }); %>
75 |
76 | <% } %>
77 |
78 | <% if(section.code) { %>
79 |
80 | <%- section.code %>
81 |
82 | 選択<%= section.code %>
83 | <% } %>
84 |
85 | <% }) %>
86 | <% } %>
87 |
90 |
91 | <% } %>
92 |
93 |
94 |
95 |
96 |
97 |
98 | <%- script %>
99 |
100 |
--------------------------------------------------------------------------------
/test/frontnote.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const assert = require('power-assert');
4 | const fs = require('fs-extra');
5 |
6 | const FrontNote = require('../lib/frontnote');
7 | const files = [
8 | './guide/index.html',
9 | './guide/test-sass-sample.html',
10 | './guide/assets/js/main.js',
11 | './guide/assets/js/ripple-effect.js',
12 | './guide/assets/css/style.css',
13 | './guide/assets/fonts/fontawesome-webfont.ttf',
14 | './guide/assets/fonts/fontawesome-webfont.eot',
15 | './guide/assets/fonts/FontAwesome.otf',
16 | './guide/assets/fonts/fontawesome-webfont.svg',
17 | './guide/assets/fonts/fontawesome-webfont.woff',
18 | './guide/assets/images/favicon.ico',
19 | './guide/assets/images/frontnote.png',
20 | './guide/assets/lib/highlight.pack.js',
21 | './guide/assets/lib/jquery.js',
22 | './guide/assets/lib/jquery.mousewheel.js'
23 | ];
24 | const noAssertFiles = [
25 | './guide/index.html',
26 | './guide/test-sass-sample.html'
27 | ];
28 | require('./const/pattern')();
29 | require('./parser/parser')();
30 | require('./helper/template-helper')();
31 | require('./render/render')();
32 |
33 | describe('frontnote', function () {
34 | let frontnote;
35 | beforeEach(function () {
36 | frontnote = new FrontNote();
37 | });
38 | afterEach(function () {
39 | fs.remove('./guide');
40 | });
41 | it('init', function () {
42 | assert.deepEqual(frontnote.options, {
43 | overview: process.cwd() + '/lib/const/../../styleguide.md',
44 | template: process.cwd() + '/lib/const/../../template/index.ejs',
45 | includeAssetPath: process.cwd() + '/lib/const/../../template/assets/**/*',
46 | css: './style.css',
47 | script: null,
48 | out: process.cwd() + '/guide',
49 | title: 'StyleGuide',
50 | verbose: false,
51 | clean: false,
52 | params: {}
53 | });
54 | });
55 |
56 | it('default render', function (done) {
57 | frontnote.render('./test/sass/*.scss').subscribe(() => {
58 | for (var i = 0, len = files.length; i < len; i++) {
59 | assert(fs.existsSync(files[i]));
60 | }
61 | done();
62 | });
63 | });
64 |
65 | it('cache render', function (done) {
66 | frontnote.render('./test/sass/*.scss').subscribe(() => {
67 | for (var i = 0, len = files.length; i < len; i++) {
68 | assert(fs.existsSync(files[i]));
69 | }
70 | done();
71 | });
72 | });
73 |
74 | it('verbose & clean & array asset path', function (done) {
75 | frontnote = new FrontNote({
76 | clean: true,
77 | verbose: true,
78 | includeAssetPath: ['template/assets/**/*']
79 | });
80 | frontnote.render('./test/sass/*.scss').subscribe(() => {
81 | for (var i = 0, len = files.length; i < len; i++) {
82 | assert(fs.existsSync(files[i]));
83 | }
84 | done();
85 | });
86 | });
87 |
88 | it('no asset path', function (done) {
89 | frontnote = new FrontNote({
90 | clean: true,
91 | includeAssetPath: null
92 | });
93 | frontnote.render('./test/sass/*.scss').subscribe(() => {
94 | for (var i = 0, len = noAssertFiles.length; i < len; i++) {
95 | assert(fs.existsSync(files[i]) === true);
96 | }
97 | done();
98 | });
99 | });
100 |
101 | it('render with overview', function (done) {
102 | frontnote = new FrontNote({
103 | clean: true,
104 | overview: './test/sass/overview.md'
105 | });
106 | frontnote.render('./test/sass/*.scss').subscribe(() => {
107 | for (var i = 0, len = files.length; i < len; i++) {
108 | assert(fs.existsSync(files[i]) === true);
109 | }
110 | done();
111 | });
112 | });
113 |
114 | it('no src', function (done) {
115 | frontnote = new FrontNote({
116 | clean: true,
117 | includeAssetPath: null
118 | });
119 | frontnote.render('./none/*.scss').subscribe(() => {
120 | done();
121 | });
122 | });
123 |
124 | it('multiple entrypoint', function (done) {
125 | frontnote = new FrontNote({
126 | clean: true,
127 | includeAssetPath: null
128 | });
129 | frontnote.render(['./test/sass/partial/**/*.scss', './test/sass/*.scss']).subscribe(() => {
130 | done();
131 | });
132 | });
133 | });
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FrontNote
2 | [](http://badge.fury.io/gh/frontainer%2Ffrontnote)
3 | [](https://travis-ci.org/frontainer/frontnote)
4 | [](https://codeclimate.com/github/frontainer/frontnote)
5 |
6 | 
7 |
8 | StyleGuide Generator
9 | Node.jsを使ったスタイルガイドジェネレーター
10 |
11 | ## Usage - 使い方
12 |
13 | First, install `frontnote`:
14 |
15 | ```shell
16 | npm install frontnote --save-dev
17 | ```
18 |
19 | ```js
20 | var FrontNote = require('frontnote');
21 | var note = new FrontNote({
22 | out: './docs'
23 | });
24 | note.render('path/**/*.css').subscribe(function() {
25 | //callback
26 | });
27 | ```
28 |
29 | ## Plugins - プラグイン
30 |
31 | * Grunt - [grunt-frontnote](https://www.npmjs.org/package/grunt-frontnote)
32 | * Gulp - [gulp-frontnote](https://www.npmjs.org/package/gulp-frontnote)
33 |
34 | ## API
35 |
36 | ### FrontNote(options);
37 |
38 | #### options
39 | Type: `Object`
40 | Default value: `{}`
41 |
42 | Option.
43 | Please see options section for more information.
44 |
45 | オプション
46 | 詳しくはオプションの項をご覧ください。
47 |
48 | ### note.render(files,callback);
49 |
50 | #### files
51 | @Required
52 | Type: `String | Array`
53 | Pattern to be matched.
54 | Please see the [minimatch](https://github.com/isaacs/minimatch) documentation for more details.
55 |
56 | マッチさせたいパターン
57 | 詳しくは[minimatch](https://github.com/isaacs/minimatch)のドキュメントをご覧ください。
58 |
59 | #### callback
60 | Type: `Function`
61 | Default value: `null`
62 |
63 | Call this function when generated style guide.
64 |
65 | スタイルガイドが生成された後に実行するされる関数
66 |
67 | ## Option - オプション
68 |
69 | ### options.title
70 | Type: `String`
71 | Default value: `StyleGuide`
72 |
73 | Title of StyleGuide.
74 |
75 | スタイルガイドのタイトル
76 |
77 | ログを詳細に表示します
78 |
79 | ### options.overview
80 | Type: `String`
81 | Default value: `__dirname + '/styleguide.md''`
82 |
83 | StyleGuide overview file's path.
84 | Overview file is required Markdown format.
85 |
86 | index.htmlに表示するオーバービューファイル(マークダウン)のパス
87 | オーバービューファイルはマークダウン形式です。
88 |
89 | ### options.template
90 | Type: `String`
91 | Default value: `__dirname + '/template''`
92 |
93 | StyleGuide template path.
94 |
95 | スタイルガイドのテンプレートパス
96 |
97 | ### options.includeAssetPath
98 | Type: `String`
99 | Default value: `assets/**/*`
100 |
101 | The path of the file you want to copy the generated directory.
102 |
103 | 生成されたディレクトリにコピーしたいファイルパス
104 |
105 | ### options.out
106 | Type: `String`
107 | Default value: `./frontnote`
108 |
109 | Directory in which to generate a style guide.
110 |
111 | ### options.css
112 | Type: `String|Array`
113 | Default value: `./style.css`
114 |
115 | Path of CSS that you want to read in HTML. In the array or string.
116 |
117 | HTMLに読み込みたいCSSのパス。文字列または配列で指定します。
118 |
119 | ### options.script
120 | Type: `String|Array`
121 | Default value: `null`
122 |
123 | Path of JS that you want to read in HTML. In the array or string.
124 |
125 | HTMLに読み込みたいJSのパス。文字列または配列で指定します。
126 |
127 | ### options.clean
128 | Type: `Boolean`
129 | Default value: `false`
130 |
131 | Clean files and folder from options.out directory.
132 |
133 | 出力先ディレクトリとファイルを削除します。
134 |
135 | ### options.verbose
136 | Type: `Boolean`
137 | Default value: `false`
138 |
139 | Display a detailed log
140 |
141 | ログを詳細に表示します
142 |
143 | ### options.params
144 | Type: `Object`
145 | Default value: `{}`
146 |
147 | Custom variables for using ejs templates.
148 |
149 | ejsテンプレート内で使う任意の変数を定義できます。
150 |
151 | ## Template - テンプレート
152 |
153 | [frontnote-template](https://github.com/frontainer/frontnote-template)
154 |
155 | テンプレートはfrontnote-templateを参考にカスタマイズできます
156 |
157 | ## Comment Style - コメントの書き方
158 |
159 | ### File overview - ファイル概要
160 |
161 | Only 1 comment block in a file.
162 | 1ファイルに1つき1ブロックだけ記述できます。
163 |
164 | /*
165 | #overview
166 | fileoverview title
167 |
168 | fileoverview comment
169 | */
170 |
171 | ### Section - セクション
172 |
173 | Section of style guide.
174 | '@' means attribute of this section. (ex. @deprecated @todo)
175 |
176 | 各スタイルごとに記述します。
177 | @をつけるとこのセクションに属性ラベルをつけることができます(例: @非推奨, @todo)
178 |
179 | /*
180 | #styleguide
181 | style title
182 |
183 | style comment.
184 |
185 | @deprecated
186 | @非推奨
187 | @todo
188 | @your-attribute
189 |
190 | ```
191 | sample code here.
192 | ```
193 | */
194 |
195 |
196 | ### Color Pallet - カラーパレット
197 |
198 | Create color guide
199 | カラーガイドを作成します。
200 |
201 | /*
202 | #colors
203 |
204 | @primary #996600
205 | @secondary #333
206 | @color-name color-code
207 | */
208 |
209 | ## Test
210 |
211 | ```
212 | npm install
213 | npm test
214 | ```
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | ## [2.0.5](https://github.com/frontainer/frontnote/compare/v2.0.4...v2.0.5) (2017-01-31)
3 |
4 |
5 | ### fix
6 |
7 | * render関数に*の含まれたパスを配列で渡すとエラーになる #11 ([e25abcfa9b883d9f62df0a4a6a8da219c5062747](https://github.com/frontainer/frontnote/commit/e25abcfa9b883d9f62df0a4a6a8da219c5062747))
8 | * 使い方のfunction文の修正 ([9dd4a8d401aa4261fc13d960b0f26bb3e1e5f11f](https://github.com/frontainer/frontnote/commit/9dd4a8d401aa4261fc13d960b0f26bb3e1e5f11f))
9 | * 属性ラベル名の例示を修正 ([a083c5b6866f214cc2dbb651176b954d3db1fa29](https://github.com/frontainer/frontnote/commit/a083c5b6866f214cc2dbb651176b954d3db1fa29))
10 |
11 |
12 |
13 |
14 | ## [2.0.4](https://github.com/frontainer/frontnote/compare/v2.0.3...v2.0.4) (2016-10-08)
15 |
16 |
17 | ### fix
18 |
19 | * 対象のcssがない場合にpathエラーになる ([acd94b2b1bd3340459285dce57820f2fa9cacaec](https://github.com/frontainer/frontnote/commit/acd94b2b1bd3340459285dce57820f2fa9cacaec))
20 |
21 |
22 |
23 |
24 | ## [2.0.3](https://github.com/frontainer/frontnote/compare/v2.0.2...v2.0.3) (2016-10-08)
25 |
26 |
27 | ### fix
28 |
29 | * verbose出力をcliではなくlib/frontnote.jsで ([bcabc34af550e6de20510ef890c304179ea80dea](https://github.com/frontainer/frontnote/commit/bcabc34af550e6de20510ef890c304179ea80dea))
30 |
31 |
32 |
33 |
34 | ## [2.0.2](https://github.com/frontainer/frontnote/compare/v2.0.1...v2.0.2) (2016-10-08)
35 |
36 |
37 | ### fix
38 |
39 | * includeAssetPathがデフォルトだと正しく複製されない ([aa8d9f141106b9d0c61cbcf48281b6f0df41e406](https://github.com/frontainer/frontnote/commit/aa8d9f141106b9d0c61cbcf48281b6f0df41e406))
40 |
41 |
42 |
43 |
44 | ## [2.0.1](https://github.com/frontainer/frontnote/compare/v2.0.0...v2.0.1) (2016-10-08)
45 |
46 |
47 | ### fix
48 |
49 | * render関数が配列を許容できるように ([db68cc249348e254a6e6a5826215a9a51c160cd4](https://github.com/frontainer/frontnote/commit/db68cc249348e254a6e6a5826215a9a51c160cd4))
50 |
51 |
52 |
53 |
54 | # [2.0.0](https://github.com/frontainer/frontnote/compare/1.1.2...v2.0.0) (2016-10-08)
55 |
56 |
57 | ### add
58 |
59 | * CLIで実行できるように ([c9708bf30cc1de9ad49eb03e91b5082025e523ab](https://github.com/frontainer/frontnote/commit/c9708bf30cc1de9ad49eb03e91b5082025e523ab))
60 | * ejsに任意の値を渡せるオプションparamsを追加 #7 ([c9e4b88f48fe7af01c4106320350296ad04dbfeb](https://github.com/frontainer/frontnote/commit/c9e4b88f48fe7af01c4106320350296ad04dbfeb))
61 |
62 | ### breaking
63 |
64 | * 動作環境をNode.js 5以上に ([34a01c45deb4d9664d3bec63503459a56c7ee5c5](https://github.com/frontainer/frontnote/commit/34a01c45deb4d9664d3bec63503459a56c7ee5c5))
65 |
66 | ### feat
67 |
68 | * 非同期処理をRxに置き換え、記法をES6に ([8d27e28f12f0288a35af1209d32adf5d2cad75d4](https://github.com/frontainer/frontnote/commit/8d27e28f12f0288a35af1209d32adf5d2cad75d4))
69 |
70 |
71 |
72 |
73 | ## [1.1.1](https://github.com/frontainer/frontnote/compare/1.1.0...1.1.1) (2015-09-06)
74 |
75 |
76 |
77 |
78 |
79 | # [1.1.0](https://github.com/frontainer/frontnote/compare/1.0.2...1.1.0) (2015-06-29)
80 |
81 |
82 |
83 |
84 |
85 | ## [1.0.2](https://github.com/frontainer/frontnote/compare/1.0.1...1.0.2) (2015-06-23)
86 |
87 |
88 |
89 |
90 |
91 | ## [1.0.1](https://github.com/frontainer/frontnote/compare/1.0.0...1.0.1) (2015-05-12)
92 |
93 |
94 |
95 |
96 |
97 | # [1.0.0](https://github.com/frontainer/frontnote/compare/0.1.0...1.0.0) (2015-04-18)
98 |
99 |
100 |
101 |
102 |
103 | # [0.1.0](https://github.com/frontainer/frontnote/compare/0.0.12...0.1.0) (2014-09-14)
104 |
105 |
106 |
107 |
108 |
109 | ## [0.0.12](https://github.com/frontainer/frontnote/compare/0.0.10...0.0.12) (2014-08-26)
110 |
111 |
112 |
113 |
114 |
115 | ## [0.0.10](https://github.com/frontainer/frontnote/compare/0.0.9...0.0.10) (2014-08-25)
116 |
117 |
118 |
119 |
120 |
121 | ## [0.0.9](https://github.com/frontainer/frontnote/compare/0.0.8...0.0.9) (2014-08-25)
122 |
123 |
124 |
125 |
126 |
127 | ## [0.0.8](https://github.com/frontainer/frontnote/compare/0.0.7...0.0.8) (2014-08-24)
128 |
129 |
130 |
131 |
132 |
133 | ## [0.0.7](https://github.com/frontainer/frontnote/compare/0.0.6...0.0.7) (2014-08-22)
134 |
135 |
136 |
137 |
138 |
139 | ## [0.0.6](https://github.com/frontainer/frontnote/compare/0.0.5...0.0.6) (2014-08-22)
140 |
141 |
142 |
143 |
144 |
145 | ## [0.0.5](https://github.com/frontainer/frontnote/compare/0.0.4...0.0.5) (2014-08-20)
146 |
147 |
148 |
149 |
150 |
151 | ## [0.0.4](https://github.com/frontainer/frontnote/compare/0.0.3...0.0.4) (2014-08-19)
152 |
153 |
154 |
155 |
156 |
157 | ## [0.0.3](https://github.com/frontainer/frontnote/compare/0.0.2...0.0.3) (2014-08-18)
158 |
159 |
160 |
161 |
162 |
163 | ## [0.0.2](https://github.com/frontainer/frontnote/compare/0.0.1...0.0.2) (2014-08-17)
164 |
165 |
166 |
167 |
168 |
169 | ## 0.0.1 (2014-08-17)
170 |
171 |
172 |
173 |
174 |
--------------------------------------------------------------------------------
/lib/parser/parser.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | const path = require('path'),
3 | sanitizer = require('sanitizer');
4 |
5 | const PATTERNS = require('../const/pattern.js');
6 |
7 | class Parser {
8 | parse(file, content) {
9 | let overview = content.match(PATTERNS.overview);
10 | if (overview) {
11 | overview = this.parseComments(overview);
12 | if (overview) {
13 | overview = overview[0];
14 | }
15 | }
16 | let colors = content.match(PATTERNS.colors);
17 | if (colors) {
18 | colors = this.parseColors(colors);
19 | }
20 | let comments = content.match(PATTERNS.comment);
21 | if (comments) {
22 | comments = this.parseComments(comments);
23 | }
24 | if (overview || comments || colors) {
25 | let fileName = path.basename(file, path.extname(file));
26 | let relPath = path.relative(__dirname, path.dirname(file));
27 | if (relPath) {
28 | relPath = relPath.replace(/\.\.\//g, '').replace(/\.\.\\/g, '').replace(/\//g, '-').replace(/\\/g, '-') + '-';
29 | }
30 | return {
31 | file: path.relative(process.cwd(),file),
32 | fileName: fileName,
33 | url: relPath + fileName + '.html',
34 | dirs: file.split(path.sep),
35 | ext: path.extname(file),
36 | sections: comments,
37 | overview: overview,
38 | colors: colors
39 | };
40 | }
41 | return null;
42 | }
43 |
44 | /**
45 | * コメントの塊をパースする
46 | * @param comments
47 | * @returns {Array}
48 | */
49 | parseComments(comments) {
50 | let result = [];
51 | for (let i = 0, len = comments.length; i < len; i++) {
52 | let com = this.parseComment(comments[i]);
53 | if (com) {
54 | result.push(com);
55 | }
56 | }
57 | return result;
58 | }
59 |
60 | /**
61 | * カラーコメントの塊をパースする
62 | * @param colors
63 | * @returns {Array}
64 | */
65 | parseColors(colors) {
66 | let result = [];
67 | for (let i = 0, len = colors.length; i < len; i++) {
68 | let color = this.parseColor(colors[i]);
69 | if (color) {
70 | result = result.concat(color);
71 | }
72 | }
73 | return result;
74 | }
75 |
76 | /**
77 | * カラーコメントパースする
78 | * @param color
79 | * @returns {Array}
80 | */
81 | parseColor(color) {
82 | let colors = this.filterPattern(color, PATTERNS.attr, false),
83 | result = [];
84 | for (let i = 0, len = colors.length; i < len; i++) {
85 | let matches = colors[i].match(PATTERNS.color);
86 | if (matches.length > 2) {
87 | result.push({
88 | value: matches[0],
89 | name: matches[1],
90 | color: matches[2]
91 | });
92 | }
93 | }
94 | return result;
95 | }
96 |
97 | /**
98 | * コメントをパースする
99 | * @param comment
100 | * @returns {{title: Array, comment: Array, attributes: (*|Array), markdown: *, html: *, code: *}}
101 | */
102 | parseComment(comment) {
103 | comment = comment.replace(PATTERNS.prefix, '');
104 |
105 | // 属性
106 | let attrs = this.filterPattern(comment, PATTERNS.attr, false);
107 | comment = comment.replace(PATTERNS.attr, '');
108 |
109 | // サンプルコード領域
110 | let code = this.filterPattern(comment, PATTERNS.code);
111 | comment = comment.replace(PATTERNS.code, '');
112 |
113 | return this.sanitize(attrs, code, comment);
114 | }
115 |
116 | /**
117 | * パースされた文字列をサニタイズする
118 | * @param attrs
119 | * @param code
120 | * @param comment
121 | * @returns {{title: Array, comment: Array, attributes: (*|Array), code: *}}
122 | */
123 | sanitize(attrs, code, comment) {
124 | let result = {
125 | title: [],
126 | comment: [],
127 | attributes: attrs || [],
128 | code: code
129 | };
130 |
131 | let lines = comment.split(PATTERNS.splitter),
132 | hasTitle = false,
133 | i = 0,
134 | len = 0;
135 |
136 | for (i = 0, len = lines.length; i < len; i++) {
137 | let line = lines[i];
138 | if (!hasTitle) {
139 | if (line) {
140 | result.title.push(sanitizer.escape(line));
141 | } else if (result.title.length !== 0) {
142 | hasTitle = true;
143 | }
144 | } else if (line) {
145 | result.comment.push(sanitizer.escape(line));
146 | }
147 | }
148 | result.title = result.title.join('
');
149 | result.comment = result.comment.join('
');
150 |
151 | for (i = 0, len = result.attributes.length; i < len; i++) {
152 | result.attributes[i] = sanitizer.escape(result.attributes[i].replace(PATTERNS.attrPrefix, ''));
153 | }
154 | return result;
155 | }
156 |
157 | /**
158 | * 正規表現によって一致した文字列データを返却
159 | * @param str
160 | * @param pattern
161 | * @param trim
162 | * @returns {*}
163 | */
164 | filterPattern(str, pattern, trim) {
165 | if (trim === false) {
166 | return str.match(pattern);
167 | } else {
168 | let match = str.match(pattern);
169 | if (match) {
170 | return match[0].replace(PATTERNS.codeWrapper, '');
171 | }
172 | return null;
173 | }
174 | }
175 | }
176 | module.exports = Parser;
--------------------------------------------------------------------------------
/template/assets/lib/highlight.pack.js:
--------------------------------------------------------------------------------
1 | var hljs=new function(){function e(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,t){var r=e&&e.exec(t);return r&&0==r.index}function n(e){var t=(e.className+" "+(e.parentNode?e.parentNode.className:"")).split(/\s+/);return t=t.map(function(e){return e.replace(/^lang(uage)?-/,"")}),t.filter(function(e){return v(e)||/no(-?)highlight/.test(e)})[0]}function a(e,t){var r={};for(var n in e)r[n]=e[n];if(t)for(var n in t)r[n]=t[n];return r}function i(e){var r=[];return function n(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(r.push({event:"start",offset:a,node:i}),a=n(i,a),t(i).match(/br|hr|img|input/)||r.push({event:"stop",offset:a,node:i}));return a}(e,0),r}function c(r,n,a){function i(){return r.length&&n.length?r[0].offset!=n[0].offset?r[0].offset"}function s(e){l+=""+t(e)+">"}function o(e){("start"==e.event?c:s)(e.node)}for(var u=0,l="",f=[];r.length||n.length;){var h=i();if(l+=e(a.substr(u,h[0].offset-u)),u=h[0].offset,h==r){f.reverse().forEach(s);do o(h.splice(0,1)[0]),h=i();while(h==r&&h.length&&h[0].offset==u);f.reverse().forEach(c)}else"start"==h[0].event?f.push(h[0].node):f.pop(),o(h.splice(0,1)[0])}return l+e(a.substr(u))}function s(e){function t(e){return e&&e.source||e}function r(r,n){return RegExp(t(r),"m"+(e.cI?"i":"")+(n?"g":""))}function n(i,c){if(!i.compiled){if(i.compiled=!0,i.k=i.k||i.bK,i.k){var s={},o=function(t,r){e.cI&&(r=r.toLowerCase()),r.split(" ").forEach(function(e){var r=e.split("|");s[r[0]]=[t,r[1]?Number(r[1]):1]})};"string"==typeof i.k?o("keyword",i.k):Object.keys(i.k).forEach(function(e){o(e,i.k[e])}),i.k=s}i.lR=r(i.l||/\b[A-Za-z0-9_]+\b/,!0),c&&(i.bK&&(i.b="\\b("+i.bK.split(" ").join("|")+")\\b"),i.b||(i.b=/\B|\b/),i.bR=r(i.b),i.e||i.eW||(i.e=/\B|\b/),i.e&&(i.eR=r(i.e)),i.tE=t(i.e)||"",i.eW&&c.tE&&(i.tE+=(i.e?"|":"")+c.tE)),i.i&&(i.iR=r(i.i)),void 0===i.r&&(i.r=1),i.c||(i.c=[]);var u=[];i.c.forEach(function(e){e.v?e.v.forEach(function(t){u.push(a(e,t))}):u.push("self"==e?i:e)}),i.c=u,i.c.forEach(function(e){n(e,i)}),i.starts&&n(i.starts,c);var l=i.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([i.tE,i.i]).map(t).filter(Boolean);i.t=l.length?r(l.join("|"),!0):{exec:function(e){return null}}}}n(e)}function o(t,n,a,i){function c(e,t){for(var n=0;n";return i+=e+'">',i+t+c}function g(){if(!y.k)return e(x);var t="",r=0;y.lR.lastIndex=0;for(var n=y.lR.exec(x);n;){t+=e(x.substr(r,n.index-r));var a=h(y,n);a?(L+=a[1],t+=b(a[0],e(n[0]))):t+=e(n[0]),r=y.lR.lastIndex,n=y.lR.exec(x)}return t+e(x.substr(r))}function p(){if(y.sL&&!m[y.sL])return e(x);var t=y.sL?o(y.sL,x,!0,C):u(x);return y.r>0&&(L+=t.r),"continuous"==y.subLanguageMode&&(C=t.top),b(t.language,t.value,!1,!0)}function d(){return void 0!==y.sL?p():g()}function E(t,r){var n=t.cN?b(t.cN,"",!0):"";t.rB?(w+=n,x=""):t.eB?(w+=e(r)+n,x=""):(w+=n,x=r),y=Object.create(t,{parent:{value:y}})}function M(t,r){if(x+=t,void 0===r)return w+=d(),0;var n=c(r,y);if(n)return w+=d(),E(n,r),n.rB?0:r.length;var a=l(y,r);if(a){var i=y;i.rE||i.eE||(x+=r),w+=d();do y.cN&&(w+=""),L+=y.r,y=y.parent;while(y!=a.parent);return i.eE&&(w+=e(r)),x="",a.starts&&E(a.starts,""),i.rE?0:r.length}if(f(r,y))throw new Error('Illegal lexeme "'+r+'" for mode "'+(y.cN||"")+'"');return x+=r,r.length||1}var R=v(t);if(!R)throw new Error('Unknown language: "'+t+'"');s(R);for(var C,y=i||R,w="",A=y;A!=R;A=A.parent)A.cN&&(w=b(A.cN,"",!0)+w);var x="",L=0;try{for(var I,B,k=0;;){if(y.t.lastIndex=k,I=y.t.exec(n),!I)break;B=M(n.substr(k,I.index-k),I[0]),k=I.index+B}M(n.substr(k));for(var A=y;A.parent;A=A.parent)A.cN&&(w+="");return{r:L,value:w,language:t,top:y}}catch(S){if(-1!=S.message.indexOf("Illegal"))return{r:0,value:e(n)};throw S}}function u(t,r){r=r||N.languages||Object.keys(m);var n={r:0,value:e(t)},a=n;return r.forEach(function(e){if(v(e)){var r=o(e,t,!1);r.language=e,r.r>a.r&&(a=r),r.r>n.r&&(a=n,n=r)}}),a.language&&(n.second_best=a),n}function l(e){return N.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,t,r,n){return t.replace(/\t/g,N.tabReplace)})),N.useBR&&(e=e.replace(/\n/g,"
")),e}function f(e){var t=n(e);if(!/no(-?)highlight/.test(t)){var r;N.useBR?(r=document.createElementNS("http://www.w3.org/1999/xhtml","div"),r.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/
/g,"\n")):r=e;var a=r.textContent,s=t?o(t,a,!0):u(a),f=i(r);if(f.length){var h=document.createElementNS("http://www.w3.org/1999/xhtml","div");h.innerHTML=s.value,s.value=c(f,i(h),a)}s.value=l(s.value),e.innerHTML=s.value,e.className+=" hljs "+(!t&&s.language||""),e.result={language:s.language,re:s.r},s.second_best&&(e.second_best={language:s.second_best.language,re:s.second_best.r})}}function h(e){N=a(N,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,f)}}function g(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function p(e,t){var r=m[e]=t(this);r.aliases&&r.aliases.forEach(function(t){E[t]=e})}function d(){return Object.keys(m)}function v(e){return m[e]||m[E[e]]}var N={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},m={},E={};this.highlight=o,this.highlightAuto=u,this.fixMarkup=l,this.highlightBlock=f,this.configure=h,this.initHighlighting=b,this.initHighlightingOnLoad=g,this.registerLanguage=p,this.listLanguages=d,this.getLanguage=v,this.inherit=a,this.IR="[a-zA-Z][a-zA-Z0-9_]*",this.UIR="[a-zA-Z_][a-zA-Z0-9_]*",this.NR="\\b\\d+(\\.\\d+)?",this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",this.BNR="\\b(0b[01]+)",this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",this.BE={b:"\\\\[\\s\\S]",r:0},this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]},this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]},this.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},this.CLCM={cN:"comment",b:"//",e:"$",c:[this.PWM]},this.CBCM={cN:"comment",b:"/\\*",e:"\\*/",c:[this.PWM]},this.HCM={cN:"comment",b:"#",e:"$",c:[this.PWM]},this.NM={cN:"number",b:this.NR,r:0},this.CNM={cN:"number",b:this.CNR,r:0},this.BNM={cN:"number",b:this.BNR,r:0},this.CSSNM={cN:"number",b:this.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},this.RM={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]},this.TM={cN:"title",b:this.IR,r:0},this.UTM={cN:"title",b:this.UIR,r:0}};hljs.registerLanguage("javascript",function(e){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},e.ASM,e.QSM,e.CLCM,e.CBCM,e.CNM,{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/,e:/>;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[e.CLCM,e.CBCM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+e.IR,r:0}]}}),hljs.registerLanguage("css",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",r={cN:"function",b:t+"\\(",rB:!0,eE:!0,e:"\\("};return{cI:!0,i:"[=/|']",c:[e.CBCM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[r,e.ASM,e.QSM,e.CSSNM]}]},{cN:"tag",b:t,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[e.CBCM,{cN:"rule",b:"[^\\s]",rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{cN:"value",eW:!0,eE:!0,c:[r,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}),hljs.registerLanguage("xml",function(e){var t="[A-Za-z0-9\\._:-]+",r={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"},n={eW:!0,i:/,r:0,c:[r,{cN:"attribute",b:t,r:0},{b:"=",r:0,c:[{cN:"value",v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",rE:!0,sL:"css"}},{cN:"tag",b:"",rE:!0,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},r,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"?",e:"/?>",c:[{cN:"title",b:/[^ \/><\n\t]+/,r:0},n]}]}});
--------------------------------------------------------------------------------
/template/assets/css/style.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";.fn-container,.fn-content,.fn-header{box-sizing:border-box}body,html{width:100%;height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}.fn-article,.fn-attribute,.fn-attribute-item,.fn-code,.fn-color-name,.fn-color-pallet,.fn-color-panel,.fn-comment,.fn-container,.fn-content,.fn-content img,.fn-copyright,.fn-drawer-trigger,.fn-header,.fn-heading2,.fn-heading3,.fn-icon,.fn-icon-link,.fn-link,.fn-menu,.fn-overview,.fn-overview blockquote,.fn-overview code,.fn-overview div,.fn-overview h1,.fn-overview h2,.fn-overview h3,.fn-overview h4,.fn-overview h5,.fn-overview h6,.fn-overview img,.fn-overview li,.fn-overview ol,.fn-overview p,.fn-overview pre,.fn-overview strong,.fn-overview ul,.fn-pagetop,.fn-pre,.fn-preview,.fn-reset,.fn-reset :hover,.fn-reset:after,.fn-reset:before,.fn-separate,.fn-sidebar,.fn-sub-heading,.fn-title,.fn-tooltip,body,html,svg.fn-ripple{margin:0;padding:0;border:0;font:inherit;font-family:"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;font-size:14px;vertical-align:baseline;line-height:1;list-style:none;quotes:none;border-collapse:collapse;border-spacing:0;color:#333;text-decoration:none;background:0 0}.fn-article:after,.fn-article:before,.fn-attribute-item:after,.fn-attribute-item:before,.fn-attribute:after,.fn-attribute:before,.fn-code:after,.fn-code:before,.fn-color-name:after,.fn-color-name:before,.fn-color-pallet:after,.fn-color-pallet:before,.fn-color-panel:after,.fn-color-panel:before,.fn-comment:after,.fn-comment:before,.fn-container:after,.fn-container:before,.fn-content img:after,.fn-content img:before,.fn-content:after,.fn-content:before,.fn-copyright:after,.fn-copyright:before,.fn-drawer-trigger:after,.fn-drawer-trigger:before,.fn-header:after,.fn-header:before,.fn-heading2:after,.fn-heading2:before,.fn-heading3:after,.fn-heading3:before,.fn-icon-link:after,.fn-icon-link:before,.fn-icon:after,.fn-icon:before,.fn-link:after,.fn-link:before,.fn-menu:after,.fn-menu:before,.fn-overview blockquote:after,.fn-overview blockquote:before,.fn-overview code:after,.fn-overview code:before,.fn-overview div:after,.fn-overview div:before,.fn-overview h1:after,.fn-overview h1:before,.fn-overview h2:after,.fn-overview h2:before,.fn-overview h3:after,.fn-overview h3:before,.fn-overview h4:after,.fn-overview h4:before,.fn-overview h5:after,.fn-overview h5:before,.fn-overview h6:after,.fn-overview h6:before,.fn-overview img:after,.fn-overview img:before,.fn-overview li:after,.fn-overview li:before,.fn-overview ol:after,.fn-overview ol:before,.fn-overview p:after,.fn-overview p:before,.fn-overview pre:after,.fn-overview pre:before,.fn-overview strong:after,.fn-overview strong:before,.fn-overview ul:after,.fn-overview ul:before,.fn-overview:after,.fn-overview:before,.fn-pagetop:after,.fn-pagetop:before,.fn-pre:after,.fn-pre:before,.fn-preview:after,.fn-preview:before,.fn-reset :hover:after,.fn-reset :hover:before,.fn-reset:after,.fn-reset:before,.fn-separate:after,.fn-separate:before,.fn-sidebar:after,.fn-sidebar:before,.fn-sub-heading:after,.fn-sub-heading:before,.fn-title:after,.fn-title:before,.fn-tooltip:after,.fn-tooltip:before,body:after,body:before,html:after,html:before,svg.fn-ripple:after,svg.fn-ripple:before{content:'';content:none}.fn-article :hover,.fn-attribute :hover,.fn-attribute-item :hover,.fn-code :hover,.fn-color-name :hover,.fn-color-pallet :hover,.fn-color-panel :hover,.fn-comment :hover,.fn-container :hover,.fn-content :hover,.fn-copyright :hover,.fn-drawer-trigger :hover,.fn-header :hover,.fn-heading2 :hover,.fn-heading3 :hover,.fn-icon :hover,.fn-icon-link :hover,.fn-link :hover,.fn-menu :hover,.fn-overview :hover,.fn-pagetop :hover,.fn-pre :hover,.fn-preview :hover,.fn-reset :hover,.fn-reset:after :hover,.fn-reset:before :hover,.fn-separate :hover,.fn-sidebar :hover,.fn-sub-heading :hover,.fn-title :hover,.fn-tooltip :hover,body :hover,html :hover,svg.fn-ripple :hover{color:#333;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}.fn-attribute:after,.fn-attribute:before,.fn-container:after,.fn-container:before,.fn-header:after,.fn-header:before{content:" ";display:table}.fn-attribute:after,.fn-container:after,.fn-header:after{clear:both}.fn-code,.fn-pre{font-size:14px;font-family:Consolas,'Liberation Mono',Courier,monospace;color:#333;background:#f8f8f8;border-radius:3px}.fn-pre{border:1px solid #ccc;word-wrap:break-word;line-height:19px;margin-bottom:20px}.fn-pre .fn-code{border:0;padding:0;margin:0;border-radius:0}.fn-pre .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.fn-pre .diff .hljs-header,.fn-pre .hljs-comment,.fn-pre .hljs-javadoc,.fn-pre .hljs-template_comment{color:#998;font-style:italic}.fn-pre .css .rule .hljs-keyword,.fn-pre .hljs-keyword,.fn-pre .hljs-request,.fn-pre .hljs-status,.fn-pre .hljs-subst,.fn-pre .hljs-winutils,.fn-pre .javascript .hljs-title,.fn-pre .nginx .hljs-title{color:#333;font-weight:700}.fn-pre .hljs-hexcolor,.fn-pre .hljs-number,.fn-pre .ruby .hljs-constant{color:teal}.fn-pre .hljs-dartdoc,.fn-pre .hljs-phpdoc,.fn-pre .hljs-string,.fn-pre .hljs-tag .hljs-value,.fn-pre .tex .hljs-formula{color:#d14}.fn-pre .hljs-id,.fn-pre .hljs-title,.fn-pre .scss .hljs-preprocessor{color:#900;font-weight:700}.fn-pre .hljs-list .hljs-keyword,.fn-pre .hljs-subst,.fn-pre .javascript .hljs-title{font-weight:400}.fn-pre .hljs-class .hljs-title,.fn-pre .hljs-type,.fn-pre .tex .hljs-command,.fn-pre .vhdl .hljs-literal{color:#458;font-weight:700}.fn-pre .django .hljs-tag .hljs-keyword,.fn-pre .hljs-rules .hljs-property,.fn-pre .hljs-tag,.fn-pre .hljs-tag .hljs-title{color:navy;font-weight:400}.fn-pre .hljs-attribute,.fn-pre .hljs-variable,.fn-pre .lisp .hljs-body{color:teal}.fn-pre .hljs-regexp{color:#009926}.fn-pre .clojure .hljs-keyword,.fn-pre .hljs-prompt,.fn-pre .hljs-symbol,.fn-pre .lisp .hljs-keyword,.fn-pre .ruby .hljs-symbol .hljs-string,.fn-pre .scheme .hljs-keyword,.fn-pre .tex .hljs-special{color:#990073}.fn-pre .hljs-built_in{color:#0086b3}.fn-pre .hljs-cdata,.fn-pre .hljs-doctype,.fn-pre .hljs-pi,.fn-pre .hljs-pragma,.fn-pre .hljs-preprocessor,.fn-pre .hljs-shebang{color:#999;font-weight:700}.fn-pre .hljs-deletion{background:#fdd}.fn-pre .hljs-addition{background:#dfd}.fn-pre .diff .hljs-change{background:#0086b3}.fn-pre .hljs-chunk{color:#aaa}.fn-header{position:fixed;top:0;left:0;z-index:3;width:100%;background:#3e50b4;height:64px;padding:0 20px;box-shadow:0 5px 6px -3px rgba(0,0,0,.4)}.fn-header .fn-link{color:#fff}.fn-header .fn-title{color:#fff;letter-spacing:2px;line-height:64px;font-size:24px;float:left;margin:0}.fn-header .fn-title a{color:#fff;text-decoration:none}.fn-header .fn-copyright{color:#fff;float:right;line-height:64px;font-size:11px}.fn-header .fn-drawer-trigger{float:left;line-height:64px;color:#fff;font-size:20px;cursor:pointer}.fn-header .fn-icon-link{overflow:hidden;border-radius:50px;padding:20px;color:#fff}.fn-container{width:100%;height:100%;padding-top:64px;position:relative}.fn-container .fn-pagetop{position:fixed;right:15px;bottom:15px;-webkit-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition:400ms cubic-bezier(.17,.67,.47,1.31)-webkit-transform;transition:400ms cubic-bezier(.17,.67,.47,1.31)transform}.fn-container .fn-pagetop .fn-icon{background:#fff;padding:15px;border-radius:50px;box-shadow:0 0 6px rgba(0,0,0,.4)}.fn-container .fn-pagetop .fn-icon:hover,.fn-sidebar{background:#f8f8f8}.fn-container .fn-pagetop.fn-show{-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1)}.fn-sidebar{overflow:auto;padding-top:64px;width:250px;height:100%;position:fixed;z-index:2;top:0;left:0;box-shadow:1px 0 2px #eee;-webkit-transition:300ms cubic-bezier(.55,0,.1,1)margin;transition:300ms cubic-bezier(.55,0,.1,1)margin}.fn-sidebar .fn-menu{position:relative;padding:20px 12px;display:block;border-bottom:1px solid #ccc;box-shadow:0 1px 0 #fff}.fn-sidebar .fn-menu.fn-is-active{background:#eee}.fn-sidebar .fn-menu.fn-is-active::after{font-size:12px;font-family:fontawesome;content:"";position:absolute;right:1em}.fn-sidebar .fn-separate{padding:10px 0;border:0;display:block}.fn-content{width:100%;padding:20px 20px 20px 270px;-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transition-timing-function:cubic-bezier(.55,0,.1,1);transition-timing-function:cubic-bezier(.55,0,.1,1);-webkit-transition-property:margin,padding,-webkit-filter,margin,padding,filter;transition-property:margin,padding,filter}.fn-heading2{font-size:32px;margin:.5em 0 1em}.fn-heading2 .fn-sub-heading{font-size:14px;color:#666;word-break:break-all}.fn-heading3{font-size:24px;margin:2em 0 1em}.fn-attribute{display:block}.fn-attribute .fn-attribute-item{font-size:12px;display:inline-block;padding:4px 10px;border-radius:3px;box-shadow:rgba(0,0,0,.14902)0 1px 1px 0,rgba(0,0,0,.09804)0 1px 2px 0;margin-right:5px;background:#f8f8f8}.fn-attribute .fn-attribute-item.fn-attribute-deprecated{background:#cb4437;color:#fff}.fn-attribute .fn-attribute-item.fn-attribute-todo{background:#f4b400;color:#fff}.fn-comment{font-size:14px;margin:1em 0;line-height:1.4}.fn-preview{position:relative;padding:45px 20px 30px;border:1px solid #ccc;border-radius:2px;margin:2em 0}.fn-pre::after,.fn-preview::after{font-size:12px;color:#999;border-radius:0 0 3px}.fn-preview::after{content:'preview';background:#eee;padding:4px 10px;position:absolute;top:0;left:0}.fn-pre{position:relative;padding:34px 20px 22px;background:#fafafa}.fn-pre .fn-icon{position:absolute;top:.5em;right:1em;cursor:pointer}.fn-pre::after,svg.fn-ripple{position:absolute;top:0;left:0}.fn-pre .fn-code{display:block;line-height:1.4;overflow:auto}.fn-overflow,svg.fn-ripple{overflow:hidden}.fn-pre .fn-code:focus{outline:0}.fn-pre::after{content:'code';background:#eee;padding:4px 10px}svg.fn-ripple{pointer-events:none;width:100%;height:100%;z-index:-1}svg.fn-ripple circle{fill:rgba(255,255,255,.7)}.fn-mobile-visible{display:none}.fn-pc-visible{display:block}.fn-overflow .fn-sidebar{margin-left:0}.fn-overflow .fn-content{padding:20px;margin-left:250px;-webkit-filter:blur(5px);filter:blur(5px)}.fn-overflow .fn-content::after{content:'';position:absolute;top:-5px;left:-5px;right:-5px;bottom:-5px;background:rgba(255,255,255,.3)}.fn-tooltip{position:fixed;top:0;left:0;display:none;background:#fff;border-radius:3px;box-shadow:0 0 6px #999;padding:.25em 1em;font-size:16px}.fn-color-pallet{margin:0 12px 12px 0;display:inline-block}.fn-color-pallet .fn-color-name{font-size:16px;white-space:nowrap}.fn-color-pallet .fn-color-panel{display:block;height:100px;border:1px solid #ccc}.fn-overview blockquote,.fn-overview code,.fn-overview div,.fn-overview h1,.fn-overview h2,.fn-overview h3,.fn-overview h4,.fn-overview h5,.fn-overview h6,.fn-overview img,.fn-overview li,.fn-overview ol,.fn-overview p,.fn-overview pre,.fn-overview strong,.fn-overview ul{line-height:1.5}.fn-overview h1{font-size:3em}.fn-overview h2{font-size:2.25em}.fn-overview h3{font-size:2em}.fn-overview h4{font-size:1.5em}.fn-overview h5{font-size:1.3em}.fn-overview h6{font-size:1em}.fn-overview blockquote{position:relative;border:1px solid #eee;padding:30px;margin:10px 0}.fn-overview blockquote:after,.fn-overview blockquote:before{font-size:48px;position:absolute;color:#eee}.fn-overview blockquote:before{line-height:1;content:'“';top:5px;left:5px}.fn-overview blockquote:after{content:'”';bottom:5px;right:5px;line-height:0}.fn-overview pre{background:#f8f8f8;border:1px solid #ccc;margin:10px 0;padding:15px}.fn-overview b,.fn-overview strong{font-weight:700}.fn-overview ol,.fn-overview ul{margin-bottom:1em;padding-left:20px}.fn-overview ul,.fn-overview ul li{list-style-type:disc}.fn-overview ol,.fn-overview ol li{list-style-type:decimal}@media screen and (max-width:480px){.fn-copyright{display:none}}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.1.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0)format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff?v=4.1.0)format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.1.0)format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular)format("svg");font-weight:400;font-style:normal}.fn-icon{position:relative;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fn-icon.fn-glass:before{content:""}.fn-icon.fn-music:before{content:""}.fn-icon.fn-search:before{content:""}.fn-icon.fn-envelope-o:before{content:""}.fn-icon.fn-heart:before{content:""}.fn-icon.fn-star:before{content:""}.fn-icon.fn-star-o:before{content:""}.fn-icon.fn-user:before{content:""}.fn-icon.fn-film:before{content:""}.fn-icon.fn-th-large:before{content:""}.fn-icon.fn-th:before{content:""}.fn-icon.fn-th-list:before{content:""}.fn-icon.fn-check:before{content:""}.fn-icon.fn-times:before{content:""}.fn-icon.fn-search-plus:before{content:""}.fn-icon.fn-search-minus:before{content:""}.fn-icon.fn-power-off:before{content:""}.fn-icon.fn-signal:before{content:""}.fn-icon.fn-cog:before,.fn-icon.fn-gear:before{content:""}.fn-icon.fn-trash-o:before{content:""}.fn-icon.fn-home:before{content:""}.fn-icon.fn-file-o:before{content:""}.fn-icon.fn-clock-o:before{content:""}.fn-icon.fn-road:before{content:""}.fn-icon.fn-download:before{content:""}.fn-icon.fn-arrow-circle-o-down:before{content:""}.fn-icon.fn-arrow-circle-o-up:before{content:""}.fn-icon.fn-inbox:before{content:""}.fn-icon.fn-play-circle-o:before{content:""}.fn-icon.fn-repeat:before,.fn-icon.fn-rotate-right:before{content:""}.fn-icon.fn-refresh:before{content:""}.fn-icon.fn-list-alt:before{content:""}.fn-icon.fn-lock:before{content:""}.fn-icon.fn-flag:before{content:""}.fn-icon.fn-headphones:before{content:""}.fn-icon.fn-volume-off:before{content:""}.fn-icon.fn-volume-down:before{content:""}.fn-icon.fn-volume-up:before{content:""}.fn-icon.fn-qrcode:before{content:""}.fn-icon.fn-barcode:before{content:""}.fn-icon.fn-tag:before{content:""}.fn-icon.fn-tags:before{content:""}.fn-icon.fn-book:before{content:""}.fn-icon.fn-bookmark:before{content:""}.fn-icon.fn-print:before{content:""}.fn-icon.fn-camera:before{content:""}.fn-icon.fn-font:before{content:""}.fn-icon.fn-bold:before{content:""}.fn-icon.fn-italic:before{content:""}.fn-icon.fn-text-height:before{content:""}.fn-icon.fn-text-width:before{content:""}.fn-icon.fn-align-left:before{content:""}.fn-icon.fn-align-center:before{content:""}.fn-icon.fn-align-right:before{content:""}.fn-icon.fn-align-justify:before{content:""}.fn-icon.fn-list:before{content:""}.fn-icon.fn-dedent:before,.fn-icon.fn-outdent:before{content:""}.fn-icon.fn-indent:before{content:""}.fn-icon.fn-video-camera:before{content:""}.fn-icon.fn-image:before,.fn-icon.fn-photo:before,.fn-icon.fn-picture-o:before{content:""}.fn-icon.fn-pencil:before{content:""}.fn-icon.fn-map-marker:before{content:""}.fn-icon.fn-adjust:before{content:""}.fn-icon.fn-tint:before{content:""}.fn-icon.fn-edit:before,.fn-icon.fn-pencil-square-o:before{content:""}.fn-icon.fn-share-square-o:before{content:""}.fn-icon.fn-check-square-o:before{content:""}.fn-icon.fn-arrows:before{content:""}.fn-icon.fn-step-backward:before{content:""}.fn-icon.fn-fast-backward:before{content:""}.fn-icon.fn-backward:before{content:""}.fn-icon.fn-play:before{content:""}.fn-icon.fn-pause:before{content:""}.fn-icon.fn-stop:before{content:""}.fn-icon.fn-forward:before{content:""}.fn-icon.fn-fast-forward:before{content:""}.fn-icon.fn-step-forward:before{content:""}.fn-icon.fn-eject:before{content:""}.fn-icon.fn-chevron-left:before{content:""}.fn-icon.fn-chevron-right:before{content:""}.fn-icon.fn-plus-circle:before{content:""}.fn-icon.fn-minus-circle:before{content:""}.fn-icon.fn-times-circle:before{content:""}.fn-icon.fn-check-circle:before{content:""}.fn-icon.fn-question-circle:before{content:""}.fn-icon.fn-info-circle:before{content:""}.fn-icon.fn-crosshairs:before{content:""}.fn-icon.fn-times-circle-o:before{content:""}.fn-icon.fn-check-circle-o:before{content:""}.fn-icon.fn-ban:before{content:""}.fn-icon.fn-arrow-left:before{content:""}.fn-icon.fn-arrow-right:before{content:""}.fn-icon.fn-arrow-up:before{content:""}.fn-icon.fn-arrow-down:before{content:""}.fn-icon.fn-mail-forward:before,.fn-icon.fn-share:before{content:""}.fn-icon.fn-expand:before{content:""}.fn-icon.fn-compress:before{content:""}.fn-icon.fn-plus:before{content:""}.fn-icon.fn-minus:before{content:""}.fn-icon.fn-asterisk:before{content:""}.fn-icon.fn-exclamation-circle:before{content:""}.fn-icon.fn-gift:before{content:""}.fn-icon.fn-leaf:before{content:""}.fn-icon.fn-fire:before{content:""}.fn-icon.fn-eye:before{content:""}.fn-icon.fn-eye-slash:before{content:""}.fn-icon.fn-exclamation-triangle:before,.fn-icon.fn-warning:before{content:""}.fn-icon.fn-plane:before{content:""}.fn-icon.fn-calendar:before{content:""}.fn-icon.fn-random:before{content:""}.fn-icon.fn-comment:before{content:""}.fn-icon.fn-magnet:before{content:""}.fn-icon.fn-chevron-up:before{content:""}.fn-icon.fn-chevron-down:before{content:""}.fn-icon.fn-retweet:before{content:""}.fn-icon.fn-shopping-cart:before{content:""}.fn-icon.fn-folder:before{content:""}.fn-icon.fn-folder-open:before{content:""}.fn-icon.fn-arrows-v:before{content:""}.fn-icon.fn-arrows-h:before{content:""}.fn-icon.fn-bar-chart-o:before{content:""}.fn-icon.fn-twitter-square:before{content:""}.fn-icon.fn-facebook-square:before{content:""}.fn-icon.fn-camera-retro:before{content:""}.fn-icon.fn-key:before{content:""}.fn-icon.fn-cogs:before,.fn-icon.fn-gears:before{content:""}.fn-icon.fn-comments:before{content:""}.fn-icon.fn-thumbs-o-up:before{content:""}.fn-icon.fn-thumbs-o-down:before{content:""}.fn-icon.fn-star-half:before{content:""}.fn-icon.fn-heart-o:before{content:""}.fn-icon.fn-sign-out:before{content:""}.fn-icon.fn-linkedin-square:before{content:""}.fn-icon.fn-thumb-tack:before{content:""}.fn-icon.fn-external-link:before{content:""}.fn-icon.fn-sign-in:before{content:""}.fn-icon.fn-trophy:before{content:""}.fn-icon.fn-github-square:before{content:""}.fn-icon.fn-upload:before{content:""}.fn-icon.fn-lemon-o:before{content:""}.fn-icon.fn-phone:before{content:""}.fn-icon.fn-square-o:before{content:""}.fn-icon.fn-bookmark-o:before{content:""}.fn-icon.fn-phone-square:before{content:""}.fn-icon.fn-twitter:before{content:""}.fn-icon.fn-facebook:before{content:""}.fn-icon.fn-github:before{content:""}.fn-icon.fn-unlock:before{content:""}.fn-icon.fn-credit-card:before{content:""}.fn-icon.fn-rss:before{content:""}.fn-icon.fn-hdd-o:before{content:""}.fn-icon.fn-bullhorn:before{content:""}.fn-icon.fn-bell:before{content:""}.fn-icon.fn-certificate:before{content:""}.fn-icon.fn-hand-o-right:before{content:""}.fn-icon.fn-hand-o-left:before{content:""}.fn-icon.fn-hand-o-up:before{content:""}.fn-icon.fn-hand-o-down:before{content:""}.fn-icon.fn-arrow-circle-left:before{content:""}.fn-icon.fn-arrow-circle-right:before{content:""}.fn-icon.fn-arrow-circle-up:before{content:""}.fn-icon.fn-arrow-circle-down:before{content:""}.fn-icon.fn-globe:before{content:""}.fn-icon.fn-wrench:before{content:""}.fn-icon.fn-tasks:before{content:""}.fn-icon.fn-filter:before{content:""}.fn-icon.fn-briefcase:before{content:""}.fn-icon.fn-arrows-alt:before{content:""}.fn-icon.fn-group:before,.fn-icon.fn-users:before{content:""}.fn-icon.fn-chain:before,.fn-icon.fn-link:before{content:""}.fn-icon.fn-cloud:before{content:""}.fn-icon.fn-flask:before{content:""}.fn-icon.fn-cut:before,.fn-icon.fn-scissors:before{content:""}.fn-icon.fn-copy:before,.fn-icon.fn-files-o:before{content:""}.fn-icon.fn-paperclip:before{content:""}.fn-icon.fn-floppy-o:before,.fn-icon.fn-save:before{content:""}.fn-icon.fn-square:before{content:""}.fn-icon.fn-bars:before,.fn-icon.fn-navicon:before,.fn-icon.fn-reorder:before{content:""}.fn-icon.fn-list-ul:before{content:""}.fn-icon.fn-list-ol:before{content:""}.fn-icon.fn-strikethrough:before{content:""}.fn-icon.fn-underline:before{content:""}.fn-icon.fn-table:before{content:""}.fn-icon.fn-magic:before{content:""}.fn-icon.fn-truck:before{content:""}.fn-icon.fn-pinterest:before{content:""}.fn-icon.fn-pinterest-square:before{content:""}.fn-icon.fn-google-plus-square:before{content:""}.fn-icon.fn-google-plus:before{content:""}.fn-icon.fn-money:before{content:""}.fn-icon.fn-caret-down:before{content:""}.fn-icon.fn-caret-up:before{content:""}.fn-icon.fn-caret-left:before{content:""}.fn-icon.fn-caret-right:before{content:""}.fn-icon.fn-columns:before{content:""}.fn-icon.fn-sort:before,.fn-icon.fn-unsorted:before{content:""}.fn-icon.fn-sort-desc:before,.fn-icon.fn-sort-down:before{content:""}.fn-icon.fn-sort-asc:before,.fn-icon.fn-sort-up:before{content:""}.fn-icon.fn-envelope:before{content:""}.fn-icon.fn-linkedin:before{content:""}.fn-icon.fn-rotate-left:before,.fn-icon.fn-undo:before{content:""}.fn-icon.fn-gavel:before,.fn-icon.fn-legal:before{content:""}.fn-icon.fn-dashboard:before,.fn-icon.fn-tachometer:before{content:""}.fn-icon.fn-comment-o:before{content:""}.fn-icon.fn-comments-o:before{content:""}.fn-icon.fn-bolt:before,.fn-icon.fn-flash:before{content:""}.fn-icon.fn-sitemap:before{content:""}.fn-icon.fn-umbrella:before{content:""}.fn-icon.fn-clipboard:before,.fn-icon.fn-paste:before{content:""}.fn-icon.fn-lightbulb-o:before{content:""}.fn-icon.fn-exchange:before{content:""}.fn-icon.fn-cloud-download:before{content:""}.fn-icon.fn-cloud-upload:before{content:""}.fn-icon.fn-user-md:before{content:""}.fn-icon.fn-stethoscope:before{content:""}.fn-icon.fn-suitcase:before{content:""}.fn-icon.fn-bell-o:before{content:""}.fn-icon.fn-coffee:before{content:""}.fn-icon.fn-cutlery:before{content:""}.fn-icon.fn-file-text-o:before{content:""}.fn-icon.fn-building-o:before{content:""}.fn-icon.fn-hospital-o:before{content:""}.fn-icon.fn-ambulance:before{content:""}.fn-icon.fn-medkit:before{content:""}.fn-icon.fn-fighter-jet:before{content:""}.fn-icon.fn-beer:before{content:""}.fn-icon.fn-h-square:before{content:""}.fn-icon.fn-plus-square:before{content:""}.fn-icon.fn-angle-double-left:before{content:""}.fn-icon.fn-angle-double-right:before{content:""}.fn-icon.fn-angle-double-up:before{content:""}.fn-icon.fn-angle-double-down:before{content:""}.fn-icon.fn-angle-left:before{content:""}.fn-icon.fn-angle-right:before{content:""}.fn-icon.fn-angle-up:before{content:""}.fn-icon.fn-angle-down:before{content:""}.fn-icon.fn-desktop:before{content:""}.fn-icon.fn-laptop:before{content:""}.fn-icon.fn-tablet:before{content:""}.fn-icon.fn-mobile-phone:before,.fn-icon.fn-mobile:before{content:""}.fn-icon.fn-circle-o:before{content:""}.fn-icon.fn-quote-left:before{content:""}.fn-icon.fn-quote-right:before{content:""}.fn-icon.fn-spinner:before{content:""}.fn-icon.fn-circle:before{content:""}.fn-icon.fn-mail-reply:before,.fn-icon.fn-reply:before{content:""}.fn-icon.fn-github-alt:before{content:""}.fn-icon.fn-folder-o:before{content:""}.fn-icon.fn-folder-open-o:before{content:""}.fn-icon.fn-smile-o:before{content:""}.fn-icon.fn-frown-o:before{content:""}.fn-icon.fn-meh-o:before{content:""}.fn-icon.fn-gamepad:before{content:""}.fn-icon.fn-keyboard-o:before{content:""}.fn-icon.fn-flag-o:before{content:""}.fn-icon.fn-flag-checkered:before{content:""}.fn-icon.fn-terminal:before{content:""}.fn-icon.fn-code:before{content:""}.fn-icon.fn-mail-reply-all:before,.fn-icon.fn-reply-all:before{content:""}.fn-icon.fn-star-half-empty:before,.fn-icon.fn-star-half-full:before,.fn-icon.fn-star-half-o:before{content:""}.fn-icon.fn-location-arrow:before{content:""}.fn-icon.fn-crop:before{content:""}.fn-icon.fn-code-fork:before{content:""}.fn-icon.fn-chain-broken:before,.fn-icon.fn-unlink:before{content:""}.fn-icon.fn-question:before{content:""}.fn-icon.fn-info:before{content:""}.fn-icon.fn-exclamation:before{content:""}.fn-icon.fn-superscript:before{content:""}.fn-icon.fn-subscript:before{content:""}.fn-icon.fn-eraser:before{content:""}.fn-icon.fn-puzzle-piece:before{content:""}.fn-icon.fn-microphone:before{content:""}.fn-icon.fn-microphone-slash:before{content:""}.fn-icon.fn-shield:before{content:""}.fn-icon.fn-calendar-o:before{content:""}.fn-icon.fn-fire-extinguisher:before{content:""}.fn-icon.fn-rocket:before{content:""}.fn-icon.fn-maxcdn:before{content:""}.fn-icon.fn-chevron-circle-left:before{content:""}.fn-icon.fn-chevron-circle-right:before{content:""}.fn-icon.fn-chevron-circle-up:before{content:""}.fn-icon.fn-chevron-circle-down:before{content:""}.fn-icon.fn-html5:before{content:""}.fn-icon.fn-css3:before{content:""}.fn-icon.fn-anchor:before{content:""}.fn-icon.fn-unlock-alt:before{content:""}.fn-icon.fn-bullseye:before{content:""}.fn-icon.fn-ellipsis-h:before{content:""}.fn-icon.fn-ellipsis-v:before{content:""}.fn-icon.fn-rss-square:before{content:""}.fn-icon.fn-play-circle:before{content:""}.fn-icon.fn-ticket:before{content:""}.fn-icon.fn-minus-square:before{content:""}.fn-icon.fn-minus-square-o:before{content:""}.fn-icon.fn-level-up:before{content:""}.fn-icon.fn-level-down:before{content:""}.fn-icon.fn-check-square:before{content:""}.fn-icon.fn-pencil-square:before{content:""}.fn-icon.fn-external-link-square:before{content:""}.fn-icon.fn-share-square:before{content:""}.fn-icon.fn-compass:before{content:""}.fn-icon.fn-caret-square-o-down:before,.fn-icon.fn-toggle-down:before{content:""}.fn-icon.fn-caret-square-o-up:before,.fn-icon.fn-toggle-up:before{content:""}.fn-icon.fn-caret-square-o-right:before,.fn-icon.fn-toggle-right:before{content:""}.fn-icon.fn-eur:before,.fn-icon.fn-euro:before{content:""}.fn-icon.fn-gbp:before{content:""}.fn-icon.fn-dollar:before,.fn-icon.fn-usd:before{content:""}.fn-icon.fn-inr:before,.fn-icon.fn-rupee:before{content:""}.fn-icon.fn-cny:before,.fn-icon.fn-jpy:before,.fn-icon.fn-rmb:before,.fn-icon.fn-yen:before{content:""}.fn-icon.fn-rouble:before,.fn-icon.fn-rub:before,.fn-icon.fn-ruble:before{content:""}.fn-icon.fn-krw:before,.fn-icon.fn-won:before{content:""}.fn-icon.fn-bitcoin:before,.fn-icon.fn-btc:before{content:""}.fn-icon.fn-file:before{content:""}.fn-icon.fn-file-text:before{content:""}.fn-icon.fn-sort-alpha-asc:before{content:""}.fn-icon.fn-sort-alpha-desc:before{content:""}.fn-icon.fn-sort-amount-asc:before{content:""}.fn-icon.fn-sort-amount-desc:before{content:""}.fn-icon.fn-sort-numeric-asc:before{content:""}.fn-icon.fn-sort-numeric-desc:before{content:""}.fn-icon.fn-thumbs-up:before{content:""}.fn-icon.fn-thumbs-down:before{content:""}.fn-icon.fn-youtube-square:before{content:""}.fn-icon.fn-youtube:before{content:""}.fn-icon.fn-xing:before{content:""}.fn-icon.fn-xing-square:before{content:""}.fn-icon.fn-youtube-play:before{content:""}.fn-icon.fn-dropbox:before{content:""}.fn-icon.fn-stack-overflow:before{content:""}.fn-icon.fn-instagram:before{content:""}.fn-icon.fn-flickr:before{content:""}.fn-icon.fn-adn:before{content:""}.fn-icon.fn-bitbucket:before{content:""}.fn-icon.fn-bitbucket-square:before{content:""}.fn-icon.fn-tumblr:before{content:""}.fn-icon.fn-tumblr-square:before{content:""}.fn-icon.fn-long-arrow-down:before{content:""}.fn-icon.fn-long-arrow-up:before{content:""}.fn-icon.fn-long-arrow-left:before{content:""}.fn-icon.fn-long-arrow-right:before{content:""}.fn-icon.fn-apple:before{content:""}.fn-icon.fn-windows:before{content:""}.fn-icon.fn-android:before{content:""}.fn-icon.fn-linux:before{content:""}.fn-icon.fn-dribbble:before{content:""}.fn-icon.fn-skype:before{content:""}.fn-icon.fn-foursquare:before{content:""}.fn-icon.fn-trello:before{content:""}.fn-icon.fn-female:before{content:""}.fn-icon.fn-male:before{content:""}.fn-icon.fn-gittip:before{content:""}.fn-icon.fn-sun-o:before{content:""}.fn-icon.fn-moon-o:before{content:""}.fn-icon.fn-archive:before{content:""}.fn-icon.fn-bug:before{content:""}.fn-icon.fn-vk:before{content:""}.fn-icon.fn-weibo:before{content:""}.fn-icon.fn-renren:before{content:""}.fn-icon.fn-pagelines:before{content:""}.fn-icon.fn-stack-exchange:before{content:""}.fn-icon.fn-arrow-circle-o-right:before{content:""}.fn-icon.fn-arrow-circle-o-left:before{content:""}.fn-icon.fn-caret-square-o-left:before,.fn-icon.fn-toggle-left:before{content:""}.fn-icon.fn-dot-circle-o:before{content:""}.fn-icon.fn-wheelchair:before{content:""}.fn-icon.fn-vimeo-square:before{content:""}.fn-icon.fn-try:before,.fn-icon.fn-turkish-lira:before{content:""}.fn-icon.fn-plus-square-o:before{content:""}.fn-icon.fn-space-shuttle:before{content:""}.fn-icon.fn-slack:before{content:""}.fn-icon.fn-envelope-square:before{content:""}.fn-icon.fn-wordpress:before{content:""}.fn-icon.fn-openid:before{content:""}.fn-icon.fn-bank:before,.fn-icon.fn-institution:before,.fn-icon.fn-university:before{content:""}.fn-icon.fn-graduation-cap:before,.fn-icon.fn-mortar-board:before{content:""}.fn-icon.fn-yahoo:before{content:""}.fn-icon.fn-google:before{content:""}.fn-icon.fn-reddit:before{content:""}.fn-icon.fn-reddit-square:before{content:""}.fn-icon.fn-stumbleupon-circle:before{content:""}.fn-icon.fn-stumbleupon:before{content:""}.fn-icon.fn-delicious:before{content:""}.fn-icon.fn-digg:before{content:""}.fn-icon.fn-pied-piper-square:before,.fn-icon.fn-pied-piper:before{content:""}.fn-icon.fn-pied-piper-alt:before{content:""}.fn-icon.fn-drupal:before{content:""}.fn-icon.fn-joomla:before{content:""}.fn-icon.fn-language:before{content:""}.fn-icon.fn-fax:before{content:""}.fn-icon.fn-building:before{content:""}.fn-icon.fn-child:before{content:""}.fn-icon.fn-paw:before{content:""}.fn-icon.fn-spoon:before{content:""}.fn-icon.fn-cube:before{content:""}.fn-icon.fn-cubes:before{content:""}.fn-icon.fn-behance:before{content:""}.fn-icon.fn-behance-square:before{content:""}.fn-icon.fn-steam:before{content:""}.fn-icon.fn-steam-square:before{content:""}.fn-icon.fn-recycle:before{content:""}.fn-icon.fn-automobile:before,.fn-icon.fn-car:before{content:""}.fn-icon.fn-cab:before,.fn-icon.fn-taxi:before{content:""}.fn-icon.fn-tree:before{content:""}.fn-icon.fn-spotify:before{content:""}.fn-icon.fn-deviantart:before{content:""}.fn-icon.fn-soundcloud:before{content:""}.fn-icon.fn-database:before{content:""}.fn-icon.fn-file-pdf-o:before{content:""}.fn-icon.fn-file-word-o:before{content:""}.fn-icon.fn-file-excel-o:before{content:""}.fn-icon.fn-file-powerpoint-o:before{content:""}.fn-icon.fn-file-image-o:before,.fn-icon.fn-file-photo-o:before,.fn-icon.fn-file-picture-o:before{content:""}.fn-icon.fn-file-archive-o:before,.fn-icon.fn-file-zip-o:before{content:""}.fn-icon.fn-file-audio-o:before,.fn-icon.fn-file-sound-o:before{content:""}.fn-icon.fn-file-movie-o:before,.fn-icon.fn-file-video-o:before{content:""}.fn-icon.fn-file-code-o:before{content:""}.fn-icon.fn-vine:before{content:""}.fn-icon.fn-codepen:before{content:""}.fn-icon.fn-jsfiddle:before{content:""}.fn-icon.fn-life-bouy:before,.fn-icon.fn-life-ring:before,.fn-icon.fn-life-saver:before,.fn-icon.fn-support:before{content:""}.fn-icon.fn-circle-o-notch:before{content:""}.fn-icon.fn-ra:before,.fn-icon.fn-rebel:before{content:""}.fn-icon.fn-empire:before,.fn-icon.fn-ge:before{content:""}.fn-icon.fn-git-square:before{content:""}.fn-icon.fn-git:before{content:""}.fn-icon.fn-hacker-news:before{content:""}.fn-icon.fn-tencent-weibo:before{content:""}.fn-icon.fn-qq:before{content:""}.fn-icon.fn-wechat:before,.fn-icon.fn-weixin:before{content:""}.fn-icon.fn-paper-plane:before,.fn-icon.fn-send:before{content:""}.fn-icon.fn-paper-plane-o:before,.fn-icon.fn-send-o:before{content:""}.fn-icon.fn-history:before{content:""}.fn-icon.fn-circle-thin:before{content:""}.fn-icon.fn-header:before{content:""}.fn-icon.fn-paragraph:before{content:""}.fn-icon.fn-sliders:before{content:""}.fn-icon.fn-share-alt:before{content:""}.fn-icon.fn-share-alt-square:before{content:""}.fn-icon.fn-bomb:before{content:""}@media screen and (max-width:680px){.fn-content{padding:20px}.fn-sidebar{margin-left:-250px}.fn-mobile-visible{display:block}.fn-pc-visible{display:none}}
--------------------------------------------------------------------------------
/template/assets/lib/jquery.js:
--------------------------------------------------------------------------------
1 | /*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
2 | !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=ie.type(e);return"function"===n||ie.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(ie.isFunction(t))return ie.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ie.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(fe.test(t))return ie.filter(t,e,n);t=ie.filter(t,e)}return ie.grep(e,function(e){return ie.inArray(e,t)>=0!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t=xe[e]={};return ie.each(e.match(be)||[],function(e,n){t[n]=!0}),t}function a(){he.addEventListener?(he.removeEventListener("DOMContentLoaded",s,!1),e.removeEventListener("load",s,!1)):(he.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(he.addEventListener||"load"===event.type||"complete"===he.readyState)&&(a(),ie.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Ee,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Ne.test(n)?ie.parseJSON(n):n}catch(i){}ie.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!ie.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(ie.acceptData(e)){var i,o,a=ie.expando,s=e.nodeType,l=s?ie.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(r||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=J.pop()||ie.guid++:a),l[u]||(l[u]=s?{}:{toJSON:ie.noop}),("object"==typeof t||"function"==typeof t)&&(r?l[u]=ie.extend(l[u],t):l[u].data=ie.extend(l[u].data,t)),o=l[u],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[ie.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[ie.camelCase(t)])):i=o,i}}function d(e,t,n){if(ie.acceptData(e)){var r,i,o=e.nodeType,a=o?ie.cache:e,s=o?e[ie.expando]:ie.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){ie.isArray(t)?t=t.concat(ie.map(t,ie.camelCase)):t in r?t=[t]:(t=ie.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!u(r):!ie.isEmptyObject(r))return}(n||(delete a[s].data,u(a[s])))&&(o?ie.cleanData([e],!0):ne.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function f(){return!0}function p(){return!1}function h(){try{return he.activeElement}catch(e){}}function m(e){var t=Oe.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function g(e,t){var n,r,i=0,o=typeof e.getElementsByTagName!==Ce?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Ce?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||ie.nodeName(r,t)?o.push(r):ie.merge(o,g(r,t));return void 0===t||t&&ie.nodeName(e,t)?ie.merge([e],o):o}function v(e){je.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t){return ie.nodeName(e,"table")&&ie.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function b(e){return e.type=(null!==ie.find.attr(e,"type"))+"/"+e.type,e}function x(e){var t=Ve.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function w(e,t){for(var n,r=0;null!=(n=e[r]);r++)ie._data(n,"globalEval",!t||ie._data(t[r],"globalEval"))}function T(e,t){if(1===t.nodeType&&ie.hasData(e)){var n,r,i,o=ie._data(e),a=ie._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)ie.event.add(t,n,s[n][r])}a.data&&(a.data=ie.extend({},a.data))}}function C(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ne.noCloneEvent&&t[ie.expando]){i=ie._data(t);for(r in i.events)ie.removeEvent(t,r,i.handle);t.removeAttribute(ie.expando)}"script"===n&&t.text!==e.text?(b(t).text=e.text,x(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ne.html5Clone&&e.innerHTML&&!ie.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&je.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function N(t,n){var r,i=ie(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(i[0]))?r.display:ie.css(i[0],"display");return i.detach(),o}function E(e){var t=he,n=Ze[e];return n||(n=N(e,t),"none"!==n&&n||(Ke=(Ke||ie("")).appendTo(t.documentElement),t=(Ke[0].contentWindow||Ke[0].contentDocument).document,t.write(),t.close(),n=N(e,t),Ke.detach()),Ze[e]=n),n}function k(e,t){return{get:function(){var n=e();return null!=n?n?void delete this.get:(this.get=t).apply(this,arguments):void 0}}}function S(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=ft.length;i--;)if(t=ft[i]+n,t in e)return t;return r}function A(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=ie._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Ae(r)&&(o[a]=ie._data(r,"olddisplay",E(r.nodeName)))):(i=Ae(r),(n&&"none"!==n||!i)&&ie._data(r,"olddisplay",i?n:ie.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function D(e,t,n){var r=lt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function j(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=ie.css(e,n+Se[o],!0,i)),r?("content"===n&&(a-=ie.css(e,"padding"+Se[o],!0,i)),"margin"!==n&&(a-=ie.css(e,"border"+Se[o]+"Width",!0,i))):(a+=ie.css(e,"padding"+Se[o],!0,i),"padding"!==n&&(a+=ie.css(e,"border"+Se[o]+"Width",!0,i)));return a}function L(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=et(e),a=ne.boxSizing&&"border-box"===ie.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=tt(e,t,o),(0>i||null==i)&&(i=e.style[t]),rt.test(i))return i;r=a&&(ne.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+j(e,t,n||(a?"border":"content"),r,o)+"px"}function H(e,t,n,r,i){return new H.prototype.init(e,t,n,r,i)}function _(){return setTimeout(function(){pt=void 0}),pt=ie.now()}function q(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Se[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function M(e,t,n){for(var r,i=(bt[t]||[]).concat(bt["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function O(e,t,n){var r,i,o,a,s,l,u,c,d=this,f={},p=e.style,h=e.nodeType&&Ae(e),m=ie._data(e,"fxshow");n.queue||(s=ie._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,ie.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],u=ie.css(e,"display"),c="none"===u?ie._data(e,"olddisplay")||E(e.nodeName):u,"inline"===c&&"none"===ie.css(e,"float")&&(ne.inlineBlockNeedsLayout&&"inline"!==E(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",ne.shrinkWrapBlocks()||d.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],mt.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||ie.style(e,r)}else u=void 0;if(ie.isEmptyObject(f))"inline"===("none"===u?E(e.nodeName):u)&&(p.display=u);else{m?"hidden"in m&&(h=m.hidden):m=ie._data(e,"fxshow",{}),o&&(m.hidden=!h),h?ie(e).show():d.done(function(){ie(e).hide()}),d.done(function(){var t;ie._removeData(e,"fxshow");for(t in f)ie.style(e,t,f[t])});for(r in f)a=M(h?m[r]:0,r,d),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function F(e,t){var n,r,i,o,a;for(n in e)if(r=ie.camelCase(n),i=t[r],o=e[n],ie.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=ie.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function B(e,t,n){var r,i,o=0,a=yt.length,s=ie.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=pt||_(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:ie.extend({},t),opts:ie.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:pt||_(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ie.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(F(c,u.opts.specialEasing);a>o;o++)if(r=yt[o].call(u,e,c,u.opts))return r;return ie.map(c,M,u),ie.isFunction(u.opts.start)&&u.opts.start.call(e,u),ie.fx.timer(ie.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function P(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(be)||[];if(ie.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function R(e,t,n,r){function i(s){var l;return o[s]=!0,ie.each(e[s]||[],function(e,s){var u=s(t,n,r);return"string"!=typeof u||a||o[u]?a?!(l=u):void 0:(t.dataTypes.unshift(u),i(u),!1)}),l}var o={},a=e===zt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function W(e,t){var n,r,i=ie.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&ie.extend(!0,e,n),e}function $(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){l.unshift(a);break}if(l[0]in n)o=l[0];else{for(a in n){if(!l[0]||e.converters[a+" "+l[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}function z(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function I(e,t,n,r){var i;if(ie.isArray(t))ie.each(t,function(t,i){n||Vt.test(e)?r(e,i):I(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==ie.type(t))r(e,t);else for(i in t)I(e+"["+i+"]",t[i],n,r)}function X(){try{return new e.XMLHttpRequest}catch(t){}}function U(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function V(e){return ie.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var J=[],Y=J.slice,G=J.concat,Q=J.push,K=J.indexOf,Z={},ee=Z.toString,te=Z.hasOwnProperty,ne={},re="1.11.1",ie=function(e,t){return new ie.fn.init(e,t)},oe=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ae=/^-ms-/,se=/-([\da-z])/gi,le=function(e,t){return t.toUpperCase()};ie.fn=ie.prototype={jquery:re,constructor:ie,selector:"",length:0,toArray:function(){return Y.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Y.call(this)},pushStack:function(e){var t=ie.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ie.each(this,e,t)},map:function(e){return this.pushStack(ie.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Y.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:Q,sort:J.sort,splice:J.splice},ie.extend=ie.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[s]||{},s++),"object"==typeof a||ie.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(u&&n&&(ie.isPlainObject(n)||(t=ie.isArray(n)))?(t?(t=!1,o=e&&ie.isArray(e)?e:[]):o=e&&ie.isPlainObject(e)?e:{},a[r]=ie.extend(u,o,n)):void 0!==n&&(a[r]=n));return a},ie.extend({expando:"jQuery"+(re+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ie.type(e)},isArray:Array.isArray||function(e){return"array"===ie.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ie.isArray(e)&&e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ie.type(e)||e.nodeType||ie.isWindow(e))return!1;try{if(e.constructor&&!te.call(e,"constructor")&&!te.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ne.ownLast)for(t in e)return te.call(e,t);for(t in e);return void 0===t||te.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Z[ee.call(e)]||"object":typeof e},globalEval:function(t){t&&ie.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ae,"ms-").replace(se,le)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(oe,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?ie.merge(r,"string"==typeof e?[e]:e):Q.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(K)return K.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),l=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&l.push(i);else for(o in e)i=t(e[o],o,r),null!=i&&l.push(i);return G.apply([],l)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(i=e[t],t=e,e=i),ie.isFunction(e)?(n=Y.call(arguments,2),r=function(){return e.apply(t||this,n.concat(Y.call(arguments)))},r.guid=e.guid=e.guid||ie.guid++,r):void 0},now:function(){return+new Date},support:ne}),ie.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Z["[object "+t+"]"]=t.toLowerCase()});var ue=function(e){function t(e,t,n,r){var i,o,a,s,l,u,d,p,h,m;if((t?t.ownerDocument||t:R)!==H&&L(t),t=t||H,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(q&&!r){if(i=ye.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&B(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(w.qsa&&(!M||!M.test(e))){if(p=d=P,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(u=E(e),(d=t.getAttribute("id"))?p=d.replace(xe,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=u.length;l--;)u[l]=p+f(u[l]);h=be.test(e)&&c(t.parentNode)||t,m=u.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return S(e.replace(le,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||J)-(~e.sourceIndex||J);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&typeof e.getElementsByTagName!==V&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=$++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,u=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[P]||(t[P]={}),(s=l[r])&&s[0]===W&&s[1]===o)return u[2]=s[2];if(l[r]=u,u[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[P]&&(i=v(i)),o&&!o[P]&&(o=v(o,a)),r(function(r,a,s,l){var u,c,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(u=g(b,p),i(u,[],s,l),c=u.length;c--;)(d=u[c])&&(b[p[c]]=!(y[p[c]]=d));if(r){if(o||e){if(o){for(u=[],c=b.length;c--;)(d=b[c])&&u.push(y[c]=d);o(null,b=[],u,l)}for(c=b.length;c--;)(d=b[c])&&(u=o?te.call(r,d):f[c])>-1&&(r[u]=!(a[u]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),u=p(function(e){return te.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==A)||((t=n).nodeType?l(e,n,r):u(e,n,r))}];i>s;s++)if(n=T.relative[e[s].type])c=[p(h(c),n)];else{if(n=T.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!T.relative[e[r].type];r++);return v(s>1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(le,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}c.push(n)}return h(c)}function b(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,l,u){var c,d,f,p=0,h="0",m=r&&[],v=[],y=A,b=r||o&&T.find.TAG("*",u),x=W+=null==y?1:Math.random()||.1,w=b.length;for(u&&(A=a!==H&&a);h!==w&&null!=(c=b[h]);h++){if(o&&c){for(d=0;f=e[d++];)if(f(c,a,s)){l.push(c);break}u&&(W=x)}i&&((c=!f&&c)&&p--,r&&m.push(c))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=Q.call(l));v=g(v)}Z.apply(l,v),u&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return u&&(W=x,A=y),m};return i?r(a):a}var x,w,T,C,N,E,k,S,A,D,j,L,H,_,q,M,O,F,B,P="sizzle"+-new Date,R=e.document,W=0,$=0,z=n(),I=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V="undefined",J=1<<31,Y={}.hasOwnProperty,G=[],Q=G.pop,K=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",re="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe=ie.replace("w","w#"),ae="\\["+re+"*("+ie+")(?:"+re+"*([*^$|!~]?=)"+re+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+oe+"))|)"+re+"*\\]",se=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ae+")*)|.*)\\)|)",le=new RegExp("^"+re+"+|((?:^|[^\\\\])(?:\\\\.)*)"+re+"+$","g"),ue=new RegExp("^"+re+"*,"+re+"*"),ce=new RegExp("^"+re+"*([>+~]|"+re+")"+re+"*"),de=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),fe=new RegExp(se),pe=new RegExp("^"+oe+"$"),he={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie.replace("w","w*")+")"),ATTR:new RegExp("^"+ae),PSEUDO:new RegExp("^"+se),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),Te=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(R.childNodes),R.childNodes),G[R.childNodes.length].nodeType}catch(Ce){Z={apply:G.length?function(e,t){K.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},N=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},L=t.setDocument=function(e){var t,n=e?e.ownerDocument||e:R,r=n.defaultView;return n!==H&&9===n.nodeType&&n.documentElement?(H=n,_=n.documentElement,q=!N(n),r&&r!==r.top&&(r.addEventListener?r.addEventListener("unload",function(){L()},!1):r.attachEvent&&r.attachEvent("onunload",function(){L()})),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ve.test(n.getElementsByClassName)&&i(function(e){return e.innerHTML="",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),w.getById=i(function(e){return _.appendChild(e).id=P,!n.getElementsByName||!n.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if(typeof t.getElementById!==V&&q){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){var n=typeof e.getAttributeNode!==V&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==V?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==V&&q?t.getElementsByClassName(e):void 0},O=[],M=[],(w.qsa=ve.test(n.querySelectorAll))&&(i(function(e){e.innerHTML="",e.querySelectorAll("[msallowclip^='']").length&&M.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||M.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&M.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(w.matchesSelector=ve.test(F=_.matches||_.webkitMatchesSelector||_.mozMatchesSelector||_.oMatchesSelector||_.msMatchesSelector))&&i(function(e){w.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),O.push("!=",se)}),M=M.length&&new RegExp(M.join("|")),O=O.length&&new RegExp(O.join("|")),t=ve.test(_.compareDocumentPosition),B=t||ve.test(_.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&r||!w.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===R&&B(R,e)?-1:t===n||t.ownerDocument===R&&B(R,t)?1:D?te.call(D,e)-te.call(D,t):0:4&r?-1:1)}:function(e,t){if(e===t)return j=!0,0;var r,i=0,o=e.parentNode,s=t.parentNode,l=[e],u=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:D?te.call(D,e)-te.call(D,t):0;if(o===s)return a(e,t);for(r=e;r=r.parentNode;)l.unshift(r);for(r=t;r=r.parentNode;)u.unshift(r);for(;l[i]===u[i];)i++;return i?a(l[i],u[i]):l[i]===R?-1:u[i]===R?1:0},n):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(de,"='$1']"),!(!w.matchesSelector||!q||O&&O.test(n)||M&&M.test(n)))try{var r=F.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),B(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!q):void 0;return void 0!==r?r:w.attributes||!q?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,Te),e[3]=(e[3]||e[4]||e[5]||"").replace(we,Te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,Te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=z[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&z(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==V&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(c=g[P]||(g[P]={}),u=c[e]||[],p=u[0]===W&&u[1],f=u[0]===W&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[W,p,f];break}}else if(y&&(u=(t[P]||(t[P]={}))[e])&&u[0]===W)f=u[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[P]||(d[P]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(le,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return pe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,Te).toLowerCase(),function(t){var n;do if(n=q?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===_},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return me.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=0>n?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&q&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(we,Te),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((l=T.find[s])&&(r=l(a.matches[0].replace(we,Te),be.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(u||k(e,d))(r,t,!q,n,be.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);ie.find=ue,ie.expr=ue.selectors,ie.expr[":"]=ie.expr.pseudos,ie.unique=ue.uniqueSort,ie.text=ue.getText,ie.isXMLDoc=ue.isXML,ie.contains=ue.contains;var ce=ie.expr.match.needsContext,de=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,fe=/^.[^:#\[\.,]*$/;ie.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ie.find.matchesSelector(r,e)?[r]:[]:ie.find.matches(e,ie.grep(t,function(e){return 1===e.nodeType}))},ie.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(ie(e).filter(function(){for(t=0;i>t;t++)if(ie.contains(r[t],this))return!0}));for(t=0;i>t;t++)ie.find(e,r[t],n);return n=this.pushStack(i>1?ie.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&ce.test(e)?ie(e):e||[],!1).length}});var pe,he=e.document,me=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ge=ie.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:me.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||pe).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ie?t[0]:t,ie.merge(this,ie.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:he,!0)),de.test(n[1])&&ie.isPlainObject(t))for(n in t)ie.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(r=he.getElementById(n[2]),r&&r.parentNode){if(r.id!==n[2])return pe.find(e);this.length=1,this[0]=r}return this.context=he,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ie.isFunction(e)?"undefined"!=typeof pe.ready?pe.ready(e):e(ie):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ie.makeArray(e,this))};ge.prototype=ie.fn,pe=ie(he);var ve=/^(?:parents|prev(?:Until|All))/,ye={children:!0,contents:!0,next:!0,prev:!0};ie.extend({dir:function(e,t,n){for(var r=[],i=e[t];i&&9!==i.nodeType&&(void 0===n||1!==i.nodeType||!ie(i).is(n));)1===i.nodeType&&r.push(i),i=i[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ie.fn.extend({has:function(e){var t,n=ie(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(ie.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=ce.test(e)||"string"!=typeof e?ie(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ie.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ie.unique(o):o)},index:function(e){return e?"string"==typeof e?ie.inArray(this[0],ie(e)):ie.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ie.unique(ie.merge(this.get(),ie(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ie.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ie.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ie.dir(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return ie.dir(e,"nextSibling")},prevAll:function(e){return ie.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ie.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ie.dir(e,"previousSibling",n)},siblings:function(e){return ie.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ie.sibling(e.firstChild)},contents:function(e){return ie.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ie.merge([],e.childNodes)}},function(e,t){ie.fn[e]=function(n,r){var i=ie.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ie.filter(r,i)),this.length>1&&(ye[e]||(i=ie.unique(i)),ve.test(e)&&(i=i.reverse())),this.pushStack(i)}});var be=/\S+/g,xe={};ie.Callbacks=function(e){e="string"==typeof e?xe[e]||o(e):ie.extend({},e);var t,n,r,i,a,s,l=[],u=!e.once&&[],c=function(o){for(n=e.memory&&o,r=!0,a=s||0,s=0,i=l.length,t=!0;l&&i>a;a++)if(l[a].apply(o[0],o[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,l&&(u?u.length&&c(u.shift()):n?l=[]:d.disable())},d={add:function(){if(l){var r=l.length;!function o(t){ie.each(t,function(t,n){var r=ie.type(n);"function"===r?e.unique&&d.has(n)||l.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),t?i=l.length:n&&(s=r,c(n))}return this},remove:function(){return l&&ie.each(arguments,function(e,n){for(var r;(r=ie.inArray(n,l,r))>-1;)l.splice(r,1),t&&(i>=r&&i--,a>=r&&a--)}),this},has:function(e){return e?ie.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],i=0,this},disable:function(){return l=u=n=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,n||d.disable(),this},locked:function(){return!u},fireWith:function(e,n){return!l||r&&!u||(n=n||[],n=[e,n.slice?n.slice():n],t?u.push(n):c(n)),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!r}};return d},ie.extend({Deferred:function(e){var t=[["resolve","done",ie.Callbacks("once memory"),"resolved"],["reject","fail",ie.Callbacks("once memory"),"rejected"],["notify","progress",ie.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ie.Deferred(function(n){ie.each(t,function(t,o){var a=ie.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&ie.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ie.extend(e,r):r}},i={};return r.pipe=r.then,ie.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=Y.call(arguments),a=o.length,s=1!==a||e&&ie.isFunction(e.promise)?a:0,l=1===s?e:ie.Deferred(),u=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?Y.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&ie.isFunction(o[i].promise)?o[i].promise().done(u(i,r,o)).fail(l.reject).progress(u(i,n,t)):--s;return s||l.resolveWith(r,o),l.promise()}});var we;ie.fn.ready=function(e){return ie.ready.promise().done(e),this},ie.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ie.readyWait++:ie.ready(!0)},ready:function(e){if(e===!0?!--ie.readyWait:!ie.isReady){if(!he.body)return setTimeout(ie.ready);ie.isReady=!0,e!==!0&&--ie.readyWait>0||(we.resolveWith(he,[ie]),ie.fn.triggerHandler&&(ie(he).triggerHandler("ready"),ie(he).off("ready")))}}}),ie.ready.promise=function(t){if(!we)if(we=ie.Deferred(),"complete"===he.readyState)setTimeout(ie.ready);else if(he.addEventListener)he.addEventListener("DOMContentLoaded",s,!1),e.addEventListener("load",s,!1);else{he.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&he.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!ie.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}a(),ie.ready()}}()}return we.promise(t)};var Te,Ce="undefined";for(Te in ie(ne))break;ne.ownLast="0"!==Te,ne.inlineBlockNeedsLayout=!1,ie(function(){var e,t,n,r;n=he.getElementsByTagName("body")[0],n&&n.style&&(t=he.createElement("div"),r=he.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Ce&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ne.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=he.createElement("div");if(null==ne.deleteExpando){ne.deleteExpando=!0;try{delete e.test}catch(t){ne.deleteExpando=!1}}e=null}(),ie.acceptData=function(e){var t=ie.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t};var Ne=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ee=/([A-Z])/g;ie.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ie.cache[e[ie.expando]]:e[ie.expando],!!e&&!u(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return d(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return d(e,t,!0)}}),ie.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=ie.data(o),1===o.nodeType&&!ie._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=ie.camelCase(r.slice(5)),l(o,r,i[r])));ie._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){ie.data(this,e)}):arguments.length>1?this.each(function(){ie.data(this,e,t)}):o?l(o,e,ie.data(o,e)):void 0},removeData:function(e){return this.each(function(){ie.removeData(this,e)})}}),ie.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ie._data(e,t),n&&(!r||ie.isArray(n)?r=ie._data(e,t,ie.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ie.queue(e,t),r=n.length,i=n.shift(),o=ie._queueHooks(e,t),a=function(){ie.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ie._data(e,n)||ie._data(e,n,{empty:ie.Callbacks("once memory").add(function(){ie._removeData(e,t+"queue"),ie._removeData(e,n)})})}}),ie.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.lengths;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:u?t.call(e):l?t(e[0],n):o},je=/^(?:checkbox|radio)$/i;!function(){var e=he.createElement("input"),t=he.createElement("div"),n=he.createDocumentFragment();if(t.innerHTML=" a",ne.leadingWhitespace=3===t.firstChild.nodeType,ne.tbody=!t.getElementsByTagName("tbody").length,ne.htmlSerialize=!!t.getElementsByTagName("link").length,ne.html5Clone="<:nav>"!==he.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ne.appendChecked=e.checked,t.innerHTML="",ne.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="",ne.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ne.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ne.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ne.deleteExpando){ne.deleteExpando=!0;try{delete t.test}catch(r){ne.deleteExpando=!1}}}(),function(){var t,n,r=he.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(ne[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),ne[t+"Bubbles"]=r.attributes[n].expando===!1);r=null}();var Le=/^(?:input|select|textarea)$/i,He=/^key/,_e=/^(?:mouse|pointer|contextmenu)|click/,qe=/^(?:focusinfocus|focusoutblur)$/,Me=/^([^.]*)(?:\.(.+)|)$/;ie.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,d,f,p,h,m,g=ie._data(e);if(g){for(n.handler&&(l=n,n=l.handler,i=l.selector),n.guid||(n.guid=ie.guid++),(a=g.events)||(a=g.events={}),(c=g.handle)||(c=g.handle=function(e){return typeof ie===Ce||e&&ie.event.triggered===e.type?void 0:ie.event.dispatch.apply(c.elem,arguments)},c.elem=e),t=(t||"").match(be)||[""],s=t.length;s--;)o=Me.exec(t[s])||[],p=m=o[1],h=(o[2]||"").split(".").sort(),p&&(u=ie.event.special[p]||{},p=(i?u.delegateType:u.bindType)||p,u=ie.event.special[p]||{},d=ie.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ie.expr.match.needsContext.test(i),namespace:h.join(".")},l),(f=a[p])||(f=a[p]=[],f.delegateCount=0,u.setup&&u.setup.call(e,r,h,c)!==!1||(e.addEventListener?e.addEventListener(p,c,!1):e.attachEvent&&e.attachEvent("on"+p,c))),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,d):f.push(d),ie.event.global[p]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,d,f,p,h,m,g=ie.hasData(e)&&ie._data(e);if(g&&(c=g.events)){for(t=(t||"").match(be)||[""],u=t.length;u--;)if(s=Me.exec(t[u])||[],p=m=s[1],h=(s[2]||"").split(".").sort(),p){for(d=ie.event.special[p]||{},p=(r?d.delegateType:d.bindType)||p,f=c[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;o--;)a=f[o],!i&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,d.remove&&d.remove.call(e,a));l&&!f.length&&(d.teardown&&d.teardown.call(e,h,g.handle)!==!1||ie.removeEvent(e,p,g.handle),delete c[p])}else for(p in c)ie.event.remove(e,p+t[u],n,r,!0);ie.isEmptyObject(c)&&(delete g.handle,ie._removeData(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,l,u,c,d,f=[r||he],p=te.call(t,"type")?t.type:t,h=te.call(t,"namespace")?t.namespace.split("."):[];if(s=c=r=r||he,3!==r.nodeType&&8!==r.nodeType&&!qe.test(p+ie.event.triggered)&&(p.indexOf(".")>=0&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[ie.expando]?t:new ie.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:ie.makeArray(n,[t]),u=ie.event.special[p]||{},i||!u.trigger||u.trigger.apply(r,n)!==!1)){if(!i&&!u.noBubble&&!ie.isWindow(r)){for(l=u.delegateType||p,qe.test(l+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),c=s;c===(r.ownerDocument||he)&&f.push(c.defaultView||c.parentWindow||e)}for(d=0;(s=f[d++])&&!t.isPropagationStopped();)t.type=d>1?l:u.bindType||p,o=(ie._data(s,"events")||{})[t.type]&&ie._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&ie.acceptData(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!u._default||u._default.apply(f.pop(),n)===!1)&&ie.acceptData(r)&&a&&r[p]&&!ie.isWindow(r)){c=r[a],c&&(r[a]=null),ie.event.triggered=p;try{r[p]()}catch(m){}ie.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=ie.event.fix(e);var t,n,r,i,o,a=[],s=Y.call(arguments),l=(ie._data(this,"events")||{})[e.type]||[],u=ie.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(a=ie.event.handlers.call(this,e,l),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,o=0;(r=i.handlers[o++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(r.namespace))&&(e.handleObj=r,e.data=r.data,n=((ie.event.special[r.origType]||{}).handle||r.handler).apply(i.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(i=[],o=0;s>o;o++)r=t[o],n=r.selector+" ",void 0===i[n]&&(i[n]=r.needsContext?ie(n,this).index(l)>=0:ie.find(n,this,null,[l]).length),i[n]&&i.push(r);i.length&&a.push({elem:l,handlers:i})}return s]","i"),Pe=/^\s+/,Re=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,We=/<([\w:]+)/,$e=/\s*$/g,Ye={option:[1,""],legend:[1,""],area:[1,""],param:[1,""],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:ne.htmlSerialize?[0,"",""]:[1,"X","
"]},Ge=m(he),Qe=Ge.appendChild(he.createElement("div"));Ye.optgroup=Ye.option,Ye.tbody=Ye.tfoot=Ye.colgroup=Ye.caption=Ye.thead,Ye.th=Ye.td,ie.extend({clone:function(e,t,n){var r,i,o,a,s,l=ie.contains(e.ownerDocument,e);if(ne.html5Clone||ie.isXMLDoc(e)||!Be.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Qe.innerHTML=e.outerHTML,Qe.removeChild(o=Qe.firstChild)),!(ne.noCloneEvent&&ne.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ie.isXMLDoc(e)))for(r=g(o),s=g(e),a=0;null!=(i=s[a]);++a)r[a]&&C(i,r[a]);if(t)if(n)for(s=s||g(e),r=r||g(o),a=0;null!=(i=s[a]);a++)T(i,r[a]);else T(e,o);return r=g(o,"script"),r.length>0&&w(r,!l&&g(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,l,u,c,d=e.length,f=m(t),p=[],h=0;d>h;h++)if(o=e[h],o||0===o)if("object"===ie.type(o))ie.merge(p,o.nodeType?[o]:o);else if(ze.test(o)){for(s=s||f.appendChild(t.createElement("div")),l=(We.exec(o)||["",""])[1].toLowerCase(),c=Ye[l]||Ye._default,s.innerHTML=c[1]+o.replace(Re,"<$1>$2>")+c[2],i=c[0];i--;)s=s.lastChild;if(!ne.leadingWhitespace&&Pe.test(o)&&p.push(t.createTextNode(Pe.exec(o)[0])),!ne.tbody)for(o="table"!==l||$e.test(o)?""!==c[1]||$e.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)ie.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u);for(ie.merge(p,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else p.push(t.createTextNode(o));for(s&&f.removeChild(s),ne.appendChecked||ie.grep(g(p,"input"),v),h=0;o=p[h++];)if((!r||-1===ie.inArray(o,r))&&(a=ie.contains(o.ownerDocument,o),s=g(f.appendChild(o),"script"),a&&w(s),n))for(i=0;o=s[i++];)Ue.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,i,o,a=0,s=ie.expando,l=ie.cache,u=ne.deleteExpando,c=ie.event.special;null!=(n=e[a]);a++)if((t||ie.acceptData(n))&&(i=n[s],o=i&&l[i])){if(o.events)for(r in o.events)c[r]?ie.event.remove(n,r):ie.removeEvent(n,r,o.handle);l[i]&&(delete l[i],u?delete n[s]:typeof n.removeAttribute!==Ce?n.removeAttribute(s):n[s]=null,J.push(i))}}}),ie.fn.extend({text:function(e){return De(this,function(e){return void 0===e?ie.text(this):this.empty().append((this[0]&&this[0].ownerDocument||he).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ie.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||ie.cleanData(g(n)),n.parentNode&&(t&&ie.contains(n.ownerDocument,n)&&w(g(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ie.cleanData(g(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ie.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ie.clone(this,e,t)})},html:function(e){return De(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Fe,""):void 0;if(!("string"!=typeof e||Ie.test(e)||!ne.htmlSerialize&&Be.test(e)||!ne.leadingWhitespace&&Pe.test(e)||Ye[(We.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Re,"<$1>$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(ie.cleanData(g(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ie.cleanData(g(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=G.apply([],e);var n,r,i,o,a,s,l=0,u=this.length,c=this,d=u-1,f=e[0],p=ie.isFunction(f);if(p||u>1&&"string"==typeof f&&!ne.checkClone&&Xe.test(f))return this.each(function(n){var r=c.eq(n);p&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(u&&(s=ie.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(o=ie.map(g(s,"script"),b),i=o.length;u>l;l++)r=s,l!==d&&(r=ie.clone(r,!0,!0),i&&ie.merge(o,g(r,"script"))),t.call(this[l],r,l);if(i)for(a=o[o.length-1].ownerDocument,ie.map(o,x),l=0;i>l;l++)r=o[l],Ue.test(r.type||"")&&!ie._data(r,"globalEval")&&ie.contains(a,r)&&(r.src?ie._evalUrl&&ie._evalUrl(r.src):ie.globalEval((r.text||r.textContent||r.innerHTML||"").replace(Je,"")));s=n=null}return this}}),ie.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ie.fn[e]=function(e){for(var n,r=0,i=[],o=ie(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),ie(o[r])[t](n),Q.apply(i,n.get());return this.pushStack(i)}});var Ke,Ze={};!function(){var e;ne.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=he.getElementsByTagName("body")[0],n&&n.style?(t=he.createElement("div"),r=he.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Ce&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(he.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var et,tt,nt=/^margin/,rt=new RegExp("^("+ke+")(?!px)[a-z%]+$","i"),it=/^(top|right|bottom|left)$/;e.getComputedStyle?(et=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},tt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||et(e),a=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||ie.contains(e.ownerDocument,e)||(a=ie.style(e,t)),rt.test(a)&&nt.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),
4 | void 0===a?a:a+""}):he.documentElement.currentStyle&&(et=function(e){return e.currentStyle},tt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||et(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),rt.test(a)&&!it.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"}),!function(){function t(){var t,n,r,i;n=he.getElementsByTagName("body")[0],n&&n.style&&(t=he.createElement("div"),r=he.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o=a=!1,l=!0,e.getComputedStyle&&(o="1%"!==(e.getComputedStyle(t,null)||{}).top,a="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,i=t.appendChild(he.createElement("div")),i.style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",t.style.width="1px",l=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight)),t.innerHTML="",i=t.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===i[0].offsetHeight,s&&(i[0].style.display="",i[1].style.display="none",s=0===i[0].offsetHeight),n.removeChild(r))}var n,r,i,o,a,s,l;n=he.createElement("div"),n.innerHTML=" a",i=n.getElementsByTagName("a")[0],(r=i&&i.style)&&(r.cssText="float:left;opacity:.5",ne.opacity="0.5"===r.opacity,ne.cssFloat=!!r.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",ne.clearCloneStyle="content-box"===n.style.backgroundClip,ne.boxSizing=""===r.boxSizing||""===r.MozBoxSizing||""===r.WebkitBoxSizing,ie.extend(ne,{reliableHiddenOffsets:function(){return null==s&&t(),s},boxSizingReliable:function(){return null==a&&t(),a},pixelPosition:function(){return null==o&&t(),o},reliableMarginRight:function(){return null==l&&t(),l}}))}(),ie.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};var ot=/alpha\([^)]*\)/i,at=/opacity\s*=\s*([^)]*)/,st=/^(none|table(?!-c[ea]).+)/,lt=new RegExp("^("+ke+")(.*)$","i"),ut=new RegExp("^([+-])=("+ke+")","i"),ct={position:"absolute",visibility:"hidden",display:"block"},dt={letterSpacing:"0",fontWeight:"400"},ft=["Webkit","O","Moz","ms"];ie.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=tt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ne.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie.camelCase(t),l=e.style;if(t=ie.cssProps[s]||(ie.cssProps[s]=S(l,s)),a=ie.cssHooks[t]||ie.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];if(o=typeof n,"string"===o&&(i=ut.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(ie.css(e,t)),o="number"),null!=n&&n===n&&("number"!==o||ie.cssNumber[s]||(n+="px"),ne.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{l[t]=n}catch(u){}}},css:function(e,t,n,r){var i,o,a,s=ie.camelCase(t);return t=ie.cssProps[s]||(ie.cssProps[s]=S(e.style,s)),a=ie.cssHooks[t]||ie.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=tt(e,t,r)),"normal"===o&&t in dt&&(o=dt[t]),""===n||n?(i=parseFloat(o),n===!0||ie.isNumeric(i)?i||0:o):o}}),ie.each(["height","width"],function(e,t){ie.cssHooks[t]={get:function(e,n,r){return n?st.test(ie.css(e,"display"))&&0===e.offsetWidth?ie.swap(e,ct,function(){return L(e,t,r)}):L(e,t,r):void 0},set:function(e,n,r){var i=r&&et(e);return D(e,n,r?j(e,t,r,ne.boxSizing&&"border-box"===ie.css(e,"boxSizing",!1,i),i):0)}}}),ne.opacity||(ie.cssHooks.opacity={get:function(e,t){return at.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=ie.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===ie.trim(o.replace(ot,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=ot.test(o)?o.replace(ot,i):o+" "+i)}}),ie.cssHooks.marginRight=k(ne.reliableMarginRight,function(e,t){return t?ie.swap(e,{display:"inline-block"},tt,[e,"marginRight"]):void 0}),ie.each({margin:"",padding:"",border:"Width"},function(e,t){ie.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Se[r]+t]=o[r]||o[r-2]||o[0];return i}},nt.test(e)||(ie.cssHooks[e+t].set=D)}),ie.fn.extend({css:function(e,t){return De(this,function(e,t,n){var r,i,o={},a=0;if(ie.isArray(t)){for(r=et(e),i=t.length;i>a;a++)o[t[a]]=ie.css(e,t[a],!1,r);return o}return void 0!==n?ie.style(e,t,n):ie.css(e,t)},e,t,arguments.length>1)},show:function(){return A(this,!0)},hide:function(){return A(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ae(this)?ie(this).show():ie(this).hide()})}}),ie.Tween=H,H.prototype={constructor:H,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ie.cssNumber[n]?"":"px")},cur:function(){var e=H.propHooks[this.prop];return e&&e.get?e.get(this):H.propHooks._default.get(this)},run:function(e){var t,n=H.propHooks[this.prop];return this.pos=t=this.options.duration?ie.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):H.propHooks._default.set(this),this}},H.prototype.init.prototype=H.prototype,H.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ie.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ie.fx.step[e.prop]?ie.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ie.cssProps[e.prop]]||ie.cssHooks[e.prop])?ie.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ie.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ie.fx=H.prototype.init,ie.fx.step={};var pt,ht,mt=/^(?:toggle|show|hide)$/,gt=new RegExp("^(?:([+-])=|)("+ke+")([a-z%]*)$","i"),vt=/queueHooks$/,yt=[O],bt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=gt.exec(t),o=i&&i[3]||(ie.cssNumber[e]?"":"px"),a=(ie.cssNumber[e]||"px"!==o&&+r)&>.exec(ie.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,ie.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};ie.Animation=ie.extend(B,{tweener:function(e,t){ie.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],bt[n]=bt[n]||[],bt[n].unshift(t)},prefilter:function(e,t){t?yt.unshift(e):yt.push(e)}}),ie.speed=function(e,t,n){var r=e&&"object"==typeof e?ie.extend({},e):{complete:n||!n&&t||ie.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ie.isFunction(t)&&t};return r.duration=ie.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ie.fx.speeds?ie.fx.speeds[r.duration]:ie.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){ie.isFunction(r.old)&&r.old.call(this),r.queue&&ie.dequeue(this,r.queue)},r},ie.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=ie.isEmptyObject(e),o=ie.speed(t,n,r),a=function(){var t=B(this,ie.extend({},e),o);(i||ie._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=ie.timers,a=ie._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&vt.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&ie.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ie._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=ie.timers,a=r?r.length:0;for(n.finish=!0,ie.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),ie.each(["toggle","show","hide"],function(e,t){var n=ie.fn[t];ie.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(q(t,!0),e,r,i)}}),ie.each({slideDown:q("show"),slideUp:q("hide"),slideToggle:q("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ie.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),ie.timers=[],ie.fx.tick=function(){var e,t=ie.timers,n=0;for(pt=ie.now();na",r=t.getElementsByTagName("a")[0],n=he.createElement("select"),i=n.appendChild(he.createElement("option")),e=t.getElementsByTagName("input")[0],r.style.cssText="top:1px",ne.getSetAttribute="t"!==t.className,ne.style=/top/.test(r.getAttribute("style")),ne.hrefNormalized="/a"===r.getAttribute("href"),ne.checkOn=!!e.value,ne.optSelected=i.selected,ne.enctype=!!he.createElement("form").enctype,n.disabled=!0,ne.optDisabled=!i.disabled,e=he.createElement("input"),e.setAttribute("value",""),ne.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ne.radioValue="t"===e.value}();var xt=/\r/g;ie.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=ie.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ie(this).val()):e,null==i?i="":"number"==typeof i?i+="":ie.isArray(i)&&(i=ie.map(i,function(e){return null==e?"":e+""})),t=ie.valHooks[this.type]||ie.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=ie.valHooks[i.type]||ie.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(xt,""):null==n?"":n)):void 0}}),ie.extend({valHooks:{option:{get:function(e){var t=ie.find.attr(e,"value");return null!=t?t:ie.trim(ie.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(ne.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ie.nodeName(n.parentNode,"optgroup"))){if(t=ie(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=ie.makeArray(t),a=i.length;a--;)if(r=i[a],ie.inArray(ie.valHooks.option.get(r),o)>=0)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),ie.each(["radio","checkbox"],function(){ie.valHooks[this]={set:function(e,t){return ie.isArray(t)?e.checked=ie.inArray(ie(e).val(),t)>=0:void 0}},ne.checkOn||(ie.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var wt,Tt,Ct=ie.expr.attrHandle,Nt=/^(?:checked|selected)$/i,Et=ne.getSetAttribute,kt=ne.input;ie.fn.extend({attr:function(e,t){return De(this,ie.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ie.removeAttr(this,e)})}}),ie.extend({attr:function(e,t,n){var r,i,o=e.nodeType;return e&&3!==o&&8!==o&&2!==o?typeof e.getAttribute===Ce?ie.prop(e,t,n):(1===o&&ie.isXMLDoc(e)||(t=t.toLowerCase(),r=ie.attrHooks[t]||(ie.expr.match.bool.test(t)?Tt:wt)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=ie.find.attr(e,t),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void ie.removeAttr(e,t)):void 0},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(be);if(o&&1===e.nodeType)for(;n=o[i++];)r=ie.propFix[n]||n,ie.expr.match.bool.test(n)?kt&&Et||!Nt.test(n)?e[r]=!1:e[ie.camelCase("default-"+n)]=e[r]=!1:ie.attr(e,n,""),e.removeAttribute(Et?n:r)},attrHooks:{type:{set:function(e,t){if(!ne.radioValue&&"radio"===t&&ie.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),Tt={set:function(e,t,n){return t===!1?ie.removeAttr(e,n):kt&&Et||!Nt.test(n)?e.setAttribute(!Et&&ie.propFix[n]||n,n):e[ie.camelCase("default-"+n)]=e[n]=!0,n}},ie.each(ie.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ct[t]||ie.find.attr;Ct[t]=kt&&Et||!Nt.test(t)?function(e,t,r){var i,o;return r||(o=Ct[t],Ct[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,Ct[t]=o),i}:function(e,t,n){return n?void 0:e[ie.camelCase("default-"+t)]?t.toLowerCase():null}}),kt&&Et||(ie.attrHooks.value={set:function(e,t,n){return ie.nodeName(e,"input")?void(e.defaultValue=t):wt&&wt.set(e,t,n)}}),Et||(wt={set:function(e,t,n){var r=e.getAttributeNode(n);return r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},Ct.id=Ct.name=Ct.coords=function(e,t,n){var r;return n?void 0:(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},ie.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:wt.set},ie.attrHooks.contenteditable={set:function(e,t,n){wt.set(e,""===t?!1:t,n)}},ie.each(["width","height"],function(e,t){ie.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),ne.style||(ie.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var St=/^(?:input|select|textarea|button|object)$/i,At=/^(?:a|area)$/i;ie.fn.extend({prop:function(e,t){return De(this,ie.prop,e,t,arguments.length>1)},removeProp:function(e){return e=ie.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),ie.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,a=e.nodeType;return e&&3!==a&&8!==a&&2!==a?(o=1!==a||!ie.isXMLDoc(e),o&&(t=ie.propFix[t]||t,i=ie.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]):void 0},propHooks:{tabIndex:{get:function(e){var t=ie.find.attr(e,"tabindex");return t?parseInt(t,10):St.test(e.nodeName)||At.test(e.nodeName)&&e.href?0:-1}}}}),ne.hrefNormalized||ie.each(["href","src"],function(e,t){ie.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ne.optSelected||(ie.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),ie.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ie.propFix[this.toLowerCase()]=this}),ne.enctype||(ie.propFix.enctype="encoding");var Dt=/[\t\r\n\f]/g;ie.fn.extend({addClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u="string"==typeof e&&e;if(ie.isFunction(e))return this.each(function(t){ie(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(be)||[];l>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Dt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=ie.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0,l=this.length,u=0===arguments.length||"string"==typeof e&&e;if(ie.isFunction(e))return this.each(function(t){ie(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(be)||[];l>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Dt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?ie.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(ie.isFunction(e)?function(n){ie(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=ie(this),o=e.match(be)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===Ce||"boolean"===n)&&(this.className&&ie._data(this,"__className__",this.className),this.className=this.className||e===!1?"":ie._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Dt," ").indexOf(t)>=0)return!0;return!1}}),ie.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ie.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ie.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var jt=ie.now(),Lt=/\?/,Ht=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;ie.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=ie.trim(t+"");return i&&!ie.trim(i.replace(Ht,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():ie.error("Invalid JSON: "+t)},ie.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new DOMParser,n=r.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||ie.error("Invalid XML: "+t),n};var _t,qt,Mt=/#.*$/,Ot=/([?&])_=[^&]*/,Ft=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Bt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Rt=/^\/\//,Wt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,$t={},zt={},It="*/".concat("*");try{qt=location.href}catch(Xt){qt=he.createElement("a"),qt.href="",qt=qt.href}_t=Wt.exec(qt.toLowerCase())||[],ie.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qt,type:"GET",isLocal:Bt.test(_t[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ie.parseJSON,"text xml":ie.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?W(W(e,ie.ajaxSettings),t):W(ie.ajaxSettings,e)},ajaxPrefilter:P($t),ajaxTransport:P(zt),ajax:function(e,t){function n(e,t,n,r){var i,c,v,y,x,T=t;2!==b&&(b=2,s&&clearTimeout(s),u=void 0,a=r||"",w.readyState=e>0?4:0,i=e>=200&&300>e||304===e,n&&(y=$(d,w,n)),y=z(d,y,w,i),i?(d.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(ie.lastModified[o]=x),x=w.getResponseHeader("etag"),x&&(ie.etag[o]=x)),204===e||"HEAD"===d.type?T="nocontent":304===e?T="notmodified":(T=y.state,c=y.data,v=y.error,i=!v)):(v=T,(e||!T)&&(T="error",0>e&&(e=0))),w.status=e,w.statusText=(t||T)+"",i?h.resolveWith(f,[c,T,w]):h.rejectWith(f,[w,T,v]),w.statusCode(g),g=void 0,l&&p.trigger(i?"ajaxSuccess":"ajaxError",[w,d,i?c:v]),m.fireWith(f,[w,T]),l&&(p.trigger("ajaxComplete",[w,d]),--ie.active||ie.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,l,u,c,d=ie.ajaxSetup({},t),f=d.context||d,p=d.context&&(f.nodeType||f.jquery)?ie(f):ie.event,h=ie.Deferred(),m=ie.Callbacks("once memory"),g=d.statusCode||{},v={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c)for(c={};t=Ft.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)g[t]=[g[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||x;return u&&u.abort(t),n(0,t),this}};if(h.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,d.url=((e||d.url||qt)+"").replace(Mt,"").replace(Rt,_t[1]+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=ie.trim(d.dataType||"*").toLowerCase().match(be)||[""],null==d.crossDomain&&(r=Wt.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]===_t[1]&&r[2]===_t[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(_t[3]||("http:"===_t[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=ie.param(d.data,d.traditional)),R($t,d,t,w),2===b)return w;l=d.global,l&&0===ie.active++&&ie.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Pt.test(d.type),o=d.url,d.hasContent||(d.data&&(o=d.url+=(Lt.test(o)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Ot.test(o)?o.replace(Ot,"$1_="+jt++):o+(Lt.test(o)?"&":"?")+"_="+jt++)),d.ifModified&&(ie.lastModified[o]&&w.setRequestHeader("If-Modified-Since",ie.lastModified[o]),ie.etag[o]&&w.setRequestHeader("If-None-Match",ie.etag[o])),(d.data&&d.hasContent&&d.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",d.contentType),w.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+It+"; q=0.01":""):d.accepts["*"]);for(i in d.headers)w.setRequestHeader(i,d.headers[i]);if(d.beforeSend&&(d.beforeSend.call(f,w,d)===!1||2===b))return w.abort();x="abort";for(i in{success:1,error:1,complete:1})w[i](d[i]);if(u=R(zt,d,t,w)){w.readyState=1,l&&p.trigger("ajaxSend",[w,d]),d.async&&d.timeout>0&&(s=setTimeout(function(){w.abort("timeout")},d.timeout));try{b=1,u.send(v,n)}catch(T){if(!(2>b))throw T;n(-1,T)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return ie.get(e,t,n,"json")},getScript:function(e,t){return ie.get(e,void 0,t,"script")}}),ie.each(["get","post"],function(e,t){ie[t]=function(e,n,r,i){return ie.isFunction(n)&&(i=i||r,r=n,n=void 0),ie.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),ie.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ie.fn[t]=function(e){return this.on(t,e)}}),ie._evalUrl=function(e){return ie.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ie.fn.extend({wrapAll:function(e){if(ie.isFunction(e))return this.each(function(t){ie(this).wrapAll(e.call(this,t))});if(this[0]){var t=ie(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(ie.isFunction(e)?function(t){ie(this).wrapInner(e.call(this,t))}:function(){var t=ie(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ie.isFunction(e);return this.each(function(n){ie(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ie.nodeName(this,"body")||ie(this).replaceWith(this.childNodes)}).end()}}),ie.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ne.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||ie.css(e,"display"))},ie.expr.filters.visible=function(e){return!ie.expr.filters.hidden(e)};var Ut=/%20/g,Vt=/\[\]$/,Jt=/\r?\n/g,Yt=/^(?:submit|button|image|reset|file)$/i,Gt=/^(?:input|select|textarea|keygen)/i;ie.param=function(e,t){var n,r=[],i=function(e,t){t=ie.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ie.ajaxSettings&&ie.ajaxSettings.traditional),ie.isArray(e)||e.jquery&&!ie.isPlainObject(e))ie.each(e,function(){i(this.name,this.value)});else for(n in e)I(n,e[n],t,i);return r.join("&").replace(Ut,"+")},ie.fn.extend({serialize:function(){return ie.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ie.prop(this,"elements");return e?ie.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ie(this).is(":disabled")&&Gt.test(this.nodeName)&&!Yt.test(e)&&(this.checked||!je.test(e))}).map(function(e,t){var n=ie(this).val();return null==n?null:ie.isArray(n)?ie.map(n,function(e){return{name:t.name,value:e.replace(Jt,"\r\n")}}):{name:t.name,value:n.replace(Jt,"\r\n")}}).get()}}),ie.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&X()||U()}:X;var Qt=0,Kt={},Zt=ie.ajaxSettings.xhr();e.ActiveXObject&&ie(e).on("unload",function(){for(var e in Kt)Kt[e](void 0,!0)}),ne.cors=!!Zt&&"withCredentials"in Zt,Zt=ne.ajax=!!Zt,Zt&&ie.ajaxTransport(function(e){if(!e.crossDomain||ne.cors){var t;return{send:function(n,r){var i,o=e.xhr(),a=++Qt;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)void 0!==n[i]&&o.setRequestHeader(i,n[i]+"");o.send(e.hasContent&&e.data||null),t=function(n,i){var s,l,u;if(t&&(i||4===o.readyState))if(delete Kt[a],t=void 0,o.onreadystatechange=ie.noop,i)4!==o.readyState&&o.abort();else{u={},s=o.status,"string"==typeof o.responseText&&(u.text=o.responseText);try{l=o.statusText}catch(c){l=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=u.text?200:404}u&&r(s,l,u,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=Kt[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),ie.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ie.globalEval(e),e}}}),ie.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),ie.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=he.head||ie("head")[0]||he.documentElement;return{send:function(r,i){t=he.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var en=[],tn=/(=)\?(?=&|$)|\?\?/;ie.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=en.pop()||ie.expando+"_"+jt++;return this[e]=!0,e}}),ie.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(tn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&tn.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=ie.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(tn,"$1"+i):t.jsonp!==!1&&(t.url+=(Lt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||ie.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,en.push(i)),a&&ie.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),ie.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||he;var r=de.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ie.buildFragment([e],t,i),i&&i.length&&ie(i).remove(),ie.merge([],r.childNodes))};var nn=ie.fn.load;ie.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=ie.trim(e.slice(s,e.length)),e=e.slice(0,s)),ie.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&ie.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?ie("").append(ie.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},ie.expr.filters.animated=function(e){return ie.grep(ie.timers,function(t){return e===t.elem}).length};var rn=e.document.documentElement;ie.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,u,c=ie.css(e,"position"),d=ie(e),f={};"static"===c&&(e.style.position="relative"),s=d.offset(),o=ie.css(e,"top"),l=ie.css(e,"left"),u=("absolute"===c||"fixed"===c)&&ie.inArray("auto",[o,l])>-1,u?(r=d.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),ie.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):d.css(f)}},ie.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ie.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;return o?(t=o.documentElement,ie.contains(t,i)?(typeof i.getBoundingClientRect!==Ce&&(r=i.getBoundingClientRect()),n=V(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===ie.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ie.nodeName(e[0],"html")||(n=e.offset()),n.top+=ie.css(e[0],"borderTopWidth",!0),n.left+=ie.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-ie.css(r,"marginTop",!0),left:t.left-n.left-ie.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||rn;e&&!ie.nodeName(e,"html")&&"static"===ie.css(e,"position");)e=e.offsetParent;return e||rn})}}),ie.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);ie.fn[e]=function(r){return De(this,function(e,r,i){var o=V(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?ie(o).scrollLeft():i,n?i:ie(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),ie.each(["top","left"],function(e,t){ie.cssHooks[t]=k(ne.pixelPosition,function(e,n){return n?(n=tt(e,t),rt.test(n)?ie(e).position()[t]+"px":n):void 0})}),ie.each({Height:"height",Width:"width"},function(e,t){ie.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){ie.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return De(this,function(t,n,r){var i;return ie.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?ie.css(t,n,a):ie.style(t,n,r,a);
5 |
6 | },t,o?r:void 0,o,null)}})}),ie.fn.size=function(){return this.length},ie.fn.andSelf=ie.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ie});var on=e.jQuery,an=e.$;return ie.noConflict=function(t){return e.$===ie&&(e.$=an),t&&e.jQuery===ie&&(e.jQuery=on),ie},typeof t===Ce&&(e.jQuery=e.$=ie),ie});
--------------------------------------------------------------------------------