Changeset - dd8f0ba9c517
[Not reviewed]
gulp/config/index.js
Show inline comments
 
new file 100644
 
const templatePath = 'pinaxcon/templates/';
 
const staticRoot = 'static/';
 
const staticSource = staticRoot + 'src/';
 
const staticBuild = staticRoot + '_build/';
 
const staticDist = staticRoot + 'dist/';
 
const npmRoot = 'node_modules/';
 

	
 

	
 
exports = module.exports = {
 
    staticUrlRoot: '/site_media/static',
 
    paths: {
 
        source: staticSource,
 
        build: staticBuild,
 
        dist: staticDist
 
    },
 
    watch: {
 
        styles: [
 
            staticSource + 'less/**/*.less'
 
        ],
 
        scripts: [
 
            staticSource + 'js/**/*.js'
 
        ]
 
    },
 
    templates: {
 
        destination: templatePath,
 
        manifestPath: staticBuild + 'manifest.json',
 
        scriptsTemplate: staticSource + 'hbs/_scripts.hbs',
 
        stylesTemplate: staticSource + 'hbs/_styles.hbs',
 
    },
 
    fonts: {
 
        sources: [
 
            npmRoot + 'font-awesome/fonts/**.*',
 
            npmRoot + 'bootstrap/fonts/**.*',
 
        ],
 
        dist: staticDist + 'fonts/'
 
    },
 
    styles: {
 
        source: staticSource + 'less/site.less',
 
        dist: staticBuild + 'css/',
 
        npmPaths: [
 
            npmRoot + 'bootstrap/less',
 
            npmRoot + 'font-awesome/less',
 
            npmRoot
 
        ]
 
    },
 
    scripts: {
 
        main: staticSource + 'js/site.js',
 
        source: [
 
            staticSource + 'js/**/*'
 
        ],
 
        dist: staticBuild + 'js/'
 
    },
 
    images: {
 
        sources: [
 
            staticSource + 'images/**.*'
 
        ],
 
        dist: staticDist + 'images/'
 
    },
 
    manifest: {
 
        source: [
 
            staticBuild + '**/*.css',
 
            staticBuild + '**/*.js'
 
        ]
 
    },
 
    test: {
 
        all: 'test/**/*.test.js',
 
        req: 'test/req/*.test.js',
 
        components: 'test/components/*.test.js'
 
      },
 
    xo: {
 
       source: [
 
         'tasks/**/*.js',
 
         staticSource + '**/*.js'
 
       ]
 
   },
 
   optimize: {
 
     css: {
 
       source: staticDist + 'css/*.css',
 
       options: {},
 
       dist: staticDist + 'css/'
 
     },
 
     js: {
 
       source: staticDist + 'js/*.js',
 
       options: {},
 
       dist: staticDist + 'js/'
 
     }
 
   }
 
};
gulp/tasks/browserify.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const path = require('path');
 
const browserify = require('browserify');
 
const babelify   = require('babelify');
 
const source     = require('vinyl-source-stream');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  const built = browserify(entry)
 
    .transform(babelify);
 
  return built.bundle().pipe(source(path.basename(entry)));
 
};
gulp/tasks/clean.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const del = require('del');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return del(entry, config);
 
};
gulp/tasks/cleanup.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const cleanup = require('gulp-cleanup');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = config => {
 
  config = config || {};
 
  return cleanup();
 
};
gulp/tasks/copy.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 

	
 
/**
 
 * Module body
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry, config);
 
};
gulp/tasks/css.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp   = require('gulp');
 
const less   = require('gulp-less');
 
const prefix = require('gulp-autoprefixer');
 

	
 
/**
 
 * Module body
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  config.less = config.less || {};
 
  config.autoprefixer = config.autoprefixer || {};
 

	
 
  return gulp.src(entry)
 
    .pipe(less(config.less))
 
    .pipe(prefix(config.autoprefixer));
 
};
gulp/tasks/handlebars.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const fs = require('fs');
 
const gulp  = require('gulp');
 
const handlebars = require('gulp-compile-handlebars');
 
const path = require('path');
 
const rename = require('gulp-rename');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (manifestPath, scriptSourceTemplate, staticRoot) => {
 
  const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
 
  const handlebarOpts = {
 
            helpers: {
 
                assetPath: (path, context) => {
 
                    return [staticRoot, context.data.root[path]].join('/');
 
                }
 
            }
 
        };
 
  const outputFile = path.basename(scriptSourceTemplate).replace('.hbs', '.html');
 
  return gulp.src(scriptSourceTemplate)
 
      .pipe(handlebars(manifest, handlebarOpts))
 
      .pipe(rename(outputFile));
 
};
gulp/tasks/index.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const path    = require('path');
 
const modules = {};
 

	
 
/**
 
 * Module body
 
 */
 
const load = function load(name) {
 
  return require(path.resolve(__dirname, name));
 
};
 

	
 
const tasks = [
 
  'clean',
 
  'css',
 
  'browserify',
 
  'test',
 
  'xo',
 
  'rev',
 
  'manifest',
 
  'cleanup',
 
  'copy',
 
  'handlebars',
 
  'optimizejs',
 
  'optimizecss'
 
];
 

	
 
tasks.forEach(task => {
 
  modules[task] = load(task);
 
});
 

	
 
/**
 
 * Expose
 
 */
 
exports = module.exports = modules;
gulp/tasks/manifest.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const rev = require('gulp-rev');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = config => {
 
  config = config || {};
 
  config.path = config.path || 'manifest.json';
 
  return rev.manifest(config);
 
};
gulp/tasks/optimizecss.js
Show inline comments
 
new file 100644
 
const gulp = require('gulp');
 
const nano = require('gulp-cssnano');
 
const size = require('gulp-size');
 

	
 

	
 
module.exports = (source, options, dist) => {
 
    return gulp.src(source)
 
        .pipe(nano(options))
 
        .pipe(gulp.dest(dist))
 
        .pipe(size());
 
};
gulp/tasks/optimizejs.js
Show inline comments
 
new file 100644
 
const gulp   = require('gulp');
 
const uglify = require('gulp-uglify');
 
const size   = require('gulp-size');
 

	
 

	
 
module.exports = (source, options, dist) => {
 
    return gulp.src(source)
 
        .pipe(uglify(options))
 
        .pipe(gulp.dest(dist))
 
        .pipe(size());
 
};
gulp/tasks/rev.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 
const rev  = require('gulp-rev');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry)
 
    .pipe(rev());
 
};
gulp/tasks/test.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp  = require('gulp');
 
const mocha = require('gulp-mocha');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry, config)
 
    .pipe(mocha({
 
      require: [
 
        'babel-register'
 
      ]
 
    }));
 
};
gulp/tasks/xo.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 
const xo   = require('gulp-xo');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry)
 
    .pipe(xo());
 
};
gulpfile.js
Show inline comments
 
new file 100644
 
/**
 
 * Setup
 
 */
 
process.title = process.title || 'gulp';
 

	
 
/**
 
 * Dependencies
 
 */
 
const path = require('path');
 
const gulp = require('gulp');
 

	
 
/**
 
 * Setup
 
 */
 
const tasks = require(path.resolve(__dirname, 'gulp/tasks'));
 
const config = require(path.resolve(__dirname, 'gulp/config'));
 

	
 
/**
 
 * Tasks
 
 */
 
gulp.task('build:clean', function buildClean() {
 
  tasks.clean(config.paths.build);
 
  return tasks.clean(config.paths.dist);
 
});
 

	
 
gulp.task('build:styles', function buildStyles() {
 
  return tasks.css(config.styles.source, {less: {paths: config.styles.npmPaths}})
 
    .pipe(gulp.dest(config.styles.dist));
 
});
 

	
 
gulp.task('build:js', function buildJS() {
 
  return tasks.browserify(config.scripts.main)
 
    .pipe(gulp.dest(config.scripts.dist));
 
});
 

	
 
gulp.task('manifest', function manifest() {
 
  return tasks.rev(config.manifest.source)
 
    .pipe(gulp.dest(config.paths.dist))
 
    .pipe(tasks.manifest())
 
    .pipe(gulp.dest(config.paths.build));
 
});
 

	
 
gulp.task('build:copy-icons', function() {

 
    return tasks.copy(config.fonts.sources)
 
        .pipe(gulp.dest(config.fonts.dist));

 
});
 
gulp.task('build:copy-images', function() {
 
    return tasks.copy(config.images.sources).pipe(gulp.dest(config.images.dist));
 
});
 

	
 
gulp.task('build:script-include', function () {
 
    return tasks.handlebars(config.templates.manifestPath, config.templates.scriptsTemplate, config.staticUrlRoot)
 
        .pipe(gulp.dest(config.templates.destination));
 
});
 

	
 
gulp.task('build:style-include', function () {
 
    return tasks.handlebars(config.templates.manifestPath, config.templates.stylesTemplate, config.staticUrlRoot)
 
        .pipe(gulp.dest(config.templates.destination));
 
});
 

	
 
gulp.task('test', function test() {
 
  return tasks.test(config.test.all);
 
});
 

	
 
gulp.task('test:req', function testReq() {
 
  return tasks.test(config.test.req);
 
});
 

	
 
gulp.task('test:components', function testComponents() {
 
  return tasks.test(config.test.components);
 
});
 

	
 
gulp.task('xo', function xo() {
 
  return tasks.xo(config.xo.source);
 
});
 

	
 
gulp.task('optimize:js', function () {
 
  return tasks.optimizejs(config.optimize.js.source, config.optimize.js.options, config.optimize.js.dist);
 
});
 

	
 
gulp.task('optimize:css', function () {
 
  return tasks.optimizecss(config.optimize.css.source, config.optimize.css.options, config.optimize.css.dist);
 
});
 

	
 
/**
 
 * Compound Tasks
 
 */
 
gulp.task('watch', function watch() {
 
  gulp.watch(config.watch.styles, gulp.series(['build:styles', 'manifest', 'build:style-include']));
 
  gulp.watch(config.watch.scripts, gulp.series(['build:js', 'manifest', 'build:script-include']));
 
});
 

	
 
gulp.task('build', gulp.series([
 
  'xo',
 
  'build:clean',
 
  gulp.parallel([
 
    'build:styles',
 
    'build:js',
 
    'build:copy-icons',
 
    'build:copy-images'
 
  ]),
 
  'manifest',
 
  'build:script-include',
 
  'build:style-include'
 
]));
 

	
 
gulp.task('default', gulp.series([
 
  'build',
 
  'watch'
 
]));
 

	
 
gulp.task('release', gulp.series([
 
    'build',
 
    'optimize:js',
 
    'optimize:css'
 
]));
package.json
Show inline comments
 
{
 
  "repository": {
 
    "type": "git",
 
    "url": "https://github.com/pinax/pinax-project"
 
    "url": "https://github.com/pinax/PinaxCon"
 
  },
 
  "scripts": {
 
     "build": "./node_modules/.bin/webpack --config=static/webpack.config.js -p",
 
     "watch": "./node_modules/.bin/webpack --config=static/webpack.config.js -w"
 
    "build": "NODE_PATH=. ./node_modules/.bin/gulp release",
 
    "watch": "NODE_PATH=. ./node_modules/.bin/gulp",
 
    "lint": "NODE_PATH=. ./node_modules/.bin/gulp xo",
 
    "test": "./node_modules/.bin/gulp test"
 
  },
 
  "license": "",
 
  "dependencies": {
 
    "babel-core": "^5.8.23",
 
    "babel-loader": "^5.3.2",
 
    "bootstrap": "^3.3.5",
 
    "css-loader": "^0.17.0",
 
    "extract-text-webpack-plugin": "^0.8.2",
 
    "file-loader": "^0.8.4",
 
    "font-awesome": "^4.4.0",
 
    "html-webpack-plugin": "^1.6.1",
 
    "jquery": "^2.1.4",
 
    "less": "^2.5.1",
 
    "less-loader": "^2.2.0",
 
    "style-loader": "^0.12.3",
 
    "webpack": "^1.12.1"
 
    "bootstrap": "^3.3.6",
 
    "font-awesome": "^4.5.0",
 
    "jquery": "^2.1.4"
 
  },
 
  "babel": {
 
    "presets": [
 
      "stage-1"
 
    ],
 
    "plugins": [
 
      "check-es2015-constants",
 
      "transform-es2015-arrow-functions",
 
      "transform-es2015-block-scoped-functions",
 
      "transform-es2015-block-scoping",
 
      "transform-es2015-classes",
 
      "transform-es2015-computed-properties",
 
      "transform-es2015-destructuring",
 
      "transform-es2015-for-of",
 
      "transform-es2015-function-name",
 
      "transform-es2015-literals",
 
      "transform-es2015-modules-commonjs",
 
      "transform-es2015-object-super",
 
      "transform-es2015-parameters",
 
      "transform-es2015-shorthand-properties",
 
      "transform-es2015-spread",
 
      "transform-es2015-sticky-regex",
 
      "transform-es2015-template-literals",
 
      "transform-es2015-typeof-symbol",
 
      "transform-es2015-unicode-regex"
 
    ],
 
    "ignore": [
 
      "node_modules/",
 
      "dist/"
 
    ]
 
  },
 
  "xo": {
 
    "esnext": true,
 
    "rules": {
 
      "indent": 0,
 
      "no-multi-spaces": 0,
 
      "no-trailing-spaces": 0,
 
      "brace-style": 0,
 
      "babel/object-curly-spacing": 0
 
    }
 
  },
 
  "devDependencies": {
 
    "babel-plugin-check-es2015-constants": "^6.3.13",
 
    "babel-plugin-transform-es2015-arrow-functions": "^6.3.13",
 
    "babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13",
 
    "babel-plugin-transform-es2015-block-scoping": "^6.3.13",
 
    "babel-plugin-transform-es2015-classes": "^6.3.15",
 
    "babel-plugin-transform-es2015-computed-properties": "^6.3.13",
 
    "babel-plugin-transform-es2015-destructuring": "^6.3.15",
 
    "babel-plugin-transform-es2015-for-of": "^6.3.13",
 
    "babel-plugin-transform-es2015-function-name": "^6.3.21",
 
    "babel-plugin-transform-es2015-literals": "^6.3.13",
 
    "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16",
 
    "babel-plugin-transform-es2015-object-super": "^6.3.13",
 
    "babel-plugin-transform-es2015-parameters": "^6.3.26",
 
    "babel-plugin-transform-es2015-shorthand-properties": "^6.3.13",
 
    "babel-plugin-transform-es2015-spread": "^6.3.14",
 
    "babel-plugin-transform-es2015-sticky-regex": "^6.3.13",
 
    "babel-plugin-transform-es2015-template-literals": "^6.3.13",
 
    "babel-plugin-transform-es2015-typeof-symbol": "^6.3.13",
 
    "babel-plugin-transform-es2015-unicode-regex": "^6.3.13",
 
    "babel-preset-es2015": "^6.3.13",
 
    "babel-preset-stage-1": "^6.3.13",
 
    "babelify": "^7.2.0",
 
    "browserify": "^12.0.1",
 
    "browserify-hmr": "^0.3.1",
 
    "del": "^2.2.0",
 
    "fs": "0.0.2",
 
    "gulp": "gulpjs/gulp#4.0",
 
    "gulp-autoprefixer": "^3.1.0",
 
    "gulp-cleanup": "^1.0.0",
 
    "gulp-compile-handlebars": "^0.6.1",
 
    "gulp-cssnano": "^2.0.0",
 
    "gulp-less": "^3.0.5",
 
    "gulp-mocha": "^2.2.0",
 
    "gulp-rename": "^1.2.2",
 
    "gulp-rev": "^6.0.1",
 
    "gulp-size": "^2.0.0",
 
    "gulp-uglify": "^1.5.1",
 
    "gulp-util": "^3.0.7",
 
    "gulp-xo": "^0.7.0",
 
    "vinyl-source-stream": "^1.1.0",
 
    "watchify": "^3.6.1"
 
  }
 
}
pinaxcon/templates/_scripts.html
Show inline comments
 
<script src='/site_media/static/js/site.js?7324c997497bcdad9dd0'></script>
 
<script src='/site_media/static/js/site-92ae8d0d6c.js'></script>
pinaxcon/templates/_styles.html
Show inline comments
 
<link href='/site_media/static/css/site.css?7324c997497bcdad9dd0' rel='stylesheet' />
 
<link href='/site_media/static/css/site-cf99a8bad7.css' rel='stylesheet' />
static/STATIC_README.md
Show inline comments
 
# Static Media
 

	
 
We are using `webpack` and `npm` for our static build process. A configuration
 
that should work for most cases has already been configured and statics come
 
pre-built so you don't need to do anything unless you change anything in the
 
`src/` directory.
 
We are using `gulp` and `npm` for our static build process.
 

	
 
Do NOT edit anything in the `dist/` directory.
 

	
 
Local development uses media from `dist/` and we are firm believers in building
 
static assets and committing them to the repo before deployments. This way we
 
always are testing and exercise exactly what will be served in production. It
 
also makes our deployment simpler.
 

	
 
## Images
 

	
 
If you want to add images to be referenced in your site's HTML or CSS there are
 
a couple things you need to be aware of.
 

	
 
You should first create a folder under `src/` called `images` (you can change
 
the name of this by updating your `webpack.config.js` to look for something
 
else). Store all your source images in this folder (or subfolders).
 

	
 
### CSS
 

	
 
Whether you use SASS or LESS, you will reference your images using relative
 
urls:
 

	
 
```css
 
div {
 
    background-image: url(../images/background.png);
 
}
 
```
 

	
 
### HTML
 

	
 
If you want to use an `img` tag you will need to do a couple things:
 

	
 
```html
 
<img src="{% static "images/picture.png" %}" />
 
```
 

	
 
then in your `src/js/main.js` you need to tell `webpack` that you are going to
 
reference that image:
 

	
 
```js
 
require("../images/picture.png");
 
```
static/_build/css/site.css
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 
html {
 
  font-family: sans-serif;
 
  -ms-text-size-adjust: 100%;
 
  -webkit-text-size-adjust: 100%;
 
}
 
body {
 
  margin: 0;
 
}
 
article,
 
aside,
 
details,
 
figcaption,
 
figure,
 
footer,
 
header,
 
hgroup,
 
main,
 
menu,
 
nav,
 
section,
 
summary {
 
  display: block;
 
}
 
audio,
 
canvas,
 
progress,
 
video {
 
  display: inline-block;
 
  vertical-align: baseline;
 
}
 
audio:not([controls]) {
 
  display: none;
 
  height: 0;
 
}
 
[hidden],
 
template {
 
  display: none;
 
}
 
a {
 
  background-color: transparent;
 
}
 
a:active,
 
a:hover {
 
  outline: 0;
 
}
 
abbr[title] {
 
  border-bottom: 1px dotted;
 
}
 
b,
 
strong {
 
  font-weight: bold;
 
}
 
dfn {
 
  font-style: italic;
 
}
 
h1 {
 
  font-size: 2em;
 
  margin: 0.67em 0;
 
}
 
mark {
 
  background: #ff0;
 
  color: #000;
 
}
 
small {
 
  font-size: 80%;
 
}
 
sub,
 
sup {
 
  font-size: 75%;
 
  line-height: 0;
 
  position: relative;
 
  vertical-align: baseline;
 
}
 
sup {
 
  top: -0.5em;
 
}
 
sub {
 
  bottom: -0.25em;
 
}
 
img {
 
  border: 0;
 
}
 
svg:not(:root) {
 
  overflow: hidden;
 
}
 
figure {
 
  margin: 1em 40px;
 
}
 
hr {
 
  box-sizing: content-box;
 
  height: 0;
 
}
 
pre {
 
  overflow: auto;
 
}
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: monospace, monospace;
 
  font-size: 1em;
 
}
 
button,
 
input,
 
optgroup,
 
select,
 
textarea {
 
  color: inherit;
 
  font: inherit;
 
  margin: 0;
 
}
 
button {
 
  overflow: visible;
 
}
 
button,
 
select {
 
  text-transform: none;
 
}
 
button,
 
html input[type="button"],
 
input[type="reset"],
 
input[type="submit"] {
 
  -webkit-appearance: button;
 
  cursor: pointer;
 
}
 
button[disabled],
 
html input[disabled] {
 
  cursor: default;
 
}
 
button::-moz-focus-inner,
 
input::-moz-focus-inner {
 
  border: 0;
 
  padding: 0;
 
}
 
input {
 
  line-height: normal;
 
}
 
input[type="checkbox"],
 
input[type="radio"] {
 
  box-sizing: border-box;
 
  padding: 0;
 
}
 
input[type="number"]::-webkit-inner-spin-button,
 
input[type="number"]::-webkit-outer-spin-button {
 
  height: auto;
 
}
 
input[type="search"] {
 
  -webkit-appearance: textfield;
 
  box-sizing: content-box;
 
}
 
input[type="search"]::-webkit-search-cancel-button,
 
input[type="search"]::-webkit-search-decoration {
 
  -webkit-appearance: none;
 
}
 
fieldset {
 
  border: 1px solid #c0c0c0;
 
  margin: 0 2px;
 
  padding: 0.35em 0.625em 0.75em;
 
}
 
legend {
 
  border: 0;
 
  padding: 0;
 
}
 
textarea {
 
  overflow: auto;
 
}
 
optgroup {
 
  font-weight: bold;
 
}
 
table {
 
  border-collapse: collapse;
 
  border-spacing: 0;
 
}
 
td,
 
th {
 
  padding: 0;
 
}
 
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 
@media print {
 
  *,
 
  *:before,
 
  *:after {
 
    background: transparent !important;
 
    color: #000 !important;
 
    box-shadow: none !important;
 
    text-shadow: none !important;
 
  }
 
  a,
 
  a:visited {
 
    text-decoration: underline;
 
  }
 
  a[href]:after {
 
    content: " (" attr(href) ")";
 
  }
 
  abbr[title]:after {
 
    content: " (" attr(title) ")";
 
  }
 
  a[href^="#"]:after,
 
  a[href^="javascript:"]:after {
 
    content: "";
 
  }
 
  pre,
 
  blockquote {
 
    border: 1px solid #999;
 
    page-break-inside: avoid;
 
  }
 
  thead {
 
    display: table-header-group;
 
  }
 
  tr,
 
  img {
 
    page-break-inside: avoid;
 
  }
 
  img {
 
    max-width: 100% !important;
 
  }
 
  p,
 
  h2,
 
  h3 {
 
    orphans: 3;
 
    widows: 3;
 
  }
 
  h2,
 
  h3 {
 
    page-break-after: avoid;
 
  }
 
  .navbar {
 
    display: none;
 
  }
 
  .btn > .caret,
 
  .dropup > .btn > .caret {
 
    border-top-color: #000 !important;
 
  }
 
  .label {
 
    border: 1px solid #000;
 
  }
 
  .table {
 
    border-collapse: collapse !important;
 
  }
 
  .table td,
 
  .table th {
 
    background-color: #fff !important;
 
  }
 
  .table-bordered th,
 
  .table-bordered td {
 
    border: 1px solid #ddd !important;
 
  }
 
}
 
@font-face {
 
  font-family: 'Glyphicons Halflings';
 
  src: url('../fonts/glyphicons-halflings-regular.eot');
 
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
 
}
 
.glyphicon {
 
  position: relative;
 
  top: 1px;
 
  display: inline-block;
 
  font-family: 'Glyphicons Halflings';
 
  font-style: normal;
 
  font-weight: normal;
 
  line-height: 1;
 
  -webkit-font-smoothing: antialiased;
 
  -moz-osx-font-smoothing: grayscale;
 
}
 
.glyphicon-asterisk:before {
 
  content: "\002a";
 
}
 
.glyphicon-plus:before {
 
  content: "\002b";
 
}
 
.glyphicon-euro:before,
 
.glyphicon-eur:before {
 
  content: "\20ac";
 
}
 
.glyphicon-minus:before {
 
  content: "\2212";
 
}
 
.glyphicon-cloud:before {
 
  content: "\2601";
 
}
 
.glyphicon-envelope:before {
 
  content: "\2709";
 
}
 
.glyphicon-pencil:before {
 
  content: "\270f";
 
}
 
.glyphicon-glass:before {
 
  content: "\e001";
 
}
 
.glyphicon-music:before {
 
  content: "\e002";
 
}
 
.glyphicon-search:before {
 
  content: "\e003";
 
}
 
.glyphicon-heart:before {
 
  content: "\e005";
 
}
 
.glyphicon-star:before {
 
  content: "\e006";
 
}
 
.glyphicon-star-empty:before {
 
  content: "\e007";
 
}
 
.glyphicon-user:before {
 
  content: "\e008";
 
}
 
.glyphicon-film:before {
 
  content: "\e009";
 
}
 
.glyphicon-th-large:before {
 
  content: "\e010";
 
}
 
.glyphicon-th:before {
 
  content: "\e011";
 
}
 
.glyphicon-th-list:before {
 
  content: "\e012";
 
}
 
.glyphicon-ok:before {
 
  content: "\e013";
 
}
 
.glyphicon-remove:before {
 
  content: "\e014";
 
}
 
.glyphicon-zoom-in:before {
 
  content: "\e015";
 
}
 
.glyphicon-zoom-out:before {
 
  content: "\e016";
 
}
 
.glyphicon-off:before {
 
  content: "\e017";
 
}
 
.glyphicon-signal:before {
 
  content: "\e018";
 
}
 
.glyphicon-cog:before {
 
  content: "\e019";
 
}
 
.glyphicon-trash:before {
 
  content: "\e020";
 
}
 
.glyphicon-home:before {
 
  content: "\e021";
 
}
 
.glyphicon-file:before {
 
  content: "\e022";
 
}
 
.glyphicon-time:before {
 
  content: "\e023";
 
}
 
.glyphicon-road:before {
 
  content: "\e024";
 
}
 
.glyphicon-download-alt:before {
 
  content: "\e025";
 
}
 
.glyphicon-download:before {
 
  content: "\e026";
 
}
 
.glyphicon-upload:before {
 
  content: "\e027";
 
}
 
.glyphicon-inbox:before {
 
  content: "\e028";
 
}
 
.glyphicon-play-circle:before {
 
  content: "\e029";
 
}
 
.glyphicon-repeat:before {
 
  content: "\e030";
 
}
 
.glyphicon-refresh:before {
 
  content: "\e031";
 
}
 
.glyphicon-list-alt:before {
 
  content: "\e032";
 
}
 
.glyphicon-lock:before {
 
  content: "\e033";
 
}
 
.glyphicon-flag:before {
 
  content: "\e034";
 
}
 
.glyphicon-headphones:before {
 
  content: "\e035";
 
}
 
.glyphicon-volume-off:before {
 
  content: "\e036";
 
}
 
.glyphicon-volume-down:before {
 
  content: "\e037";
 
}
 
.glyphicon-volume-up:before {
 
  content: "\e038";
 
}
 
.glyphicon-qrcode:before {
 
  content: "\e039";
 
}
 
.glyphicon-barcode:before {
 
  content: "\e040";
 
}
 
.glyphicon-tag:before {
 
  content: "\e041";
 
}
 
.glyphicon-tags:before {
 
  content: "\e042";
 
}
 
.glyphicon-book:before {
 
  content: "\e043";
 
}
 
.glyphicon-bookmark:before {
 
  content: "\e044";
 
}
 
.glyphicon-print:before {
 
  content: "\e045";
 
}
 
.glyphicon-camera:before {
 
  content: "\e046";
 
}
 
.glyphicon-font:before {
 
  content: "\e047";
 
}
 
.glyphicon-bold:before {
 
  content: "\e048";
 
}
 
.glyphicon-italic:before {
 
  content: "\e049";
 
}
 
.glyphicon-text-height:before {
 
  content: "\e050";
 
}
 
.glyphicon-text-width:before {
 
  content: "\e051";
 
}
 
.glyphicon-align-left:before {
 
  content: "\e052";
 
}
 
.glyphicon-align-center:before {
 
  content: "\e053";
 
}
 
.glyphicon-align-right:before {
 
  content: "\e054";
 
}
 
.glyphicon-align-justify:before {
 
  content: "\e055";
 
}
 
.glyphicon-list:before {
 
  content: "\e056";
 
}
 
.glyphicon-indent-left:before {
 
  content: "\e057";
 
}
 
.glyphicon-indent-right:before {
 
  content: "\e058";
 
}
 
.glyphicon-facetime-video:before {
 
  content: "\e059";
 
}
 
.glyphicon-picture:before {
 
  content: "\e060";
 
}
 
.glyphicon-map-marker:before {
 
  content: "\e062";
 
}
 
.glyphicon-adjust:before {
 
  content: "\e063";
 
}
 
.glyphicon-tint:before {
 
  content: "\e064";
 
}
 
.glyphicon-edit:before {
 
  content: "\e065";
 
}
 
.glyphicon-share:before {
 
  content: "\e066";
 
}
 
.glyphicon-check:before {
 
  content: "\e067";
 
}
 
.glyphicon-move:before {
 
  content: "\e068";
 
}
 
.glyphicon-step-backward:before {
 
  content: "\e069";
 
}
 
.glyphicon-fast-backward:before {
 
  content: "\e070";
 
}
 
.glyphicon-backward:before {
 
  content: "\e071";
 
}
 
.glyphicon-play:before {
 
  content: "\e072";
 
}
 
.glyphicon-pause:before {
 
  content: "\e073";
 
}
 
.glyphicon-stop:before {
 
  content: "\e074";
 
}
 
.glyphicon-forward:before {
 
  content: "\e075";
 
}
 
.glyphicon-fast-forward:before {
 
  content: "\e076";
 
}
 
.glyphicon-step-forward:before {
 
  content: "\e077";
 
}
 
.glyphicon-eject:before {
 
  content: "\e078";
 
}
 
.glyphicon-chevron-left:before {
 
  content: "\e079";
 
}
 
.glyphicon-chevron-right:before {
 
  content: "\e080";
 
}
 
.glyphicon-plus-sign:before {
 
  content: "\e081";
 
}
 
.glyphicon-minus-sign:before {
 
  content: "\e082";
 
}
 
.glyphicon-remove-sign:before {
 
  content: "\e083";
 
}
 
.glyphicon-ok-sign:before {
 
  content: "\e084";
 
}
 
.glyphicon-question-sign:before {
 
  content: "\e085";
 
}
 
.glyphicon-info-sign:before {
 
  content: "\e086";
 
}
 
.glyphicon-screenshot:before {
 
  content: "\e087";
 
}
 
.glyphicon-remove-circle:before {
 
  content: "\e088";
 
}
 
.glyphicon-ok-circle:before {
 
  content: "\e089";
 
}
 
.glyphicon-ban-circle:before {
 
  content: "\e090";
 
}
 
.glyphicon-arrow-left:before {
 
  content: "\e091";
 
}
 
.glyphicon-arrow-right:before {
 
  content: "\e092";
 
}
 
.glyphicon-arrow-up:before {
 
  content: "\e093";
 
}
 
.glyphicon-arrow-down:before {
 
  content: "\e094";
 
}
 
.glyphicon-share-alt:before {
 
  content: "\e095";
 
}
 
.glyphicon-resize-full:before {
 
  content: "\e096";
 
}
 
.glyphicon-resize-small:before {
 
  content: "\e097";
 
}
 
.glyphicon-exclamation-sign:before {
 
  content: "\e101";
 
}
 
.glyphicon-gift:before {
 
  content: "\e102";
 
}
 
.glyphicon-leaf:before {
 
  content: "\e103";
 
}
 
.glyphicon-fire:before {
 
  content: "\e104";
 
}
 
.glyphicon-eye-open:before {
 
  content: "\e105";
 
}
 
.glyphicon-eye-close:before {
 
  content: "\e106";
 
}
 
.glyphicon-warning-sign:before {
 
  content: "\e107";
 
}
 
.glyphicon-plane:before {
 
  content: "\e108";
 
}
 
.glyphicon-calendar:before {
 
  content: "\e109";
 
}
 
.glyphicon-random:before {
 
  content: "\e110";
 
}
 
.glyphicon-comment:before {
 
  content: "\e111";
 
}
 
.glyphicon-magnet:before {
 
  content: "\e112";
 
}
 
.glyphicon-chevron-up:before {
 
  content: "\e113";
 
}
 
.glyphicon-chevron-down:before {
 
  content: "\e114";
 
}
 
.glyphicon-retweet:before {
 
  content: "\e115";
 
}
 
.glyphicon-shopping-cart:before {
 
  content: "\e116";
 
}
 
.glyphicon-folder-close:before {
 
  content: "\e117";
 
}
 
.glyphicon-folder-open:before {
 
  content: "\e118";
 
}
 
.glyphicon-resize-vertical:before {
 
  content: "\e119";
 
}
 
.glyphicon-resize-horizontal:before {
 
  content: "\e120";
 
}
 
.glyphicon-hdd:before {
 
  content: "\e121";
 
}
 
.glyphicon-bullhorn:before {
 
  content: "\e122";
 
}
 
.glyphicon-bell:before {
 
  content: "\e123";
 
}
 
.glyphicon-certificate:before {
 
  content: "\e124";
 
}
 
.glyphicon-thumbs-up:before {
 
  content: "\e125";
 
}
 
.glyphicon-thumbs-down:before {
 
  content: "\e126";
 
}
 
.glyphicon-hand-right:before {
 
  content: "\e127";
 
}
 
.glyphicon-hand-left:before {
 
  content: "\e128";
 
}
 
.glyphicon-hand-up:before {
 
  content: "\e129";
 
}
 
.glyphicon-hand-down:before {
 
  content: "\e130";
 
}
 
.glyphicon-circle-arrow-right:before {
 
  content: "\e131";
 
}
 
.glyphicon-circle-arrow-left:before {
 
  content: "\e132";
 
}
 
.glyphicon-circle-arrow-up:before {
 
  content: "\e133";
 
}
 
.glyphicon-circle-arrow-down:before {
 
  content: "\e134";
 
}
 
.glyphicon-globe:before {
 
  content: "\e135";
 
}
 
.glyphicon-wrench:before {
 
  content: "\e136";
 
}
 
.glyphicon-tasks:before {
 
  content: "\e137";
 
}
 
.glyphicon-filter:before {
 
  content: "\e138";
 
}
 
.glyphicon-briefcase:before {
 
  content: "\e139";
 
}
 
.glyphicon-fullscreen:before {
 
  content: "\e140";
 
}
 
.glyphicon-dashboard:before {
 
  content: "\e141";
 
}
 
.glyphicon-paperclip:before {
 
  content: "\e142";
 
}
 
.glyphicon-heart-empty:before {
 
  content: "\e143";
 
}
 
.glyphicon-link:before {
 
  content: "\e144";
 
}
 
.glyphicon-phone:before {
 
  content: "\e145";
 
}
 
.glyphicon-pushpin:before {
 
  content: "\e146";
 
}
 
.glyphicon-usd:before {
 
  content: "\e148";
 
}
 
.glyphicon-gbp:before {
 
  content: "\e149";
 
}
 
.glyphicon-sort:before {
 
  content: "\e150";
 
}
 
.glyphicon-sort-by-alphabet:before {
 
  content: "\e151";
 
}
 
.glyphicon-sort-by-alphabet-alt:before {
 
  content: "\e152";
 
}
 
.glyphicon-sort-by-order:before {
 
  content: "\e153";
 
}
 
.glyphicon-sort-by-order-alt:before {
 
  content: "\e154";
 
}
 
.glyphicon-sort-by-attributes:before {
 
  content: "\e155";
 
}
 
.glyphicon-sort-by-attributes-alt:before {
 
  content: "\e156";
 
}
 
.glyphicon-unchecked:before {
 
  content: "\e157";
 
}
 
.glyphicon-expand:before {
 
  content: "\e158";
 
}
 
.glyphicon-collapse-down:before {
 
  content: "\e159";
 
}
 
.glyphicon-collapse-up:before {
 
  content: "\e160";
 
}
 
.glyphicon-log-in:before {
 
  content: "\e161";
 
}
 
.glyphicon-flash:before {
 
  content: "\e162";
 
}
 
.glyphicon-log-out:before {
 
  content: "\e163";
 
}
 
.glyphicon-new-window:before {
 
  content: "\e164";
 
}
 
.glyphicon-record:before {
 
  content: "\e165";
 
}
 
.glyphicon-save:before {
 
  content: "\e166";
 
}
 
.glyphicon-open:before {
 
  content: "\e167";
 
}
 
.glyphicon-saved:before {
 
  content: "\e168";
 
}
 
.glyphicon-import:before {
 
  content: "\e169";
 
}
 
.glyphicon-export:before {
 
  content: "\e170";
 
}
 
.glyphicon-send:before {
 
  content: "\e171";
 
}
 
.glyphicon-floppy-disk:before {
 
  content: "\e172";
 
}
 
.glyphicon-floppy-saved:before {
 
  content: "\e173";
 
}
 
.glyphicon-floppy-remove:before {
 
  content: "\e174";
 
}
 
.glyphicon-floppy-save:before {
 
  content: "\e175";
 
}
 
.glyphicon-floppy-open:before {
 
  content: "\e176";
 
}
 
.glyphicon-credit-card:before {
 
  content: "\e177";
 
}
 
.glyphicon-transfer:before {
 
  content: "\e178";
 
}
 
.glyphicon-cutlery:before {
 
  content: "\e179";
 
}
 
.glyphicon-header:before {
 
  content: "\e180";
 
}
 
.glyphicon-compressed:before {
 
  content: "\e181";
 
}
 
.glyphicon-earphone:before {
 
  content: "\e182";
 
}
 
.glyphicon-phone-alt:before {
 
  content: "\e183";
 
}
 
.glyphicon-tower:before {
 
  content: "\e184";
 
}
 
.glyphicon-stats:before {
 
  content: "\e185";
 
}
 
.glyphicon-sd-video:before {
 
  content: "\e186";
 
}
 
.glyphicon-hd-video:before {
 
  content: "\e187";
 
}
 
.glyphicon-subtitles:before {
 
  content: "\e188";
 
}
 
.glyphicon-sound-stereo:before {
 
  content: "\e189";
 
}
 
.glyphicon-sound-dolby:before {
 
  content: "\e190";
 
}
 
.glyphicon-sound-5-1:before {
 
  content: "\e191";
 
}
 
.glyphicon-sound-6-1:before {
 
  content: "\e192";
 
}
 
.glyphicon-sound-7-1:before {
 
  content: "\e193";
 
}
 
.glyphicon-copyright-mark:before {
 
  content: "\e194";
 
}
 
.glyphicon-registration-mark:before {
 
  content: "\e195";
 
}
 
.glyphicon-cloud-download:before {
 
  content: "\e197";
 
}
 
.glyphicon-cloud-upload:before {
 
  content: "\e198";
 
}
 
.glyphicon-tree-conifer:before {
 
  content: "\e199";
 
}
 
.glyphicon-tree-deciduous:before {
 
  content: "\e200";
 
}
 
.glyphicon-cd:before {
 
  content: "\e201";
 
}
 
.glyphicon-save-file:before {
 
  content: "\e202";
 
}
 
.glyphicon-open-file:before {
 
  content: "\e203";
 
}
 
.glyphicon-level-up:before {
 
  content: "\e204";
 
}
 
.glyphicon-copy:before {
 
  content: "\e205";
 
}
 
.glyphicon-paste:before {
 
  content: "\e206";
 
}
 
.glyphicon-alert:before {
 
  content: "\e209";
 
}
 
.glyphicon-equalizer:before {
 
  content: "\e210";
 
}
 
.glyphicon-king:before {
 
  content: "\e211";
 
}
 
.glyphicon-queen:before {
 
  content: "\e212";
 
}
 
.glyphicon-pawn:before {
 
  content: "\e213";
 
}
 
.glyphicon-bishop:before {
 
  content: "\e214";
 
}
 
.glyphicon-knight:before {
 
  content: "\e215";
 
}
 
.glyphicon-baby-formula:before {
 
  content: "\e216";
 
}
 
.glyphicon-tent:before {
 
  content: "\26fa";
 
}
 
.glyphicon-blackboard:before {
 
  content: "\e218";
 
}
 
.glyphicon-bed:before {
 
  content: "\e219";
 
}
 
.glyphicon-apple:before {
 
  content: "\f8ff";
 
}
 
.glyphicon-erase:before {
 
  content: "\e221";
 
}
 
.glyphicon-hourglass:before {
 
  content: "\231b";
 
}
 
.glyphicon-lamp:before {
 
  content: "\e223";
 
}
 
.glyphicon-duplicate:before {
 
  content: "\e224";
 
}
 
.glyphicon-piggy-bank:before {
 
  content: "\e225";
 
}
 
.glyphicon-scissors:before {
 
  content: "\e226";
 
}
 
.glyphicon-bitcoin:before {
 
  content: "\e227";
 
}
 
.glyphicon-btc:before {
 
  content: "\e227";
 
}
 
.glyphicon-xbt:before {
 
  content: "\e227";
 
}
 
.glyphicon-yen:before {
 
  content: "\00a5";
 
}
 
.glyphicon-jpy:before {
 
  content: "\00a5";
 
}
 
.glyphicon-ruble:before {
 
  content: "\20bd";
 
}
 
.glyphicon-rub:before {
 
  content: "\20bd";
 
}
 
.glyphicon-scale:before {
 
  content: "\e230";
 
}
 
.glyphicon-ice-lolly:before {
 
  content: "\e231";
 
}
 
.glyphicon-ice-lolly-tasted:before {
 
  content: "\e232";
 
}
 
.glyphicon-education:before {
 
  content: "\e233";
 
}
 
.glyphicon-option-horizontal:before {
 
  content: "\e234";
 
}
 
.glyphicon-option-vertical:before {
 
  content: "\e235";
 
}
 
.glyphicon-menu-hamburger:before {
 
  content: "\e236";
 
}
 
.glyphicon-modal-window:before {
 
  content: "\e237";
 
}
 
.glyphicon-oil:before {
 
  content: "\e238";
 
}
 
.glyphicon-grain:before {
 
  content: "\e239";
 
}
 
.glyphicon-sunglasses:before {
 
  content: "\e240";
 
}
 
.glyphicon-text-size:before {
 
  content: "\e241";
 
}
 
.glyphicon-text-color:before {
 
  content: "\e242";
 
}
 
.glyphicon-text-background:before {
 
  content: "\e243";
 
}
 
.glyphicon-object-align-top:before {
 
  content: "\e244";
 
}
 
.glyphicon-object-align-bottom:before {
 
  content: "\e245";
 
}
 
.glyphicon-object-align-horizontal:before {
 
  content: "\e246";
 
}
 
.glyphicon-object-align-left:before {
 
  content: "\e247";
 
}
 
.glyphicon-object-align-vertical:before {
 
  content: "\e248";
 
}
 
.glyphicon-object-align-right:before {
 
  content: "\e249";
 
}
 
.glyphicon-triangle-right:before {
 
  content: "\e250";
 
}
 
.glyphicon-triangle-left:before {
 
  content: "\e251";
 
}
 
.glyphicon-triangle-bottom:before {
 
  content: "\e252";
 
}
 
.glyphicon-triangle-top:before {
 
  content: "\e253";
 
}
 
.glyphicon-console:before {
 
  content: "\e254";
 
}
 
.glyphicon-superscript:before {
 
  content: "\e255";
 
}
 
.glyphicon-subscript:before {
 
  content: "\e256";
 
}
 
.glyphicon-menu-left:before {
 
  content: "\e257";
 
}
 
.glyphicon-menu-right:before {
 
  content: "\e258";
 
}
 
.glyphicon-menu-down:before {
 
  content: "\e259";
 
}
 
.glyphicon-menu-up:before {
 
  content: "\e260";
 
}
 
* {
 
  box-sizing: border-box;
 
}
 
*:before,
 
*:after {
 
  box-sizing: border-box;
 
}
 
html {
 
  font-size: 10px;
 
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 
}
 
body {
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #333333;
 
  background-color: #fff;
 
}
 
input,
 
button,
 
select,
 
textarea {
 
  font-family: inherit;
 
  font-size: inherit;
 
  line-height: inherit;
 
}
 
a {
 
  color: #337ab7;
 
  text-decoration: none;
 
}
 
a:hover,
 
a:focus {
 
  color: #23527c;
 
  text-decoration: underline;
 
}
 
a:focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
figure {
 
  margin: 0;
 
}
 
img {
 
  vertical-align: middle;
 
}
 
.img-responsive,
 
.thumbnail > img,
 
.thumbnail a > img,
 
.carousel-inner > .item > img,
 
.carousel-inner > .item > a > img {
 
  display: block;
 
  max-width: 100%;
 
  height: auto;
 
}
 
.img-rounded {
 
  border-radius: 6px;
 
}
 
.img-thumbnail {
 
  padding: 4px;
 
  line-height: 1.42857143;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 4px;
 
  -webkit-transition: all 0.2s ease-in-out;
 
  transition: all 0.2s ease-in-out;
 
  display: inline-block;
 
  max-width: 100%;
 
  height: auto;
 
}
 
.img-circle {
 
  border-radius: 50%;
 
}
 
hr {
 
  margin-top: 20px;
 
  margin-bottom: 20px;
 
  border: 0;
 
  border-top: 1px solid #eeeeee;
 
}
 
.sr-only {
 
  position: absolute;
 
  width: 1px;
 
  height: 1px;
 
  margin: -1px;
 
  padding: 0;
 
  overflow: hidden;
 
  clip: rect(0, 0, 0, 0);
 
  border: 0;
 
}
 
.sr-only-focusable:active,
 
.sr-only-focusable:focus {
 
  position: static;
 
  width: auto;
 
  height: auto;
 
  margin: 0;
 
  overflow: visible;
 
  clip: auto;
 
}
 
[role="button"] {
 
  cursor: pointer;
 
}
 
h1,
 
h2,
 
h3,
 
h4,
 
h5,
 
h6,
 
.h1,
 
.h2,
 
.h3,
 
.h4,
 
.h5,
 
.h6 {
 
  font-family: inherit;
 
  font-weight: 500;
 
  line-height: 1.1;
 
  color: inherit;
 
}
 
h1 small,
 
h2 small,
 
h3 small,
 
h4 small,
 
h5 small,
 
h6 small,
 
.h1 small,
 
.h2 small,
 
.h3 small,
 
.h4 small,
 
.h5 small,
 
.h6 small,
 
h1 .small,
 
h2 .small,
 
h3 .small,
 
h4 .small,
 
h5 .small,
 
h6 .small,
 
.h1 .small,
 
.h2 .small,
 
.h3 .small,
 
.h4 .small,
 
.h5 .small,
 
.h6 .small {
 
  font-weight: normal;
 
  line-height: 1;
 
  color: #777777;
 
}
 
h1,
 
.h1,
 
h2,
 
.h2,
 
h3,
 
.h3 {
 
  margin-top: 20px;
 
  margin-bottom: 10px;
 
}
 
h1 small,
 
.h1 small,
 
h2 small,
 
.h2 small,
 
h3 small,
 
.h3 small,
 
h1 .small,
 
.h1 .small,
 
h2 .small,
 
.h2 .small,
 
h3 .small,
 
.h3 .small {
 
  font-size: 65%;
 
}
 
h4,
 
.h4,
 
h5,
 
.h5,
 
h6,
 
.h6 {
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
h4 small,
 
.h4 small,
 
h5 small,
 
.h5 small,
 
h6 small,
 
.h6 small,
 
h4 .small,
 
.h4 .small,
 
h5 .small,
 
.h5 .small,
 
h6 .small,
 
.h6 .small {
 
  font-size: 75%;
 
}
 
h1,
 
.h1 {
 
  font-size: 36px;
 
}
 
h2,
 
.h2 {
 
  font-size: 30px;
 
}
 
h3,
 
.h3 {
 
  font-size: 24px;
 
}
 
h4,
 
.h4 {
 
  font-size: 18px;
 
}
 
h5,
 
.h5 {
 
  font-size: 14px;
 
}
 
h6,
 
.h6 {
 
  font-size: 12px;
 
}
 
p {
 
  margin: 0 0 10px;
 
}
 
.lead {
 
  margin-bottom: 20px;
 
  font-size: 16px;
 
  font-weight: 300;
 
  line-height: 1.4;
 
}
 
@media (min-width: 768px) {
 
  .lead {
 
    font-size: 21px;
 
  }
 
}
 
small,
 
.small {
 
  font-size: 85%;
 
}
 
mark,
 
.mark {
 
  background-color: #fcf8e3;
 
  padding: .2em;
 
}
 
.text-left {
 
  text-align: left;
 
}
 
.text-right {
 
  text-align: right;
 
}
 
.text-center {
 
  text-align: center;
 
}
 
.text-justify {
 
  text-align: justify;
 
}
 
.text-nowrap {
 
  white-space: nowrap;
 
}
 
.text-lowercase {
 
  text-transform: lowercase;
 
}
 
.text-uppercase {
 
  text-transform: uppercase;
 
}
 
.text-capitalize {
 
  text-transform: capitalize;
 
}
 
.text-muted {
 
  color: #777777;
 
}
 
.text-primary {
 
  color: #337ab7;
 
}
 
a.text-primary:hover,
 
a.text-primary:focus {
 
  color: #286090;
 
}
 
.text-success {
 
  color: #3c763d;
 
}
 
a.text-success:hover,
 
a.text-success:focus {
 
  color: #2b542c;
 
}
 
.text-info {
 
  color: #31708f;
 
}
 
a.text-info:hover,
 
a.text-info:focus {
 
  color: #245269;
 
}
 
.text-warning {
 
  color: #8a6d3b;
 
}
 
a.text-warning:hover,
 
a.text-warning:focus {
 
  color: #66512c;
 
}
 
.text-danger {
 
  color: #a94442;
 
}
 
a.text-danger:hover,
 
a.text-danger:focus {
 
  color: #843534;
 
}
 
.bg-primary {
 
  color: #fff;
 
  background-color: #337ab7;
 
}
 
a.bg-primary:hover,
 
a.bg-primary:focus {
 
  background-color: #286090;
 
}
 
.bg-success {
 
  background-color: #dff0d8;
 
}
 
a.bg-success:hover,
 
a.bg-success:focus {
 
  background-color: #c1e2b3;
 
}
 
.bg-info {
 
  background-color: #d9edf7;
 
}
 
a.bg-info:hover,
 
a.bg-info:focus {
 
  background-color: #afd9ee;
 
}
 
.bg-warning {
 
  background-color: #fcf8e3;
 
}
 
a.bg-warning:hover,
 
a.bg-warning:focus {
 
  background-color: #f7ecb5;
 
}
 
.bg-danger {
 
  background-color: #f2dede;
 
}
 
a.bg-danger:hover,
 
a.bg-danger:focus {
 
  background-color: #e4b9b9;
 
}
 
.page-header {
 
  padding-bottom: 9px;
 
  margin: 40px 0 20px;
 
  border-bottom: 1px solid #eeeeee;
 
}
 
ul,
 
ol {
 
  margin-top: 0;
 
  margin-bottom: 10px;
 
}
 
ul ul,
 
ol ul,
 
ul ol,
 
ol ol {
 
  margin-bottom: 0;
 
}
 
.list-unstyled {
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.list-inline {
 
  padding-left: 0;
 
  list-style: none;
 
  margin-left: -5px;
 
}
 
.list-inline > li {
 
  display: inline-block;
 
  padding-left: 5px;
 
  padding-right: 5px;
 
}
 
dl {
 
  margin-top: 0;
 
  margin-bottom: 20px;
 
}
 
dt,
 
dd {
 
  line-height: 1.42857143;
 
}
 
dt {
 
  font-weight: bold;
 
}
 
dd {
 
  margin-left: 0;
 
}
 
@media (min-width: 768px) {
 
  .dl-horizontal dt {
 
    float: left;
 
    width: 160px;
 
    clear: left;
 
    text-align: right;
 
    overflow: hidden;
 
    text-overflow: ellipsis;
 
    white-space: nowrap;
 
  }
 
  .dl-horizontal dd {
 
    margin-left: 180px;
 
  }
 
}
 
abbr[title],
 
abbr[data-original-title] {
 
  cursor: help;
 
  border-bottom: 1px dotted #777777;
 
}
 
.initialism {
 
  font-size: 90%;
 
  text-transform: uppercase;
 
}
 
blockquote {
 
  padding: 10px 20px;
 
  margin: 0 0 20px;
 
  font-size: 17.5px;
 
  border-left: 5px solid #eeeeee;
 
}
 
blockquote p:last-child,
 
blockquote ul:last-child,
 
blockquote ol:last-child {
 
  margin-bottom: 0;
 
}
 
blockquote footer,
 
blockquote small,
 
blockquote .small {
 
  display: block;
 
  font-size: 80%;
 
  line-height: 1.42857143;
 
  color: #777777;
 
}
 
blockquote footer:before,
 
blockquote small:before,
 
blockquote .small:before {
 
  content: '\2014 \00A0';
 
}
 
.blockquote-reverse,
 
blockquote.pull-right {
 
  padding-right: 15px;
 
  padding-left: 0;
 
  border-right: 5px solid #eeeeee;
 
  border-left: 0;
 
  text-align: right;
 
}
 
.blockquote-reverse footer:before,
 
blockquote.pull-right footer:before,
 
.blockquote-reverse small:before,
 
blockquote.pull-right small:before,
 
.blockquote-reverse .small:before,
 
blockquote.pull-right .small:before {
 
  content: '';
 
}
 
.blockquote-reverse footer:after,
 
blockquote.pull-right footer:after,
 
.blockquote-reverse small:after,
 
blockquote.pull-right small:after,
 
.blockquote-reverse .small:after,
 
blockquote.pull-right .small:after {
 
  content: '\00A0 \2014';
 
}
 
address {
 
  margin-bottom: 20px;
 
  font-style: normal;
 
  line-height: 1.42857143;
 
}
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 
}
 
code {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: #c7254e;
 
  background-color: #f9f2f4;
 
  border-radius: 4px;
 
}
 
kbd {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: #fff;
 
  background-color: #333;
 
  border-radius: 3px;
 
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
 
}
 
kbd kbd {
 
  padding: 0;
 
  font-size: 100%;
 
  font-weight: bold;
 
  box-shadow: none;
 
}
 
pre {
 
  display: block;
 
  padding: 9.5px;
 
  margin: 0 0 10px;
 
  font-size: 13px;
 
  line-height: 1.42857143;
 
  word-break: break-all;
 
  word-wrap: break-word;
 
  color: #333333;
 
  background-color: #f5f5f5;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
}
 
pre code {
 
  padding: 0;
 
  font-size: inherit;
 
  color: inherit;
 
  white-space: pre-wrap;
 
  background-color: transparent;
 
  border-radius: 0;
 
}
 
.pre-scrollable {
 
  max-height: 340px;
 
  overflow-y: scroll;
 
}
 
.container {
 
  margin-right: auto;
 
  margin-left: auto;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
@media (min-width: 768px) {
 
  .container {
 
    width: 750px;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .container {
 
    width: 970px;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .container {
 
    width: 1170px;
 
  }
 
}
 
.container-fluid {
 
  margin-right: auto;
 
  margin-left: auto;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.row {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
 
  float: left;
 
}
 
.col-xs-12 {
 
  width: 100%;
 
}
 
.col-xs-11 {
 
  width: 91.66666667%;
 
}
 
.col-xs-10 {
 
  width: 83.33333333%;
 
}
 
.col-xs-9 {
 
  width: 75%;
 
}
 
.col-xs-8 {
 
  width: 66.66666667%;
 
}
 
.col-xs-7 {
 
  width: 58.33333333%;
 
}
 
.col-xs-6 {
 
  width: 50%;
 
}
 
.col-xs-5 {
 
  width: 41.66666667%;
 
}
 
.col-xs-4 {
 
  width: 33.33333333%;
 
}
 
.col-xs-3 {
 
  width: 25%;
 
}
 
.col-xs-2 {
 
  width: 16.66666667%;
 
}
 
.col-xs-1 {
 
  width: 8.33333333%;
 
}
 
.col-xs-pull-12 {
 
  right: 100%;
 
}
 
.col-xs-pull-11 {
 
  right: 91.66666667%;
 
}
 
.col-xs-pull-10 {
 
  right: 83.33333333%;
 
}
 
.col-xs-pull-9 {
 
  right: 75%;
 
}
 
.col-xs-pull-8 {
 
  right: 66.66666667%;
 
}
 
.col-xs-pull-7 {
 
  right: 58.33333333%;
 
}
 
.col-xs-pull-6 {
 
  right: 50%;
 
}
 
.col-xs-pull-5 {
 
  right: 41.66666667%;
 
}
 
.col-xs-pull-4 {
 
  right: 33.33333333%;
 
}
 
.col-xs-pull-3 {
 
  right: 25%;
 
}
 
.col-xs-pull-2 {
 
  right: 16.66666667%;
 
}
 
.col-xs-pull-1 {
 
  right: 8.33333333%;
 
}
 
.col-xs-pull-0 {
 
  right: auto;
 
}
 
.col-xs-push-12 {
 
  left: 100%;
 
}
 
.col-xs-push-11 {
 
  left: 91.66666667%;
 
}
 
.col-xs-push-10 {
 
  left: 83.33333333%;
 
}
 
.col-xs-push-9 {
 
  left: 75%;
 
}
 
.col-xs-push-8 {
 
  left: 66.66666667%;
 
}
 
.col-xs-push-7 {
 
  left: 58.33333333%;
 
}
 
.col-xs-push-6 {
 
  left: 50%;
 
}
 
.col-xs-push-5 {
 
  left: 41.66666667%;
 
}
 
.col-xs-push-4 {
 
  left: 33.33333333%;
 
}
 
.col-xs-push-3 {
 
  left: 25%;
 
}
 
.col-xs-push-2 {
 
  left: 16.66666667%;
 
}
 
.col-xs-push-1 {
 
  left: 8.33333333%;
 
}
 
.col-xs-push-0 {
 
  left: auto;
 
}
 
.col-xs-offset-12 {
 
  margin-left: 100%;
 
}
 
.col-xs-offset-11 {
 
  margin-left: 91.66666667%;
 
}
 
.col-xs-offset-10 {
 
  margin-left: 83.33333333%;
 
}
 
.col-xs-offset-9 {
 
  margin-left: 75%;
 
}
 
.col-xs-offset-8 {
 
  margin-left: 66.66666667%;
 
}
 
.col-xs-offset-7 {
 
  margin-left: 58.33333333%;
 
}
 
.col-xs-offset-6 {
 
  margin-left: 50%;
 
}
 
.col-xs-offset-5 {
 
  margin-left: 41.66666667%;
 
}
 
.col-xs-offset-4 {
 
  margin-left: 33.33333333%;
 
}
 
.col-xs-offset-3 {
 
  margin-left: 25%;
 
}
 
.col-xs-offset-2 {
 
  margin-left: 16.66666667%;
 
}
 
.col-xs-offset-1 {
 
  margin-left: 8.33333333%;
 
}
 
.col-xs-offset-0 {
 
  margin-left: 0%;
 
}
 
@media (min-width: 768px) {
 
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
 
    float: left;
 
  }
 
  .col-sm-12 {
 
    width: 100%;
 
  }
 
  .col-sm-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-sm-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-sm-9 {
 
    width: 75%;
 
  }
 
  .col-sm-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-sm-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-sm-6 {
 
    width: 50%;
 
  }
 
  .col-sm-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-sm-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-sm-3 {
 
    width: 25%;
 
  }
 
  .col-sm-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-sm-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-sm-pull-12 {
 
    right: 100%;
 
  }
 
  .col-sm-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-sm-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-sm-pull-9 {
 
    right: 75%;
 
  }
 
  .col-sm-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-sm-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-sm-pull-6 {
 
    right: 50%;
 
  }
 
  .col-sm-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-sm-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-sm-pull-3 {
 
    right: 25%;
 
  }
 
  .col-sm-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-sm-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-sm-pull-0 {
 
    right: auto;
 
  }
 
  .col-sm-push-12 {
 
    left: 100%;
 
  }
 
  .col-sm-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-sm-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-sm-push-9 {
 
    left: 75%;
 
  }
 
  .col-sm-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-sm-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-sm-push-6 {
 
    left: 50%;
 
  }
 
  .col-sm-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-sm-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-sm-push-3 {
 
    left: 25%;
 
  }
 
  .col-sm-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-sm-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-sm-push-0 {
 
    left: auto;
 
  }
 
  .col-sm-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-sm-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-sm-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-sm-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-sm-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-sm-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-sm-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-sm-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-sm-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-sm-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-sm-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-sm-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-sm-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
 
    float: left;
 
  }
 
  .col-md-12 {
 
    width: 100%;
 
  }
 
  .col-md-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-md-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-md-9 {
 
    width: 75%;
 
  }
 
  .col-md-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-md-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-md-6 {
 
    width: 50%;
 
  }
 
  .col-md-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-md-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-md-3 {
 
    width: 25%;
 
  }
 
  .col-md-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-md-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-md-pull-12 {
 
    right: 100%;
 
  }
 
  .col-md-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-md-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-md-pull-9 {
 
    right: 75%;
 
  }
 
  .col-md-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-md-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-md-pull-6 {
 
    right: 50%;
 
  }
 
  .col-md-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-md-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-md-pull-3 {
 
    right: 25%;
 
  }
 
  .col-md-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-md-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-md-pull-0 {
 
    right: auto;
 
  }
 
  .col-md-push-12 {
 
    left: 100%;
 
  }
 
  .col-md-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-md-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-md-push-9 {
 
    left: 75%;
 
  }
 
  .col-md-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-md-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-md-push-6 {
 
    left: 50%;
 
  }
 
  .col-md-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-md-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-md-push-3 {
 
    left: 25%;
 
  }
 
  .col-md-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-md-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-md-push-0 {
 
    left: auto;
 
  }
 
  .col-md-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-md-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-md-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-md-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-md-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-md-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-md-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-md-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-md-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-md-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-md-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-md-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-md-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
 
    float: left;
 
  }
 
  .col-lg-12 {
 
    width: 100%;
 
  }
 
  .col-lg-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-lg-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-lg-9 {
 
    width: 75%;
 
  }
 
  .col-lg-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-lg-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-lg-6 {
 
    width: 50%;
 
  }
 
  .col-lg-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-lg-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-lg-3 {
 
    width: 25%;
 
  }
 
  .col-lg-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-lg-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-lg-pull-12 {
 
    right: 100%;
 
  }
 
  .col-lg-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-lg-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-lg-pull-9 {
 
    right: 75%;
 
  }
 
  .col-lg-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-lg-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-lg-pull-6 {
 
    right: 50%;
 
  }
 
  .col-lg-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-lg-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-lg-pull-3 {
 
    right: 25%;
 
  }
 
  .col-lg-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-lg-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-lg-pull-0 {
 
    right: auto;
 
  }
 
  .col-lg-push-12 {
 
    left: 100%;
 
  }
 
  .col-lg-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-lg-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-lg-push-9 {
 
    left: 75%;
 
  }
 
  .col-lg-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-lg-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-lg-push-6 {
 
    left: 50%;
 
  }
 
  .col-lg-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-lg-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-lg-push-3 {
 
    left: 25%;
 
  }
 
  .col-lg-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-lg-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-lg-push-0 {
 
    left: auto;
 
  }
 
  .col-lg-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-lg-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-lg-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-lg-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-lg-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-lg-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-lg-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-lg-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-lg-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-lg-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-lg-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-lg-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-lg-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
table {
 
  background-color: transparent;
 
}
 
caption {
 
  padding-top: 8px;
 
  padding-bottom: 8px;
 
  color: #777777;
 
  text-align: left;
 
}
 
th {
 
  text-align: left;
 
}
 
.table {
 
  width: 100%;
 
  max-width: 100%;
 
  margin-bottom: 20px;
 
}
 
.table > thead > tr > th,
 
.table > tbody > tr > th,
 
.table > tfoot > tr > th,
 
.table > thead > tr > td,
 
.table > tbody > tr > td,
 
.table > tfoot > tr > td {
 
  padding: 8px;
 
  line-height: 1.42857143;
 
  vertical-align: top;
 
  border-top: 1px solid #ddd;
 
}
 
.table > thead > tr > th {
 
  vertical-align: bottom;
 
  border-bottom: 2px solid #ddd;
 
}
 
.table > caption + thead > tr:first-child > th,
 
.table > colgroup + thead > tr:first-child > th,
 
.table > thead:first-child > tr:first-child > th,
 
.table > caption + thead > tr:first-child > td,
 
.table > colgroup + thead > tr:first-child > td,
 
.table > thead:first-child > tr:first-child > td {
 
  border-top: 0;
 
}
 
.table > tbody + tbody {
 
  border-top: 2px solid #ddd;
 
}
 
.table .table {
 
  background-color: #fff;
 
}
 
.table-condensed > thead > tr > th,
 
.table-condensed > tbody > tr > th,
 
.table-condensed > tfoot > tr > th,
 
.table-condensed > thead > tr > td,
 
.table-condensed > tbody > tr > td,
 
.table-condensed > tfoot > tr > td {
 
  padding: 5px;
 
}
 
.table-bordered {
 
  border: 1px solid #ddd;
 
}
 
.table-bordered > thead > tr > th,
 
.table-bordered > tbody > tr > th,
 
.table-bordered > tfoot > tr > th,
 
.table-bordered > thead > tr > td,
 
.table-bordered > tbody > tr > td,
 
.table-bordered > tfoot > tr > td {
 
  border: 1px solid #ddd;
 
}
 
.table-bordered > thead > tr > th,
 
.table-bordered > thead > tr > td {
 
  border-bottom-width: 2px;
 
}
 
.table-striped > tbody > tr:nth-of-type(odd) {
 
  background-color: #f9f9f9;
 
}
 
.table-hover > tbody > tr:hover {
 
  background-color: #f5f5f5;
 
}
 
table col[class*="col-"] {
 
  position: static;
 
  float: none;
 
  display: table-column;
 
}
 
table td[class*="col-"],
 
table th[class*="col-"] {
 
  position: static;
 
  float: none;
 
  display: table-cell;
 
}
 
.table > thead > tr > td.active,
 
.table > tbody > tr > td.active,
 
.table > tfoot > tr > td.active,
 
.table > thead > tr > th.active,
 
.table > tbody > tr > th.active,
 
.table > tfoot > tr > th.active,
 
.table > thead > tr.active > td,
 
.table > tbody > tr.active > td,
 
.table > tfoot > tr.active > td,
 
.table > thead > tr.active > th,
 
.table > tbody > tr.active > th,
 
.table > tfoot > tr.active > th {
 
  background-color: #f5f5f5;
 
}
 
.table-hover > tbody > tr > td.active:hover,
 
.table-hover > tbody > tr > th.active:hover,
 
.table-hover > tbody > tr.active:hover > td,
 
.table-hover > tbody > tr:hover > .active,
 
.table-hover > tbody > tr.active:hover > th {
 
  background-color: #e8e8e8;
 
}
 
.table > thead > tr > td.success,
 
.table > tbody > tr > td.success,
 
.table > tfoot > tr > td.success,
 
.table > thead > tr > th.success,
 
.table > tbody > tr > th.success,
 
.table > tfoot > tr > th.success,
 
.table > thead > tr.success > td,
 
.table > tbody > tr.success > td,
 
.table > tfoot > tr.success > td,
 
.table > thead > tr.success > th,
 
.table > tbody > tr.success > th,
 
.table > tfoot > tr.success > th {
 
  background-color: #dff0d8;
 
}
 
.table-hover > tbody > tr > td.success:hover,
 
.table-hover > tbody > tr > th.success:hover,
 
.table-hover > tbody > tr.success:hover > td,
 
.table-hover > tbody > tr:hover > .success,
 
.table-hover > tbody > tr.success:hover > th {
 
  background-color: #d0e9c6;
 
}
 
.table > thead > tr > td.info,
 
.table > tbody > tr > td.info,
 
.table > tfoot > tr > td.info,
 
.table > thead > tr > th.info,
 
.table > tbody > tr > th.info,
 
.table > tfoot > tr > th.info,
 
.table > thead > tr.info > td,
 
.table > tbody > tr.info > td,
 
.table > tfoot > tr.info > td,
 
.table > thead > tr.info > th,
 
.table > tbody > tr.info > th,
 
.table > tfoot > tr.info > th {
 
  background-color: #d9edf7;
 
}
 
.table-hover > tbody > tr > td.info:hover,
 
.table-hover > tbody > tr > th.info:hover,
 
.table-hover > tbody > tr.info:hover > td,
 
.table-hover > tbody > tr:hover > .info,
 
.table-hover > tbody > tr.info:hover > th {
 
  background-color: #c4e3f3;
 
}
 
.table > thead > tr > td.warning,
 
.table > tbody > tr > td.warning,
 
.table > tfoot > tr > td.warning,
 
.table > thead > tr > th.warning,
 
.table > tbody > tr > th.warning,
 
.table > tfoot > tr > th.warning,
 
.table > thead > tr.warning > td,
 
.table > tbody > tr.warning > td,
 
.table > tfoot > tr.warning > td,
 
.table > thead > tr.warning > th,
 
.table > tbody > tr.warning > th,
 
.table > tfoot > tr.warning > th {
 
  background-color: #fcf8e3;
 
}
 
.table-hover > tbody > tr > td.warning:hover,
 
.table-hover > tbody > tr > th.warning:hover,
 
.table-hover > tbody > tr.warning:hover > td,
 
.table-hover > tbody > tr:hover > .warning,
 
.table-hover > tbody > tr.warning:hover > th {
 
  background-color: #faf2cc;
 
}
 
.table > thead > tr > td.danger,
 
.table > tbody > tr > td.danger,
 
.table > tfoot > tr > td.danger,
 
.table > thead > tr > th.danger,
 
.table > tbody > tr > th.danger,
 
.table > tfoot > tr > th.danger,
 
.table > thead > tr.danger > td,
 
.table > tbody > tr.danger > td,
 
.table > tfoot > tr.danger > td,
 
.table > thead > tr.danger > th,
 
.table > tbody > tr.danger > th,
 
.table > tfoot > tr.danger > th {
 
  background-color: #f2dede;
 
}
 
.table-hover > tbody > tr > td.danger:hover,
 
.table-hover > tbody > tr > th.danger:hover,
 
.table-hover > tbody > tr.danger:hover > td,
 
.table-hover > tbody > tr:hover > .danger,
 
.table-hover > tbody > tr.danger:hover > th {
 
  background-color: #ebcccc;
 
}
 
.table-responsive {
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 
@media screen and (max-width: 767px) {
 
  .table-responsive {
 
    width: 100%;
 
    margin-bottom: 15px;
 
    overflow-y: hidden;
 
    -ms-overflow-style: -ms-autohiding-scrollbar;
 
    border: 1px solid #ddd;
 
  }
 
  .table-responsive > .table {
 
    margin-bottom: 0;
 
  }
 
  .table-responsive > .table > thead > tr > th,
 
  .table-responsive > .table > tbody > tr > th,
 
  .table-responsive > .table > tfoot > tr > th,
 
  .table-responsive > .table > thead > tr > td,
 
  .table-responsive > .table > tbody > tr > td,
 
  .table-responsive > .table > tfoot > tr > td {
 
    white-space: nowrap;
 
  }
 
  .table-responsive > .table-bordered {
 
    border: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 
  .table-responsive > .table-bordered > thead > tr > td:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 
    border-left: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 
  .table-responsive > .table-bordered > thead > tr > td:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 
    border-right: 0;
 
  }
 
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
 
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
 
    border-bottom: 0;
 
  }
 
}
 
fieldset {
 
  padding: 0;
 
  margin: 0;
 
  border: 0;
 
  min-width: 0;
 
}
 
legend {
 
  display: block;
 
  width: 100%;
 
  padding: 0;
 
  margin-bottom: 20px;
 
  font-size: 21px;
 
  line-height: inherit;
 
  color: #333333;
 
  border: 0;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 
label {
 
  display: inline-block;
 
  max-width: 100%;
 
  margin-bottom: 5px;
 
  font-weight: bold;
 
}
 
input[type="search"] {
 
  box-sizing: border-box;
 
}
 
input[type="radio"],
 
input[type="checkbox"] {
 
  margin: 4px 0 0;
 
  margin-top: 1px \9;
 
  line-height: normal;
 
}
 
input[type="file"] {
 
  display: block;
 
}
 
input[type="range"] {
 
  display: block;
 
  width: 100%;
 
}
 
select[multiple],
 
select[size] {
 
  height: auto;
 
}
 
input[type="file"]:focus,
 
input[type="radio"]:focus,
 
input[type="checkbox"]:focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
output {
 
  display: block;
 
  padding-top: 7px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #555555;
 
}
 
.form-control {
 
  display: block;
 
  width: 100%;
 
  height: 34px;
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #555555;
 
  background-color: #fff;
 
  background-image: none;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
 
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
 
}
 
.form-control:focus {
 
  border-color: #66afe9;
 
  outline: 0;
 
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
 
}
 
.form-control::-moz-placeholder {
 
  color: #999;
 
  opacity: 1;
 
}
 
.form-control:-ms-input-placeholder {
 
  color: #999;
 
}
 
.form-control::-webkit-input-placeholder {
 
  color: #999;
 
}
 
.form-control::-ms-expand {
 
  border: 0;
 
  background-color: transparent;
 
}
 
.form-control[disabled],
 
.form-control[readonly],
 
fieldset[disabled] .form-control {
 
  background-color: #eeeeee;
 
  opacity: 1;
 
}
 
.form-control[disabled],
 
fieldset[disabled] .form-control {
 
  cursor: not-allowed;
 
}
 
textarea.form-control {
 
  height: auto;
 
}
 
input[type="search"] {
 
  -webkit-appearance: none;
 
}
 
@media screen and (-webkit-min-device-pixel-ratio: 0) {
 
  input[type="date"].form-control,
 
  input[type="time"].form-control,
 
  input[type="datetime-local"].form-control,
 
  input[type="month"].form-control {
 
    line-height: 34px;
 
  }
 
  input[type="date"].input-sm,
 
  input[type="time"].input-sm,
 
  input[type="datetime-local"].input-sm,
 
  input[type="month"].input-sm,
 
  .input-group-sm input[type="date"],
 
  .input-group-sm input[type="time"],
 
  .input-group-sm input[type="datetime-local"],
 
  .input-group-sm input[type="month"] {
 
    line-height: 30px;
 
  }
 
  input[type="date"].input-lg,
 
  input[type="time"].input-lg,
 
  input[type="datetime-local"].input-lg,
 
  input[type="month"].input-lg,
 
  .input-group-lg input[type="date"],
 
  .input-group-lg input[type="time"],
 
  .input-group-lg input[type="datetime-local"],
 
  .input-group-lg input[type="month"] {
 
    line-height: 46px;
 
  }
 
}
 
.form-group {
 
  margin-bottom: 15px;
 
}
 
.radio,
 
.checkbox {
 
  position: relative;
 
  display: block;
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
.radio label,
 
.checkbox label {
 
  min-height: 20px;
 
  padding-left: 20px;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  cursor: pointer;
 
}
 
.radio input[type="radio"],
 
.radio-inline input[type="radio"],
 
.checkbox input[type="checkbox"],
 
.checkbox-inline input[type="checkbox"] {
 
  position: absolute;
 
  margin-left: -20px;
 
  margin-top: 4px \9;
 
}
 
.radio + .radio,
 
.checkbox + .checkbox {
 
  margin-top: -5px;
 
}
 
.radio-inline,
 
.checkbox-inline {
 
  position: relative;
 
  display: inline-block;
 
  padding-left: 20px;
 
  margin-bottom: 0;
 
  vertical-align: middle;
 
  font-weight: normal;
 
  cursor: pointer;
 
}
 
.radio-inline + .radio-inline,
 
.checkbox-inline + .checkbox-inline {
 
  margin-top: 0;
 
  margin-left: 10px;
 
}
 
input[type="radio"][disabled],
 
input[type="checkbox"][disabled],
 
input[type="radio"].disabled,
 
input[type="checkbox"].disabled,
 
fieldset[disabled] input[type="radio"],
 
fieldset[disabled] input[type="checkbox"] {
 
  cursor: not-allowed;
 
}
 
.radio-inline.disabled,
 
.checkbox-inline.disabled,
 
fieldset[disabled] .radio-inline,
 
fieldset[disabled] .checkbox-inline {
 
  cursor: not-allowed;
 
}
 
.radio.disabled label,
 
.checkbox.disabled label,
 
fieldset[disabled] .radio label,
 
fieldset[disabled] .checkbox label {
 
  cursor: not-allowed;
 
}
 
.form-control-static {
 
  padding-top: 7px;
 
  padding-bottom: 7px;
 
  margin-bottom: 0;
 
  min-height: 34px;
 
}
 
.form-control-static.input-lg,
 
.form-control-static.input-sm {
 
  padding-left: 0;
 
  padding-right: 0;
 
}
 
.input-sm {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
select.input-sm {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
textarea.input-sm,
 
select[multiple].input-sm {
 
  height: auto;
 
}
 
.form-group-sm .form-control {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.form-group-sm select.form-control {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
.form-group-sm textarea.form-control,
 
.form-group-sm select[multiple].form-control {
 
  height: auto;
 
}
 
.form-group-sm .form-control-static {
 
  height: 30px;
 
  min-height: 32px;
 
  padding: 6px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
}
 
.input-lg {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
select.input-lg {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
textarea.input-lg,
 
select[multiple].input-lg {
 
  height: auto;
 
}
 
.form-group-lg .form-control {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
.form-group-lg select.form-control {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
.form-group-lg textarea.form-control,
 
.form-group-lg select[multiple].form-control {
 
  height: auto;
 
}
 
.form-group-lg .form-control-static {
 
  height: 46px;
 
  min-height: 38px;
 
  padding: 11px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
}
 
.has-feedback {
 
  position: relative;
 
}
 
.has-feedback .form-control {
 
  padding-right: 42.5px;
 
}
 
.form-control-feedback {
 
  position: absolute;
 
  top: 0;
 
  right: 0;
 
  z-index: 2;
 
  display: block;
 
  width: 34px;
 
  height: 34px;
 
  line-height: 34px;
 
  text-align: center;
 
  pointer-events: none;
 
}
 
.input-lg + .form-control-feedback,
 
.input-group-lg + .form-control-feedback,
 
.form-group-lg .form-control + .form-control-feedback {
 
  width: 46px;
 
  height: 46px;
 
  line-height: 46px;
 
}
 
.input-sm + .form-control-feedback,
 
.input-group-sm + .form-control-feedback,
 
.form-group-sm .form-control + .form-control-feedback {
 
  width: 30px;
 
  height: 30px;
 
  line-height: 30px;
 
}
 
.has-success .help-block,
 
.has-success .control-label,
 
.has-success .radio,
 
.has-success .checkbox,
 
.has-success .radio-inline,
 
.has-success .checkbox-inline,
 
.has-success.radio label,
 
.has-success.checkbox label,
 
.has-success.radio-inline label,
 
.has-success.checkbox-inline label {
 
  color: #3c763d;
 
}
 
.has-success .form-control {
 
  border-color: #3c763d;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-success .form-control:focus {
 
  border-color: #2b542c;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
 
}
 
.has-success .input-group-addon {
 
  color: #3c763d;
 
  border-color: #3c763d;
 
  background-color: #dff0d8;
 
}
 
.has-success .form-control-feedback {
 
  color: #3c763d;
 
}
 
.has-warning .help-block,
 
.has-warning .control-label,
 
.has-warning .radio,
 
.has-warning .checkbox,
 
.has-warning .radio-inline,
 
.has-warning .checkbox-inline,
 
.has-warning.radio label,
 
.has-warning.checkbox label,
 
.has-warning.radio-inline label,
 
.has-warning.checkbox-inline label {
 
  color: #8a6d3b;
 
}
 
.has-warning .form-control {
 
  border-color: #8a6d3b;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-warning .form-control:focus {
 
  border-color: #66512c;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
 
}
 
.has-warning .input-group-addon {
 
  color: #8a6d3b;
 
  border-color: #8a6d3b;
 
  background-color: #fcf8e3;
 
}
 
.has-warning .form-control-feedback {
 
  color: #8a6d3b;
 
}
 
.has-error .help-block,
 
.has-error .control-label,
 
.has-error .radio,
 
.has-error .checkbox,
 
.has-error .radio-inline,
 
.has-error .checkbox-inline,
 
.has-error.radio label,
 
.has-error.checkbox label,
 
.has-error.radio-inline label,
 
.has-error.checkbox-inline label {
 
  color: #a94442;
 
}
 
.has-error .form-control {
 
  border-color: #a94442;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-error .form-control:focus {
 
  border-color: #843534;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
 
}
 
.has-error .input-group-addon {
 
  color: #a94442;
 
  border-color: #a94442;
 
  background-color: #f2dede;
 
}
 
.has-error .form-control-feedback {
 
  color: #a94442;
 
}
 
.has-feedback label ~ .form-control-feedback {
 
  top: 25px;
 
}
 
.has-feedback label.sr-only ~ .form-control-feedback {
 
  top: 0;
 
}
 
.help-block {
 
  display: block;
 
  margin-top: 5px;
 
  margin-bottom: 10px;
 
  color: #737373;
 
}
 
@media (min-width: 768px) {
 
  .form-inline .form-group {
 
    display: inline-block;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .form-control {
 
    display: inline-block;
 
    width: auto;
 
    vertical-align: middle;
 
  }
 
  .form-inline .form-control-static {
 
    display: inline-block;
 
  }
 
  .form-inline .input-group {
 
    display: inline-table;
 
    vertical-align: middle;
 
  }
 
  .form-inline .input-group .input-group-addon,
 
  .form-inline .input-group .input-group-btn,
 
  .form-inline .input-group .form-control {
 
    width: auto;
 
  }
 
  .form-inline .input-group > .form-control {
 
    width: 100%;
 
  }
 
  .form-inline .control-label {
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .radio,
 
  .form-inline .checkbox {
 
    display: inline-block;
 
    margin-top: 0;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .radio label,
 
  .form-inline .checkbox label {
 
    padding-left: 0;
 
  }
 
  .form-inline .radio input[type="radio"],
 
  .form-inline .checkbox input[type="checkbox"] {
 
    position: relative;
 
    margin-left: 0;
 
  }
 
  .form-inline .has-feedback .form-control-feedback {
 
    top: 0;
 
  }
 
}
 
.form-horizontal .radio,
 
.form-horizontal .checkbox,
 
.form-horizontal .radio-inline,
 
.form-horizontal .checkbox-inline {
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  padding-top: 7px;
 
}
 
.form-horizontal .radio,
 
.form-horizontal .checkbox {
 
  min-height: 27px;
 
}
 
.form-horizontal .form-group {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .control-label {
 
    text-align: right;
 
    margin-bottom: 0;
 
    padding-top: 7px;
 
  }
 
}
 
.form-horizontal .has-feedback .form-control-feedback {
 
  right: 15px;
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .form-group-lg .control-label {
 
    padding-top: 11px;
 
    font-size: 18px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .form-group-sm .control-label {
 
    padding-top: 6px;
 
    font-size: 12px;
 
  }
 
}
 
.btn {
 
  display: inline-block;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  text-align: center;
 
  vertical-align: middle;
 
  -ms-touch-action: manipulation;
 
      touch-action: manipulation;
 
  cursor: pointer;
 
  background-image: none;
 
  border: 1px solid transparent;
 
  white-space: nowrap;
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  border-radius: 4px;
 
  -webkit-user-select: none;
 
  -moz-user-select: none;
 
  -ms-user-select: none;
 
  user-select: none;
 
}
 
.btn:focus,
 
.btn:active:focus,
 
.btn.active:focus,
 
.btn.focus,
 
.btn:active.focus,
 
.btn.active.focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
.btn:hover,
 
.btn:focus,
 
.btn.focus {
 
  color: #333;
 
  text-decoration: none;
 
}
 
.btn:active,
 
.btn.active {
 
  outline: 0;
 
  background-image: none;
 
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 
.btn.disabled,
 
.btn[disabled],
 
fieldset[disabled] .btn {
 
  cursor: not-allowed;
 
  opacity: 0.65;
 
  filter: alpha(opacity=65);
 
  box-shadow: none;
 
}
 
a.btn.disabled,
 
fieldset[disabled] a.btn {
 
  pointer-events: none;
 
}
 
.btn-default {
 
  color: #333;
 
  background-color: #fff;
 
  border-color: #ccc;
 
}
 
.btn-default:focus,
 
.btn-default.focus {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #8c8c8c;
 
}
 
.btn-default:hover {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #adadad;
 
}
 
.btn-default:active,
 
.btn-default.active,
 
.open > .dropdown-toggle.btn-default {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #adadad;
 
}
 
.btn-default:active:hover,
 
.btn-default.active:hover,
 
.open > .dropdown-toggle.btn-default:hover,
 
.btn-default:active:focus,
 
.btn-default.active:focus,
 
.open > .dropdown-toggle.btn-default:focus,
 
.btn-default:active.focus,
 
.btn-default.active.focus,
 
.open > .dropdown-toggle.btn-default.focus {
 
  color: #333;
 
  background-color: #d4d4d4;
 
  border-color: #8c8c8c;
 
}
 
.btn-default:active,
 
.btn-default.active,
 
.open > .dropdown-toggle.btn-default {
 
  background-image: none;
 
}
 
.btn-default.disabled:hover,
 
.btn-default[disabled]:hover,
 
fieldset[disabled] .btn-default:hover,
 
.btn-default.disabled:focus,
 
.btn-default[disabled]:focus,
 
fieldset[disabled] .btn-default:focus,
 
.btn-default.disabled.focus,
 
.btn-default[disabled].focus,
 
fieldset[disabled] .btn-default.focus {
 
  background-color: #fff;
 
  border-color: #ccc;
 
}
 
.btn-default .badge {
 
  color: #fff;
 
  background-color: #333;
 
}
 
.btn-primary {
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #2e6da4;
 
}
 
.btn-primary:focus,
 
.btn-primary.focus {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #122b40;
 
}
 
.btn-primary:hover {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #204d74;
 
}
 
.btn-primary:active,
 
.btn-primary.active,
 
.open > .dropdown-toggle.btn-primary {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #204d74;
 
}
 
.btn-primary:active:hover,
 
.btn-primary.active:hover,
 
.open > .dropdown-toggle.btn-primary:hover,
 
.btn-primary:active:focus,
 
.btn-primary.active:focus,
 
.open > .dropdown-toggle.btn-primary:focus,
 
.btn-primary:active.focus,
 
.btn-primary.active.focus,
 
.open > .dropdown-toggle.btn-primary.focus {
 
  color: #fff;
 
  background-color: #204d74;
 
  border-color: #122b40;
 
}
 
.btn-primary:active,
 
.btn-primary.active,
 
.open > .dropdown-toggle.btn-primary {
 
  background-image: none;
 
}
 
.btn-primary.disabled:hover,
 
.btn-primary[disabled]:hover,
 
fieldset[disabled] .btn-primary:hover,
 
.btn-primary.disabled:focus,
 
.btn-primary[disabled]:focus,
 
fieldset[disabled] .btn-primary:focus,
 
.btn-primary.disabled.focus,
 
.btn-primary[disabled].focus,
 
fieldset[disabled] .btn-primary.focus {
 
  background-color: #337ab7;
 
  border-color: #2e6da4;
 
}
 
.btn-primary .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.btn-success {
 
  color: #fff;
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 
.btn-success:focus,
 
.btn-success.focus {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #255625;
 
}
 
.btn-success:hover {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #398439;
 
}
 
.btn-success:active,
 
.btn-success.active,
 
.open > .dropdown-toggle.btn-success {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #398439;
 
}
 
.btn-success:active:hover,
 
.btn-success.active:hover,
 
.open > .dropdown-toggle.btn-success:hover,
 
.btn-success:active:focus,
 
.btn-success.active:focus,
 
.open > .dropdown-toggle.btn-success:focus,
 
.btn-success:active.focus,
 
.btn-success.active.focus,
 
.open > .dropdown-toggle.btn-success.focus {
 
  color: #fff;
 
  background-color: #398439;
 
  border-color: #255625;
 
}
 
.btn-success:active,
 
.btn-success.active,
 
.open > .dropdown-toggle.btn-success {
 
  background-image: none;
 
}
 
.btn-success.disabled:hover,
 
.btn-success[disabled]:hover,
 
fieldset[disabled] .btn-success:hover,
 
.btn-success.disabled:focus,
 
.btn-success[disabled]:focus,
 
fieldset[disabled] .btn-success:focus,
 
.btn-success.disabled.focus,
 
.btn-success[disabled].focus,
 
fieldset[disabled] .btn-success.focus {
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 
.btn-success .badge {
 
  color: #5cb85c;
 
  background-color: #fff;
 
}
 
.btn-info {
 
  color: #fff;
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 
.btn-info:focus,
 
.btn-info.focus {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #1b6d85;
 
}
 
.btn-info:hover {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #269abc;
 
}
 
.btn-info:active,
 
.btn-info.active,
 
.open > .dropdown-toggle.btn-info {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #269abc;
 
}
 
.btn-info:active:hover,
 
.btn-info.active:hover,
 
.open > .dropdown-toggle.btn-info:hover,
 
.btn-info:active:focus,
 
.btn-info.active:focus,
 
.open > .dropdown-toggle.btn-info:focus,
 
.btn-info:active.focus,
 
.btn-info.active.focus,
 
.open > .dropdown-toggle.btn-info.focus {
 
  color: #fff;
 
  background-color: #269abc;
 
  border-color: #1b6d85;
 
}
 
.btn-info:active,
 
.btn-info.active,
 
.open > .dropdown-toggle.btn-info {
 
  background-image: none;
 
}
 
.btn-info.disabled:hover,
 
.btn-info[disabled]:hover,
 
fieldset[disabled] .btn-info:hover,
 
.btn-info.disabled:focus,
 
.btn-info[disabled]:focus,
 
fieldset[disabled] .btn-info:focus,
 
.btn-info.disabled.focus,
 
.btn-info[disabled].focus,
 
fieldset[disabled] .btn-info.focus {
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 
.btn-info .badge {
 
  color: #5bc0de;
 
  background-color: #fff;
 
}
 
.btn-warning {
 
  color: #fff;
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 
.btn-warning:focus,
 
.btn-warning.focus {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #985f0d;
 
}
 
.btn-warning:hover {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #d58512;
 
}
 
.btn-warning:active,
 
.btn-warning.active,
 
.open > .dropdown-toggle.btn-warning {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #d58512;
 
}
 
.btn-warning:active:hover,
 
.btn-warning.active:hover,
 
.open > .dropdown-toggle.btn-warning:hover,
 
.btn-warning:active:focus,
 
.btn-warning.active:focus,
 
.open > .dropdown-toggle.btn-warning:focus,
 
.btn-warning:active.focus,
 
.btn-warning.active.focus,
 
.open > .dropdown-toggle.btn-warning.focus {
 
  color: #fff;
 
  background-color: #d58512;
 
  border-color: #985f0d;
 
}
 
.btn-warning:active,
 
.btn-warning.active,
 
.open > .dropdown-toggle.btn-warning {
 
  background-image: none;
 
}
 
.btn-warning.disabled:hover,
 
.btn-warning[disabled]:hover,
 
fieldset[disabled] .btn-warning:hover,
 
.btn-warning.disabled:focus,
 
.btn-warning[disabled]:focus,
 
fieldset[disabled] .btn-warning:focus,
 
.btn-warning.disabled.focus,
 
.btn-warning[disabled].focus,
 
fieldset[disabled] .btn-warning.focus {
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 
.btn-warning .badge {
 
  color: #f0ad4e;
 
  background-color: #fff;
 
}
 
.btn-danger {
 
  color: #fff;
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 
.btn-danger:focus,
 
.btn-danger.focus {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #761c19;
 
}
 
.btn-danger:hover {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #ac2925;
 
}
 
.btn-danger:active,
 
.btn-danger.active,
 
.open > .dropdown-toggle.btn-danger {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #ac2925;
 
}
 
.btn-danger:active:hover,
 
.btn-danger.active:hover,
 
.open > .dropdown-toggle.btn-danger:hover,
 
.btn-danger:active:focus,
 
.btn-danger.active:focus,
 
.open > .dropdown-toggle.btn-danger:focus,
 
.btn-danger:active.focus,
 
.btn-danger.active.focus,
 
.open > .dropdown-toggle.btn-danger.focus {
 
  color: #fff;
 
  background-color: #ac2925;
 
  border-color: #761c19;
 
}
 
.btn-danger:active,
 
.btn-danger.active,
 
.open > .dropdown-toggle.btn-danger {
 
  background-image: none;
 
}
 
.btn-danger.disabled:hover,
 
.btn-danger[disabled]:hover,
 
fieldset[disabled] .btn-danger:hover,
 
.btn-danger.disabled:focus,
 
.btn-danger[disabled]:focus,
 
fieldset[disabled] .btn-danger:focus,
 
.btn-danger.disabled.focus,
 
.btn-danger[disabled].focus,
 
fieldset[disabled] .btn-danger.focus {
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 
.btn-danger .badge {
 
  color: #d9534f;
 
  background-color: #fff;
 
}
 
.btn-link {
 
  color: #337ab7;
 
  font-weight: normal;
 
  border-radius: 0;
 
}
 
.btn-link,
 
.btn-link:active,
 
.btn-link.active,
 
.btn-link[disabled],
 
fieldset[disabled] .btn-link {
 
  background-color: transparent;
 
  box-shadow: none;
 
}
 
.btn-link,
 
.btn-link:hover,
 
.btn-link:focus,
 
.btn-link:active {
 
  border-color: transparent;
 
}
 
.btn-link:hover,
 
.btn-link:focus {
 
  color: #23527c;
 
  text-decoration: underline;
 
  background-color: transparent;
 
}
 
.btn-link[disabled]:hover,
 
fieldset[disabled] .btn-link:hover,
 
.btn-link[disabled]:focus,
 
fieldset[disabled] .btn-link:focus {
 
  color: #777777;
 
  text-decoration: none;
 
}
 
.btn-lg,
 
.btn-group-lg > .btn {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
.btn-sm,
 
.btn-group-sm > .btn {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.btn-xs,
 
.btn-group-xs > .btn {
 
  padding: 1px 5px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.btn-block {
 
  display: block;
 
  width: 100%;
 
}
 
.btn-block + .btn-block {
 
  margin-top: 5px;
 
}
 
input[type="submit"].btn-block,
 
input[type="reset"].btn-block,
 
input[type="button"].btn-block {
 
  width: 100%;
 
}
 
.fade {
 
  opacity: 0;
 
  -webkit-transition: opacity 0.15s linear;
 
  transition: opacity 0.15s linear;
 
}
 
.fade.in {
 
  opacity: 1;
 
}
 
.collapse {
 
  display: none;
 
}
 
.collapse.in {
 
  display: block;
 
}
 
tr.collapse.in {
 
  display: table-row;
 
}
 
tbody.collapse.in {
 
  display: table-row-group;
 
}
 
.collapsing {
 
  position: relative;
 
  height: 0;
 
  overflow: hidden;
 
  -webkit-transition-property: height, visibility;
 
  transition-property: height, visibility;
 
  -webkit-transition-duration: 0.35s;
 
  transition-duration: 0.35s;
 
  -webkit-transition-timing-function: ease;
 
  transition-timing-function: ease;
 
}
 
.caret {
 
  display: inline-block;
 
  width: 0;
 
  height: 0;
 
  margin-left: 2px;
 
  vertical-align: middle;
 
  border-top: 4px dashed;
 
  border-top: 4px solid \9;
 
  border-right: 4px solid transparent;
 
  border-left: 4px solid transparent;
 
}
 
.dropup,
 
.dropdown {
 
  position: relative;
 
}
 
.dropdown-toggle:focus {
 
  outline: 0;
 
}
 
.dropdown-menu {
 
  position: absolute;
 
  top: 100%;
 
  left: 0;
 
  z-index: 1000;
 
  display: none;
 
  float: left;
 
  min-width: 160px;
 
  padding: 5px 0;
 
  margin: 2px 0 0;
 
  list-style: none;
 
  font-size: 14px;
 
  text-align: left;
 
  background-color: #fff;
 
  border: 1px solid #ccc;
 
  border: 1px solid rgba(0, 0, 0, 0.15);
 
  border-radius: 4px;
 
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
 
  background-clip: padding-box;
 
}
 
.dropdown-menu.pull-right {
 
  right: 0;
 
  left: auto;
 
}
 
.dropdown-menu .divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 
.dropdown-menu > li > a {
 
  display: block;
 
  padding: 3px 20px;
 
  clear: both;
 
  font-weight: normal;
 
  line-height: 1.42857143;
 
  color: #333333;
 
  white-space: nowrap;
 
}
 
.dropdown-menu > li > a:hover,
 
.dropdown-menu > li > a:focus {
 
  text-decoration: none;
 
  color: #262626;
 
  background-color: #f5f5f5;
 
}
 
.dropdown-menu > .active > a,
 
.dropdown-menu > .active > a:hover,
 
.dropdown-menu > .active > a:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  outline: 0;
 
  background-color: #337ab7;
 
}
 
.dropdown-menu > .disabled > a,
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  color: #777777;
 
}
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  text-decoration: none;
 
  background-color: transparent;
 
  background-image: none;
 
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 
  cursor: not-allowed;
 
}
 
.open > .dropdown-menu {
 
  display: block;
 
}
 
.open > a {
 
  outline: 0;
 
}
 
.dropdown-menu-right {
 
  left: auto;
 
  right: 0;
 
}
 
.dropdown-menu-left {
 
  left: 0;
 
  right: auto;
 
}
 
.dropdown-header {
 
  display: block;
 
  padding: 3px 20px;
 
  font-size: 12px;
 
  line-height: 1.42857143;
 
  color: #777777;
 
  white-space: nowrap;
 
}
 
.dropdown-backdrop {
 
  position: fixed;
 
  left: 0;
 
  right: 0;
 
  bottom: 0;
 
  top: 0;
 
  z-index: 990;
 
}
 
.pull-right > .dropdown-menu {
 
  right: 0;
 
  left: auto;
 
}
 
.dropup .caret,
 
.navbar-fixed-bottom .dropdown .caret {
 
  border-top: 0;
 
  border-bottom: 4px dashed;
 
  border-bottom: 4px solid \9;
 
  content: "";
 
}
 
.dropup .dropdown-menu,
 
.navbar-fixed-bottom .dropdown .dropdown-menu {
 
  top: auto;
 
  bottom: 100%;
 
  margin-bottom: 2px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-right .dropdown-menu {
 
    left: auto;
 
    right: 0;
 
  }
 
  .navbar-right .dropdown-menu-left {
 
    left: 0;
 
    right: auto;
 
  }
 
}
 
.btn-group,
 
.btn-group-vertical {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle;
 
}
 
.btn-group > .btn,
 
.btn-group-vertical > .btn {
 
  position: relative;
 
  float: left;
 
}
 
.btn-group > .btn:hover,
 
.btn-group-vertical > .btn:hover,
 
.btn-group > .btn:focus,
 
.btn-group-vertical > .btn:focus,
 
.btn-group > .btn:active,
 
.btn-group-vertical > .btn:active,
 
.btn-group > .btn.active,
 
.btn-group-vertical > .btn.active {
 
  z-index: 2;
 
}
 
.btn-group .btn + .btn,
 
.btn-group .btn + .btn-group,
 
.btn-group .btn-group + .btn,
 
.btn-group .btn-group + .btn-group {
 
  margin-left: -1px;
 
}
 
.btn-toolbar {
 
  margin-left: -5px;
 
}
 
.btn-toolbar .btn,
 
.btn-toolbar .btn-group,
 
.btn-toolbar .input-group {
 
  float: left;
 
}
 
.btn-toolbar > .btn,
 
.btn-toolbar > .btn-group,
 
.btn-toolbar > .input-group {
 
  margin-left: 5px;
 
}
 
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 
  border-radius: 0;
 
}
 
.btn-group > .btn:first-child {
 
  margin-left: 0;
 
}
 
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.btn-group > .btn:last-child:not(:first-child),
 
.btn-group > .dropdown-toggle:not(:first-child) {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group > .btn-group {
 
  float: left;
 
}
 
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
 
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group .dropdown-toggle:active,
 
.btn-group.open .dropdown-toggle {
 
  outline: 0;
 
}
 
.btn-group > .btn + .dropdown-toggle {
 
  padding-left: 8px;
 
  padding-right: 8px;
 
}
 
.btn-group > .btn-lg + .dropdown-toggle {
 
  padding-left: 12px;
 
  padding-right: 12px;
 
}
 
.btn-group.open .dropdown-toggle {
 
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 
.btn-group.open .dropdown-toggle.btn-link {
 
  box-shadow: none;
 
}
 
.btn .caret {
 
  margin-left: 0;
 
}
 
.btn-lg .caret {
 
  border-width: 5px 5px 0;
 
  border-bottom-width: 0;
 
}
 
.dropup .btn-lg .caret {
 
  border-width: 0 5px 5px;
 
}
 
.btn-group-vertical > .btn,
 
.btn-group-vertical > .btn-group,
 
.btn-group-vertical > .btn-group > .btn {
 
  display: block;
 
  float: none;
 
  width: 100%;
 
  max-width: 100%;
 
}
 
.btn-group-vertical > .btn-group > .btn {
 
  float: none;
 
}
 
.btn-group-vertical > .btn + .btn,
 
.btn-group-vertical > .btn + .btn-group,
 
.btn-group-vertical > .btn-group + .btn,
 
.btn-group-vertical > .btn-group + .btn-group {
 
  margin-top: -1px;
 
  margin-left: 0;
 
}
 
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 
.btn-group-vertical > .btn:first-child:not(:last-child) {
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.btn-group-vertical > .btn:last-child:not(:first-child) {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
  border-bottom-right-radius: 4px;
 
  border-bottom-left-radius: 4px;
 
}
 
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
 
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group-justified {
 
  display: table;
 
  width: 100%;
 
  table-layout: fixed;
 
  border-collapse: separate;
 
}
 
.btn-group-justified > .btn,
 
.btn-group-justified > .btn-group {
 
  float: none;
 
  display: table-cell;
 
  width: 1%;
 
}
 
.btn-group-justified > .btn-group .btn {
 
  width: 100%;
 
}
 
.btn-group-justified > .btn-group .dropdown-menu {
 
  left: auto;
 
}
 
[data-toggle="buttons"] > .btn input[type="radio"],
 
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
 
[data-toggle="buttons"] > .btn input[type="checkbox"],
 
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
 
  position: absolute;
 
  clip: rect(0, 0, 0, 0);
 
  pointer-events: none;
 
}
 
.input-group {
 
  position: relative;
 
  display: table;
 
  border-collapse: separate;
 
}
 
.input-group[class*="col-"] {
 
  float: none;
 
  padding-left: 0;
 
  padding-right: 0;
 
}
 
.input-group .form-control {
 
  position: relative;
 
  z-index: 2;
 
  float: left;
 
  width: 100%;
 
  margin-bottom: 0;
 
}
 
.input-group .form-control:focus {
 
  z-index: 3;
 
}
 
.input-group-lg > .form-control,
 
.input-group-lg > .input-group-addon,
 
.input-group-lg > .input-group-btn > .btn {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
select.input-group-lg > .form-control,
 
select.input-group-lg > .input-group-addon,
 
select.input-group-lg > .input-group-btn > .btn {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
textarea.input-group-lg > .form-control,
 
textarea.input-group-lg > .input-group-addon,
 
textarea.input-group-lg > .input-group-btn > .btn,
 
select[multiple].input-group-lg > .form-control,
 
select[multiple].input-group-lg > .input-group-addon,
 
select[multiple].input-group-lg > .input-group-btn > .btn {
 
  height: auto;
 
}
 
.input-group-sm > .form-control,
 
.input-group-sm > .input-group-addon,
 
.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
select.input-group-sm > .form-control,
 
select.input-group-sm > .input-group-addon,
 
select.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
textarea.input-group-sm > .form-control,
 
textarea.input-group-sm > .input-group-addon,
 
textarea.input-group-sm > .input-group-btn > .btn,
 
select[multiple].input-group-sm > .form-control,
 
select[multiple].input-group-sm > .input-group-addon,
 
select[multiple].input-group-sm > .input-group-btn > .btn {
 
  height: auto;
 
}
 
.input-group-addon,
 
.input-group-btn,
 
.input-group .form-control {
 
  display: table-cell;
 
}
 
.input-group-addon:not(:first-child):not(:last-child),
 
.input-group-btn:not(:first-child):not(:last-child),
 
.input-group .form-control:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 
.input-group-addon,
 
.input-group-btn {
 
  width: 1%;
 
  white-space: nowrap;
 
  vertical-align: middle;
 
}
 
.input-group-addon {
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  font-weight: normal;
 
  line-height: 1;
 
  color: #555555;
 
  text-align: center;
 
  background-color: #eeeeee;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
}
 
.input-group-addon.input-sm {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  border-radius: 3px;
 
}
 
.input-group-addon.input-lg {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  border-radius: 6px;
 
}
 
.input-group-addon input[type="radio"],
 
.input-group-addon input[type="checkbox"] {
 
  margin-top: 0;
 
}
 
.input-group .form-control:first-child,
 
.input-group-addon:first-child,
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .btn-group > .btn,
 
.input-group-btn:first-child > .dropdown-toggle,
 
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
 
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.input-group-addon:first-child {
 
  border-right: 0;
 
}
 
.input-group .form-control:last-child,
 
.input-group-addon:last-child,
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .btn-group > .btn,
 
.input-group-btn:last-child > .dropdown-toggle,
 
.input-group-btn:first-child > .btn:not(:first-child),
 
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.input-group-addon:last-child {
 
  border-left: 0;
 
}
 
.input-group-btn {
 
  position: relative;
 
  font-size: 0;
 
  white-space: nowrap;
 
}
 
.input-group-btn > .btn {
 
  position: relative;
 
}
 
.input-group-btn > .btn + .btn {
 
  margin-left: -1px;
 
}
 
.input-group-btn > .btn:hover,
 
.input-group-btn > .btn:focus,
 
.input-group-btn > .btn:active {
 
  z-index: 2;
 
}
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .btn-group {
 
  margin-right: -1px;
 
}
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .btn-group {
 
  z-index: 2;
 
  margin-left: -1px;
 
}
 
.nav {
 
  margin-bottom: 0;
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.nav > li {
 
  position: relative;
 
  display: block;
 
}
 
.nav > li > a {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
}
 
.nav > li > a:hover,
 
.nav > li > a:focus {
 
  text-decoration: none;
 
  background-color: #eeeeee;
 
}
 
.nav > li.disabled > a {
 
  color: #777777;
 
}
 
.nav > li.disabled > a:hover,
 
.nav > li.disabled > a:focus {
 
  color: #777777;
 
  text-decoration: none;
 
  background-color: transparent;
 
  cursor: not-allowed;
 
}
 
.nav .open > a,
 
.nav .open > a:hover,
 
.nav .open > a:focus {
 
  background-color: #eeeeee;
 
  border-color: #337ab7;
 
}
 
.nav .nav-divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 
.nav > li > a > img {
 
  max-width: none;
 
}
 
.nav-tabs {
 
  border-bottom: 1px solid #ddd;
 
}
 
.nav-tabs > li {
 
  float: left;
 
  margin-bottom: -1px;
 
}
 
.nav-tabs > li > a {
 
  margin-right: 2px;
 
  line-height: 1.42857143;
 
  border: 1px solid transparent;
 
  border-radius: 4px 4px 0 0;
 
}
 
.nav-tabs > li > a:hover {
 
  border-color: #eeeeee #eeeeee #ddd;
 
}
 
.nav-tabs > li.active > a,
 
.nav-tabs > li.active > a:hover,
 
.nav-tabs > li.active > a:focus {
 
  color: #555555;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-bottom-color: transparent;
 
  cursor: default;
 
}
 
.nav-tabs.nav-justified {
 
  width: 100%;
 
  border-bottom: 0;
 
}
 
.nav-tabs.nav-justified > li {
 
  float: none;
 
}
 
.nav-tabs.nav-justified > li > a {
 
  text-align: center;
 
  margin-bottom: 5px;
 
}
 
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
 
  top: auto;
 
  left: auto;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs.nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
  .nav-tabs.nav-justified > li > a {
 
    margin-bottom: 0;
 
  }
 
}
 
.nav-tabs.nav-justified > li > a {
 
  margin-right: 0;
 
  border-radius: 4px;
 
}
 
.nav-tabs.nav-justified > .active > a,
 
.nav-tabs.nav-justified > .active > a:hover,
 
.nav-tabs.nav-justified > .active > a:focus {
 
  border: 1px solid #ddd;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs.nav-justified > li > a {
 
    border-bottom: 1px solid #ddd;
 
    border-radius: 4px 4px 0 0;
 
  }
 
  .nav-tabs.nav-justified > .active > a,
 
  .nav-tabs.nav-justified > .active > a:hover,
 
  .nav-tabs.nav-justified > .active > a:focus {
 
    border-bottom-color: #fff;
 
  }
 
}
 
.nav-pills > li {
 
  float: left;
 
}
 
.nav-pills > li > a {
 
  border-radius: 4px;
 
}
 
.nav-pills > li + li {
 
  margin-left: 2px;
 
}
 
.nav-pills > li.active > a,
 
.nav-pills > li.active > a:hover,
 
.nav-pills > li.active > a:focus {
 
  color: #fff;
 
  background-color: #337ab7;
 
}
 
.nav-stacked > li {
 
  float: none;
 
}
 
.nav-stacked > li + li {
 
  margin-top: 2px;
 
  margin-left: 0;
 
}
 
.nav-justified {
 
  width: 100%;
 
}
 
.nav-justified > li {
 
  float: none;
 
}
 
.nav-justified > li > a {
 
  text-align: center;
 
  margin-bottom: 5px;
 
}
 
.nav-justified > .dropdown .dropdown-menu {
 
  top: auto;
 
  left: auto;
 
}
 
@media (min-width: 768px) {
 
  .nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
  .nav-justified > li > a {
 
    margin-bottom: 0;
 
  }
 
}
 
.nav-tabs-justified {
 
  border-bottom: 0;
 
}
 
.nav-tabs-justified > li > a {
 
  margin-right: 0;
 
  border-radius: 4px;
 
}
 
.nav-tabs-justified > .active > a,
 
.nav-tabs-justified > .active > a:hover,
 
.nav-tabs-justified > .active > a:focus {
 
  border: 1px solid #ddd;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs-justified > li > a {
 
    border-bottom: 1px solid #ddd;
 
    border-radius: 4px 4px 0 0;
 
  }
 
  .nav-tabs-justified > .active > a,
 
  .nav-tabs-justified > .active > a:hover,
 
  .nav-tabs-justified > .active > a:focus {
 
    border-bottom-color: #fff;
 
  }
 
}
 
.tab-content > .tab-pane {
 
  display: none;
 
}
 
.tab-content > .active {
 
  display: block;
 
}
 
.nav-tabs .dropdown-menu {
 
  margin-top: -1px;
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.navbar {
 
  position: relative;
 
  min-height: 50px;
 
  margin-bottom: 20px;
 
  border: 1px solid transparent;
 
}
 
@media (min-width: 768px) {
 
  .navbar {
 
    border-radius: 4px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-header {
 
    float: left;
 
  }
 
}
 
.navbar-collapse {
 
  overflow-x: visible;
 
  padding-right: 15px;
 
  padding-left: 15px;
 
  border-top: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
 
  -webkit-overflow-scrolling: touch;
 
}
 
.navbar-collapse.in {
 
  overflow-y: auto;
 
}
 
@media (min-width: 768px) {
 
  .navbar-collapse {
 
    width: auto;
 
    border-top: 0;
 
    box-shadow: none;
 
  }
 
  .navbar-collapse.collapse {
 
    display: block !important;
 
    height: auto !important;
 
    padding-bottom: 0;
 
    overflow: visible !important;
 
  }
 
  .navbar-collapse.in {
 
    overflow-y: visible;
 
  }
 
  .navbar-fixed-top .navbar-collapse,
 
  .navbar-static-top .navbar-collapse,
 
  .navbar-fixed-bottom .navbar-collapse {
 
    padding-left: 0;
 
    padding-right: 0;
 
  }
 
}
 
.navbar-fixed-top .navbar-collapse,
 
.navbar-fixed-bottom .navbar-collapse {
 
  max-height: 340px;
 
}
 
@media (max-device-width: 480px) and (orientation: landscape) {
 
  .navbar-fixed-top .navbar-collapse,
 
  .navbar-fixed-bottom .navbar-collapse {
 
    max-height: 200px;
 
  }
 
}
 
.container > .navbar-header,
 
.container-fluid > .navbar-header,
 
.container > .navbar-collapse,
 
.container-fluid > .navbar-collapse {
 
  margin-right: -15px;
 
  margin-left: -15px;
 
}
 
@media (min-width: 768px) {
 
  .container > .navbar-header,
 
  .container-fluid > .navbar-header,
 
  .container > .navbar-collapse,
 
  .container-fluid > .navbar-collapse {
 
    margin-right: 0;
 
    margin-left: 0;
 
  }
 
}
 
.navbar-static-top {
 
  z-index: 1000;
 
  border-width: 0 0 1px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-static-top {
 
    border-radius: 0;
 
  }
 
}
 
.navbar-fixed-top,
 
.navbar-fixed-bottom {
 
  position: fixed;
 
  right: 0;
 
  left: 0;
 
  z-index: 1030;
 
}
 
@media (min-width: 768px) {
 
  .navbar-fixed-top,
 
  .navbar-fixed-bottom {
 
    border-radius: 0;
 
  }
 
}
 
.navbar-fixed-top {
 
  top: 0;
 
  border-width: 0 0 1px;
 
}
 
.navbar-fixed-bottom {
 
  bottom: 0;
 
  margin-bottom: 0;
 
  border-width: 1px 0 0;
 
}
 
.navbar-brand {
 
  float: left;
 
  padding: 15px 15px;
 
  font-size: 18px;
 
  line-height: 20px;
 
  height: 50px;
 
}
 
.navbar-brand:hover,
 
.navbar-brand:focus {
 
  text-decoration: none;
 
}
 
.navbar-brand > img {
 
  display: block;
 
}
 
@media (min-width: 768px) {
 
  .navbar > .container .navbar-brand,
 
  .navbar > .container-fluid .navbar-brand {
 
    margin-left: -15px;
 
  }
 
}
 
.navbar-toggle {
 
  position: relative;
 
  float: right;
 
  margin-right: 15px;
 
  padding: 9px 10px;
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
  background-color: transparent;
 
  background-image: none;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
}
 
.navbar-toggle:focus {
 
  outline: 0;
 
}
 
.navbar-toggle .icon-bar {
 
  display: block;
 
  width: 22px;
 
  height: 2px;
 
  border-radius: 1px;
 
}
 
.navbar-toggle .icon-bar + .icon-bar {
 
  margin-top: 4px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-toggle {
 
    display: none;
 
  }
 
}
 
.navbar-nav {
 
  margin: 7.5px -15px;
 
}
 
.navbar-nav > li > a {
 
  padding-top: 10px;
 
  padding-bottom: 10px;
 
  line-height: 20px;
 
}
 
@media (max-width: 767px) {
 
  .navbar-nav .open .dropdown-menu {
 
    position: static;
 
    float: none;
 
    width: auto;
 
    margin-top: 0;
 
    background-color: transparent;
 
    border: 0;
 
    box-shadow: none;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a,
 
  .navbar-nav .open .dropdown-menu .dropdown-header {
 
    padding: 5px 15px 5px 25px;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a {
 
    line-height: 20px;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-nav .open .dropdown-menu > li > a:focus {
 
    background-image: none;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-nav {
 
    float: left;
 
    margin: 0;
 
  }
 
  .navbar-nav > li {
 
    float: left;
 
  }
 
  .navbar-nav > li > a {
 
    padding-top: 15px;
 
    padding-bottom: 15px;
 
  }
 
}
 
.navbar-form {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
  padding: 10px 15px;
 
  border-top: 1px solid transparent;
 
  border-bottom: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-form .form-group {
 
    display: inline-block;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .form-control {
 
    display: inline-block;
 
    width: auto;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .form-control-static {
 
    display: inline-block;
 
  }
 
  .navbar-form .input-group {
 
    display: inline-table;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .input-group .input-group-addon,
 
  .navbar-form .input-group .input-group-btn,
 
  .navbar-form .input-group .form-control {
 
    width: auto;
 
  }
 
  .navbar-form .input-group > .form-control {
 
    width: 100%;
 
  }
 
  .navbar-form .control-label {
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .radio,
 
  .navbar-form .checkbox {
 
    display: inline-block;
 
    margin-top: 0;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .radio label,
 
  .navbar-form .checkbox label {
 
    padding-left: 0;
 
  }
 
  .navbar-form .radio input[type="radio"],
 
  .navbar-form .checkbox input[type="checkbox"] {
 
    position: relative;
 
    margin-left: 0;
 
  }
 
  .navbar-form .has-feedback .form-control-feedback {
 
    top: 0;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .navbar-form .form-group {
 
    margin-bottom: 5px;
 
  }
 
  .navbar-form .form-group:last-child {
 
    margin-bottom: 0;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-form {
 
    width: auto;
 
    border: 0;
 
    margin-left: 0;
 
    margin-right: 0;
 
    padding-top: 0;
 
    padding-bottom: 0;
 
    box-shadow: none;
 
  }
 
}
 
.navbar-nav > li > .dropdown-menu {
 
  margin-top: 0;
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
 
  margin-bottom: 0;
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.navbar-btn {
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
}
 
.navbar-btn.btn-sm {
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
.navbar-btn.btn-xs {
 
  margin-top: 14px;
 
  margin-bottom: 14px;
 
}
 
.navbar-text {
 
  margin-top: 15px;
 
  margin-bottom: 15px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-text {
 
    float: left;
 
    margin-left: 15px;
 
    margin-right: 15px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-left {
 
    float: left !important;
 
    float: left;
 
  }
 
  .navbar-right {
 
    float: right !important;
 
    float: right;
 
    margin-right: -15px;
 
  }
 
  .navbar-right ~ .navbar-right {
 
    margin-right: 0;
 
  }
 
}
 
.navbar-default {
 
  background-color: #f8f8f8;
 
  border-color: #e7e7e7;
 
}
 
.navbar-default .navbar-brand {
 
  color: #777;
 
}
 
.navbar-default .navbar-brand:hover,
 
.navbar-default .navbar-brand:focus {
 
  color: #5e5e5e;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-text {
 
  color: #777;
 
}
 
.navbar-default .navbar-nav > li > a {
 
  color: #777;
 
}
 
.navbar-default .navbar-nav > li > a:hover,
 
.navbar-default .navbar-nav > li > a:focus {
 
  color: #333;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-nav > .active > a,
 
.navbar-default .navbar-nav > .active > a:hover,
 
.navbar-default .navbar-nav > .active > a:focus {
 
  color: #555;
 
  background-color: #e7e7e7;
 
}
 
.navbar-default .navbar-nav > .disabled > a,
 
.navbar-default .navbar-nav > .disabled > a:hover,
 
.navbar-default .navbar-nav > .disabled > a:focus {
 
  color: #ccc;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-toggle {
 
  border-color: #ddd;
 
}
 
.navbar-default .navbar-toggle:hover,
 
.navbar-default .navbar-toggle:focus {
 
  background-color: #ddd;
 
}
 
.navbar-default .navbar-toggle .icon-bar {
 
  background-color: #888;
 
}
 
.navbar-default .navbar-collapse,
 
.navbar-default .navbar-form {
 
  border-color: #e7e7e7;
 
}
 
.navbar-default .navbar-nav > .open > a,
 
.navbar-default .navbar-nav > .open > a:hover,
 
.navbar-default .navbar-nav > .open > a:focus {
 
  background-color: #e7e7e7;
 
  color: #555;
 
}
 
@media (max-width: 767px) {
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
 
    color: #777;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
 
    color: #333;
 
    background-color: transparent;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
 
    color: #555;
 
    background-color: #e7e7e7;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 
    color: #ccc;
 
    background-color: transparent;
 
  }
 
}
 
.navbar-default .navbar-link {
 
  color: #777;
 
}
 
.navbar-default .navbar-link:hover {
 
  color: #333;
 
}
 
.navbar-default .btn-link {
 
  color: #777;
 
}
 
.navbar-default .btn-link:hover,
 
.navbar-default .btn-link:focus {
 
  color: #333;
 
}
 
.navbar-default .btn-link[disabled]:hover,
 
fieldset[disabled] .navbar-default .btn-link:hover,
 
.navbar-default .btn-link[disabled]:focus,
 
fieldset[disabled] .navbar-default .btn-link:focus {
 
  color: #ccc;
 
}
 
.navbar-inverse {
 
  background-color: #222;
 
  border-color: #080808;
 
}
 
.navbar-inverse .navbar-brand {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-brand:hover,
 
.navbar-inverse .navbar-brand:focus {
 
  color: #fff;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-text {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-nav > li > a {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-nav > li > a:hover,
 
.navbar-inverse .navbar-nav > li > a:focus {
 
  color: #fff;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-nav > .active > a,
 
.navbar-inverse .navbar-nav > .active > a:hover,
 
.navbar-inverse .navbar-nav > .active > a:focus {
 
  color: #fff;
 
  background-color: #080808;
 
}
 
.navbar-inverse .navbar-nav > .disabled > a,
 
.navbar-inverse .navbar-nav > .disabled > a:hover,
 
.navbar-inverse .navbar-nav > .disabled > a:focus {
 
  color: #444;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-toggle {
 
  border-color: #333;
 
}
 
.navbar-inverse .navbar-toggle:hover,
 
.navbar-inverse .navbar-toggle:focus {
 
  background-color: #333;
 
}
 
.navbar-inverse .navbar-toggle .icon-bar {
 
  background-color: #fff;
 
}
 
.navbar-inverse .navbar-collapse,
 
.navbar-inverse .navbar-form {
 
  border-color: #101010;
 
}
 
.navbar-inverse .navbar-nav > .open > a,
 
.navbar-inverse .navbar-nav > .open > a:hover,
 
.navbar-inverse .navbar-nav > .open > a:focus {
 
  background-color: #080808;
 
  color: #fff;
 
}
 
@media (max-width: 767px) {
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
 
    border-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
 
    background-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
 
    color: #9d9d9d;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
 
    color: #fff;
 
    background-color: transparent;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
 
    color: #fff;
 
    background-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 
    color: #444;
 
    background-color: transparent;
 
  }
 
}
 
.navbar-inverse .navbar-link {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-link:hover {
 
  color: #fff;
 
}
 
.navbar-inverse .btn-link {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .btn-link:hover,
 
.navbar-inverse .btn-link:focus {
 
  color: #fff;
 
}
 
.navbar-inverse .btn-link[disabled]:hover,
 
fieldset[disabled] .navbar-inverse .btn-link:hover,
 
.navbar-inverse .btn-link[disabled]:focus,
 
fieldset[disabled] .navbar-inverse .btn-link:focus {
 
  color: #444;
 
}
 
.breadcrumb {
 
  padding: 8px 15px;
 
  margin-bottom: 20px;
 
  list-style: none;
 
  background-color: #f5f5f5;
 
  border-radius: 4px;
 
}
 
.breadcrumb > li {
 
  display: inline-block;
 
}
 
.breadcrumb > li + li:before {
 
  content: "/\00a0";
 
  padding: 0 5px;
 
  color: #ccc;
 
}
 
.breadcrumb > .active {
 
  color: #777777;
 
}
 
.pagination {
 
  display: inline-block;
 
  padding-left: 0;
 
  margin: 20px 0;
 
  border-radius: 4px;
 
}
 
.pagination > li {
 
  display: inline;
 
}
 
.pagination > li > a,
 
.pagination > li > span {
 
  position: relative;
 
  float: left;
 
  padding: 6px 12px;
 
  line-height: 1.42857143;
 
  text-decoration: none;
 
  color: #337ab7;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  margin-left: -1px;
 
}
 
.pagination > li:first-child > a,
 
.pagination > li:first-child > span {
 
  margin-left: 0;
 
  border-bottom-left-radius: 4px;
 
  border-top-left-radius: 4px;
 
}
 
.pagination > li:last-child > a,
 
.pagination > li:last-child > span {
 
  border-bottom-right-radius: 4px;
 
  border-top-right-radius: 4px;
 
}
 
.pagination > li > a:hover,
 
.pagination > li > span:hover,
 
.pagination > li > a:focus,
 
.pagination > li > span:focus {
 
  z-index: 2;
 
  color: #23527c;
 
  background-color: #eeeeee;
 
  border-color: #ddd;
 
}
 
.pagination > .active > a,
 
.pagination > .active > span,
 
.pagination > .active > a:hover,
 
.pagination > .active > span:hover,
 
.pagination > .active > a:focus,
 
.pagination > .active > span:focus {
 
  z-index: 3;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
  cursor: default;
 
}
 
.pagination > .disabled > span,
 
.pagination > .disabled > span:hover,
 
.pagination > .disabled > span:focus,
 
.pagination > .disabled > a,
 
.pagination > .disabled > a:hover,
 
.pagination > .disabled > a:focus {
 
  color: #777777;
 
  background-color: #fff;
 
  border-color: #ddd;
 
  cursor: not-allowed;
 
}
 
.pagination-lg > li > a,
 
.pagination-lg > li > span {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
}
 
.pagination-lg > li:first-child > a,
 
.pagination-lg > li:first-child > span {
 
  border-bottom-left-radius: 6px;
 
  border-top-left-radius: 6px;
 
}
 
.pagination-lg > li:last-child > a,
 
.pagination-lg > li:last-child > span {
 
  border-bottom-right-radius: 6px;
 
  border-top-right-radius: 6px;
 
}
 
.pagination-sm > li > a,
 
.pagination-sm > li > span {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
}
 
.pagination-sm > li:first-child > a,
 
.pagination-sm > li:first-child > span {
 
  border-bottom-left-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.pagination-sm > li:last-child > a,
 
.pagination-sm > li:last-child > span {
 
  border-bottom-right-radius: 3px;
 
  border-top-right-radius: 3px;
 
}
 
.pager {
 
  padding-left: 0;
 
  margin: 20px 0;
 
  list-style: none;
 
  text-align: center;
 
}
 
.pager li {
 
  display: inline;
 
}
 
.pager li > a,
 
.pager li > span {
 
  display: inline-block;
 
  padding: 5px 14px;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 15px;
 
}
 
.pager li > a:hover,
 
.pager li > a:focus {
 
  text-decoration: none;
 
  background-color: #eeeeee;
 
}
 
.pager .next > a,
 
.pager .next > span {
 
  float: right;
 
}
 
.pager .previous > a,
 
.pager .previous > span {
 
  float: left;
 
}
 
.pager .disabled > a,
 
.pager .disabled > a:hover,
 
.pager .disabled > a:focus,
 
.pager .disabled > span {
 
  color: #777777;
 
  background-color: #fff;
 
  cursor: not-allowed;
 
}
 
.label {
 
  display: inline;
 
  padding: .2em .6em .3em;
 
  font-size: 75%;
 
  font-weight: bold;
 
  line-height: 1;
 
  color: #fff;
 
  text-align: center;
 
  white-space: nowrap;
 
  vertical-align: baseline;
 
  border-radius: .25em;
 
}
 
a.label:hover,
 
a.label:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  cursor: pointer;
 
}
 
.label:empty {
 
  display: none;
 
}
 
.btn .label {
 
  position: relative;
 
  top: -1px;
 
}
 
.label-default {
 
  background-color: #777777;
 
}
 
.label-default[href]:hover,
 
.label-default[href]:focus {
 
  background-color: #5e5e5e;
 
}
 
.label-primary {
 
  background-color: #337ab7;
 
}
 
.label-primary[href]:hover,
 
.label-primary[href]:focus {
 
  background-color: #286090;
 
}
 
.label-success {
 
  background-color: #5cb85c;
 
}
 
.label-success[href]:hover,
 
.label-success[href]:focus {
 
  background-color: #449d44;
 
}
 
.label-info {
 
  background-color: #5bc0de;
 
}
 
.label-info[href]:hover,
 
.label-info[href]:focus {
 
  background-color: #31b0d5;
 
}
 
.label-warning {
 
  background-color: #f0ad4e;
 
}
 
.label-warning[href]:hover,
 
.label-warning[href]:focus {
 
  background-color: #ec971f;
 
}
 
.label-danger {
 
  background-color: #d9534f;
 
}
 
.label-danger[href]:hover,
 
.label-danger[href]:focus {
 
  background-color: #c9302c;
 
}
 
.badge {
 
  display: inline-block;
 
  min-width: 10px;
 
  padding: 3px 7px;
 
  font-size: 12px;
 
  font-weight: bold;
 
  color: #fff;
 
  line-height: 1;
 
  vertical-align: middle;
 
  white-space: nowrap;
 
  text-align: center;
 
  background-color: #777777;
 
  border-radius: 10px;
 
}
 
.badge:empty {
 
  display: none;
 
}
 
.btn .badge {
 
  position: relative;
 
  top: -1px;
 
}
 
.btn-xs .badge,
 
.btn-group-xs > .btn .badge {
 
  top: 0;
 
  padding: 1px 5px;
 
}
 
a.badge:hover,
 
a.badge:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  cursor: pointer;
 
}
 
.list-group-item.active > .badge,
 
.nav-pills > .active > a > .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.list-group-item > .badge {
 
  float: right;
 
}
 
.list-group-item > .badge + .badge {
 
  margin-right: 5px;
 
}
 
.nav-pills > li > a > .badge {
 
  margin-left: 3px;
 
}
 
.jumbotron {
 
  padding-top: 30px;
 
  padding-bottom: 30px;
 
  margin-bottom: 30px;
 
  color: inherit;
 
  background-color: #eeeeee;
 
}
 
.jumbotron h1,
 
.jumbotron .h1 {
 
  color: inherit;
 
}
 
.jumbotron p {
 
  margin-bottom: 15px;
 
  font-size: 21px;
 
  font-weight: 200;
 
}
 
.jumbotron > hr {
 
  border-top-color: #d5d5d5;
 
}
 
.container .jumbotron,
 
.container-fluid .jumbotron {
 
  border-radius: 6px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.jumbotron .container {
 
  max-width: 100%;
 
}
 
@media screen and (min-width: 768px) {
 
  .jumbotron {
 
    padding-top: 48px;
 
    padding-bottom: 48px;
 
  }
 
  .container .jumbotron,
 
  .container-fluid .jumbotron {
 
    padding-left: 60px;
 
    padding-right: 60px;
 
  }
 
  .jumbotron h1,
 
  .jumbotron .h1 {
 
    font-size: 63px;
 
  }
 
}
 
.thumbnail {
 
  display: block;
 
  padding: 4px;
 
  margin-bottom: 20px;
 
  line-height: 1.42857143;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 4px;
 
  -webkit-transition: border 0.2s ease-in-out;
 
  transition: border 0.2s ease-in-out;
 
}
 
.thumbnail > img,
 
.thumbnail a > img {
 
  margin-left: auto;
 
  margin-right: auto;
 
}
 
a.thumbnail:hover,
 
a.thumbnail:focus,
 
a.thumbnail.active {
 
  border-color: #337ab7;
 
}
 
.thumbnail .caption {
 
  padding: 9px;
 
  color: #333333;
 
}
 
.alert {
 
  padding: 15px;
 
  margin-bottom: 20px;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
}
 
.alert h4 {
 
  margin-top: 0;
 
  color: inherit;
 
}
 
.alert .alert-link {
 
  font-weight: bold;
 
}
 
.alert > p,
 
.alert > ul {
 
  margin-bottom: 0;
 
}
 
.alert > p + p {
 
  margin-top: 5px;
 
}
 
.alert-dismissable,
 
.alert-dismissible {
 
  padding-right: 35px;
 
}
 
.alert-dismissable .close,
 
.alert-dismissible .close {
 
  position: relative;
 
  top: -2px;
 
  right: -21px;
 
  color: inherit;
 
}
 
.alert-success {
 
  background-color: #dff0d8;
 
  border-color: #d6e9c6;
 
  color: #3c763d;
 
}
 
.alert-success hr {
 
  border-top-color: #c9e2b3;
 
}
 
.alert-success .alert-link {
 
  color: #2b542c;
 
}
 
.alert-info {
 
  background-color: #d9edf7;
 
  border-color: #bce8f1;
 
  color: #31708f;
 
}
 
.alert-info hr {
 
  border-top-color: #a6e1ec;
 
}
 
.alert-info .alert-link {
 
  color: #245269;
 
}
 
.alert-warning {
 
  background-color: #fcf8e3;
 
  border-color: #faebcc;
 
  color: #8a6d3b;
 
}
 
.alert-warning hr {
 
  border-top-color: #f7e1b5;
 
}
 
.alert-warning .alert-link {
 
  color: #66512c;
 
}
 
.alert-danger {
 
  background-color: #f2dede;
 
  border-color: #ebccd1;
 
  color: #a94442;
 
}
 
.alert-danger hr {
 
  border-top-color: #e4b9c0;
 
}
 
.alert-danger .alert-link {
 
  color: #843534;
 
}
 
@-webkit-keyframes progress-bar-stripes {
 
  from {
 
    background-position: 40px 0;
 
  }
 
  to {
 
    background-position: 0 0;
 
  }
 
}
 
@keyframes progress-bar-stripes {
 
  from {
 
    background-position: 40px 0;
 
  }
 
  to {
 
    background-position: 0 0;
 
  }
 
}
 
.progress {
 
  overflow: hidden;
 
  height: 20px;
 
  margin-bottom: 20px;
 
  background-color: #f5f5f5;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
 
}
 
.progress-bar {
 
  float: left;
 
  width: 0%;
 
  height: 100%;
 
  font-size: 12px;
 
  line-height: 20px;
 
  color: #fff;
 
  text-align: center;
 
  background-color: #337ab7;
 
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
 
  -webkit-transition: width 0.6s ease;
 
  transition: width 0.6s ease;
 
}
 
.progress-striped .progress-bar,
 
.progress-bar-striped {
 
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-size: 40px 40px;
 
}
 
.progress.active .progress-bar,
 
.progress-bar.active {
 
  -webkit-animation: progress-bar-stripes 2s linear infinite;
 
  animation: progress-bar-stripes 2s linear infinite;
 
}
 
.progress-bar-success {
 
  background-color: #5cb85c;
 
}
 
.progress-striped .progress-bar-success {
 
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
}
 
.progress-bar-info {
 
  background-color: #5bc0de;
 
}
 
.progress-striped .progress-bar-info {
 
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
}
 
.progress-bar-warning {
 
  background-color: #f0ad4e;
 
}
 
.progress-striped .progress-bar-warning {
 
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
}
 
.progress-bar-danger {
 
  background-color: #d9534f;
 
}
 
.progress-striped .progress-bar-danger {
 
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 
}
 
.media {
 
  margin-top: 15px;
 
}
 
.media:first-child {
 
  margin-top: 0;
 
}
 
.media,
 
.media-body {
 
  zoom: 1;
 
  overflow: hidden;
 
}
 
.media-body {
 
  width: 10000px;
 
}
 
.media-object {
 
  display: block;
 
}
 
.media-object.img-thumbnail {
 
  max-width: none;
 
}
 
.media-right,
 
.media > .pull-right {
 
  padding-left: 10px;
 
}
 
.media-left,
 
.media > .pull-left {
 
  padding-right: 10px;
 
}
 
.media-left,
 
.media-right,
 
.media-body {
 
  display: table-cell;
 
  vertical-align: top;
 
}
 
.media-middle {
 
  vertical-align: middle;
 
}
 
.media-bottom {
 
  vertical-align: bottom;
 
}
 
.media-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 
.media-list {
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.list-group {
 
  margin-bottom: 20px;
 
  padding-left: 0;
 
}
 
.list-group-item {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
  margin-bottom: -1px;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
}
 
.list-group-item:first-child {
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
}
 
.list-group-item:last-child {
 
  margin-bottom: 0;
 
  border-bottom-right-radius: 4px;
 
  border-bottom-left-radius: 4px;
 
}
 
a.list-group-item,
 
button.list-group-item {
 
  color: #555;
 
}
 
a.list-group-item .list-group-item-heading,
 
button.list-group-item .list-group-item-heading {
 
  color: #333;
 
}
 
a.list-group-item:hover,
 
button.list-group-item:hover,
 
a.list-group-item:focus,
 
button.list-group-item:focus {
 
  text-decoration: none;
 
  color: #555;
 
  background-color: #f5f5f5;
 
}
 
button.list-group-item {
 
  width: 100%;
 
  text-align: left;
 
}
 
.list-group-item.disabled,
 
.list-group-item.disabled:hover,
 
.list-group-item.disabled:focus {
 
  background-color: #eeeeee;
 
  color: #777777;
 
  cursor: not-allowed;
 
}
 
.list-group-item.disabled .list-group-item-heading,
 
.list-group-item.disabled:hover .list-group-item-heading,
 
.list-group-item.disabled:focus .list-group-item-heading {
 
  color: inherit;
 
}
 
.list-group-item.disabled .list-group-item-text,
 
.list-group-item.disabled:hover .list-group-item-text,
 
.list-group-item.disabled:focus .list-group-item-text {
 
  color: #777777;
 
}
 
.list-group-item.active,
 
.list-group-item.active:hover,
 
.list-group-item.active:focus {
 
  z-index: 2;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
.list-group-item.active .list-group-item-heading,
 
.list-group-item.active:hover .list-group-item-heading,
 
.list-group-item.active:focus .list-group-item-heading,
 
.list-group-item.active .list-group-item-heading > small,
 
.list-group-item.active:hover .list-group-item-heading > small,
 
.list-group-item.active:focus .list-group-item-heading > small,
 
.list-group-item.active .list-group-item-heading > .small,
 
.list-group-item.active:hover .list-group-item-heading > .small,
 
.list-group-item.active:focus .list-group-item-heading > .small {
 
  color: inherit;
 
}
 
.list-group-item.active .list-group-item-text,
 
.list-group-item.active:hover .list-group-item-text,
 
.list-group-item.active:focus .list-group-item-text {
 
  color: #c7ddef;
 
}
 
.list-group-item-success {
 
  color: #3c763d;
 
  background-color: #dff0d8;
 
}
 
a.list-group-item-success,
 
button.list-group-item-success {
 
  color: #3c763d;
 
}
 
a.list-group-item-success .list-group-item-heading,
 
button.list-group-item-success .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-success:hover,
 
button.list-group-item-success:hover,
 
a.list-group-item-success:focus,
 
button.list-group-item-success:focus {
 
  color: #3c763d;
 
  background-color: #d0e9c6;
 
}
 
a.list-group-item-success.active,
 
button.list-group-item-success.active,
 
a.list-group-item-success.active:hover,
 
button.list-group-item-success.active:hover,
 
a.list-group-item-success.active:focus,
 
button.list-group-item-success.active:focus {
 
  color: #fff;
 
  background-color: #3c763d;
 
  border-color: #3c763d;
 
}
 
.list-group-item-info {
 
  color: #31708f;
 
  background-color: #d9edf7;
 
}
 
a.list-group-item-info,
 
button.list-group-item-info {
 
  color: #31708f;
 
}
 
a.list-group-item-info .list-group-item-heading,
 
button.list-group-item-info .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-info:hover,
 
button.list-group-item-info:hover,
 
a.list-group-item-info:focus,
 
button.list-group-item-info:focus {
 
  color: #31708f;
 
  background-color: #c4e3f3;
 
}
 
a.list-group-item-info.active,
 
button.list-group-item-info.active,
 
a.list-group-item-info.active:hover,
 
button.list-group-item-info.active:hover,
 
a.list-group-item-info.active:focus,
 
button.list-group-item-info.active:focus {
 
  color: #fff;
 
  background-color: #31708f;
 
  border-color: #31708f;
 
}
 
.list-group-item-warning {
 
  color: #8a6d3b;
 
  background-color: #fcf8e3;
 
}
 
a.list-group-item-warning,
 
button.list-group-item-warning {
 
  color: #8a6d3b;
 
}
 
a.list-group-item-warning .list-group-item-heading,
 
button.list-group-item-warning .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-warning:hover,
 
button.list-group-item-warning:hover,
 
a.list-group-item-warning:focus,
 
button.list-group-item-warning:focus {
 
  color: #8a6d3b;
 
  background-color: #faf2cc;
 
}
 
a.list-group-item-warning.active,
 
button.list-group-item-warning.active,
 
a.list-group-item-warning.active:hover,
 
button.list-group-item-warning.active:hover,
 
a.list-group-item-warning.active:focus,
 
button.list-group-item-warning.active:focus {
 
  color: #fff;
 
  background-color: #8a6d3b;
 
  border-color: #8a6d3b;
 
}
 
.list-group-item-danger {
 
  color: #a94442;
 
  background-color: #f2dede;
 
}
 
a.list-group-item-danger,
 
button.list-group-item-danger {
 
  color: #a94442;
 
}
 
a.list-group-item-danger .list-group-item-heading,
 
button.list-group-item-danger .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-danger:hover,
 
button.list-group-item-danger:hover,
 
a.list-group-item-danger:focus,
 
button.list-group-item-danger:focus {
 
  color: #a94442;
 
  background-color: #ebcccc;
 
}
 
a.list-group-item-danger.active,
 
button.list-group-item-danger.active,
 
a.list-group-item-danger.active:hover,
 
button.list-group-item-danger.active:hover,
 
a.list-group-item-danger.active:focus,
 
button.list-group-item-danger.active:focus {
 
  color: #fff;
 
  background-color: #a94442;
 
  border-color: #a94442;
 
}
 
.list-group-item-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 
.list-group-item-text {
 
  margin-bottom: 0;
 
  line-height: 1.3;
 
}
 
.panel {
 
  margin-bottom: 20px;
 
  background-color: #fff;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
 
}
 
.panel-body {
 
  padding: 15px;
 
}
 
.panel-heading {
 
  padding: 10px 15px;
 
  border-bottom: 1px solid transparent;
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel-heading > .dropdown .dropdown-toggle {
 
  color: inherit;
 
}
 
.panel-title {
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  font-size: 16px;
 
  color: inherit;
 
}
 
.panel-title > a,
 
.panel-title > small,
 
.panel-title > .small,
 
.panel-title > small > a,
 
.panel-title > .small > a {
 
  color: inherit;
 
}
 
.panel-footer {
 
  padding: 10px 15px;
 
  background-color: #f5f5f5;
 
  border-top: 1px solid #ddd;
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .list-group,
 
.panel > .panel-collapse > .list-group {
 
  margin-bottom: 0;
 
}
 
.panel > .list-group .list-group-item,
 
.panel > .panel-collapse > .list-group .list-group-item {
 
  border-width: 1px 0;
 
  border-radius: 0;
 
}
 
.panel > .list-group:first-child .list-group-item:first-child,
 
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
 
  border-top: 0;
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel > .list-group:last-child .list-group-item:last-child,
 
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
 
  border-bottom: 0;
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.panel-heading + .list-group .list-group-item:first-child {
 
  border-top-width: 0;
 
}
 
.list-group + .panel-footer {
 
  border-top-width: 0;
 
}
 
.panel > .table,
 
.panel > .table-responsive > .table,
 
.panel > .panel-collapse > .table {
 
  margin-bottom: 0;
 
}
 
.panel > .table caption,
 
.panel > .table-responsive > .table caption,
 
.panel > .panel-collapse > .table caption {
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.panel > .table:first-child,
 
.panel > .table-responsive:first-child > .table:first-child {
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
 
  border-top-left-radius: 3px;
 
  border-top-right-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
 
  border-top-left-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
 
  border-top-right-radius: 3px;
 
}
 
.panel > .table:last-child,
 
.panel > .table-responsive:last-child > .table:last-child {
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
 
  border-bottom-left-radius: 3px;
 
  border-bottom-right-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
 
  border-bottom-right-radius: 3px;
 
}
 
.panel > .panel-body + .table,
 
.panel > .panel-body + .table-responsive,
 
.panel > .table + .panel-body,
 
.panel > .table-responsive + .panel-body {
 
  border-top: 1px solid #ddd;
 
}
 
.panel > .table > tbody:first-child > tr:first-child th,
 
.panel > .table > tbody:first-child > tr:first-child td {
 
  border-top: 0;
 
}
 
.panel > .table-bordered,
 
.panel > .table-responsive > .table-bordered {
 
  border: 0;
 
}
 
.panel > .table-bordered > thead > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
 
.panel > .table-bordered > tbody > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
 
.panel > .table-bordered > tfoot > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 
.panel > .table-bordered > thead > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
 
.panel > .table-bordered > tbody > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
 
.panel > .table-bordered > tfoot > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 
  border-left: 0;
 
}
 
.panel > .table-bordered > thead > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
 
.panel > .table-bordered > tbody > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
 
.panel > .table-bordered > tfoot > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 
.panel > .table-bordered > thead > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
 
.panel > .table-bordered > tbody > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
 
.panel > .table-bordered > tfoot > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 
  border-right: 0;
 
}
 
.panel > .table-bordered > thead > tr:first-child > td,
 
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
 
.panel > .table-bordered > tbody > tr:first-child > td,
 
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
 
.panel > .table-bordered > thead > tr:first-child > th,
 
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
 
.panel > .table-bordered > tbody > tr:first-child > th,
 
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
 
  border-bottom: 0;
 
}
 
.panel > .table-bordered > tbody > tr:last-child > td,
 
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
 
.panel > .table-bordered > tfoot > tr:last-child > td,
 
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
 
.panel > .table-bordered > tbody > tr:last-child > th,
 
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
 
.panel > .table-bordered > tfoot > tr:last-child > th,
 
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
 
  border-bottom: 0;
 
}
 
.panel > .table-responsive {
 
  border: 0;
 
  margin-bottom: 0;
 
}
 
.panel-group {
 
  margin-bottom: 20px;
 
}
 
.panel-group .panel {
 
  margin-bottom: 0;
 
  border-radius: 4px;
 
}
 
.panel-group .panel + .panel {
 
  margin-top: 5px;
 
}
 
.panel-group .panel-heading {
 
  border-bottom: 0;
 
}
 
.panel-group .panel-heading + .panel-collapse > .panel-body,
 
.panel-group .panel-heading + .panel-collapse > .list-group {
 
  border-top: 1px solid #ddd;
 
}
 
.panel-group .panel-footer {
 
  border-top: 0;
 
}
 
.panel-group .panel-footer + .panel-collapse .panel-body {
 
  border-bottom: 1px solid #ddd;
 
}
 
.panel-default {
 
  border-color: #ddd;
 
}
 
.panel-default > .panel-heading {
 
  color: #333333;
 
  background-color: #f5f5f5;
 
  border-color: #ddd;
 
}
 
.panel-default > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #ddd;
 
}
 
.panel-default > .panel-heading .badge {
 
  color: #f5f5f5;
 
  background-color: #333333;
 
}
 
.panel-default > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #ddd;
 
}
 
.panel-primary {
 
  border-color: #337ab7;
 
}
 
.panel-primary > .panel-heading {
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #337ab7;
 
}
 
.panel-primary > .panel-heading .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #337ab7;
 
}
 
.panel-success {
 
  border-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading {
 
  color: #3c763d;
 
  background-color: #dff0d8;
 
  border-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading .badge {
 
  color: #dff0d8;
 
  background-color: #3c763d;
 
}
 
.panel-success > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #d6e9c6;
 
}
 
.panel-info {
 
  border-color: #bce8f1;
 
}
 
.panel-info > .panel-heading {
 
  color: #31708f;
 
  background-color: #d9edf7;
 
  border-color: #bce8f1;
 
}
 
.panel-info > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #bce8f1;
 
}
 
.panel-info > .panel-heading .badge {
 
  color: #d9edf7;
 
  background-color: #31708f;
 
}
 
.panel-info > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #bce8f1;
 
}
 
.panel-warning {
 
  border-color: #faebcc;
 
}
 
.panel-warning > .panel-heading {
 
  color: #8a6d3b;
 
  background-color: #fcf8e3;
 
  border-color: #faebcc;
 
}
 
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #faebcc;
 
}
 
.panel-warning > .panel-heading .badge {
 
  color: #fcf8e3;
 
  background-color: #8a6d3b;
 
}
 
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #faebcc;
 
}
 
.panel-danger {
 
  border-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading {
 
  color: #a94442;
 
  background-color: #f2dede;
 
  border-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading .badge {
 
  color: #f2dede;
 
  background-color: #a94442;
 
}
 
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #ebccd1;
 
}
 
.embed-responsive {
 
  position: relative;
 
  display: block;
 
  height: 0;
 
  padding: 0;
 
  overflow: hidden;
 
}
 
.embed-responsive .embed-responsive-item,
 
.embed-responsive iframe,
 
.embed-responsive embed,
 
.embed-responsive object,
 
.embed-responsive video {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  bottom: 0;
 
  height: 100%;
 
  width: 100%;
 
  border: 0;
 
}
 
.embed-responsive-16by9 {
 
  padding-bottom: 56.25%;
 
}
 
.embed-responsive-4by3 {
 
  padding-bottom: 75%;
 
}
 
.well {
 
  min-height: 20px;
 
  padding: 19px;
 
  margin-bottom: 20px;
 
  background-color: #f5f5f5;
 
  border: 1px solid #e3e3e3;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
 
}
 
.well blockquote {
 
  border-color: #ddd;
 
  border-color: rgba(0, 0, 0, 0.15);
 
}
 
.well-lg {
 
  padding: 24px;
 
  border-radius: 6px;
 
}
 
.well-sm {
 
  padding: 9px;
 
  border-radius: 3px;
 
}
 
.close {
 
  float: right;
 
  font-size: 21px;
 
  font-weight: bold;
 
  line-height: 1;
 
  color: #000;
 
  text-shadow: 0 1px 0 #fff;
 
  opacity: 0.2;
 
  filter: alpha(opacity=20);
 
}
 
.close:hover,
 
.close:focus {
 
  color: #000;
 
  text-decoration: none;
 
  cursor: pointer;
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
}
 
button.close {
 
  padding: 0;
 
  cursor: pointer;
 
  background: transparent;
 
  border: 0;
 
  -webkit-appearance: none;
 
}
 
.modal-open {
 
  overflow: hidden;
 
}
 
.modal {
 
  display: none;
 
  overflow: hidden;
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: 1050;
 
  -webkit-overflow-scrolling: touch;
 
  outline: 0;
 
}
 
.modal.fade .modal-dialog {
 
  -webkit-transform: translate(0, -25%);
 
  transform: translate(0, -25%);
 
  -webkit-transition: -webkit-transform 0.3s ease-out;
 
  transition: -webkit-transform 0.3s ease-out;
 
  transition: transform 0.3s ease-out;
 
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
 
}
 
.modal.in .modal-dialog {
 
  -webkit-transform: translate(0, 0);
 
  transform: translate(0, 0);
 
}
 
.modal-open .modal {
 
  overflow-x: hidden;
 
  overflow-y: auto;
 
}
 
.modal-dialog {
 
  position: relative;
 
  width: auto;
 
  margin: 10px;
 
}
 
.modal-content {
 
  position: relative;
 
  background-color: #fff;
 
  border: 1px solid #999;
 
  border: 1px solid rgba(0, 0, 0, 0.2);
 
  border-radius: 6px;
 
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
 
  background-clip: padding-box;
 
  outline: 0;
 
}
 
.modal-backdrop {
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: 1040;
 
  background-color: #000;
 
}
 
.modal-backdrop.fade {
 
  opacity: 0;
 
  filter: alpha(opacity=0);
 
}
 
.modal-backdrop.in {
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
}
 
.modal-header {
 
  padding: 15px;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 
.modal-header .close {
 
  margin-top: -2px;
 
}
 
.modal-title {
 
  margin: 0;
 
  line-height: 1.42857143;
 
}
 
.modal-body {
 
  position: relative;
 
  padding: 15px;
 
}
 
.modal-footer {
 
  padding: 15px;
 
  text-align: right;
 
  border-top: 1px solid #e5e5e5;
 
}
 
.modal-footer .btn + .btn {
 
  margin-left: 5px;
 
  margin-bottom: 0;
 
}
 
.modal-footer .btn-group .btn + .btn {
 
  margin-left: -1px;
 
}
 
.modal-footer .btn-block + .btn-block {
 
  margin-left: 0;
 
}
 
.modal-scrollbar-measure {
 
  position: absolute;
 
  top: -9999px;
 
  width: 50px;
 
  height: 50px;
 
  overflow: scroll;
 
}
 
@media (min-width: 768px) {
 
  .modal-dialog {
 
    width: 600px;
 
    margin: 30px auto;
 
  }
 
  .modal-content {
 
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
 
  }
 
  .modal-sm {
 
    width: 300px;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .modal-lg {
 
    width: 900px;
 
  }
 
}
 
.tooltip {
 
  position: absolute;
 
  z-index: 1070;
 
  display: block;
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-style: normal;
 
  font-weight: normal;
 
  letter-spacing: normal;
 
  line-break: auto;
 
  line-height: 1.42857143;
 
  text-align: left;
 
  text-align: start;
 
  text-decoration: none;
 
  text-shadow: none;
 
  text-transform: none;
 
  white-space: normal;
 
  word-break: normal;
 
  word-spacing: normal;
 
  word-wrap: normal;
 
  font-size: 12px;
 
  opacity: 0;
 
  filter: alpha(opacity=0);
 
}
 
.tooltip.in {
 
  opacity: 0.9;
 
  filter: alpha(opacity=90);
 
}
 
.tooltip.top {
 
  margin-top: -3px;
 
  padding: 5px 0;
 
}
 
.tooltip.right {
 
  margin-left: 3px;
 
  padding: 0 5px;
 
}
 
.tooltip.bottom {
 
  margin-top: 3px;
 
  padding: 5px 0;
 
}
 
.tooltip.left {
 
  margin-left: -3px;
 
  padding: 0 5px;
 
}
 
.tooltip-inner {
 
  max-width: 200px;
 
  padding: 3px 8px;
 
  color: #fff;
 
  text-align: center;
 
  background-color: #000;
 
  border-radius: 4px;
 
}
 
.tooltip-arrow {
 
  position: absolute;
 
  width: 0;
 
  height: 0;
 
  border-color: transparent;
 
  border-style: solid;
 
}
 
.tooltip.top .tooltip-arrow {
 
  bottom: 0;
 
  left: 50%;
 
  margin-left: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.top-left .tooltip-arrow {
 
  bottom: 0;
 
  right: 5px;
 
  margin-bottom: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.top-right .tooltip-arrow {
 
  bottom: 0;
 
  left: 5px;
 
  margin-bottom: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.right .tooltip-arrow {
 
  top: 50%;
 
  left: 0;
 
  margin-top: -5px;
 
  border-width: 5px 5px 5px 0;
 
  border-right-color: #000;
 
}
 
.tooltip.left .tooltip-arrow {
 
  top: 50%;
 
  right: 0;
 
  margin-top: -5px;
 
  border-width: 5px 0 5px 5px;
 
  border-left-color: #000;
 
}
 
.tooltip.bottom .tooltip-arrow {
 
  top: 0;
 
  left: 50%;
 
  margin-left: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.tooltip.bottom-left .tooltip-arrow {
 
  top: 0;
 
  right: 5px;
 
  margin-top: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.tooltip.bottom-right .tooltip-arrow {
 
  top: 0;
 
  left: 5px;
 
  margin-top: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.popover {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  z-index: 1060;
 
  display: none;
 
  max-width: 276px;
 
  padding: 1px;
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-style: normal;
 
  font-weight: normal;
 
  letter-spacing: normal;
 
  line-break: auto;
 
  line-height: 1.42857143;
 
  text-align: left;
 
  text-align: start;
 
  text-decoration: none;
 
  text-shadow: none;
 
  text-transform: none;
 
  white-space: normal;
 
  word-break: normal;
 
  word-spacing: normal;
 
  word-wrap: normal;
 
  font-size: 14px;
 
  background-color: #fff;
 
  background-clip: padding-box;
 
  border: 1px solid #ccc;
 
  border: 1px solid rgba(0, 0, 0, 0.2);
 
  border-radius: 6px;
 
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
 
}
 
.popover.top {
 
  margin-top: -10px;
 
}
 
.popover.right {
 
  margin-left: 10px;
 
}
 
.popover.bottom {
 
  margin-top: 10px;
 
}
 
.popover.left {
 
  margin-left: -10px;
 
}
 
.popover-title {
 
  margin: 0;
 
  padding: 8px 14px;
 
  font-size: 14px;
 
  background-color: #f7f7f7;
 
  border-bottom: 1px solid #ebebeb;
 
  border-radius: 5px 5px 0 0;
 
}
 
.popover-content {
 
  padding: 9px 14px;
 
}
 
.popover > .arrow,
 
.popover > .arrow:after {
 
  position: absolute;
 
  display: block;
 
  width: 0;
 
  height: 0;
 
  border-color: transparent;
 
  border-style: solid;
 
}
 
.popover > .arrow {
 
  border-width: 11px;
 
}
 
.popover > .arrow:after {
 
  border-width: 10px;
 
  content: "";
 
}
 
.popover.top > .arrow {
 
  left: 50%;
 
  margin-left: -11px;
 
  border-bottom-width: 0;
 
  border-top-color: #999999;
 
  border-top-color: rgba(0, 0, 0, 0.25);
 
  bottom: -11px;
 
}
 
.popover.top > .arrow:after {
 
  content: " ";
 
  bottom: 1px;
 
  margin-left: -10px;
 
  border-bottom-width: 0;
 
  border-top-color: #fff;
 
}
 
.popover.right > .arrow {
 
  top: 50%;
 
  left: -11px;
 
  margin-top: -11px;
 
  border-left-width: 0;
 
  border-right-color: #999999;
 
  border-right-color: rgba(0, 0, 0, 0.25);
 
}
 
.popover.right > .arrow:after {
 
  content: " ";
 
  left: 1px;
 
  bottom: -10px;
 
  border-left-width: 0;
 
  border-right-color: #fff;
 
}
 
.popover.bottom > .arrow {
 
  left: 50%;
 
  margin-left: -11px;
 
  border-top-width: 0;
 
  border-bottom-color: #999999;
 
  border-bottom-color: rgba(0, 0, 0, 0.25);
 
  top: -11px;
 
}
 
.popover.bottom > .arrow:after {
 
  content: " ";
 
  top: 1px;
 
  margin-left: -10px;
 
  border-top-width: 0;
 
  border-bottom-color: #fff;
 
}
 
.popover.left > .arrow {
 
  top: 50%;
 
  right: -11px;
 
  margin-top: -11px;
 
  border-right-width: 0;
 
  border-left-color: #999999;
 
  border-left-color: rgba(0, 0, 0, 0.25);
 
}
 
.popover.left > .arrow:after {
 
  content: " ";
 
  right: 1px;
 
  border-right-width: 0;
 
  border-left-color: #fff;
 
  bottom: -10px;
 
}
 
.carousel {
 
  position: relative;
 
}
 
.carousel-inner {
 
  position: relative;
 
  overflow: hidden;
 
  width: 100%;
 
}
 
.carousel-inner > .item {
 
  display: none;
 
  position: relative;
 
  -webkit-transition: 0.6s ease-in-out left;
 
  transition: 0.6s ease-in-out left;
 
}
 
.carousel-inner > .item > img,
 
.carousel-inner > .item > a > img {
 
  line-height: 1;
 
}
 
@media all and (transform-3d), (-webkit-transform-3d) {
 
  .carousel-inner > .item {
 
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
 
    transition: -webkit-transform 0.6s ease-in-out;
 
    transition: transform 0.6s ease-in-out;
 
    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
 
    -webkit-backface-visibility: hidden;
 
    backface-visibility: hidden;
 
    -webkit-perspective: 1000px;
 
    perspective: 1000px;
 
  }
 
  .carousel-inner > .item.next,
 
  .carousel-inner > .item.active.right {
 
    -webkit-transform: translate3d(100%, 0, 0);
 
    transform: translate3d(100%, 0, 0);
 
    left: 0;
 
  }
 
  .carousel-inner > .item.prev,
 
  .carousel-inner > .item.active.left {
 
    -webkit-transform: translate3d(-100%, 0, 0);
 
    transform: translate3d(-100%, 0, 0);
 
    left: 0;
 
  }
 
  .carousel-inner > .item.next.left,
 
  .carousel-inner > .item.prev.right,
 
  .carousel-inner > .item.active {
 
    -webkit-transform: translate3d(0, 0, 0);
 
    transform: translate3d(0, 0, 0);
 
    left: 0;
 
  }
 
}
 
.carousel-inner > .active,
 
.carousel-inner > .next,
 
.carousel-inner > .prev {
 
  display: block;
 
}
 
.carousel-inner > .active {
 
  left: 0;
 
}
 
.carousel-inner > .next,
 
.carousel-inner > .prev {
 
  position: absolute;
 
  top: 0;
 
  width: 100%;
 
}
 
.carousel-inner > .next {
 
  left: 100%;
 
}
 
.carousel-inner > .prev {
 
  left: -100%;
 
}
 
.carousel-inner > .next.left,
 
.carousel-inner > .prev.right {
 
  left: 0;
 
}
 
.carousel-inner > .active.left {
 
  left: -100%;
 
}
 
.carousel-inner > .active.right {
 
  left: 100%;
 
}
 
.carousel-control {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  bottom: 0;
 
  width: 15%;
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
  font-size: 20px;
 
  color: #fff;
 
  text-align: center;
 
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 
  background-color: rgba(0, 0, 0, 0);
 
}
 
.carousel-control.left {
 
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
 
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
 
}
 
.carousel-control.right {
 
  left: auto;
 
  right: 0;
 
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
 
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
 
}
 
.carousel-control:hover,
 
.carousel-control:focus {
 
  outline: 0;
 
  color: #fff;
 
  text-decoration: none;
 
  opacity: 0.9;
 
  filter: alpha(opacity=90);
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .icon-next,
 
.carousel-control .glyphicon-chevron-left,
 
.carousel-control .glyphicon-chevron-right {
 
  position: absolute;
 
  top: 50%;
 
  margin-top: -10px;
 
  z-index: 5;
 
  display: inline-block;
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .glyphicon-chevron-left {
 
  left: 50%;
 
  margin-left: -10px;
 
}
 
.carousel-control .icon-next,
 
.carousel-control .glyphicon-chevron-right {
 
  right: 50%;
 
  margin-right: -10px;
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .icon-next {
 
  width: 20px;
 
  height: 20px;
 
  line-height: 1;
 
  font-family: serif;
 
}
 
.carousel-control .icon-prev:before {
 
  content: '\2039';
 
}
 
.carousel-control .icon-next:before {
 
  content: '\203a';
 
}
 
.carousel-indicators {
 
  position: absolute;
 
  bottom: 10px;
 
  left: 50%;
 
  z-index: 15;
 
  width: 60%;
 
  margin-left: -30%;
 
  padding-left: 0;
 
  list-style: none;
 
  text-align: center;
 
}
 
.carousel-indicators li {
 
  display: inline-block;
 
  width: 10px;
 
  height: 10px;
 
  margin: 1px;
 
  text-indent: -999px;
 
  border: 1px solid #fff;
 
  border-radius: 10px;
 
  cursor: pointer;
 
  background-color: #000 \9;
 
  background-color: rgba(0, 0, 0, 0);
 
}
 
.carousel-indicators .active {
 
  margin: 0;
 
  width: 12px;
 
  height: 12px;
 
  background-color: #fff;
 
}
 
.carousel-caption {
 
  position: absolute;
 
  left: 15%;
 
  right: 15%;
 
  bottom: 20px;
 
  z-index: 10;
 
  padding-top: 20px;
 
  padding-bottom: 20px;
 
  color: #fff;
 
  text-align: center;
 
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 
}
 
.carousel-caption .btn {
 
  text-shadow: none;
 
}
 
@media screen and (min-width: 768px) {
 
  .carousel-control .glyphicon-chevron-left,
 
  .carousel-control .glyphicon-chevron-right,
 
  .carousel-control .icon-prev,
 
  .carousel-control .icon-next {
 
    width: 30px;
 
    height: 30px;
 
    margin-top: -10px;
 
    font-size: 30px;
 
  }
 
  .carousel-control .glyphicon-chevron-left,
 
  .carousel-control .icon-prev {
 
    margin-left: -10px;
 
  }
 
  .carousel-control .glyphicon-chevron-right,
 
  .carousel-control .icon-next {
 
    margin-right: -10px;
 
  }
 
  .carousel-caption {
 
    left: 20%;
 
    right: 20%;
 
    padding-bottom: 30px;
 
  }
 
  .carousel-indicators {
 
    bottom: 20px;
 
  }
 
}
 
.clearfix:before,
 
.clearfix:after,
 
.dl-horizontal dd:before,
 
.dl-horizontal dd:after,
 
.container:before,
 
.container:after,
 
.container-fluid:before,
 
.container-fluid:after,
 
.row:before,
 
.row:after,
 
.form-horizontal .form-group:before,
 
.form-horizontal .form-group:after,
 
.btn-toolbar:before,
 
.btn-toolbar:after,
 
.btn-group-vertical > .btn-group:before,
 
.btn-group-vertical > .btn-group:after,
 
.nav:before,
 
.nav:after,
 
.navbar:before,
 
.navbar:after,
 
.navbar-header:before,
 
.navbar-header:after,
 
.navbar-collapse:before,
 
.navbar-collapse:after,
 
.pager:before,
 
.pager:after,
 
.panel-body:before,
 
.panel-body:after,
 
.modal-header:before,
 
.modal-header:after,
 
.modal-footer:before,
 
.modal-footer:after,
 
.feature-columns:before,
 
.feature-columns:after {
 
  content: " ";
 
  display: table;
 
}
 
.clearfix:after,
 
.dl-horizontal dd:after,
 
.container:after,
 
.container-fluid:after,
 
.row:after,
 
.form-horizontal .form-group:after,
 
.btn-toolbar:after,
 
.btn-group-vertical > .btn-group:after,
 
.nav:after,
 
.navbar:after,
 
.navbar-header:after,
 
.navbar-collapse:after,
 
.pager:after,
 
.panel-body:after,
 
.modal-header:after,
 
.modal-footer:after,
 
.feature-columns:after {
 
  clear: both;
 
}
 
.center-block {
 
  display: block;
 
  margin-left: auto;
 
  margin-right: auto;
 
}
 
.pull-right {
 
  float: right !important;
 
}
 
.pull-left {
 
  float: left !important;
 
}
 
.hide {
 
  display: none !important;
 
}
 
.show {
 
  display: block !important;
 
}
 
.invisible {
 
  visibility: hidden;
 
}
 
.text-hide {
 
  font: 0/0 a;
 
  color: transparent;
 
  text-shadow: none;
 
  background-color: transparent;
 
  border: 0;
 
}
 
.hidden {
 
  display: none !important;
 
}
 
.affix {
 
  position: fixed;
 
}
 
@-ms-viewport {
 
  width: device-width;
 
}
 
.visible-xs,
 
.visible-sm,
 
.visible-md,
 
.visible-lg {
 
  display: none !important;
 
}
 
.visible-xs-block,
 
.visible-xs-inline,
 
.visible-xs-inline-block,
 
.visible-sm-block,
 
.visible-sm-inline,
 
.visible-sm-inline-block,
 
.visible-md-block,
 
.visible-md-inline,
 
.visible-md-inline-block,
 
.visible-lg-block,
 
.visible-lg-inline,
 
.visible-lg-inline-block {
 
  display: none !important;
 
}
 
@media (max-width: 767px) {
 
  .visible-xs {
 
    display: block !important;
 
  }
 
  table.visible-xs {
 
    display: table !important;
 
  }
 
  tr.visible-xs {
 
    display: table-row !important;
 
  }
 
  th.visible-xs,
 
  td.visible-xs {
 
    display: table-cell !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-block {
 
    display: block !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm {
 
    display: block !important;
 
  }
 
  table.visible-sm {
 
    display: table !important;
 
  }
 
  tr.visible-sm {
 
    display: table-row !important;
 
  }
 
  th.visible-sm,
 
  td.visible-sm {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md {
 
    display: block !important;
 
  }
 
  table.visible-md {
 
    display: table !important;
 
  }
 
  tr.visible-md {
 
    display: table-row !important;
 
  }
 
  th.visible-md,
 
  td.visible-md {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg {
 
    display: block !important;
 
  }
 
  table.visible-lg {
 
    display: table !important;
 
  }
 
  tr.visible-lg {
 
    display: table-row !important;
 
  }
 
  th.visible-lg,
 
  td.visible-lg {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .hidden-xs {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .hidden-sm {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .hidden-md {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .hidden-lg {
 
    display: none !important;
 
  }
 
}
 
.visible-print {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print {
 
    display: block !important;
 
  }
 
  table.visible-print {
 
    display: table !important;
 
  }
 
  tr.visible-print {
 
    display: table-row !important;
 
  }
 
  th.visible-print,
 
  td.visible-print {
 
    display: table-cell !important;
 
  }
 
}
 
.visible-print-block {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-block {
 
    display: block !important;
 
  }
 
}
 
.visible-print-inline {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-inline {
 
    display: inline !important;
 
  }
 
}
 
.visible-print-inline-block {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media print {
 
  .hidden-print {
 
    display: none !important;
 
  }
 
}
 
/*!
 
 *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
 
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 
 */
 
/* FONT PATH
 
 * -------------------------- */
 
@font-face {
 
  font-family: 'FontAwesome';
 
  src: url('../fonts/fontawesome-webfont.eot?v=4.5.0');
 
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');
 
  font-weight: normal;
 
  font-style: normal;
 
}
 
.fa {
 
  display: inline-block;
 
  font: normal normal normal 14px/1 FontAwesome;
 
  font-size: inherit;
 
  text-rendering: auto;
 
  -webkit-font-smoothing: antialiased;
 
  -moz-osx-font-smoothing: grayscale;
 
}
 
/* makes the font 33% larger relative to the icon container */
 
.fa-lg {
 
  font-size: 1.33333333em;
 
  line-height: 0.75em;
 
  vertical-align: -15%;
 
}
 
.fa-2x {
 
  font-size: 2em;
 
}
 
.fa-3x {
 
  font-size: 3em;
 
}
 
.fa-4x {
 
  font-size: 4em;
 
}
 
.fa-5x {
 
  font-size: 5em;
 
}
 
.fa-fw {
 
  width: 1.28571429em;
 
  text-align: center;
 
}
 
.fa-ul {
 
  padding-left: 0;
 
  margin-left: 2.14285714em;
 
  list-style-type: none;
 
}
 
.fa-ul > li {
 
  position: relative;
 
}
 
.fa-li {
 
  position: absolute;
 
  left: -2.14285714em;
 
  width: 2.14285714em;
 
  top: 0.14285714em;
 
  text-align: center;
 
}
 
.fa-li.fa-lg {
 
  left: -1.85714286em;
 
}
 
.fa-border {
 
  padding: .2em .25em .15em;
 
  border: solid 0.08em #eee;
 
  border-radius: .1em;
 
}
 
.fa-pull-left {
 
  float: left;
 
}
 
.fa-pull-right {
 
  float: right;
 
}
 
.fa.fa-pull-left {
 
  margin-right: .3em;
 
}
 
.fa.fa-pull-right {
 
  margin-left: .3em;
 
}
 
/* Deprecated as of 4.4.0 */
 
.pull-right {
 
  float: right;
 
}
 
.pull-left {
 
  float: left;
 
}
 
.fa.pull-left {
 
  margin-right: .3em;
 
}
 
.fa.pull-right {
 
  margin-left: .3em;
 
}
 
.fa-spin {
 
  -webkit-animation: fa-spin 2s infinite linear;
 
  animation: fa-spin 2s infinite linear;
 
}
 
.fa-pulse {
 
  -webkit-animation: fa-spin 1s infinite steps(8);
 
  animation: fa-spin 1s infinite steps(8);
 
}
 
@-webkit-keyframes fa-spin {
 
  0% {
 
    -webkit-transform: rotate(0deg);
 
    transform: rotate(0deg);
 
  }
 
  100% {
 
    -webkit-transform: rotate(359deg);
 
    transform: rotate(359deg);
 
  }
 
}
 
@keyframes fa-spin {
 
  0% {
 
    -webkit-transform: rotate(0deg);
 
    transform: rotate(0deg);
 
  }
 
  100% {
 
    -webkit-transform: rotate(359deg);
 
    transform: rotate(359deg);
 
  }
 
}
 
.fa-rotate-90 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
 
  -webkit-transform: rotate(90deg);
 
  transform: rotate(90deg);
 
}
 
.fa-rotate-180 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
 
  -webkit-transform: rotate(180deg);
 
  transform: rotate(180deg);
 
}
 
.fa-rotate-270 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
 
  -webkit-transform: rotate(270deg);
 
  transform: rotate(270deg);
 
}
 
.fa-flip-horizontal {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
 
  -webkit-transform: scale(-1, 1);
 
  transform: scale(-1, 1);
 
}
 
.fa-flip-vertical {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
 
  -webkit-transform: scale(1, -1);
 
  transform: scale(1, -1);
 
}
 
:root .fa-rotate-90,
 
:root .fa-rotate-180,
 
:root .fa-rotate-270,
 
:root .fa-flip-horizontal,
 
:root .fa-flip-vertical {
 
  -webkit-filter: none;
 
          filter: none;
 
}
 
.fa-stack {
 
  position: relative;
 
  display: inline-block;
 
  width: 2em;
 
  height: 2em;
 
  line-height: 2em;
 
  vertical-align: middle;
 
}
 
.fa-stack-1x,
 
.fa-stack-2x {
 
  position: absolute;
 
  left: 0;
 
  width: 100%;
 
  text-align: center;
 
}
 
.fa-stack-1x {
 
  line-height: inherit;
 
}
 
.fa-stack-2x {
 
  font-size: 2em;
 
}
 
.fa-inverse {
 
  color: #fff;
 
}
 
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
 
   readers do not read off random characters that represent icons */
 
.fa-glass:before {
 
  content: "\f000";
 
}
 
.fa-music:before {
 
  content: "\f001";
 
}
 
.fa-search:before {
 
  content: "\f002";
 
}
 
.fa-envelope-o:before {
 
  content: "\f003";
 
}
 
.fa-heart:before {
 
  content: "\f004";
 
}
 
.fa-star:before {
 
  content: "\f005";
 
}
 
.fa-star-o:before {
 
  content: "\f006";
 
}
 
.fa-user:before {
 
  content: "\f007";
 
}
 
.fa-film:before {
 
  content: "\f008";
 
}
 
.fa-th-large:before {
 
  content: "\f009";
 
}
 
.fa-th:before {
 
  content: "\f00a";
 
}
 
.fa-th-list:before {
 
  content: "\f00b";
 
}
 
.fa-check:before {
 
  content: "\f00c";
 
}
 
.fa-remove:before,
 
.fa-close:before,
 
.fa-times:before {
 
  content: "\f00d";
 
}
 
.fa-search-plus:before {
 
  content: "\f00e";
 
}
 
.fa-search-minus:before {
 
  content: "\f010";
 
}
 
.fa-power-off:before {
 
  content: "\f011";
 
}
 
.fa-signal:before {
 
  content: "\f012";
 
}
 
.fa-gear:before,
 
.fa-cog:before {
 
  content: "\f013";
 
}
 
.fa-trash-o:before {
 
  content: "\f014";
 
}
 
.fa-home:before {
 
  content: "\f015";
 
}
 
.fa-file-o:before {
 
  content: "\f016";
 
}
 
.fa-clock-o:before {
 
  content: "\f017";
 
}
 
.fa-road:before {
 
  content: "\f018";
 
}
 
.fa-download:before {
 
  content: "\f019";
 
}
 
.fa-arrow-circle-o-down:before {
 
  content: "\f01a";
 
}
 
.fa-arrow-circle-o-up:before {
 
  content: "\f01b";
 
}
 
.fa-inbox:before {
 
  content: "\f01c";
 
}
 
.fa-play-circle-o:before {
 
  content: "\f01d";
 
}
 
.fa-rotate-right:before,
 
.fa-repeat:before {
 
  content: "\f01e";
 
}
 
.fa-refresh:before {
 
  content: "\f021";
 
}
 
.fa-list-alt:before {
 
  content: "\f022";
 
}
 
.fa-lock:before {
 
  content: "\f023";
 
}
 
.fa-flag:before {
 
  content: "\f024";
 
}
 
.fa-headphones:before {
 
  content: "\f025";
 
}
 
.fa-volume-off:before {
 
  content: "\f026";
 
}
 
.fa-volume-down:before {
 
  content: "\f027";
 
}
 
.fa-volume-up:before {
 
  content: "\f028";
 
}
 
.fa-qrcode:before {
 
  content: "\f029";
 
}
 
.fa-barcode:before {
 
  content: "\f02a";
 
}
 
.fa-tag:before {
 
  content: "\f02b";
 
}
 
.fa-tags:before {
 
  content: "\f02c";
 
}
 
.fa-book:before {
 
  content: "\f02d";
 
}
 
.fa-bookmark:before {
 
  content: "\f02e";
 
}
 
.fa-print:before {
 
  content: "\f02f";
 
}
 
.fa-camera:before {
 
  content: "\f030";
 
}
 
.fa-font:before {
 
  content: "\f031";
 
}
 
.fa-bold:before {
 
  content: "\f032";
 
}
 
.fa-italic:before {
 
  content: "\f033";
 
}
 
.fa-text-height:before {
 
  content: "\f034";
 
}
 
.fa-text-width:before {
 
  content: "\f035";
 
}
 
.fa-align-left:before {
 
  content: "\f036";
 
}
 
.fa-align-center:before {
 
  content: "\f037";
 
}
 
.fa-align-right:before {
 
  content: "\f038";
 
}
 
.fa-align-justify:before {
 
  content: "\f039";
 
}
 
.fa-list:before {
 
  content: "\f03a";
 
}
 
.fa-dedent:before,
 
.fa-outdent:before {
 
  content: "\f03b";
 
}
 
.fa-indent:before {
 
  content: "\f03c";
 
}
 
.fa-video-camera:before {
 
  content: "\f03d";
 
}
 
.fa-photo:before,
 
.fa-image:before,
 
.fa-picture-o:before {
 
  content: "\f03e";
 
}
 
.fa-pencil:before {
 
  content: "\f040";
 
}
 
.fa-map-marker:before {
 
  content: "\f041";
 
}
 
.fa-adjust:before {
 
  content: "\f042";
 
}
 
.fa-tint:before {
 
  content: "\f043";
 
}
 
.fa-edit:before,
 
.fa-pencil-square-o:before {
 
  content: "\f044";
 
}
 
.fa-share-square-o:before {
 
  content: "\f045";
 
}
 
.fa-check-square-o:before {
 
  content: "\f046";
 
}
 
.fa-arrows:before {
 
  content: "\f047";
 
}
 
.fa-step-backward:before {
 
  content: "\f048";
 
}
 
.fa-fast-backward:before {
 
  content: "\f049";
 
}
 
.fa-backward:before {
 
  content: "\f04a";
 
}
 
.fa-play:before {
 
  content: "\f04b";
 
}
 
.fa-pause:before {
 
  content: "\f04c";
 
}
 
.fa-stop:before {
 
  content: "\f04d";
 
}
 
.fa-forward:before {
 
  content: "\f04e";
 
}
 
.fa-fast-forward:before {
 
  content: "\f050";
 
}
 
.fa-step-forward:before {
 
  content: "\f051";
 
}
 
.fa-eject:before {
 
  content: "\f052";
 
}
 
.fa-chevron-left:before {
 
  content: "\f053";
 
}
 
.fa-chevron-right:before {
 
  content: "\f054";
 
}
 
.fa-plus-circle:before {
 
  content: "\f055";
 
}
 
.fa-minus-circle:before {
 
  content: "\f056";
 
}
 
.fa-times-circle:before {
 
  content: "\f057";
 
}
 
.fa-check-circle:before {
 
  content: "\f058";
 
}
 
.fa-question-circle:before {
 
  content: "\f059";
 
}
 
.fa-info-circle:before {
 
  content: "\f05a";
 
}
 
.fa-crosshairs:before {
 
  content: "\f05b";
 
}
 
.fa-times-circle-o:before {
 
  content: "\f05c";
 
}
 
.fa-check-circle-o:before {
 
  content: "\f05d";
 
}
 
.fa-ban:before {
 
  content: "\f05e";
 
}
 
.fa-arrow-left:before {
 
  content: "\f060";
 
}
 
.fa-arrow-right:before {
 
  content: "\f061";
 
}
 
.fa-arrow-up:before {
 
  content: "\f062";
 
}
 
.fa-arrow-down:before {
 
  content: "\f063";
 
}
 
.fa-mail-forward:before,
 
.fa-share:before {
 
  content: "\f064";
 
}
 
.fa-expand:before {
 
  content: "\f065";
 
}
 
.fa-compress:before {
 
  content: "\f066";
 
}
 
.fa-plus:before {
 
  content: "\f067";
 
}
 
.fa-minus:before {
 
  content: "\f068";
 
}
 
.fa-asterisk:before {
 
  content: "\f069";
 
}
 
.fa-exclamation-circle:before {
 
  content: "\f06a";
 
}
 
.fa-gift:before {
 
  content: "\f06b";
 
}
 
.fa-leaf:before {
 
  content: "\f06c";
 
}
 
.fa-fire:before {
 
  content: "\f06d";
 
}
 
.fa-eye:before {
 
  content: "\f06e";
 
}
 
.fa-eye-slash:before {
 
  content: "\f070";
 
}
 
.fa-warning:before,
 
.fa-exclamation-triangle:before {
 
  content: "\f071";
 
}
 
.fa-plane:before {
 
  content: "\f072";
 
}
 
.fa-calendar:before {
 
  content: "\f073";
 
}
 
.fa-random:before {
 
  content: "\f074";
 
}
 
.fa-comment:before {
 
  content: "\f075";
 
}
 
.fa-magnet:before {
 
  content: "\f076";
 
}
 
.fa-chevron-up:before {
 
  content: "\f077";
 
}
 
.fa-chevron-down:before {
 
  content: "\f078";
 
}
 
.fa-retweet:before {
 
  content: "\f079";
 
}
 
.fa-shopping-cart:before {
 
  content: "\f07a";
 
}
 
.fa-folder:before {
 
  content: "\f07b";
 
}
 
.fa-folder-open:before {
 
  content: "\f07c";
 
}
 
.fa-arrows-v:before {
 
  content: "\f07d";
 
}
 
.fa-arrows-h:before {
 
  content: "\f07e";
 
}
 
.fa-bar-chart-o:before,
 
.fa-bar-chart:before {
 
  content: "\f080";
 
}
 
.fa-twitter-square:before {
 
  content: "\f081";
 
}
 
.fa-facebook-square:before {
 
  content: "\f082";
 
}
 
.fa-camera-retro:before {
 
  content: "\f083";
 
}
 
.fa-key:before {
 
  content: "\f084";
 
}
 
.fa-gears:before,
 
.fa-cogs:before {
 
  content: "\f085";
 
}
 
.fa-comments:before {
 
  content: "\f086";
 
}
 
.fa-thumbs-o-up:before {
 
  content: "\f087";
 
}
 
.fa-thumbs-o-down:before {
 
  content: "\f088";
 
}
 
.fa-star-half:before {
 
  content: "\f089";
 
}
 
.fa-heart-o:before {
 
  content: "\f08a";
 
}
 
.fa-sign-out:before {
 
  content: "\f08b";
 
}
 
.fa-linkedin-square:before {
 
  content: "\f08c";
 
}
 
.fa-thumb-tack:before {
 
  content: "\f08d";
 
}
 
.fa-external-link:before {
 
  content: "\f08e";
 
}
 
.fa-sign-in:before {
 
  content: "\f090";
 
}
 
.fa-trophy:before {
 
  content: "\f091";
 
}
 
.fa-github-square:before {
 
  content: "\f092";
 
}
 
.fa-upload:before {
 
  content: "\f093";
 
}
 
.fa-lemon-o:before {
 
  content: "\f094";
 
}
 
.fa-phone:before {
 
  content: "\f095";
 
}
 
.fa-square-o:before {
 
  content: "\f096";
 
}
 
.fa-bookmark-o:before {
 
  content: "\f097";
 
}
 
.fa-phone-square:before {
 
  content: "\f098";
 
}
 
.fa-twitter:before {
 
  content: "\f099";
 
}
 
.fa-facebook-f:before,
 
.fa-facebook:before {
 
  content: "\f09a";
 
}
 
.fa-github:before {
 
  content: "\f09b";
 
}
 
.fa-unlock:before {
 
  content: "\f09c";
 
}
 
.fa-credit-card:before {
 
  content: "\f09d";
 
}
 
.fa-feed:before,
 
.fa-rss:before {
 
  content: "\f09e";
 
}
 
.fa-hdd-o:before {
 
  content: "\f0a0";
 
}
 
.fa-bullhorn:before {
 
  content: "\f0a1";
 
}
 
.fa-bell:before {
 
  content: "\f0f3";
 
}
 
.fa-certificate:before {
 
  content: "\f0a3";
 
}
 
.fa-hand-o-right:before {
 
  content: "\f0a4";
 
}
 
.fa-hand-o-left:before {
 
  content: "\f0a5";
 
}
 
.fa-hand-o-up:before {
 
  content: "\f0a6";
 
}
 
.fa-hand-o-down:before {
 
  content: "\f0a7";
 
}
 
.fa-arrow-circle-left:before {
 
  content: "\f0a8";
 
}
 
.fa-arrow-circle-right:before {
 
  content: "\f0a9";
 
}
 
.fa-arrow-circle-up:before {
 
  content: "\f0aa";
 
}
 
.fa-arrow-circle-down:before {
 
  content: "\f0ab";
 
}
 
.fa-globe:before {
 
  content: "\f0ac";
 
}
 
.fa-wrench:before {
 
  content: "\f0ad";
 
}
 
.fa-tasks:before {
 
  content: "\f0ae";
 
}
 
.fa-filter:before {
 
  content: "\f0b0";
 
}
 
.fa-briefcase:before {
 
  content: "\f0b1";
 
}
 
.fa-arrows-alt:before {
 
  content: "\f0b2";
 
}
 
.fa-group:before,
 
.fa-users:before {
 
  content: "\f0c0";
 
}
 
.fa-chain:before,
 
.fa-link:before {
 
  content: "\f0c1";
 
}
 
.fa-cloud:before {
 
  content: "\f0c2";
 
}
 
.fa-flask:before {
 
  content: "\f0c3";
 
}
 
.fa-cut:before,
 
.fa-scissors:before {
 
  content: "\f0c4";
 
}
 
.fa-copy:before,
 
.fa-files-o:before {
 
  content: "\f0c5";
 
}
 
.fa-paperclip:before {
 
  content: "\f0c6";
 
}
 
.fa-save:before,
 
.fa-floppy-o:before {
 
  content: "\f0c7";
 
}
 
.fa-square:before {
 
  content: "\f0c8";
 
}
 
.fa-navicon:before,
 
.fa-reorder:before,
 
.fa-bars:before {
 
  content: "\f0c9";
 
}
 
.fa-list-ul:before {
 
  content: "\f0ca";
 
}
 
.fa-list-ol:before {
 
  content: "\f0cb";
 
}
 
.fa-strikethrough:before {
 
  content: "\f0cc";
 
}
 
.fa-underline:before {
 
  content: "\f0cd";
 
}
 
.fa-table:before {
 
  content: "\f0ce";
 
}
 
.fa-magic:before {
 
  content: "\f0d0";
 
}
 
.fa-truck:before {
 
  content: "\f0d1";
 
}
 
.fa-pinterest:before {
 
  content: "\f0d2";
 
}
 
.fa-pinterest-square:before {
 
  content: "\f0d3";
 
}
 
.fa-google-plus-square:before {
 
  content: "\f0d4";
 
}
 
.fa-google-plus:before {
 
  content: "\f0d5";
 
}
 
.fa-money:before {
 
  content: "\f0d6";
 
}
 
.fa-caret-down:before {
 
  content: "\f0d7";
 
}
 
.fa-caret-up:before {
 
  content: "\f0d8";
 
}
 
.fa-caret-left:before {
 
  content: "\f0d9";
 
}
 
.fa-caret-right:before {
 
  content: "\f0da";
 
}
 
.fa-columns:before {
 
  content: "\f0db";
 
}
 
.fa-unsorted:before,
 
.fa-sort:before {
 
  content: "\f0dc";
 
}
 
.fa-sort-down:before,
 
.fa-sort-desc:before {
 
  content: "\f0dd";
 
}
 
.fa-sort-up:before,
 
.fa-sort-asc:before {
 
  content: "\f0de";
 
}
 
.fa-envelope:before {
 
  content: "\f0e0";
 
}
 
.fa-linkedin:before {
 
  content: "\f0e1";
 
}
 
.fa-rotate-left:before,
 
.fa-undo:before {
 
  content: "\f0e2";
 
}
 
.fa-legal:before,
 
.fa-gavel:before {
 
  content: "\f0e3";
 
}
 
.fa-dashboard:before,
 
.fa-tachometer:before {
 
  content: "\f0e4";
 
}
 
.fa-comment-o:before {
 
  content: "\f0e5";
 
}
 
.fa-comments-o:before {
 
  content: "\f0e6";
 
}
 
.fa-flash:before,
 
.fa-bolt:before {
 
  content: "\f0e7";
 
}
 
.fa-sitemap:before {
 
  content: "\f0e8";
 
}
 
.fa-umbrella:before {
 
  content: "\f0e9";
 
}
 
.fa-paste:before,
 
.fa-clipboard:before {
 
  content: "\f0ea";
 
}
 
.fa-lightbulb-o:before {
 
  content: "\f0eb";
 
}
 
.fa-exchange:before {
 
  content: "\f0ec";
 
}
 
.fa-cloud-download:before {
 
  content: "\f0ed";
 
}
 
.fa-cloud-upload:before {
 
  content: "\f0ee";
 
}
 
.fa-user-md:before {
 
  content: "\f0f0";
 
}
 
.fa-stethoscope:before {
 
  content: "\f0f1";
 
}
 
.fa-suitcase:before {
 
  content: "\f0f2";
 
}
 
.fa-bell-o:before {
 
  content: "\f0a2";
 
}
 
.fa-coffee:before {
 
  content: "\f0f4";
 
}
 
.fa-cutlery:before {
 
  content: "\f0f5";
 
}
 
.fa-file-text-o:before {
 
  content: "\f0f6";
 
}
 
.fa-building-o:before {
 
  content: "\f0f7";
 
}
 
.fa-hospital-o:before {
 
  content: "\f0f8";
 
}
 
.fa-ambulance:before {
 
  content: "\f0f9";
 
}
 
.fa-medkit:before {
 
  content: "\f0fa";
 
}
 
.fa-fighter-jet:before {
 
  content: "\f0fb";
 
}
 
.fa-beer:before {
 
  content: "\f0fc";
 
}
 
.fa-h-square:before {
 
  content: "\f0fd";
 
}
 
.fa-plus-square:before {
 
  content: "\f0fe";
 
}
 
.fa-angle-double-left:before {
 
  content: "\f100";
 
}
 
.fa-angle-double-right:before {
 
  content: "\f101";
 
}
 
.fa-angle-double-up:before {
 
  content: "\f102";
 
}
 
.fa-angle-double-down:before {
 
  content: "\f103";
 
}
 
.fa-angle-left:before {
 
  content: "\f104";
 
}
 
.fa-angle-right:before {
 
  content: "\f105";
 
}
 
.fa-angle-up:before {
 
  content: "\f106";
 
}
 
.fa-angle-down:before {
 
  content: "\f107";
 
}
 
.fa-desktop:before {
 
  content: "\f108";
 
}
 
.fa-laptop:before {
 
  content: "\f109";
 
}
 
.fa-tablet:before {
 
  content: "\f10a";
 
}
 
.fa-mobile-phone:before,
 
.fa-mobile:before {
 
  content: "\f10b";
 
}
 
.fa-circle-o:before {
 
  content: "\f10c";
 
}
 
.fa-quote-left:before {
 
  content: "\f10d";
 
}
 
.fa-quote-right:before {
 
  content: "\f10e";
 
}
 
.fa-spinner:before {
 
  content: "\f110";
 
}
 
.fa-circle:before {
 
  content: "\f111";
 
}
 
.fa-mail-reply:before,
 
.fa-reply:before {
 
  content: "\f112";
 
}
 
.fa-github-alt:before {
 
  content: "\f113";
 
}
 
.fa-folder-o:before {
 
  content: "\f114";
 
}
 
.fa-folder-open-o:before {
 
  content: "\f115";
 
}
 
.fa-smile-o:before {
 
  content: "\f118";
 
}
 
.fa-frown-o:before {
 
  content: "\f119";
 
}
 
.fa-meh-o:before {
 
  content: "\f11a";
 
}
 
.fa-gamepad:before {
 
  content: "\f11b";
 
}
 
.fa-keyboard-o:before {
 
  content: "\f11c";
 
}
 
.fa-flag-o:before {
 
  content: "\f11d";
 
}
 
.fa-flag-checkered:before {
 
  content: "\f11e";
 
}
 
.fa-terminal:before {
 
  content: "\f120";
 
}
 
.fa-code:before {
 
  content: "\f121";
 
}
 
.fa-mail-reply-all:before,
 
.fa-reply-all:before {
 
  content: "\f122";
 
}
 
.fa-star-half-empty:before,
 
.fa-star-half-full:before,
 
.fa-star-half-o:before {
 
  content: "\f123";
 
}
 
.fa-location-arrow:before {
 
  content: "\f124";
 
}
 
.fa-crop:before {
 
  content: "\f125";
 
}
 
.fa-code-fork:before {
 
  content: "\f126";
 
}
 
.fa-unlink:before,
 
.fa-chain-broken:before {
 
  content: "\f127";
 
}
 
.fa-question:before {
 
  content: "\f128";
 
}
 
.fa-info:before {
 
  content: "\f129";
 
}
 
.fa-exclamation:before {
 
  content: "\f12a";
 
}
 
.fa-superscript:before {
 
  content: "\f12b";
 
}
 
.fa-subscript:before {
 
  content: "\f12c";
 
}
 
.fa-eraser:before {
 
  content: "\f12d";
 
}
 
.fa-puzzle-piece:before {
 
  content: "\f12e";
 
}
 
.fa-microphone:before {
 
  content: "\f130";
 
}
 
.fa-microphone-slash:before {
 
  content: "\f131";
 
}
 
.fa-shield:before {
 
  content: "\f132";
 
}
 
.fa-calendar-o:before {
 
  content: "\f133";
 
}
 
.fa-fire-extinguisher:before {
 
  content: "\f134";
 
}
 
.fa-rocket:before {
 
  content: "\f135";
 
}
 
.fa-maxcdn:before {
 
  content: "\f136";
 
}
 
.fa-chevron-circle-left:before {
 
  content: "\f137";
 
}
 
.fa-chevron-circle-right:before {
 
  content: "\f138";
 
}
 
.fa-chevron-circle-up:before {
 
  content: "\f139";
 
}
 
.fa-chevron-circle-down:before {
 
  content: "\f13a";
 
}
 
.fa-html5:before {
 
  content: "\f13b";
 
}
 
.fa-css3:before {
 
  content: "\f13c";
 
}
 
.fa-anchor:before {
 
  content: "\f13d";
 
}
 
.fa-unlock-alt:before {
 
  content: "\f13e";
 
}
 
.fa-bullseye:before {
 
  content: "\f140";
 
}
 
.fa-ellipsis-h:before {
 
  content: "\f141";
 
}
 
.fa-ellipsis-v:before {
 
  content: "\f142";
 
}
 
.fa-rss-square:before {
 
  content: "\f143";
 
}
 
.fa-play-circle:before {
 
  content: "\f144";
 
}
 
.fa-ticket:before {
 
  content: "\f145";
 
}
 
.fa-minus-square:before {
 
  content: "\f146";
 
}
 
.fa-minus-square-o:before {
 
  content: "\f147";
 
}
 
.fa-level-up:before {
 
  content: "\f148";
 
}
 
.fa-level-down:before {
 
  content: "\f149";
 
}
 
.fa-check-square:before {
 
  content: "\f14a";
 
}
 
.fa-pencil-square:before {
 
  content: "\f14b";
 
}
 
.fa-external-link-square:before {
 
  content: "\f14c";
 
}
 
.fa-share-square:before {
 
  content: "\f14d";
 
}
 
.fa-compass:before {
 
  content: "\f14e";
 
}
 
.fa-toggle-down:before,
 
.fa-caret-square-o-down:before {
 
  content: "\f150";
 
}
 
.fa-toggle-up:before,
 
.fa-caret-square-o-up:before {
 
  content: "\f151";
 
}
 
.fa-toggle-right:before,
 
.fa-caret-square-o-right:before {
 
  content: "\f152";
 
}
 
.fa-euro:before,
 
.fa-eur:before {
 
  content: "\f153";
 
}
 
.fa-gbp:before {
 
  content: "\f154";
 
}
 
.fa-dollar:before,
 
.fa-usd:before {
 
  content: "\f155";
 
}
 
.fa-rupee:before,
 
.fa-inr:before {
 
  content: "\f156";
 
}
 
.fa-cny:before,
 
.fa-rmb:before,
 
.fa-yen:before,
 
.fa-jpy:before {
 
  content: "\f157";
 
}
 
.fa-ruble:before,
 
.fa-rouble:before,
 
.fa-rub:before {
 
  content: "\f158";
 
}
 
.fa-won:before,
 
.fa-krw:before {
 
  content: "\f159";
 
}
 
.fa-bitcoin:before,
 
.fa-btc:before {
 
  content: "\f15a";
 
}
 
.fa-file:before {
 
  content: "\f15b";
 
}
 
.fa-file-text:before {
 
  content: "\f15c";
 
}
 
.fa-sort-alpha-asc:before {
 
  content: "\f15d";
 
}
 
.fa-sort-alpha-desc:before {
 
  content: "\f15e";
 
}
 
.fa-sort-amount-asc:before {
 
  content: "\f160";
 
}
 
.fa-sort-amount-desc:before {
 
  content: "\f161";
 
}
 
.fa-sort-numeric-asc:before {
 
  content: "\f162";
 
}
 
.fa-sort-numeric-desc:before {
 
  content: "\f163";
 
}
 
.fa-thumbs-up:before {
 
  content: "\f164";
 
}
 
.fa-thumbs-down:before {
 
  content: "\f165";
 
}
 
.fa-youtube-square:before {
 
  content: "\f166";
 
}
 
.fa-youtube:before {
 
  content: "\f167";
 
}
 
.fa-xing:before {
 
  content: "\f168";
 
}
 
.fa-xing-square:before {
 
  content: "\f169";
 
}
 
.fa-youtube-play:before {
 
  content: "\f16a";
 
}
 
.fa-dropbox:before {
 
  content: "\f16b";
 
}
 
.fa-stack-overflow:before {
 
  content: "\f16c";
 
}
 
.fa-instagram:before {
 
  content: "\f16d";
 
}
 
.fa-flickr:before {
 
  content: "\f16e";
 
}
 
.fa-adn:before {
 
  content: "\f170";
 
}
 
.fa-bitbucket:before {
 
  content: "\f171";
 
}
 
.fa-bitbucket-square:before {
 
  content: "\f172";
 
}
 
.fa-tumblr:before {
 
  content: "\f173";
 
}
 
.fa-tumblr-square:before {
 
  content: "\f174";
 
}
 
.fa-long-arrow-down:before {
 
  content: "\f175";
 
}
 
.fa-long-arrow-up:before {
 
  content: "\f176";
 
}
 
.fa-long-arrow-left:before {
 
  content: "\f177";
 
}
 
.fa-long-arrow-right:before {
 
  content: "\f178";
 
}
 
.fa-apple:before {
 
  content: "\f179";
 
}
 
.fa-windows:before {
 
  content: "\f17a";
 
}
 
.fa-android:before {
 
  content: "\f17b";
 
}
 
.fa-linux:before {
 
  content: "\f17c";
 
}
 
.fa-dribbble:before {
 
  content: "\f17d";
 
}
 
.fa-skype:before {
 
  content: "\f17e";
 
}
 
.fa-foursquare:before {
 
  content: "\f180";
 
}
 
.fa-trello:before {
 
  content: "\f181";
 
}
 
.fa-female:before {
 
  content: "\f182";
 
}
 
.fa-male:before {
 
  content: "\f183";
 
}
 
.fa-gittip:before,
 
.fa-gratipay:before {
 
  content: "\f184";
 
}
 
.fa-sun-o:before {
 
  content: "\f185";
 
}
 
.fa-moon-o:before {
 
  content: "\f186";
 
}
 
.fa-archive:before {
 
  content: "\f187";
 
}
 
.fa-bug:before {
 
  content: "\f188";
 
}
 
.fa-vk:before {
 
  content: "\f189";
 
}
 
.fa-weibo:before {
 
  content: "\f18a";
 
}
 
.fa-renren:before {
 
  content: "\f18b";
 
}
 
.fa-pagelines:before {
 
  content: "\f18c";
 
}
 
.fa-stack-exchange:before {
 
  content: "\f18d";
 
}
 
.fa-arrow-circle-o-right:before {
 
  content: "\f18e";
 
}
 
.fa-arrow-circle-o-left:before {
 
  content: "\f190";
 
}
 
.fa-toggle-left:before,
 
.fa-caret-square-o-left:before {
 
  content: "\f191";
 
}
 
.fa-dot-circle-o:before {
 
  content: "\f192";
 
}
 
.fa-wheelchair:before {
 
  content: "\f193";
 
}
 
.fa-vimeo-square:before {
 
  content: "\f194";
 
}
 
.fa-turkish-lira:before,
 
.fa-try:before {
 
  content: "\f195";
 
}
 
.fa-plus-square-o:before {
 
  content: "\f196";
 
}
 
.fa-space-shuttle:before {
 
  content: "\f197";
 
}
 
.fa-slack:before {
 
  content: "\f198";
 
}
 
.fa-envelope-square:before {
 
  content: "\f199";
 
}
 
.fa-wordpress:before {
 
  content: "\f19a";
 
}
 
.fa-openid:before {
 
  content: "\f19b";
 
}
 
.fa-institution:before,
 
.fa-bank:before,
 
.fa-university:before {
 
  content: "\f19c";
 
}
 
.fa-mortar-board:before,
 
.fa-graduation-cap:before {
 
  content: "\f19d";
 
}
 
.fa-yahoo:before {
 
  content: "\f19e";
 
}
 
.fa-google:before {
 
  content: "\f1a0";
 
}
 
.fa-reddit:before {
 
  content: "\f1a1";
 
}
 
.fa-reddit-square:before {
 
  content: "\f1a2";
 
}
 
.fa-stumbleupon-circle:before {
 
  content: "\f1a3";
 
}
 
.fa-stumbleupon:before {
 
  content: "\f1a4";
 
}
 
.fa-delicious:before {
 
  content: "\f1a5";
 
}
 
.fa-digg:before {
 
  content: "\f1a6";
 
}
 
.fa-pied-piper:before {
 
  content: "\f1a7";
 
}
 
.fa-pied-piper-alt:before {
 
  content: "\f1a8";
 
}
 
.fa-drupal:before {
 
  content: "\f1a9";
 
}
 
.fa-joomla:before {
 
  content: "\f1aa";
 
}
 
.fa-language:before {
 
  content: "\f1ab";
 
}
 
.fa-fax:before {
 
  content: "\f1ac";
 
}
 
.fa-building:before {
 
  content: "\f1ad";
 
}
 
.fa-child:before {
 
  content: "\f1ae";
 
}
 
.fa-paw:before {
 
  content: "\f1b0";
 
}
 
.fa-spoon:before {
 
  content: "\f1b1";
 
}
 
.fa-cube:before {
 
  content: "\f1b2";
 
}
 
.fa-cubes:before {
 
  content: "\f1b3";
 
}
 
.fa-behance:before {
 
  content: "\f1b4";
 
}
 
.fa-behance-square:before {
 
  content: "\f1b5";
 
}
 
.fa-steam:before {
 
  content: "\f1b6";
 
}
 
.fa-steam-square:before {
 
  content: "\f1b7";
 
}
 
.fa-recycle:before {
 
  content: "\f1b8";
 
}
 
.fa-automobile:before,
 
.fa-car:before {
 
  content: "\f1b9";
 
}
 
.fa-cab:before,
 
.fa-taxi:before {
 
  content: "\f1ba";
 
}
 
.fa-tree:before {
 
  content: "\f1bb";
 
}
 
.fa-spotify:before {
 
  content: "\f1bc";
 
}
 
.fa-deviantart:before {
 
  content: "\f1bd";
 
}
 
.fa-soundcloud:before {
 
  content: "\f1be";
 
}
 
.fa-database:before {
 
  content: "\f1c0";
 
}
 
.fa-file-pdf-o:before {
 
  content: "\f1c1";
 
}
 
.fa-file-word-o:before {
 
  content: "\f1c2";
 
}
 
.fa-file-excel-o:before {
 
  content: "\f1c3";
 
}
 
.fa-file-powerpoint-o:before {
 
  content: "\f1c4";
 
}
 
.fa-file-photo-o:before,
 
.fa-file-picture-o:before,
 
.fa-file-image-o:before {
 
  content: "\f1c5";
 
}
 
.fa-file-zip-o:before,
 
.fa-file-archive-o:before {
 
  content: "\f1c6";
 
}
 
.fa-file-sound-o:before,
 
.fa-file-audio-o:before {
 
  content: "\f1c7";
 
}
 
.fa-file-movie-o:before,
 
.fa-file-video-o:before {
 
  content: "\f1c8";
 
}
 
.fa-file-code-o:before {
 
  content: "\f1c9";
 
}
 
.fa-vine:before {
 
  content: "\f1ca";
 
}
 
.fa-codepen:before {
 
  content: "\f1cb";
 
}
 
.fa-jsfiddle:before {
 
  content: "\f1cc";
 
}
 
.fa-life-bouy:before,
 
.fa-life-buoy:before,
 
.fa-life-saver:before,
 
.fa-support:before,
 
.fa-life-ring:before {
 
  content: "\f1cd";
 
}
 
.fa-circle-o-notch:before {
 
  content: "\f1ce";
 
}
 
.fa-ra:before,
 
.fa-rebel:before {
 
  content: "\f1d0";
 
}
 
.fa-ge:before,
 
.fa-empire:before {
 
  content: "\f1d1";
 
}
 
.fa-git-square:before {
 
  content: "\f1d2";
 
}
 
.fa-git:before {
 
  content: "\f1d3";
 
}
 
.fa-y-combinator-square:before,
 
.fa-yc-square:before,
 
.fa-hacker-news:before {
 
  content: "\f1d4";
 
}
 
.fa-tencent-weibo:before {
 
  content: "\f1d5";
 
}
 
.fa-qq:before {
 
  content: "\f1d6";
 
}
 
.fa-wechat:before,
 
.fa-weixin:before {
 
  content: "\f1d7";
 
}
 
.fa-send:before,
 
.fa-paper-plane:before {
 
  content: "\f1d8";
 
}
 
.fa-send-o:before,
 
.fa-paper-plane-o:before {
 
  content: "\f1d9";
 
}
 
.fa-history:before {
 
  content: "\f1da";
 
}
 
.fa-circle-thin:before {
 
  content: "\f1db";
 
}
 
.fa-header:before {
 
  content: "\f1dc";
 
}
 
.fa-paragraph:before {
 
  content: "\f1dd";
 
}
 
.fa-sliders:before {
 
  content: "\f1de";
 
}
 
.fa-share-alt:before {
 
  content: "\f1e0";
 
}
 
.fa-share-alt-square:before {
 
  content: "\f1e1";
 
}
 
.fa-bomb:before {
 
  content: "\f1e2";
 
}
 
.fa-soccer-ball-o:before,
 
.fa-futbol-o:before {
 
  content: "\f1e3";
 
}
 
.fa-tty:before {
 
  content: "\f1e4";
 
}
 
.fa-binoculars:before {
 
  content: "\f1e5";
 
}
 
.fa-plug:before {
 
  content: "\f1e6";
 
}
 
.fa-slideshare:before {
 
  content: "\f1e7";
 
}
 
.fa-twitch:before {
 
  content: "\f1e8";
 
}
 
.fa-yelp:before {
 
  content: "\f1e9";
 
}
 
.fa-newspaper-o:before {
 
  content: "\f1ea";
 
}
 
.fa-wifi:before {
 
  content: "\f1eb";
 
}
 
.fa-calculator:before {
 
  content: "\f1ec";
 
}
 
.fa-paypal:before {
 
  content: "\f1ed";
 
}
 
.fa-google-wallet:before {
 
  content: "\f1ee";
 
}
 
.fa-cc-visa:before {
 
  content: "\f1f0";
 
}
 
.fa-cc-mastercard:before {
 
  content: "\f1f1";
 
}
 
.fa-cc-discover:before {
 
  content: "\f1f2";
 
}
 
.fa-cc-amex:before {
 
  content: "\f1f3";
 
}
 
.fa-cc-paypal:before {
 
  content: "\f1f4";
 
}
 
.fa-cc-stripe:before {
 
  content: "\f1f5";
 
}
 
.fa-bell-slash:before {
 
  content: "\f1f6";
 
}
 
.fa-bell-slash-o:before {
 
  content: "\f1f7";
 
}
 
.fa-trash:before {
 
  content: "\f1f8";
 
}
 
.fa-copyright:before {
 
  content: "\f1f9";
 
}
 
.fa-at:before {
 
  content: "\f1fa";
 
}
 
.fa-eyedropper:before {
 
  content: "\f1fb";
 
}
 
.fa-paint-brush:before {
 
  content: "\f1fc";
 
}
 
.fa-birthday-cake:before {
 
  content: "\f1fd";
 
}
 
.fa-area-chart:before {
 
  content: "\f1fe";
 
}
 
.fa-pie-chart:before {
 
  content: "\f200";
 
}
 
.fa-line-chart:before {
 
  content: "\f201";
 
}
 
.fa-lastfm:before {
 
  content: "\f202";
 
}
 
.fa-lastfm-square:before {
 
  content: "\f203";
 
}
 
.fa-toggle-off:before {
 
  content: "\f204";
 
}
 
.fa-toggle-on:before {
 
  content: "\f205";
 
}
 
.fa-bicycle:before {
 
  content: "\f206";
 
}
 
.fa-bus:before {
 
  content: "\f207";
 
}
 
.fa-ioxhost:before {
 
  content: "\f208";
 
}
 
.fa-angellist:before {
 
  content: "\f209";
 
}
 
.fa-cc:before {
 
  content: "\f20a";
 
}
 
.fa-shekel:before,
 
.fa-sheqel:before,
 
.fa-ils:before {
 
  content: "\f20b";
 
}
 
.fa-meanpath:before {
 
  content: "\f20c";
 
}
 
.fa-buysellads:before {
 
  content: "\f20d";
 
}
 
.fa-connectdevelop:before {
 
  content: "\f20e";
 
}
 
.fa-dashcube:before {
 
  content: "\f210";
 
}
 
.fa-forumbee:before {
 
  content: "\f211";
 
}
 
.fa-leanpub:before {
 
  content: "\f212";
 
}
 
.fa-sellsy:before {
 
  content: "\f213";
 
}
 
.fa-shirtsinbulk:before {
 
  content: "\f214";
 
}
 
.fa-simplybuilt:before {
 
  content: "\f215";
 
}
 
.fa-skyatlas:before {
 
  content: "\f216";
 
}
 
.fa-cart-plus:before {
 
  content: "\f217";
 
}
 
.fa-cart-arrow-down:before {
 
  content: "\f218";
 
}
 
.fa-diamond:before {
 
  content: "\f219";
 
}
 
.fa-ship:before {
 
  content: "\f21a";
 
}
 
.fa-user-secret:before {
 
  content: "\f21b";
 
}
 
.fa-motorcycle:before {
 
  content: "\f21c";
 
}
 
.fa-street-view:before {
 
  content: "\f21d";
 
}
 
.fa-heartbeat:before {
 
  content: "\f21e";
 
}
 
.fa-venus:before {
 
  content: "\f221";
 
}
 
.fa-mars:before {
 
  content: "\f222";
 
}
 
.fa-mercury:before {
 
  content: "\f223";
 
}
 
.fa-intersex:before,
 
.fa-transgender:before {
 
  content: "\f224";
 
}
 
.fa-transgender-alt:before {
 
  content: "\f225";
 
}
 
.fa-venus-double:before {
 
  content: "\f226";
 
}
 
.fa-mars-double:before {
 
  content: "\f227";
 
}
 
.fa-venus-mars:before {
 
  content: "\f228";
 
}
 
.fa-mars-stroke:before {
 
  content: "\f229";
 
}
 
.fa-mars-stroke-v:before {
 
  content: "\f22a";
 
}
 
.fa-mars-stroke-h:before {
 
  content: "\f22b";
 
}
 
.fa-neuter:before {
 
  content: "\f22c";
 
}
 
.fa-genderless:before {
 
  content: "\f22d";
 
}
 
.fa-facebook-official:before {
 
  content: "\f230";
 
}
 
.fa-pinterest-p:before {
 
  content: "\f231";
 
}
 
.fa-whatsapp:before {
 
  content: "\f232";
 
}
 
.fa-server:before {
 
  content: "\f233";
 
}
 
.fa-user-plus:before {
 
  content: "\f234";
 
}
 
.fa-user-times:before {
 
  content: "\f235";
 
}
 
.fa-hotel:before,
 
.fa-bed:before {
 
  content: "\f236";
 
}
 
.fa-viacoin:before {
 
  content: "\f237";
 
}
 
.fa-train:before {
 
  content: "\f238";
 
}
 
.fa-subway:before {
 
  content: "\f239";
 
}
 
.fa-medium:before {
 
  content: "\f23a";
 
}
 
.fa-yc:before,
 
.fa-y-combinator:before {
 
  content: "\f23b";
 
}
 
.fa-optin-monster:before {
 
  content: "\f23c";
 
}
 
.fa-opencart:before {
 
  content: "\f23d";
 
}
 
.fa-expeditedssl:before {
 
  content: "\f23e";
 
}
 
.fa-battery-4:before,
 
.fa-battery-full:before {
 
  content: "\f240";
 
}
 
.fa-battery-3:before,
 
.fa-battery-three-quarters:before {
 
  content: "\f241";
 
}
 
.fa-battery-2:before,
 
.fa-battery-half:before {
 
  content: "\f242";
 
}
 
.fa-battery-1:before,
 
.fa-battery-quarter:before {
 
  content: "\f243";
 
}
 
.fa-battery-0:before,
 
.fa-battery-empty:before {
 
  content: "\f244";
 
}
 
.fa-mouse-pointer:before {
 
  content: "\f245";
 
}
 
.fa-i-cursor:before {
 
  content: "\f246";
 
}
 
.fa-object-group:before {
 
  content: "\f247";
 
}
 
.fa-object-ungroup:before {
 
  content: "\f248";
 
}
 
.fa-sticky-note:before {
 
  content: "\f249";
 
}
 
.fa-sticky-note-o:before {
 
  content: "\f24a";
 
}
 
.fa-cc-jcb:before {
 
  content: "\f24b";
 
}
 
.fa-cc-diners-club:before {
 
  content: "\f24c";
 
}
 
.fa-clone:before {
 
  content: "\f24d";
 
}
 
.fa-balance-scale:before {
 
  content: "\f24e";
 
}
 
.fa-hourglass-o:before {
 
  content: "\f250";
 
}
 
.fa-hourglass-1:before,
 
.fa-hourglass-start:before {
 
  content: "\f251";
 
}
 
.fa-hourglass-2:before,
 
.fa-hourglass-half:before {
 
  content: "\f252";
 
}
 
.fa-hourglass-3:before,
 
.fa-hourglass-end:before {
 
  content: "\f253";
 
}
 
.fa-hourglass:before {
 
  content: "\f254";
 
}
 
.fa-hand-grab-o:before,
 
.fa-hand-rock-o:before {
 
  content: "\f255";
 
}
 
.fa-hand-stop-o:before,
 
.fa-hand-paper-o:before {
 
  content: "\f256";
 
}
 
.fa-hand-scissors-o:before {
 
  content: "\f257";
 
}
 
.fa-hand-lizard-o:before {
 
  content: "\f258";
 
}
 
.fa-hand-spock-o:before {
 
  content: "\f259";
 
}
 
.fa-hand-pointer-o:before {
 
  content: "\f25a";
 
}
 
.fa-hand-peace-o:before {
 
  content: "\f25b";
 
}
 
.fa-trademark:before {
 
  content: "\f25c";
 
}
 
.fa-registered:before {
 
  content: "\f25d";
 
}
 
.fa-creative-commons:before {
 
  content: "\f25e";
 
}
 
.fa-gg:before {
 
  content: "\f260";
 
}
 
.fa-gg-circle:before {
 
  content: "\f261";
 
}
 
.fa-tripadvisor:before {
 
  content: "\f262";
 
}
 
.fa-odnoklassniki:before {
 
  content: "\f263";
 
}
 
.fa-odnoklassniki-square:before {
 
  content: "\f264";
 
}
 
.fa-get-pocket:before {
 
  content: "\f265";
 
}
 
.fa-wikipedia-w:before {
 
  content: "\f266";
 
}
 
.fa-safari:before {
 
  content: "\f267";
 
}
 
.fa-chrome:before {
 
  content: "\f268";
 
}
 
.fa-firefox:before {
 
  content: "\f269";
 
}
 
.fa-opera:before {
 
  content: "\f26a";
 
}
 
.fa-internet-explorer:before {
 
  content: "\f26b";
 
}
 
.fa-tv:before,
 
.fa-television:before {
 
  content: "\f26c";
 
}
 
.fa-contao:before {
 
  content: "\f26d";
 
}
 
.fa-500px:before {
 
  content: "\f26e";
 
}
 
.fa-amazon:before {
 
  content: "\f270";
 
}
 
.fa-calendar-plus-o:before {
 
  content: "\f271";
 
}
 
.fa-calendar-minus-o:before {
 
  content: "\f272";
 
}
 
.fa-calendar-times-o:before {
 
  content: "\f273";
 
}
 
.fa-calendar-check-o:before {
 
  content: "\f274";
 
}
 
.fa-industry:before {
 
  content: "\f275";
 
}
 
.fa-map-pin:before {
 
  content: "\f276";
 
}
 
.fa-map-signs:before {
 
  content: "\f277";
 
}
 
.fa-map-o:before {
 
  content: "\f278";
 
}
 
.fa-map:before {
 
  content: "\f279";
 
}
 
.fa-commenting:before {
 
  content: "\f27a";
 
}
 
.fa-commenting-o:before {
 
  content: "\f27b";
 
}
 
.fa-houzz:before {
 
  content: "\f27c";
 
}
 
.fa-vimeo:before {
 
  content: "\f27d";
 
}
 
.fa-black-tie:before {
 
  content: "\f27e";
 
}
 
.fa-fonticons:before {
 
  content: "\f280";
 
}
 
.fa-reddit-alien:before {
 
  content: "\f281";
 
}
 
.fa-edge:before {
 
  content: "\f282";
 
}
 
.fa-credit-card-alt:before {
 
  content: "\f283";
 
}
 
.fa-codiepie:before {
 
  content: "\f284";
 
}
 
.fa-modx:before {
 
  content: "\f285";
 
}
 
.fa-fort-awesome:before {
 
  content: "\f286";
 
}
 
.fa-usb:before {
 
  content: "\f287";
 
}
 
.fa-product-hunt:before {
 
  content: "\f288";
 
}
 
.fa-mixcloud:before {
 
  content: "\f289";
 
}
 
.fa-scribd:before {
 
  content: "\f28a";
 
}
 
.fa-pause-circle:before {
 
  content: "\f28b";
 
}
 
.fa-pause-circle-o:before {
 
  content: "\f28c";
 
}
 
.fa-stop-circle:before {
 
  content: "\f28d";
 
}
 
.fa-stop-circle-o:before {
 
  content: "\f28e";
 
}
 
.fa-shopping-bag:before {
 
  content: "\f290";
 
}
 
.fa-shopping-basket:before {
 
  content: "\f291";
 
}
 
.fa-hashtag:before {
 
  content: "\f292";
 
}
 
.fa-bluetooth:before {
 
  content: "\f293";
 
}
 
.fa-bluetooth-b:before {
 
  content: "\f294";
 
}
 
.fa-percent:before {
 
  content: "\f295";
 
}
 
body.account-settings .account-settings,
 
body.account-password .account-password,
 
body.account-delete .account-delete {
 
  z-index: 2;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
form #id_body,
 
form #id_comment,
 
form #id_message,
 
form #id_text,
 
form #id_abstract,
 
form #id_additional_notes,
 
form #id_content_override,
 
form #id_description,
 
form #id_biography,
 
form .modal-body textarea {
 
  display: none;
 
}
 
form .ace_editor {
 
  min-height: 200px;
 
  width: 100%;
 
  border: 1px dotted #CCC;
 
}
 
form .ace_content {
 
  padding: 5px;
 
}
 
body {
 
  padding-top: 60px;
 
}
 
label:not(.checkbox):not(.radio) {
 
  font-weight: bold;
 
}
 
header {
 
  position: relative;
 
  margin-bottom: 24px;
 
}
 
header h1 {
 
  margin-bottom: 9px;
 
  font-size: 48px;
 
  letter-spacing: -1px;
 
  line-height: 1;
 
  -webkit-margin-before: 0;
 
  -webkit-margin-after: 0;
 
}
 
header p {
 
  font-size: 30px;
 
  line-height: 36px;
 
}
 
header a,
 
header a:hover,
 
header a:visited {
 
  color: #333333;
 
  text-decoration: none;
 
}
 
.content-box.editable {
 
  border: 1px dashed #ccc;
 
  padding: 1px;
 
  min-height: 30px;
 
}
 
.edit-toggle {
 
  position: relative;
 
  float: right;
 
}
 
div.box-content .markItUpEditor {
 
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 
  padding: 5px;
 
  width: 600px;
 
  height: 320px;
 
  clear: both;
 
  display: block;
 
  overflow: auto;
 
}
 
.modal div.markItUp {
 
  width: 500px;
 
}
 
.modal textarea.markItUpEditor {
 
  width: 500px;
 
  height: 250px;
 
}
 
.titled-form {
 
  position: relative;
 
  clear: both;
 
  width: auto;
 
  margin-bottom: 2em;
 
  overflow: hidden;
 
}
 
.titled-form .titled-form-header {
 
  position: relative;
 
  height: 40px;
 
  line-height: 40px;
 
  background-color: #f8f8f8;
 
  border: 1px solid #D5D5D5;
 
  border-radius: 4px 4px 0 0;
 
  -webkit-background-clip: padding-box;
 
}
 
.titled-form .titled-form-header h3 {
 
  position: relative;
 
  top: 2px;
 
  left: 10px;
 
  display: inline-block;
 
  margin-right: 3em;
 
  font-size: 14px;
 
  font-weight: 600;
 
  color: #333333;
 
  line-height: 18px;
 
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5);
 
}
 
.titled-form .titled-form-content {
 
  border: 1px solid #D5D5D5;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
 
  background-color: #fff;
 
  border-top: none;
 
  padding-top: 20px;
 
}
 
.titled-form .form-actions {
 
  margin-top: 0px;
 
  border-radius: 0 0 4px 4px;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
 
  border: 1px solid #D5D5D5;
 
  border-top: none;
 
}
 
.footer {
 
  margin-top: 45px;
 
  padding: 25px 0 26px;
 
  border-top: 1px solid #e5e5e5;
 
}
 
.footer p {
 
  margin-bottom: 0;
 
  color: #555;
 
}
 
table.calendar {
 
  background-color: #fffff;
 
  table-layout: fixed;
 
  font-size: 12px;
 
}
 
table.calendar tr {
 
  min-height: 36px;
 
}
 
table.calendar th {
 
  text-align: center;
 
}
 
table.calendar th.time {
 
  width: 40px;
 
}
 
table.calendar td {
 
  text-align: center;
 
  vertical-align: middle;
 
}
 
table.calendar td.time {
 
  vertical-align: top;
 
  padding-top: 0;
 
  margin-top: 0;
 
  color: #444;
 
  font-size: 11px;
 
}
 
table.calendar td.slot {
 
  font-weight: bold;
 
  text-shadow: #fff 0px 1px 0px;
 
}
 
table.calendar td.slot.slot-break {
 
  background-color: #ECFFFF;
 
}
 
table.calendar td.slot.slot-plenary {
 
  background-color: #ebebff;
 
}
 
table.calendar td.slot p {
 
  padding: 0;
 
  margin: 0;
 
}
 
table.calendar td span.title {
 
  font-weight: bold;
 
  display: block;
 
}
 
table.calendar td span.speaker {
 
  font-weight: normal;
 
  display: block;
 
}
 
body {
 
  padding-top: 50px;
 
  position: relative;
 
}
 
section {
 
  padding: 20px 0px;
 
}
 
.modal form {
 
  margin-bottom: 0px;
 
}
 
footer {
 
  padding-bottom: 20px;
 
}
 
p.login-signup {
 
  margin-top: 20px;
 
}
 
.feature-columns {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
.feature-columns > div {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
  text-align: center;
 
  margin: 2em 0;
 
}
 
.feature-columns > div i.fa {
 
  margin-bottom: 0.2em;
 
}
 
@media (min-width: 768px) {
 
  .feature-columns > div {
 
    float: left;
 
    width: 33.33333333%;
 
  }
 
}
static/_build/js/site.js
Show inline comments
 
new file 100644
 
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
 
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
 
require('../../js/transition.js')
 
require('../../js/alert.js')
 
require('../../js/button.js')
 
require('../../js/carousel.js')
 
require('../../js/collapse.js')
 
require('../../js/dropdown.js')
 
require('../../js/modal.js')
 
require('../../js/tooltip.js')
 
require('../../js/popover.js')
 
require('../../js/scrollspy.js')
 
require('../../js/tab.js')
 
require('../../js/affix.js')
 
},{"../../js/affix.js":2,"../../js/alert.js":3,"../../js/button.js":4,"../../js/carousel.js":5,"../../js/collapse.js":6,"../../js/dropdown.js":7,"../../js/modal.js":8,"../../js/popover.js":9,"../../js/scrollspy.js":10,"../../js/tab.js":11,"../../js/tooltip.js":12,"../../js/transition.js":13}],2:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: affix.js v3.3.6
 
 * http://getbootstrap.com/javascript/#affix
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // AFFIX CLASS DEFINITION
 
  // ======================
 

	
 
  var Affix = function (element, options) {
 
    this.options = $.extend({}, Affix.DEFAULTS, options)
 

	
 
    this.$target = $(this.options.target)
 
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
 
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
 

	
 
    this.$element     = $(element)
 
    this.affixed      = null
 
    this.unpin        = null
 
    this.pinnedOffset = null
 

	
 
    this.checkPosition()
 
  }
 

	
 
  Affix.VERSION  = '3.3.6'
 

	
 
  Affix.RESET    = 'affix affix-top affix-bottom'
 

	
 
  Affix.DEFAULTS = {
 
    offset: 0,
 
    target: window
 
  }
 

	
 
  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
 
    var scrollTop    = this.$target.scrollTop()
 
    var position     = this.$element.offset()
 
    var targetHeight = this.$target.height()
 

	
 
    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
 

	
 
    if (this.affixed == 'bottom') {
 
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
 
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
 
    }
 

	
 
    var initializing   = this.affixed == null
 
    var colliderTop    = initializing ? scrollTop : position.top
 
    var colliderHeight = initializing ? targetHeight : height
 

	
 
    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
 
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
 

	
 
    return false
 
  }
 

	
 
  Affix.prototype.getPinnedOffset = function () {
 
    if (this.pinnedOffset) return this.pinnedOffset
 
    this.$element.removeClass(Affix.RESET).addClass('affix')
 
    var scrollTop = this.$target.scrollTop()
 
    var position  = this.$element.offset()
 
    return (this.pinnedOffset = position.top - scrollTop)
 
  }
 

	
 
  Affix.prototype.checkPositionWithEventLoop = function () {
 
    setTimeout($.proxy(this.checkPosition, this), 1)
 
  }
 

	
 
  Affix.prototype.checkPosition = function () {
 
    if (!this.$element.is(':visible')) return
 

	
 
    var height       = this.$element.height()
 
    var offset       = this.options.offset
 
    var offsetTop    = offset.top
 
    var offsetBottom = offset.bottom
 
    var scrollHeight = Math.max($(document).height(), $(document.body).height())
 

	
 
    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
 
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
 
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
 

	
 
    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
 

	
 
    if (this.affixed != affix) {
 
      if (this.unpin != null) this.$element.css('top', '')
 

	
 
      var affixType = 'affix' + (affix ? '-' + affix : '')
 
      var e         = $.Event(affixType + '.bs.affix')
 

	
 
      this.$element.trigger(e)
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      this.affixed = affix
 
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
 

	
 
      this.$element
 
        .removeClass(Affix.RESET)
 
        .addClass(affixType)
 
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
 
    }
 

	
 
    if (affix == 'bottom') {
 
      this.$element.offset({
 
        top: scrollHeight - height - offsetBottom
 
      })
 
    }
 
  }
 

	
 

	
 
  // AFFIX PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.affix')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.affix
 

	
 
  $.fn.affix             = Plugin
 
  $.fn.affix.Constructor = Affix
 

	
 

	
 
  // AFFIX NO CONFLICT
 
  // =================
 

	
 
  $.fn.affix.noConflict = function () {
 
    $.fn.affix = old
 
    return this
 
  }
 

	
 

	
 
  // AFFIX DATA-API
 
  // ==============
 

	
 
  $(window).on('load', function () {
 
    $('[data-spy="affix"]').each(function () {
 
      var $spy = $(this)
 
      var data = $spy.data()
 

	
 
      data.offset = data.offset || {}
 

	
 
      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
 
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
 

	
 
      Plugin.call($spy, data)
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],3:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: alert.js v3.3.6
 
 * http://getbootstrap.com/javascript/#alerts
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // ALERT CLASS DEFINITION
 
  // ======================
 

	
 
  var dismiss = '[data-dismiss="alert"]'
 
  var Alert   = function (el) {
 
    $(el).on('click', dismiss, this.close)
 
  }
 

	
 
  Alert.VERSION = '3.3.6'
 

	
 
  Alert.TRANSITION_DURATION = 150
 

	
 
  Alert.prototype.close = function (e) {
 
    var $this    = $(this)
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = $(selector)
 

	
 
    if (e) e.preventDefault()
 

	
 
    if (!$parent.length) {
 
      $parent = $this.closest('.alert')
 
    }
 

	
 
    $parent.trigger(e = $.Event('close.bs.alert'))
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $parent.removeClass('in')
 

	
 
    function removeElement() {
 
      // detach from parent, fire event then clean up data
 
      $parent.detach().trigger('closed.bs.alert').remove()
 
    }
 

	
 
    $.support.transition && $parent.hasClass('fade') ?
 
      $parent
 
        .one('bsTransitionEnd', removeElement)
 
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
 
      removeElement()
 
  }
 

	
 

	
 
  // ALERT PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.alert')
 

	
 
      if (!data) $this.data('bs.alert', (data = new Alert(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.alert
 

	
 
  $.fn.alert             = Plugin
 
  $.fn.alert.Constructor = Alert
 

	
 

	
 
  // ALERT NO CONFLICT
 
  // =================
 

	
 
  $.fn.alert.noConflict = function () {
 
    $.fn.alert = old
 
    return this
 
  }
 

	
 

	
 
  // ALERT DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
 

	
 
}(jQuery);
 

	
 
},{}],4:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: button.js v3.3.6
 
 * http://getbootstrap.com/javascript/#buttons
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // BUTTON PUBLIC CLASS DEFINITION
 
  // ==============================
 

	
 
  var Button = function (element, options) {
 
    this.$element  = $(element)
 
    this.options   = $.extend({}, Button.DEFAULTS, options)
 
    this.isLoading = false
 
  }
 

	
 
  Button.VERSION  = '3.3.6'
 

	
 
  Button.DEFAULTS = {
 
    loadingText: 'loading...'
 
  }
 

	
 
  Button.prototype.setState = function (state) {
 
    var d    = 'disabled'
 
    var $el  = this.$element
 
    var val  = $el.is('input') ? 'val' : 'html'
 
    var data = $el.data()
 

	
 
    state += 'Text'
 

	
 
    if (data.resetText == null) $el.data('resetText', $el[val]())
 

	
 
    // push to event loop to allow forms to submit
 
    setTimeout($.proxy(function () {
 
      $el[val](data[state] == null ? this.options[state] : data[state])
 

	
 
      if (state == 'loadingText') {
 
        this.isLoading = true
 
        $el.addClass(d).attr(d, d)
 
      } else if (this.isLoading) {
 
        this.isLoading = false
 
        $el.removeClass(d).removeAttr(d)
 
      }
 
    }, this), 0)
 
  }
 

	
 
  Button.prototype.toggle = function () {
 
    var changed = true
 
    var $parent = this.$element.closest('[data-toggle="buttons"]')
 

	
 
    if ($parent.length) {
 
      var $input = this.$element.find('input')
 
      if ($input.prop('type') == 'radio') {
 
        if ($input.prop('checked')) changed = false
 
        $parent.find('.active').removeClass('active')
 
        this.$element.addClass('active')
 
      } else if ($input.prop('type') == 'checkbox') {
 
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
 
        this.$element.toggleClass('active')
 
      }
 
      $input.prop('checked', this.$element.hasClass('active'))
 
      if (changed) $input.trigger('change')
 
    } else {
 
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
 
      this.$element.toggleClass('active')
 
    }
 
  }
 

	
 

	
 
  // BUTTON PLUGIN DEFINITION
 
  // ========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.button')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.button', (data = new Button(this, options)))
 

	
 
      if (option == 'toggle') data.toggle()
 
      else if (option) data.setState(option)
 
    })
 
  }
 

	
 
  var old = $.fn.button
 

	
 
  $.fn.button             = Plugin
 
  $.fn.button.Constructor = Button
 

	
 

	
 
  // BUTTON NO CONFLICT
 
  // ==================
 

	
 
  $.fn.button.noConflict = function () {
 
    $.fn.button = old
 
    return this
 
  }
 

	
 

	
 
  // BUTTON DATA-API
 
  // ===============
 

	
 
  $(document)
 
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      var $btn = $(e.target)
 
      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
 
      Plugin.call($btn, 'toggle')
 
      if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
 
    })
 
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
 
    })
 

	
 
}(jQuery);
 

	
 
},{}],5:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: carousel.js v3.3.6
 
 * http://getbootstrap.com/javascript/#carousel
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CAROUSEL CLASS DEFINITION
 
  // =========================
 

	
 
  var Carousel = function (element, options) {
 
    this.$element    = $(element)
 
    this.$indicators = this.$element.find('.carousel-indicators')
 
    this.options     = options
 
    this.paused      = null
 
    this.sliding     = null
 
    this.interval    = null
 
    this.$active     = null
 
    this.$items      = null
 

	
 
    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
 

	
 
    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
 
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
 
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
 
  }
 

	
 
  Carousel.VERSION  = '3.3.6'
 

	
 
  Carousel.TRANSITION_DURATION = 600
 

	
 
  Carousel.DEFAULTS = {
 
    interval: 5000,
 
    pause: 'hover',
 
    wrap: true,
 
    keyboard: true
 
  }
 

	
 
  Carousel.prototype.keydown = function (e) {
 
    if (/input|textarea/i.test(e.target.tagName)) return
 
    switch (e.which) {
 
      case 37: this.prev(); break
 
      case 39: this.next(); break
 
      default: return
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  Carousel.prototype.cycle = function (e) {
 
    e || (this.paused = false)
 

	
 
    this.interval && clearInterval(this.interval)
 

	
 
    this.options.interval
 
      && !this.paused
 
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.getItemIndex = function (item) {
 
    this.$items = item.parent().children('.item')
 
    return this.$items.index(item || this.$active)
 
  }
 

	
 
  Carousel.prototype.getItemForDirection = function (direction, active) {
 
    var activeIndex = this.getItemIndex(active)
 
    var willWrap = (direction == 'prev' && activeIndex === 0)
 
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
 
    if (willWrap && !this.options.wrap) return active
 
    var delta = direction == 'prev' ? -1 : 1
 
    var itemIndex = (activeIndex + delta) % this.$items.length
 
    return this.$items.eq(itemIndex)
 
  }
 

	
 
  Carousel.prototype.to = function (pos) {
 
    var that        = this
 
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
 

	
 
    if (pos > (this.$items.length - 1) || pos < 0) return
 

	
 
    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
 
    if (activeIndex == pos) return this.pause().cycle()
 

	
 
    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
 
  }
 

	
 
  Carousel.prototype.pause = function (e) {
 
    e || (this.paused = true)
 

	
 
    if (this.$element.find('.next, .prev').length && $.support.transition) {
 
      this.$element.trigger($.support.transition.end)
 
      this.cycle(true)
 
    }
 

	
 
    this.interval = clearInterval(this.interval)
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.next = function () {
 
    if (this.sliding) return
 
    return this.slide('next')
 
  }
 

	
 
  Carousel.prototype.prev = function () {
 
    if (this.sliding) return
 
    return this.slide('prev')
 
  }
 

	
 
  Carousel.prototype.slide = function (type, next) {
 
    var $active   = this.$element.find('.item.active')
 
    var $next     = next || this.getItemForDirection(type, $active)
 
    var isCycling = this.interval
 
    var direction = type == 'next' ? 'left' : 'right'
 
    var that      = this
 

	
 
    if ($next.hasClass('active')) return (this.sliding = false)
 

	
 
    var relatedTarget = $next[0]
 
    var slideEvent = $.Event('slide.bs.carousel', {
 
      relatedTarget: relatedTarget,
 
      direction: direction
 
    })
 
    this.$element.trigger(slideEvent)
 
    if (slideEvent.isDefaultPrevented()) return
 

	
 
    this.sliding = true
 

	
 
    isCycling && this.pause()
 

	
 
    if (this.$indicators.length) {
 
      this.$indicators.find('.active').removeClass('active')
 
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
 
      $nextIndicator && $nextIndicator.addClass('active')
 
    }
 

	
 
    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
 
    if ($.support.transition && this.$element.hasClass('slide')) {
 
      $next.addClass(type)
 
      $next[0].offsetWidth // force reflow
 
      $active.addClass(direction)
 
      $next.addClass(direction)
 
      $active
 
        .one('bsTransitionEnd', function () {
 
          $next.removeClass([type, direction].join(' ')).addClass('active')
 
          $active.removeClass(['active', direction].join(' '))
 
          that.sliding = false
 
          setTimeout(function () {
 
            that.$element.trigger(slidEvent)
 
          }, 0)
 
        })
 
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
 
    } else {
 
      $active.removeClass('active')
 
      $next.addClass('active')
 
      this.sliding = false
 
      this.$element.trigger(slidEvent)
 
    }
 

	
 
    isCycling && this.cycle()
 

	
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.carousel')
 
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
 
      var action  = typeof option == 'string' ? option : options.slide
 

	
 
      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
 
      if (typeof option == 'number') data.to(option)
 
      else if (action) data[action]()
 
      else if (options.interval) data.pause().cycle()
 
    })
 
  }
 

	
 
  var old = $.fn.carousel
 

	
 
  $.fn.carousel             = Plugin
 
  $.fn.carousel.Constructor = Carousel
 

	
 

	
 
  // CAROUSEL NO CONFLICT
 
  // ====================
 

	
 
  $.fn.carousel.noConflict = function () {
 
    $.fn.carousel = old
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL DATA-API
 
  // =================
 

	
 
  var clickHandler = function (e) {
 
    var href
 
    var $this   = $(this)
 
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
 
    if (!$target.hasClass('carousel')) return
 
    var options = $.extend({}, $target.data(), $this.data())
 
    var slideIndex = $this.attr('data-slide-to')
 
    if (slideIndex) options.interval = false
 

	
 
    Plugin.call($target, options)
 

	
 
    if (slideIndex) {
 
      $target.data('bs.carousel').to(slideIndex)
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  $(document)
 
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
 
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
 

	
 
  $(window).on('load', function () {
 
    $('[data-ride="carousel"]').each(function () {
 
      var $carousel = $(this)
 
      Plugin.call($carousel, $carousel.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],6:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: collapse.js v3.3.6
 
 * http://getbootstrap.com/javascript/#collapse
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // COLLAPSE PUBLIC CLASS DEFINITION
 
  // ================================
 

	
 
  var Collapse = function (element, options) {
 
    this.$element      = $(element)
 
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
 
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
 
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
 
    this.transitioning = null
 

	
 
    if (this.options.parent) {
 
      this.$parent = this.getParent()
 
    } else {
 
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
 
    }
 

	
 
    if (this.options.toggle) this.toggle()
 
  }
 

	
 
  Collapse.VERSION  = '3.3.6'
 

	
 
  Collapse.TRANSITION_DURATION = 350
 

	
 
  Collapse.DEFAULTS = {
 
    toggle: true
 
  }
 

	
 
  Collapse.prototype.dimension = function () {
 
    var hasWidth = this.$element.hasClass('width')
 
    return hasWidth ? 'width' : 'height'
 
  }
 

	
 
  Collapse.prototype.show = function () {
 
    if (this.transitioning || this.$element.hasClass('in')) return
 

	
 
    var activesData
 
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
 

	
 
    if (actives && actives.length) {
 
      activesData = actives.data('bs.collapse')
 
      if (activesData && activesData.transitioning) return
 
    }
 

	
 
    var startEvent = $.Event('show.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    if (actives && actives.length) {
 
      Plugin.call(actives, 'hide')
 
      activesData || actives.data('bs.collapse', null)
 
    }
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element
 
      .removeClass('collapse')
 
      .addClass('collapsing')[dimension](0)
 
      .attr('aria-expanded', true)
 

	
 
    this.$trigger
 
      .removeClass('collapsed')
 
      .attr('aria-expanded', true)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse in')[dimension]('')
 
      this.transitioning = 0
 
      this.$element
 
        .trigger('shown.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
 

	
 
    this.$element
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
 
  }
 

	
 
  Collapse.prototype.hide = function () {
 
    if (this.transitioning || !this.$element.hasClass('in')) return
 

	
 
    var startEvent = $.Event('hide.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
 

	
 
    this.$element
 
      .addClass('collapsing')
 
      .removeClass('collapse in')
 
      .attr('aria-expanded', false)
 

	
 
    this.$trigger
 
      .addClass('collapsed')
 
      .attr('aria-expanded', false)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.transitioning = 0
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse')
 
        .trigger('hidden.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    this.$element
 
      [dimension](0)
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
 
  }
 

	
 
  Collapse.prototype.toggle = function () {
 
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
 
  }
 

	
 
  Collapse.prototype.getParent = function () {
 
    return $(this.options.parent)
 
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
 
      .each($.proxy(function (i, element) {
 
        var $element = $(element)
 
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
 
      }, this))
 
      .end()
 
  }
 

	
 
  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
 
    var isOpen = $element.hasClass('in')
 

	
 
    $element.attr('aria-expanded', isOpen)
 
    $trigger
 
      .toggleClass('collapsed', !isOpen)
 
      .attr('aria-expanded', isOpen)
 
  }
 

	
 
  function getTargetFromTrigger($trigger) {
 
    var href
 
    var target = $trigger.attr('data-target')
 
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
 

	
 
    return $(target)
 
  }
 

	
 

	
 
  // COLLAPSE PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.collapse')
 
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
 
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.collapse
 

	
 
  $.fn.collapse             = Plugin
 
  $.fn.collapse.Constructor = Collapse
 

	
 

	
 
  // COLLAPSE NO CONFLICT
 
  // ====================
 

	
 
  $.fn.collapse.noConflict = function () {
 
    $.fn.collapse = old
 
    return this
 
  }
 

	
 

	
 
  // COLLAPSE DATA-API
 
  // =================
 

	
 
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
 
    var $this   = $(this)
 

	
 
    if (!$this.attr('data-target')) e.preventDefault()
 

	
 
    var $target = getTargetFromTrigger($this)
 
    var data    = $target.data('bs.collapse')
 
    var option  = data ? 'toggle' : $this.data()
 

	
 
    Plugin.call($target, option)
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],7:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: dropdown.js v3.3.6
 
 * http://getbootstrap.com/javascript/#dropdowns
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // DROPDOWN CLASS DEFINITION
 
  // =========================
 

	
 
  var backdrop = '.dropdown-backdrop'
 
  var toggle   = '[data-toggle="dropdown"]'
 
  var Dropdown = function (element) {
 
    $(element).on('click.bs.dropdown', this.toggle)
 
  }
 

	
 
  Dropdown.VERSION = '3.3.6'
 

	
 
  function getParent($this) {
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = selector && $(selector)
 

	
 
    return $parent && $parent.length ? $parent : $this.parent()
 
  }
 

	
 
  function clearMenus(e) {
 
    if (e && e.which === 3) return
 
    $(backdrop).remove()
 
    $(toggle).each(function () {
 
      var $this         = $(this)
 
      var $parent       = getParent($this)
 
      var relatedTarget = { relatedTarget: this }
 

	
 
      if (!$parent.hasClass('open')) return
 

	
 
      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
 

	
 
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this.attr('aria-expanded', 'false')
 
      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
 
    })
 
  }
 

	
 
  Dropdown.prototype.toggle = function (e) {
 
    var $this = $(this)
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    clearMenus()
 

	
 
    if (!isActive) {
 
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
 
        // if mobile we use a backdrop because click events don't delegate
 
        $(document.createElement('div'))
 
          .addClass('dropdown-backdrop')
 
          .insertAfter($(this))
 
          .on('click', clearMenus)
 
      }
 

	
 
      var relatedTarget = { relatedTarget: this }
 
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this
 
        .trigger('focus')
 
        .attr('aria-expanded', 'true')
 

	
 
      $parent
 
        .toggleClass('open')
 
        .trigger($.Event('shown.bs.dropdown', relatedTarget))
 
    }
 

	
 
    return false
 
  }
 

	
 
  Dropdown.prototype.keydown = function (e) {
 
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
 

	
 
    var $this = $(this)
 

	
 
    e.preventDefault()
 
    e.stopPropagation()
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    if (!isActive && e.which != 27 || isActive && e.which == 27) {
 
      if (e.which == 27) $parent.find(toggle).trigger('focus')
 
      return $this.trigger('click')
 
    }
 

	
 
    var desc = ' li:not(.disabled):visible a'
 
    var $items = $parent.find('.dropdown-menu' + desc)
 

	
 
    if (!$items.length) return
 

	
 
    var index = $items.index(e.target)
 

	
 
    if (e.which == 38 && index > 0)                 index--         // up
 
    if (e.which == 40 && index < $items.length - 1) index++         // down
 
    if (!~index)                                    index = 0
 

	
 
    $items.eq(index).trigger('focus')
 
  }
 

	
 

	
 
  // DROPDOWN PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.dropdown')
 

	
 
      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.dropdown
 

	
 
  $.fn.dropdown             = Plugin
 
  $.fn.dropdown.Constructor = Dropdown
 

	
 

	
 
  // DROPDOWN NO CONFLICT
 
  // ====================
 

	
 
  $.fn.dropdown.noConflict = function () {
 
    $.fn.dropdown = old
 
    return this
 
  }
 

	
 

	
 
  // APPLY TO STANDARD DROPDOWN ELEMENTS
 
  // ===================================
 

	
 
  $(document)
 
    .on('click.bs.dropdown.data-api', clearMenus)
 
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
 
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
 
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
 
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 

	
 
}(jQuery);
 

	
 
},{}],8:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: modal.js v3.3.6
 
 * http://getbootstrap.com/javascript/#modals
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // MODAL CLASS DEFINITION
 
  // ======================
 

	
 
  var Modal = function (element, options) {
 
    this.options             = options
 
    this.$body               = $(document.body)
 
    this.$element            = $(element)
 
    this.$dialog             = this.$element.find('.modal-dialog')
 
    this.$backdrop           = null
 
    this.isShown             = null
 
    this.originalBodyPad     = null
 
    this.scrollbarWidth      = 0
 
    this.ignoreBackdropClick = false
 

	
 
    if (this.options.remote) {
 
      this.$element
 
        .find('.modal-content')
 
        .load(this.options.remote, $.proxy(function () {
 
          this.$element.trigger('loaded.bs.modal')
 
        }, this))
 
    }
 
  }
 

	
 
  Modal.VERSION  = '3.3.6'
 

	
 
  Modal.TRANSITION_DURATION = 300
 
  Modal.BACKDROP_TRANSITION_DURATION = 150
 

	
 
  Modal.DEFAULTS = {
 
    backdrop: true,
 
    keyboard: true,
 
    show: true
 
  }
 

	
 
  Modal.prototype.toggle = function (_relatedTarget) {
 
    return this.isShown ? this.hide() : this.show(_relatedTarget)
 
  }
 

	
 
  Modal.prototype.show = function (_relatedTarget) {
 
    var that = this
 
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
    this.$element.trigger(e)
 

	
 
    if (this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = true
 

	
 
    this.checkScrollbar()
 
    this.setScrollbar()
 
    this.$body.addClass('modal-open')
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
 

	
 
    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
 
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
 
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
 
      })
 
    })
 

	
 
    this.backdrop(function () {
 
      var transition = $.support.transition && that.$element.hasClass('fade')
 

	
 
      if (!that.$element.parent().length) {
 
        that.$element.appendTo(that.$body) // don't move modals dom position
 
      }
 

	
 
      that.$element
 
        .show()
 
        .scrollTop(0)
 

	
 
      that.adjustDialog()
 

	
 
      if (transition) {
 
        that.$element[0].offsetWidth // force reflow
 
      }
 

	
 
      that.$element.addClass('in')
 

	
 
      that.enforceFocus()
 

	
 
      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
      transition ?
 
        that.$dialog // wait for modal to slide in
 
          .one('bsTransitionEnd', function () {
 
            that.$element.trigger('focus').trigger(e)
 
          })
 
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
        that.$element.trigger('focus').trigger(e)
 
    })
 
  }
 

	
 
  Modal.prototype.hide = function (e) {
 
    if (e) e.preventDefault()
 

	
 
    e = $.Event('hide.bs.modal')
 

	
 
    this.$element.trigger(e)
 

	
 
    if (!this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = false
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    $(document).off('focusin.bs.modal')
 

	
 
    this.$element
 
      .removeClass('in')
 
      .off('click.dismiss.bs.modal')
 
      .off('mouseup.dismiss.bs.modal')
 

	
 
    this.$dialog.off('mousedown.dismiss.bs.modal')
 

	
 
    $.support.transition && this.$element.hasClass('fade') ?
 
      this.$element
 
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
 
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
      this.hideModal()
 
  }
 

	
 
  Modal.prototype.enforceFocus = function () {
 
    $(document)
 
      .off('focusin.bs.modal') // guard against infinite focus loop
 
      .on('focusin.bs.modal', $.proxy(function (e) {
 
        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
 
          this.$element.trigger('focus')
 
        }
 
      }, this))
 
  }
 

	
 
  Modal.prototype.escape = function () {
 
    if (this.isShown && this.options.keyboard) {
 
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
 
        e.which == 27 && this.hide()
 
      }, this))
 
    } else if (!this.isShown) {
 
      this.$element.off('keydown.dismiss.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.resize = function () {
 
    if (this.isShown) {
 
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
 
    } else {
 
      $(window).off('resize.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.hideModal = function () {
 
    var that = this
 
    this.$element.hide()
 
    this.backdrop(function () {
 
      that.$body.removeClass('modal-open')
 
      that.resetAdjustments()
 
      that.resetScrollbar()
 
      that.$element.trigger('hidden.bs.modal')
 
    })
 
  }
 

	
 
  Modal.prototype.removeBackdrop = function () {
 
    this.$backdrop && this.$backdrop.remove()
 
    this.$backdrop = null
 
  }
 

	
 
  Modal.prototype.backdrop = function (callback) {
 
    var that = this
 
    var animate = this.$element.hasClass('fade') ? 'fade' : ''
 

	
 
    if (this.isShown && this.options.backdrop) {
 
      var doAnimate = $.support.transition && animate
 

	
 
      this.$backdrop = $(document.createElement('div'))
 
        .addClass('modal-backdrop ' + animate)
 
        .appendTo(this.$body)
 

	
 
      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
 
        if (this.ignoreBackdropClick) {
 
          this.ignoreBackdropClick = false
 
          return
 
        }
 
        if (e.target !== e.currentTarget) return
 
        this.options.backdrop == 'static'
 
          ? this.$element[0].focus()
 
          : this.hide()
 
      }, this))
 

	
 
      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 

	
 
      this.$backdrop.addClass('in')
 

	
 
      if (!callback) return
 

	
 
      doAnimate ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callback)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callback()
 

	
 
    } else if (!this.isShown && this.$backdrop) {
 
      this.$backdrop.removeClass('in')
 

	
 
      var callbackRemove = function () {
 
        that.removeBackdrop()
 
        callback && callback()
 
      }
 
      $.support.transition && this.$element.hasClass('fade') ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callbackRemove)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callbackRemove()
 

	
 
    } else if (callback) {
 
      callback()
 
    }
 
  }
 

	
 
  // these following methods are used to handle overflowing modals
 

	
 
  Modal.prototype.handleUpdate = function () {
 
    this.adjustDialog()
 
  }
 

	
 
  Modal.prototype.adjustDialog = function () {
 
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
 

	
 
    this.$element.css({
 
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 
    })
 
  }
 

	
 
  Modal.prototype.resetAdjustments = function () {
 
    this.$element.css({
 
      paddingLeft: '',
 
      paddingRight: ''
 
    })
 
  }
 

	
 
  Modal.prototype.checkScrollbar = function () {
 
    var fullWindowWidth = window.innerWidth
 
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
 
      var documentElementRect = document.documentElement.getBoundingClientRect()
 
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
 
    }
 
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
 
    this.scrollbarWidth = this.measureScrollbar()
 
  }
 

	
 
  Modal.prototype.setScrollbar = function () {
 
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
 
    this.originalBodyPad = document.body.style.paddingRight || ''
 
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
 
  }
 

	
 
  Modal.prototype.resetScrollbar = function () {
 
    this.$body.css('padding-right', this.originalBodyPad)
 
  }
 

	
 
  Modal.prototype.measureScrollbar = function () { // thx walsh
 
    var scrollDiv = document.createElement('div')
 
    scrollDiv.className = 'modal-scrollbar-measure'
 
    this.$body.append(scrollDiv)
 
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
 
    this.$body[0].removeChild(scrollDiv)
 
    return scrollbarWidth
 
  }
 

	
 

	
 
  // MODAL PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option, _relatedTarget) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.modal')
 
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
 
      if (typeof option == 'string') data[option](_relatedTarget)
 
      else if (options.show) data.show(_relatedTarget)
 
    })
 
  }
 

	
 
  var old = $.fn.modal
 

	
 
  $.fn.modal             = Plugin
 
  $.fn.modal.Constructor = Modal
 

	
 

	
 
  // MODAL NO CONFLICT
 
  // =================
 

	
 
  $.fn.modal.noConflict = function () {
 
    $.fn.modal = old
 
    return this
 
  }
 

	
 

	
 
  // MODAL DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
 
    var $this   = $(this)
 
    var href    = $this.attr('href')
 
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
 
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
 

	
 
    if ($this.is('a')) e.preventDefault()
 

	
 
    $target.one('show.bs.modal', function (showEvent) {
 
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
 
      $target.one('hidden.bs.modal', function () {
 
        $this.is(':visible') && $this.trigger('focus')
 
      })
 
    })
 
    Plugin.call($target, option, this)
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],9:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: popover.js v3.3.6
 
 * http://getbootstrap.com/javascript/#popovers
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // POPOVER PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Popover = function (element, options) {
 
    this.init('popover', element, options)
 
  }
 

	
 
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 

	
 
  Popover.VERSION  = '3.3.6'
 

	
 
  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
 
    placement: 'right',
 
    trigger: 'click',
 
    content: '',
 
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
 
  })
 

	
 

	
 
  // NOTE: POPOVER EXTENDS tooltip.js
 
  // ================================
 

	
 
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
 

	
 
  Popover.prototype.constructor = Popover
 

	
 
  Popover.prototype.getDefaults = function () {
 
    return Popover.DEFAULTS
 
  }
 

	
 
  Popover.prototype.setContent = function () {
 
    var $tip    = this.tip()
 
    var title   = this.getTitle()
 
    var content = this.getContent()
 

	
 
    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
 
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
 
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
 
    ](content)
 

	
 
    $tip.removeClass('fade top bottom left right in')
 

	
 
    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
 
    // this manually by checking the contents.
 
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
 
  }
 

	
 
  Popover.prototype.hasContent = function () {
 
    return this.getTitle() || this.getContent()
 
  }
 

	
 
  Popover.prototype.getContent = function () {
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    return $e.attr('data-content')
 
      || (typeof o.content == 'function' ?
 
            o.content.call($e[0]) :
 
            o.content)
 
  }
 

	
 
  Popover.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
 
  }
 

	
 

	
 
  // POPOVER PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.popover')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.popover
 

	
 
  $.fn.popover             = Plugin
 
  $.fn.popover.Constructor = Popover
 

	
 

	
 
  // POPOVER NO CONFLICT
 
  // ===================
 

	
 
  $.fn.popover.noConflict = function () {
 
    $.fn.popover = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
},{}],10:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: scrollspy.js v3.3.6
 
 * http://getbootstrap.com/javascript/#scrollspy
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // SCROLLSPY CLASS DEFINITION
 
  // ==========================
 

	
 
  function ScrollSpy(element, options) {
 
    this.$body          = $(document.body)
 
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
 
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
 
    this.selector       = (this.options.target || '') + ' .nav li > a'
 
    this.offsets        = []
 
    this.targets        = []
 
    this.activeTarget   = null
 
    this.scrollHeight   = 0
 

	
 
    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
 
    this.refresh()
 
    this.process()
 
  }
 

	
 
  ScrollSpy.VERSION  = '3.3.6'
 

	
 
  ScrollSpy.DEFAULTS = {
 
    offset: 10
 
  }
 

	
 
  ScrollSpy.prototype.getScrollHeight = function () {
 
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
 
  }
 

	
 
  ScrollSpy.prototype.refresh = function () {
 
    var that          = this
 
    var offsetMethod  = 'offset'
 
    var offsetBase    = 0
 

	
 
    this.offsets      = []
 
    this.targets      = []
 
    this.scrollHeight = this.getScrollHeight()
 

	
 
    if (!$.isWindow(this.$scrollElement[0])) {
 
      offsetMethod = 'position'
 
      offsetBase   = this.$scrollElement.scrollTop()
 
    }
 

	
 
    this.$body
 
      .find(this.selector)
 
      .map(function () {
 
        var $el   = $(this)
 
        var href  = $el.data('target') || $el.attr('href')
 
        var $href = /^#./.test(href) && $(href)
 

	
 
        return ($href
 
          && $href.length
 
          && $href.is(':visible')
 
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
 
      })
 
      .sort(function (a, b) { return a[0] - b[0] })
 
      .each(function () {
 
        that.offsets.push(this[0])
 
        that.targets.push(this[1])
 
      })
 
  }
 

	
 
  ScrollSpy.prototype.process = function () {
 
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
 
    var scrollHeight = this.getScrollHeight()
 
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
 
    var offsets      = this.offsets
 
    var targets      = this.targets
 
    var activeTarget = this.activeTarget
 
    var i
 

	
 
    if (this.scrollHeight != scrollHeight) {
 
      this.refresh()
 
    }
 

	
 
    if (scrollTop >= maxScroll) {
 
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
 
    }
 

	
 
    if (activeTarget && scrollTop < offsets[0]) {
 
      this.activeTarget = null
 
      return this.clear()
 
    }
 

	
 
    for (i = offsets.length; i--;) {
 
      activeTarget != targets[i]
 
        && scrollTop >= offsets[i]
 
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
 
        && this.activate(targets[i])
 
    }
 
  }
 

	
 
  ScrollSpy.prototype.activate = function (target) {
 
    this.activeTarget = target
 

	
 
    this.clear()
 

	
 
    var selector = this.selector +
 
      '[data-target="' + target + '"],' +
 
      this.selector + '[href="' + target + '"]'
 

	
 
    var active = $(selector)
 
      .parents('li')
 
      .addClass('active')
 

	
 
    if (active.parent('.dropdown-menu').length) {
 
      active = active
 
        .closest('li.dropdown')
 
        .addClass('active')
 
    }
 

	
 
    active.trigger('activate.bs.scrollspy')
 
  }
 

	
 
  ScrollSpy.prototype.clear = function () {
 
    $(this.selector)
 
      .parentsUntil(this.options.target, '.active')
 
      .removeClass('active')
 
  }
 

	
 

	
 
  // SCROLLSPY PLUGIN DEFINITION
 
  // ===========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.scrollspy')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.scrollspy
 

	
 
  $.fn.scrollspy             = Plugin
 
  $.fn.scrollspy.Constructor = ScrollSpy
 

	
 

	
 
  // SCROLLSPY NO CONFLICT
 
  // =====================
 

	
 
  $.fn.scrollspy.noConflict = function () {
 
    $.fn.scrollspy = old
 
    return this
 
  }
 

	
 

	
 
  // SCROLLSPY DATA-API
 
  // ==================
 

	
 
  $(window).on('load.bs.scrollspy.data-api', function () {
 
    $('[data-spy="scroll"]').each(function () {
 
      var $spy = $(this)
 
      Plugin.call($spy, $spy.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],11:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: tab.js v3.3.6
 
 * http://getbootstrap.com/javascript/#tabs
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TAB CLASS DEFINITION
 
  // ====================
 

	
 
  var Tab = function (element) {
 
    // jscs:disable requireDollarBeforejQueryAssignment
 
    this.element = $(element)
 
    // jscs:enable requireDollarBeforejQueryAssignment
 
  }
 

	
 
  Tab.VERSION = '3.3.6'
 

	
 
  Tab.TRANSITION_DURATION = 150
 

	
 
  Tab.prototype.show = function () {
 
    var $this    = this.element
 
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
 
    var selector = $this.data('target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    if ($this.parent('li').hasClass('active')) return
 

	
 
    var $previous = $ul.find('.active:last a')
 
    var hideEvent = $.Event('hide.bs.tab', {
 
      relatedTarget: $this[0]
 
    })
 
    var showEvent = $.Event('show.bs.tab', {
 
      relatedTarget: $previous[0]
 
    })
 

	
 
    $previous.trigger(hideEvent)
 
    $this.trigger(showEvent)
 

	
 
    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
 

	
 
    var $target = $(selector)
 

	
 
    this.activate($this.closest('li'), $ul)
 
    this.activate($target, $target.parent(), function () {
 
      $previous.trigger({
 
        type: 'hidden.bs.tab',
 
        relatedTarget: $this[0]
 
      })
 
      $this.trigger({
 
        type: 'shown.bs.tab',
 
        relatedTarget: $previous[0]
 
      })
 
    })
 
  }
 

	
 
  Tab.prototype.activate = function (element, container, callback) {
 
    var $active    = container.find('> .active')
 
    var transition = callback
 
      && $.support.transition
 
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
 

	
 
    function next() {
 
      $active
 
        .removeClass('active')
 
        .find('> .dropdown-menu > .active')
 
          .removeClass('active')
 
        .end()
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', false)
 

	
 
      element
 
        .addClass('active')
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', true)
 

	
 
      if (transition) {
 
        element[0].offsetWidth // reflow for transition
 
        element.addClass('in')
 
      } else {
 
        element.removeClass('fade')
 
      }
 

	
 
      if (element.parent('.dropdown-menu').length) {
 
        element
 
          .closest('li.dropdown')
 
            .addClass('active')
 
          .end()
 
          .find('[data-toggle="tab"]')
 
            .attr('aria-expanded', true)
 
      }
 

	
 
      callback && callback()
 
    }
 

	
 
    $active.length && transition ?
 
      $active
 
        .one('bsTransitionEnd', next)
 
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
 
      next()
 

	
 
    $active.removeClass('in')
 
  }
 

	
 

	
 
  // TAB PLUGIN DEFINITION
 
  // =====================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.tab')
 

	
 
      if (!data) $this.data('bs.tab', (data = new Tab(this)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tab
 

	
 
  $.fn.tab             = Plugin
 
  $.fn.tab.Constructor = Tab
 

	
 

	
 
  // TAB NO CONFLICT
 
  // ===============
 

	
 
  $.fn.tab.noConflict = function () {
 
    $.fn.tab = old
 
    return this
 
  }
 

	
 

	
 
  // TAB DATA-API
 
  // ============
 

	
 
  var clickHandler = function (e) {
 
    e.preventDefault()
 
    Plugin.call($(this), 'show')
 
  }
 

	
 
  $(document)
 
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
 
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
 

	
 
}(jQuery);
 

	
 
},{}],12:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: tooltip.js v3.3.6
 
 * http://getbootstrap.com/javascript/#tooltip
 
 * Inspired by the original jQuery.tipsy by Jason Frame
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TOOLTIP PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Tooltip = function (element, options) {
 
    this.type       = null
 
    this.options    = null
 
    this.enabled    = null
 
    this.timeout    = null
 
    this.hoverState = null
 
    this.$element   = null
 
    this.inState    = null
 

	
 
    this.init('tooltip', element, options)
 
  }
 

	
 
  Tooltip.VERSION  = '3.3.6'
 

	
 
  Tooltip.TRANSITION_DURATION = 150
 

	
 
  Tooltip.DEFAULTS = {
 
    animation: true,
 
    placement: 'top',
 
    selector: false,
 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
 
    trigger: 'hover focus',
 
    title: '',
 
    delay: 0,
 
    html: false,
 
    container: false,
 
    viewport: {
 
      selector: 'body',
 
      padding: 0
 
    }
 
  }
 

	
 
  Tooltip.prototype.init = function (type, element, options) {
 
    this.enabled   = true
 
    this.type      = type
 
    this.$element  = $(element)
 
    this.options   = this.getOptions(options)
 
    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
 
    this.inState   = { click: false, hover: false, focus: false }
 

	
 
    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
 
      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
 
    }
 

	
 
    var triggers = this.options.trigger.split(' ')
 

	
 
    for (var i = triggers.length; i--;) {
 
      var trigger = triggers[i]
 

	
 
      if (trigger == 'click') {
 
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
 
      } else if (trigger != 'manual') {
 
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
 
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
 

	
 
        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
 
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
 
      }
 
    }
 

	
 
    this.options.selector ?
 
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
 
      this.fixTitle()
 
  }
 

	
 
  Tooltip.prototype.getDefaults = function () {
 
    return Tooltip.DEFAULTS
 
  }
 

	
 
  Tooltip.prototype.getOptions = function (options) {
 
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
 

	
 
    if (options.delay && typeof options.delay == 'number') {
 
      options.delay = {
 
        show: options.delay,
 
        hide: options.delay
 
      }
 
    }
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.getDelegateOptions = function () {
 
    var options  = {}
 
    var defaults = this.getDefaults()
 

	
 
    this._options && $.each(this._options, function (key, value) {
 
      if (defaults[key] != value) options[key] = value
 
    })
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.enter = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
 
    }
 

	
 
    if (self.tip().hasClass('in') || self.hoverState == 'in') {
 
      self.hoverState = 'in'
 
      return
 
    }
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'in'
 

	
 
    if (!self.options.delay || !self.options.delay.show) return self.show()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'in') self.show()
 
    }, self.options.delay.show)
 
  }
 

	
 
  Tooltip.prototype.isInStateTrue = function () {
 
    for (var key in this.inState) {
 
      if (this.inState[key]) return true
 
    }
 

	
 
    return false
 
  }
 

	
 
  Tooltip.prototype.leave = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
 
    }
 

	
 
    if (self.isInStateTrue()) return
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'out'
 

	
 
    if (!self.options.delay || !self.options.delay.hide) return self.hide()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'out') self.hide()
 
    }, self.options.delay.hide)
 
  }
 

	
 
  Tooltip.prototype.show = function () {
 
    var e = $.Event('show.bs.' + this.type)
 

	
 
    if (this.hasContent() && this.enabled) {
 
      this.$element.trigger(e)
 

	
 
      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
 
      if (e.isDefaultPrevented() || !inDom) return
 
      var that = this
 

	
 
      var $tip = this.tip()
 

	
 
      var tipId = this.getUID(this.type)
 

	
 
      this.setContent()
 
      $tip.attr('id', tipId)
 
      this.$element.attr('aria-describedby', tipId)
 

	
 
      if (this.options.animation) $tip.addClass('fade')
 

	
 
      var placement = typeof this.options.placement == 'function' ?
 
        this.options.placement.call(this, $tip[0], this.$element[0]) :
 
        this.options.placement
 

	
 
      var autoToken = /\s?auto?\s?/i
 
      var autoPlace = autoToken.test(placement)
 
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
 

	
 
      $tip
 
        .detach()
 
        .css({ top: 0, left: 0, display: 'block' })
 
        .addClass(placement)
 
        .data('bs.' + this.type, this)
 

	
 
      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
 
      this.$element.trigger('inserted.bs.' + this.type)
 

	
 
      var pos          = this.getPosition()
 
      var actualWidth  = $tip[0].offsetWidth
 
      var actualHeight = $tip[0].offsetHeight
 

	
 
      if (autoPlace) {
 
        var orgPlacement = placement
 
        var viewportDim = this.getPosition(this.$viewport)
 

	
 
        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
 
                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
 
                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
 
                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
 
                    placement
 

	
 
        $tip
 
          .removeClass(orgPlacement)
 
          .addClass(placement)
 
      }
 

	
 
      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
 

	
 
      this.applyPlacement(calculatedOffset, placement)
 

	
 
      var complete = function () {
 
        var prevHoverState = that.hoverState
 
        that.$element.trigger('shown.bs.' + that.type)
 
        that.hoverState = null
 

	
 
        if (prevHoverState == 'out') that.leave(that)
 
      }
 

	
 
      $.support.transition && this.$tip.hasClass('fade') ?
 
        $tip
 
          .one('bsTransitionEnd', complete)
 
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
        complete()
 
    }
 
  }
 

	
 
  Tooltip.prototype.applyPlacement = function (offset, placement) {
 
    var $tip   = this.tip()
 
    var width  = $tip[0].offsetWidth
 
    var height = $tip[0].offsetHeight
 

	
 
    // manually read margins because getBoundingClientRect includes difference
 
    var marginTop = parseInt($tip.css('margin-top'), 10)
 
    var marginLeft = parseInt($tip.css('margin-left'), 10)
 

	
 
    // we must check for NaN for ie 8/9
 
    if (isNaN(marginTop))  marginTop  = 0
 
    if (isNaN(marginLeft)) marginLeft = 0
 

	
 
    offset.top  += marginTop
 
    offset.left += marginLeft
 

	
 
    // $.fn.offset doesn't round pixel values
 
    // so we use setOffset directly with our own function B-0
 
    $.offset.setOffset($tip[0], $.extend({
 
      using: function (props) {
 
        $tip.css({
 
          top: Math.round(props.top),
 
          left: Math.round(props.left)
 
        })
 
      }
 
    }, offset), 0)
 

	
 
    $tip.addClass('in')
 

	
 
    // check to see if placing tip in new offset caused the tip to resize itself
 
    var actualWidth  = $tip[0].offsetWidth
 
    var actualHeight = $tip[0].offsetHeight
 

	
 
    if (placement == 'top' && actualHeight != height) {
 
      offset.top = offset.top + height - actualHeight
 
    }
 

	
 
    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
 

	
 
    if (delta.left) offset.left += delta.left
 
    else offset.top += delta.top
 

	
 
    var isVertical          = /top|bottom/.test(placement)
 
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
 
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
 

	
 
    $tip.offset(offset)
 
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
 
  }
 

	
 
  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
 
    this.arrow()
 
      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
 
      .css(isVertical ? 'top' : 'left', '')
 
  }
 

	
 
  Tooltip.prototype.setContent = function () {
 
    var $tip  = this.tip()
 
    var title = this.getTitle()
 

	
 
    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
 
    $tip.removeClass('fade in top bottom left right')
 
  }
 

	
 
  Tooltip.prototype.hide = function (callback) {
 
    var that = this
 
    var $tip = $(this.$tip)
 
    var e    = $.Event('hide.bs.' + this.type)
 

	
 
    function complete() {
 
      if (that.hoverState != 'in') $tip.detach()
 
      that.$element
 
        .removeAttr('aria-describedby')
 
        .trigger('hidden.bs.' + that.type)
 
      callback && callback()
 
    }
 

	
 
    this.$element.trigger(e)
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $tip.removeClass('in')
 

	
 
    $.support.transition && $tip.hasClass('fade') ?
 
      $tip
 
        .one('bsTransitionEnd', complete)
 
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
      complete()
 

	
 
    this.hoverState = null
 

	
 
    return this
 
  }
 

	
 
  Tooltip.prototype.fixTitle = function () {
 
    var $e = this.$element
 
    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
 
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
 
    }
 
  }
 

	
 
  Tooltip.prototype.hasContent = function () {
 
    return this.getTitle()
 
  }
 

	
 
  Tooltip.prototype.getPosition = function ($element) {
 
    $element   = $element || this.$element
 

	
 
    var el     = $element[0]
 
    var isBody = el.tagName == 'BODY'
 

	
 
    var elRect    = el.getBoundingClientRect()
 
    if (elRect.width == null) {
 
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
 
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
 
    }
 
    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
 
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
 
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
 

	
 
    return $.extend({}, elRect, scroll, outerDims, elOffset)
 
  }
 

	
 
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
 
    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
 
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
 

	
 
  }
 

	
 
  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
 
    var delta = { top: 0, left: 0 }
 
    if (!this.$viewport) return delta
 

	
 
    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
 
    var viewportDimensions = this.getPosition(this.$viewport)
 

	
 
    if (/right|left/.test(placement)) {
 
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
 
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
 
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
 
        delta.top = viewportDimensions.top - topEdgeOffset
 
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
 
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
 
      }
 
    } else {
 
      var leftEdgeOffset  = pos.left - viewportPadding
 
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
 
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
 
        delta.left = viewportDimensions.left - leftEdgeOffset
 
      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
 
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
 
      }
 
    }
 

	
 
    return delta
 
  }
 

	
 
  Tooltip.prototype.getTitle = function () {
 
    var title
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    title = $e.attr('data-original-title')
 
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
 

	
 
    return title
 
  }
 

	
 
  Tooltip.prototype.getUID = function (prefix) {
 
    do prefix += ~~(Math.random() * 1000000)
 
    while (document.getElementById(prefix))
 
    return prefix
 
  }
 

	
 
  Tooltip.prototype.tip = function () {
 
    if (!this.$tip) {
 
      this.$tip = $(this.options.template)
 
      if (this.$tip.length != 1) {
 
        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
 
      }
 
    }
 
    return this.$tip
 
  }
 

	
 
  Tooltip.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
 
  }
 

	
 
  Tooltip.prototype.enable = function () {
 
    this.enabled = true
 
  }
 

	
 
  Tooltip.prototype.disable = function () {
 
    this.enabled = false
 
  }
 

	
 
  Tooltip.prototype.toggleEnabled = function () {
 
    this.enabled = !this.enabled
 
  }
 

	
 
  Tooltip.prototype.toggle = function (e) {
 
    var self = this
 
    if (e) {
 
      self = $(e.currentTarget).data('bs.' + this.type)
 
      if (!self) {
 
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
 
        $(e.currentTarget).data('bs.' + this.type, self)
 
      }
 
    }
 

	
 
    if (e) {
 
      self.inState.click = !self.inState.click
 
      if (self.isInStateTrue()) self.enter(self)
 
      else self.leave(self)
 
    } else {
 
      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
 
    }
 
  }
 

	
 
  Tooltip.prototype.destroy = function () {
 
    var that = this
 
    clearTimeout(this.timeout)
 
    this.hide(function () {
 
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
 
      if (that.$tip) {
 
        that.$tip.detach()
 
      }
 
      that.$tip = null
 
      that.$arrow = null
 
      that.$viewport = null
 
    })
 
  }
 

	
 

	
 
  // TOOLTIP PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.tooltip')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tooltip
 

	
 
  $.fn.tooltip             = Plugin
 
  $.fn.tooltip.Constructor = Tooltip
 

	
 

	
 
  // TOOLTIP NO CONFLICT
 
  // ===================
 

	
 
  $.fn.tooltip.noConflict = function () {
 
    $.fn.tooltip = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
},{}],13:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: transition.js v3.3.6
 
 * http://getbootstrap.com/javascript/#transitions
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
 
  // ============================================================
 

	
 
  function transitionEnd() {
 
    var el = document.createElement('bootstrap')
 

	
 
    var transEndEventNames = {
 
      WebkitTransition : 'webkitTransitionEnd',
 
      MozTransition    : 'transitionend',
 
      OTransition      : 'oTransitionEnd otransitionend',
 
      transition       : 'transitionend'
 
    }
 

	
 
    for (var name in transEndEventNames) {
 
      if (el.style[name] !== undefined) {
 
        return { end: transEndEventNames[name] }
 
      }
 
    }
 

	
 
    return false // explicit for ie8 (  ._.)
 
  }
 

	
 
  // http://blog.alexmaccaw.com/css-transitions
 
  $.fn.emulateTransitionEnd = function (duration) {
 
    var called = false
 
    var $el = this
 
    $(this).one('bsTransitionEnd', function () { called = true })
 
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
 
    setTimeout(callback, duration)
 
    return this
 
  }
 

	
 
  $(function () {
 
    $.support.transition = transitionEnd()
 

	
 
    if (!$.support.transition) return
 

	
 
    $.event.special.bsTransitionEnd = {
 
      bindType: $.support.transition.end,
 
      delegateType: $.support.transition.end,
 
      handle: function (e) {
 
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
 
      }
 
    }
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],14:[function(require,module,exports){
 
/*!
 
 * jQuery JavaScript Library v2.2.1
 
 * http://jquery.com/
 
 *
 
 * Includes Sizzle.js
 
 * http://sizzlejs.com/
 
 *
 
 * Copyright jQuery Foundation and other contributors
 
 * Released under the MIT license
 
 * http://jquery.org/license
 
 *
 
 * Date: 2016-02-22T19:11Z
 
 */
 

	
 
(function( global, factory ) {
 

	
 
	if ( typeof module === "object" && typeof module.exports === "object" ) {
 
		// For CommonJS and CommonJS-like environments where a proper `window`
 
		// is present, execute the factory and get jQuery.
 
		// For environments that do not have a `window` with a `document`
 
		// (such as Node.js), expose a factory as module.exports.
 
		// This accentuates the need for the creation of a real `window`.
 
		// e.g. var jQuery = require("jquery")(window);
 
		// See ticket #14549 for more info.
 
		module.exports = global.document ?
 
			factory( global, true ) :
 
			function( w ) {
 
				if ( !w.document ) {
 
					throw new Error( "jQuery requires a window with a document" );
 
				}
 
				return factory( w );
 
			};
 
	} else {
 
		factory( global );
 
	}
 

	
 
// Pass this if window is not defined yet
 
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
 

	
 
// Support: Firefox 18+
 
// Can't be in strict mode, several libs including ASP.NET trace
 
// the stack via arguments.caller.callee and Firefox dies if
 
// you try to trace through "use strict" call chains. (#13335)
 
//"use strict";
 
var arr = [];
 

	
 
var document = window.document;
 

	
 
var slice = arr.slice;
 

	
 
var concat = arr.concat;
 

	
 
var push = arr.push;
 

	
 
var indexOf = arr.indexOf;
 

	
 
var class2type = {};
 

	
 
var toString = class2type.toString;
 

	
 
var hasOwn = class2type.hasOwnProperty;
 

	
 
var support = {};
 

	
 

	
 

	
 
var
 
	version = "2.2.1",
 

	
 
	// Define a local copy of jQuery
 
	jQuery = function( selector, context ) {
 

	
 
		// The jQuery object is actually just the init constructor 'enhanced'
 
		// Need init if jQuery is called (just allow error to be thrown if not included)
 
		return new jQuery.fn.init( selector, context );
 
	},
 

	
 
	// Support: Android<4.1
 
	// Make sure we trim BOM and NBSP
 
	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
 

	
 
	// Matches dashed string for camelizing
 
	rmsPrefix = /^-ms-/,
 
	rdashAlpha = /-([\da-z])/gi,
 

	
 
	// Used by jQuery.camelCase as callback to replace()
 
	fcamelCase = function( all, letter ) {
 
		return letter.toUpperCase();
 
	};
 

	
 
jQuery.fn = jQuery.prototype = {
 

	
 
	// The current version of jQuery being used
 
	jquery: version,
 

	
 
	constructor: jQuery,
 

	
 
	// Start with an empty selector
 
	selector: "",
 

	
 
	// The default length of a jQuery object is 0
 
	length: 0,
 

	
 
	toArray: function() {
 
		return slice.call( this );
 
	},
 

	
 
	// Get the Nth element in the matched element set OR
 
	// Get the whole matched element set as a clean array
 
	get: function( num ) {
 
		return num != null ?
 

	
 
			// Return just the one element from the set
 
			( num < 0 ? this[ num + this.length ] : this[ num ] ) :
 

	
 
			// Return all the elements in a clean array
 
			slice.call( this );
 
	},
 

	
 
	// Take an array of elements and push it onto the stack
 
	// (returning the new matched element set)
 
	pushStack: function( elems ) {
 

	
 
		// Build a new jQuery matched element set
 
		var ret = jQuery.merge( this.constructor(), elems );
 

	
 
		// Add the old object onto the stack (as a reference)
 
		ret.prevObject = this;
 
		ret.context = this.context;
 

	
 
		// Return the newly-formed element set
 
		return ret;
 
	},
 

	
 
	// Execute a callback for every element in the matched set.
 
	each: function( callback ) {
 
		return jQuery.each( this, callback );
 
	},
 

	
 
	map: function( callback ) {
 
		return this.pushStack( jQuery.map( this, function( elem, i ) {
 
			return callback.call( elem, i, elem );
 
		} ) );
 
	},
 

	
 
	slice: function() {
 
		return this.pushStack( slice.apply( this, arguments ) );
 
	},
 

	
 
	first: function() {
 
		return this.eq( 0 );
 
	},
 

	
 
	last: function() {
 
		return this.eq( -1 );
 
	},
 

	
 
	eq: function( i ) {
 
		var len = this.length,
 
			j = +i + ( i < 0 ? len : 0 );
 
		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
 
	},
 

	
 
	end: function() {
 
		return this.prevObject || this.constructor();
 
	},
 

	
 
	// For internal use only.
 
	// Behaves like an Array's method, not like a jQuery method.
 
	push: push,
 
	sort: arr.sort,
 
	splice: arr.splice
 
};
 

	
 
jQuery.extend = jQuery.fn.extend = function() {
 
	var options, name, src, copy, copyIsArray, clone,
 
		target = arguments[ 0 ] || {},
 
		i = 1,
 
		length = arguments.length,
 
		deep = false;
 

	
 
	// Handle a deep copy situation
 
	if ( typeof target === "boolean" ) {
 
		deep = target;
 

	
 
		// Skip the boolean and the target
 
		target = arguments[ i ] || {};
 
		i++;
 
	}
 

	
 
	// Handle case when target is a string or something (possible in deep copy)
 
	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
 
		target = {};
 
	}
 

	
 
	// Extend jQuery itself if only one argument is passed
 
	if ( i === length ) {
 
		target = this;
 
		i--;
 
	}
 

	
 
	for ( ; i < length; i++ ) {
 

	
 
		// Only deal with non-null/undefined values
 
		if ( ( options = arguments[ i ] ) != null ) {
 

	
 
			// Extend the base object
 
			for ( name in options ) {
 
				src = target[ name ];
 
				copy = options[ name ];
 

	
 
				// Prevent never-ending loop
 
				if ( target === copy ) {
 
					continue;
 
				}
 

	
 
				// Recurse if we're merging plain objects or arrays
 
				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 
					( copyIsArray = jQuery.isArray( copy ) ) ) ) {
 

	
 
					if ( copyIsArray ) {
 
						copyIsArray = false;
 
						clone = src && jQuery.isArray( src ) ? src : [];
 

	
 
					} else {
 
						clone = src && jQuery.isPlainObject( src ) ? src : {};
 
					}
 

	
 
					// Never move original objects, clone them
 
					target[ name ] = jQuery.extend( deep, clone, copy );
 

	
 
				// Don't bring in undefined values
 
				} else if ( copy !== undefined ) {
 
					target[ name ] = copy;
 
				}
 
			}
 
		}
 
	}
 

	
 
	// Return the modified object
 
	return target;
 
};
 

	
 
jQuery.extend( {
 

	
 
	// Unique for each copy of jQuery on the page
 
	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
 

	
 
	// Assume jQuery is ready without the ready module
 
	isReady: true,
 

	
 
	error: function( msg ) {
 
		throw new Error( msg );
 
	},
 

	
 
	noop: function() {},
 

	
 
	isFunction: function( obj ) {
 
		return jQuery.type( obj ) === "function";
 
	},
 

	
 
	isArray: Array.isArray,
 

	
 
	isWindow: function( obj ) {
 
		return obj != null && obj === obj.window;
 
	},
 

	
 
	isNumeric: function( obj ) {
 

	
 
		// parseFloat NaNs numeric-cast false positives (null|true|false|"")
 
		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
 
		// subtraction forces infinities to NaN
 
		// adding 1 corrects loss of precision from parseFloat (#15100)
 
		var realStringObj = obj && obj.toString();
 
		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
 
	},
 

	
 
	isPlainObject: function( obj ) {
 

	
 
		// Not plain objects:
 
		// - Any object or value whose internal [[Class]] property is not "[object Object]"
 
		// - DOM nodes
 
		// - window
 
		if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
 
			return false;
 
		}
 

	
 
		if ( obj.constructor &&
 
				!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
 
			return false;
 
		}
 

	
 
		// If the function hasn't returned already, we're confident that
 
		// |obj| is a plain object, created by {} or constructed with new Object
 
		return true;
 
	},
 

	
 
	isEmptyObject: function( obj ) {
 
		var name;
 
		for ( name in obj ) {
 
			return false;
 
		}
 
		return true;
 
	},
 

	
 
	type: function( obj ) {
 
		if ( obj == null ) {
 
			return obj + "";
 
		}
 

	
 
		// Support: Android<4.0, iOS<6 (functionish RegExp)
 
		return typeof obj === "object" || typeof obj === "function" ?
 
			class2type[ toString.call( obj ) ] || "object" :
 
			typeof obj;
 
	},
 

	
 
	// Evaluates a script in a global context
 
	globalEval: function( code ) {
 
		var script,
 
			indirect = eval;
 

	
 
		code = jQuery.trim( code );
 

	
 
		if ( code ) {
 

	
 
			// If the code includes a valid, prologue position
 
			// strict mode pragma, execute code by injecting a
 
			// script tag into the document.
 
			if ( code.indexOf( "use strict" ) === 1 ) {
 
				script = document.createElement( "script" );
 
				script.text = code;
 
				document.head.appendChild( script ).parentNode.removeChild( script );
 
			} else {
 

	
 
				// Otherwise, avoid the DOM node creation, insertion
 
				// and removal by using an indirect global eval
 

	
 
				indirect( code );
 
			}
 
		}
 
	},
 

	
 
	// Convert dashed to camelCase; used by the css and data modules
 
	// Support: IE9-11+
 
	// Microsoft forgot to hump their vendor prefix (#9572)
 
	camelCase: function( string ) {
 
		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
 
	},
 

	
 
	nodeName: function( elem, name ) {
 
		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
 
	},
 

	
 
	each: function( obj, callback ) {
 
		var length, i = 0;
 

	
 
		if ( isArrayLike( obj ) ) {
 
			length = obj.length;
 
			for ( ; i < length; i++ ) {
 
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
 
					break;
 
				}
 
			}
 
		} else {
 
			for ( i in obj ) {
 
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
 
					break;
 
				}
 
			}
 
		}
 

	
 
		return obj;
 
	},
 

	
 
	// Support: Android<4.1
 
	trim: function( text ) {
 
		return text == null ?
 
			"" :
 
			( text + "" ).replace( rtrim, "" );
 
	},
 

	
 
	// results is for internal usage only
 
	makeArray: function( arr, results ) {
 
		var ret = results || [];
 

	
 
		if ( arr != null ) {
 
			if ( isArrayLike( Object( arr ) ) ) {
 
				jQuery.merge( ret,
 
					typeof arr === "string" ?
 
					[ arr ] : arr
 
				);
 
			} else {
 
				push.call( ret, arr );
 
			}
 
		}
 

	
 
		return ret;
 
	},
 

	
 
	inArray: function( elem, arr, i ) {
 
		return arr == null ? -1 : indexOf.call( arr, elem, i );
 
	},
 

	
 
	merge: function( first, second ) {
 
		var len = +second.length,
 
			j = 0,
 
			i = first.length;
 

	
 
		for ( ; j < len; j++ ) {
 
			first[ i++ ] = second[ j ];
 
		}
 

	
 
		first.length = i;
 

	
 
		return first;
 
	},
 

	
 
	grep: function( elems, callback, invert ) {
 
		var callbackInverse,
 
			matches = [],
 
			i = 0,
 
			length = elems.length,
 
			callbackExpect = !invert;
 

	
 
		// Go through the array, only saving the items
 
		// that pass the validator function
 
		for ( ; i < length; i++ ) {
 
			callbackInverse = !callback( elems[ i ], i );
 
			if ( callbackInverse !== callbackExpect ) {
 
				matches.push( elems[ i ] );
 
			}
 
		}
 

	
 
		return matches;
 
	},
 

	
 
	// arg is for internal usage only
 
	map: function( elems, callback, arg ) {
 
		var length, value,
 
			i = 0,
 
			ret = [];
 

	
 
		// Go through the array, translating each of the items to their new values
 
		if ( isArrayLike( elems ) ) {
 
			length = elems.length;
 
			for ( ; i < length; i++ ) {
 
				value = callback( elems[ i ], i, arg );
 

	
 
				if ( value != null ) {
 
					ret.push( value );
 
				}
 
			}
 

	
 
		// Go through every key on the object,
 
		} else {
 
			for ( i in elems ) {
 
				value = callback( elems[ i ], i, arg );
 

	
 
				if ( value != null ) {
 
					ret.push( value );
 
				}
 
			}
 
		}
 

	
 
		// Flatten any nested arrays
 
		return concat.apply( [], ret );
 
	},
 

	
 
	// A global GUID counter for objects
 
	guid: 1,
 

	
 
	// Bind a function to a context, optionally partially applying any
 
	// arguments.
 
	proxy: function( fn, context ) {
 
		var tmp, args, proxy;
 

	
 
		if ( typeof context === "string" ) {
 
			tmp = fn[ context ];
 
			context = fn;
 
			fn = tmp;
 
		}
 

	
 
		// Quick check to determine if target is callable, in the spec
 
		// this throws a TypeError, but we will just return undefined.
 
		if ( !jQuery.isFunction( fn ) ) {
 
			return undefined;
 
		}
 

	
 
		// Simulated bind
 
		args = slice.call( arguments, 2 );
 
		proxy = function() {
 
			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
 
		};
 

	
 
		// Set the guid of unique handler to the same of original handler, so it can be removed
 
		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
 

	
 
		return proxy;
 
	},
 

	
 
	now: Date.now,
 

	
 
	// jQuery.support is not used in Core but other projects attach their
 
	// properties to it so it needs to exist.
 
	support: support
 
} );
 

	
 
// JSHint would error on this code due to the Symbol not being defined in ES5.
 
// Defining this global in .jshintrc would create a danger of using the global
 
// unguarded in another place, it seems safer to just disable JSHint for these
 
// three lines.
 
/* jshint ignore: start */
 
if ( typeof Symbol === "function" ) {
 
	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
 
}
 
/* jshint ignore: end */
 

	
 
// Populate the class2type map
 
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
 
function( i, name ) {
 
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
 
} );
 

	
 
function isArrayLike( obj ) {
 

	
 
	// Support: iOS 8.2 (not reproducible in simulator)
 
	// `in` check used to prevent JIT error (gh-2145)
 
	// hasOwn isn't used here due to false negatives
 
	// regarding Nodelist length in IE
 
	var length = !!obj && "length" in obj && obj.length,
 
		type = jQuery.type( obj );
 

	
 
	if ( type === "function" || jQuery.isWindow( obj ) ) {
 
		return false;
 
	}
 

	
 
	return type === "array" || length === 0 ||
 
		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
 
}
 
var Sizzle =
 
/*!
 
 * Sizzle CSS Selector Engine v2.2.1
 
 * http://sizzlejs.com/
 
 *
 
 * Copyright jQuery Foundation and other contributors
 
 * Released under the MIT license
 
 * http://jquery.org/license
 
 *
 
 * Date: 2015-10-17
 
 */
 
(function( window ) {
 

	
 
var i,
 
	support,
 
	Expr,
 
	getText,
 
	isXML,
 
	tokenize,
 
	compile,
 
	select,
 
	outermostContext,
 
	sortInput,
 
	hasDuplicate,
 

	
 
	// Local document vars
 
	setDocument,
 
	document,
 
	docElem,
 
	documentIsHTML,
 
	rbuggyQSA,
 
	rbuggyMatches,
 
	matches,
 
	contains,
 

	
 
	// Instance-specific data
 
	expando = "sizzle" + 1 * new Date(),
 
	preferredDoc = window.document,
 
	dirruns = 0,
 
	done = 0,
 
	classCache = createCache(),
 
	tokenCache = createCache(),
 
	compilerCache = createCache(),
 
	sortOrder = function( a, b ) {
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
		}
 
		return 0;
 
	},
 

	
 
	// General-purpose constants
 
	MAX_NEGATIVE = 1 << 31,
 

	
 
	// Instance methods
 
	hasOwn = ({}).hasOwnProperty,
 
	arr = [],
 
	pop = arr.pop,
 
	push_native = arr.push,
 
	push = arr.push,
 
	slice = arr.slice,
 
	// Use a stripped-down indexOf as it's faster than native
 
	// http://jsperf.com/thor-indexof-vs-for/5
 
	indexOf = function( list, elem ) {
 
		var i = 0,
 
			len = list.length;
 
		for ( ; i < len; i++ ) {
 
			if ( list[i] === elem ) {
 
				return i;
 
			}
 
		}
 
		return -1;
 
	},
 

	
 
	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
 

	
 
	// Regular expressions
 

	
 
	// http://www.w3.org/TR/css3-selectors/#whitespace
 
	whitespace = "[\\x20\\t\\r\\n\\f]",
 

	
 
	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
 
	identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
 

	
 
	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
 
	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
 
		// Operator (capture 2)
 
		"*([*^$|!~]?=)" + whitespace +
 
		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
 
		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
 
		"*\\]",
 

	
 
	pseudos = ":(" + identifier + ")(?:\\((" +
 
		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
 
		// 1. quoted (capture 3; capture 4 or capture 5)
 
		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
 
		// 2. simple (capture 6)
 
		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
 
		// 3. anything else (capture 2)
 
		".*" +
 
		")\\)|)",
 

	
 
	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
 
	rwhitespace = new RegExp( whitespace + "+", "g" ),
 
	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
 

	
 
	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
 
	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
 

	
 
	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
 

	
 
	rpseudo = new RegExp( pseudos ),
 
	ridentifier = new RegExp( "^" + identifier + "$" ),
 

	
 
	matchExpr = {
 
		"ID": new RegExp( "^#(" + identifier + ")" ),
 
		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
 
		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
 
		"ATTR": new RegExp( "^" + attributes ),
 
		"PSEUDO": new RegExp( "^" + pseudos ),
 
		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
 
			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
 
			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
 
		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
 
		// For use in libraries implementing .is()
 
		// We use this for POS matching in `select`
 
		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
 
			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 
	},
 

	
 
	rinputs = /^(?:input|select|textarea|button)$/i,
 
	rheader = /^h\d$/i,
 

	
 
	rnative = /^[^{]+\{\s*\[native \w/,
 

	
 
	// Easily-parseable/retrievable ID or TAG or CLASS selectors
 
	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
 

	
 
	rsibling = /[+~]/,
 
	rescape = /'|\\/g,
 

	
 
	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
 
	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
 
	funescape = function( _, escaped, escapedWhitespace ) {
 
		var high = "0x" + escaped - 0x10000;
 
		// NaN means non-codepoint
 
		// Support: Firefox<24
 
		// Workaround erroneous numeric interpretation of +"0x"
 
		return high !== high || escapedWhitespace ?
 
			escaped :
 
			high < 0 ?
 
				// BMP codepoint
 
				String.fromCharCode( high + 0x10000 ) :
 
				// Supplemental Plane codepoint (surrogate pair)
 
				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
 
	},
 

	
 
	// Used for iframes
 
	// See setDocument()
 
	// Removing the function wrapper causes a "Permission Denied"
 
	// error in IE
 
	unloadHandler = function() {
 
		setDocument();
 
	};
 

	
 
// Optimize for push.apply( _, NodeList )
 
try {
 
	push.apply(
 
		(arr = slice.call( preferredDoc.childNodes )),
 
		preferredDoc.childNodes
 
	);
 
	// Support: Android<4.0
 
	// Detect silently failing push.apply
 
	arr[ preferredDoc.childNodes.length ].nodeType;
 
} catch ( e ) {
 
	push = { apply: arr.length ?
 

	
 
		// Leverage slice if possible
 
		function( target, els ) {
 
			push_native.apply( target, slice.call(els) );
 
		} :
 

	
 
		// Support: IE<9
 
		// Otherwise append directly
 
		function( target, els ) {
 
			var j = target.length,
 
				i = 0;
 
			// Can't trust NodeList.length
 
			while ( (target[j++] = els[i++]) ) {}
 
			target.length = j - 1;
 
		}
 
	};
 
}
 

	
 
function Sizzle( selector, context, results, seed ) {
 
	var m, i, elem, nid, nidselect, match, groups, newSelector,
 
		newContext = context && context.ownerDocument,
 

	
 
		// nodeType defaults to 9, since context defaults to document
 
		nodeType = context ? context.nodeType : 9;
 

	
 
	results = results || [];
 

	
 
	// Return early from calls with invalid selector or context
 
	if ( typeof selector !== "string" || !selector ||
 
		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
 

	
 
		return results;
 
	}
 

	
 
	// Try to shortcut find operations (as opposed to filters) in HTML documents
 
	if ( !seed ) {
 

	
 
		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
 
			setDocument( context );
 
		}
 
		context = context || document;
 

	
 
		if ( documentIsHTML ) {
 

	
 
			// If the selector is sufficiently simple, try using a "get*By*" DOM method
 
			// (excepting DocumentFragment context, where the methods don't exist)
 
			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
 

	
 
				// ID selector
 
				if ( (m = match[1]) ) {
 

	
 
					// Document context
 
					if ( nodeType === 9 ) {
 
						if ( (elem = context.getElementById( m )) ) {
 

	
 
							// Support: IE, Opera, Webkit
 
							// TODO: identify versions
 
							// getElementById can match elements by name instead of ID
 
							if ( elem.id === m ) {
 
								results.push( elem );
 
								return results;
 
							}
 
						} else {
 
							return results;
 
						}
 

	
 
					// Element context
 
					} else {
 

	
 
						// Support: IE, Opera, Webkit
 
						// TODO: identify versions
 
						// getElementById can match elements by name instead of ID
 
						if ( newContext && (elem = newContext.getElementById( m )) &&
 
							contains( context, elem ) &&
 
							elem.id === m ) {
 

	
 
							results.push( elem );
 
							return results;
 
						}
 
					}
 

	
 
				// Type selector
 
				} else if ( match[2] ) {
 
					push.apply( results, context.getElementsByTagName( selector ) );
 
					return results;
 

	
 
				// Class selector
 
				} else if ( (m = match[3]) && support.getElementsByClassName &&
 
					context.getElementsByClassName ) {
 

	
 
					push.apply( results, context.getElementsByClassName( m ) );
 
					return results;
 
				}
 
			}
 

	
 
			// Take advantage of querySelectorAll
 
			if ( support.qsa &&
 
				!compilerCache[ selector + " " ] &&
 
				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
 

	
 
				if ( nodeType !== 1 ) {
 
					newContext = context;
 
					newSelector = selector;
 

	
 
				// qSA looks outside Element context, which is not what we want
 
				// Thanks to Andrew Dupont for this workaround technique
 
				// Support: IE <=8
 
				// Exclude object elements
 
				} else if ( context.nodeName.toLowerCase() !== "object" ) {
 

	
 
					// Capture the context ID, setting it first if necessary
 
					if ( (nid = context.getAttribute( "id" )) ) {
 
						nid = nid.replace( rescape, "\\$&" );
 
					} else {
 
						context.setAttribute( "id", (nid = expando) );
 
					}
 

	
 
					// Prefix every selector in the list
 
					groups = tokenize( selector );
 
					i = groups.length;
 
					nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
 
					while ( i-- ) {
 
						groups[i] = nidselect + " " + toSelector( groups[i] );
 
					}
 
					newSelector = groups.join( "," );
 

	
 
					// Expand context for sibling selectors
 
					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
 
						context;
 
				}
 

	
 
				if ( newSelector ) {
 
					try {
 
						push.apply( results,
 
							newContext.querySelectorAll( newSelector )
 
						);
 
						return results;
 
					} catch ( qsaError ) {
 
					} finally {
 
						if ( nid === expando ) {
 
							context.removeAttribute( "id" );
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	// All others
 
	return select( selector.replace( rtrim, "$1" ), context, results, seed );
 
}
 

	
 
/**
 
 * Create key-value caches of limited size
 
 * @returns {function(string, object)} Returns the Object data after storing it on itself with
 
 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
 
 *	deleting the oldest entry
 
 */
 
function createCache() {
 
	var keys = [];
 

	
 
	function cache( key, value ) {
 
		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
 
		if ( keys.push( key + " " ) > Expr.cacheLength ) {
 
			// Only keep the most recent entries
 
			delete cache[ keys.shift() ];
 
		}
 
		return (cache[ key + " " ] = value);
 
	}
 
	return cache;
 
}
 

	
 
/**
 
 * Mark a function for special use by Sizzle
 
 * @param {Function} fn The function to mark
 
 */
 
function markFunction( fn ) {
 
	fn[ expando ] = true;
 
	return fn;
 
}
 

	
 
/**
 
 * Support testing using an element
 
 * @param {Function} fn Passed the created div and expects a boolean result
 
 */
 
function assert( fn ) {
 
	var div = document.createElement("div");
 

	
 
	try {
 
		return !!fn( div );
 
	} catch (e) {
 
		return false;
 
	} finally {
 
		// Remove from its parent by default
 
		if ( div.parentNode ) {
 
			div.parentNode.removeChild( div );
 
		}
 
		// release memory in IE
 
		div = null;
 
	}
 
}
 

	
 
/**
 
 * Adds the same handler for all of the specified attrs
 
 * @param {String} attrs Pipe-separated list of attributes
 
 * @param {Function} handler The method that will be applied
 
 */
 
function addHandle( attrs, handler ) {
 
	var arr = attrs.split("|"),
 
		i = arr.length;
 

	
 
	while ( i-- ) {
 
		Expr.attrHandle[ arr[i] ] = handler;
 
	}
 
}
 

	
 
/**
 
 * Checks document order of two siblings
 
 * @param {Element} a
 
 * @param {Element} b
 
 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
 
 */
 
function siblingCheck( a, b ) {
 
	var cur = b && a,
 
		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
 
			( ~b.sourceIndex || MAX_NEGATIVE ) -
 
			( ~a.sourceIndex || MAX_NEGATIVE );
 

	
 
	// Use IE sourceIndex if available on both nodes
 
	if ( diff ) {
 
		return diff;
 
	}
 

	
 
	// Check if b follows a
 
	if ( cur ) {
 
		while ( (cur = cur.nextSibling) ) {
 
			if ( cur === b ) {
 
				return -1;
 
			}
 
		}
 
	}
 

	
 
	return a ? 1 : -1;
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for input types
 
 * @param {String} type
 
 */
 
function createInputPseudo( type ) {
 
	return function( elem ) {
 
		var name = elem.nodeName.toLowerCase();
 
		return name === "input" && elem.type === type;
 
	};
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for buttons
 
 * @param {String} type
 
 */
 
function createButtonPseudo( type ) {
 
	return function( elem ) {
 
		var name = elem.nodeName.toLowerCase();
 
		return (name === "input" || name === "button") && elem.type === type;
 
	};
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for positionals
 
 * @param {Function} fn
 
 */
 
function createPositionalPseudo( fn ) {
 
	return markFunction(function( argument ) {
 
		argument = +argument;
 
		return markFunction(function( seed, matches ) {
 
			var j,
 
				matchIndexes = fn( [], seed.length, argument ),
 
				i = matchIndexes.length;
 

	
 
			// Match elements found at the specified indexes
 
			while ( i-- ) {
 
				if ( seed[ (j = matchIndexes[i]) ] ) {
 
					seed[j] = !(matches[j] = seed[j]);
 
				}
 
			}
 
		});
 
	});
 
}
 

	
 
/**
 
 * Checks a node for validity as a Sizzle context
 
 * @param {Element|Object=} context
 
 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
 
 */
 
function testContext( context ) {
 
	return context && typeof context.getElementsByTagName !== "undefined" && context;
 
}
 

	
 
// Expose support vars for convenience
 
support = Sizzle.support = {};
 

	
 
/**
 
 * Detects XML nodes
 
 * @param {Element|Object} elem An element or a document
 
 * @returns {Boolean} True iff elem is a non-HTML XML node
 
 */
 
isXML = Sizzle.isXML = function( elem ) {
 
	// documentElement is verified for cases where it doesn't yet exist
 
	// (such as loading iframes in IE - #4833)
 
	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
 
	return documentElement ? documentElement.nodeName !== "HTML" : false;
 
};
 

	
 
/**
 
 * Sets document-related variables once based on the current document
 
 * @param {Element|Object} [doc] An element or document object to use to set the document
 
 * @returns {Object} Returns the current document
 
 */
 
setDocument = Sizzle.setDocument = function( node ) {
 
	var hasCompare, parent,
 
		doc = node ? node.ownerDocument || node : preferredDoc;
 

	
 
	// Return early if doc is invalid or already selected
 
	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
 
		return document;
 
	}
 

	
 
	// Update global variables
 
	document = doc;
 
	docElem = document.documentElement;
 
	documentIsHTML = !isXML( document );
 

	
 
	// Support: IE 9-11, Edge
 
	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
 
	if ( (parent = document.defaultView) && parent.top !== parent ) {
 
		// Support: IE 11
 
		if ( parent.addEventListener ) {
 
			parent.addEventListener( "unload", unloadHandler, false );
 

	
 
		// Support: IE 9 - 10 only
 
		} else if ( parent.attachEvent ) {
 
			parent.attachEvent( "onunload", unloadHandler );
 
		}
 
	}
 

	
 
	/* Attributes
 
	---------------------------------------------------------------------- */
 

	
 
	// Support: IE<8
 
	// Verify that getAttribute really returns attributes and not properties
 
	// (excepting IE8 booleans)
 
	support.attributes = assert(function( div ) {
 
		div.className = "i";
 
		return !div.getAttribute("className");
 
	});
 

	
 
	/* getElement(s)By*
 
	---------------------------------------------------------------------- */
 

	
 
	// Check if getElementsByTagName("*") returns only elements
 
	support.getElementsByTagName = assert(function( div ) {
 
		div.appendChild( document.createComment("") );
 
		return !div.getElementsByTagName("*").length;
 
	});
 

	
 
	// Support: IE<9
 
	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
 

	
 
	// Support: IE<10
 
	// Check if getElementById returns elements by name
 
	// The broken getElementById methods don't pick up programatically-set names,
 
	// so use a roundabout getElementsByName test
 
	support.getById = assert(function( div ) {
 
		docElem.appendChild( div ).id = expando;
 
		return !document.getElementsByName || !document.getElementsByName( expando ).length;
 
	});
 

	
 
	// ID find and filter
 
	if ( support.getById ) {
 
		Expr.find["ID"] = function( id, context ) {
 
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 
				var m = context.getElementById( id );
 
				return m ? [ m ] : [];
 
			}
 
		};
 
		Expr.filter["ID"] = function( id ) {
 
			var attrId = id.replace( runescape, funescape );
 
			return function( elem ) {
 
				return elem.getAttribute("id") === attrId;
 
			};
 
		};
 
	} else {
 
		// Support: IE6/7
 
		// getElementById is not reliable as a find shortcut
 
		delete Expr.find["ID"];
 

	
 
		Expr.filter["ID"] =  function( id ) {
 
			var attrId = id.replace( runescape, funescape );
 
			return function( elem ) {
 
				var node = typeof elem.getAttributeNode !== "undefined" &&
 
					elem.getAttributeNode("id");
 
				return node && node.value === attrId;
 
			};
 
		};
 
	}
 

	
 
	// Tag
 
	Expr.find["TAG"] = support.getElementsByTagName ?
 
		function( tag, context ) {
 
			if ( typeof context.getElementsByTagName !== "undefined" ) {
 
				return context.getElementsByTagName( tag );
 

	
 
			// DocumentFragment nodes don't have gEBTN
 
			} else if ( support.qsa ) {
 
				return context.querySelectorAll( tag );
 
			}
 
		} :
 

	
 
		function( tag, context ) {
 
			var elem,
 
				tmp = [],
 
				i = 0,
 
				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
 
				results = context.getElementsByTagName( tag );
 

	
 
			// Filter out possible comments
 
			if ( tag === "*" ) {
 
				while ( (elem = results[i++]) ) {
 
					if ( elem.nodeType === 1 ) {
 
						tmp.push( elem );
 
					}
 
				}
 

	
 
				return tmp;
 
			}
 
			return results;
 
		};
 

	
 
	// Class
 
	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
 
		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 
			return context.getElementsByClassName( className );
 
		}
 
	};
 

	
 
	/* QSA/matchesSelector
 
	---------------------------------------------------------------------- */
 

	
 
	// QSA and matchesSelector support
 

	
 
	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
 
	rbuggyMatches = [];
 

	
 
	// qSa(:focus) reports false when true (Chrome 21)
 
	// We allow this because of a bug in IE8/9 that throws an error
 
	// whenever `document.activeElement` is accessed on an iframe
 
	// So, we allow :focus to pass through QSA all the time to avoid the IE error
 
	// See http://bugs.jquery.com/ticket/13378
 
	rbuggyQSA = [];
 

	
 
	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
 
		// Build QSA regex
 
		// Regex strategy adopted from Diego Perini
 
		assert(function( div ) {
 
			// Select is set to empty string on purpose
 
			// This is to test IE's treatment of not explicitly
 
			// setting a boolean content attribute,
 
			// since its presence should be enough
 
			// http://bugs.jquery.com/ticket/12359
 
			docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
 
				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
 
				"<option selected=''></option></select>";
 

	
 
			// Support: IE8, Opera 11-12.16
 
			// Nothing should be selected when empty strings follow ^= or $= or *=
 
			// The test attribute must be unknown in Opera but "safe" for WinRT
 
			// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
 
			if ( div.querySelectorAll("[msallowcapture^='']").length ) {
 
				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 
			}
 

	
 
			// Support: IE8
 
			// Boolean attributes and "value" are not treated correctly
 
			if ( !div.querySelectorAll("[selected]").length ) {
 
				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
 
			}
 

	
 
			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
 
			if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
 
				rbuggyQSA.push("~=");
 
			}
 

	
 
			// Webkit/Opera - :checked should return selected option elements
 
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 
			// IE8 throws error here and will not see later tests
 
			if ( !div.querySelectorAll(":checked").length ) {
 
				rbuggyQSA.push(":checked");
 
			}
 

	
 
			// Support: Safari 8+, iOS 8+
 
			// https://bugs.webkit.org/show_bug.cgi?id=136851
 
			// In-page `selector#id sibing-combinator selector` fails
 
			if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
 
				rbuggyQSA.push(".#.+[+~]");
 
			}
 
		});
 

	
 
		assert(function( div ) {
 
			// Support: Windows 8 Native Apps
 
			// The type and name attributes are restricted during .innerHTML assignment
 
			var input = document.createElement("input");
 
			input.setAttribute( "type", "hidden" );
 
			div.appendChild( input ).setAttribute( "name", "D" );
 

	
 
			// Support: IE8
 
			// Enforce case-sensitivity of name attribute
 
			if ( div.querySelectorAll("[name=d]").length ) {
 
				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
 
			}
 

	
 
			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
 
			// IE8 throws error here and will not see later tests
 
			if ( !div.querySelectorAll(":enabled").length ) {
 
				rbuggyQSA.push( ":enabled", ":disabled" );
 
			}
 

	
 
			// Opera 10-11 does not throw on post-comma invalid pseudos
 
			div.querySelectorAll("*,:x");
 
			rbuggyQSA.push(",.*:");
 
		});
 
	}
 

	
 
	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
 
		docElem.webkitMatchesSelector ||
 
		docElem.mozMatchesSelector ||
 
		docElem.oMatchesSelector ||
 
		docElem.msMatchesSelector) )) ) {
 

	
 
		assert(function( div ) {
 
			// Check to see if it's possible to do matchesSelector
 
			// on a disconnected node (IE 9)
 
			support.disconnectedMatch = matches.call( div, "div" );
 

	
 
			// This should fail with an exception
 
			// Gecko does not error, returns false instead
 
			matches.call( div, "[s!='']:x" );
 
			rbuggyMatches.push( "!=", pseudos );
 
		});
 
	}
 

	
 
	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
 
	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
 

	
 
	/* Contains
 
	---------------------------------------------------------------------- */
 
	hasCompare = rnative.test( docElem.compareDocumentPosition );
 

	
 
	// Element contains another
 
	// Purposefully self-exclusive
 
	// As in, an element does not contain itself
 
	contains = hasCompare || rnative.test( docElem.contains ) ?
 
		function( a, b ) {
 
			var adown = a.nodeType === 9 ? a.documentElement : a,
 
				bup = b && b.parentNode;
 
			return a === bup || !!( bup && bup.nodeType === 1 && (
 
				adown.contains ?
 
					adown.contains( bup ) :
 
					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
 
			));
 
		} :
 
		function( a, b ) {
 
			if ( b ) {
 
				while ( (b = b.parentNode) ) {
 
					if ( b === a ) {
 
						return true;
 
					}
 
				}
 
			}
 
			return false;
 
		};
 

	
 
	/* Sorting
 
	---------------------------------------------------------------------- */
 

	
 
	// Document order sorting
 
	sortOrder = hasCompare ?
 
	function( a, b ) {
 

	
 
		// Flag for duplicate removal
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
			return 0;
 
		}
 

	
 
		// Sort on method existence if only one input has compareDocumentPosition
 
		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
 
		if ( compare ) {
 
			return compare;
 
		}
 

	
 
		// Calculate position if both inputs belong to the same document
 
		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
 
			a.compareDocumentPosition( b ) :
 

	
 
			// Otherwise we know they are disconnected
 
			1;
 

	
 
		// Disconnected nodes
 
		if ( compare & 1 ||
 
			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
 

	
 
			// Choose the first element that is related to our preferred document
 
			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
 
				return -1;
 
			}
 
			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
 
				return 1;
 
			}
 

	
 
			// Maintain original order
 
			return sortInput ?
 
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
 
				0;
 
		}
 

	
 
		return compare & 4 ? -1 : 1;
 
	} :
 
	function( a, b ) {
 
		// Exit early if the nodes are identical
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
			return 0;
 
		}
 

	
 
		var cur,
 
			i = 0,
 
			aup = a.parentNode,
 
			bup = b.parentNode,
 
			ap = [ a ],
 
			bp = [ b ];
 

	
 
		// Parentless nodes are either documents or disconnected
 
		if ( !aup || !bup ) {
 
			return a === document ? -1 :
 
				b === document ? 1 :
 
				aup ? -1 :
 
				bup ? 1 :
 
				sortInput ?
 
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
 
				0;
 

	
 
		// If the nodes are siblings, we can do a quick check
 
		} else if ( aup === bup ) {
 
			return siblingCheck( a, b );
 
		}
 

	
 
		// Otherwise we need full lists of their ancestors for comparison
 
		cur = a;
 
		while ( (cur = cur.parentNode) ) {
 
			ap.unshift( cur );
 
		}
 
		cur = b;
 
		while ( (cur = cur.parentNode) ) {
 
			bp.unshift( cur );
 
		}
 

	
 
		// Walk down the tree looking for a discrepancy
 
		while ( ap[i] === bp[i] ) {
 
			i++;
 
		}
 

	
 
		return i ?
 
			// Do a sibling check if the nodes have a common ancestor
 
			siblingCheck( ap[i], bp[i] ) :
 

	
 
			// Otherwise nodes in our document sort first
 
			ap[i] === preferredDoc ? -1 :
 
			bp[i] === preferredDoc ? 1 :
 
			0;
 
	};
 

	
 
	return document;
 
};
 

	
 
Sizzle.matches = function( expr, elements ) {
 
	return Sizzle( expr, null, null, elements );
 
};
 

	
 
Sizzle.matchesSelector = function( elem, expr ) {
 
	// Set document vars if needed
 
	if ( ( elem.ownerDocument || elem ) !== document ) {
 
		setDocument( elem );
 
	}
 

	
 
	// Make sure that attribute selectors are quoted
 
	expr = expr.replace( rattributeQuotes, "='$1']" );
 

	
 
	if ( support.matchesSelector && documentIsHTML &&
 
		!compilerCache[ expr + " " ] &&
 
		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 
		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 

	
 
		try {
 
			var ret = matches.call( elem, expr );
 

	
 
			// IE 9's matchesSelector returns false on disconnected nodes
 
			if ( ret || support.disconnectedMatch ||
 
					// As well, disconnected nodes are said to be in a document
 
					// fragment in IE 9
 
					elem.document && elem.document.nodeType !== 11 ) {
 
				return ret;
 
			}
 
		} catch (e) {}
 
	}
 

	
 
	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 
};
 

	
 
Sizzle.contains = function( context, elem ) {
 
	// Set document vars if needed
 
	if ( ( context.ownerDocument || context ) !== document ) {
 
		setDocument( context );
 
	}
 
	return contains( context, elem );
 
};
 

	
 
Sizzle.attr = function( elem, name ) {
 
	// Set document vars if needed
 
	if ( ( elem.ownerDocument || elem ) !== document ) {
 
		setDocument( elem );
 
	}
 

	
 
	var fn = Expr.attrHandle[ name.toLowerCase() ],
 
		// Don't get fooled by Object.prototype properties (jQuery #13807)
 
		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
 
			fn( elem, name, !documentIsHTML ) :
 
			undefined;
 

	
 
	return val !== undefined ?
 
		val :
 
		support.attributes || !documentIsHTML ?
 
			elem.getAttribute( name ) :
 
			(val = elem.getAttributeNode(name)) && val.specified ?
 
				val.value :
 
				null;
 
};
 

	
 
Sizzle.error = function( msg ) {
 
	throw new Error( "Syntax error, unrecognized expression: " + msg );
 
};
 

	
 
/**
 
 * Document sorting and removing duplicates
 
 * @param {ArrayLike} results
 
 */
 
Sizzle.uniqueSort = function( results ) {
 
	var elem,
 
		duplicates = [],
 
		j = 0,
 
		i = 0;
 

	
 
	// Unless we *know* we can detect duplicates, assume their presence
 
	hasDuplicate = !support.detectDuplicates;
 
	sortInput = !support.sortStable && results.slice( 0 );
 
	results.sort( sortOrder );
 

	
 
	if ( hasDuplicate ) {
 
		while ( (elem = results[i++]) ) {
 
			if ( elem === results[ i ] ) {
 
				j = duplicates.push( i );
 
			}
 
		}
 
		while ( j-- ) {
 
			results.splice( duplicates[ j ], 1 );
 
		}
 
	}
 

	
 
	// Clear input after sorting to release objects
 
	// See https://github.com/jquery/sizzle/pull/225
 
	sortInput = null;
 

	
 
	return results;
 
};
 

	
 
/**
 
 * Utility function for retrieving the text value of an array of DOM nodes
 
 * @param {Array|Element} elem
 
 */
 
getText = Sizzle.getText = function( elem ) {
 
	var node,
 
		ret = "",
 
		i = 0,
 
		nodeType = elem.nodeType;
 

	
 
	if ( !nodeType ) {
 
		// If no nodeType, this is expected to be an array
 
		while ( (node = elem[i++]) ) {
 
			// Do not traverse comment nodes
 
			ret += getText( node );
 
		}
 
	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
 
		// Use textContent for elements
 
		// innerText usage removed for consistency of new lines (jQuery #11153)
 
		if ( typeof elem.textContent === "string" ) {
 
			return elem.textContent;
 
		} else {
 
			// Traverse its children
 
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 
				ret += getText( elem );
 
			}
 
		}
 
	} else if ( nodeType === 3 || nodeType === 4 ) {
 
		return elem.nodeValue;
 
	}
 
	// Do not include comment or processing instruction nodes
 

	
 
	return ret;
 
};
 

	
 
Expr = Sizzle.selectors = {
 

	
 
	// Can be adjusted by the user
 
	cacheLength: 50,
 

	
 
	createPseudo: markFunction,
 

	
 
	match: matchExpr,
 

	
 
	attrHandle: {},
 

	
 
	find: {},
 

	
 
	relative: {
 
		">": { dir: "parentNode", first: true },
 
		" ": { dir: "parentNode" },
 
		"+": { dir: "previousSibling", first: true },
 
		"~": { dir: "previousSibling" }
 
	},
 

	
 
	preFilter: {
 
		"ATTR": function( match ) {
 
			match[1] = match[1].replace( runescape, funescape );
 

	
 
			// Move the given value to match[3] whether quoted or unquoted
 
			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
 

	
 
			if ( match[2] === "~=" ) {
 
				match[3] = " " + match[3] + " ";
 
			}
 

	
 
			return match.slice( 0, 4 );
 
		},
 

	
 
		"CHILD": function( match ) {
 
			/* matches from matchExpr["CHILD"]
 
				1 type (only|nth|...)
 
				2 what (child|of-type)
 
				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
 
				4 xn-component of xn+y argument ([+-]?\d*n|)
 
				5 sign of xn-component
 
				6 x of xn-component
 
				7 sign of y-component
 
				8 y of y-component
 
			*/
 
			match[1] = match[1].toLowerCase();
 

	
 
			if ( match[1].slice( 0, 3 ) === "nth" ) {
 
				// nth-* requires argument
 
				if ( !match[3] ) {
 
					Sizzle.error( match[0] );
 
				}
 

	
 
				// numeric x and y parameters for Expr.filter.CHILD
 
				// remember that false/true cast respectively to 0/1
 
				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
 
				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
 

	
 
			// other types prohibit arguments
 
			} else if ( match[3] ) {
 
				Sizzle.error( match[0] );
 
			}
 

	
 
			return match;
 
		},
 

	
 
		"PSEUDO": function( match ) {
 
			var excess,
 
				unquoted = !match[6] && match[2];
 

	
 
			if ( matchExpr["CHILD"].test( match[0] ) ) {
 
				return null;
 
			}
 

	
 
			// Accept quoted arguments as-is
 
			if ( match[3] ) {
 
				match[2] = match[4] || match[5] || "";
 

	
 
			// Strip excess characters from unquoted arguments
 
			} else if ( unquoted && rpseudo.test( unquoted ) &&
 
				// Get excess from tokenize (recursively)
 
				(excess = tokenize( unquoted, true )) &&
 
				// advance to the next closing parenthesis
 
				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
 

	
 
				// excess is a negative index
 
				match[0] = match[0].slice( 0, excess );
 
				match[2] = unquoted.slice( 0, excess );
 
			}
 

	
 
			// Return only captures needed by the pseudo filter method (type and argument)
 
			return match.slice( 0, 3 );
 
		}
 
	},
 

	
 
	filter: {
 

	
 
		"TAG": function( nodeNameSelector ) {
 
			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 
			return nodeNameSelector === "*" ?
 
				function() { return true; } :
 
				function( elem ) {
 
					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 
				};
 
		},
 

	
 
		"CLASS": function( className ) {
 
			var pattern = classCache[ className + " " ];
 

	
 
			return pattern ||
 
				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
 
				classCache( className, function( elem ) {
 
					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
 
				});
 
		},
 

	
 
		"ATTR": function( name, operator, check ) {
 
			return function( elem ) {
 
				var result = Sizzle.attr( elem, name );
 

	
 
				if ( result == null ) {
 
					return operator === "!=";
 
				}
 
				if ( !operator ) {
 
					return true;
 
				}
 

	
 
				result += "";
 

	
 
				return operator === "=" ? result === check :
 
					operator === "!=" ? result !== check :
 
					operator === "^=" ? check && result.indexOf( check ) === 0 :
 
					operator === "*=" ? check && result.indexOf( check ) > -1 :
 
					operator === "$=" ? check && result.slice( -check.length ) === check :
 
					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 
					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 
					false;
 
			};
 
		},
 

	
 
		"CHILD": function( type, what, argument, first, last ) {
 
			var simple = type.slice( 0, 3 ) !== "nth",
 
				forward = type.slice( -4 ) !== "last",
 
				ofType = what === "of-type";
 

	
 
			return first === 1 && last === 0 ?
 

	
 
				// Shortcut for :nth-*(n)
 
				function( elem ) {
 
					return !!elem.parentNode;
 
				} :
 

	
 
				function( elem, context, xml ) {
 
					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 
						dir = simple !== forward ? "nextSibling" : "previousSibling",
 
						parent = elem.parentNode,
 
						name = ofType && elem.nodeName.toLowerCase(),
 
						useCache = !xml && !ofType,
 
						diff = false;
 

	
 
					if ( parent ) {
 

	
 
						// :(first|last|only)-(child|of-type)
 
						if ( simple ) {
 
							while ( dir ) {
 
								node = elem;
 
								while ( (node = node[ dir ]) ) {
 
									if ( ofType ?
 
										node.nodeName.toLowerCase() === name :
 
										node.nodeType === 1 ) {
 

	
 
										return false;
 
									}
 
								}
 
								// Reverse direction for :only-* (if we haven't yet done so)
 
								start = dir = type === "only" && !start && "nextSibling";
 
							}
 
							return true;
 
						}
 

	
 
						start = [ forward ? parent.firstChild : parent.lastChild ];
 

	
 
						// non-xml :nth-child(...) stores cache data on `parent`
 
						if ( forward && useCache ) {
 

	
 
							// Seek `elem` from a previously-cached index
 

	
 
							// ...in a gzip-friendly way
 
							node = parent;
 
							outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
							// Support: IE <9 only
 
							// Defend against cloned attroperties (jQuery gh-1709)
 
							uniqueCache = outerCache[ node.uniqueID ] ||
 
								(outerCache[ node.uniqueID ] = {});
 

	
 
							cache = uniqueCache[ type ] || [];
 
							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 
							diff = nodeIndex && cache[ 2 ];
 
							node = nodeIndex && parent.childNodes[ nodeIndex ];
 

	
 
							while ( (node = ++nodeIndex && node && node[ dir ] ||
 

	
 
								// Fallback to seeking `elem` from the start
 
								(diff = nodeIndex = 0) || start.pop()) ) {
 

	
 
								// When found, cache indexes on `parent` and break
 
								if ( node.nodeType === 1 && ++diff && node === elem ) {
 
									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
 
									break;
 
								}
 
							}
 

	
 
						} else {
 
							// Use previously-cached element index if available
 
							if ( useCache ) {
 
								// ...in a gzip-friendly way
 
								node = elem;
 
								outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
								// Support: IE <9 only
 
								// Defend against cloned attroperties (jQuery gh-1709)
 
								uniqueCache = outerCache[ node.uniqueID ] ||
 
									(outerCache[ node.uniqueID ] = {});
 

	
 
								cache = uniqueCache[ type ] || [];
 
								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 
								diff = nodeIndex;
 
							}
 

	
 
							// xml :nth-child(...)
 
							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
 
							if ( diff === false ) {
 
								// Use the same loop as above to seek `elem` from the start
 
								while ( (node = ++nodeIndex && node && node[ dir ] ||
 
									(diff = nodeIndex = 0) || start.pop()) ) {
 

	
 
									if ( ( ofType ?
 
										node.nodeName.toLowerCase() === name :
 
										node.nodeType === 1 ) &&
 
										++diff ) {
 

	
 
										// Cache the index of each encountered element
 
										if ( useCache ) {
 
											outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
											// Support: IE <9 only
 
											// Defend against cloned attroperties (jQuery gh-1709)
 
											uniqueCache = outerCache[ node.uniqueID ] ||
 
												(outerCache[ node.uniqueID ] = {});
 

	
 
											uniqueCache[ type ] = [ dirruns, diff ];
 
										}
 

	
 
										if ( node === elem ) {
 
											break;
 
										}
 
									}
 
								}
 
							}
 
						}
 

	
 
						// Incorporate the offset, then check against cycle size
 
						diff -= last;
 
						return diff === first || ( diff % first === 0 && diff / first >= 0 );
 
					}
 
				};
 
		},
 

	
 
		"PSEUDO": function( pseudo, argument ) {
 
			// pseudo-class names are case-insensitive
 
			// http://www.w3.org/TR/selectors/#pseudo-classes
 
			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
 
			// Remember that setFilters inherits from pseudos
 
			var args,
 
				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
 
					Sizzle.error( "unsupported pseudo: " + pseudo );
 

	
 
			// The user may use createPseudo to indicate that
 
			// arguments are needed to create the filter function
 
			// just as Sizzle does
 
			if ( fn[ expando ] ) {
 
				return fn( argument );
 
			}
 

	
 
			// But maintain support for old signatures
 
			if ( fn.length > 1 ) {
 
				args = [ pseudo, pseudo, "", argument ];
 
				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
 
					markFunction(function( seed, matches ) {
 
						var idx,
 
							matched = fn( seed, argument ),
 
							i = matched.length;
 
						while ( i-- ) {
 
							idx = indexOf( seed, matched[i] );
 
							seed[ idx ] = !( matches[ idx ] = matched[i] );
 
						}
 
					}) :
 
					function( elem ) {
 
						return fn( elem, 0, args );
 
					};
 
			}
 

	
 
			return fn;
 
		}
 
	},
 

	
 
	pseudos: {
 
		// Potentially complex pseudos
 
		"not": markFunction(function( selector ) {
 
			// Trim the selector passed to compile
 
			// to avoid treating leading and trailing
 
			// spaces as combinators
 
			var input = [],
 
				results = [],
 
				matcher = compile( selector.replace( rtrim, "$1" ) );
 

	
 
			return matcher[ expando ] ?
 
				markFunction(function( seed, matches, context, xml ) {
 
					var elem,
 
						unmatched = matcher( seed, null, xml, [] ),
 
						i = seed.length;
 

	
 
					// Match elements unmatched by `matcher`
 
					while ( i-- ) {
 
						if ( (elem = unmatched[i]) ) {
 
							seed[i] = !(matches[i] = elem);
 
						}
 
					}
 
				}) :
 
				function( elem, context, xml ) {
 
					input[0] = elem;
 
					matcher( input, null, xml, results );
 
					// Don't keep the element (issue #299)
 
					input[0] = null;
 
					return !results.pop();
 
				};
 
		}),
 

	
 
		"has": markFunction(function( selector ) {
 
			return function( elem ) {
 
				return Sizzle( selector, elem ).length > 0;
 
			};
 
		}),
 

	
 
		"contains": markFunction(function( text ) {
 
			text = text.replace( runescape, funescape );
 
			return function( elem ) {
 
				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
 
			};
 
		}),
 

	
 
		// "Whether an element is represented by a :lang() selector
 
		// is based solely on the element's language value
 
		// being equal to the identifier C,
 
		// or beginning with the identifier C immediately followed by "-".
 
		// The matching of C against the element's language value is performed case-insensitively.
 
		// The identifier C does not have to be a valid language name."
 
		// http://www.w3.org/TR/selectors/#lang-pseudo
 
		"lang": markFunction( function( lang ) {
 
			// lang value must be a valid identifier
 
			if ( !ridentifier.test(lang || "") ) {
 
				Sizzle.error( "unsupported lang: " + lang );
 
			}
 
			lang = lang.replace( runescape, funescape ).toLowerCase();
 
			return function( elem ) {
 
				var elemLang;
 
				do {
 
					if ( (elemLang = documentIsHTML ?
 
						elem.lang :
 
						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
 

	
 
						elemLang = elemLang.toLowerCase();
 
						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
 
					}
 
				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
 
				return false;
 
			};
 
		}),
 

	
 
		// Miscellaneous
 
		"target": function( elem ) {
 
			var hash = window.location && window.location.hash;
 
			return hash && hash.slice( 1 ) === elem.id;
 
		},
 

	
 
		"root": function( elem ) {
 
			return elem === docElem;
 
		},
 

	
 
		"focus": function( elem ) {
 
			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
 
		},
 

	
 
		// Boolean properties
 
		"enabled": function( elem ) {
 
			return elem.disabled === false;
 
		},
 

	
 
		"disabled": function( elem ) {
 
			return elem.disabled === true;
 
		},
 

	
 
		"checked": function( elem ) {
 
			// In CSS3, :checked should return both checked and selected elements
 
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 
			var nodeName = elem.nodeName.toLowerCase();
 
			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
 
		},
 

	
 
		"selected": function( elem ) {
 
			// Accessing this property makes selected-by-default
 
			// options in Safari work properly
 
			if ( elem.parentNode ) {
 
				elem.parentNode.selectedIndex;
 
			}
 

	
 
			return elem.selected === true;
 
		},
 

	
 
		// Contents
 
		"empty": function( elem ) {
 
			// http://www.w3.org/TR/selectors/#empty-pseudo
 
			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
 
			//   but not by others (comment: 8; processing instruction: 7; etc.)
 
			// nodeType < 6 works because attributes (2) do not appear as children
 
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 
				if ( elem.nodeType < 6 ) {
 
					return false;
 
				}
 
			}
 
			return true;
 
		},
 

	
 
		"parent": function( elem ) {
 
			return !Expr.pseudos["empty"]( elem );
 
		},
 

	
 
		// Element/input types
 
		"header": function( elem ) {
 
			return rheader.test( elem.nodeName );
 
		},
 

	
 
		"input": function( elem ) {
 
			return rinputs.test( elem.nodeName );
 
		},
 

	
 
		"button": function( elem ) {
 
			var name = elem.nodeName.toLowerCase();
 
			return name === "input" && elem.type === "button" || name === "button";
 
		},
 

	
 
		"text": function( elem ) {
 
			var attr;
 
			return elem.nodeName.toLowerCase() === "input" &&
 
				elem.type === "text" &&
 

	
 
				// Support: IE<8
 
				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
 
				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
 
		},
 

	
 
		// Position-in-collection
 
		"first": createPositionalPseudo(function() {
 
			return [ 0 ];
 
		}),
 

	
 
		"last": createPositionalPseudo(function( matchIndexes, length ) {
 
			return [ length - 1 ];
 
		}),
 

	
 
		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			return [ argument < 0 ? argument + length : argument ];
 
		}),
 

	
 
		"even": createPositionalPseudo(function( matchIndexes, length ) {
 
			var i = 0;
 
			for ( ; i < length; i += 2 ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"odd": createPositionalPseudo(function( matchIndexes, length ) {
 
			var i = 1;
 
			for ( ; i < length; i += 2 ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			var i = argument < 0 ? argument + length : argument;
 
			for ( ; --i >= 0; ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			var i = argument < 0 ? argument + length : argument;
 
			for ( ; ++i < length; ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		})
 
	}
 
};
 

	
 
Expr.pseudos["nth"] = Expr.pseudos["eq"];
 

	
 
// Add button/input type pseudos
 
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
 
	Expr.pseudos[ i ] = createInputPseudo( i );
 
}
 
for ( i in { submit: true, reset: true } ) {
 
	Expr.pseudos[ i ] = createButtonPseudo( i );
 
}
 

	
 
// Easy API for creating new setFilters
 
function setFilters() {}
 
setFilters.prototype = Expr.filters = Expr.pseudos;
 
Expr.setFilters = new setFilters();
 

	
 
tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 
	var matched, match, tokens, type,
 
		soFar, groups, preFilters,
 
		cached = tokenCache[ selector + " " ];
 

	
 
	if ( cached ) {
 
		return parseOnly ? 0 : cached.slice( 0 );
 
	}
 

	
 
	soFar = selector;
 
	groups = [];
 
	preFilters = Expr.preFilter;
 

	
 
	while ( soFar ) {
 

	
 
		// Comma and first run
 
		if ( !matched || (match = rcomma.exec( soFar )) ) {
 
			if ( match ) {
 
				// Don't consume trailing commas as valid
 
				soFar = soFar.slice( match[0].length ) || soFar;
 
			}
 
			groups.push( (tokens = []) );
 
		}
 

	
 
		matched = false;
 

	
 
		// Combinators
 
		if ( (match = rcombinators.exec( soFar )) ) {
 
			matched = match.shift();
 
			tokens.push({
 
				value: matched,
 
				// Cast descendant combinators to space
 
				type: match[0].replace( rtrim, " " )
 
			});
 
			soFar = soFar.slice( matched.length );
 
		}
 

	
 
		// Filters
 
		for ( type in Expr.filter ) {
 
			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
 
				(match = preFilters[ type ]( match ))) ) {
 
				matched = match.shift();
 
				tokens.push({
 
					value: matched,
 
					type: type,
 
					matches: match
 
				});
 
				soFar = soFar.slice( matched.length );
 
			}
 
		}
 

	
 
		if ( !matched ) {
 
			break;
 
		}
 
	}
 

	
 
	// Return the length of the invalid excess
 
	// if we're just parsing
 
	// Otherwise, throw an error or return tokens
 
	return parseOnly ?
 
		soFar.length :
 
		soFar ?
 
			Sizzle.error( selector ) :
 
			// Cache the tokens
 
			tokenCache( selector, groups ).slice( 0 );
 
};
 

	
 
function toSelector( tokens ) {
 
	var i = 0,
 
		len = tokens.length,
 
		selector = "";
 
	for ( ; i < len; i++ ) {
 
		selector += tokens[i].value;
 
	}
 
	return selector;
 
}
 

	
 
function addCombinator( matcher, combinator, base ) {
 
	var dir = combinator.dir,
 
		checkNonElements = base && dir === "parentNode",
 
		doneName = done++;
 

	
 
	return combinator.first ?
 
		// Check against closest ancestor/preceding element
 
		function( elem, context, xml ) {
 
			while ( (elem = elem[ dir ]) ) {
 
				if ( elem.nodeType === 1 || checkNonElements ) {
 
					return matcher( elem, context, xml );
 
				}
 
			}
 
		} :
 

	
 
		// Check against all ancestor/preceding elements
 
		function( elem, context, xml ) {
 
			var oldCache, uniqueCache, outerCache,
 
				newCache = [ dirruns, doneName ];
 

	
 
			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 
			if ( xml ) {
 
				while ( (elem = elem[ dir ]) ) {
 
					if ( elem.nodeType === 1 || checkNonElements ) {
 
						if ( matcher( elem, context, xml ) ) {
 
							return true;
 
						}
 
					}
 
				}
 
			} else {
 
				while ( (elem = elem[ dir ]) ) {
 
					if ( elem.nodeType === 1 || checkNonElements ) {
 
						outerCache = elem[ expando ] || (elem[ expando ] = {});
 

	
 
						// Support: IE <9 only
 
						// Defend against cloned attroperties (jQuery gh-1709)
 
						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
 

	
 
						if ( (oldCache = uniqueCache[ dir ]) &&
 
							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
 

	
 
							// Assign to newCache so results back-propagate to previous elements
 
							return (newCache[ 2 ] = oldCache[ 2 ]);
 
						} else {
 
							// Reuse newcache so results back-propagate to previous elements
 
							uniqueCache[ dir ] = newCache;
 

	
 
							// A match means we're done; a fail means we have to keep checking
 
							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
 
								return true;
 
							}
 
						}
 
					}
 
				}
 
			}
 
		};
 
}
 

	
 
function elementMatcher( matchers ) {
 
	return matchers.length > 1 ?
 
		function( elem, context, xml ) {
 
			var i = matchers.length;
 
			while ( i-- ) {
 
				if ( !matchers[i]( elem, context, xml ) ) {
 
					return false;
 
				}
 
			}
 
			return true;
 
		} :
 
		matchers[0];
 
}
 

	
 
function multipleContexts( selector, contexts, results ) {
 
	var i = 0,
 
		len = contexts.length;
 
	for ( ; i < len; i++ ) {
 
		Sizzle( selector, contexts[i], results );
 
	}
 
	return results;
 
}
 

	
 
function condense( unmatched, map, filter, context, xml ) {
 
	var elem,
 
		newUnmatched = [],
 
		i = 0,
 
		len = unmatched.length,
 
		mapped = map != null;
 

	
 
	for ( ; i < len; i++ ) {
 
		if ( (elem = unmatched[i]) ) {
 
			if ( !filter || filter( elem, context, xml ) ) {
 
				newUnmatched.push( elem );
 
				if ( mapped ) {
 
					map.push( i );
 
				}
 
			}
 
		}
 
	}
 

	
 
	return newUnmatched;
 
}
 

	
 
function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
 
	if ( postFilter && !postFilter[ expando ] ) {
 
		postFilter = setMatcher( postFilter );
 
	}
 
	if ( postFinder && !postFinder[ expando ] ) {
 
		postFinder = setMatcher( postFinder, postSelector );
 
	}
 
	return markFunction(function( seed, results, context, xml ) {
 
		var temp, i, elem,
 
			preMap = [],
 
			postMap = [],
 
			preexisting = results.length,
 

	
 
			// Get initial elements from seed or context
 
			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
 

	
 
			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 
			matcherIn = preFilter && ( seed || !selector ) ?
 
				condense( elems, preMap, preFilter, context, xml ) :
 
				elems,
 

	
 
			matcherOut = matcher ?
 
				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 
				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 

	
 
					// ...intermediate processing is necessary
 
					[] :
 

	
 
					// ...otherwise use results directly
 
					results :
 
				matcherIn;
 

	
 
		// Find primary matches
 
		if ( matcher ) {
 
			matcher( matcherIn, matcherOut, context, xml );
 
		}
 

	
 
		// Apply postFilter
 
		if ( postFilter ) {
 
			temp = condense( matcherOut, postMap );
 
			postFilter( temp, [], context, xml );
 

	
 
			// Un-match failing elements by moving them back to matcherIn
 
			i = temp.length;
 
			while ( i-- ) {
 
				if ( (elem = temp[i]) ) {
 
					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
 
				}
 
			}
 
		}
 

	
 
		if ( seed ) {
 
			if ( postFinder || preFilter ) {
 
				if ( postFinder ) {
 
					// Get the final matcherOut by condensing this intermediate into postFinder contexts
 
					temp = [];
 
					i = matcherOut.length;
 
					while ( i-- ) {
 
						if ( (elem = matcherOut[i]) ) {
 
							// Restore matcherIn since elem is not yet a final match
 
							temp.push( (matcherIn[i] = elem) );
 
						}
 
					}
 
					postFinder( null, (matcherOut = []), temp, xml );
 
				}
 

	
 
				// Move matched elements from seed to results to keep them synchronized
 
				i = matcherOut.length;
 
				while ( i-- ) {
 
					if ( (elem = matcherOut[i]) &&
 
						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
 

	
 
						seed[temp] = !(results[temp] = elem);
 
					}
 
				}
 
			}
 

	
 
		// Add elements to results, through postFinder if defined
 
		} else {
 
			matcherOut = condense(
 
				matcherOut === results ?
 
					matcherOut.splice( preexisting, matcherOut.length ) :
 
					matcherOut
 
			);
 
			if ( postFinder ) {
 
				postFinder( null, results, matcherOut, xml );
 
			} else {
 
				push.apply( results, matcherOut );
 
			}
 
		}
 
	});
 
}
 

	
 
function matcherFromTokens( tokens ) {
 
	var checkContext, matcher, j,
 
		len = tokens.length,
 
		leadingRelative = Expr.relative[ tokens[0].type ],
 
		implicitRelative = leadingRelative || Expr.relative[" "],
 
		i = leadingRelative ? 1 : 0,
 

	
 
		// The foundational matcher ensures that elements are reachable from top-level context(s)
 
		matchContext = addCombinator( function( elem ) {
 
			return elem === checkContext;
 
		}, implicitRelative, true ),
 
		matchAnyContext = addCombinator( function( elem ) {
 
			return indexOf( checkContext, elem ) > -1;
 
		}, implicitRelative, true ),
 
		matchers = [ function( elem, context, xml ) {
 
			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
 
				(checkContext = context).nodeType ?
 
					matchContext( elem, context, xml ) :
 
					matchAnyContext( elem, context, xml ) );
 
			// Avoid hanging onto element (issue #299)
 
			checkContext = null;
 
			return ret;
 
		} ];
 

	
 
	for ( ; i < len; i++ ) {
 
		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
 
			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
 
		} else {
 
			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
 

	
 
			// Return special upon seeing a positional matcher
 
			if ( matcher[ expando ] ) {
 
				// Find the next relative operator (if any) for proper handling
 
				j = ++i;
 
				for ( ; j < len; j++ ) {
 
					if ( Expr.relative[ tokens[j].type ] ) {
 
						break;
 
					}
 
				}
 
				return setMatcher(
 
					i > 1 && elementMatcher( matchers ),
 
					i > 1 && toSelector(
 
						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
 
						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
 
					).replace( rtrim, "$1" ),
 
					matcher,
 
					i < j && matcherFromTokens( tokens.slice( i, j ) ),
 
					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
 
					j < len && toSelector( tokens )
 
				);
 
			}
 
			matchers.push( matcher );
 
		}
 
	}
 

	
 
	return elementMatcher( matchers );
 
}
 

	
 
function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
	var bySet = setMatchers.length > 0,
 
		byElement = elementMatchers.length > 0,
 
		superMatcher = function( seed, context, xml, results, outermost ) {
 
			var elem, j, matcher,
 
				matchedCount = 0,
 
				i = "0",
 
				unmatched = seed && [],
 
				setMatched = [],
 
				contextBackup = outermostContext,
 
				// We must always have either seed elements or outermost context
 
				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
 
				// Use integer dirruns iff this is the outermost matcher
 
				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
 
				len = elems.length;
 

	
 
			if ( outermost ) {
 
				outermostContext = context === document || context || outermost;
 
			}
 

	
 
			// Add elements passing elementMatchers directly to results
 
			// Support: IE<9, Safari
 
			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
 
			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
 
				if ( byElement && elem ) {
 
					j = 0;
 
					if ( !context && elem.ownerDocument !== document ) {
 
						setDocument( elem );
 
						xml = !documentIsHTML;
 
					}
 
					while ( (matcher = elementMatchers[j++]) ) {
 
						if ( matcher( elem, context || document, xml) ) {
 
							results.push( elem );
 
							break;
 
						}
 
					}
 
					if ( outermost ) {
 
						dirruns = dirrunsUnique;
 
					}
 
				}
 

	
 
				// Track unmatched elements for set filters
 
				if ( bySet ) {
 
					// They will have gone through all possible matchers
 
					if ( (elem = !matcher && elem) ) {
 
						matchedCount--;
 
					}
 

	
 
					// Lengthen the array for every element, matched or not
 
					if ( seed ) {
 
						unmatched.push( elem );
 
					}
 
				}
 
			}
 

	
 
			// `i` is now the count of elements visited above, and adding it to `matchedCount`
 
			// makes the latter nonnegative.
 
			matchedCount += i;
 

	
 
			// Apply set filters to unmatched elements
 
			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
 
			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
 
			// no element matchers and no seed.
 
			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
 
			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
 
			// numerically zero.
 
			if ( bySet && i !== matchedCount ) {
 
				j = 0;
 
				while ( (matcher = setMatchers[j++]) ) {
 
					matcher( unmatched, setMatched, context, xml );
 
				}
 

	
 
				if ( seed ) {
 
					// Reintegrate element matches to eliminate the need for sorting
 
					if ( matchedCount > 0 ) {
 
						while ( i-- ) {
 
							if ( !(unmatched[i] || setMatched[i]) ) {
 
								setMatched[i] = pop.call( results );
 
							}
 
						}
 
					}
 

	
 
					// Discard index placeholder values to get only actual matches
 
					setMatched = condense( setMatched );
 
				}
 

	
 
				// Add matches to results
 
				push.apply( results, setMatched );
 

	
 
				// Seedless set matches succeeding multiple successful matchers stipulate sorting
 
				if ( outermost && !seed && setMatched.length > 0 &&
 
					( matchedCount + setMatchers.length ) > 1 ) {
 

	
 
					Sizzle.uniqueSort( results );
 
				}
 
			}
 

	
 
			// Override manipulation of globals by nested matchers
 
			if ( outermost ) {
 
				dirruns = dirrunsUnique;
 
				outermostContext = contextBackup;
 
			}
 

	
 
			return unmatched;
 
		};
 

	
 
	return bySet ?
 
		markFunction( superMatcher ) :
 
		superMatcher;
 
}
 

	
 
compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 
	var i,
 
		setMatchers = [],
 
		elementMatchers = [],
 
		cached = compilerCache[ selector + " " ];
 

	
 
	if ( !cached ) {
 
		// Generate a function of recursive functions that can be used to check each element
 
		if ( !match ) {
 
			match = tokenize( selector );
 
		}
 
		i = match.length;
 
		while ( i-- ) {
 
			cached = matcherFromTokens( match[i] );
 
			if ( cached[ expando ] ) {
 
				setMatchers.push( cached );
 
			} else {
 
				elementMatchers.push( cached );
 
			}
 
		}
 

	
 
		// Cache the compiled function
 
		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
 

	
 
		// Save selector and tokenization
 
		cached.selector = selector;
 
	}
 
	return cached;
 
};
 

	
 
/**
 
 * A low-level selection function that works with Sizzle's compiled
 
 *  selector functions
 
 * @param {String|Function} selector A selector or a pre-compiled
 
 *  selector function built with Sizzle.compile
 
 * @param {Element} context
 
 * @param {Array} [results]
 
 * @param {Array} [seed] A set of elements to match against
 
 */
 
select = Sizzle.select = function( selector, context, results, seed ) {
 
	var i, tokens, token, type, find,
 
		compiled = typeof selector === "function" && selector,
 
		match = !seed && tokenize( (selector = compiled.selector || selector) );
 

	
 
	results = results || [];
 

	
 
	// Try to minimize operations if there is only one selector in the list and no seed
 
	// (the latter of which guarantees us context)
 
	if ( match.length === 1 ) {
 

	
 
		// Reduce context if the leading compound selector is an ID
 
		tokens = match[0] = match[0].slice( 0 );
 
		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
 
				support.getById && context.nodeType === 9 && documentIsHTML &&
 
				Expr.relative[ tokens[1].type ] ) {
 

	
 
			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
 
			if ( !context ) {
 
				return results;
 

	
 
			// Precompiled matchers will still verify ancestry, so step up a level
 
			} else if ( compiled ) {
 
				context = context.parentNode;
 
			}
 

	
 
			selector = selector.slice( tokens.shift().value.length );
 
		}
 

	
 
		// Fetch a seed set for right-to-left matching
 
		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
 
		while ( i-- ) {
 
			token = tokens[i];
 

	
 
			// Abort if we hit a combinator
 
			if ( Expr.relative[ (type = token.type) ] ) {
 
				break;
 
			}
 
			if ( (find = Expr.find[ type ]) ) {
 
				// Search, expanding context for leading sibling combinators
 
				if ( (seed = find(
 
					token.matches[0].replace( runescape, funescape ),
 
					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
 
				)) ) {
 

	
 
					// If seed is empty or no tokens remain, we can return early
 
					tokens.splice( i, 1 );
 
					selector = seed.length && toSelector( tokens );
 
					if ( !selector ) {
 
						push.apply( results, seed );
 
						return results;
 
					}
 

	
 
					break;
 
				}
 
			}
 
		}
 
	}
 

	
 
	// Compile and execute a filtering function if one is not provided
 
	// Provide `match` to avoid retokenization if we modified the selector above
 
	( compiled || compile( selector, match ) )(
 
		seed,
 
		context,
 
		!documentIsHTML,
 
		results,
 
		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
 
	);
 
	return results;
 
};
 

	
 
// One-time assignments
 

	
 
// Sort stability
 
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
 

	
 
// Support: Chrome 14-35+
 
// Always assume duplicates if they aren't passed to the comparison function
 
support.detectDuplicates = !!hasDuplicate;
 

	
 
// Initialize against the default document
 
setDocument();
 

	
 
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
 
// Detached nodes confoundingly follow *each other*
 
support.sortDetached = assert(function( div1 ) {
 
	// Should return 1, but returns 4 (following)
 
	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
 
});
 

	
 
// Support: IE<8
 
// Prevent attribute/property "interpolation"
 
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
 
if ( !assert(function( div ) {
 
	div.innerHTML = "<a href='#'></a>";
 
	return div.firstChild.getAttribute("href") === "#" ;
 
}) ) {
 
	addHandle( "type|href|height|width", function( elem, name, isXML ) {
 
		if ( !isXML ) {
 
			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
 
		}
 
	});
 
}
 

	
 
// Support: IE<9
 
// Use defaultValue in place of getAttribute("value")
 
if ( !support.attributes || !assert(function( div ) {
 
	div.innerHTML = "<input/>";
 
	div.firstChild.setAttribute( "value", "" );
 
	return div.firstChild.getAttribute( "value" ) === "";
 
}) ) {
 
	addHandle( "value", function( elem, name, isXML ) {
 
		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
 
			return elem.defaultValue;
 
		}
 
	});
 
}
 

	
 
// Support: IE<9
 
// Use getAttributeNode to fetch booleans when getAttribute lies
 
if ( !assert(function( div ) {
 
	return div.getAttribute("disabled") == null;
 
}) ) {
 
	addHandle( booleans, function( elem, name, isXML ) {
 
		var val;
 
		if ( !isXML ) {
 
			return elem[ name ] === true ? name.toLowerCase() :
 
					(val = elem.getAttributeNode( name )) && val.specified ?
 
					val.value :
 
				null;
 
		}
 
	});
 
}
 

	
 
return Sizzle;
 

	
 
})( window );
 

	
 

	
 

	
 
jQuery.find = Sizzle;
 
jQuery.expr = Sizzle.selectors;
 
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
 
jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
 
jQuery.text = Sizzle.getText;
 
jQuery.isXMLDoc = Sizzle.isXML;
 
jQuery.contains = Sizzle.contains;
 

	
 

	
 

	
 
var dir = function( elem, dir, until ) {
 
	var matched = [],
 
		truncate = until !== undefined;
 

	
 
	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
 
		if ( elem.nodeType === 1 ) {
 
			if ( truncate && jQuery( elem ).is( until ) ) {
 
				break;
 
			}
 
			matched.push( elem );
 
		}
 
	}
 
	return matched;
 
};
 

	
 

	
 
var siblings = function( n, elem ) {
 
	var matched = [];
 

	
 
	for ( ; n; n = n.nextSibling ) {
 
		if ( n.nodeType === 1 && n !== elem ) {
 
			matched.push( n );
 
		}
 
	}
 

	
 
	return matched;
 
};
 

	
 

	
 
var rneedsContext = jQuery.expr.match.needsContext;
 

	
 
var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
 

	
 

	
 

	
 
var risSimple = /^.[^:#\[\.,]*$/;
 

	
 
// Implement the identical functionality for filter and not
 
function winnow( elements, qualifier, not ) {
 
	if ( jQuery.isFunction( qualifier ) ) {
 
		return jQuery.grep( elements, function( elem, i ) {
 
			/* jshint -W018 */
 
			return !!qualifier.call( elem, i, elem ) !== not;
 
		} );
 

	
 
	}
 

	
 
	if ( qualifier.nodeType ) {
 
		return jQuery.grep( elements, function( elem ) {
 
			return ( elem === qualifier ) !== not;
 
		} );
 

	
 
	}
 

	
 
	if ( typeof qualifier === "string" ) {
 
		if ( risSimple.test( qualifier ) ) {
 
			return jQuery.filter( qualifier, elements, not );
 
		}
 

	
 
		qualifier = jQuery.filter( qualifier, elements );
 
	}
 

	
 
	return jQuery.grep( elements, function( elem ) {
 
		return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
 
	} );
 
}
 

	
 
jQuery.filter = function( expr, elems, not ) {
 
	var elem = elems[ 0 ];
 

	
 
	if ( not ) {
 
		expr = ":not(" + expr + ")";
 
	}
 

	
 
	return elems.length === 1 && elem.nodeType === 1 ?
 
		jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
 
		jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
 
			return elem.nodeType === 1;
 
		} ) );
 
};
 

	
 
jQuery.fn.extend( {
 
	find: function( selector ) {
 
		var i,
 
			len = this.length,
 
			ret = [],
 
			self = this;
 

	
 
		if ( typeof selector !== "string" ) {
 
			return this.pushStack( jQuery( selector ).filter( function() {
 
				for ( i = 0; i < len; i++ ) {
 
					if ( jQuery.contains( self[ i ], this ) ) {
 
						return true;
 
					}
 
				}
 
			} ) );
 
		}
 

	
 
		for ( i = 0; i < len; i++ ) {
 
			jQuery.find( selector, self[ i ], ret );
 
		}
 

	
 
		// Needed because $( selector, context ) becomes $( context ).find( selector )
 
		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
 
		ret.selector = this.selector ? this.selector + " " + selector : selector;
 
		return ret;
 
	},
 
	filter: function( selector ) {
 
		return this.pushStack( winnow( this, selector || [], false ) );
 
	},
 
	not: function( selector ) {
 
		return this.pushStack( winnow( this, selector || [], true ) );
 
	},
 
	is: function( selector ) {
 
		return !!winnow(
 
			this,
 

	
 
			// If this is a positional/relative selector, check membership in the returned set
 
			// so $("p:first").is("p:last") won't return true for a doc with two "p".
 
			typeof selector === "string" && rneedsContext.test( selector ) ?
 
				jQuery( selector ) :
 
				selector || [],
 
			false
 
		).length;
 
	}
 
} );
 

	
 

	
 
// Initialize a jQuery object
 

	
 

	
 
// A central reference to the root jQuery(document)
 
var rootjQuery,
 

	
 
	// A simple way to check for HTML strings
 
	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
 
	// Strict HTML recognition (#11290: must start with <)
 
	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
 

	
 
	init = jQuery.fn.init = function( selector, context, root ) {
 
		var match, elem;
 

	
 
		// HANDLE: $(""), $(null), $(undefined), $(false)
 
		if ( !selector ) {
 
			return this;
 
		}
 

	
 
		// Method init() accepts an alternate rootjQuery
 
		// so migrate can support jQuery.sub (gh-2101)
 
		root = root || rootjQuery;
 

	
 
		// Handle HTML strings
 
		if ( typeof selector === "string" ) {
 
			if ( selector[ 0 ] === "<" &&
 
				selector[ selector.length - 1 ] === ">" &&
 
				selector.length >= 3 ) {
 

	
 
				// Assume that strings that start and end with <> are HTML and skip the regex check
 
				match = [ null, selector, null ];
 

	
 
			} else {
 
				match = rquickExpr.exec( selector );
 
			}
 

	
 
			// Match html or make sure no context is specified for #id
 
			if ( match && ( match[ 1 ] || !context ) ) {
 

	
 
				// HANDLE: $(html) -> $(array)
 
				if ( match[ 1 ] ) {
 
					context = context instanceof jQuery ? context[ 0 ] : context;
 

	
 
					// Option to run scripts is true for back-compat
 
					// Intentionally let the error be thrown if parseHTML is not present
 
					jQuery.merge( this, jQuery.parseHTML(
 
						match[ 1 ],
 
						context && context.nodeType ? context.ownerDocument || context : document,
 
						true
 
					) );
 

	
 
					// HANDLE: $(html, props)
 
					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
 
						for ( match in context ) {
 

	
 
							// Properties of context are called as methods if possible
 
							if ( jQuery.isFunction( this[ match ] ) ) {
 
								this[ match ]( context[ match ] );
 

	
 
							// ...and otherwise set as attributes
 
							} else {
 
								this.attr( match, context[ match ] );
 
							}
 
						}
 
					}
 

	
 
					return this;
 

	
 
				// HANDLE: $(#id)
 
				} else {
 
					elem = document.getElementById( match[ 2 ] );
 

	
 
					// Support: Blackberry 4.6
 
					// gEBID returns nodes no longer in the document (#6963)
 
					if ( elem && elem.parentNode ) {
 

	
 
						// Inject the element directly into the jQuery object
 
						this.length = 1;
 
						this[ 0 ] = elem;
 
					}
 

	
 
					this.context = document;
 
					this.selector = selector;
 
					return this;
 
				}
 

	
 
			// HANDLE: $(expr, $(...))
 
			} else if ( !context || context.jquery ) {
 
				return ( context || root ).find( selector );
 

	
 
			// HANDLE: $(expr, context)
 
			// (which is just equivalent to: $(context).find(expr)
 
			} else {
 
				return this.constructor( context ).find( selector );
 
			}
 

	
 
		// HANDLE: $(DOMElement)
 
		} else if ( selector.nodeType ) {
 
			this.context = this[ 0 ] = selector;
 
			this.length = 1;
 
			return this;
 

	
 
		// HANDLE: $(function)
 
		// Shortcut for document ready
 
		} else if ( jQuery.isFunction( selector ) ) {
 
			return root.ready !== undefined ?
 
				root.ready( selector ) :
 

	
 
				// Execute immediately if ready is not present
 
				selector( jQuery );
 
		}
 

	
 
		if ( selector.selector !== undefined ) {
 
			this.selector = selector.selector;
 
			this.context = selector.context;
 
		}
 

	
 
		return jQuery.makeArray( selector, this );
 
	};
 

	
 
// Give the init function the jQuery prototype for later instantiation
 
init.prototype = jQuery.fn;
 

	
 
// Initialize central reference
 
rootjQuery = jQuery( document );
 

	
 

	
 
var rparentsprev = /^(?:parents|prev(?:Until|All))/,
 

	
 
	// Methods guaranteed to produce a unique set when starting from a unique set
 
	guaranteedUnique = {
 
		children: true,
 
		contents: true,
 
		next: true,
 
		prev: true
 
	};
 

	
 
jQuery.fn.extend( {
 
	has: function( target ) {
 
		var targets = jQuery( target, this ),
 
			l = targets.length;
 

	
 
		return this.filter( function() {
 
			var i = 0;
 
			for ( ; i < l; i++ ) {
 
				if ( jQuery.contains( this, targets[ i ] ) ) {
 
					return true;
 
				}
 
			}
 
		} );
 
	},
 

	
 
	closest: function( selectors, context ) {
 
		var cur,
 
			i = 0,
 
			l = this.length,
 
			matched = [],
 
			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
 
				jQuery( selectors, context || this.context ) :
 
				0;
 

	
 
		for ( ; i < l; i++ ) {
 
			for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
 

	
 
				// Always skip document fragments
 
				if ( cur.nodeType < 11 && ( pos ?
 
					pos.index( cur ) > -1 :
 

	
 
					// Don't pass non-elements to Sizzle
 
					cur.nodeType === 1 &&
 
						jQuery.find.matchesSelector( cur, selectors ) ) ) {
 

	
 
					matched.push( cur );
 
					break;
 
				}
 
			}
 
		}
 

	
 
		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
 
	},
 

	
 
	// Determine the position of an element within the set
 
	index: function( elem ) {
 

	
 
		// No argument, return index in parent
 
		if ( !elem ) {
 
			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
 
		}
 

	
 
		// Index in selector
 
		if ( typeof elem === "string" ) {
 
			return indexOf.call( jQuery( elem ), this[ 0 ] );
 
		}
 

	
 
		// Locate the position of the desired element
 
		return indexOf.call( this,
 

	
 
			// If it receives a jQuery object, the first element is used
 
			elem.jquery ? elem[ 0 ] : elem
 
		);
 
	},
 

	
 
	add: function( selector, context ) {
 
		return this.pushStack(
 
			jQuery.uniqueSort(
 
				jQuery.merge( this.get(), jQuery( selector, context ) )
 
			)
 
		);
 
	},
 

	
 
	addBack: function( selector ) {
 
		return this.add( selector == null ?
 
			this.prevObject : this.prevObject.filter( selector )
 
		);
 
	}
 
} );
 

	
 
function sibling( cur, dir ) {
 
	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
 
	return cur;
 
}
 

	
 
jQuery.each( {
 
	parent: function( elem ) {
 
		var parent = elem.parentNode;
 
		return parent && parent.nodeType !== 11 ? parent : null;
 
	},
 
	parents: function( elem ) {
 
		return dir( elem, "parentNode" );
 
	},
 
	parentsUntil: function( elem, i, until ) {
 
		return dir( elem, "parentNode", until );
 
	},
 
	next: function( elem ) {
 
		return sibling( elem, "nextSibling" );
 
	},
 
	prev: function( elem ) {
 
		return sibling( elem, "previousSibling" );
 
	},
 
	nextAll: function( elem ) {
 
		return dir( elem, "nextSibling" );
 
	},
 
	prevAll: function( elem ) {
 
		return dir( elem, "previousSibling" );
 
	},
 
	nextUntil: function( elem, i, until ) {
 
		return dir( elem, "nextSibling", until );
 
	},
 
	prevUntil: function( elem, i, until ) {
 
		return dir( elem, "previousSibling", until );
 
	},
 
	siblings: function( elem ) {
 
		return siblings( ( elem.parentNode || {} ).firstChild, elem );
 
	},
 
	children: function( elem ) {
 
		return siblings( elem.firstChild );
 
	},
 
	contents: function( elem ) {
 
		return elem.contentDocument || jQuery.merge( [], elem.childNodes );
 
	}
 
}, function( name, fn ) {
 
	jQuery.fn[ name ] = function( until, selector ) {
 
		var matched = jQuery.map( this, fn, until );
 

	
 
		if ( name.slice( -5 ) !== "Until" ) {
 
			selector = until;
 
		}
 

	
 
		if ( selector && typeof selector === "string" ) {
 
			matched = jQuery.filter( selector, matched );
 
		}
 

	
 
		if ( this.length > 1 ) {
 

	
 
			// Remove duplicates
 
			if ( !guaranteedUnique[ name ] ) {
 
				jQuery.uniqueSort( matched );
 
			}
 

	
 
			// Reverse order for parents* and prev-derivatives
 
			if ( rparentsprev.test( name ) ) {
 
				matched.reverse();
 
			}
 
		}
 

	
 
		return this.pushStack( matched );
 
	};
 
} );
 
var rnotwhite = ( /\S+/g );
 

	
 

	
 

	
 
// Convert String-formatted options into Object-formatted ones
 
function createOptions( options ) {
 
	var object = {};
 
	jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
 
		object[ flag ] = true;
 
	} );
 
	return object;
 
}
 

	
 
/*
 
 * Create a callback list using the following parameters:
 
 *
 
 *	options: an optional list of space-separated options that will change how
 
 *			the callback list behaves or a more traditional option object
 
 *
 
 * By default a callback list will act like an event callback list and can be
 
 * "fired" multiple times.
 
 *
 
 * Possible options:
 
 *
 
 *	once:			will ensure the callback list can only be fired once (like a Deferred)
 
 *
 
 *	memory:			will keep track of previous values and will call any callback added
 
 *					after the list has been fired right away with the latest "memorized"
 
 *					values (like a Deferred)
 
 *
 
 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
 
 *
 
 *	stopOnFalse:	interrupt callings when a callback returns false
 
 *
 
 */
 
jQuery.Callbacks = function( options ) {
 

	
 
	// Convert options from String-formatted to Object-formatted if needed
 
	// (we check in cache first)
 
	options = typeof options === "string" ?
 
		createOptions( options ) :
 
		jQuery.extend( {}, options );
 

	
 
	var // Flag to know if list is currently firing
 
		firing,
 

	
 
		// Last fire value for non-forgettable lists
 
		memory,
 

	
 
		// Flag to know if list was already fired
 
		fired,
 

	
 
		// Flag to prevent firing
 
		locked,
 

	
 
		// Actual callback list
 
		list = [],
 

	
 
		// Queue of execution data for repeatable lists
 
		queue = [],
 

	
 
		// Index of currently firing callback (modified by add/remove as needed)
 
		firingIndex = -1,
 

	
 
		// Fire callbacks
 
		fire = function() {
 

	
 
			// Enforce single-firing
 
			locked = options.once;
 

	
 
			// Execute callbacks for all pending executions,
 
			// respecting firingIndex overrides and runtime changes
 
			fired = firing = true;
 
			for ( ; queue.length; firingIndex = -1 ) {
 
				memory = queue.shift();
 
				while ( ++firingIndex < list.length ) {
 

	
 
					// Run callback and check for early termination
 
					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
 
						options.stopOnFalse ) {
 

	
 
						// Jump to end and forget the data so .add doesn't re-fire
 
						firingIndex = list.length;
 
						memory = false;
 
					}
 
				}
 
			}
 

	
 
			// Forget the data if we're done with it
 
			if ( !options.memory ) {
 
				memory = false;
 
			}
 

	
 
			firing = false;
 

	
 
			// Clean up if we're done firing for good
 
			if ( locked ) {
 

	
 
				// Keep an empty list if we have data for future add calls
 
				if ( memory ) {
 
					list = [];
 

	
 
				// Otherwise, this object is spent
 
				} else {
 
					list = "";
 
				}
 
			}
 
		},
 

	
 
		// Actual Callbacks object
 
		self = {
 

	
 
			// Add a callback or a collection of callbacks to the list
 
			add: function() {
 
				if ( list ) {
 

	
 
					// If we have memory from a past run, we should fire after adding
 
					if ( memory && !firing ) {
 
						firingIndex = list.length - 1;
 
						queue.push( memory );
 
					}
 

	
 
					( function add( args ) {
 
						jQuery.each( args, function( _, arg ) {
 
							if ( jQuery.isFunction( arg ) ) {
 
								if ( !options.unique || !self.has( arg ) ) {
 
									list.push( arg );
 
								}
 
							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
 

	
 
								// Inspect recursively
 
								add( arg );
 
							}
 
						} );
 
					} )( arguments );
 

	
 
					if ( memory && !firing ) {
 
						fire();
 
					}
 
				}
 
				return this;
 
			},
 

	
 
			// Remove a callback from the list
 
			remove: function() {
 
				jQuery.each( arguments, function( _, arg ) {
 
					var index;
 
					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
 
						list.splice( index, 1 );
 

	
 
						// Handle firing indexes
 
						if ( index <= firingIndex ) {
 
							firingIndex--;
 
						}
 
					}
 
				} );
 
				return this;
 
			},
 

	
 
			// Check if a given callback is in the list.
 
			// If no argument is given, return whether or not list has callbacks attached.
 
			has: function( fn ) {
 
				return fn ?
 
					jQuery.inArray( fn, list ) > -1 :
 
					list.length > 0;
 
			},
 

	
 
			// Remove all callbacks from the list
 
			empty: function() {
 
				if ( list ) {
 
					list = [];
 
				}
 
				return this;
 
			},
 

	
 
			// Disable .fire and .add
 
			// Abort any current/pending executions
 
			// Clear all callbacks and values
 
			disable: function() {
 
				locked = queue = [];
 
				list = memory = "";
 
				return this;
 
			},
 
			disabled: function() {
 
				return !list;
 
			},
 

	
 
			// Disable .fire
 
			// Also disable .add unless we have memory (since it would have no effect)
 
			// Abort any pending executions
 
			lock: function() {
 
				locked = queue = [];
 
				if ( !memory ) {
 
					list = memory = "";
 
				}
 
				return this;
 
			},
 
			locked: function() {
 
				return !!locked;
 
			},
 

	
 
			// Call all callbacks with the given context and arguments
 
			fireWith: function( context, args ) {
 
				if ( !locked ) {
 
					args = args || [];
 
					args = [ context, args.slice ? args.slice() : args ];
 
					queue.push( args );
 
					if ( !firing ) {
 
						fire();
 
					}
 
				}
 
				return this;
 
			},
 

	
 
			// Call all the callbacks with the given arguments
 
			fire: function() {
 
				self.fireWith( this, arguments );
 
				return this;
 
			},
 

	
 
			// To know if the callbacks have already been called at least once
 
			fired: function() {
 
				return !!fired;
 
			}
 
		};
 

	
 
	return self;
 
};
 

	
 

	
 
jQuery.extend( {
 

	
 
	Deferred: function( func ) {
 
		var tuples = [
 

	
 
				// action, add listener, listener list, final state
 
				[ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
 
				[ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
 
				[ "notify", "progress", jQuery.Callbacks( "memory" ) ]
 
			],
 
			state = "pending",
 
			promise = {
 
				state: function() {
 
					return state;
 
				},
 
				always: function() {
 
					deferred.done( arguments ).fail( arguments );
 
					return this;
 
				},
 
				then: function( /* fnDone, fnFail, fnProgress */ ) {
 
					var fns = arguments;
 
					return jQuery.Deferred( function( newDefer ) {
 
						jQuery.each( tuples, function( i, tuple ) {
 
							var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
 

	
 
							// deferred[ done | fail | progress ] for forwarding actions to newDefer
 
							deferred[ tuple[ 1 ] ]( function() {
 
								var returned = fn && fn.apply( this, arguments );
 
								if ( returned && jQuery.isFunction( returned.promise ) ) {
 
									returned.promise()
 
										.progress( newDefer.notify )
 
										.done( newDefer.resolve )
 
										.fail( newDefer.reject );
 
								} else {
 
									newDefer[ tuple[ 0 ] + "With" ](
 
										this === promise ? newDefer.promise() : this,
 
										fn ? [ returned ] : arguments
 
									);
 
								}
 
							} );
 
						} );
 
						fns = null;
 
					} ).promise();
 
				},
 

	
 
				// Get a promise for this deferred
 
				// If obj is provided, the promise aspect is added to the object
 
				promise: function( obj ) {
 
					return obj != null ? jQuery.extend( obj, promise ) : promise;
 
				}
 
			},
 
			deferred = {};
 

	
 
		// Keep pipe for back-compat
 
		promise.pipe = promise.then;
 

	
 
		// Add list-specific methods
 
		jQuery.each( tuples, function( i, tuple ) {
 
			var list = tuple[ 2 ],
 
				stateString = tuple[ 3 ];
 

	
 
			// promise[ done | fail | progress ] = list.add
 
			promise[ tuple[ 1 ] ] = list.add;
 

	
 
			// Handle state
 
			if ( stateString ) {
 
				list.add( function() {
 

	
 
					// state = [ resolved | rejected ]
 
					state = stateString;
 

	
 
				// [ reject_list | resolve_list ].disable; progress_list.lock
 
				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
 
			}
 

	
 
			// deferred[ resolve | reject | notify ]
 
			deferred[ tuple[ 0 ] ] = function() {
 
				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
 
				return this;
 
			};
 
			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
 
		} );
 

	
 
		// Make the deferred a promise
 
		promise.promise( deferred );
 

	
 
		// Call given func if any
 
		if ( func ) {
 
			func.call( deferred, deferred );
 
		}
 

	
 
		// All done!
 
		return deferred;
 
	},
 

	
 
	// Deferred helper
 
	when: function( subordinate /* , ..., subordinateN */ ) {
 
		var i = 0,
 
			resolveValues = slice.call( arguments ),
 
			length = resolveValues.length,
 

	
 
			// the count of uncompleted subordinates
 
			remaining = length !== 1 ||
 
				( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
 

	
 
			// the master Deferred.
 
			// If resolveValues consist of only a single Deferred, just use that.
 
			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
 

	
 
			// Update function for both resolve and progress values
 
			updateFunc = function( i, contexts, values ) {
 
				return function( value ) {
 
					contexts[ i ] = this;
 
					values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
 
					if ( values === progressValues ) {
 
						deferred.notifyWith( contexts, values );
 
					} else if ( !( --remaining ) ) {
 
						deferred.resolveWith( contexts, values );
 
					}
 
				};
 
			},
 

	
 
			progressValues, progressContexts, resolveContexts;
 

	
 
		// Add listeners to Deferred subordinates; treat others as resolved
 
		if ( length > 1 ) {
 
			progressValues = new Array( length );
 
			progressContexts = new Array( length );
 
			resolveContexts = new Array( length );
 
			for ( ; i < length; i++ ) {
 
				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
 
					resolveValues[ i ].promise()
 
						.progress( updateFunc( i, progressContexts, progressValues ) )
 
						.done( updateFunc( i, resolveContexts, resolveValues ) )
 
						.fail( deferred.reject );
 
				} else {
 
					--remaining;
 
				}
 
			}
 
		}
 

	
 
		// If we're not waiting on anything, resolve the master
 
		if ( !remaining ) {
 
			deferred.resolveWith( resolveContexts, resolveValues );
 
		}
 

	
 
		return deferred.promise();
 
	}
 
} );
 

	
 

	
 
// The deferred used on DOM ready
 
var readyList;
 

	
 
jQuery.fn.ready = function( fn ) {
 

	
 
	// Add the callback
 
	jQuery.ready.promise().done( fn );
 

	
 
	return this;
 
};
 

	
 
jQuery.extend( {
 

	
 
	// Is the DOM ready to be used? Set to true once it occurs.
 
	isReady: false,
 

	
 
	// A counter to track how many items to wait for before
 
	// the ready event fires. See #6781
 
	readyWait: 1,
 

	
 
	// Hold (or release) the ready event
 
	holdReady: function( hold ) {
 
		if ( hold ) {
 
			jQuery.readyWait++;
 
		} else {
 
			jQuery.ready( true );
 
		}
 
	},
 

	
 
	// Handle when the DOM is ready
 
	ready: function( wait ) {
 

	
 
		// Abort if there are pending holds or we're already ready
 
		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
 
			return;
 
		}
 

	
 
		// Remember that the DOM is ready
 
		jQuery.isReady = true;
 

	
 
		// If a normal DOM Ready event fired, decrement, and wait if need be
 
		if ( wait !== true && --jQuery.readyWait > 0 ) {
 
			return;
 
		}
 

	
 
		// If there are functions bound, to execute
 
		readyList.resolveWith( document, [ jQuery ] );
 

	
 
		// Trigger any bound ready events
 
		if ( jQuery.fn.triggerHandler ) {
 
			jQuery( document ).triggerHandler( "ready" );
 
			jQuery( document ).off( "ready" );
 
		}
 
	}
 
} );
 

	
 
/**
 
 * The ready event handler and self cleanup method
 
 */
 
function completed() {
 
	document.removeEventListener( "DOMContentLoaded", completed );
 
	window.removeEventListener( "load", completed );
 
	jQuery.ready();
 
}
 

	
 
jQuery.ready.promise = function( obj ) {
 
	if ( !readyList ) {
 

	
 
		readyList = jQuery.Deferred();
 

	
 
		// Catch cases where $(document).ready() is called
 
		// after the browser event has already occurred.
 
		// Support: IE9-10 only
 
		// Older IE sometimes signals "interactive" too soon
 
		if ( document.readyState === "complete" ||
 
			( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
 

	
 
			// Handle it asynchronously to allow scripts the opportunity to delay ready
 
			window.setTimeout( jQuery.ready );
 

	
 
		} else {
 

	
 
			// Use the handy event callback
 
			document.addEventListener( "DOMContentLoaded", completed );
 

	
 
			// A fallback to window.onload, that will always work
 
			window.addEventListener( "load", completed );
 
		}
 
	}
 
	return readyList.promise( obj );
 
};
 

	
 
// Kick off the DOM ready check even if the user does not
 
jQuery.ready.promise();
 

	
 

	
 

	
 

	
 
// Multifunctional method to get and set values of a collection
 
// The value/s can optionally be executed if it's a function
 
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 
	var i = 0,
 
		len = elems.length,
 
		bulk = key == null;
 

	
 
	// Sets many values
 
	if ( jQuery.type( key ) === "object" ) {
 
		chainable = true;
 
		for ( i in key ) {
 
			access( elems, fn, i, key[ i ], true, emptyGet, raw );
 
		}
 

	
 
	// Sets one value
 
	} else if ( value !== undefined ) {
 
		chainable = true;
 

	
 
		if ( !jQuery.isFunction( value ) ) {
 
			raw = true;
 
		}
 

	
 
		if ( bulk ) {
 

	
 
			// Bulk operations run against the entire set
 
			if ( raw ) {
 
				fn.call( elems, value );
 
				fn = null;
 

	
 
			// ...except when executing function values
 
			} else {
 
				bulk = fn;
 
				fn = function( elem, key, value ) {
 
					return bulk.call( jQuery( elem ), value );
 
				};
 
			}
 
		}
 

	
 
		if ( fn ) {
 
			for ( ; i < len; i++ ) {
 
				fn(
 
					elems[ i ], key, raw ?
 
					value :
 
					value.call( elems[ i ], i, fn( elems[ i ], key ) )
 
				);
 
			}
 
		}
 
	}
 

	
 
	return chainable ?
 
		elems :
 

	
 
		// Gets
 
		bulk ?
 
			fn.call( elems ) :
 
			len ? fn( elems[ 0 ], key ) : emptyGet;
 
};
 
var acceptData = function( owner ) {
 

	
 
	// Accepts only:
 
	//  - Node
 
	//    - Node.ELEMENT_NODE
 
	//    - Node.DOCUMENT_NODE
 
	//  - Object
 
	//    - Any
 
	/* jshint -W018 */
 
	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
 
};
 

	
 

	
 

	
 

	
 
function Data() {
 
	this.expando = jQuery.expando + Data.uid++;
 
}
 

	
 
Data.uid = 1;
 

	
 
Data.prototype = {
 

	
 
	register: function( owner, initial ) {
 
		var value = initial || {};
 

	
 
		// If it is a node unlikely to be stringify-ed or looped over
 
		// use plain assignment
 
		if ( owner.nodeType ) {
 
			owner[ this.expando ] = value;
 

	
 
		// Otherwise secure it in a non-enumerable, non-writable property
 
		// configurability must be true to allow the property to be
 
		// deleted with the delete operator
 
		} else {
 
			Object.defineProperty( owner, this.expando, {
 
				value: value,
 
				writable: true,
 
				configurable: true
 
			} );
 
		}
 
		return owner[ this.expando ];
 
	},
 
	cache: function( owner ) {
 

	
 
		// We can accept data for non-element nodes in modern browsers,
 
		// but we should not, see #8335.
 
		// Always return an empty object.
 
		if ( !acceptData( owner ) ) {
 
			return {};
 
		}
 

	
 
		// Check if the owner object already has a cache
 
		var value = owner[ this.expando ];
 

	
 
		// If not, create one
 
		if ( !value ) {
 
			value = {};
 

	
 
			// We can accept data for non-element nodes in modern browsers,
 
			// but we should not, see #8335.
 
			// Always return an empty object.
 
			if ( acceptData( owner ) ) {
 

	
 
				// If it is a node unlikely to be stringify-ed or looped over
 
				// use plain assignment
 
				if ( owner.nodeType ) {
 
					owner[ this.expando ] = value;
 

	
 
				// Otherwise secure it in a non-enumerable property
 
				// configurable must be true to allow the property to be
 
				// deleted when data is removed
 
				} else {
 
					Object.defineProperty( owner, this.expando, {
 
						value: value,
 
						configurable: true
 
					} );
 
				}
 
			}
 
		}
 

	
 
		return value;
 
	},
 
	set: function( owner, data, value ) {
 
		var prop,
 
			cache = this.cache( owner );
 

	
 
		// Handle: [ owner, key, value ] args
 
		if ( typeof data === "string" ) {
 
			cache[ data ] = value;
 

	
 
		// Handle: [ owner, { properties } ] args
 
		} else {
 

	
 
			// Copy the properties one-by-one to the cache object
 
			for ( prop in data ) {
 
				cache[ prop ] = data[ prop ];
 
			}
 
		}
 
		return cache;
 
	},
 
	get: function( owner, key ) {
 
		return key === undefined ?
 
			this.cache( owner ) :
 
			owner[ this.expando ] && owner[ this.expando ][ key ];
 
	},
 
	access: function( owner, key, value ) {
 
		var stored;
 

	
 
		// In cases where either:
 
		//
 
		//   1. No key was specified
 
		//   2. A string key was specified, but no value provided
 
		//
 
		// Take the "read" path and allow the get method to determine
 
		// which value to return, respectively either:
 
		//
 
		//   1. The entire cache object
 
		//   2. The data stored at the key
 
		//
 
		if ( key === undefined ||
 
				( ( key && typeof key === "string" ) && value === undefined ) ) {
 

	
 
			stored = this.get( owner, key );
 

	
 
			return stored !== undefined ?
 
				stored : this.get( owner, jQuery.camelCase( key ) );
 
		}
 

	
 
		// When the key is not a string, or both a key and value
 
		// are specified, set or extend (existing objects) with either:
 
		//
 
		//   1. An object of properties
 
		//   2. A key and value
 
		//
 
		this.set( owner, key, value );
 

	
 
		// Since the "set" path can have two possible entry points
 
		// return the expected data based on which path was taken[*]
 
		return value !== undefined ? value : key;
 
	},
 
	remove: function( owner, key ) {
 
		var i, name, camel,
 
			cache = owner[ this.expando ];
 

	
 
		if ( cache === undefined ) {
 
			return;
 
		}
 

	
 
		if ( key === undefined ) {
 
			this.register( owner );
 

	
 
		} else {
 

	
 
			// Support array or space separated string of keys
 
			if ( jQuery.isArray( key ) ) {
 

	
 
				// If "name" is an array of keys...
 
				// When data is initially created, via ("key", "val") signature,
 
				// keys will be converted to camelCase.
 
				// Since there is no way to tell _how_ a key was added, remove
 
				// both plain key and camelCase key. #12786
 
				// This will only penalize the array argument path.
 
				name = key.concat( key.map( jQuery.camelCase ) );
 
			} else {
 
				camel = jQuery.camelCase( key );
 

	
 
				// Try the string as a key before any manipulation
 
				if ( key in cache ) {
 
					name = [ key, camel ];
 
				} else {
 

	
 
					// If a key with the spaces exists, use it.
 
					// Otherwise, create an array by matching non-whitespace
 
					name = camel;
 
					name = name in cache ?
 
						[ name ] : ( name.match( rnotwhite ) || [] );
 
				}
 
			}
 

	
 
			i = name.length;
 

	
 
			while ( i-- ) {
 
				delete cache[ name[ i ] ];
 
			}
 
		}
 

	
 
		// Remove the expando if there's no more data
 
		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
 

	
 
			// Support: Chrome <= 35-45+
 
			// Webkit & Blink performance suffers when deleting properties
 
			// from DOM nodes, so set to undefined instead
 
			// https://code.google.com/p/chromium/issues/detail?id=378607
 
			if ( owner.nodeType ) {
 
				owner[ this.expando ] = undefined;
 
			} else {
 
				delete owner[ this.expando ];
 
			}
 
		}
 
	},
 
	hasData: function( owner ) {
 
		var cache = owner[ this.expando ];
 
		return cache !== undefined && !jQuery.isEmptyObject( cache );
 
	}
 
};
 
var dataPriv = new Data();
 

	
 
var dataUser = new Data();
 

	
 

	
 

	
 
//	Implementation Summary
 
//
 
//	1. Enforce API surface and semantic compatibility with 1.9.x branch
 
//	2. Improve the module's maintainability by reducing the storage
 
//		paths to a single mechanism.
 
//	3. Use the same single mechanism to support "private" and "user" data.
 
//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
 
//	5. Avoid exposing implementation details on user objects (eg. expando properties)
 
//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
 

	
 
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
 
	rmultiDash = /[A-Z]/g;
 

	
 
function dataAttr( elem, key, data ) {
 
	var name;
 

	
 
	// If nothing was found internally, try to fetch any
 
	// data from the HTML5 data-* attribute
 
	if ( data === undefined && elem.nodeType === 1 ) {
 
		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
 
		data = elem.getAttribute( name );
 

	
 
		if ( typeof data === "string" ) {
 
			try {
 
				data = data === "true" ? true :
 
					data === "false" ? false :
 
					data === "null" ? null :
 

	
 
					// Only convert to a number if it doesn't change the string
 
					+data + "" === data ? +data :
 
					rbrace.test( data ) ? jQuery.parseJSON( data ) :
 
					data;
 
			} catch ( e ) {}
 

	
 
			// Make sure we set the data so it isn't changed later
 
			dataUser.set( elem, key, data );
 
		} else {
 
			data = undefined;
 
		}
 
	}
 
	return data;
 
}
 

	
 
jQuery.extend( {
 
	hasData: function( elem ) {
 
		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
 
	},
 

	
 
	data: function( elem, name, data ) {
 
		return dataUser.access( elem, name, data );
 
	},
 

	
 
	removeData: function( elem, name ) {
 
		dataUser.remove( elem, name );
 
	},
 

	
 
	// TODO: Now that all calls to _data and _removeData have been replaced
 
	// with direct calls to dataPriv methods, these can be deprecated.
 
	_data: function( elem, name, data ) {
 
		return dataPriv.access( elem, name, data );
 
	},
 

	
 
	_removeData: function( elem, name ) {
 
		dataPriv.remove( elem, name );
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	data: function( key, value ) {
 
		var i, name, data,
 
			elem = this[ 0 ],
 
			attrs = elem && elem.attributes;
 

	
 
		// Gets all values
 
		if ( key === undefined ) {
 
			if ( this.length ) {
 
				data = dataUser.get( elem );
 

	
 
				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
 
					i = attrs.length;
 
					while ( i-- ) {
 

	
 
						// Support: IE11+
 
						// The attrs elements can be null (#14894)
 
						if ( attrs[ i ] ) {
 
							name = attrs[ i ].name;
 
							if ( name.indexOf( "data-" ) === 0 ) {
 
								name = jQuery.camelCase( name.slice( 5 ) );
 
								dataAttr( elem, name, data[ name ] );
 
							}
 
						}
 
					}
 
					dataPriv.set( elem, "hasDataAttrs", true );
 
				}
 
			}
 

	
 
			return data;
 
		}
 

	
 
		// Sets multiple values
 
		if ( typeof key === "object" ) {
 
			return this.each( function() {
 
				dataUser.set( this, key );
 
			} );
 
		}
 

	
 
		return access( this, function( value ) {
 
			var data, camelKey;
 

	
 
			// The calling jQuery object (element matches) is not empty
 
			// (and therefore has an element appears at this[ 0 ]) and the
 
			// `value` parameter was not undefined. An empty jQuery object
 
			// will result in `undefined` for elem = this[ 0 ] which will
 
			// throw an exception if an attempt to read a data cache is made.
 
			if ( elem && value === undefined ) {
 

	
 
				// Attempt to get data from the cache
 
				// with the key as-is
 
				data = dataUser.get( elem, key ) ||
 

	
 
					// Try to find dashed key if it exists (gh-2779)
 
					// This is for 2.2.x only
 
					dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
 

	
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				camelKey = jQuery.camelCase( key );
 

	
 
				// Attempt to get data from the cache
 
				// with the key camelized
 
				data = dataUser.get( elem, camelKey );
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				// Attempt to "discover" the data in
 
				// HTML5 custom data-* attrs
 
				data = dataAttr( elem, camelKey, undefined );
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				// We tried really hard, but the data doesn't exist.
 
				return;
 
			}
 

	
 
			// Set the data...
 
			camelKey = jQuery.camelCase( key );
 
			this.each( function() {
 

	
 
				// First, attempt to store a copy or reference of any
 
				// data that might've been store with a camelCased key.
 
				var data = dataUser.get( this, camelKey );
 

	
 
				// For HTML5 data-* attribute interop, we have to
 
				// store property names with dashes in a camelCase form.
 
				// This might not apply to all properties...*
 
				dataUser.set( this, camelKey, value );
 

	
 
				// *... In the case of properties that might _actually_
 
				// have dashes, we need to also store a copy of that
 
				// unchanged property.
 
				if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
 
					dataUser.set( this, key, value );
 
				}
 
			} );
 
		}, null, value, arguments.length > 1, null, true );
 
	},
 

	
 
	removeData: function( key ) {
 
		return this.each( function() {
 
			dataUser.remove( this, key );
 
		} );
 
	}
 
} );
 

	
 

	
 
jQuery.extend( {
 
	queue: function( elem, type, data ) {
 
		var queue;
 

	
 
		if ( elem ) {
 
			type = ( type || "fx" ) + "queue";
 
			queue = dataPriv.get( elem, type );
 

	
 
			// Speed up dequeue by getting out quickly if this is just a lookup
 
			if ( data ) {
 
				if ( !queue || jQuery.isArray( data ) ) {
 
					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
 
				} else {
 
					queue.push( data );
 
				}
 
			}
 
			return queue || [];
 
		}
 
	},
 

	
 
	dequeue: function( elem, type ) {
 
		type = type || "fx";
 

	
 
		var queue = jQuery.queue( elem, type ),
 
			startLength = queue.length,
 
			fn = queue.shift(),
 
			hooks = jQuery._queueHooks( elem, type ),
 
			next = function() {
 
				jQuery.dequeue( elem, type );
 
			};
 

	
 
		// If the fx queue is dequeued, always remove the progress sentinel
 
		if ( fn === "inprogress" ) {
 
			fn = queue.shift();
 
			startLength--;
 
		}
 

	
 
		if ( fn ) {
 

	
 
			// Add a progress sentinel to prevent the fx queue from being
 
			// automatically dequeued
 
			if ( type === "fx" ) {
 
				queue.unshift( "inprogress" );
 
			}
 

	
 
			// Clear up the last queue stop function
 
			delete hooks.stop;
 
			fn.call( elem, next, hooks );
 
		}
 

	
 
		if ( !startLength && hooks ) {
 
			hooks.empty.fire();
 
		}
 
	},
 

	
 
	// Not public - generate a queueHooks object, or return the current one
 
	_queueHooks: function( elem, type ) {
 
		var key = type + "queueHooks";
 
		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
 
			empty: jQuery.Callbacks( "once memory" ).add( function() {
 
				dataPriv.remove( elem, [ type + "queue", key ] );
 
			} )
 
		} );
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	queue: function( type, data ) {
 
		var setter = 2;
 

	
 
		if ( typeof type !== "string" ) {
 
			data = type;
 
			type = "fx";
 
			setter--;
 
		}
 

	
 
		if ( arguments.length < setter ) {
 
			return jQuery.queue( this[ 0 ], type );
 
		}
 

	
 
		return data === undefined ?
 
			this :
 
			this.each( function() {
 
				var queue = jQuery.queue( this, type, data );
 

	
 
				// Ensure a hooks for this queue
 
				jQuery._queueHooks( this, type );
 

	
 
				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
 
					jQuery.dequeue( this, type );
 
				}
 
			} );
 
	},
 
	dequeue: function( type ) {
 
		return this.each( function() {
 
			jQuery.dequeue( this, type );
 
		} );
 
	},
 
	clearQueue: function( type ) {
 
		return this.queue( type || "fx", [] );
 
	},
 

	
 
	// Get a promise resolved when queues of a certain type
 
	// are emptied (fx is the type by default)
 
	promise: function( type, obj ) {
 
		var tmp,
 
			count = 1,
 
			defer = jQuery.Deferred(),
 
			elements = this,
 
			i = this.length,
 
			resolve = function() {
 
				if ( !( --count ) ) {
 
					defer.resolveWith( elements, [ elements ] );
 
				}
 
			};
 

	
 
		if ( typeof type !== "string" ) {
 
			obj = type;
 
			type = undefined;
 
		}
 
		type = type || "fx";
 

	
 
		while ( i-- ) {
 
			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
 
			if ( tmp && tmp.empty ) {
 
				count++;
 
				tmp.empty.add( resolve );
 
			}
 
		}
 
		resolve();
 
		return defer.promise( obj );
 
	}
 
} );
 
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
 

	
 
var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 

	
 

	
 
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 

	
 
var isHidden = function( elem, el ) {
 

	
 
		// isHidden might be called from jQuery#filter function;
 
		// in that case, element will be second argument
 
		elem = el || elem;
 
		return jQuery.css( elem, "display" ) === "none" ||
 
			!jQuery.contains( elem.ownerDocument, elem );
 
	};
 

	
 

	
 

	
 
function adjustCSS( elem, prop, valueParts, tween ) {
 
	var adjusted,
 
		scale = 1,
 
		maxIterations = 20,
 
		currentValue = tween ?
 
			function() { return tween.cur(); } :
 
			function() { return jQuery.css( elem, prop, "" ); },
 
		initial = currentValue(),
 
		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 

	
 
		// Starting value computation is required for potential unit mismatches
 
		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 
			rcssNum.exec( jQuery.css( elem, prop ) );
 

	
 
	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
 

	
 
		// Trust units reported by jQuery.css
 
		unit = unit || initialInUnit[ 3 ];
 

	
 
		// Make sure we update the tween properties later on
 
		valueParts = valueParts || [];
 

	
 
		// Iteratively approximate from a nonzero starting point
 
		initialInUnit = +initial || 1;
 

	
 
		do {
 

	
 
			// If previous iteration zeroed out, double until we get *something*.
 
			// Use string for doubling so we don't accidentally see scale as unchanged below
 
			scale = scale || ".5";
 

	
 
			// Adjust and apply
 
			initialInUnit = initialInUnit / scale;
 
			jQuery.style( elem, prop, initialInUnit + unit );
 

	
 
		// Update scale, tolerating zero or NaN from tween.cur()
 
		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
 
		} while (
 
			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
 
		);
 
	}
 

	
 
	if ( valueParts ) {
 
		initialInUnit = +initialInUnit || +initial || 0;
 

	
 
		// Apply relative offset (+=/-=) if specified
 
		adjusted = valueParts[ 1 ] ?
 
			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
 
			+valueParts[ 2 ];
 
		if ( tween ) {
 
			tween.unit = unit;
 
			tween.start = initialInUnit;
 
			tween.end = adjusted;
 
		}
 
	}
 
	return adjusted;
 
}
 
var rcheckableType = ( /^(?:checkbox|radio)$/i );
 

	
 
var rtagName = ( /<([\w:-]+)/ );
 

	
 
var rscriptType = ( /^$|\/(?:java|ecma)script/i );
 

	
 

	
 

	
 
// We have to close these tags to support XHTML (#13200)
 
var wrapMap = {
 

	
 
	// Support: IE9
 
	option: [ 1, "<select multiple='multiple'>", "</select>" ],
 

	
 
	// XHTML parsers do not magically insert elements in the
 
	// same way that tag soup parsers do. So we cannot shorten
 
	// this by omitting <tbody> or other required elements.
 
	thead: [ 1, "<table>", "</table>" ],
 
	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
 
	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
 
	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
 

	
 
	_default: [ 0, "", "" ]
 
};
 

	
 
// Support: IE9
 
wrapMap.optgroup = wrapMap.option;
 

	
 
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 
wrapMap.th = wrapMap.td;
 

	
 

	
 
function getAll( context, tag ) {
 

	
 
	// Support: IE9-11+
 
	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
 
	var ret = typeof context.getElementsByTagName !== "undefined" ?
 
			context.getElementsByTagName( tag || "*" ) :
 
			typeof context.querySelectorAll !== "undefined" ?
 
				context.querySelectorAll( tag || "*" ) :
 
			[];
 

	
 
	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
 
		jQuery.merge( [ context ], ret ) :
 
		ret;
 
}
 

	
 

	
 
// Mark scripts as having already been evaluated
 
function setGlobalEval( elems, refElements ) {
 
	var i = 0,
 
		l = elems.length;
 

	
 
	for ( ; i < l; i++ ) {
 
		dataPriv.set(
 
			elems[ i ],
 
			"globalEval",
 
			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
 
		);
 
	}
 
}
 

	
 

	
 
var rhtml = /<|&#?\w+;/;
 

	
 
function buildFragment( elems, context, scripts, selection, ignored ) {
 
	var elem, tmp, tag, wrap, contains, j,
 
		fragment = context.createDocumentFragment(),
 
		nodes = [],
 
		i = 0,
 
		l = elems.length;
 

	
 
	for ( ; i < l; i++ ) {
 
		elem = elems[ i ];
 

	
 
		if ( elem || elem === 0 ) {
 

	
 
			// Add nodes directly
 
			if ( jQuery.type( elem ) === "object" ) {
 

	
 
				// Support: Android<4.1, PhantomJS<2
 
				// push.apply(_, arraylike) throws on ancient WebKit
 
				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
 

	
 
			// Convert non-html into a text node
 
			} else if ( !rhtml.test( elem ) ) {
 
				nodes.push( context.createTextNode( elem ) );
 

	
 
			// Convert html into DOM nodes
 
			} else {
 
				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
 

	
 
				// Deserialize a standard representation
 
				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
 
				wrap = wrapMap[ tag ] || wrapMap._default;
 
				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
 

	
 
				// Descend through wrappers to the right content
 
				j = wrap[ 0 ];
 
				while ( j-- ) {
 
					tmp = tmp.lastChild;
 
				}
 

	
 
				// Support: Android<4.1, PhantomJS<2
 
				// push.apply(_, arraylike) throws on ancient WebKit
 
				jQuery.merge( nodes, tmp.childNodes );
 

	
 
				// Remember the top-level container
 
				tmp = fragment.firstChild;
 

	
 
				// Ensure the created nodes are orphaned (#12392)
 
				tmp.textContent = "";
 
			}
 
		}
 
	}
 

	
 
	// Remove wrapper from fragment
 
	fragment.textContent = "";
 

	
 
	i = 0;
 
	while ( ( elem = nodes[ i++ ] ) ) {
 

	
 
		// Skip elements already in the context collection (trac-4087)
 
		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
 
			if ( ignored ) {
 
				ignored.push( elem );
 
			}
 
			continue;
 
		}
 

	
 
		contains = jQuery.contains( elem.ownerDocument, elem );
 

	
 
		// Append to fragment
 
		tmp = getAll( fragment.appendChild( elem ), "script" );
 

	
 
		// Preserve script evaluation history
 
		if ( contains ) {
 
			setGlobalEval( tmp );
 
		}
 

	
 
		// Capture executables
 
		if ( scripts ) {
 
			j = 0;
 
			while ( ( elem = tmp[ j++ ] ) ) {
 
				if ( rscriptType.test( elem.type || "" ) ) {
 
					scripts.push( elem );
 
				}
 
			}
 
		}
 
	}
 

	
 
	return fragment;
 
}
 

	
 

	
 
( function() {
 
	var fragment = document.createDocumentFragment(),
 
		div = fragment.appendChild( document.createElement( "div" ) ),
 
		input = document.createElement( "input" );
 

	
 
	// Support: Android 4.0-4.3, Safari<=5.1
 
	// Check state lost if the name is set (#11217)
 
	// Support: Windows Web Apps (WWA)
 
	// `name` and `type` must use .setAttribute for WWA (#14901)
 
	input.setAttribute( "type", "radio" );
 
	input.setAttribute( "checked", "checked" );
 
	input.setAttribute( "name", "t" );
 

	
 
	div.appendChild( input );
 

	
 
	// Support: Safari<=5.1, Android<4.2
 
	// Older WebKit doesn't clone checked state correctly in fragments
 
	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
 

	
 
	// Support: IE<=11+
 
	// Make sure textarea (and checkbox) defaultValue is properly cloned
 
	div.innerHTML = "<textarea>x</textarea>";
 
	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
 
} )();
 

	
 

	
 
var
 
	rkeyEvent = /^key/,
 
	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
 
	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
 

	
 
function returnTrue() {
 
	return true;
 
}
 

	
 
function returnFalse() {
 
	return false;
 
}
 

	
 
// Support: IE9
 
// See #13393 for more info
 
function safeActiveElement() {
 
	try {
 
		return document.activeElement;
 
	} catch ( err ) { }
 
}
 

	
 
function on( elem, types, selector, data, fn, one ) {
 
	var origFn, type;
 

	
 
	// Types can be a map of types/handlers
 
	if ( typeof types === "object" ) {
 

	
 
		// ( types-Object, selector, data )
 
		if ( typeof selector !== "string" ) {
 

	
 
			// ( types-Object, data )
 
			data = data || selector;
 
			selector = undefined;
 
		}
 
		for ( type in types ) {
 
			on( elem, type, selector, data, types[ type ], one );
 
		}
 
		return elem;
 
	}
 

	
 
	if ( data == null && fn == null ) {
 

	
 
		// ( types, fn )
 
		fn = selector;
 
		data = selector = undefined;
 
	} else if ( fn == null ) {
 
		if ( typeof selector === "string" ) {
 

	
 
			// ( types, selector, fn )
 
			fn = data;
 
			data = undefined;
 
		} else {
 

	
 
			// ( types, data, fn )
 
			fn = data;
 
			data = selector;
 
			selector = undefined;
 
		}
 
	}
 
	if ( fn === false ) {
 
		fn = returnFalse;
 
	} else if ( !fn ) {
 
		return elem;
 
	}
 

	
 
	if ( one === 1 ) {
 
		origFn = fn;
 
		fn = function( event ) {
 

	
 
			// Can use an empty set, since event contains the info
 
			jQuery().off( event );
 
			return origFn.apply( this, arguments );
 
		};
 

	
 
		// Use same guid so caller can remove using origFn
 
		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
 
	}
 
	return elem.each( function() {
 
		jQuery.event.add( this, types, fn, data, selector );
 
	} );
 
}
 

	
 
/*
 
 * Helper functions for managing events -- not part of the public interface.
 
 * Props to Dean Edwards' addEvent library for many of the ideas.
 
 */
 
jQuery.event = {
 

	
 
	global: {},
 

	
 
	add: function( elem, types, handler, data, selector ) {
 

	
 
		var handleObjIn, eventHandle, tmp,
 
			events, t, handleObj,
 
			special, handlers, type, namespaces, origType,
 
			elemData = dataPriv.get( elem );
 

	
 
		// Don't attach events to noData or text/comment nodes (but allow plain objects)
 
		if ( !elemData ) {
 
			return;
 
		}
 

	
 
		// Caller can pass in an object of custom data in lieu of the handler
 
		if ( handler.handler ) {
 
			handleObjIn = handler;
 
			handler = handleObjIn.handler;
 
			selector = handleObjIn.selector;
 
		}
 

	
 
		// Make sure that the handler has a unique ID, used to find/remove it later
 
		if ( !handler.guid ) {
 
			handler.guid = jQuery.guid++;
 
		}
 

	
 
		// Init the element's event structure and main handler, if this is the first
 
		if ( !( events = elemData.events ) ) {
 
			events = elemData.events = {};
 
		}
 
		if ( !( eventHandle = elemData.handle ) ) {
 
			eventHandle = elemData.handle = function( e ) {
 

	
 
				// Discard the second event of a jQuery.event.trigger() and
 
				// when an event is called after a page has unloaded
 
				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
 
					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
 
			};
 
		}
 

	
 
		// Handle multiple events separated by a space
 
		types = ( types || "" ).match( rnotwhite ) || [ "" ];
 
		t = types.length;
 
		while ( t-- ) {
 
			tmp = rtypenamespace.exec( types[ t ] ) || [];
 
			type = origType = tmp[ 1 ];
 
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
 

	
 
			// There *must* be a type, no attaching namespace-only handlers
 
			if ( !type ) {
 
				continue;
 
			}
 

	
 
			// If event changes its type, use the special event handlers for the changed type
 
			special = jQuery.event.special[ type ] || {};
 

	
 
			// If selector defined, determine special event api type, otherwise given type
 
			type = ( selector ? special.delegateType : special.bindType ) || type;
 

	
 
			// Update special based on newly reset type
 
			special = jQuery.event.special[ type ] || {};
 

	
 
			// handleObj is passed to all event handlers
 
			handleObj = jQuery.extend( {
 
				type: type,
 
				origType: origType,
 
				data: data,
 
				handler: handler,
 
				guid: handler.guid,
 
				selector: selector,
 
				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
 
				namespace: namespaces.join( "." )
 
			}, handleObjIn );
 

	
 
			// Init the event handler queue if we're the first
 
			if ( !( handlers = events[ type ] ) ) {
 
				handlers = events[ type ] = [];
 
				handlers.delegateCount = 0;
 

	
 
				// Only use addEventListener if the special events handler returns false
 
				if ( !special.setup ||
 
					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
 

	
 
					if ( elem.addEventListener ) {
 
						elem.addEventListener( type, eventHandle );
 
					}
 
				}
 
			}
 

	
 
			if ( special.add ) {
 
				special.add.call( elem, handleObj );
 

	
 
				if ( !handleObj.handler.guid ) {
 
					handleObj.handler.guid = handler.guid;
 
				}
 
			}
 

	
 
			// Add to the element's handler list, delegates in front
 
			if ( selector ) {
 
				handlers.splice( handlers.delegateCount++, 0, handleObj );
 
			} else {
 
				handlers.push( handleObj );
 
			}
 

	
 
			// Keep track of which events have ever been used, for event optimization
 
			jQuery.event.global[ type ] = true;
 
		}
 

	
 
	},
 

	
 
	// Detach an event or set of events from an element
 
	remove: function( elem, types, handler, selector, mappedTypes ) {
 

	
 
		var j, origCount, tmp,
 
			events, t, handleObj,
 
			special, handlers, type, namespaces, origType,
 
			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
 

	
 
		if ( !elemData || !( events = elemData.events ) ) {
 
			return;
 
		}
 

	
 
		// Once for each type.namespace in types; type may be omitted
 
		types = ( types || "" ).match( rnotwhite ) || [ "" ];
 
		t = types.length;
 
		while ( t-- ) {
 
			tmp = rtypenamespace.exec( types[ t ] ) || [];
 
			type = origType = tmp[ 1 ];
 
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
 

	
 
			// Unbind all events (on this namespace, if provided) for the element
 
			if ( !type ) {
 
				for ( type in events ) {
 
					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
 
				}
 
				continue;
 
			}
 

	
 
			special = jQuery.event.special[ type ] || {};
 
			type = ( selector ? special.delegateType : special.bindType ) || type;
 
			handlers = events[ type ] || [];
 
			tmp = tmp[ 2 ] &&
 
				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
 

	
 
			// Remove matching events
 
			origCount = j = handlers.length;
 
			while ( j-- ) {
 
				handleObj = handlers[ j ];
 

	
 
				if ( ( mappedTypes || origType === handleObj.origType ) &&
 
					( !handler || handler.guid === handleObj.guid ) &&
 
					( !tmp || tmp.test( handleObj.namespace ) ) &&
 
					( !selector || selector === handleObj.selector ||
 
						selector === "**" && handleObj.selector ) ) {
 
					handlers.splice( j, 1 );
 

	
 
					if ( handleObj.selector ) {
 
						handlers.delegateCount--;
 
					}
 
					if ( special.remove ) {
 
						special.remove.call( elem, handleObj );
 
					}
 
				}
 
			}
 

	
 
			// Remove generic event handler if we removed something and no more handlers exist
 
			// (avoids potential for endless recursion during removal of special event handlers)
 
			if ( origCount && !handlers.length ) {
 
				if ( !special.teardown ||
 
					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
 

	
 
					jQuery.removeEvent( elem, type, elemData.handle );
 
				}
 

	
 
				delete events[ type ];
 
			}
 
		}
 

	
 
		// Remove data and the expando if it's no longer used
 
		if ( jQuery.isEmptyObject( events ) ) {
 
			dataPriv.remove( elem, "handle events" );
 
		}
 
	},
 

	
 
	dispatch: function( event ) {
 

	
 
		// Make a writable jQuery.Event from the native event object
 
		event = jQuery.event.fix( event );
 

	
 
		var i, j, ret, matched, handleObj,
 
			handlerQueue = [],
 
			args = slice.call( arguments ),
 
			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
 
			special = jQuery.event.special[ event.type ] || {};
 

	
 
		// Use the fix-ed jQuery.Event rather than the (read-only) native event
 
		args[ 0 ] = event;
 
		event.delegateTarget = this;
 

	
 
		// Call the preDispatch hook for the mapped type, and let it bail if desired
 
		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
 
			return;
 
		}
 

	
 
		// Determine handlers
 
		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
 

	
 
		// Run delegates first; they may want to stop propagation beneath us
 
		i = 0;
 
		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
 
			event.currentTarget = matched.elem;
 

	
 
			j = 0;
 
			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 
				!event.isImmediatePropagationStopped() ) {
 

	
 
				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
 
				// a subset or equal to those in the bound event (both can have no namespace).
 
				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
 

	
 
					event.handleObj = handleObj;
 
					event.data = handleObj.data;
 

	
 
					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
 
						handleObj.handler ).apply( matched.elem, args );
 

	
 
					if ( ret !== undefined ) {
 
						if ( ( event.result = ret ) === false ) {
 
							event.preventDefault();
 
							event.stopPropagation();
 
						}
 
					}
 
				}
 
			}
 
		}
 

	
 
		// Call the postDispatch hook for the mapped type
 
		if ( special.postDispatch ) {
 
			special.postDispatch.call( this, event );
 
		}
 

	
 
		return event.result;
 
	},
 

	
 
	handlers: function( event, handlers ) {
 
		var i, matches, sel, handleObj,
 
			handlerQueue = [],
 
			delegateCount = handlers.delegateCount,
 
			cur = event.target;
 

	
 
		// Support (at least): Chrome, IE9
 
		// Find delegate handlers
 
		// Black-hole SVG <use> instance trees (#13180)
 
		//
 
		// Support: Firefox<=42+
 
		// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
 
		if ( delegateCount && cur.nodeType &&
 
			( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
 

	
 
			for ( ; cur !== this; cur = cur.parentNode || this ) {
 

	
 
				// Don't check non-elements (#13208)
 
				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
 
				if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
 
					matches = [];
 
					for ( i = 0; i < delegateCount; i++ ) {
 
						handleObj = handlers[ i ];
 

	
 
						// Don't conflict with Object.prototype properties (#13203)
 
						sel = handleObj.selector + " ";
 

	
 
						if ( matches[ sel ] === undefined ) {
 
							matches[ sel ] = handleObj.needsContext ?
 
								jQuery( sel, this ).index( cur ) > -1 :
 
								jQuery.find( sel, this, null, [ cur ] ).length;
 
						}
 
						if ( matches[ sel ] ) {
 
							matches.push( handleObj );
 
						}
 
					}
 
					if ( matches.length ) {
 
						handlerQueue.push( { elem: cur, handlers: matches } );
 
					}
 
				}
 
			}
 
		}
 

	
 
		// Add the remaining (directly-bound) handlers
 
		if ( delegateCount < handlers.length ) {
 
			handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
 
		}
 

	
 
		return handlerQueue;
 
	},
 

	
 
	// Includes some event props shared by KeyEvent and MouseEvent
 
	props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
 
		"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
 

	
 
	fixHooks: {},
 

	
 
	keyHooks: {
 
		props: "char charCode key keyCode".split( " " ),
 
		filter: function( event, original ) {
 

	
 
			// Add which for key events
 
			if ( event.which == null ) {
 
				event.which = original.charCode != null ? original.charCode : original.keyCode;
 
			}
 

	
 
			return event;
 
		}
 
	},
 

	
 
	mouseHooks: {
 
		props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " +
 
			"screenX screenY toElement" ).split( " " ),
 
		filter: function( event, original ) {
 
			var eventDoc, doc, body,
 
				button = original.button;
 

	
 
			// Calculate pageX/Y if missing and clientX/Y available
 
			if ( event.pageX == null && original.clientX != null ) {
 
				eventDoc = event.target.ownerDocument || document;
 
				doc = eventDoc.documentElement;
 
				body = eventDoc.body;
 

	
 
				event.pageX = original.clientX +
 
					( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
 
					( doc && doc.clientLeft || body && body.clientLeft || 0 );
 
				event.pageY = original.clientY +
 
					( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) -
 
					( doc && doc.clientTop  || body && body.clientTop  || 0 );
 
			}
 

	
 
			// Add which for click: 1 === left; 2 === middle; 3 === right
 
			// Note: button is not normalized, so don't use it
 
			if ( !event.which && button !== undefined ) {
 
				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
 
			}
 

	
 
			return event;
 
		}
 
	},
 

	
 
	fix: function( event ) {
 
		if ( event[ jQuery.expando ] ) {
 
			return event;
 
		}
 

	
 
		// Create a writable copy of the event object and normalize some properties
 
		var i, prop, copy,
 
			type = event.type,
 
			originalEvent = event,
 
			fixHook = this.fixHooks[ type ];
 

	
 
		if ( !fixHook ) {
 
			this.fixHooks[ type ] = fixHook =
 
				rmouseEvent.test( type ) ? this.mouseHooks :
 
				rkeyEvent.test( type ) ? this.keyHooks :
 
				{};
 
		}
 
		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
 

	
 
		event = new jQuery.Event( originalEvent );
 

	
 
		i = copy.length;
 
		while ( i-- ) {
 
			prop = copy[ i ];
 
			event[ prop ] = originalEvent[ prop ];
 
		}
 

	
 
		// Support: Cordova 2.5 (WebKit) (#13255)
 
		// All events should have a target; Cordova deviceready doesn't
 
		if ( !event.target ) {
 
			event.target = document;
 
		}
 

	
 
		// Support: Safari 6.0+, Chrome<28
 
		// Target should not be a text node (#504, #13143)
 
		if ( event.target.nodeType === 3 ) {
 
			event.target = event.target.parentNode;
 
		}
 

	
 
		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
 
	},
 

	
 
	special: {
 
		load: {
 

	
 
			// Prevent triggered image.load events from bubbling to window.load
 
			noBubble: true
 
		},
 
		focus: {
 

	
 
			// Fire native event if possible so blur/focus sequence is correct
 
			trigger: function() {
 
				if ( this !== safeActiveElement() && this.focus ) {
 
					this.focus();
 
					return false;
 
				}
 
			},
 
			delegateType: "focusin"
 
		},
 
		blur: {
 
			trigger: function() {
 
				if ( this === safeActiveElement() && this.blur ) {
 
					this.blur();
 
					return false;
 
				}
 
			},
 
			delegateType: "focusout"
 
		},
 
		click: {
 

	
 
			// For checkbox, fire native event so checked state will be right
 
			trigger: function() {
 
				if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
 
					this.click();
 
					return false;
 
				}
 
			},
 

	
 
			// For cross-browser consistency, don't fire native .click() on links
 
			_default: function( event ) {
 
				return jQuery.nodeName( event.target, "a" );
 
			}
 
		},
 

	
 
		beforeunload: {
 
			postDispatch: function( event ) {
 

	
 
				// Support: Firefox 20+
 
				// Firefox doesn't alert if the returnValue field is not set.
 
				if ( event.result !== undefined && event.originalEvent ) {
 
					event.originalEvent.returnValue = event.result;
 
				}
 
			}
 
		}
 
	}
 
};
 

	
 
jQuery.removeEvent = function( elem, type, handle ) {
 

	
 
	// This "if" is needed for plain objects
 
	if ( elem.removeEventListener ) {
 
		elem.removeEventListener( type, handle );
 
	}
 
};
 

	
 
jQuery.Event = function( src, props ) {
 

	
 
	// Allow instantiation without the 'new' keyword
 
	if ( !( this instanceof jQuery.Event ) ) {
 
		return new jQuery.Event( src, props );
 
	}
 

	
 
	// Event object
 
	if ( src && src.type ) {
 
		this.originalEvent = src;
 
		this.type = src.type;
 

	
 
		// Events bubbling up the document may have been marked as prevented
 
		// by a handler lower down the tree; reflect the correct value.
 
		this.isDefaultPrevented = src.defaultPrevented ||
 
				src.defaultPrevented === undefined &&
 

	
 
				// Support: Android<4.0
 
				src.returnValue === false ?
 
			returnTrue :
 
			returnFalse;
 

	
 
	// Event type
 
	} else {
 
		this.type = src;
 
	}
 

	
 
	// Put explicitly provided properties onto the event object
 
	if ( props ) {
 
		jQuery.extend( this, props );
 
	}
 

	
 
	// Create a timestamp if incoming event doesn't have one
 
	this.timeStamp = src && src.timeStamp || jQuery.now();
 

	
 
	// Mark it as fixed
 
	this[ jQuery.expando ] = true;
 
};
 

	
 
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
 
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
 
jQuery.Event.prototype = {
 
	constructor: jQuery.Event,
 
	isDefaultPrevented: returnFalse,
 
	isPropagationStopped: returnFalse,
 
	isImmediatePropagationStopped: returnFalse,
 

	
 
	preventDefault: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isDefaultPrevented = returnTrue;
 

	
 
		if ( e ) {
 
			e.preventDefault();
 
		}
 
	},
 
	stopPropagation: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isPropagationStopped = returnTrue;
 

	
 
		if ( e ) {
 
			e.stopPropagation();
 
		}
 
	},
 
	stopImmediatePropagation: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isImmediatePropagationStopped = returnTrue;
 

	
 
		if ( e ) {
 
			e.stopImmediatePropagation();
 
		}
 

	
 
		this.stopPropagation();
 
	}
 
};
 

	
 
// Create mouseenter/leave events using mouseover/out and event-time checks
 
// so that event delegation works in jQuery.
 
// Do the same for pointerenter/pointerleave and pointerover/pointerout
 
//
 
// Support: Safari 7 only
 
// Safari sends mouseenter too often; see:
 
// https://code.google.com/p/chromium/issues/detail?id=470258
 
// for the description of the bug (it existed in older Chrome versions as well).
 
jQuery.each( {
 
	mouseenter: "mouseover",
 
	mouseleave: "mouseout",
 
	pointerenter: "pointerover",
 
	pointerleave: "pointerout"
 
}, function( orig, fix ) {
 
	jQuery.event.special[ orig ] = {
 
		delegateType: fix,
 
		bindType: fix,
 

	
 
		handle: function( event ) {
 
			var ret,
 
				target = this,
 
				related = event.relatedTarget,
 
				handleObj = event.handleObj;
 

	
 
			// For mouseenter/leave call the handler if related is outside the target.
 
			// NB: No relatedTarget if the mouse left/entered the browser window
 
			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
 
				event.type = handleObj.origType;
 
				ret = handleObj.handler.apply( this, arguments );
 
				event.type = fix;
 
			}
 
			return ret;
 
		}
 
	};
 
} );
 

	
 
jQuery.fn.extend( {
 
	on: function( types, selector, data, fn ) {
 
		return on( this, types, selector, data, fn );
 
	},
 
	one: function( types, selector, data, fn ) {
 
		return on( this, types, selector, data, fn, 1 );
 
	},
 
	off: function( types, selector, fn ) {
 
		var handleObj, type;
 
		if ( types && types.preventDefault && types.handleObj ) {
 

	
 
			// ( event )  dispatched jQuery.Event
 
			handleObj = types.handleObj;
 
			jQuery( types.delegateTarget ).off(
 
				handleObj.namespace ?
 
					handleObj.origType + "." + handleObj.namespace :
 
					handleObj.origType,
 
				handleObj.selector,
 
				handleObj.handler
 
			);
 
			return this;
 
		}
 
		if ( typeof types === "object" ) {
 

	
 
			// ( types-object [, selector] )
 
			for ( type in types ) {
 
				this.off( type, selector, types[ type ] );
 
			}
 
			return this;
 
		}
 
		if ( selector === false || typeof selector === "function" ) {
 

	
 
			// ( types [, fn] )
 
			fn = selector;
 
			selector = undefined;
 
		}
 
		if ( fn === false ) {
 
			fn = returnFalse;
 
		}
 
		return this.each( function() {
 
			jQuery.event.remove( this, types, fn, selector );
 
		} );
 
	}
 
} );
 

	
 

	
 
var
 
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
 

	
 
	// Support: IE 10-11, Edge 10240+
 
	// In IE/Edge using regex groups here causes severe slowdowns.
 
	// See https://connect.microsoft.com/IE/feedback/details/1736512/
 
	rnoInnerhtml = /<script|<style|<link/i,
 

	
 
	// checked="checked" or checked
 
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
 
	rscriptTypeMasked = /^true\/(.*)/,
 
	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
 

	
 
// Manipulating tables requires a tbody
 
function manipulationTarget( elem, content ) {
 
	return jQuery.nodeName( elem, "table" ) &&
 
		jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
 

	
 
		elem.getElementsByTagName( "tbody" )[ 0 ] ||
 
			elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
 
		elem;
 
}
 

	
 
// Replace/restore the type attribute of script elements for safe DOM manipulation
 
function disableScript( elem ) {
 
	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
 
	return elem;
 
}
 
function restoreScript( elem ) {
 
	var match = rscriptTypeMasked.exec( elem.type );
 

	
 
	if ( match ) {
 
		elem.type = match[ 1 ];
 
	} else {
 
		elem.removeAttribute( "type" );
 
	}
 

	
 
	return elem;
 
}
 

	
 
function cloneCopyEvent( src, dest ) {
 
	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
 

	
 
	if ( dest.nodeType !== 1 ) {
 
		return;
 
	}
 

	
 
	// 1. Copy private data: events, handlers, etc.
 
	if ( dataPriv.hasData( src ) ) {
 
		pdataOld = dataPriv.access( src );
 
		pdataCur = dataPriv.set( dest, pdataOld );
 
		events = pdataOld.events;
 

	
 
		if ( events ) {
 
			delete pdataCur.handle;
 
			pdataCur.events = {};
 

	
 
			for ( type in events ) {
 
				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
 
					jQuery.event.add( dest, type, events[ type ][ i ] );
 
				}
 
			}
 
		}
 
	}
 

	
 
	// 2. Copy user data
 
	if ( dataUser.hasData( src ) ) {
 
		udataOld = dataUser.access( src );
 
		udataCur = jQuery.extend( {}, udataOld );
 

	
 
		dataUser.set( dest, udataCur );
 
	}
 
}
 

	
 
// Fix IE bugs, see support tests
 
function fixInput( src, dest ) {
 
	var nodeName = dest.nodeName.toLowerCase();
 

	
 
	// Fails to persist the checked state of a cloned checkbox or radio button.
 
	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
 
		dest.checked = src.checked;
 

	
 
	// Fails to return the selected option to the default selected state when cloning options
 
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
 
		dest.defaultValue = src.defaultValue;
 
	}
 
}
 

	
 
function domManip( collection, args, callback, ignored ) {
 

	
 
	// Flatten any nested arrays
 
	args = concat.apply( [], args );
 

	
 
	var fragment, first, scripts, hasScripts, node, doc,
 
		i = 0,
 
		l = collection.length,
 
		iNoClone = l - 1,
 
		value = args[ 0 ],
 
		isFunction = jQuery.isFunction( value );
 

	
 
	// We can't cloneNode fragments that contain checked, in WebKit
 
	if ( isFunction ||
 
			( l > 1 && typeof value === "string" &&
 
				!support.checkClone && rchecked.test( value ) ) ) {
 
		return collection.each( function( index ) {
 
			var self = collection.eq( index );
 
			if ( isFunction ) {
 
				args[ 0 ] = value.call( this, index, self.html() );
 
			}
 
			domManip( self, args, callback, ignored );
 
		} );
 
	}
 

	
 
	if ( l ) {
 
		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
 
		first = fragment.firstChild;
 

	
 
		if ( fragment.childNodes.length === 1 ) {
 
			fragment = first;
 
		}
 

	
 
		// Require either new content or an interest in ignored elements to invoke the callback
 
		if ( first || ignored ) {
 
			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
 
			hasScripts = scripts.length;
 

	
 
			// Use the original fragment for the last item
 
			// instead of the first because it can end up
 
			// being emptied incorrectly in certain situations (#8070).
 
			for ( ; i < l; i++ ) {
 
				node = fragment;
 

	
 
				if ( i !== iNoClone ) {
 
					node = jQuery.clone( node, true, true );
 

	
 
					// Keep references to cloned scripts for later restoration
 
					if ( hasScripts ) {
 

	
 
						// Support: Android<4.1, PhantomJS<2
 
						// push.apply(_, arraylike) throws on ancient WebKit
 
						jQuery.merge( scripts, getAll( node, "script" ) );
 
					}
 
				}
 

	
 
				callback.call( collection[ i ], node, i );
 
			}
 

	
 
			if ( hasScripts ) {
 
				doc = scripts[ scripts.length - 1 ].ownerDocument;
 

	
 
				// Reenable scripts
 
				jQuery.map( scripts, restoreScript );
 

	
 
				// Evaluate executable scripts on first document insertion
 
				for ( i = 0; i < hasScripts; i++ ) {
 
					node = scripts[ i ];
 
					if ( rscriptType.test( node.type || "" ) &&
 
						!dataPriv.access( node, "globalEval" ) &&
 
						jQuery.contains( doc, node ) ) {
 

	
 
						if ( node.src ) {
 

	
 
							// Optional AJAX dependency, but won't run scripts if not present
 
							if ( jQuery._evalUrl ) {
 
								jQuery._evalUrl( node.src );
 
							}
 
						} else {
 
							jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	return collection;
 
}
 

	
 
function remove( elem, selector, keepData ) {
 
	var node,
 
		nodes = selector ? jQuery.filter( selector, elem ) : elem,
 
		i = 0;
 

	
 
	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
 
		if ( !keepData && node.nodeType === 1 ) {
 
			jQuery.cleanData( getAll( node ) );
 
		}
 

	
 
		if ( node.parentNode ) {
 
			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
 
				setGlobalEval( getAll( node, "script" ) );
 
			}
 
			node.parentNode.removeChild( node );
 
		}
 
	}
 

	
 
	return elem;
 
}
 

	
 
jQuery.extend( {
 
	htmlPrefilter: function( html ) {
 
		return html.replace( rxhtmlTag, "<$1></$2>" );
 
	},
 

	
 
	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 
		var i, l, srcElements, destElements,
 
			clone = elem.cloneNode( true ),
 
			inPage = jQuery.contains( elem.ownerDocument, elem );
 

	
 
		// Fix IE cloning issues
 
		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
 
				!jQuery.isXMLDoc( elem ) ) {
 

	
 
			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
 
			destElements = getAll( clone );
 
			srcElements = getAll( elem );
 

	
 
			for ( i = 0, l = srcElements.length; i < l; i++ ) {
 
				fixInput( srcElements[ i ], destElements[ i ] );
 
			}
 
		}
 

	
 
		// Copy the events from the original to the clone
 
		if ( dataAndEvents ) {
 
			if ( deepDataAndEvents ) {
 
				srcElements = srcElements || getAll( elem );
 
				destElements = destElements || getAll( clone );
 

	
 
				for ( i = 0, l = srcElements.length; i < l; i++ ) {
 
					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
 
				}
 
			} else {
 
				cloneCopyEvent( elem, clone );
 
			}
 
		}
 

	
 
		// Preserve script evaluation history
 
		destElements = getAll( clone, "script" );
 
		if ( destElements.length > 0 ) {
 
			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
 
		}
 

	
 
		// Return the cloned set
 
		return clone;
 
	},
 

	
 
	cleanData: function( elems ) {
 
		var data, elem, type,
 
			special = jQuery.event.special,
 
			i = 0;
 

	
 
		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
 
			if ( acceptData( elem ) ) {
 
				if ( ( data = elem[ dataPriv.expando ] ) ) {
 
					if ( data.events ) {
 
						for ( type in data.events ) {
 
							if ( special[ type ] ) {
 
								jQuery.event.remove( elem, type );
 

	
 
							// This is a shortcut to avoid jQuery.event.remove's overhead
 
							} else {
 
								jQuery.removeEvent( elem, type, data.handle );
 
							}
 
						}
 
					}
 

	
 
					// Support: Chrome <= 35-45+
 
					// Assign undefined instead of using delete, see Data#remove
 
					elem[ dataPriv.expando ] = undefined;
 
				}
 
				if ( elem[ dataUser.expando ] ) {
 

	
 
					// Support: Chrome <= 35-45+
 
					// Assign undefined instead of using delete, see Data#remove
 
					elem[ dataUser.expando ] = undefined;
 
				}
 
			}
 
		}
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 

	
 
	// Keep domManip exposed until 3.0 (gh-2225)
 
	domManip: domManip,
 

	
 
	detach: function( selector ) {
 
		return remove( this, selector, true );
 
	},
 

	
 
	remove: function( selector ) {
 
		return remove( this, selector );
 
	},
 

	
 
	text: function( value ) {
 
		return access( this, function( value ) {
 
			return value === undefined ?
 
				jQuery.text( this ) :
 
				this.empty().each( function() {
 
					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
						this.textContent = value;
 
					}
 
				} );
 
		}, null, value, arguments.length );
 
	},
 

	
 
	append: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
				var target = manipulationTarget( this, elem );
 
				target.appendChild( elem );
 
			}
 
		} );
 
	},
 

	
 
	prepend: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
				var target = manipulationTarget( this, elem );
 
				target.insertBefore( elem, target.firstChild );
 
			}
 
		} );
 
	},
 

	
 
	before: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.parentNode ) {
 
				this.parentNode.insertBefore( elem, this );
 
			}
 
		} );
 
	},
 

	
 
	after: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.parentNode ) {
 
				this.parentNode.insertBefore( elem, this.nextSibling );
 
			}
 
		} );
 
	},
 

	
 
	empty: function() {
 
		var elem,
 
			i = 0;
 

	
 
		for ( ; ( elem = this[ i ] ) != null; i++ ) {
 
			if ( elem.nodeType === 1 ) {
 

	
 
				// Prevent memory leaks
 
				jQuery.cleanData( getAll( elem, false ) );
 

	
 
				// Remove any remaining nodes
 
				elem.textContent = "";
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	clone: function( dataAndEvents, deepDataAndEvents ) {
 
		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
 
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
 

	
 
		return this.map( function() {
 
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
 
		} );
 
	},
 

	
 
	html: function( value ) {
 
		return access( this, function( value ) {
 
			var elem = this[ 0 ] || {},
 
				i = 0,
 
				l = this.length;
 

	
 
			if ( value === undefined && elem.nodeType === 1 ) {
 
				return elem.innerHTML;
 
			}
 

	
 
			// See if we can take a shortcut and just use innerHTML
 
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
 
				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
 

	
 
				value = jQuery.htmlPrefilter( value );
 

	
 
				try {
 
					for ( ; i < l; i++ ) {
 
						elem = this[ i ] || {};
 

	
 
						// Remove element nodes and prevent memory leaks
 
						if ( elem.nodeType === 1 ) {
 
							jQuery.cleanData( getAll( elem, false ) );
 
							elem.innerHTML = value;
 
						}
 
					}
 

	
 
					elem = 0;
 

	
 
				// If using innerHTML throws an exception, use the fallback method
 
				} catch ( e ) {}
 
			}
 

	
 
			if ( elem ) {
 
				this.empty().append( value );
 
			}
 
		}, null, value, arguments.length );
 
	},
 

	
 
	replaceWith: function() {
 
		var ignored = [];
 

	
 
		// Make the changes, replacing each non-ignored context element with the new content
 
		return domManip( this, arguments, function( elem ) {
 
			var parent = this.parentNode;
 

	
 
			if ( jQuery.inArray( this, ignored ) < 0 ) {
 
				jQuery.cleanData( getAll( this ) );
 
				if ( parent ) {
 
					parent.replaceChild( elem, this );
 
				}
 
			}
 

	
 
		// Force callback invocation
 
		}, ignored );
 
	}
 
} );
 

	
 
jQuery.each( {
 
	appendTo: "append",
 
	prependTo: "prepend",
 
	insertBefore: "before",
 
	insertAfter: "after",
 
	replaceAll: "replaceWith"
 
}, function( name, original ) {
 
	jQuery.fn[ name ] = function( selector ) {
 
		var elems,
 
			ret = [],
 
			insert = jQuery( selector ),
 
			last = insert.length - 1,
 
			i = 0;
 

	
 
		for ( ; i <= last; i++ ) {
 
			elems = i === last ? this : this.clone( true );
 
			jQuery( insert[ i ] )[ original ]( elems );
 

	
 
			// Support: QtWebKit
 
			// .get() because push.apply(_, arraylike) throws
 
			push.apply( ret, elems.get() );
 
		}
 

	
 
		return this.pushStack( ret );
 
	};
 
} );
 

	
 

	
 
var iframe,
 
	elemdisplay = {
 

	
 
		// Support: Firefox
 
		// We have to pre-define these values for FF (#10227)
 
		HTML: "block",
 
		BODY: "block"
 
	};
 

	
 
/**
 
 * Retrieve the actual display of a element
 
 * @param {String} name nodeName of the element
 
 * @param {Object} doc Document object
 
 */
 

	
 
// Called only from within defaultDisplay
 
function actualDisplay( name, doc ) {
 
	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
 

	
 
		display = jQuery.css( elem[ 0 ], "display" );
 

	
 
	// We don't have any data stored on the element,
 
	// so use "detach" method as fast way to get rid of the element
 
	elem.detach();
 

	
 
	return display;
 
}
 

	
 
/**
 
 * Try to determine the default display value of an element
 
 * @param {String} nodeName
 
 */
 
function defaultDisplay( nodeName ) {
 
	var doc = document,
 
		display = elemdisplay[ nodeName ];
 

	
 
	if ( !display ) {
 
		display = actualDisplay( nodeName, doc );
 

	
 
		// If the simple way fails, read from inside an iframe
 
		if ( display === "none" || !display ) {
 

	
 
			// Use the already-created iframe if possible
 
			iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
 
				.appendTo( doc.documentElement );
 

	
 
			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
 
			doc = iframe[ 0 ].contentDocument;
 

	
 
			// Support: IE
 
			doc.write();
 
			doc.close();
 

	
 
			display = actualDisplay( nodeName, doc );
 
			iframe.detach();
 
		}
 

	
 
		// Store the correct default display
 
		elemdisplay[ nodeName ] = display;
 
	}
 

	
 
	return display;
 
}
 
var rmargin = ( /^margin/ );
 

	
 
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
 

	
 
var getStyles = function( elem ) {
 

	
 
		// Support: IE<=11+, Firefox<=30+ (#15098, #14150)
 
		// IE throws on elements created in popups
 
		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
 
		var view = elem.ownerDocument.defaultView;
 

	
 
		if ( !view || !view.opener ) {
 
			view = window;
 
		}
 

	
 
		return view.getComputedStyle( elem );
 
	};
 

	
 
var swap = function( elem, options, callback, args ) {
 
	var ret, name,
 
		old = {};
 

	
 
	// Remember the old values, and insert the new ones
 
	for ( name in options ) {
 
		old[ name ] = elem.style[ name ];
 
		elem.style[ name ] = options[ name ];
 
	}
 

	
 
	ret = callback.apply( elem, args || [] );
 

	
 
	// Revert the old values
 
	for ( name in options ) {
 
		elem.style[ name ] = old[ name ];
 
	}
 

	
 
	return ret;
 
};
 

	
 

	
 
var documentElement = document.documentElement;
 

	
 

	
 

	
 
( function() {
 
	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
 
		container = document.createElement( "div" ),
 
		div = document.createElement( "div" );
 

	
 
	// Finish early in limited (non-browser) environments
 
	if ( !div.style ) {
 
		return;
 
	}
 

	
 
	// Support: IE9-11+
 
	// Style of cloned element affects source element cloned (#8908)
 
	div.style.backgroundClip = "content-box";
 
	div.cloneNode( true ).style.backgroundClip = "";
 
	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 

	
 
	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
 
		"padding:0;margin-top:1px;position:absolute";
 
	container.appendChild( div );
 

	
 
	// Executing both pixelPosition & boxSizingReliable tests require only one layout
 
	// so they're executed at the same time to save the second computation.
 
	function computeStyleTests() {
 
		div.style.cssText =
 

	
 
			// Support: Firefox<29, Android 2.3
 
			// Vendor-prefix box-sizing
 
			"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
 
			"position:relative;display:block;" +
 
			"margin:auto;border:1px;padding:1px;" +
 
			"top:1%;width:50%";
 
		div.innerHTML = "";
 
		documentElement.appendChild( container );
 

	
 
		var divStyle = window.getComputedStyle( div );
 
		pixelPositionVal = divStyle.top !== "1%";
 
		reliableMarginLeftVal = divStyle.marginLeft === "2px";
 
		boxSizingReliableVal = divStyle.width === "4px";
 

	
 
		// Support: Android 4.0 - 4.3 only
 
		// Some styles come back with percentage values, even though they shouldn't
 
		div.style.marginRight = "50%";
 
		pixelMarginRightVal = divStyle.marginRight === "4px";
 

	
 
		documentElement.removeChild( container );
 
	}
 

	
 
	jQuery.extend( support, {
 
		pixelPosition: function() {
 

	
 
			// This test is executed only once but we still do memoizing
 
			// since we can use the boxSizingReliable pre-computing.
 
			// No need to check if the test was already performed, though.
 
			computeStyleTests();
 
			return pixelPositionVal;
 
		},
 
		boxSizingReliable: function() {
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return boxSizingReliableVal;
 
		},
 
		pixelMarginRight: function() {
 

	
 
			// Support: Android 4.0-4.3
 
			// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal
 
			// since that compresses better and they're computed together anyway.
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return pixelMarginRightVal;
 
		},
 
		reliableMarginLeft: function() {
 

	
 
			// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return reliableMarginLeftVal;
 
		},
 
		reliableMarginRight: function() {
 

	
 
			// Support: Android 2.3
 
			// Check if div with explicit width and no margin-right incorrectly
 
			// gets computed margin-right based on width of container. (#3333)
 
			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
 
			// This support function is only executed once so no memoizing is needed.
 
			var ret,
 
				marginDiv = div.appendChild( document.createElement( "div" ) );
 

	
 
			// Reset CSS: box-sizing; display; margin; border; padding
 
			marginDiv.style.cssText = div.style.cssText =
 

	
 
				// Support: Android 2.3
 
				// Vendor-prefix box-sizing
 
				"-webkit-box-sizing:content-box;box-sizing:content-box;" +
 
				"display:block;margin:0;border:0;padding:0";
 
			marginDiv.style.marginRight = marginDiv.style.width = "0";
 
			div.style.width = "1px";
 
			documentElement.appendChild( container );
 

	
 
			ret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );
 

	
 
			documentElement.removeChild( container );
 
			div.removeChild( marginDiv );
 

	
 
			return ret;
 
		}
 
	} );
 
} )();
 

	
 

	
 
function curCSS( elem, name, computed ) {
 
	var width, minWidth, maxWidth, ret,
 
		style = elem.style;
 

	
 
	computed = computed || getStyles( elem );
 
	ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
 

	
 
	// Support: Opera 12.1x only
 
	// Fall back to style even without computed
 
	// computed is undefined for elems on document fragments
 
	if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
 
		ret = jQuery.style( elem, name );
 
	}
 

	
 
	// Support: IE9
 
	// getPropertyValue is only needed for .css('filter') (#12537)
 
	if ( computed ) {
 

	
 
		// A tribute to the "awesome hack by Dean Edwards"
 
		// Android Browser returns percentage for some values,
 
		// but width seems to be reliably pixels.
 
		// This is against the CSSOM draft spec:
 
		// http://dev.w3.org/csswg/cssom/#resolved-values
 
		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
 

	
 
			// Remember the original values
 
			width = style.width;
 
			minWidth = style.minWidth;
 
			maxWidth = style.maxWidth;
 

	
 
			// Put in the new values to get a computed value out
 
			style.minWidth = style.maxWidth = style.width = ret;
 
			ret = computed.width;
 

	
 
			// Revert the changed values
 
			style.width = width;
 
			style.minWidth = minWidth;
 
			style.maxWidth = maxWidth;
 
		}
 
	}
 

	
 
	return ret !== undefined ?
 

	
 
		// Support: IE9-11+
 
		// IE returns zIndex value as an integer.
 
		ret + "" :
 
		ret;
 
}
 

	
 

	
 
function addGetHookIf( conditionFn, hookFn ) {
 

	
 
	// Define the hook, we'll check on the first run if it's really needed.
 
	return {
 
		get: function() {
 
			if ( conditionFn() ) {
 

	
 
				// Hook not needed (or it's not possible to use it due
 
				// to missing dependency), remove it.
 
				delete this.get;
 
				return;
 
			}
 

	
 
			// Hook needed; redefine it so that the support test is not executed again.
 
			return ( this.get = hookFn ).apply( this, arguments );
 
		}
 
	};
 
}
 

	
 

	
 
var
 

	
 
	// Swappable if display is none or starts with table
 
	// except "table", "table-cell", or "table-caption"
 
	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
 
	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
 

	
 
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
 
	cssNormalTransform = {
 
		letterSpacing: "0",
 
		fontWeight: "400"
 
	},
 

	
 
	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
 
	emptyStyle = document.createElement( "div" ).style;
 

	
 
// Return a css property mapped to a potentially vendor prefixed property
 
function vendorPropName( name ) {
 

	
 
	// Shortcut for names that are not vendor prefixed
 
	if ( name in emptyStyle ) {
 
		return name;
 
	}
 

	
 
	// Check for vendor prefixed names
 
	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
 
		i = cssPrefixes.length;
 

	
 
	while ( i-- ) {
 
		name = cssPrefixes[ i ] + capName;
 
		if ( name in emptyStyle ) {
 
			return name;
 
		}
 
	}
 
}
 

	
 
function setPositiveNumber( elem, value, subtract ) {
 

	
 
	// Any relative (+/-) values have already been
 
	// normalized at this point
 
	var matches = rcssNum.exec( value );
 
	return matches ?
 

	
 
		// Guard against undefined "subtract", e.g., when used as in cssHooks
 
		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
 
		value;
 
}
 

	
 
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
 
	var i = extra === ( isBorderBox ? "border" : "content" ) ?
 

	
 
		// If we already have the right measurement, avoid augmentation
 
		4 :
 

	
 
		// Otherwise initialize for horizontal or vertical properties
 
		name === "width" ? 1 : 0,
 

	
 
		val = 0;
 

	
 
	for ( ; i < 4; i += 2 ) {
 

	
 
		// Both box models exclude margin, so add it if we want it
 
		if ( extra === "margin" ) {
 
			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
 
		}
 

	
 
		if ( isBorderBox ) {
 

	
 
			// border-box includes padding, so remove it if we want content
 
			if ( extra === "content" ) {
 
				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 
			}
 

	
 
			// At this point, extra isn't border nor margin, so remove border
 
			if ( extra !== "margin" ) {
 
				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 
			}
 
		} else {
 

	
 
			// At this point, extra isn't content, so add padding
 
			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 

	
 
			// At this point, extra isn't content nor padding, so add border
 
			if ( extra !== "padding" ) {
 
				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 
			}
 
		}
 
	}
 

	
 
	return val;
 
}
 

	
 
function getWidthOrHeight( elem, name, extra ) {
 

	
 
	// Start with offset property, which is equivalent to the border-box value
 
	var valueIsBorderBox = true,
 
		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
 
		styles = getStyles( elem ),
 
		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
 

	
 
	// Support: IE11 only
 
	// In IE 11 fullscreen elements inside of an iframe have
 
	// 100x too small dimensions (gh-1764).
 
	if ( document.msFullscreenElement && window.top !== window ) {
 

	
 
		// Support: IE11 only
 
		// Running getBoundingClientRect on a disconnected node
 
		// in IE throws an error.
 
		if ( elem.getClientRects().length ) {
 
			val = Math.round( elem.getBoundingClientRect()[ name ] * 100 );
 
		}
 
	}
 

	
 
	// Some non-html elements return undefined for offsetWidth, so check for null/undefined
 
	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
 
	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
 
	if ( val <= 0 || val == null ) {
 

	
 
		// Fall back to computed then uncomputed css if necessary
 
		val = curCSS( elem, name, styles );
 
		if ( val < 0 || val == null ) {
 
			val = elem.style[ name ];
 
		}
 

	
 
		// Computed unit is not pixels. Stop here and return.
 
		if ( rnumnonpx.test( val ) ) {
 
			return val;
 
		}
 

	
 
		// Check for style in case a browser which returns unreliable values
 
		// for getComputedStyle silently falls back to the reliable elem.style
 
		valueIsBorderBox = isBorderBox &&
 
			( support.boxSizingReliable() || val === elem.style[ name ] );
 

	
 
		// Normalize "", auto, and prepare for extra
 
		val = parseFloat( val ) || 0;
 
	}
 

	
 
	// Use the active box-sizing model to add/subtract irrelevant styles
 
	return ( val +
 
		augmentWidthOrHeight(
 
			elem,
 
			name,
 
			extra || ( isBorderBox ? "border" : "content" ),
 
			valueIsBorderBox,
 
			styles
 
		)
 
	) + "px";
 
}
 

	
 
function showHide( elements, show ) {
 
	var display, elem, hidden,
 
		values = [],
 
		index = 0,
 
		length = elements.length;
 

	
 
	for ( ; index < length; index++ ) {
 
		elem = elements[ index ];
 
		if ( !elem.style ) {
 
			continue;
 
		}
 

	
 
		values[ index ] = dataPriv.get( elem, "olddisplay" );
 
		display = elem.style.display;
 
		if ( show ) {
 

	
 
			// Reset the inline display of this element to learn if it is
 
			// being hidden by cascaded rules or not
 
			if ( !values[ index ] && display === "none" ) {
 
				elem.style.display = "";
 
			}
 

	
 
			// Set elements which have been overridden with display: none
 
			// in a stylesheet to whatever the default browser style is
 
			// for such an element
 
			if ( elem.style.display === "" && isHidden( elem ) ) {
 
				values[ index ] = dataPriv.access(
 
					elem,
 
					"olddisplay",
 
					defaultDisplay( elem.nodeName )
 
				);
 
			}
 
		} else {
 
			hidden = isHidden( elem );
 

	
 
			if ( display !== "none" || !hidden ) {
 
				dataPriv.set(
 
					elem,
 
					"olddisplay",
 
					hidden ? display : jQuery.css( elem, "display" )
 
				);
 
			}
 
		}
 
	}
 

	
 
	// Set the display of most of the elements in a second loop
 
	// to avoid the constant reflow
 
	for ( index = 0; index < length; index++ ) {
 
		elem = elements[ index ];
 
		if ( !elem.style ) {
 
			continue;
 
		}
 
		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
 
			elem.style.display = show ? values[ index ] || "" : "none";
 
		}
 
	}
 

	
 
	return elements;
 
}
 

	
 
jQuery.extend( {
 

	
 
	// Add in style property hooks for overriding the default
 
	// behavior of getting and setting a style property
 
	cssHooks: {
 
		opacity: {
 
			get: function( elem, computed ) {
 
				if ( computed ) {
 

	
 
					// We should always get a number back from opacity
 
					var ret = curCSS( elem, "opacity" );
 
					return ret === "" ? "1" : ret;
 
				}
 
			}
 
		}
 
	},
 

	
 
	// Don't automatically add "px" to these possibly-unitless properties
 
	cssNumber: {
 
		"animationIterationCount": true,
 
		"columnCount": true,
 
		"fillOpacity": true,
 
		"flexGrow": true,
 
		"flexShrink": true,
 
		"fontWeight": true,
 
		"lineHeight": true,
 
		"opacity": true,
 
		"order": true,
 
		"orphans": true,
 
		"widows": true,
 
		"zIndex": true,
 
		"zoom": true
 
	},
 

	
 
	// Add in properties whose names you wish to fix before
 
	// setting or getting the value
 
	cssProps: {
 
		"float": "cssFloat"
 
	},
 

	
 
	// Get and set the style property on a DOM Node
 
	style: function( elem, name, value, extra ) {
 

	
 
		// Don't set styles on text and comment nodes
 
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
 
			return;
 
		}
 

	
 
		// Make sure that we're working with the right name
 
		var ret, type, hooks,
 
			origName = jQuery.camelCase( name ),
 
			style = elem.style;
 

	
 
		name = jQuery.cssProps[ origName ] ||
 
			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
 

	
 
		// Gets hook for the prefixed version, then unprefixed version
 
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 

	
 
		// Check if we're setting a value
 
		if ( value !== undefined ) {
 
			type = typeof value;
 

	
 
			// Convert "+=" or "-=" to relative numbers (#7345)
 
			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
 
				value = adjustCSS( elem, name, ret );
 

	
 
				// Fixes bug #9237
 
				type = "number";
 
			}
 

	
 
			// Make sure that null and NaN values aren't set (#7116)
 
			if ( value == null || value !== value ) {
 
				return;
 
			}
 

	
 
			// If a number was passed in, add the unit (except for certain CSS properties)
 
			if ( type === "number" ) {
 
				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 
			}
 

	
 
			// Support: IE9-11+
 
			// background-* props affect original clone's values
 
			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
 
				style[ name ] = "inherit";
 
			}
 

	
 
			// If a hook was provided, use that value, otherwise just set the specified value
 
			if ( !hooks || !( "set" in hooks ) ||
 
				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
 

	
 
				style[ name ] = value;
 
			}
 

	
 
		} else {
 

	
 
			// If a hook was provided get the non-computed value from there
 
			if ( hooks && "get" in hooks &&
 
				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
 

	
 
				return ret;
 
			}
 

	
 
			// Otherwise just get the value from the style object
 
			return style[ name ];
 
		}
 
	},
 

	
 
	css: function( elem, name, extra, styles ) {
 
		var val, num, hooks,
 
			origName = jQuery.camelCase( name );
 

	
 
		// Make sure that we're working with the right name
 
		name = jQuery.cssProps[ origName ] ||
 
			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
 

	
 
		// Try prefixed name followed by the unprefixed name
 
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 

	
 
		// If a hook was provided get the computed value from there
 
		if ( hooks && "get" in hooks ) {
 
			val = hooks.get( elem, true, extra );
 
		}
 

	
 
		// Otherwise, if a way to get the computed value exists, use that
 
		if ( val === undefined ) {
 
			val = curCSS( elem, name, styles );
 
		}
 

	
 
		// Convert "normal" to computed value
 
		if ( val === "normal" && name in cssNormalTransform ) {
 
			val = cssNormalTransform[ name ];
 
		}
 

	
 
		// Make numeric if forced or a qualifier was provided and val looks numeric
 
		if ( extra === "" || extra ) {
 
			num = parseFloat( val );
 
			return extra === true || isFinite( num ) ? num || 0 : val;
 
		}
 
		return val;
 
	}
 
} );
 

	
 
jQuery.each( [ "height", "width" ], function( i, name ) {
 
	jQuery.cssHooks[ name ] = {
 
		get: function( elem, computed, extra ) {
 
			if ( computed ) {
 

	
 
				// Certain elements can have dimension info if we invisibly show them
 
				// but it must have a current display style that would benefit
 
				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
 
					elem.offsetWidth === 0 ?
 
						swap( elem, cssShow, function() {
 
							return getWidthOrHeight( elem, name, extra );
 
						} ) :
 
						getWidthOrHeight( elem, name, extra );
 
			}
 
		},
 

	
 
		set: function( elem, value, extra ) {
 
			var matches,
 
				styles = extra && getStyles( elem ),
 
				subtract = extra && augmentWidthOrHeight(
 
					elem,
 
					name,
 
					extra,
 
					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
 
					styles
 
				);
 

	
 
			// Convert to pixels if value adjustment is needed
 
			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
 
				( matches[ 3 ] || "px" ) !== "px" ) {
 

	
 
				elem.style[ name ] = value;
 
				value = jQuery.css( elem, name );
 
			}
 

	
 
			return setPositiveNumber( elem, value, subtract );
 
		}
 
	};
 
} );
 

	
 
jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
 
	function( elem, computed ) {
 
		if ( computed ) {
 
			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
 
				elem.getBoundingClientRect().left -
 
					swap( elem, { marginLeft: 0 }, function() {
 
						return elem.getBoundingClientRect().left;
 
					} )
 
				) + "px";
 
		}
 
	}
 
);
 

	
 
// Support: Android 2.3
 
jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
 
	function( elem, computed ) {
 
		if ( computed ) {
 
			return swap( elem, { "display": "inline-block" },
 
				curCSS, [ elem, "marginRight" ] );
 
		}
 
	}
 
);
 

	
 
// These hooks are used by animate to expand properties
 
jQuery.each( {
 
	margin: "",
 
	padding: "",
 
	border: "Width"
 
}, function( prefix, suffix ) {
 
	jQuery.cssHooks[ prefix + suffix ] = {
 
		expand: function( value ) {
 
			var i = 0,
 
				expanded = {},
 

	
 
				// Assumes a single number if not a string
 
				parts = typeof value === "string" ? value.split( " " ) : [ value ];
 

	
 
			for ( ; i < 4; i++ ) {
 
				expanded[ prefix + cssExpand[ i ] + suffix ] =
 
					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
 
			}
 

	
 
			return expanded;
 
		}
 
	};
 

	
 
	if ( !rmargin.test( prefix ) ) {
 
		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	css: function( name, value ) {
 
		return access( this, function( elem, name, value ) {
 
			var styles, len,
 
				map = {},
 
				i = 0;
 

	
 
			if ( jQuery.isArray( name ) ) {
 
				styles = getStyles( elem );
 
				len = name.length;
 

	
 
				for ( ; i < len; i++ ) {
 
					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
 
				}
 

	
 
				return map;
 
			}
 

	
 
			return value !== undefined ?
 
				jQuery.style( elem, name, value ) :
 
				jQuery.css( elem, name );
 
		}, name, value, arguments.length > 1 );
 
	},
 
	show: function() {
 
		return showHide( this, true );
 
	},
 
	hide: function() {
 
		return showHide( this );
 
	},
 
	toggle: function( state ) {
 
		if ( typeof state === "boolean" ) {
 
			return state ? this.show() : this.hide();
 
		}
 

	
 
		return this.each( function() {
 
			if ( isHidden( this ) ) {
 
				jQuery( this ).show();
 
			} else {
 
				jQuery( this ).hide();
 
			}
 
		} );
 
	}
 
} );
 

	
 

	
 
function Tween( elem, options, prop, end, easing ) {
 
	return new Tween.prototype.init( elem, options, prop, end, easing );
 
}
 
jQuery.Tween = Tween;
 

	
 
Tween.prototype = {
 
	constructor: Tween,
 
	init: function( elem, options, prop, end, easing, unit ) {
 
		this.elem = elem;
 
		this.prop = prop;
 
		this.easing = easing || jQuery.easing._default;
 
		this.options = options;
 
		this.start = this.now = this.cur();
 
		this.end = end;
 
		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
 
	},
 
	cur: function() {
 
		var hooks = Tween.propHooks[ this.prop ];
 

	
 
		return hooks && hooks.get ?
 
			hooks.get( this ) :
 
			Tween.propHooks._default.get( this );
 
	},
 
	run: function( percent ) {
 
		var eased,
 
			hooks = Tween.propHooks[ this.prop ];
 

	
 
		if ( this.options.duration ) {
 
			this.pos = eased = jQuery.easing[ this.easing ](
 
				percent, this.options.duration * percent, 0, 1, this.options.duration
 
			);
 
		} else {
 
			this.pos = eased = percent;
 
		}
 
		this.now = ( this.end - this.start ) * eased + this.start;
 

	
 
		if ( this.options.step ) {
 
			this.options.step.call( this.elem, this.now, this );
 
		}
 

	
 
		if ( hooks && hooks.set ) {
 
			hooks.set( this );
 
		} else {
 
			Tween.propHooks._default.set( this );
 
		}
 
		return this;
 
	}
 
};
 

	
 
Tween.prototype.init.prototype = Tween.prototype;
 

	
 
Tween.propHooks = {
 
	_default: {
 
		get: function( tween ) {
 
			var result;
 

	
 
			// Use a property on the element directly when it is not a DOM element,
 
			// or when there is no matching style property that exists.
 
			if ( tween.elem.nodeType !== 1 ||
 
				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
 
				return tween.elem[ tween.prop ];
 
			}
 

	
 
			// Passing an empty string as a 3rd parameter to .css will automatically
 
			// attempt a parseFloat and fallback to a string if the parse fails.
 
			// Simple values such as "10px" are parsed to Float;
 
			// complex values such as "rotate(1rad)" are returned as-is.
 
			result = jQuery.css( tween.elem, tween.prop, "" );
 

	
 
			// Empty strings, null, undefined and "auto" are converted to 0.
 
			return !result || result === "auto" ? 0 : result;
 
		},
 
		set: function( tween ) {
 

	
 
			// Use step hook for back compat.
 
			// Use cssHook if its there.
 
			// Use .style if available and use plain properties where available.
 
			if ( jQuery.fx.step[ tween.prop ] ) {
 
				jQuery.fx.step[ tween.prop ]( tween );
 
			} else if ( tween.elem.nodeType === 1 &&
 
				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
 
					jQuery.cssHooks[ tween.prop ] ) ) {
 
				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
 
			} else {
 
				tween.elem[ tween.prop ] = tween.now;
 
			}
 
		}
 
	}
 
};
 

	
 
// Support: IE9
 
// Panic based approach to setting things on disconnected nodes
 
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
 
	set: function( tween ) {
 
		if ( tween.elem.nodeType && tween.elem.parentNode ) {
 
			tween.elem[ tween.prop ] = tween.now;
 
		}
 
	}
 
};
 

	
 
jQuery.easing = {
 
	linear: function( p ) {
 
		return p;
 
	},
 
	swing: function( p ) {
 
		return 0.5 - Math.cos( p * Math.PI ) / 2;
 
	},
 
	_default: "swing"
 
};
 

	
 
jQuery.fx = Tween.prototype.init;
 

	
 
// Back Compat <1.8 extension point
 
jQuery.fx.step = {};
 

	
 

	
 

	
 

	
 
var
 
	fxNow, timerId,
 
	rfxtypes = /^(?:toggle|show|hide)$/,
 
	rrun = /queueHooks$/;
 

	
 
// Animations created synchronously will run synchronously
 
function createFxNow() {
 
	window.setTimeout( function() {
 
		fxNow = undefined;
 
	} );
 
	return ( fxNow = jQuery.now() );
 
}
 

	
 
// Generate parameters to create a standard animation
 
function genFx( type, includeWidth ) {
 
	var which,
 
		i = 0,
 
		attrs = { height: type };
 

	
 
	// If we include width, step value is 1 to do all cssExpand values,
 
	// otherwise step value is 2 to skip over Left and Right
 
	includeWidth = includeWidth ? 1 : 0;
 
	for ( ; i < 4 ; i += 2 - includeWidth ) {
 
		which = cssExpand[ i ];
 
		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
 
	}
 

	
 
	if ( includeWidth ) {
 
		attrs.opacity = attrs.width = type;
 
	}
 

	
 
	return attrs;
 
}
 

	
 
function createTween( value, prop, animation ) {
 
	var tween,
 
		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
 
		index = 0,
 
		length = collection.length;
 
	for ( ; index < length; index++ ) {
 
		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
 

	
 
			// We're done with this property
 
			return tween;
 
		}
 
	}
 
}
 

	
 
function defaultPrefilter( elem, props, opts ) {
 
	/* jshint validthis: true */
 
	var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
 
		anim = this,
 
		orig = {},
 
		style = elem.style,
 
		hidden = elem.nodeType && isHidden( elem ),
 
		dataShow = dataPriv.get( elem, "fxshow" );
 

	
 
	// Handle queue: false promises
 
	if ( !opts.queue ) {
 
		hooks = jQuery._queueHooks( elem, "fx" );
 
		if ( hooks.unqueued == null ) {
 
			hooks.unqueued = 0;
 
			oldfire = hooks.empty.fire;
 
			hooks.empty.fire = function() {
 
				if ( !hooks.unqueued ) {
 
					oldfire();
 
				}
 
			};
 
		}
 
		hooks.unqueued++;
 

	
 
		anim.always( function() {
 

	
 
			// Ensure the complete handler is called before this completes
 
			anim.always( function() {
 
				hooks.unqueued--;
 
				if ( !jQuery.queue( elem, "fx" ).length ) {
 
					hooks.empty.fire();
 
				}
 
			} );
 
		} );
 
	}
 

	
 
	// Height/width overflow pass
 
	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
 

	
 
		// Make sure that nothing sneaks out
 
		// Record all 3 overflow attributes because IE9-10 do not
 
		// change the overflow attribute when overflowX and
 
		// overflowY are set to the same value
 
		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
 

	
 
		// Set display property to inline-block for height/width
 
		// animations on inline elements that are having width/height animated
 
		display = jQuery.css( elem, "display" );
 

	
 
		// Test default display if display is currently "none"
 
		checkDisplay = display === "none" ?
 
			dataPriv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
 

	
 
		if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
 
			style.display = "inline-block";
 
		}
 
	}
 

	
 
	if ( opts.overflow ) {
 
		style.overflow = "hidden";
 
		anim.always( function() {
 
			style.overflow = opts.overflow[ 0 ];
 
			style.overflowX = opts.overflow[ 1 ];
 
			style.overflowY = opts.overflow[ 2 ];
 
		} );
 
	}
 

	
 
	// show/hide pass
 
	for ( prop in props ) {
 
		value = props[ prop ];
 
		if ( rfxtypes.exec( value ) ) {
 
			delete props[ prop ];
 
			toggle = toggle || value === "toggle";
 
			if ( value === ( hidden ? "hide" : "show" ) ) {
 

	
 
				// If there is dataShow left over from a stopped hide or show
 
				// and we are going to proceed with show, we should pretend to be hidden
 
				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
 
					hidden = true;
 
				} else {
 
					continue;
 
				}
 
			}
 
			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
 

	
 
		// Any non-fx value stops us from restoring the original display value
 
		} else {
 
			display = undefined;
 
		}
 
	}
 

	
 
	if ( !jQuery.isEmptyObject( orig ) ) {
 
		if ( dataShow ) {
 
			if ( "hidden" in dataShow ) {
 
				hidden = dataShow.hidden;
 
			}
 
		} else {
 
			dataShow = dataPriv.access( elem, "fxshow", {} );
 
		}
 

	
 
		// Store state if its toggle - enables .stop().toggle() to "reverse"
 
		if ( toggle ) {
 
			dataShow.hidden = !hidden;
 
		}
 
		if ( hidden ) {
 
			jQuery( elem ).show();
 
		} else {
 
			anim.done( function() {
 
				jQuery( elem ).hide();
 
			} );
 
		}
 
		anim.done( function() {
 
			var prop;
 

	
 
			dataPriv.remove( elem, "fxshow" );
 
			for ( prop in orig ) {
 
				jQuery.style( elem, prop, orig[ prop ] );
 
			}
 
		} );
 
		for ( prop in orig ) {
 
			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
 

	
 
			if ( !( prop in dataShow ) ) {
 
				dataShow[ prop ] = tween.start;
 
				if ( hidden ) {
 
					tween.end = tween.start;
 
					tween.start = prop === "width" || prop === "height" ? 1 : 0;
 
				}
 
			}
 
		}
 

	
 
	// If this is a noop like .hide().hide(), restore an overwritten display value
 
	} else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
 
		style.display = display;
 
	}
 
}
 

	
 
function propFilter( props, specialEasing ) {
 
	var index, name, easing, value, hooks;
 

	
 
	// camelCase, specialEasing and expand cssHook pass
 
	for ( index in props ) {
 
		name = jQuery.camelCase( index );
 
		easing = specialEasing[ name ];
 
		value = props[ index ];
 
		if ( jQuery.isArray( value ) ) {
 
			easing = value[ 1 ];
 
			value = props[ index ] = value[ 0 ];
 
		}
 

	
 
		if ( index !== name ) {
 
			props[ name ] = value;
 
			delete props[ index ];
 
		}
 

	
 
		hooks = jQuery.cssHooks[ name ];
 
		if ( hooks && "expand" in hooks ) {
 
			value = hooks.expand( value );
 
			delete props[ name ];
 

	
 
			// Not quite $.extend, this won't overwrite existing keys.
 
			// Reusing 'index' because we have the correct "name"
 
			for ( index in value ) {
 
				if ( !( index in props ) ) {
 
					props[ index ] = value[ index ];
 
					specialEasing[ index ] = easing;
 
				}
 
			}
 
		} else {
 
			specialEasing[ name ] = easing;
 
		}
 
	}
 
}
 

	
 
function Animation( elem, properties, options ) {
 
	var result,
 
		stopped,
 
		index = 0,
 
		length = Animation.prefilters.length,
 
		deferred = jQuery.Deferred().always( function() {
 

	
 
			// Don't match elem in the :animated selector
 
			delete tick.elem;
 
		} ),
 
		tick = function() {
 
			if ( stopped ) {
 
				return false;
 
			}
 
			var currentTime = fxNow || createFxNow(),
 
				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
 

	
 
				// Support: Android 2.3
 
				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
 
				temp = remaining / animation.duration || 0,
 
				percent = 1 - temp,
 
				index = 0,
 
				length = animation.tweens.length;
 

	
 
			for ( ; index < length ; index++ ) {
 
				animation.tweens[ index ].run( percent );
 
			}
 

	
 
			deferred.notifyWith( elem, [ animation, percent, remaining ] );
 

	
 
			if ( percent < 1 && length ) {
 
				return remaining;
 
			} else {
 
				deferred.resolveWith( elem, [ animation ] );
 
				return false;
 
			}
 
		},
 
		animation = deferred.promise( {
 
			elem: elem,
 
			props: jQuery.extend( {}, properties ),
 
			opts: jQuery.extend( true, {
 
				specialEasing: {},
 
				easing: jQuery.easing._default
 
			}, options ),
 
			originalProperties: properties,
 
			originalOptions: options,
 
			startTime: fxNow || createFxNow(),
 
			duration: options.duration,
 
			tweens: [],
 
			createTween: function( prop, end ) {
 
				var tween = jQuery.Tween( elem, animation.opts, prop, end,
 
						animation.opts.specialEasing[ prop ] || animation.opts.easing );
 
				animation.tweens.push( tween );
 
				return tween;
 
			},
 
			stop: function( gotoEnd ) {
 
				var index = 0,
 

	
 
					// If we are going to the end, we want to run all the tweens
 
					// otherwise we skip this part
 
					length = gotoEnd ? animation.tweens.length : 0;
 
				if ( stopped ) {
 
					return this;
 
				}
 
				stopped = true;
 
				for ( ; index < length ; index++ ) {
 
					animation.tweens[ index ].run( 1 );
 
				}
 

	
 
				// Resolve when we played the last frame; otherwise, reject
 
				if ( gotoEnd ) {
 
					deferred.notifyWith( elem, [ animation, 1, 0 ] );
 
					deferred.resolveWith( elem, [ animation, gotoEnd ] );
 
				} else {
 
					deferred.rejectWith( elem, [ animation, gotoEnd ] );
 
				}
 
				return this;
 
			}
 
		} ),
 
		props = animation.props;
 

	
 
	propFilter( props, animation.opts.specialEasing );
 

	
 
	for ( ; index < length ; index++ ) {
 
		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
 
		if ( result ) {
 
			if ( jQuery.isFunction( result.stop ) ) {
 
				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
 
					jQuery.proxy( result.stop, result );
 
			}
 
			return result;
 
		}
 
	}
 

	
 
	jQuery.map( props, createTween, animation );
 

	
 
	if ( jQuery.isFunction( animation.opts.start ) ) {
 
		animation.opts.start.call( elem, animation );
 
	}
 

	
 
	jQuery.fx.timer(
 
		jQuery.extend( tick, {
 
			elem: elem,
 
			anim: animation,
 
			queue: animation.opts.queue
 
		} )
 
	);
 

	
 
	// attach callbacks from options
 
	return animation.progress( animation.opts.progress )
 
		.done( animation.opts.done, animation.opts.complete )
 
		.fail( animation.opts.fail )
 
		.always( animation.opts.always );
 
}
 

	
 
jQuery.Animation = jQuery.extend( Animation, {
 
	tweeners: {
 
		"*": [ function( prop, value ) {
 
			var tween = this.createTween( prop, value );
 
			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
 
			return tween;
 
		} ]
 
	},
 

	
 
	tweener: function( props, callback ) {
 
		if ( jQuery.isFunction( props ) ) {
 
			callback = props;
 
			props = [ "*" ];
 
		} else {
 
			props = props.match( rnotwhite );
 
		}
 

	
 
		var prop,
 
			index = 0,
 
			length = props.length;
 

	
 
		for ( ; index < length ; index++ ) {
 
			prop = props[ index ];
 
			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
 
			Animation.tweeners[ prop ].unshift( callback );
 
		}
 
	},
 

	
 
	prefilters: [ defaultPrefilter ],
 

	
 
	prefilter: function( callback, prepend ) {
 
		if ( prepend ) {
 
			Animation.prefilters.unshift( callback );
 
		} else {
 
			Animation.prefilters.push( callback );
 
		}
 
	}
 
} );
 

	
 
jQuery.speed = function( speed, easing, fn ) {
 
	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
 
		complete: fn || !fn && easing ||
 
			jQuery.isFunction( speed ) && speed,
 
		duration: speed,
 
		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
 
	};
 

	
 
	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ?
 
		opt.duration : opt.duration in jQuery.fx.speeds ?
 
			jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
 

	
 
	// Normalize opt.queue - true/undefined/null -> "fx"
 
	if ( opt.queue == null || opt.queue === true ) {
 
		opt.queue = "fx";
 
	}
 

	
 
	// Queueing
 
	opt.old = opt.complete;
 

	
 
	opt.complete = function() {
 
		if ( jQuery.isFunction( opt.old ) ) {
 
			opt.old.call( this );
 
		}
 

	
 
		if ( opt.queue ) {
 
			jQuery.dequeue( this, opt.queue );
 
		}
 
	};
 

	
 
	return opt;
 
};
 

	
 
jQuery.fn.extend( {
 
	fadeTo: function( speed, to, easing, callback ) {
 

	
 
		// Show any hidden elements after setting opacity to 0
 
		return this.filter( isHidden ).css( "opacity", 0 ).show()
 

	
 
			// Animate to the value specified
 
			.end().animate( { opacity: to }, speed, easing, callback );
 
	},
 
	animate: function( prop, speed, easing, callback ) {
 
		var empty = jQuery.isEmptyObject( prop ),
 
			optall = jQuery.speed( speed, easing, callback ),
 
			doAnimation = function() {
 

	
 
				// Operate on a copy of prop so per-property easing won't be lost
 
				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
 

	
 
				// Empty animations, or finishing resolves immediately
 
				if ( empty || dataPriv.get( this, "finish" ) ) {
 
					anim.stop( true );
 
				}
 
			};
 
			doAnimation.finish = doAnimation;
 

	
 
		return empty || optall.queue === false ?
 
			this.each( doAnimation ) :
 
			this.queue( optall.queue, doAnimation );
 
	},
 
	stop: function( type, clearQueue, gotoEnd ) {
 
		var stopQueue = function( hooks ) {
 
			var stop = hooks.stop;
 
			delete hooks.stop;
 
			stop( gotoEnd );
 
		};
 

	
 
		if ( typeof type !== "string" ) {
 
			gotoEnd = clearQueue;
 
			clearQueue = type;
 
			type = undefined;
 
		}
 
		if ( clearQueue && type !== false ) {
 
			this.queue( type || "fx", [] );
 
		}
 

	
 
		return this.each( function() {
 
			var dequeue = true,
 
				index = type != null && type + "queueHooks",
 
				timers = jQuery.timers,
 
				data = dataPriv.get( this );
 

	
 
			if ( index ) {
 
				if ( data[ index ] && data[ index ].stop ) {
 
					stopQueue( data[ index ] );
 
				}
 
			} else {
 
				for ( index in data ) {
 
					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
 
						stopQueue( data[ index ] );
 
					}
 
				}
 
			}
 

	
 
			for ( index = timers.length; index--; ) {
 
				if ( timers[ index ].elem === this &&
 
					( type == null || timers[ index ].queue === type ) ) {
 

	
 
					timers[ index ].anim.stop( gotoEnd );
 
					dequeue = false;
 
					timers.splice( index, 1 );
 
				}
 
			}
 

	
 
			// Start the next in the queue if the last step wasn't forced.
 
			// Timers currently will call their complete callbacks, which
 
			// will dequeue but only if they were gotoEnd.
 
			if ( dequeue || !gotoEnd ) {
 
				jQuery.dequeue( this, type );
 
			}
 
		} );
 
	},
 
	finish: function( type ) {
 
		if ( type !== false ) {
 
			type = type || "fx";
 
		}
 
		return this.each( function() {
 
			var index,
 
				data = dataPriv.get( this ),
 
				queue = data[ type + "queue" ],
 
				hooks = data[ type + "queueHooks" ],
 
				timers = jQuery.timers,
 
				length = queue ? queue.length : 0;
 

	
 
			// Enable finishing flag on private data
 
			data.finish = true;
 

	
 
			// Empty the queue first
 
			jQuery.queue( this, type, [] );
 

	
 
			if ( hooks && hooks.stop ) {
 
				hooks.stop.call( this, true );
 
			}
 

	
 
			// Look for any active animations, and finish them
 
			for ( index = timers.length; index--; ) {
 
				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
 
					timers[ index ].anim.stop( true );
 
					timers.splice( index, 1 );
 
				}
 
			}
 

	
 
			// Look for any animations in the old queue and finish them
 
			for ( index = 0; index < length; index++ ) {
 
				if ( queue[ index ] && queue[ index ].finish ) {
 
					queue[ index ].finish.call( this );
 
				}
 
			}
 

	
 
			// Turn off finishing flag
 
			delete data.finish;
 
		} );
 
	}
 
} );
 

	
 
jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
 
	var cssFn = jQuery.fn[ name ];
 
	jQuery.fn[ name ] = function( speed, easing, callback ) {
 
		return speed == null || typeof speed === "boolean" ?
 
			cssFn.apply( this, arguments ) :
 
			this.animate( genFx( name, true ), speed, easing, callback );
 
	};
 
} );
 

	
 
// Generate shortcuts for custom animations
 
jQuery.each( {
 
	slideDown: genFx( "show" ),
 
	slideUp: genFx( "hide" ),
 
	slideToggle: genFx( "toggle" ),
 
	fadeIn: { opacity: "show" },
 
	fadeOut: { opacity: "hide" },
 
	fadeToggle: { opacity: "toggle" }
 
}, function( name, props ) {
 
	jQuery.fn[ name ] = function( speed, easing, callback ) {
 
		return this.animate( props, speed, easing, callback );
 
	};
 
} );
 

	
 
jQuery.timers = [];
 
jQuery.fx.tick = function() {
 
	var timer,
 
		i = 0,
 
		timers = jQuery.timers;
 

	
 
	fxNow = jQuery.now();
 

	
 
	for ( ; i < timers.length; i++ ) {
 
		timer = timers[ i ];
 

	
 
		// Checks the timer has not already been removed
 
		if ( !timer() && timers[ i ] === timer ) {
 
			timers.splice( i--, 1 );
 
		}
 
	}
 

	
 
	if ( !timers.length ) {
 
		jQuery.fx.stop();
 
	}
 
	fxNow = undefined;
 
};
 

	
 
jQuery.fx.timer = function( timer ) {
 
	jQuery.timers.push( timer );
 
	if ( timer() ) {
 
		jQuery.fx.start();
 
	} else {
 
		jQuery.timers.pop();
 
	}
 
};
 

	
 
jQuery.fx.interval = 13;
 
jQuery.fx.start = function() {
 
	if ( !timerId ) {
 
		timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
 
	}
 
};
 

	
 
jQuery.fx.stop = function() {
 
	window.clearInterval( timerId );
 

	
 
	timerId = null;
 
};
 

	
 
jQuery.fx.speeds = {
 
	slow: 600,
 
	fast: 200,
 

	
 
	// Default speed
 
	_default: 400
 
};
 

	
 

	
 
// Based off of the plugin by Clint Helfers, with permission.
 
// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
 
jQuery.fn.delay = function( time, type ) {
 
	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
 
	type = type || "fx";
 

	
 
	return this.queue( type, function( next, hooks ) {
 
		var timeout = window.setTimeout( next, time );
 
		hooks.stop = function() {
 
			window.clearTimeout( timeout );
 
		};
 
	} );
 
};
 

	
 

	
 
( function() {
 
	var input = document.createElement( "input" ),
 
		select = document.createElement( "select" ),
 
		opt = select.appendChild( document.createElement( "option" ) );
 

	
 
	input.type = "checkbox";
 

	
 
	// Support: iOS<=5.1, Android<=4.2+
 
	// Default value for a checkbox should be "on"
 
	support.checkOn = input.value !== "";
 

	
 
	// Support: IE<=11+
 
	// Must access selectedIndex to make default options select
 
	support.optSelected = opt.selected;
 

	
 
	// Support: Android<=2.3
 
	// Options inside disabled selects are incorrectly marked as disabled
 
	select.disabled = true;
 
	support.optDisabled = !opt.disabled;
 

	
 
	// Support: IE<=11+
 
	// An input loses its value after becoming a radio
 
	input = document.createElement( "input" );
 
	input.value = "t";
 
	input.type = "radio";
 
	support.radioValue = input.value === "t";
 
} )();
 

	
 

	
 
var boolHook,
 
	attrHandle = jQuery.expr.attrHandle;
 

	
 
jQuery.fn.extend( {
 
	attr: function( name, value ) {
 
		return access( this, jQuery.attr, name, value, arguments.length > 1 );
 
	},
 

	
 
	removeAttr: function( name ) {
 
		return this.each( function() {
 
			jQuery.removeAttr( this, name );
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	attr: function( elem, name, value ) {
 
		var ret, hooks,
 
			nType = elem.nodeType;
 

	
 
		// Don't get/set attributes on text, comment and attribute nodes
 
		if ( nType === 3 || nType === 8 || nType === 2 ) {
 
			return;
 
		}
 

	
 
		// Fallback to prop when attributes are not supported
 
		if ( typeof elem.getAttribute === "undefined" ) {
 
			return jQuery.prop( elem, name, value );
 
		}
 

	
 
		// All attributes are lowercase
 
		// Grab necessary hook if one is defined
 
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
 
			name = name.toLowerCase();
 
			hooks = jQuery.attrHooks[ name ] ||
 
				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
 
		}
 

	
 
		if ( value !== undefined ) {
 
			if ( value === null ) {
 
				jQuery.removeAttr( elem, name );
 
				return;
 
			}
 

	
 
			if ( hooks && "set" in hooks &&
 
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
 
				return ret;
 
			}
 

	
 
			elem.setAttribute( name, value + "" );
 
			return value;
 
		}
 

	
 
		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
 
			return ret;
 
		}
 

	
 
		ret = jQuery.find.attr( elem, name );
 

	
 
		// Non-existent attributes return null, we normalize to undefined
 
		return ret == null ? undefined : ret;
 
	},
 

	
 
	attrHooks: {
 
		type: {
 
			set: function( elem, value ) {
 
				if ( !support.radioValue && value === "radio" &&
 
					jQuery.nodeName( elem, "input" ) ) {
 
					var val = elem.value;
 
					elem.setAttribute( "type", value );
 
					if ( val ) {
 
						elem.value = val;
 
					}
 
					return value;
 
				}
 
			}
 
		}
 
	},
 

	
 
	removeAttr: function( elem, value ) {
 
		var name, propName,
 
			i = 0,
 
			attrNames = value && value.match( rnotwhite );
 

	
 
		if ( attrNames && elem.nodeType === 1 ) {
 
			while ( ( name = attrNames[ i++ ] ) ) {
 
				propName = jQuery.propFix[ name ] || name;
 

	
 
				// Boolean attributes get special treatment (#10870)
 
				if ( jQuery.expr.match.bool.test( name ) ) {
 

	
 
					// Set corresponding property to false
 
					elem[ propName ] = false;
 
				}
 

	
 
				elem.removeAttribute( name );
 
			}
 
		}
 
	}
 
} );
 

	
 
// Hooks for boolean attributes
 
boolHook = {
 
	set: function( elem, value, name ) {
 
		if ( value === false ) {
 

	
 
			// Remove boolean attributes when set to false
 
			jQuery.removeAttr( elem, name );
 
		} else {
 
			elem.setAttribute( name, name );
 
		}
 
		return name;
 
	}
 
};
 
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
 
	var getter = attrHandle[ name ] || jQuery.find.attr;
 

	
 
	attrHandle[ name ] = function( elem, name, isXML ) {
 
		var ret, handle;
 
		if ( !isXML ) {
 

	
 
			// Avoid an infinite loop by temporarily removing this function from the getter
 
			handle = attrHandle[ name ];
 
			attrHandle[ name ] = ret;
 
			ret = getter( elem, name, isXML ) != null ?
 
				name.toLowerCase() :
 
				null;
 
			attrHandle[ name ] = handle;
 
		}
 
		return ret;
 
	};
 
} );
 

	
 

	
 

	
 

	
 
var rfocusable = /^(?:input|select|textarea|button)$/i,
 
	rclickable = /^(?:a|area)$/i;
 

	
 
jQuery.fn.extend( {
 
	prop: function( name, value ) {
 
		return access( this, jQuery.prop, name, value, arguments.length > 1 );
 
	},
 

	
 
	removeProp: function( name ) {
 
		return this.each( function() {
 
			delete this[ jQuery.propFix[ name ] || name ];
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	prop: function( elem, name, value ) {
 
		var ret, hooks,
 
			nType = elem.nodeType;
 

	
 
		// Don't get/set properties on text, comment and attribute nodes
 
		if ( nType === 3 || nType === 8 || nType === 2 ) {
 
			return;
 
		}
 

	
 
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
 

	
 
			// Fix name and attach hooks
 
			name = jQuery.propFix[ name ] || name;
 
			hooks = jQuery.propHooks[ name ];
 
		}
 

	
 
		if ( value !== undefined ) {
 
			if ( hooks && "set" in hooks &&
 
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
 
				return ret;
 
			}
 

	
 
			return ( elem[ name ] = value );
 
		}
 

	
 
		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
 
			return ret;
 
		}
 

	
 
		return elem[ name ];
 
	},
 

	
 
	propHooks: {
 
		tabIndex: {
 
			get: function( elem ) {
 

	
 
				// elem.tabIndex doesn't always return the
 
				// correct value when it hasn't been explicitly set
 
				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
 
				// Use proper attribute retrieval(#12072)
 
				var tabindex = jQuery.find.attr( elem, "tabindex" );
 

	
 
				return tabindex ?
 
					parseInt( tabindex, 10 ) :
 
					rfocusable.test( elem.nodeName ) ||
 
						rclickable.test( elem.nodeName ) && elem.href ?
 
							0 :
 
							-1;
 
			}
 
		}
 
	},
 

	
 
	propFix: {
 
		"for": "htmlFor",
 
		"class": "className"
 
	}
 
} );
 

	
 
if ( !support.optSelected ) {
 
	jQuery.propHooks.selected = {
 
		get: function( elem ) {
 
			var parent = elem.parentNode;
 
			if ( parent && parent.parentNode ) {
 
				parent.parentNode.selectedIndex;
 
			}
 
			return null;
 
		}
 
	};
 
}
 

	
 
jQuery.each( [
 
	"tabIndex",
 
	"readOnly",
 
	"maxLength",
 
	"cellSpacing",
 
	"cellPadding",
 
	"rowSpan",
 
	"colSpan",
 
	"useMap",
 
	"frameBorder",
 
	"contentEditable"
 
], function() {
 
	jQuery.propFix[ this.toLowerCase() ] = this;
 
} );
 

	
 

	
 

	
 

	
 
var rclass = /[\t\r\n\f]/g;
 

	
 
function getClass( elem ) {
 
	return elem.getAttribute && elem.getAttribute( "class" ) || "";
 
}
 

	
 
jQuery.fn.extend( {
 
	addClass: function( value ) {
 
		var classes, elem, cur, curValue, clazz, j, finalValue,
 
			i = 0;
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( j ) {
 
				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
 
			} );
 
		}
 

	
 
		if ( typeof value === "string" && value ) {
 
			classes = value.match( rnotwhite ) || [];
 

	
 
			while ( ( elem = this[ i++ ] ) ) {
 
				curValue = getClass( elem );
 
				cur = elem.nodeType === 1 &&
 
					( " " + curValue + " " ).replace( rclass, " " );
 

	
 
				if ( cur ) {
 
					j = 0;
 
					while ( ( clazz = classes[ j++ ] ) ) {
 
						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
 
							cur += clazz + " ";
 
						}
 
					}
 

	
 
					// Only assign if different to avoid unneeded rendering.
 
					finalValue = jQuery.trim( cur );
 
					if ( curValue !== finalValue ) {
 
						elem.setAttribute( "class", finalValue );
 
					}
 
				}
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	removeClass: function( value ) {
 
		var classes, elem, cur, curValue, clazz, j, finalValue,
 
			i = 0;
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( j ) {
 
				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
 
			} );
 
		}
 

	
 
		if ( !arguments.length ) {
 
			return this.attr( "class", "" );
 
		}
 

	
 
		if ( typeof value === "string" && value ) {
 
			classes = value.match( rnotwhite ) || [];
 

	
 
			while ( ( elem = this[ i++ ] ) ) {
 
				curValue = getClass( elem );
 

	
 
				// This expression is here for better compressibility (see addClass)
 
				cur = elem.nodeType === 1 &&
 
					( " " + curValue + " " ).replace( rclass, " " );
 

	
 
				if ( cur ) {
 
					j = 0;
 
					while ( ( clazz = classes[ j++ ] ) ) {
 

	
 
						// Remove *all* instances
 
						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
 
							cur = cur.replace( " " + clazz + " ", " " );
 
						}
 
					}
 

	
 
					// Only assign if different to avoid unneeded rendering.
 
					finalValue = jQuery.trim( cur );
 
					if ( curValue !== finalValue ) {
 
						elem.setAttribute( "class", finalValue );
 
					}
 
				}
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	toggleClass: function( value, stateVal ) {
 
		var type = typeof value;
 

	
 
		if ( typeof stateVal === "boolean" && type === "string" ) {
 
			return stateVal ? this.addClass( value ) : this.removeClass( value );
 
		}
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).toggleClass(
 
					value.call( this, i, getClass( this ), stateVal ),
 
					stateVal
 
				);
 
			} );
 
		}
 

	
 
		return this.each( function() {
 
			var className, i, self, classNames;
 

	
 
			if ( type === "string" ) {
 

	
 
				// Toggle individual class names
 
				i = 0;
 
				self = jQuery( this );
 
				classNames = value.match( rnotwhite ) || [];
 

	
 
				while ( ( className = classNames[ i++ ] ) ) {
 

	
 
					// Check each className given, space separated list
 
					if ( self.hasClass( className ) ) {
 
						self.removeClass( className );
 
					} else {
 
						self.addClass( className );
 
					}
 
				}
 

	
 
			// Toggle whole class name
 
			} else if ( value === undefined || type === "boolean" ) {
 
				className = getClass( this );
 
				if ( className ) {
 

	
 
					// Store className if set
 
					dataPriv.set( this, "__className__", className );
 
				}
 

	
 
				// If the element has a class name or if we're passed `false`,
 
				// then remove the whole classname (if there was one, the above saved it).
 
				// Otherwise bring back whatever was previously saved (if anything),
 
				// falling back to the empty string if nothing was stored.
 
				if ( this.setAttribute ) {
 
					this.setAttribute( "class",
 
						className || value === false ?
 
						"" :
 
						dataPriv.get( this, "__className__" ) || ""
 
					);
 
				}
 
			}
 
		} );
 
	},
 

	
 
	hasClass: function( selector ) {
 
		var className, elem,
 
			i = 0;
 

	
 
		className = " " + selector + " ";
 
		while ( ( elem = this[ i++ ] ) ) {
 
			if ( elem.nodeType === 1 &&
 
				( " " + getClass( elem ) + " " ).replace( rclass, " " )
 
					.indexOf( className ) > -1
 
			) {
 
				return true;
 
			}
 
		}
 

	
 
		return false;
 
	}
 
} );
 

	
 

	
 

	
 

	
 
var rreturn = /\r/g;
 

	
 
jQuery.fn.extend( {
 
	val: function( value ) {
 
		var hooks, ret, isFunction,
 
			elem = this[ 0 ];
 

	
 
		if ( !arguments.length ) {
 
			if ( elem ) {
 
				hooks = jQuery.valHooks[ elem.type ] ||
 
					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
 

	
 
				if ( hooks &&
 
					"get" in hooks &&
 
					( ret = hooks.get( elem, "value" ) ) !== undefined
 
				) {
 
					return ret;
 
				}
 

	
 
				ret = elem.value;
 

	
 
				return typeof ret === "string" ?
 

	
 
					// Handle most common string cases
 
					ret.replace( rreturn, "" ) :
 

	
 
					// Handle cases where value is null/undef or number
 
					ret == null ? "" : ret;
 
			}
 

	
 
			return;
 
		}
 

	
 
		isFunction = jQuery.isFunction( value );
 

	
 
		return this.each( function( i ) {
 
			var val;
 

	
 
			if ( this.nodeType !== 1 ) {
 
				return;
 
			}
 

	
 
			if ( isFunction ) {
 
				val = value.call( this, i, jQuery( this ).val() );
 
			} else {
 
				val = value;
 
			}
 

	
 
			// Treat null/undefined as ""; convert numbers to string
 
			if ( val == null ) {
 
				val = "";
 

	
 
			} else if ( typeof val === "number" ) {
 
				val += "";
 

	
 
			} else if ( jQuery.isArray( val ) ) {
 
				val = jQuery.map( val, function( value ) {
 
					return value == null ? "" : value + "";
 
				} );
 
			}
 

	
 
			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
 

	
 
			// If set returns undefined, fall back to normal setting
 
			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
 
				this.value = val;
 
			}
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	valHooks: {
 
		option: {
 
			get: function( elem ) {
 

	
 
				// Support: IE<11
 
				// option.value not trimmed (#14858)
 
				return jQuery.trim( elem.value );
 
			}
 
		},
 
		select: {
 
			get: function( elem ) {
 
				var value, option,
 
					options = elem.options,
 
					index = elem.selectedIndex,
 
					one = elem.type === "select-one" || index < 0,
 
					values = one ? null : [],
 
					max = one ? index + 1 : options.length,
 
					i = index < 0 ?
 
						max :
 
						one ? index : 0;
 

	
 
				// Loop through all the selected options
 
				for ( ; i < max; i++ ) {
 
					option = options[ i ];
 

	
 
					// IE8-9 doesn't update selected after form reset (#2551)
 
					if ( ( option.selected || i === index ) &&
 

	
 
							// Don't return options that are disabled or in a disabled optgroup
 
							( support.optDisabled ?
 
								!option.disabled : option.getAttribute( "disabled" ) === null ) &&
 
							( !option.parentNode.disabled ||
 
								!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
 

	
 
						// Get the specific value for the option
 
						value = jQuery( option ).val();
 

	
 
						// We don't need an array for one selects
 
						if ( one ) {
 
							return value;
 
						}
 

	
 
						// Multi-Selects return an array
 
						values.push( value );
 
					}
 
				}
 

	
 
				return values;
 
			},
 

	
 
			set: function( elem, value ) {
 
				var optionSet, option,
 
					options = elem.options,
 
					values = jQuery.makeArray( value ),
 
					i = options.length;
 

	
 
				while ( i-- ) {
 
					option = options[ i ];
 
					if ( option.selected =
 
							jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
 
					) {
 
						optionSet = true;
 
					}
 
				}
 

	
 
				// Force browsers to behave consistently when non-matching value is set
 
				if ( !optionSet ) {
 
					elem.selectedIndex = -1;
 
				}
 
				return values;
 
			}
 
		}
 
	}
 
} );
 

	
 
// Radios and checkboxes getter/setter
 
jQuery.each( [ "radio", "checkbox" ], function() {
 
	jQuery.valHooks[ this ] = {
 
		set: function( elem, value ) {
 
			if ( jQuery.isArray( value ) ) {
 
				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
 
			}
 
		}
 
	};
 
	if ( !support.checkOn ) {
 
		jQuery.valHooks[ this ].get = function( elem ) {
 
			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Return jQuery for attributes-only inclusion
 

	
 

	
 
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
 

	
 
jQuery.extend( jQuery.event, {
 

	
 
	trigger: function( event, data, elem, onlyHandlers ) {
 

	
 
		var i, cur, tmp, bubbleType, ontype, handle, special,
 
			eventPath = [ elem || document ],
 
			type = hasOwn.call( event, "type" ) ? event.type : event,
 
			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
 

	
 
		cur = tmp = elem = elem || document;
 

	
 
		// Don't do events on text and comment nodes
 
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
 
			return;
 
		}
 

	
 
		// focus/blur morphs to focusin/out; ensure we're not firing them right now
 
		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
 
			return;
 
		}
 

	
 
		if ( type.indexOf( "." ) > -1 ) {
 

	
 
			// Namespaced trigger; create a regexp to match event type in handle()
 
			namespaces = type.split( "." );
 
			type = namespaces.shift();
 
			namespaces.sort();
 
		}
 
		ontype = type.indexOf( ":" ) < 0 && "on" + type;
 

	
 
		// Caller can pass in a jQuery.Event object, Object, or just an event type string
 
		event = event[ jQuery.expando ] ?
 
			event :
 
			new jQuery.Event( type, typeof event === "object" && event );
 

	
 
		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
 
		event.isTrigger = onlyHandlers ? 2 : 3;
 
		event.namespace = namespaces.join( "." );
 
		event.rnamespace = event.namespace ?
 
			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
 
			null;
 

	
 
		// Clean up the event in case it is being reused
 
		event.result = undefined;
 
		if ( !event.target ) {
 
			event.target = elem;
 
		}
 

	
 
		// Clone any incoming data and prepend the event, creating the handler arg list
 
		data = data == null ?
 
			[ event ] :
 
			jQuery.makeArray( data, [ event ] );
 

	
 
		// Allow special events to draw outside the lines
 
		special = jQuery.event.special[ type ] || {};
 
		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
 
			return;
 
		}
 

	
 
		// Determine event propagation path in advance, per W3C events spec (#9951)
 
		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
 
		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
 

	
 
			bubbleType = special.delegateType || type;
 
			if ( !rfocusMorph.test( bubbleType + type ) ) {
 
				cur = cur.parentNode;
 
			}
 
			for ( ; cur; cur = cur.parentNode ) {
 
				eventPath.push( cur );
 
				tmp = cur;
 
			}
 

	
 
			// Only add window if we got to document (e.g., not plain obj or detached DOM)
 
			if ( tmp === ( elem.ownerDocument || document ) ) {
 
				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
 
			}
 
		}
 

	
 
		// Fire handlers on the event path
 
		i = 0;
 
		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
 

	
 
			event.type = i > 1 ?
 
				bubbleType :
 
				special.bindType || type;
 

	
 
			// jQuery handler
 
			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
 
				dataPriv.get( cur, "handle" );
 
			if ( handle ) {
 
				handle.apply( cur, data );
 
			}
 

	
 
			// Native handler
 
			handle = ontype && cur[ ontype ];
 
			if ( handle && handle.apply && acceptData( cur ) ) {
 
				event.result = handle.apply( cur, data );
 
				if ( event.result === false ) {
 
					event.preventDefault();
 
				}
 
			}
 
		}
 
		event.type = type;
 

	
 
		// If nobody prevented the default action, do it now
 
		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
 

	
 
			if ( ( !special._default ||
 
				special._default.apply( eventPath.pop(), data ) === false ) &&
 
				acceptData( elem ) ) {
 

	
 
				// Call a native DOM method on the target with the same name name as the event.
 
				// Don't do default actions on window, that's where global variables be (#6170)
 
				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
 

	
 
					// Don't re-trigger an onFOO event when we call its FOO() method
 
					tmp = elem[ ontype ];
 

	
 
					if ( tmp ) {
 
						elem[ ontype ] = null;
 
					}
 

	
 
					// Prevent re-triggering of the same event, since we already bubbled it above
 
					jQuery.event.triggered = type;
 
					elem[ type ]();
 
					jQuery.event.triggered = undefined;
 

	
 
					if ( tmp ) {
 
						elem[ ontype ] = tmp;
 
					}
 
				}
 
			}
 
		}
 

	
 
		return event.result;
 
	},
 

	
 
	// Piggyback on a donor event to simulate a different one
 
	simulate: function( type, elem, event ) {
 
		var e = jQuery.extend(
 
			new jQuery.Event(),
 
			event,
 
			{
 
				type: type,
 
				isSimulated: true
 

	
 
				// Previously, `originalEvent: {}` was set here, so stopPropagation call
 
				// would not be triggered on donor event, since in our own
 
				// jQuery.event.stopPropagation function we had a check for existence of
 
				// originalEvent.stopPropagation method, so, consequently it would be a noop.
 
				//
 
				// But now, this "simulate" function is used only for events
 
				// for which stopPropagation() is noop, so there is no need for that anymore.
 
				//
 
				// For the 1.x branch though, guard for "click" and "submit"
 
				// events is still used, but was moved to jQuery.event.stopPropagation function
 
				// because `originalEvent` should point to the original event for the constancy
 
				// with other events and for more focused logic
 
			}
 
		);
 

	
 
		jQuery.event.trigger( e, null, elem );
 

	
 
		if ( e.isDefaultPrevented() ) {
 
			event.preventDefault();
 
		}
 
	}
 

	
 
} );
 

	
 
jQuery.fn.extend( {
 

	
 
	trigger: function( type, data ) {
 
		return this.each( function() {
 
			jQuery.event.trigger( type, data, this );
 
		} );
 
	},
 
	triggerHandler: function( type, data ) {
 
		var elem = this[ 0 ];
 
		if ( elem ) {
 
			return jQuery.event.trigger( type, data, elem, true );
 
		}
 
	}
 
} );
 

	
 

	
 
jQuery.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( i, name ) {
 

	
 
	// Handle event binding
 
	jQuery.fn[ name ] = function( data, fn ) {
 
		return arguments.length > 0 ?
 
			this.on( name, null, data, fn ) :
 
			this.trigger( name );
 
	};
 
} );
 

	
 
jQuery.fn.extend( {
 
	hover: function( fnOver, fnOut ) {
 
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 
	}
 
} );
 

	
 

	
 

	
 

	
 
support.focusin = "onfocusin" in window;
 

	
 

	
 
// Support: Firefox
 
// Firefox doesn't have focus(in | out) events
 
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
 
//
 
// Support: Chrome, Safari
 
// focus(in | out) events fire after focus & blur events,
 
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
 
// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
 
if ( !support.focusin ) {
 
	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
 

	
 
		// Attach a single capturing handler on the document while someone wants focusin/focusout
 
		var handler = function( event ) {
 
			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
 
		};
 

	
 
		jQuery.event.special[ fix ] = {
 
			setup: function() {
 
				var doc = this.ownerDocument || this,
 
					attaches = dataPriv.access( doc, fix );
 

	
 
				if ( !attaches ) {
 
					doc.addEventListener( orig, handler, true );
 
				}
 
				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 
			},
 
			teardown: function() {
 
				var doc = this.ownerDocument || this,
 
					attaches = dataPriv.access( doc, fix ) - 1;
 

	
 
				if ( !attaches ) {
 
					doc.removeEventListener( orig, handler, true );
 
					dataPriv.remove( doc, fix );
 

	
 
				} else {
 
					dataPriv.access( doc, fix, attaches );
 
				}
 
			}
 
		};
 
	} );
 
}
 
var location = window.location;
 

	
 
var nonce = jQuery.now();
 

	
 
var rquery = ( /\?/ );
 

	
 

	
 

	
 
// Support: Android 2.3
 
// Workaround failure to string-cast null input
 
jQuery.parseJSON = function( data ) {
 
	return JSON.parse( data + "" );
 
};
 

	
 

	
 
// Cross-browser xml parsing
 
jQuery.parseXML = function( data ) {
 
	var xml;
 
	if ( !data || typeof data !== "string" ) {
 
		return null;
 
	}
 

	
 
	// Support: IE9
 
	try {
 
		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
 
	} catch ( e ) {
 
		xml = undefined;
 
	}
 

	
 
	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
 
		jQuery.error( "Invalid XML: " + data );
 
	}
 
	return xml;
 
};
 

	
 

	
 
var
 
	rhash = /#.*$/,
 
	rts = /([?&])_=[^&]*/,
 
	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
 

	
 
	// #7653, #8125, #8152: local protocol detection
 
	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 
	rnoContent = /^(?:GET|HEAD)$/,
 
	rprotocol = /^\/\//,
 

	
 
	/* Prefilters
 
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
 
	 * 2) These are called:
 
	 *    - BEFORE asking for a transport
 
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
 
	 * 3) key is the dataType
 
	 * 4) the catchall symbol "*" can be used
 
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
 
	 */
 
	prefilters = {},
 

	
 
	/* Transports bindings
 
	 * 1) key is the dataType
 
	 * 2) the catchall symbol "*" can be used
 
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
 
	 */
 
	transports = {},
 

	
 
	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
 
	allTypes = "*/".concat( "*" ),
 

	
 
	// Anchor tag for parsing the document origin
 
	originAnchor = document.createElement( "a" );
 
	originAnchor.href = location.href;
 

	
 
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
 
function addToPrefiltersOrTransports( structure ) {
 

	
 
	// dataTypeExpression is optional and defaults to "*"
 
	return function( dataTypeExpression, func ) {
 

	
 
		if ( typeof dataTypeExpression !== "string" ) {
 
			func = dataTypeExpression;
 
			dataTypeExpression = "*";
 
		}
 

	
 
		var dataType,
 
			i = 0,
 
			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
 

	
 
		if ( jQuery.isFunction( func ) ) {
 

	
 
			// For each dataType in the dataTypeExpression
 
			while ( ( dataType = dataTypes[ i++ ] ) ) {
 

	
 
				// Prepend if requested
 
				if ( dataType[ 0 ] === "+" ) {
 
					dataType = dataType.slice( 1 ) || "*";
 
					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
 

	
 
				// Otherwise append
 
				} else {
 
					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
 
				}
 
			}
 
		}
 
	};
 
}
 

	
 
// Base inspection function for prefilters and transports
 
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
 

	
 
	var inspected = {},
 
		seekingTransport = ( structure === transports );
 

	
 
	function inspect( dataType ) {
 
		var selected;
 
		inspected[ dataType ] = true;
 
		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
 
			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
 
			if ( typeof dataTypeOrTransport === "string" &&
 
				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
 

	
 
				options.dataTypes.unshift( dataTypeOrTransport );
 
				inspect( dataTypeOrTransport );
 
				return false;
 
			} else if ( seekingTransport ) {
 
				return !( selected = dataTypeOrTransport );
 
			}
 
		} );
 
		return selected;
 
	}
 

	
 
	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
 
}
 

	
 
// A special extend for ajax options
 
// that takes "flat" options (not to be deep extended)
 
// Fixes #9887
 
function ajaxExtend( target, src ) {
 
	var key, deep,
 
		flatOptions = jQuery.ajaxSettings.flatOptions || {};
 

	
 
	for ( key in src ) {
 
		if ( src[ key ] !== undefined ) {
 
			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
 
		}
 
	}
 
	if ( deep ) {
 
		jQuery.extend( true, target, deep );
 
	}
 

	
 
	return target;
 
}
 

	
 
/* Handles responses to an ajax request:
 
 * - finds the right dataType (mediates between content-type and expected dataType)
 
 * - returns the corresponding response
 
 */
 
function ajaxHandleResponses( s, jqXHR, responses ) {
 

	
 
	var ct, type, finalDataType, firstDataType,
 
		contents = s.contents,
 
		dataTypes = s.dataTypes;
 

	
 
	// Remove auto dataType and get content-type in the process
 
	while ( dataTypes[ 0 ] === "*" ) {
 
		dataTypes.shift();
 
		if ( ct === undefined ) {
 
			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
 
		}
 
	}
 

	
 
	// Check if we're dealing with a known content-type
 
	if ( ct ) {
 
		for ( type in contents ) {
 
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
 
				dataTypes.unshift( type );
 
				break;
 
			}
 
		}
 
	}
 

	
 
	// Check to see if we have a response for the expected dataType
 
	if ( dataTypes[ 0 ] in responses ) {
 
		finalDataType = dataTypes[ 0 ];
 
	} else {
 

	
 
		// Try convertible dataTypes
 
		for ( type in responses ) {
 
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
 
				finalDataType = type;
 
				break;
 
			}
 
			if ( !firstDataType ) {
 
				firstDataType = type;
 
			}
 
		}
 

	
 
		// Or just use first one
 
		finalDataType = finalDataType || firstDataType;
 
	}
 

	
 
	// If we found a dataType
 
	// We add the dataType to the list if needed
 
	// and return the corresponding response
 
	if ( finalDataType ) {
 
		if ( finalDataType !== dataTypes[ 0 ] ) {
 
			dataTypes.unshift( finalDataType );
 
		}
 
		return responses[ finalDataType ];
 
	}
 
}
 

	
 
/* Chain conversions given the request and the original response
 
 * Also sets the responseXXX fields on the jqXHR instance
 
 */
 
function ajaxConvert( s, response, jqXHR, isSuccess ) {
 
	var conv2, current, conv, tmp, prev,
 
		converters = {},
 

	
 
		// Work with a copy of dataTypes in case we need to modify it for conversion
 
		dataTypes = s.dataTypes.slice();
 

	
 
	// Create converters map with lowercased keys
 
	if ( dataTypes[ 1 ] ) {
 
		for ( conv in s.converters ) {
 
			converters[ conv.toLowerCase() ] = s.converters[ conv ];
 
		}
 
	}
 

	
 
	current = dataTypes.shift();
 

	
 
	// Convert to each sequential dataType
 
	while ( current ) {
 

	
 
		if ( s.responseFields[ current ] ) {
 
			jqXHR[ s.responseFields[ current ] ] = response;
 
		}
 

	
 
		// Apply the dataFilter if provided
 
		if ( !prev && isSuccess && s.dataFilter ) {
 
			response = s.dataFilter( response, s.dataType );
 
		}
 

	
 
		prev = current;
 
		current = dataTypes.shift();
 

	
 
		if ( current ) {
 

	
 
		// There's only work to do if current dataType is non-auto
 
			if ( current === "*" ) {
 

	
 
				current = prev;
 

	
 
			// Convert response if prev dataType is non-auto and differs from current
 
			} else if ( prev !== "*" && prev !== current ) {
 

	
 
				// Seek a direct converter
 
				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
 

	
 
				// If none found, seek a pair
 
				if ( !conv ) {
 
					for ( conv2 in converters ) {
 

	
 
						// If conv2 outputs current
 
						tmp = conv2.split( " " );
 
						if ( tmp[ 1 ] === current ) {
 

	
 
							// If prev can be converted to accepted input
 
							conv = converters[ prev + " " + tmp[ 0 ] ] ||
 
								converters[ "* " + tmp[ 0 ] ];
 
							if ( conv ) {
 

	
 
								// Condense equivalence converters
 
								if ( conv === true ) {
 
									conv = converters[ conv2 ];
 

	
 
								// Otherwise, insert the intermediate dataType
 
								} else if ( converters[ conv2 ] !== true ) {
 
									current = tmp[ 0 ];
 
									dataTypes.unshift( tmp[ 1 ] );
 
								}
 
								break;
 
							}
 
						}
 
					}
 
				}
 

	
 
				// Apply converter (if not an equivalence)
 
				if ( conv !== true ) {
 

	
 
					// Unless errors are allowed to bubble, catch and return them
 
					if ( conv && s.throws ) {
 
						response = conv( response );
 
					} else {
 
						try {
 
							response = conv( response );
 
						} catch ( e ) {
 
							return {
 
								state: "parsererror",
 
								error: conv ? e : "No conversion from " + prev + " to " + current
 
							};
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	return { state: "success", data: response };
 
}
 

	
 
jQuery.extend( {
 

	
 
	// Counter for holding the number of active queries
 
	active: 0,
 

	
 
	// Last-Modified header cache for next request
 
	lastModified: {},
 
	etag: {},
 

	
 
	ajaxSettings: {
 
		url: location.href,
 
		type: "GET",
 
		isLocal: rlocalProtocol.test( location.protocol ),
 
		global: true,
 
		processData: true,
 
		async: true,
 
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
 
		/*
 
		timeout: 0,
 
		data: null,
 
		dataType: null,
 
		username: null,
 
		password: null,
 
		cache: null,
 
		throws: false,
 
		traditional: false,
 
		headers: {},
 
		*/
 

	
 
		accepts: {
 
			"*": allTypes,
 
			text: "text/plain",
 
			html: "text/html",
 
			xml: "application/xml, text/xml",
 
			json: "application/json, text/javascript"
 
		},
 

	
 
		contents: {
 
			xml: /\bxml\b/,
 
			html: /\bhtml/,
 
			json: /\bjson\b/
 
		},
 

	
 
		responseFields: {
 
			xml: "responseXML",
 
			text: "responseText",
 
			json: "responseJSON"
 
		},
 

	
 
		// Data converters
 
		// Keys separate source (or catchall "*") and destination types with a single space
 
		converters: {
 

	
 
			// Convert anything to text
 
			"* text": String,
 

	
 
			// Text to html (true = no transformation)
 
			"text html": true,
 

	
 
			// Evaluate text as a json expression
 
			"text json": jQuery.parseJSON,
 

	
 
			// Parse text as xml
 
			"text xml": jQuery.parseXML
 
		},
 

	
 
		// For options that shouldn't be deep extended:
 
		// you can add your own custom options here if
 
		// and when you create one that shouldn't be
 
		// deep extended (see ajaxExtend)
 
		flatOptions: {
 
			url: true,
 
			context: true
 
		}
 
	},
 

	
 
	// Creates a full fledged settings object into target
 
	// with both ajaxSettings and settings fields.
 
	// If target is omitted, writes into ajaxSettings.
 
	ajaxSetup: function( target, settings ) {
 
		return settings ?
 

	
 
			// Building a settings object
 
			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
 

	
 
			// Extending ajaxSettings
 
			ajaxExtend( jQuery.ajaxSettings, target );
 
	},
 

	
 
	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
 
	ajaxTransport: addToPrefiltersOrTransports( transports ),
 

	
 
	// Main method
 
	ajax: function( url, options ) {
 

	
 
		// If url is an object, simulate pre-1.5 signature
 
		if ( typeof url === "object" ) {
 
			options = url;
 
			url = undefined;
 
		}
 

	
 
		// Force options to be an object
 
		options = options || {};
 

	
 
		var transport,
 

	
 
			// URL without anti-cache param
 
			cacheURL,
 

	
 
			// Response headers
 
			responseHeadersString,
 
			responseHeaders,
 

	
 
			// timeout handle
 
			timeoutTimer,
 

	
 
			// Url cleanup var
 
			urlAnchor,
 

	
 
			// To know if global events are to be dispatched
 
			fireGlobals,
 

	
 
			// Loop variable
 
			i,
 

	
 
			// Create the final options object
 
			s = jQuery.ajaxSetup( {}, options ),
 

	
 
			// Callbacks context
 
			callbackContext = s.context || s,
 

	
 
			// Context for global events is callbackContext if it is a DOM node or jQuery collection
 
			globalEventContext = s.context &&
 
				( callbackContext.nodeType || callbackContext.jquery ) ?
 
					jQuery( callbackContext ) :
 
					jQuery.event,
 

	
 
			// Deferreds
 
			deferred = jQuery.Deferred(),
 
			completeDeferred = jQuery.Callbacks( "once memory" ),
 

	
 
			// Status-dependent callbacks
 
			statusCode = s.statusCode || {},
 

	
 
			// Headers (they are sent all at once)
 
			requestHeaders = {},
 
			requestHeadersNames = {},
 

	
 
			// The jqXHR state
 
			state = 0,
 

	
 
			// Default abort message
 
			strAbort = "canceled",
 

	
 
			// Fake xhr
 
			jqXHR = {
 
				readyState: 0,
 

	
 
				// Builds headers hashtable if needed
 
				getResponseHeader: function( key ) {
 
					var match;
 
					if ( state === 2 ) {
 
						if ( !responseHeaders ) {
 
							responseHeaders = {};
 
							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
 
								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 
							}
 
						}
 
						match = responseHeaders[ key.toLowerCase() ];
 
					}
 
					return match == null ? null : match;
 
				},
 

	
 
				// Raw string
 
				getAllResponseHeaders: function() {
 
					return state === 2 ? responseHeadersString : null;
 
				},
 

	
 
				// Caches the header
 
				setRequestHeader: function( name, value ) {
 
					var lname = name.toLowerCase();
 
					if ( !state ) {
 
						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
 
						requestHeaders[ name ] = value;
 
					}
 
					return this;
 
				},
 

	
 
				// Overrides response content-type header
 
				overrideMimeType: function( type ) {
 
					if ( !state ) {
 
						s.mimeType = type;
 
					}
 
					return this;
 
				},
 

	
 
				// Status-dependent callbacks
 
				statusCode: function( map ) {
 
					var code;
 
					if ( map ) {
 
						if ( state < 2 ) {
 
							for ( code in map ) {
 

	
 
								// Lazy-add the new callback in a way that preserves old ones
 
								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
 
							}
 
						} else {
 

	
 
							// Execute the appropriate callbacks
 
							jqXHR.always( map[ jqXHR.status ] );
 
						}
 
					}
 
					return this;
 
				},
 

	
 
				// Cancel the request
 
				abort: function( statusText ) {
 
					var finalText = statusText || strAbort;
 
					if ( transport ) {
 
						transport.abort( finalText );
 
					}
 
					done( 0, finalText );
 
					return this;
 
				}
 
			};
 

	
 
		// Attach deferreds
 
		deferred.promise( jqXHR ).complete = completeDeferred.add;
 
		jqXHR.success = jqXHR.done;
 
		jqXHR.error = jqXHR.fail;
 

	
 
		// Remove hash character (#7531: and string promotion)
 
		// Add protocol if not provided (prefilters might expect it)
 
		// Handle falsy url in the settings object (#10093: consistency with old signature)
 
		// We also use the url parameter if available
 
		s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" )
 
			.replace( rprotocol, location.protocol + "//" );
 

	
 
		// Alias method option to type as per ticket #12004
 
		s.type = options.method || options.type || s.method || s.type;
 

	
 
		// Extract dataTypes list
 
		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
 

	
 
		// A cross-domain request is in order when the origin doesn't match the current origin.
 
		if ( s.crossDomain == null ) {
 
			urlAnchor = document.createElement( "a" );
 

	
 
			// Support: IE8-11+
 
			// IE throws exception if url is malformed, e.g. http://example.com:80x/
 
			try {
 
				urlAnchor.href = s.url;
 

	
 
				// Support: IE8-11+
 
				// Anchor's host property isn't correctly set when s.url is relative
 
				urlAnchor.href = urlAnchor.href;
 
				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
 
					urlAnchor.protocol + "//" + urlAnchor.host;
 
			} catch ( e ) {
 

	
 
				// If there is an error parsing the URL, assume it is crossDomain,
 
				// it can be rejected by the transport if it is invalid
 
				s.crossDomain = true;
 
			}
 
		}
 

	
 
		// Convert data if not already a string
 
		if ( s.data && s.processData && typeof s.data !== "string" ) {
 
			s.data = jQuery.param( s.data, s.traditional );
 
		}
 

	
 
		// Apply prefilters
 
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
 

	
 
		// If request was aborted inside a prefilter, stop there
 
		if ( state === 2 ) {
 
			return jqXHR;
 
		}
 

	
 
		// We can fire global events as of now if asked to
 
		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
 
		fireGlobals = jQuery.event && s.global;
 

	
 
		// Watch for a new set of requests
 
		if ( fireGlobals && jQuery.active++ === 0 ) {
 
			jQuery.event.trigger( "ajaxStart" );
 
		}
 

	
 
		// Uppercase the type
 
		s.type = s.type.toUpperCase();
 

	
 
		// Determine if request has content
 
		s.hasContent = !rnoContent.test( s.type );
 

	
 
		// Save the URL in case we're toying with the If-Modified-Since
 
		// and/or If-None-Match header later on
 
		cacheURL = s.url;
 

	
 
		// More options handling for requests with no content
 
		if ( !s.hasContent ) {
 

	
 
			// If data is available, append data to url
 
			if ( s.data ) {
 
				cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
 

	
 
				// #9682: remove data so that it's not used in an eventual retry
 
				delete s.data;
 
			}
 

	
 
			// Add anti-cache in url if needed
 
			if ( s.cache === false ) {
 
				s.url = rts.test( cacheURL ) ?
 

	
 
					// If there is already a '_' parameter, set its value
 
					cacheURL.replace( rts, "$1_=" + nonce++ ) :
 

	
 
					// Otherwise add one to the end
 
					cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
 
			}
 
		}
 

	
 
		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 
		if ( s.ifModified ) {
 
			if ( jQuery.lastModified[ cacheURL ] ) {
 
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
 
			}
 
			if ( jQuery.etag[ cacheURL ] ) {
 
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
 
			}
 
		}
 

	
 
		// Set the correct header, if data is being sent
 
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
 
			jqXHR.setRequestHeader( "Content-Type", s.contentType );
 
		}
 

	
 
		// Set the Accepts header for the server, depending on the dataType
 
		jqXHR.setRequestHeader(
 
			"Accept",
 
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
 
				s.accepts[ s.dataTypes[ 0 ] ] +
 
					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
 
				s.accepts[ "*" ]
 
		);
 

	
 
		// Check for headers option
 
		for ( i in s.headers ) {
 
			jqXHR.setRequestHeader( i, s.headers[ i ] );
 
		}
 

	
 
		// Allow custom headers/mimetypes and early abort
 
		if ( s.beforeSend &&
 
			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
 

	
 
			// Abort if not done already and return
 
			return jqXHR.abort();
 
		}
 

	
 
		// Aborting is no longer a cancellation
 
		strAbort = "abort";
 

	
 
		// Install callbacks on deferreds
 
		for ( i in { success: 1, error: 1, complete: 1 } ) {
 
			jqXHR[ i ]( s[ i ] );
 
		}
 

	
 
		// Get transport
 
		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
 

	
 
		// If no transport, we auto-abort
 
		if ( !transport ) {
 
			done( -1, "No Transport" );
 
		} else {
 
			jqXHR.readyState = 1;
 

	
 
			// Send global event
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
 
			}
 

	
 
			// If request was aborted inside ajaxSend, stop there
 
			if ( state === 2 ) {
 
				return jqXHR;
 
			}
 

	
 
			// Timeout
 
			if ( s.async && s.timeout > 0 ) {
 
				timeoutTimer = window.setTimeout( function() {
 
					jqXHR.abort( "timeout" );
 
				}, s.timeout );
 
			}
 

	
 
			try {
 
				state = 1;
 
				transport.send( requestHeaders, done );
 
			} catch ( e ) {
 

	
 
				// Propagate exception as error if not done
 
				if ( state < 2 ) {
 
					done( -1, e );
 

	
 
				// Simply rethrow otherwise
 
				} else {
 
					throw e;
 
				}
 
			}
 
		}
 

	
 
		// Callback for when everything is done
 
		function done( status, nativeStatusText, responses, headers ) {
 
			var isSuccess, success, error, response, modified,
 
				statusText = nativeStatusText;
 

	
 
			// Called once
 
			if ( state === 2 ) {
 
				return;
 
			}
 

	
 
			// State is "done" now
 
			state = 2;
 

	
 
			// Clear timeout if it exists
 
			if ( timeoutTimer ) {
 
				window.clearTimeout( timeoutTimer );
 
			}
 

	
 
			// Dereference transport for early garbage collection
 
			// (no matter how long the jqXHR object will be used)
 
			transport = undefined;
 

	
 
			// Cache response headers
 
			responseHeadersString = headers || "";
 

	
 
			// Set readyState
 
			jqXHR.readyState = status > 0 ? 4 : 0;
 

	
 
			// Determine if successful
 
			isSuccess = status >= 200 && status < 300 || status === 304;
 

	
 
			// Get response data
 
			if ( responses ) {
 
				response = ajaxHandleResponses( s, jqXHR, responses );
 
			}
 

	
 
			// Convert no matter what (that way responseXXX fields are always set)
 
			response = ajaxConvert( s, response, jqXHR, isSuccess );
 

	
 
			// If successful, handle type chaining
 
			if ( isSuccess ) {
 

	
 
				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 
				if ( s.ifModified ) {
 
					modified = jqXHR.getResponseHeader( "Last-Modified" );
 
					if ( modified ) {
 
						jQuery.lastModified[ cacheURL ] = modified;
 
					}
 
					modified = jqXHR.getResponseHeader( "etag" );
 
					if ( modified ) {
 
						jQuery.etag[ cacheURL ] = modified;
 
					}
 
				}
 

	
 
				// if no content
 
				if ( status === 204 || s.type === "HEAD" ) {
 
					statusText = "nocontent";
 

	
 
				// if not modified
 
				} else if ( status === 304 ) {
 
					statusText = "notmodified";
 

	
 
				// If we have data, let's convert it
 
				} else {
 
					statusText = response.state;
 
					success = response.data;
 
					error = response.error;
 
					isSuccess = !error;
 
				}
 
			} else {
 

	
 
				// Extract error from statusText and normalize for non-aborts
 
				error = statusText;
 
				if ( status || !statusText ) {
 
					statusText = "error";
 
					if ( status < 0 ) {
 
						status = 0;
 
					}
 
				}
 
			}
 

	
 
			// Set data for the fake xhr object
 
			jqXHR.status = status;
 
			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
 

	
 
			// Success/Error
 
			if ( isSuccess ) {
 
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
 
			} else {
 
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
 
			}
 

	
 
			// Status-dependent callbacks
 
			jqXHR.statusCode( statusCode );
 
			statusCode = undefined;
 

	
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
 
					[ jqXHR, s, isSuccess ? success : error ] );
 
			}
 

	
 
			// Complete
 
			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
 

	
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
 

	
 
				// Handle the global AJAX counter
 
				if ( !( --jQuery.active ) ) {
 
					jQuery.event.trigger( "ajaxStop" );
 
				}
 
			}
 
		}
 

	
 
		return jqXHR;
 
	},
 

	
 
	getJSON: function( url, data, callback ) {
 
		return jQuery.get( url, data, callback, "json" );
 
	},
 

	
 
	getScript: function( url, callback ) {
 
		return jQuery.get( url, undefined, callback, "script" );
 
	}
 
} );
 

	
 
jQuery.each( [ "get", "post" ], function( i, method ) {
 
	jQuery[ method ] = function( url, data, callback, type ) {
 

	
 
		// Shift arguments if data argument was omitted
 
		if ( jQuery.isFunction( data ) ) {
 
			type = type || callback;
 
			callback = data;
 
			data = undefined;
 
		}
 

	
 
		// The url can be an options object (which then must have .url)
 
		return jQuery.ajax( jQuery.extend( {
 
			url: url,
 
			type: method,
 
			dataType: type,
 
			data: data,
 
			success: callback
 
		}, jQuery.isPlainObject( url ) && url ) );
 
	};
 
} );
 

	
 

	
 
jQuery._evalUrl = function( url ) {
 
	return jQuery.ajax( {
 
		url: url,
 

	
 
		// Make this explicit, since user can override this through ajaxSetup (#11264)
 
		type: "GET",
 
		dataType: "script",
 
		async: false,
 
		global: false,
 
		"throws": true
 
	} );
 
};
 

	
 

	
 
jQuery.fn.extend( {
 
	wrapAll: function( html ) {
 
		var wrap;
 

	
 
		if ( jQuery.isFunction( html ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).wrapAll( html.call( this, i ) );
 
			} );
 
		}
 

	
 
		if ( this[ 0 ] ) {
 

	
 
			// The elements to wrap the target around
 
			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
 

	
 
			if ( this[ 0 ].parentNode ) {
 
				wrap.insertBefore( this[ 0 ] );
 
			}
 

	
 
			wrap.map( function() {
 
				var elem = this;
 

	
 
				while ( elem.firstElementChild ) {
 
					elem = elem.firstElementChild;
 
				}
 

	
 
				return elem;
 
			} ).append( this );
 
		}
 

	
 
		return this;
 
	},
 

	
 
	wrapInner: function( html ) {
 
		if ( jQuery.isFunction( html ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).wrapInner( html.call( this, i ) );
 
			} );
 
		}
 

	
 
		return this.each( function() {
 
			var self = jQuery( this ),
 
				contents = self.contents();
 

	
 
			if ( contents.length ) {
 
				contents.wrapAll( html );
 

	
 
			} else {
 
				self.append( html );
 
			}
 
		} );
 
	},
 

	
 
	wrap: function( html ) {
 
		var isFunction = jQuery.isFunction( html );
 

	
 
		return this.each( function( i ) {
 
			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
 
		} );
 
	},
 

	
 
	unwrap: function() {
 
		return this.parent().each( function() {
 
			if ( !jQuery.nodeName( this, "body" ) ) {
 
				jQuery( this ).replaceWith( this.childNodes );
 
			}
 
		} ).end();
 
	}
 
} );
 

	
 

	
 
jQuery.expr.filters.hidden = function( elem ) {
 
	return !jQuery.expr.filters.visible( elem );
 
};
 
jQuery.expr.filters.visible = function( elem ) {
 

	
 
	// Support: Opera <= 12.12
 
	// Opera reports offsetWidths and offsetHeights less than zero on some elements
 
	// Use OR instead of AND as the element is not visible if either is true
 
	// See tickets #10406 and #13132
 
	return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
 
};
 

	
 

	
 

	
 

	
 
var r20 = /%20/g,
 
	rbracket = /\[\]$/,
 
	rCRLF = /\r?\n/g,
 
	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
 
	rsubmittable = /^(?:input|select|textarea|keygen)/i;
 

	
 
function buildParams( prefix, obj, traditional, add ) {
 
	var name;
 

	
 
	if ( jQuery.isArray( obj ) ) {
 

	
 
		// Serialize array item.
 
		jQuery.each( obj, function( i, v ) {
 
			if ( traditional || rbracket.test( prefix ) ) {
 

	
 
				// Treat each array item as a scalar.
 
				add( prefix, v );
 

	
 
			} else {
 

	
 
				// Item is non-scalar (array or object), encode its numeric index.
 
				buildParams(
 
					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
 
					v,
 
					traditional,
 
					add
 
				);
 
			}
 
		} );
 

	
 
	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
 

	
 
		// Serialize object item.
 
		for ( name in obj ) {
 
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
 
		}
 

	
 
	} else {
 

	
 
		// Serialize scalar item.
 
		add( prefix, obj );
 
	}
 
}
 

	
 
// Serialize an array of form elements or a set of
 
// key/values into a query string
 
jQuery.param = function( a, traditional ) {
 
	var prefix,
 
		s = [],
 
		add = function( key, value ) {
 

	
 
			// If value is a function, invoke it and return its value
 
			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
 
			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
 
		};
 

	
 
	// Set traditional to true for jQuery <= 1.3.2 behavior.
 
	if ( traditional === undefined ) {
 
		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
 
	}
 

	
 
	// If an array was passed in, assume that it is an array of form elements.
 
	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 

	
 
		// Serialize the form elements
 
		jQuery.each( a, function() {
 
			add( this.name, this.value );
 
		} );
 

	
 
	} else {
 

	
 
		// If traditional, encode the "old" way (the way 1.3.2 or older
 
		// did it), otherwise encode params recursively.
 
		for ( prefix in a ) {
 
			buildParams( prefix, a[ prefix ], traditional, add );
 
		}
 
	}
 

	
 
	// Return the resulting serialization
 
	return s.join( "&" ).replace( r20, "+" );
 
};
 

	
 
jQuery.fn.extend( {
 
	serialize: function() {
 
		return jQuery.param( this.serializeArray() );
 
	},
 
	serializeArray: function() {
 
		return this.map( function() {
 

	
 
			// Can add propHook for "elements" to filter or add form elements
 
			var elements = jQuery.prop( this, "elements" );
 
			return elements ? jQuery.makeArray( elements ) : this;
 
		} )
 
		.filter( function() {
 
			var type = this.type;
 

	
 
			// Use .is( ":disabled" ) so that fieldset[disabled] works
 
			return this.name && !jQuery( this ).is( ":disabled" ) &&
 
				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 
				( this.checked || !rcheckableType.test( type ) );
 
		} )
 
		.map( function( i, elem ) {
 
			var val = jQuery( this ).val();
 

	
 
			return val == null ?
 
				null :
 
				jQuery.isArray( val ) ?
 
					jQuery.map( val, function( val ) {
 
						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
 
					} ) :
 
					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
 
		} ).get();
 
	}
 
} );
 

	
 

	
 
jQuery.ajaxSettings.xhr = function() {
 
	try {
 
		return new window.XMLHttpRequest();
 
	} catch ( e ) {}
 
};
 

	
 
var xhrSuccessStatus = {
 

	
 
		// File protocol always yields status code 0, assume 200
 
		0: 200,
 

	
 
		// Support: IE9
 
		// #1450: sometimes IE returns 1223 when it should be 204
 
		1223: 204
 
	},
 
	xhrSupported = jQuery.ajaxSettings.xhr();
 

	
 
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
 
support.ajax = xhrSupported = !!xhrSupported;
 

	
 
jQuery.ajaxTransport( function( options ) {
 
	var callback, errorCallback;
 

	
 
	// Cross domain only allowed if supported through XMLHttpRequest
 
	if ( support.cors || xhrSupported && !options.crossDomain ) {
 
		return {
 
			send: function( headers, complete ) {
 
				var i,
 
					xhr = options.xhr();
 

	
 
				xhr.open(
 
					options.type,
 
					options.url,
 
					options.async,
 
					options.username,
 
					options.password
 
				);
 

	
 
				// Apply custom fields if provided
 
				if ( options.xhrFields ) {
 
					for ( i in options.xhrFields ) {
 
						xhr[ i ] = options.xhrFields[ i ];
 
					}
 
				}
 

	
 
				// Override mime type if needed
 
				if ( options.mimeType && xhr.overrideMimeType ) {
 
					xhr.overrideMimeType( options.mimeType );
 
				}
 

	
 
				// X-Requested-With header
 
				// For cross-domain requests, seeing as conditions for a preflight are
 
				// akin to a jigsaw puzzle, we simply never set it to be sure.
 
				// (it can always be set on a per-request basis or even using ajaxSetup)
 
				// For same-domain requests, won't change header if already provided.
 
				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
 
					headers[ "X-Requested-With" ] = "XMLHttpRequest";
 
				}
 

	
 
				// Set headers
 
				for ( i in headers ) {
 
					xhr.setRequestHeader( i, headers[ i ] );
 
				}
 

	
 
				// Callback
 
				callback = function( type ) {
 
					return function() {
 
						if ( callback ) {
 
							callback = errorCallback = xhr.onload =
 
								xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
 

	
 
							if ( type === "abort" ) {
 
								xhr.abort();
 
							} else if ( type === "error" ) {
 

	
 
								// Support: IE9
 
								// On a manual native abort, IE9 throws
 
								// errors on any property access that is not readyState
 
								if ( typeof xhr.status !== "number" ) {
 
									complete( 0, "error" );
 
								} else {
 
									complete(
 

	
 
										// File: protocol always yields status 0; see #8605, #14207
 
										xhr.status,
 
										xhr.statusText
 
									);
 
								}
 
							} else {
 
								complete(
 
									xhrSuccessStatus[ xhr.status ] || xhr.status,
 
									xhr.statusText,
 

	
 
									// Support: IE9 only
 
									// IE9 has no XHR2 but throws on binary (trac-11426)
 
									// For XHR2 non-text, let the caller handle it (gh-2498)
 
									( xhr.responseType || "text" ) !== "text"  ||
 
									typeof xhr.responseText !== "string" ?
 
										{ binary: xhr.response } :
 
										{ text: xhr.responseText },
 
									xhr.getAllResponseHeaders()
 
								);
 
							}
 
						}
 
					};
 
				};
 

	
 
				// Listen to events
 
				xhr.onload = callback();
 
				errorCallback = xhr.onerror = callback( "error" );
 

	
 
				// Support: IE9
 
				// Use onreadystatechange to replace onabort
 
				// to handle uncaught aborts
 
				if ( xhr.onabort !== undefined ) {
 
					xhr.onabort = errorCallback;
 
				} else {
 
					xhr.onreadystatechange = function() {
 

	
 
						// Check readyState before timeout as it changes
 
						if ( xhr.readyState === 4 ) {
 

	
 
							// Allow onerror to be called first,
 
							// but that will not handle a native abort
 
							// Also, save errorCallback to a variable
 
							// as xhr.onerror cannot be accessed
 
							window.setTimeout( function() {
 
								if ( callback ) {
 
									errorCallback();
 
								}
 
							} );
 
						}
 
					};
 
				}
 

	
 
				// Create the abort callback
 
				callback = callback( "abort" );
 

	
 
				try {
 

	
 
					// Do send the request (this may raise an exception)
 
					xhr.send( options.hasContent && options.data || null );
 
				} catch ( e ) {
 

	
 
					// #14683: Only rethrow if this hasn't been notified as an error yet
 
					if ( callback ) {
 
						throw e;
 
					}
 
				}
 
			},
 

	
 
			abort: function() {
 
				if ( callback ) {
 
					callback();
 
				}
 
			}
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Install script dataType
 
jQuery.ajaxSetup( {
 
	accepts: {
 
		script: "text/javascript, application/javascript, " +
 
			"application/ecmascript, application/x-ecmascript"
 
	},
 
	contents: {
 
		script: /\b(?:java|ecma)script\b/
 
	},
 
	converters: {
 
		"text script": function( text ) {
 
			jQuery.globalEval( text );
 
			return text;
 
		}
 
	}
 
} );
 

	
 
// Handle cache's special case and crossDomain
 
jQuery.ajaxPrefilter( "script", function( s ) {
 
	if ( s.cache === undefined ) {
 
		s.cache = false;
 
	}
 
	if ( s.crossDomain ) {
 
		s.type = "GET";
 
	}
 
} );
 

	
 
// Bind script tag hack transport
 
jQuery.ajaxTransport( "script", function( s ) {
 

	
 
	// This transport only deals with cross domain requests
 
	if ( s.crossDomain ) {
 
		var script, callback;
 
		return {
 
			send: function( _, complete ) {
 
				script = jQuery( "<script>" ).prop( {
 
					charset: s.scriptCharset,
 
					src: s.url
 
				} ).on(
 
					"load error",
 
					callback = function( evt ) {
 
						script.remove();
 
						callback = null;
 
						if ( evt ) {
 
							complete( evt.type === "error" ? 404 : 200, evt.type );
 
						}
 
					}
 
				);
 

	
 
				// Use native DOM manipulation to avoid our domManip AJAX trickery
 
				document.head.appendChild( script[ 0 ] );
 
			},
 
			abort: function() {
 
				if ( callback ) {
 
					callback();
 
				}
 
			}
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
var oldCallbacks = [],
 
	rjsonp = /(=)\?(?=&|$)|\?\?/;
 

	
 
// Default jsonp settings
 
jQuery.ajaxSetup( {
 
	jsonp: "callback",
 
	jsonpCallback: function() {
 
		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
 
		this[ callback ] = true;
 
		return callback;
 
	}
 
} );
 

	
 
// Detect, normalize options and install callbacks for jsonp requests
 
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 

	
 
	var callbackName, overwritten, responseContainer,
 
		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
 
			"url" :
 
			typeof s.data === "string" &&
 
				( s.contentType || "" )
 
					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
 
				rjsonp.test( s.data ) && "data"
 
		);
 

	
 
	// Handle iff the expected data type is "jsonp" or we have a parameter to set
 
	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
 

	
 
		// Get callback name, remembering preexisting value associated with it
 
		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
 
			s.jsonpCallback() :
 
			s.jsonpCallback;
 

	
 
		// Insert callback into url or form data
 
		if ( jsonProp ) {
 
			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
 
		} else if ( s.jsonp !== false ) {
 
			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
 
		}
 

	
 
		// Use data converter to retrieve json after script execution
 
		s.converters[ "script json" ] = function() {
 
			if ( !responseContainer ) {
 
				jQuery.error( callbackName + " was not called" );
 
			}
 
			return responseContainer[ 0 ];
 
		};
 

	
 
		// Force json dataType
 
		s.dataTypes[ 0 ] = "json";
 

	
 
		// Install callback
 
		overwritten = window[ callbackName ];
 
		window[ callbackName ] = function() {
 
			responseContainer = arguments;
 
		};
 

	
 
		// Clean-up function (fires after converters)
 
		jqXHR.always( function() {
 

	
 
			// If previous value didn't exist - remove it
 
			if ( overwritten === undefined ) {
 
				jQuery( window ).removeProp( callbackName );
 

	
 
			// Otherwise restore preexisting value
 
			} else {
 
				window[ callbackName ] = overwritten;
 
			}
 

	
 
			// Save back as free
 
			if ( s[ callbackName ] ) {
 

	
 
				// Make sure that re-using the options doesn't screw things around
 
				s.jsonpCallback = originalSettings.jsonpCallback;
 

	
 
				// Save the callback name for future use
 
				oldCallbacks.push( callbackName );
 
			}
 

	
 
			// Call if it was a function and we have a response
 
			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
 
				overwritten( responseContainer[ 0 ] );
 
			}
 

	
 
			responseContainer = overwritten = undefined;
 
		} );
 

	
 
		// Delegate to script
 
		return "script";
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Support: Safari 8+
 
// In Safari 8 documents created via document.implementation.createHTMLDocument
 
// collapse sibling forms: the second one becomes a child of the first one.
 
// Because of that, this security measure has to be disabled in Safari 8.
 
// https://bugs.webkit.org/show_bug.cgi?id=137337
 
support.createHTMLDocument = ( function() {
 
	var body = document.implementation.createHTMLDocument( "" ).body;
 
	body.innerHTML = "<form></form><form></form>";
 
	return body.childNodes.length === 2;
 
} )();
 

	
 

	
 
// Argument "data" should be string of html
 
// context (optional): If specified, the fragment will be created in this context,
 
// defaults to document
 
// keepScripts (optional): If true, will include scripts passed in the html string
 
jQuery.parseHTML = function( data, context, keepScripts ) {
 
	if ( !data || typeof data !== "string" ) {
 
		return null;
 
	}
 
	if ( typeof context === "boolean" ) {
 
		keepScripts = context;
 
		context = false;
 
	}
 

	
 
	// Stop scripts or inline event handlers from being executed immediately
 
	// by using document.implementation
 
	context = context || ( support.createHTMLDocument ?
 
		document.implementation.createHTMLDocument( "" ) :
 
		document );
 

	
 
	var parsed = rsingleTag.exec( data ),
 
		scripts = !keepScripts && [];
 

	
 
	// Single tag
 
	if ( parsed ) {
 
		return [ context.createElement( parsed[ 1 ] ) ];
 
	}
 

	
 
	parsed = buildFragment( [ data ], context, scripts );
 

	
 
	if ( scripts && scripts.length ) {
 
		jQuery( scripts ).remove();
 
	}
 

	
 
	return jQuery.merge( [], parsed.childNodes );
 
};
 

	
 

	
 
// Keep a copy of the old load method
 
var _load = jQuery.fn.load;
 

	
 
/**
 
 * Load a url into a page
 
 */
 
jQuery.fn.load = function( url, params, callback ) {
 
	if ( typeof url !== "string" && _load ) {
 
		return _load.apply( this, arguments );
 
	}
 

	
 
	var selector, type, response,
 
		self = this,
 
		off = url.indexOf( " " );
 

	
 
	if ( off > -1 ) {
 
		selector = jQuery.trim( url.slice( off ) );
 
		url = url.slice( 0, off );
 
	}
 

	
 
	// If it's a function
 
	if ( jQuery.isFunction( params ) ) {
 

	
 
		// We assume that it's the callback
 
		callback = params;
 
		params = undefined;
 

	
 
	// Otherwise, build a param string
 
	} else if ( params && typeof params === "object" ) {
 
		type = "POST";
 
	}
 

	
 
	// If we have elements to modify, make the request
 
	if ( self.length > 0 ) {
 
		jQuery.ajax( {
 
			url: url,
 

	
 
			// If "type" variable is undefined, then "GET" method will be used.
 
			// Make value of this field explicit since
 
			// user can override it through ajaxSetup method
 
			type: type || "GET",
 
			dataType: "html",
 
			data: params
 
		} ).done( function( responseText ) {
 

	
 
			// Save response for use in complete callback
 
			response = arguments;
 

	
 
			self.html( selector ?
 

	
 
				// If a selector was specified, locate the right elements in a dummy div
 
				// Exclude scripts to avoid IE 'Permission Denied' errors
 
				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
 

	
 
				// Otherwise use the full result
 
				responseText );
 

	
 
		// If the request succeeds, this function gets "data", "status", "jqXHR"
 
		// but they are ignored because response was set above.
 
		// If it fails, this function gets "jqXHR", "status", "error"
 
		} ).always( callback && function( jqXHR, status ) {
 
			self.each( function() {
 
				callback.apply( self, response || [ jqXHR.responseText, status, jqXHR ] );
 
			} );
 
		} );
 
	}
 

	
 
	return this;
 
};
 

	
 

	
 

	
 

	
 
// Attach a bunch of functions for handling common AJAX events
 
jQuery.each( [
 
	"ajaxStart",
 
	"ajaxStop",
 
	"ajaxComplete",
 
	"ajaxError",
 
	"ajaxSuccess",
 
	"ajaxSend"
 
], function( i, type ) {
 
	jQuery.fn[ type ] = function( fn ) {
 
		return this.on( type, fn );
 
	};
 
} );
 

	
 

	
 

	
 

	
 
jQuery.expr.filters.animated = function( elem ) {
 
	return jQuery.grep( jQuery.timers, function( fn ) {
 
		return elem === fn.elem;
 
	} ).length;
 
};
 

	
 

	
 

	
 

	
 
/**
 
 * Gets a window from an element
 
 */
 
function getWindow( elem ) {
 
	return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
 
}
 

	
 
jQuery.offset = {
 
	setOffset: function( elem, options, i ) {
 
		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
 
			position = jQuery.css( elem, "position" ),
 
			curElem = jQuery( elem ),
 
			props = {};
 

	
 
		// Set position first, in-case top/left are set even on static elem
 
		if ( position === "static" ) {
 
			elem.style.position = "relative";
 
		}
 

	
 
		curOffset = curElem.offset();
 
		curCSSTop = jQuery.css( elem, "top" );
 
		curCSSLeft = jQuery.css( elem, "left" );
 
		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
 
			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
 

	
 
		// Need to be able to calculate position if either
 
		// top or left is auto and position is either absolute or fixed
 
		if ( calculatePosition ) {
 
			curPosition = curElem.position();
 
			curTop = curPosition.top;
 
			curLeft = curPosition.left;
 

	
 
		} else {
 
			curTop = parseFloat( curCSSTop ) || 0;
 
			curLeft = parseFloat( curCSSLeft ) || 0;
 
		}
 

	
 
		if ( jQuery.isFunction( options ) ) {
 

	
 
			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
 
			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
 
		}
 

	
 
		if ( options.top != null ) {
 
			props.top = ( options.top - curOffset.top ) + curTop;
 
		}
 
		if ( options.left != null ) {
 
			props.left = ( options.left - curOffset.left ) + curLeft;
 
		}
 

	
 
		if ( "using" in options ) {
 
			options.using.call( elem, props );
 

	
 
		} else {
 
			curElem.css( props );
 
		}
 
	}
 
};
 

	
 
jQuery.fn.extend( {
 
	offset: function( options ) {
 
		if ( arguments.length ) {
 
			return options === undefined ?
 
				this :
 
				this.each( function( i ) {
 
					jQuery.offset.setOffset( this, options, i );
 
				} );
 
		}
 

	
 
		var docElem, win,
 
			elem = this[ 0 ],
 
			box = { top: 0, left: 0 },
 
			doc = elem && elem.ownerDocument;
 

	
 
		if ( !doc ) {
 
			return;
 
		}
 

	
 
		docElem = doc.documentElement;
 

	
 
		// Make sure it's not a disconnected DOM node
 
		if ( !jQuery.contains( docElem, elem ) ) {
 
			return box;
 
		}
 

	
 
		box = elem.getBoundingClientRect();
 
		win = getWindow( doc );
 
		return {
 
			top: box.top + win.pageYOffset - docElem.clientTop,
 
			left: box.left + win.pageXOffset - docElem.clientLeft
 
		};
 
	},
 

	
 
	position: function() {
 
		if ( !this[ 0 ] ) {
 
			return;
 
		}
 

	
 
		var offsetParent, offset,
 
			elem = this[ 0 ],
 
			parentOffset = { top: 0, left: 0 };
 

	
 
		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
 
		// because it is its only offset parent
 
		if ( jQuery.css( elem, "position" ) === "fixed" ) {
 

	
 
			// Assume getBoundingClientRect is there when computed position is fixed
 
			offset = elem.getBoundingClientRect();
 

	
 
		} else {
 

	
 
			// Get *real* offsetParent
 
			offsetParent = this.offsetParent();
 

	
 
			// Get correct offsets
 
			offset = this.offset();
 
			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
 
				parentOffset = offsetParent.offset();
 
			}
 

	
 
			// Add offsetParent borders
 
			parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
 
			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
 
		}
 

	
 
		// Subtract parent offsets and element margins
 
		return {
 
			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
 
			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
 
		};
 
	},
 

	
 
	// This method will return documentElement in the following cases:
 
	// 1) For the element inside the iframe without offsetParent, this method will return
 
	//    documentElement of the parent window
 
	// 2) For the hidden or detached element
 
	// 3) For body or html element, i.e. in case of the html node - it will return itself
 
	//
 
	// but those exceptions were never presented as a real life use-cases
 
	// and might be considered as more preferable results.
 
	//
 
	// This logic, however, is not guaranteed and can change at any point in the future
 
	offsetParent: function() {
 
		return this.map( function() {
 
			var offsetParent = this.offsetParent;
 

	
 
			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
 
				offsetParent = offsetParent.offsetParent;
 
			}
 

	
 
			return offsetParent || documentElement;
 
		} );
 
	}
 
} );
 

	
 
// Create scrollLeft and scrollTop methods
 
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
 
	var top = "pageYOffset" === prop;
 

	
 
	jQuery.fn[ method ] = function( val ) {
 
		return access( this, function( elem, method, val ) {
 
			var win = getWindow( elem );
 

	
 
			if ( val === undefined ) {
 
				return win ? win[ prop ] : elem[ method ];
 
			}
 

	
 
			if ( win ) {
 
				win.scrollTo(
 
					!top ? val : win.pageXOffset,
 
					top ? val : win.pageYOffset
 
				);
 

	
 
			} else {
 
				elem[ method ] = val;
 
			}
 
		}, method, val, arguments.length );
 
	};
 
} );
 

	
 
// Support: Safari<7-8+, Chrome<37-44+
 
// Add the top/left cssHooks using jQuery.fn.position
 
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
 
// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
 
// getComputedStyle returns percent when specified for top/left/bottom/right;
 
// rather than make the css module depend on the offset module, just check for it here
 
jQuery.each( [ "top", "left" ], function( i, prop ) {
 
	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 
		function( elem, computed ) {
 
			if ( computed ) {
 
				computed = curCSS( elem, prop );
 

	
 
				// If curCSS returns percentage, fallback to offset
 
				return rnumnonpx.test( computed ) ?
 
					jQuery( elem ).position()[ prop ] + "px" :
 
					computed;
 
			}
 
		}
 
	);
 
} );
 

	
 

	
 
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
 
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 
	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
 
		function( defaultExtra, funcName ) {
 

	
 
		// Margin is only for outerHeight, outerWidth
 
		jQuery.fn[ funcName ] = function( margin, value ) {
 
			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
 
				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
 

	
 
			return access( this, function( elem, type, value ) {
 
				var doc;
 

	
 
				if ( jQuery.isWindow( elem ) ) {
 

	
 
					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
 
					// isn't a whole lot we can do. See pull request at this URL for discussion:
 
					// https://github.com/jquery/jquery/pull/764
 
					return elem.document.documentElement[ "client" + name ];
 
				}
 

	
 
				// Get document width or height
 
				if ( elem.nodeType === 9 ) {
 
					doc = elem.documentElement;
 

	
 
					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
 
					// whichever is greatest
 
					return Math.max(
 
						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
 
						elem.body[ "offset" + name ], doc[ "offset" + name ],
 
						doc[ "client" + name ]
 
					);
 
				}
 

	
 
				return value === undefined ?
 

	
 
					// Get width or height on the element, requesting but not forcing parseFloat
 
					jQuery.css( elem, type, extra ) :
 

	
 
					// Set width or height on the element
 
					jQuery.style( elem, type, value, extra );
 
			}, type, chainable ? margin : undefined, chainable, null );
 
		};
 
	} );
 
} );
 

	
 

	
 
jQuery.fn.extend( {
 

	
 
	bind: function( types, data, fn ) {
 
		return this.on( types, null, data, fn );
 
	},
 
	unbind: function( types, fn ) {
 
		return this.off( types, null, fn );
 
	},
 

	
 
	delegate: function( selector, types, data, fn ) {
 
		return this.on( types, selector, data, fn );
 
	},
 
	undelegate: function( selector, types, fn ) {
 

	
 
		// ( namespace ) or ( selector, types [, fn] )
 
		return arguments.length === 1 ?
 
			this.off( selector, "**" ) :
 
			this.off( types, selector || "**", fn );
 
	},
 
	size: function() {
 
		return this.length;
 
	}
 
} );
 

	
 
jQuery.fn.andSelf = jQuery.fn.addBack;
 

	
 

	
 

	
 

	
 
// Register as a named AMD module, since jQuery can be concatenated with other
 
// files that may use define, but not via a proper concatenation script that
 
// understands anonymous AMD modules. A named AMD is safest and most robust
 
// way to register. Lowercase jquery is used because AMD module names are
 
// derived from file names, and jQuery is normally delivered in a lowercase
 
// file name. Do this after creating the global so that if an AMD module wants
 
// to call noConflict to hide this version of jQuery, it will work.
 

	
 
// Note that for maximum portability, libraries that are not jQuery should
 
// declare themselves as anonymous modules, and avoid setting a global if an
 
// AMD loader is present. jQuery is a special case. For more information, see
 
// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
 

	
 
if ( typeof define === "function" && define.amd ) {
 
	define( "jquery", [], function() {
 
		return jQuery;
 
	} );
 
}
 

	
 

	
 

	
 
var
 

	
 
	// Map over jQuery in case of overwrite
 
	_jQuery = window.jQuery,
 

	
 
	// Map over the $ in case of overwrite
 
	_$ = window.$;
 

	
 
jQuery.noConflict = function( deep ) {
 
	if ( window.$ === jQuery ) {
 
		window.$ = _$;
 
	}
 

	
 
	if ( deep && window.jQuery === jQuery ) {
 
		window.jQuery = _jQuery;
 
	}
 

	
 
	return jQuery;
 
};
 

	
 
// Expose jQuery and $ identifiers, even in AMD
 
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
 
// and CommonJS for browser emulators (#13566)
 
if ( !noGlobal ) {
 
	window.jQuery = window.$ = jQuery;
 
}
 

	
 
return jQuery;
 
}));
 

	
 
},{}],15:[function(require,module,exports){
 
'use strict';
 

	
 
/* global window ace */
 
window.jQuery = window.$ = require('jquery');
 

	
 
var $ = window.$;
 

	
 
require('bootstrap');
 

	
 
var loadEditors = function loadEditors() {
 
    var $editors = $('.modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography');
 
    $editors.each(function (i, el) {
 
        var editorId = 'markdown-editor-' + i;
 
        var reportDiv = $('<div>').attr('id', editorId);
 
        var setupEditor = function setupEditor(editor, textarea) {
 
            var session = editor.getSession();
 
            editor.setTheme('ace/theme/tomorrow');
 
            editor.$blockScrolling = Infinity;
 
            editor.setOption('scrollPastEnd', true);
 
            session.setMode('ace/mode/markdown');
 
            session.setValue(textarea.val());
 
            session.setUseWrapMode(true);
 
            session.on('change', function () {
 
                textarea.val(session.getValue());
 
            });
 
            editor.renderer.setShowGutter(false);
 
            session.setTabSize(4);
 
            session.setUseSoftTabs(true);
 
        };
 
        var $formGroup = $(el).closest('.form-group');
 
        var $textarea = $formGroup.find('textarea');
 
        $formGroup.append(reportDiv);
 
        setupEditor(ace.edit(editorId), $textarea);
 
    });
 
};
 

	
 
$(function () {
 
    loadEditors();
 
});
 

	
 
},{"bootstrap":1,"jquery":14}]},{},[15]);
static/_build/manifest.json
Show inline comments
 
new file 100644
 
{
 
  "css/site.css": "css/site-cf99a8bad7.css",
 
  "js/site.js": "js/site-92ae8d0d6c.js"
 
}
...
 
\ No newline at end of file
static/dist/css/site-cf99a8bad7.css
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
 
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:Glyphicons Halflings;src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:Glyphicons Halflings;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:1;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:7;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:6}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:1;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:2}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:1}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:1;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:7;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:8}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:1;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container-fluid .jumbotron,.container .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container-fluid .jumbotron,.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes a{0%{background-position:40px 0}to{background-position:0 0}}@keyframes a{0%{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:a 2s linear infinite;animation:a 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:1;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:12;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:11;display:none;max-width:276px;padding:1px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel,.carousel-inner{position:relative}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media (-webkit-transform-3d),all and (transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translateZ(0);transform:translateZ(0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,.0001));background-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001),rgba(0,0,0,.5));background-image:linear-gradient(90deg,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:3;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:5;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:4;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.feature-columns:after,.feature-columns:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.feature-columns:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
 
/*!
 
 *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
 
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 
 */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.5.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.5.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.5.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.5.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:b 2s infinite linear;animation:b 2s infinite linear}.fa-pulse{-webkit-animation:b 1s infinite steps(8);animation:b 1s infinite steps(8)}@-webkit-keyframes b{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes b{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}body.account-delete .account-delete,body.account-password .account-password,body.account-settings .account-settings{z-index:1;color:#fff;background-color:#337ab7;border-color:#337ab7}form #id_abstract,form #id_additional_notes,form #id_biography,form #id_body,form #id_comment,form #id_content_override,form #id_description,form #id_message,form #id_text,form .modal-body textarea{display:none}form .ace_editor{min-height:200px;width:100%;border:1px dotted #ccc}form .ace_content{padding:5px}body{padding-top:60px}label:not(.checkbox):not(.radio){font-weight:700}header{position:relative;margin-bottom:24px}header h1{margin-bottom:9px;font-size:48px;letter-spacing:-1px;line-height:1;-webkit-margin-before:0;-webkit-margin-after:0}header p{font-size:30px;line-height:36px}header a,header a:hover,header a:visited{color:#333;text-decoration:none}.content-box.editable{border:1px dashed #ccc;padding:1px;min-height:30px}.edit-toggle{position:relative;float:right}div.box-content .markItUpEditor{font-family:Menlo,Monaco,Consolas,Courier New,monospace;padding:5px;width:600px;height:320px;clear:both;display:block;overflow:auto}.modal div.markItUp{width:500px}.modal textarea.markItUpEditor{width:500px;height:250px}.titled-form{position:relative;clear:both;width:auto;margin-bottom:2em;overflow:hidden}.titled-form .titled-form-header{position:relative;height:40px;line-height:40px;background-color:#f8f8f8;border:1px solid #d5d5d5;border-radius:4px 4px 0 0;-webkit-background-clip:padding-box}.titled-form .titled-form-header h3{position:relative;top:2px;left:10px;display:inline-block;margin-right:3em;font-size:14px;font-weight:600;color:#333;line-height:18px;text-shadow:1px 1px 2px hsla(0,0%,100%,.5)}.titled-form .titled-form-content{background-color:#fff;padding-top:20px}.titled-form .form-actions,.titled-form .titled-form-content{border:1px solid #d5d5d5;box-shadow:0 1px 1px rgba(0,0,0,.1);border-top:none}.titled-form .form-actions{margin-top:0;border-radius:0 0 4px 4px}.footer{margin-top:45px;padding:25px 0 26px;border-top:1px solid #e5e5e5}.footer p{margin-bottom:0;color:#555}table.calendar{background-color:#fffff;table-layout:fixed;font-size:12px}table.calendar tr{min-height:36px}table.calendar th{text-align:center}table.calendar th.time{width:40px}table.calendar td{text-align:center;vertical-align:middle}table.calendar td.time{vertical-align:top;padding-top:0;margin-top:0;color:#444;font-size:11px}table.calendar td.slot{font-weight:700;text-shadow:#fff 0 1px 0}table.calendar td.slot.slot-break{background-color:#ecffff}table.calendar td.slot.slot-plenary{background-color:#ebebff}table.calendar td.slot p{padding:0;margin:0}table.calendar td span.title{font-weight:700;display:block}table.calendar td span.speaker{font-weight:400;display:block}body{padding-top:50px;position:relative}section{padding:20px 0}.modal form{margin-bottom:0}footer{padding-bottom:20px}p.login-signup{margin-top:20px}.feature-columns{margin-left:-15px;margin-right:-15px}.feature-columns>div{position:relative;min-height:1px;padding-left:15px;padding-right:15px;text-align:center;margin:2em 0}.feature-columns>div i.fa{margin-bottom:.2em}@media (min-width:768px){.feature-columns>div{float:left;width:33.33333333%}}
...
 
\ No newline at end of file
static/dist/css/site.css
Show inline comments
 
deleted file
static/dist/fonts/FontAwesome.otf
Show inline comments
 
new file 100644
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.eot
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.svg
Show inline comments
 
<?xml version="1.0" standalone="no"?>
 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
 
<svg xmlns="http://www.w3.org/2000/svg">
 
<metadata></metadata>
 
<defs>
 
<font id="fontawesomeregular" horiz-adv-x="1536" >
 
<font-face units-per-em="1792" ascent="1536" descent="-256" />
 
<missing-glyph horiz-adv-x="448" />
 
<glyph unicode=" "  horiz-adv-x="448" />
 
<glyph unicode="&#x09;" horiz-adv-x="448" />
 
<glyph unicode="&#xa0;" horiz-adv-x="448" />
 
<glyph unicode="&#xa8;" horiz-adv-x="1792" />
 
<glyph unicode="&#xa9;" horiz-adv-x="1792" />
 
<glyph unicode="&#xae;" horiz-adv-x="1792" />
 
<glyph unicode="&#xb4;" horiz-adv-x="1792" />
...
 
@@ -210,26 +210,26 @@
 
<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
 
<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
 
<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
 
<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
 
<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
 
<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
 
<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
 
<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
 
<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
 
<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
 
<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
 
<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
 
<glyph unicode="&#xf0d4;" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf0d5;" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
 
<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
 
<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
 
<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
 
<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
 
<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
 
<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
 
<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
 
<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
 
<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
 
<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
 
<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
 
<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
...
 
@@ -353,25 +353,25 @@
 
<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
 
<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
 
<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
 
<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
 
<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
 
<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
 
<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
 
<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
 
<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
 
<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
 
<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
 
<glyph unicode="&#xf16c;" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
 
<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
 
<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
 
<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
 
<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
 
<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
 
<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
 
<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
 
<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
 
<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
 
<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
...
 
@@ -401,25 +401,25 @@
 
<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
 
<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
 
<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
 
<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
 
<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
 
<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
 
<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
 
<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
 
<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
 
<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
 
<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
 
<glyph unicode="&#xf1a0;" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
 
<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
 
<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
 
<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
 
<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
 
<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
 
<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
 
<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
 
<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
 
<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
...
 
@@ -445,25 +445,25 @@
 
<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
 
<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
 
<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
 
<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
 
<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
 
<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
 
<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
 
<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
 
<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
 
<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
 
<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
 
<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
 
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
 
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
 
<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
 
<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
 
<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
 
<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
 
<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
 
<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
 
<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
 
<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
 
<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
...
 
@@ -546,25 +546,25 @@
 
<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
 
<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
 
<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
 
<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
 
<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
 
<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
 
<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
 
<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
 
<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
 
<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
 
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
 
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
 
<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
 
<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
 
<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
 
<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
 
<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
 
<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
 
<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
 
<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
 
<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
 
<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
 
<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
 
<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
...
 
@@ -591,50 +591,65 @@
 
<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
 
<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
 
<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
 
<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
 
<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
 
<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
 
<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" />
 
<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
 
<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
 
<glyph unicode="&#xf26a;" d="M768 -92q77 0 139.5 63t100.5 166t59 234.5t21 268.5t-21 268.5t-59 234.5t-100.5 166t-139.5 63t-139.5 -63t-100.5 -166t-59 -234.5t-21 -268.5t21 -268.5t59 -234.5t100.5 -166t139.5 -63zM768 -256q-184 0 -333 77t-240 203t-141 287t-50 329t50 329t141 287t240 203 t333 77q148 0 274 -50t214.5 -136t151.5 -201t92.5 -244t29.5 -265t-29.5 -265t-92.5 -244t-151.5 -201t-214.5 -136t-274 -50z" />
 
<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M716 -69q-143 35 -261.5 114t-197.5 191q-139 -300 -17 -398q26 -21 85 -24.5t127.5 9.5t141 41.5t122.5 66.5zM693 762h452q0 108 -61.5 169t-168.5 61q-103 0 -162.5 -62.5t-59.5 -167.5zM1724 1137h-34q26 102 22.5 170t-25 110t-63.5 57t-93.5 11t-115 -26.5 t-128.5 -56.5t-134 -79q129 -37 238.5 -113.5t185 -179t110 -231.5t15.5 -262h-1005q0 -60 10 -106t34 -85t69.5 -60t112.5 -21q87 0 142.5 44t72.5 122h540q-71 -230 -281.5 -377t-477.5 -147q-83 0 -159 15q-35 -40 -151 -94t-248 -78t-219 35q-78 60 -100 159t7 214 t88 242t143.5 248t173.5 226.5t177.5 183.5t156.5 112v24q-120 -37 -258.5 -137.5t-240.5 -207t-159 -195.5q4 106 34 201t80 169t118 135.5t147.5 100.5t168 65.5t180.5 29.5t185 -8q310 186 503 189h7q57 0 103 -18q80 -30 98 -132.5t-30 -248.5z" />
 
<glyph unicode="&#xf26a;" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z " />
 
<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
 
<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
 
<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" />
 
<glyph unicode="&#xf26e;" horiz-adv-x="2304" d="M1391 390v0l-1 1q-15 18 -34.5 37.5t-62.5 57.5t-93.5 62t-95.5 24q-48 0 -83 -21.5t-51 -54t-23 -59t-7 -47.5v0v0q0 -21 7 -48t23 -59t51 -53.5t83 -21.5q45 0 95.5 24t94 62.5t62 57t34.5 37.5zM2103 390q0 21 -7 47.5t-23 59t-51 54t-83 21.5q-45 0 -95.5 -24 t-94 -62.5t-62 -57t-34.5 -37.5l-1 -1v0v0l1 -1q15 -18 34.5 -37.5t62.5 -57.5t93.5 -62t95.5 -24q48 0 83 21.5t51 53.5t23 59t7 48zM2304 393q0 -69 -24 -137.5t-68 -126t-116 -93.5t-159 -36q-68 0 -134 24t-113.5 58.5t-84.5 69.5t-59.5 59t-25.5 24t-22.5 -24 t-54.5 -58.5t-81.5 -69.5t-115 -59t-143.5 -24q-65 0 -123.5 22.5t-96.5 54t-66.5 66.5t-41 59.5t-12.5 32.5q0 -8 -8.5 -26.5t-25 -45.5t-47 -55t-69 -52.5t-96.5 -40t-125 -15.5q-71 0 -130 15.5t-98.5 39.5t-70.5 56.5t-48 63.5t-27.5 63.5t-14 54t-3.5 36.5h217 q0 -55 49 -107.5t126 -52.5q79 0 134.5 67t55.5 148q0 80 -52 136.5t-138 56.5q-5 0 -13 -0.5t-31 -5t-43 -12t-42 -24.5t-34 -40h-195l102 583h602v-174h-445q-27 -159 -41 -248q4 0 16.5 13t31.5 28.5t65 28.5t108 13t114 -20.5t82.5 -49.5t51.5 -58.5t31 -50t11 -20.5 t13 25t36.5 60.5t60.5 71.5t97 61t133 25t140.5 -25t115.5 -60.5t83.5 -71.5t56.5 -61t21 -25q2 0 22 25t56 60.5t83.5 71.5t115.5 61t140 25q92 0 164.5 -35t115.5 -93t65 -125t22 -137z" />
 
<glyph unicode="&#xf26e;" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 32 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 32.5 -6t30.5 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
 
<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
 
<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
 
<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" />
 
<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
 
<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
 
<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
 
<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
 
<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
 
<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
 
<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
 
<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
 
<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
 
<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
 
<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
 
<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
 
<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
 
<glyph unicode="&#xf281;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf282;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf283;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf284;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf285;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf286;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf287;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf288;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf289;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28a;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28b;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28c;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28d;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28e;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf281;" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
 
<glyph unicode="&#xf282;" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
 
<glyph unicode="&#xf283;" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
 
<glyph unicode="&#xf284;" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t280 -73.5t204 -204.5l280 143q-116 208 -321 329 t-443 121q-119 0 -232.5 -31.5t-209 -87.5t-176.5 -137t-137 -176.5t-87.5 -209t-31.5 -232.5t31.5 -232.5t87.5 -209t137 -176.5t176.5 -137t209 -87.5t232.5 -31.5z" />
 
<glyph unicode="&#xf285;" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
 
<glyph unicode="&#xf286;" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h16v393q-32 19 -32 55q0 26 19 45t45 19t45 -19t19 -45q0 -36 -32 -55v-9h272q16 0 16 -16v-224q0 -16 -16 -16h-272v-128h16q16 0 16 -16v-112h128 v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96q16 0 16 -16z" />
 
<glyph unicode="&#xf287;" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
 
<glyph unicode="&#xf288;" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf289;" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
 
<glyph unicode="&#xf28a;" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
 
<glyph unicode="&#xf28b;" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
 
<glyph unicode="&#xf28c;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
 
<glyph unicode="&#xf28d;" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
 
<glyph unicode="&#xf28e;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
 
<glyph unicode="&#xf290;" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
 
<glyph unicode="&#xf291;" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
 
<glyph unicode="&#xf292;" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 q15 0 25 -12q9 -12 6 -28z" />
 
<glyph unicode="&#xf293;" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
 
<glyph unicode="&#xf294;" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
 
<glyph unicode="&#xf295;" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
 
<glyph unicode="&#xf296;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf297;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf298;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf299;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29a;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29b;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29c;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29d;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29e;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
 
</font>
 
</defs></svg> 
...
 
\ No newline at end of file
static/dist/fonts/fontawesome-webfont.ttf
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.woff
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.woff2
Show inline comments
 
binary diff not shown
static/dist/js/site-92ae8d0d6c.js
Show inline comments
 
new file 100644
 
!function t(e,n,i){function o(s,a){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return o(n?n:t)},c,c.exports,t,e,n,i)}return n[s].exports}for(var r="function"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(t,e,n){t("../../js/transition.js"),t("../../js/alert.js"),t("../../js/button.js"),t("../../js/carousel.js"),t("../../js/collapse.js"),t("../../js/dropdown.js"),t("../../js/modal.js"),t("../../js/tooltip.js"),t("../../js/popover.js"),t("../../js/scrollspy.js"),t("../../js/tab.js"),t("../../js/affix.js")},{"../../js/affix.js":2,"../../js/alert.js":3,"../../js/button.js":4,"../../js/carousel.js":5,"../../js/collapse.js":6,"../../js/dropdown.js":7,"../../js/modal.js":8,"../../js/popover.js":9,"../../js/scrollspy.js":10,"../../js/tab.js":11,"../../js/tooltip.js":12,"../../js/transition.js":13}],2:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.affix"),r="object"==typeof e&&e;o||i.data("bs.affix",o=new n(this,r)),"string"==typeof e&&o[e]()})}var n=function(e,i){this.options=t.extend({},n.DEFAULTS,i),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.6",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(t,e,n,i){var o=this.$target.scrollTop(),r=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return n>o?"top":!1;if("bottom"==this.affixed)return null!=n?o+this.unpin<=r.top?!1:"bottom":t-i>=o+s?!1:"bottom";var a=null==this.affixed,l=a?o:r.top,u=a?s:e;return null!=n&&n>=o?"top":null!=i&&l+u>=t-i?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},n.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),i=this.options.offset,o=i.top,r=i.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof i&&(r=o=i),"function"==typeof o&&(o=i.top(this.$element)),"function"==typeof r&&(r=i.bottom(this.$element));var a=this.getState(s,e,o,r);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),u=t.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-e-r})}};var i=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=n,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var n=t(this),i=n.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),e.call(n,i)})})}(jQuery)},{}],3:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),o=n.data("bs.alert");o||n.data("bs.alert",o=new i(this)),"string"==typeof e&&o[e].call(n)})}var n='[data-dismiss="alert"]',i=function(e){t(e).on("click",n,this.close)};i.VERSION="3.3.6",i.TRANSITION_DURATION=150,i.prototype.close=function(e){function n(){s.detach().trigger("closed.bs.alert").remove()}var o=t(this),r=o.attr("data-target");r||(r=o.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));var s=t(r);e&&e.preventDefault(),s.length||(s=o.closest(".alert")),s.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n())};var o=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=o,this},t(document).on("click.bs.alert.data-api",n,i.prototype.close)}(jQuery)},{}],4:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.button"),r="object"==typeof e&&e;o||i.data("bs.button",o=new n(this,r)),"toggle"==e?o.toggle():e&&o.setState(e)})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.isLoading=!1};n.VERSION="3.3.6",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",i=this.$element,o=i.is("input")?"val":"html",r=i.data();e+="Text",null==r.resetText&&i.data("resetText",i[o]()),setTimeout(t.proxy(function(){i[o](null==r[e]?this.options[e]:r[e]),"loadingText"==e?(this.isLoading=!0,i.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),t&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var i=t(n.target);i.hasClass("btn")||(i=i.closest(".btn")),e.call(i,"toggle"),t(n.target).is('input[type="radio"]')||t(n.target).is('input[type="checkbox"]')||n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery)},{}],5:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.carousel"),r=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e),s="string"==typeof e?e:r.slide;o||i.data("bs.carousel",o=new n(this,r)),"number"==typeof e?o.to(e):s?o[s]():r.interval&&o.pause().cycle()})}var n=function(e,n){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};n.VERSION="3.3.6",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},n.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},n.prototype.getItemForDirection=function(t,e){var n=this.getItemIndex(e),i="prev"==t&&0===n||"next"==t&&n==this.$items.length-1;if(i&&!this.options.wrap)return e;var o="prev"==t?-1:1,r=(n+o)%this.$items.length;return this.$items.eq(r)},n.prototype.to=function(t){var e=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",this.$items.eq(t))},n.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){return this.sliding?void 0:this.slide("next")},n.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},n.prototype.slide=function(e,i){var o=this.$element.find(".item.active"),r=i||this.getItemForDirection(e,o),s=this.interval,a="next"==e?"left":"right",l=this;if(r.hasClass("active"))return this.sliding=!1;var u=r[0],c=t.Event("slide.bs.carousel",{relatedTarget:u,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var f=t(this.$indicators.children()[this.getItemIndex(r)]);f&&f.addClass("active")}var p=t.Event("slid.bs.carousel",{relatedTarget:u,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(r.addClass(e),r[0].offsetWidth,o.addClass(a),r.addClass(a),o.one("bsTransitionEnd",function(){r.removeClass([e,a].join(" ")).addClass("active"),o.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(p)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(o.removeClass("active"),r.addClass("active"),this.sliding=!1,this.$element.trigger(p)),s&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=n,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this};var o=function(n){var i,o=t(this),r=t(o.attr("data-target")||(i=o.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""));if(r.hasClass("carousel")){var s=t.extend({},r.data(),o.data()),a=o.attr("data-slide-to");a&&(s.interval=!1),e.call(r,s),a&&r.data("bs.carousel").to(a),n.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",o).on("click.bs.carousel.data-api","[data-slide-to]",o),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var n=t(this);e.call(n,n.data())})})}(jQuery)},{}],6:[function(t,e,n){+function(t){"use strict";function e(e){var n,i=e.attr("data-target")||(n=e.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return t(i)}function n(e){return this.each(function(){var n=t(this),o=n.data("bs.collapse"),r=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);!o&&r.toggle&&/show|hide/.test(e)&&(r.toggle=!1),o||n.data("bs.collapse",o=new i(this,r)),"string"==typeof e&&o[e]()})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};i.VERSION="3.3.6",i.TRANSITION_DURATION=350,i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,o=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(o&&o.length&&(e=o.data("bs.collapse"),e&&e.transitioning))){var r=t.Event("show.bs.collapse");if(this.$element.trigger(r),!r.isDefaultPrevented()){o&&o.length&&(n.call(o,"hide"),e||o.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(i.TRANSITION_DURATION)[s](this.$element[0][l])}}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var o=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(o,this)).emulateTransitionEnd(i.TRANSITION_DURATION):o.call(this)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},i.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(n,i){var o=t(i);this.addAriaAndCollapsedClass(e(o),o)},this)).end()},i.prototype.addAriaAndCollapsedClass=function(t,e){var n=t.hasClass("in");t.attr("aria-expanded",n),e.toggleClass("collapsed",!n).attr("aria-expanded",n)};var o=t.fn.collapse;t.fn.collapse=n,t.fn.collapse.Constructor=i,t.fn.collapse.noConflict=function(){return t.fn.collapse=o,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(i){var o=t(this);o.attr("data-target")||i.preventDefault();var r=e(o),s=r.data("bs.collapse"),a=s?"toggle":o.data();n.call(r,a)})}(jQuery)},{}],7:[function(t,e,n){+function(t){"use strict";function e(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i=n&&t(n);return i&&i.length?i:e.parent()}function n(n){n&&3===n.which||(t(o).remove(),t(r).each(function(){var i=t(this),o=e(i),r={relatedTarget:this};o.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(o[0],n.target)||(o.trigger(n=t.Event("hide.bs.dropdown",r)),n.isDefaultPrevented()||(i.attr("aria-expanded","false"),o.removeClass("open").trigger(t.Event("hidden.bs.dropdown",r)))))}))}function i(e){return this.each(function(){var n=t(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new s(this)),"string"==typeof e&&i[e].call(n)})}var o=".dropdown-backdrop",r='[data-toggle="dropdown"]',s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.VERSION="3.3.6",s.prototype.toggle=function(i){var o=t(this);if(!o.is(".disabled, :disabled")){var r=e(o),s=r.hasClass("open");if(n(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",n);var a={relatedTarget:this};if(r.trigger(i=t.Event("show.bs.dropdown",a)),i.isDefaultPrevented())return;o.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(t.Event("shown.bs.dropdown",a))}return!1}},s.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=t(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var o=e(i),s=o.hasClass("open");if(!s&&27!=n.which||s&&27==n.which)return 27==n.which&&o.find(r).trigger("focus"),i.trigger("click");var a=" li:not(.disabled):visible a",l=o.find(".dropdown-menu"+a);if(l.length){var u=l.index(n.target);38==n.which&&u>0&&u--,40==n.which&&u<l.length-1&&u++,~u||(u=0),l.eq(u).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=i,t.fn.dropdown.Constructor=s,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",n).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,s.prototype.toggle).on("keydown.bs.dropdown.data-api",r,s.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",s.prototype.keydown)}(jQuery)},{}],8:[function(t,e,n){+function(t){"use strict";function e(e,i){return this.each(function(){var o=t(this),r=o.data("bs.modal"),s=t.extend({},n.DEFAULTS,o.data(),"object"==typeof e&&e);r||o.data("bs.modal",r=new n(this,s)),"string"==typeof e?r[e](i):s.show&&r.show(i)})}var n=function(e,n){this.options=n,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.6",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},n.prototype.show=function(e){var i=this,o=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(o),this.isShown||o.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){i.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var o=t.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),o&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var r=t.Event("shown.bs.modal",{relatedTarget:e});o?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(r)}).emulateTransitionEnd(n.TRANSITION_DURATION):i.$element.trigger("focus").trigger(r)}))},n.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(e){var i=this,o=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=t.support.transition&&o;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+o).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;r?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var s=function(){i.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",s).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):s()}else e&&e()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var i=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=n,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var i=t(this),o=i.attr("href"),r=t(i.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),s=r.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(o)&&o},r.data(),i.data());i.is("a")&&n.preventDefault(),r.one("show.bs.modal",function(t){t.isDefaultPrevented()||r.one("hidden.bs.modal",function(){i.is(":visible")&&i.trigger("focus")})}),e.call(r,s,this)})}(jQuery)},{}],9:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.popover"),r="object"==typeof e&&e;!o&&/destroy|hide/.test(e)||(o||i.data("bs.popover",o=new n(this,r)),"string"==typeof e&&o[e]())})}var n=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.6",n.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),n.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),n=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var i=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=n,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(jQuery)},{}],10:[function(t,e,n){+function(t){"use strict";function e(n,i){this.$body=t(document.body),this.$scrollElement=t(t(n).is(document.body)?window:n),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof n&&n;o||i.data("bs.scrollspy",o=new e(this,r)),"string"==typeof n&&o[n]()})}e.VERSION="3.3.6",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),o=e.data("target")||e.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[n]().top+i,o]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),o=this.offsets,r=this.targets,s=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),e>=i)return s!=(t=r[r.length-1])&&this.activate(t);if(s&&e<o[0])return this.activeTarget=null,this.clear();for(t=o.length;t--;)s!=r[t]&&e>=o[t]&&(void 0===o[t+1]||e<o[t+1])&&this.activate(r[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var n=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',i=t(n).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=t.fn.scrollspy;t.fn.scrollspy=n,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);n.call(e,e.data())})})}(jQuery)},{}],11:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.tab");o||i.data("bs.tab",o=new n(this)),"string"==typeof e&&o[e]()})}var n=function(e){this.element=t(e)};n.VERSION="3.3.6",n.TRANSITION_DURATION=150,n.prototype.show=function(){var e=this.element,n=e.closest("ul:not(.dropdown-menu)"),i=e.data("target");if(i||(i=e.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var o=n.find(".active:last a"),r=t.Event("hide.bs.tab",{relatedTarget:e[0]}),s=t.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(r),e.trigger(s),!s.isDefaultPrevented()&&!r.isDefaultPrevented()){var a=t(i);this.activate(e.closest("li"),n),this.activate(a,a.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},n.prototype.activate=function(e,i,o){function r(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),o&&o()}var s=i.find("> .active"),a=o&&t.support.transition&&(s.length&&s.hasClass("fade")||!!i.find("> .fade").length);s.length&&a?s.one("bsTransitionEnd",r).emulateTransitionEnd(n.TRANSITION_DURATION):r(),s.removeClass("in")};var i=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=n,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var o=function(n){n.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',o).on("click.bs.tab.data-api",'[data-toggle="pill"]',o)}(jQuery)},{}],12:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.tooltip"),r="object"==typeof e&&e;!o&&/destroy|hide/.test(e)||(o||i.data("bs.tooltip",o=new n(this,r)),"string"==typeof e&&o[e]())})}var n=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};n.VERSION="3.3.6",n.TRANSITION_DURATION=150,n.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(e,n,i){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),r=o.length;r--;){var s=o[r];if("click"==s)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",l="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},n.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,function(t,i){n[t]!=i&&(e[t]=i)}),e},n.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusin"==e.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState?void(n.hoverState="in"):(clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},n.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusout"==e.type?"focus":"hover"]=!1),n.isInStateTrue()?void 0:(clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide())},n.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var o=this,r=this.tip(),s=this.getUID(this.type);this.setContent(),r.attr("id",s),this.$element.attr("aria-describedby",s),this.options.animation&&r.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,r[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,u=l.test(a);u&&(a=a.replace(l,"")||"top"),
 
r.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?r.appendTo(this.options.container):r.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),f=r[0].offsetWidth,p=r[0].offsetHeight;if(u){var d=a,h=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+p>h.bottom?"top":"top"==a&&c.top-p<h.top?"bottom":"right"==a&&c.right+f>h.width?"left":"left"==a&&c.left-f<h.left?"right":a,r.removeClass(d).addClass(a)}var g=this.getCalculatedOffset(a,c,f,p);this.applyPlacement(g,a);var v=function(){var t=o.hoverState;o.$element.trigger("shown.bs."+o.type),o.hoverState=null,"out"==t&&o.leave(o)};t.support.transition&&this.$tip.hasClass("fade")?r.one("bsTransitionEnd",v).emulateTransitionEnd(n.TRANSITION_DURATION):v()}},n.prototype.applyPlacement=function(e,n){var i=this.tip(),o=i[0].offsetWidth,r=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),e.top+=s,e.left+=a,t.offset.setOffset(i[0],t.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),i.addClass("in");var l=i[0].offsetWidth,u=i[0].offsetHeight;"top"==n&&u!=r&&(e.top=e.top+r-u);var c=this.getViewportAdjustedDelta(n,e,l,u);c.left?e.left+=c.left:e.top+=c.top;var f=/top|bottom/.test(n),p=f?2*c.left-o+l:2*c.top-r+u,d=f?"offsetWidth":"offsetHeight";i.offset(e),this.replaceArrow(p,i[0][d],f)},n.prototype.replaceArrow=function(t,e,n){this.arrow().css(n?"left":"top",50*(1-t/e)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},n.prototype.hide=function(e){function i(){"in"!=o.hoverState&&r.detach(),o.$element.removeAttr("aria-describedby").trigger("hidden.bs."+o.type),e&&e()}var o=this,r=t(this.$tip),s=t.Event("hide.bs."+this.type);return this.$element.trigger(s),s.isDefaultPrevented()?void 0:(r.removeClass("in"),t.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),this.hoverState=null,this)},n.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(e){e=e||this.$element;var n=e[0],i="BODY"==n.tagName,o=n.getBoundingClientRect();null==o.width&&(o=t.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var r=i?{top:0,left:0}:e.offset(),s={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=i?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},o,s,a,r)},n.prototype.getCalculatedOffset=function(t,e,n,i){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-n/2}:"top"==t?{top:e.top-i,left:e.left+e.width/2-n/2}:"left"==t?{top:e.top+e.height/2-i/2,left:e.left-n}:{top:e.top+e.height/2-i/2,left:e.left+e.width}},n.prototype.getViewportAdjustedDelta=function(t,e,n,i){var o={top:0,left:0};if(!this.$viewport)return o;var r=this.options.viewport&&this.options.viewport.padding||0,s=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-r-s.scroll,l=e.top+r-s.scroll+i;a<s.top?o.top=s.top-a:l>s.top+s.height&&(o.top=s.top+s.height-l)}else{var u=e.left-r,c=e.left+r+n;u<s.left?o.left=s.left-u:c>s.right&&(o.left=s.left+s.width-c)}return o},n.prototype.getTitle=function(){var t,e=this.$element,n=this.options;return t=e.attr("data-original-title")||("function"==typeof n.title?n.title.call(e[0]):n.title)},n.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(e){var n=this;e&&(n=t(e.currentTarget).data("bs."+this.type),n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),e?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var i=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=n,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery)},{}],13:[function(t,e,n){+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,i=this;t(this).one("bsTransitionEnd",function(){n=!0});var o=function(){n||t(i).trigger(t.support.transition.end)};return setTimeout(o,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery)},{}],14:[function(t,e,n){!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e=!!t&&"length"in t&&t.length,n=rt.type(t);return"function"===n||rt.isWindow(t)?!1:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function i(t,e,n){if(rt.isFunction(e))return rt.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return rt.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(gt.test(e))return rt.filter(e,t,n);e=rt.filter(e,t)}return rt.grep(t,function(t){return Z.call(e,t)>-1!==n})}function o(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function r(t){var e={};return rt.each(t.match(wt)||[],function(t,n){e[n]=!0}),e}function s(){Y.removeEventListener("DOMContentLoaded",s),t.removeEventListener("load",s),rt.ready()}function a(){this.expando=rt.expando+a.uid++}function l(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace(Nt,"-$&").toLowerCase(),n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:St.test(n)?rt.parseJSON(n):n}catch(o){}$t.set(t,e,n)}else n=void 0;return n}function u(t,e,n,i){var o,r=1,s=20,a=i?function(){return i.cur()}:function(){return rt.css(t,e,"")},l=a(),u=n&&n[3]||(rt.cssNumber[e]?"":"px"),c=(rt.cssNumber[e]||"px"!==u&&+l)&&jt.exec(rt.css(t,e));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do r=r||".5",c/=r,rt.style(t,e,c+u);while(r!==(r=a()/l)&&1!==r&&--s)}return n&&(c=+c||+l||0,o=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=o)),o}function c(t,e){var n="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&rt.nodeName(t,e)?rt.merge([t],n):n}function f(t,e){for(var n=0,i=t.length;i>n;n++)kt.set(t[n],"globalEval",!e||kt.get(e[n],"globalEval"))}function p(t,e,n,i,o){for(var r,s,a,l,u,p,d=e.createDocumentFragment(),h=[],g=0,v=t.length;v>g;g++)if(r=t[g],r||0===r)if("object"===rt.type(r))rt.merge(h,r.nodeType?[r]:r);else if(Ht.test(r)){for(s=s||d.appendChild(e.createElement("div")),a=(Lt.exec(r)||["",""])[1].toLowerCase(),l=qt[a]||qt._default,s.innerHTML=l[1]+rt.htmlPrefilter(r)+l[2],p=l[0];p--;)s=s.lastChild;rt.merge(h,s.childNodes),s=d.firstChild,s.textContent=""}else h.push(e.createTextNode(r));for(d.textContent="",g=0;r=h[g++];)if(i&&rt.inArray(r,i)>-1)o&&o.push(r);else if(u=rt.contains(r.ownerDocument,r),s=c(d.appendChild(r),"script"),u&&f(s),n)for(p=0;r=s[p++];)Rt.test(r.type||"")&&n.push(r);return d}function d(){return!0}function h(){return!1}function g(){try{return Y.activeElement}catch(t){}}function v(t,e,n,i,o,r){var s,a;if("object"==typeof e){"string"!=typeof n&&(i=i||n,n=void 0);for(a in e)v(t,a,n,i,e[a],r);return t}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),o===!1)o=h;else if(!o)return t;return 1===r&&(s=o,o=function(t){return rt().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=rt.guid++)),t.each(function(){rt.event.add(this,e,o,i,n)})}function m(t,e){return rt.nodeName(t,"table")&&rt.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function y(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function b(t){var e=Ut.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function x(t,e){var n,i,o,r,s,a,l,u;if(1===e.nodeType){if(kt.hasData(t)&&(r=kt.access(t),s=kt.set(e,r),u=r.events)){delete s.handle,s.events={};for(o in u)for(n=0,i=u[o].length;i>n;n++)rt.event.add(e,o,u[o][n])}$t.hasData(t)&&(a=$t.access(t),l=rt.extend({},a),$t.set(e,l))}}function w(t,e){var n=e.nodeName.toLowerCase();"input"===n&&It.test(t.type)?e.checked=t.checked:"input"!==n&&"textarea"!==n||(e.defaultValue=t.defaultValue)}function T(t,e,n,i){e=K.apply([],e);var o,r,s,a,l,u,f=0,d=t.length,h=d-1,g=e[0],v=rt.isFunction(g);if(v||d>1&&"string"==typeof g&&!it.checkClone&&Bt.test(g))return t.each(function(o){var r=t.eq(o);v&&(e[0]=g.call(this,o,r.html())),T(r,e,n,i)});if(d&&(o=p(e,t[0].ownerDocument,!1,t,i),r=o.firstChild,1===o.childNodes.length&&(o=r),r||i)){for(s=rt.map(c(o,"script"),y),a=s.length;d>f;f++)l=o,f!==h&&(l=rt.clone(l,!0,!0),a&&rt.merge(s,c(l,"script"))),n.call(t[f],l,f);if(a)for(u=s[s.length-1].ownerDocument,rt.map(s,b),f=0;a>f;f++)l=s[f],Rt.test(l.type||"")&&!kt.access(l,"globalEval")&&rt.contains(u,l)&&(l.src?rt._evalUrl&&rt._evalUrl(l.src):rt.globalEval(l.textContent.replace(zt,"")))}return t}function C(t,e,n){for(var i,o=e?rt.filter(e,t):t,r=0;null!=(i=o[r]);r++)n||1!==i.nodeType||rt.cleanData(c(i)),i.parentNode&&(n&&rt.contains(i.ownerDocument,i)&&f(c(i,"script")),i.parentNode.removeChild(i));return t}function E(t,e){var n=rt(e.createElement(t)).appendTo(e.body),i=rt.css(n[0],"display");return n.detach(),i}function k(t){var e=Y,n=Xt[t];return n||(n=E(t,e),"none"!==n&&n||(Vt=(Vt||rt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Vt[0].contentDocument,e.write(),e.close(),n=E(t,e),Vt.detach()),Xt[t]=n),n}function $(t,e,n){var i,o,r,s,a=t.style;return n=n||Gt(t),s=n?n.getPropertyValue(e)||n[e]:void 0,""!==s&&void 0!==s||rt.contains(t.ownerDocument,t)||(s=rt.style(t,e)),n&&!it.pixelMarginRight()&&Yt.test(s)&&Qt.test(e)&&(i=a.width,o=a.minWidth,r=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=i,a.minWidth=o,a.maxWidth=r),void 0!==s?s+"":s}function S(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function N(t){if(t in ie)return t;for(var e=t[0].toUpperCase()+t.slice(1),n=ne.length;n--;)if(t=ne[n]+e,t in ie)return t}function D(t,e,n){var i=jt.exec(e);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):e}function j(t,e,n,i,o){for(var r=n===(i?"border":"content")?4:"width"===e?1:0,s=0;4>r;r+=2)"margin"===n&&(s+=rt.css(t,n+At[r],!0,o)),i?("content"===n&&(s-=rt.css(t,"padding"+At[r],!0,o)),"margin"!==n&&(s-=rt.css(t,"border"+At[r]+"Width",!0,o))):(s+=rt.css(t,"padding"+At[r],!0,o),"padding"!==n&&(s+=rt.css(t,"border"+At[r]+"Width",!0,o)));return s}function A(e,n,i){var o=!0,r="width"===n?e.offsetWidth:e.offsetHeight,s=Gt(e),a="border-box"===rt.css(e,"boxSizing",!1,s);if(Y.msFullscreenElement&&t.top!==t&&e.getClientRects().length&&(r=Math.round(100*e.getBoundingClientRect()[n])),0>=r||null==r){if(r=$(e,n,s),(0>r||null==r)&&(r=e.style[n]),Yt.test(r))return r;o=a&&(it.boxSizingReliable()||r===e.style[n]),r=parseFloat(r)||0}return r+j(e,n,i||(a?"border":"content"),o,s)+"px"}function O(t,e){for(var n,i,o,r=[],s=0,a=t.length;a>s;s++)i=t[s],i.style&&(r[s]=kt.get(i,"olddisplay"),n=i.style.display,e?(r[s]||"none"!==n||(i.style.display=""),""===i.style.display&&Ot(i)&&(r[s]=kt.access(i,"olddisplay",k(i.nodeName)))):(o=Ot(i),"none"===n&&o||kt.set(i,"olddisplay",o?n:rt.css(i,"display"))));for(s=0;a>s;s++)i=t[s],i.style&&(e&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=e?r[s]||"":"none"));return t}function I(t,e,n,i,o){return new I.prototype.init(t,e,n,i,o)}function L(){return t.setTimeout(function(){oe=void 0}),oe=rt.now()}function R(t,e){var n,i=0,o={height:t};for(e=e?1:0;4>i;i+=2-e)n=At[i],o["margin"+n]=o["padding"+n]=t;return e&&(o.opacity=o.width=t),o}function q(t,e,n){for(var i,o=(F.tweeners[e]||[]).concat(F.tweeners["*"]),r=0,s=o.length;s>r;r++)if(i=o[r].call(n,e,t))return i}function H(t,e,n){var i,o,r,s,a,l,u,c,f=this,p={},d=t.style,h=t.nodeType&&Ot(t),g=kt.get(t,"fxshow");n.queue||(a=rt._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,rt.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],u=rt.css(t,"display"),c="none"===u?kt.get(t,"olddisplay")||k(t.nodeName):u,"inline"===c&&"none"===rt.css(t,"float")&&(d.display="inline-block")),n.overflow&&(d.overflow="hidden",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in e)if(o=e[i],se.exec(o)){if(delete e[i],r=r||"toggle"===o,o===(h?"hide":"show")){if("show"!==o||!g||void 0===g[i])continue;h=!0}p[i]=g&&g[i]||rt.style(t,i)}else u=void 0;if(rt.isEmptyObject(p))"inline"===("none"===u?k(t.nodeName):u)&&(d.display=u);else{g?"hidden"in g&&(h=g.hidden):g=kt.access(t,"fxshow",{}),r&&(g.hidden=!h),h?rt(t).show():f.done(function(){rt(t).hide()}),f.done(function(){var e;kt.remove(t,"fxshow");for(e in p)rt.style(t,e,p[e])});for(i in p)s=q(h?g[i]:0,i,f),i in g||(g[i]=s.start,h&&(s.end=s.start,s.start="width"===i||"height"===i?1:0))}}function P(t,e){var n,i,o,r,s;for(n in t)if(i=rt.camelCase(n),o=e[i],r=t[n],rt.isArray(r)&&(o=r[1],r=t[n]=r[0]),n!==i&&(t[i]=r,delete t[n]),s=rt.cssHooks[i],s&&"expand"in s){r=s.expand(r),delete t[i];for(n in r)n in t||(t[n]=r[n],e[n]=o)}else e[i]=o}function F(t,e,n){var i,o,r=0,s=F.prefilters.length,a=rt.Deferred().always(function(){delete l.elem}),l=function(){if(o)return!1;for(var e=oe||L(),n=Math.max(0,u.startTime+u.duration-e),i=n/u.duration||0,r=1-i,s=0,l=u.tweens.length;l>s;s++)u.tweens[s].run(r);return a.notifyWith(t,[u,r,n]),1>r&&l?n:(a.resolveWith(t,[u]),!1)},u=a.promise({elem:t,props:rt.extend({},e),opts:rt.extend(!0,{specialEasing:{},easing:rt.easing._default},n),originalProperties:e,originalOptions:n,startTime:oe||L(),duration:n.duration,tweens:[],createTween:function(e,n){var i=rt.Tween(t,u.opts,e,n,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(i),i},stop:function(e){var n=0,i=e?u.tweens.length:0;if(o)return this;for(o=!0;i>n;n++)u.tweens[n].run(1);return e?(a.notifyWith(t,[u,1,0]),a.resolveWith(t,[u,e])):a.rejectWith(t,[u,e]),this}}),c=u.props;for(P(c,u.opts.specialEasing);s>r;r++)if(i=F.prefilters[r].call(u,t,c,u.opts))return rt.isFunction(i.stop)&&(rt._queueHooks(u.elem,u.opts.queue).stop=rt.proxy(i.stop,i)),i;return rt.map(c,q,u),rt.isFunction(u.opts.start)&&u.opts.start.call(t,u),rt.fx.timer(rt.extend(l,{elem:t,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 M(t){return t.getAttribute&&t.getAttribute("class")||""}function W(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,o=0,r=e.toLowerCase().match(wt)||[];if(rt.isFunction(n))for(;i=r[o++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function _(t,e,n,i){function o(a){var l;return r[a]=!0,rt.each(t[a]||[],function(t,a){var u=a(e,n,i);return"string"!=typeof u||s||r[u]?s?!(l=u):void 0:(e.dataTypes.unshift(u),o(u),!1)}),l}var r={},s=t===ke;return o(e.dataTypes[0])||!r["*"]&&o("*")}function B(t,e){var n,i,o=rt.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((o[n]?t:i||(i={}))[n]=e[n]);return i&&rt.extend(!0,t,i),t}function U(t,e,n){for(var i,o,r,s,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(o in a)if(a[o]&&a[o].test(i)){l.unshift(o);break}if(l[0]in n)r=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){r=o;break}s||(s=o)}r=r||s}return r?(r!==l[0]&&l.unshift(r),n[r]):void 0}function z(t,e,n,i){var o,r,s,a,l,u={},c=t.dataTypes.slice();if(c[1])for(s in t.converters)u[s.toLowerCase()]=t.converters[s];for(r=c.shift();r;)if(t.responseFields[r]&&(n[t.responseFields[r]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=r,r=c.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(s=u[l+" "+r]||u["* "+r],!s)for(o in u)if(a=o.split(" "),a[1]===r&&(s=u[l+" "+a[0]]||u["* "+a[0]])){s===!0?s=u[o]:u[o]!==!0&&(r=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&t["throws"])e=s(e);else try{e=s(e)}catch(f){return{state:"parsererror",error:s?f:"No conversion from "+l+" to "+r}}}return{state:"success",data:e}}function V(t,e,n,i){var o;if(rt.isArray(e))rt.each(e,function(e,o){n||De.test(t)?i(t,o):V(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,n,i)});else if(n||"object"!==rt.type(e))i(t,e);else for(o in e)V(t+"["+o+"]",e[o],n,i)}function X(t){return rt.isWindow(t)?t:9===t.nodeType&&t.defaultView}var Q=[],Y=t.document,G=Q.slice,K=Q.concat,J=Q.push,Z=Q.indexOf,tt={},et=tt.toString,nt=tt.hasOwnProperty,it={},ot="2.2.1",rt=function(t,e){return new rt.fn.init(t,e)},st=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,at=/^-ms-/,lt=/-([\da-z])/gi,ut=function(t,e){return e.toUpperCase()};rt.fn=rt.prototype={jquery:ot,constructor:rt,selector:"",length:0,toArray:function(){return G.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:G.call(this)},pushStack:function(t){var e=rt.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t){return rt.each(this,t)},map:function(t){return this.pushStack(rt.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(G.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:J,sort:Q.sort,splice:Q.splice},rt.extend=rt.fn.extend=function(){var t,e,n,i,o,r,s=arguments[0]||{},a=1,l=arguments.length,u=!1;for("boolean"==typeof s&&(u=s,s=arguments[a]||{},a++),"object"==typeof s||rt.isFunction(s)||(s={}),a===l&&(s=this,a--);l>a;a++)if(null!=(t=arguments[a]))for(e in t)n=s[e],i=t[e],s!==i&&(u&&i&&(rt.isPlainObject(i)||(o=rt.isArray(i)))?(o?(o=!1,r=n&&rt.isArray(n)?n:[]):r=n&&rt.isPlainObject(n)?n:{},s[e]=rt.extend(u,r,i)):void 0!==i&&(s[e]=i));return s},rt.extend({expando:"jQuery"+(ot+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===rt.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){var e=t&&t.toString();return!rt.isArray(t)&&e-parseFloat(e)+1>=0},isPlainObject:function(t){return"object"!==rt.type(t)||t.nodeType||rt.isWindow(t)?!1:!t.constructor||nt.call(t.constructor.prototype,"isPrototypeOf")},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?tt[et.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=rt.trim(t),t&&(1===t.indexOf("use strict")?(e=Y.createElement("script"),e.text=t,Y.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(at,"ms-").replace(lt,ut)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e){var i,o=0;if(n(t))for(i=t.length;i>o&&e.call(t[o],o,t[o])!==!1;o++);else for(o in t)if(e.call(t[o],o,t[o])===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(st,"")},makeArray:function(t,e){var i=e||[];return null!=t&&(n(Object(t))?rt.merge(i,"string"==typeof t?[t]:t):J.call(i,t)),i},inArray:function(t,e,n){return null==e?-1:Z.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,o=t.length;n>i;i++)t[o++]=e[i];return t.length=o,t},grep:function(t,e,n){for(var i,o=[],r=0,s=t.length,a=!n;s>r;r++)i=!e(t[r],r),i!==a&&o.push(t[r]);return o},map:function(t,e,i){var o,r,s=0,a=[];if(n(t))for(o=t.length;o>s;s++)r=e(t[s],s,i),null!=r&&a.push(r);else for(s in t)r=e(t[s],s,i),null!=r&&a.push(r);return K.apply([],a)},guid:1,proxy:function(t,e){var n,i,o;return"string"==typeof e&&(n=t[e],e=t,t=n),rt.isFunction(t)?(i=G.call(arguments,2),o=function(){return t.apply(e||this,i.concat(G.call(arguments)))},o.guid=t.guid=t.guid||rt.guid++,o):void 0},now:Date.now,support:it}),"function"==typeof Symbol&&(rt.fn[Symbol.iterator]=Q[Symbol.iterator]),rt.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){tt["[object "+e+"]"]=e.toLowerCase()});var ct=function(t){function e(t,e,n,i){var o,r,s,a,l,u,f,d,h=e&&e.ownerDocument,g=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==g&&9!==g&&11!==g)return n;if(!i&&((e?e.ownerDocument||e:M)!==O&&A(e),e=e||O,L)){if(11!==g&&(u=mt.exec(t)))if(o=u[1]){if(9===g){if(!(s=e.getElementById(o)))return n;if(s.id===o)return n.push(s),n}else if(h&&(s=h.getElementById(o))&&P(e,s)&&s.id===o)return n.push(s),n}else{if(u[2])return J.apply(n,e.getElementsByTagName(t)),n;if((o=u[3])&&w.getElementsByClassName&&e.getElementsByClassName)return J.apply(n,e.getElementsByClassName(o)),n}if(w.qsa&&!z[t+" "]&&(!R||!R.test(t))){if(1!==g)h=e,d=t;else if("object"!==e.nodeName.toLowerCase()){for((a=e.getAttribute("id"))?a=a.replace(bt,"\\$&"):e.setAttribute("id",a=F),f=k(t),r=f.length,l=pt.test(a)?"#"+a:"[id='"+a+"']";r--;)f[r]=l+" "+p(f[r]);d=f.join(","),h=yt.test(t)&&c(e.parentNode)||e}if(d)try{return J.apply(n,h.querySelectorAll(d)),n}catch(v){}finally{a===F&&e.removeAttribute("id")}}}return S(t.replace(at,"$1"),e,n,i)}function n(){function t(n,i){return e.push(n+" ")>T.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[F]=!0,t}function o(t){var e=O.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function r(t,e){for(var n=t.split("|"),i=n.length;i--;)T.attrHandle[n[i]]=e}function s(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||X)-(~t.sourceIndex||X);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function a(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function l(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var o,r=t([],n.length,e),s=r.length;s--;)n[o=r[s]]&&(n[o]=!(i[o]=n[o]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function f(){}function p(t){for(var e=0,n=t.length,i="";n>e;e++)i+=t[e].value;return i}function d(t,e,n){var i=e.dir,o=n&&"parentNode"===i,r=_++;return e.first?function(e,n,r){for(;e=e[i];)if(1===e.nodeType||o)return t(e,n,r)}:function(e,n,s){var a,l,u,c=[W,r];if(s){for(;e=e[i];)if((1===e.nodeType||o)&&t(e,n,s))return!0}else for(;e=e[i];)if(1===e.nodeType||o){if(u=e[F]||(e[F]={}),l=u[e.uniqueID]||(u[e.uniqueID]={}),(a=l[i])&&a[0]===W&&a[1]===r)return c[2]=a[2];if(l[i]=c,c[2]=t(e,n,s))return!0}}}function h(t){return t.length>1?function(e,n,i){for(var o=t.length;o--;)if(!t[o](e,n,i))return!1;return!0}:t[0]}function g(t,n,i){for(var o=0,r=n.length;r>o;o++)e(t,n[o],i);return i}function v(t,e,n,i,o){for(var r,s=[],a=0,l=t.length,u=null!=e;l>a;a++)(r=t[a])&&(n&&!n(r,i,o)||(s.push(r),u&&e.push(a)));return s}function m(t,e,n,o,r,s){return o&&!o[F]&&(o=m(o)),r&&!r[F]&&(r=m(r,s)),i(function(i,s,a,l){var u,c,f,p=[],d=[],h=s.length,m=i||g(e||"*",a.nodeType?[a]:a,[]),y=!t||!i&&e?m:v(m,p,t,a,l),b=n?r||(i?t:h||o)?[]:s:y;if(n&&n(y,b,a,l),o)for(u=v(b,d),o(u,[],a,l),c=u.length;c--;)(f=u[c])&&(b[d[c]]=!(y[d[c]]=f));if(i){if(r||t){if(r){for(u=[],c=b.length;c--;)(f=b[c])&&u.push(y[c]=f);r(null,b=[],u,l)}for(c=b.length;c--;)(f=b[c])&&(u=r?tt(i,f):p[c])>-1&&(i[u]=!(s[u]=f))}}else b=v(b===s?b.splice(h,b.length):b),r?r(null,s,b,l):J.apply(s,b)})}function y(t){for(var e,n,i,o=t.length,r=T.relative[t[0].type],s=r||T.relative[" "],a=r?1:0,l=d(function(t){return t===e},s,!0),u=d(function(t){return tt(e,t)>-1},s,!0),c=[function(t,n,i){var o=!r&&(i||n!==N)||((e=n).nodeType?l(t,n,i):u(t,n,i));return e=null,o}];o>a;a++)if(n=T.relative[t[a].type])c=[d(h(c),n)];else{if(n=T.filter[t[a].type].apply(null,t[a].matches),n[F]){for(i=++a;o>i&&!T.relative[t[i].type];i++);return m(a>1&&h(c),a>1&&p(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(at,"$1"),n,i>a&&y(t.slice(a,i)),o>i&&y(t=t.slice(i)),o>i&&p(t))}c.push(n)}return h(c)}function b(t,n){var o=n.length>0,r=t.length>0,s=function(i,s,a,l,u){var c,f,p,d=0,h="0",g=i&&[],m=[],y=N,b=i||r&&T.find.TAG("*",u),x=W+=null==y?1:Math.random()||.1,w=b.length;for(u&&(N=s===O||s||u);h!==w&&null!=(c=b[h]);h++){if(r&&c){for(f=0,s||c.ownerDocument===O||(A(c),a=!L);p=t[f++];)if(p(c,s||O,a)){l.push(c);break}u&&(W=x)}o&&((c=!p&&c)&&d--,i&&g.push(c))}if(d+=h,o&&h!==d){for(f=0;p=n[f++];)p(g,m,s,a);if(i){if(d>0)for(;h--;)g[h]||m[h]||(m[h]=G.call(l));m=v(m)}J.apply(l,m),u&&!i&&m.length>0&&d+n.length>1&&e.uniqueSort(l)}return u&&(W=x,N=y),g};return o?i(s):s}var x,w,T,C,E,k,$,S,N,D,j,A,O,I,L,R,q,H,P,F="sizzle"+1*new Date,M=t.document,W=0,_=0,B=n(),U=n(),z=n(),V=function(t,e){return t===e&&(j=!0),0},X=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,K=Y.push,J=Y.push,Z=Y.slice,tt=function(t,e){for(var n=0,i=t.length;i>n;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot="\\["+nt+"*("+it+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+nt+"*\\]",rt=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",st=new RegExp(nt+"+","g"),at=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),lt=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ct=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),ft=new RegExp(rt),pt=new RegExp("^"+it+"$"),dt={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+rt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,gt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,xt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),wt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},Tt=function(){A()};try{J.apply(Y=Z.call(M.childNodes),M.childNodes),Y[M.childNodes.length].nodeType}catch(Ct){J={apply:Y.length?function(t,e){K.apply(t,Z.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}w=e.support={},E=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},A=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:M;return i!==O&&9===i.nodeType&&i.documentElement?(O=i,I=O.documentElement,L=!E(O),(n=O.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Tt,!1):n.attachEvent&&n.attachEvent("onunload",Tt)),w.attributes=o(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=o(function(t){return t.appendChild(O.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(O.getElementsByClassName),w.getById=o(function(t){return I.appendChild(t).id=F,!O.getElementsByName||!O.getElementsByName(F).length}),w.getById?(T.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&L){var n=e.getElementById(t);return n?[n]:[]}},T.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){return t.getAttribute("id")===e}}):(delete T.find.ID,T.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),T.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],o=0,r=e.getElementsByTagName(t);if("*"===t){for(;n=r[o++];)1===n.nodeType&&i.push(n);return i}return r},T.find.CLASS=w.getElementsByClassName&&function(t,e){return"undefined"!=typeof e.getElementsByClassName&&L?e.getElementsByClassName(t):void 0},q=[],R=[],(w.qsa=vt.test(O.querySelectorAll))&&(o(function(t){I.appendChild(t).innerHTML="<a id='"+F+"'></a><select id='"+F+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&R.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||R.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+F+"-]").length||R.push("~="),t.querySelectorAll(":checked").length||R.push(":checked"),t.querySelectorAll("a#"+F+"+*").length||R.push(".#.+[+~]")}),o(function(t){var e=O.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&R.push("name"+nt+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||R.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),R.push(",.*:")})),(w.matchesSelector=vt.test(H=I.matches||I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&o(function(t){w.disconnectedMatch=H.call(t,"div"),H.call(t,"[s!='']:x"),q.push("!=",rt)}),R=R.length&&new RegExp(R.join("|")),q=q.length&&new RegExp(q.join("|")),e=vt.test(I.compareDocumentPosition),P=e||vt.test(I.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},V=e?function(t,e){if(t===e)return j=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===O||t.ownerDocument===M&&P(M,t)?-1:e===O||e.ownerDocument===M&&P(M,e)?1:D?tt(D,t)-tt(D,e):0:4&n?-1:1)}:function(t,e){if(t===e)return j=!0,0;var n,i=0,o=t.parentNode,r=e.parentNode,a=[t],l=[e];if(!o||!r)return t===O?-1:e===O?1:o?-1:r?1:D?tt(D,t)-tt(D,e):0;if(o===r)return s(t,e);for(n=t;n=n.parentNode;)a.unshift(n);for(n=e;n=n.parentNode;)l.unshift(n);for(;a[i]===l[i];)i++;return i?s(a[i],l[i]):a[i]===M?-1:l[i]===M?1:0},O):O},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==O&&A(t),n=n.replace(ct,"='$1']"),
 
w.matchesSelector&&L&&!z[n+" "]&&(!q||!q.test(n))&&(!R||!R.test(n)))try{var i=H.call(t,n);if(i||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(o){}return e(n,O,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==O&&A(t),P(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==O&&A(t);var n=T.attrHandle[e.toLowerCase()],i=n&&Q.call(T.attrHandle,e.toLowerCase())?n(t,e,!L):void 0;return void 0!==i?i:w.attributes||!L?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,o=0;if(j=!w.detectDuplicates,D=!w.sortStable&&t.slice(0),t.sort(V),j){for(;e=t[o++];)e===t[o]&&(i=n.push(o));for(;i--;)t.splice(n[i],1)}return D=null,t},C=e.getText=function(t){var e,n="",i=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=C(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[i++];)n+=C(e);return n},T=e.selectors={cacheLength:50,createPseudo:i,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(xt,wt),t[3]=(t[3]||t[4]||t[5]||"").replace(xt,wt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&ft.test(n)&&(e=k(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(xt,wt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=B[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&B(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(o){var r=e.attr(o,t);return null==r?"!="===n:n?(r+="","="===n?r===i:"!="===n?r!==i:"^="===n?i&&0===r.indexOf(i):"*="===n?i&&r.indexOf(i)>-1:"$="===n?i&&r.slice(-i.length)===i:"~="===n?(" "+r.replace(st," ")+" ").indexOf(i)>-1:"|="===n?r===i||r.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(t,e,n,i,o){var r="nth"!==t.slice(0,3),s="last"!==t.slice(-4),a="of-type"===e;return 1===i&&0===o?function(t){return!!t.parentNode}:function(e,n,l){var u,c,f,p,d,h,g=r!==s?"nextSibling":"previousSibling",v=e.parentNode,m=a&&e.nodeName.toLowerCase(),y=!l&&!a,b=!1;if(v){if(r){for(;g;){for(p=e;p=p[g];)if(a?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===t&&!h&&"nextSibling"}return!0}if(h=[s?v.firstChild:v.lastChild],s&&y){for(p=v,f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),u=c[t]||[],d=u[0]===W&&u[1],b=d&&u[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||h.pop();)if(1===p.nodeType&&++b&&p===e){c[t]=[W,d,b];break}}else if(y&&(p=e,f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),u=c[t]||[],d=u[0]===W&&u[1],b=d),b===!1)for(;(p=++d&&p&&p[g]||(b=d=0)||h.pop())&&((a?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++b||(y&&(f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),c[t]=[W,b]),p!==e)););return b-=o,b===i||b%i===0&&b/i>=0}}},PSEUDO:function(t,n){var o,r=T.pseudos[t]||T.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return r[F]?r(n):r.length>1?(o=[t,t,"",n],T.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,o=r(t,n),s=o.length;s--;)i=tt(t,o[s]),t[i]=!(e[i]=o[s])}):function(t){return r(t,0,o)}):r}},pseudos:{not:i(function(t){var e=[],n=[],o=$(t.replace(at,"$1"));return o[F]?i(function(t,e,n,i){for(var r,s=o(t,null,i,[]),a=t.length;a--;)(r=s[a])&&(t[a]=!(e[a]=r))}):function(t,i,r){return e[0]=t,o(e,null,r,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(xt,wt),function(e){return(e.textContent||e.innerText||C(e)).indexOf(t)>-1}}),lang:i(function(t){return pt.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(xt,wt).toLowerCase(),function(e){var n;do if(n=L?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===I},focus:function(t){return t===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!T.pseudos.empty(t)},header:function(t){return gt.test(t.nodeName)},input:function(t){return ht.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[0>n?n+e:n]}),even:u(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:u(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:u(function(t,e,n){for(var i=0>n?n+e:n;--i>=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=0>n?n+e:n;++i<e;)t.push(i);return t})}},T.pseudos.nth=T.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[x]=a(x);for(x in{submit:!0,reset:!0})T.pseudos[x]=l(x);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,k=e.tokenize=function(t,n){var i,o,r,s,a,l,u,c=U[t+" "];if(c)return n?0:c.slice(0);for(a=t,l=[],u=T.preFilter;a;){i&&!(o=lt.exec(a))||(o&&(a=a.slice(o[0].length)||a),l.push(r=[])),i=!1,(o=ut.exec(a))&&(i=o.shift(),r.push({value:i,type:o[0].replace(at," ")}),a=a.slice(i.length));for(s in T.filter)!(o=dt[s].exec(a))||u[s]&&!(o=u[s](o))||(i=o.shift(),r.push({value:i,type:s,matches:o}),a=a.slice(i.length));if(!i)break}return n?a.length:a?e.error(t):U(t,l).slice(0)},$=e.compile=function(t,e){var n,i=[],o=[],r=z[t+" "];if(!r){for(e||(e=k(t)),n=e.length;n--;)r=y(e[n]),r[F]?i.push(r):o.push(r);r=z(t,b(o,i)),r.selector=t}return r},S=e.select=function(t,e,n,i){var o,r,s,a,l,u="function"==typeof t&&t,f=!i&&k(t=u.selector||t);if(n=n||[],1===f.length){if(r=f[0]=f[0].slice(0),r.length>2&&"ID"===(s=r[0]).type&&w.getById&&9===e.nodeType&&L&&T.relative[r[1].type]){if(e=(T.find.ID(s.matches[0].replace(xt,wt),e)||[])[0],!e)return n;u&&(e=e.parentNode),t=t.slice(r.shift().value.length)}for(o=dt.needsContext.test(t)?0:r.length;o--&&(s=r[o],!T.relative[a=s.type]);)if((l=T.find[a])&&(i=l(s.matches[0].replace(xt,wt),yt.test(r[0].type)&&c(e.parentNode)||e))){if(r.splice(o,1),t=i.length&&p(r),!t)return J.apply(n,i),n;break}}return(u||$(t,f))(i,e,!L,n,!e||yt.test(t)&&c(e.parentNode)||e),n},w.sortStable=F.split("").sort(V).join("")===F,w.detectDuplicates=!!j,A(),w.sortDetached=o(function(t){return 1&t.compareDocumentPosition(O.createElement("div"))}),o(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||r("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&o(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||r("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),o(function(t){return null==t.getAttribute("disabled")})||r(et,function(t,e,n){var i;return n?void 0:t[e]===!0?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(t);rt.find=ct,rt.expr=ct.selectors,rt.expr[":"]=rt.expr.pseudos,rt.uniqueSort=rt.unique=ct.uniqueSort,rt.text=ct.getText,rt.isXMLDoc=ct.isXML,rt.contains=ct.contains;var ft=function(t,e,n){for(var i=[],o=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(o&&rt(t).is(n))break;i.push(t)}return i},pt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},dt=rt.expr.match.needsContext,ht=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,gt=/^.[^:#\[\.,]*$/;rt.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?rt.find.matchesSelector(i,t)?[i]:[]:rt.find.matches(t,rt.grep(e,function(t){return 1===t.nodeType}))},rt.fn.extend({find:function(t){var e,n=this.length,i=[],o=this;if("string"!=typeof t)return this.pushStack(rt(t).filter(function(){for(e=0;n>e;e++)if(rt.contains(o[e],this))return!0}));for(e=0;n>e;e++)rt.find(t,o[e],i);return i=this.pushStack(n>1?rt.unique(i):i),i.selector=this.selector?this.selector+" "+t:t,i},filter:function(t){return this.pushStack(i(this,t||[],!1))},not:function(t){return this.pushStack(i(this,t||[],!0))},is:function(t){return!!i(this,"string"==typeof t&&dt.test(t)?rt(t):t||[],!1).length}});var vt,mt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,yt=rt.fn.init=function(t,e,n){var i,o;if(!t)return this;if(n=n||vt,"string"==typeof t){if(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:mt.exec(t),!i||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof rt?e[0]:e,rt.merge(this,rt.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:Y,!0)),ht.test(i[1])&&rt.isPlainObject(e))for(i in e)rt.isFunction(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return o=Y.getElementById(i[2]),o&&o.parentNode&&(this.length=1,this[0]=o),this.context=Y,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):rt.isFunction(t)?void 0!==n.ready?n.ready(t):t(rt):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),rt.makeArray(t,this))};yt.prototype=rt.fn,vt=rt(Y);var bt=/^(?:parents|prev(?:Until|All))/,xt={children:!0,contents:!0,next:!0,prev:!0};rt.fn.extend({has:function(t){var e=rt(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(rt.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,i=0,o=this.length,r=[],s=dt.test(t)||"string"!=typeof t?rt(t,e||this.context):0;o>i;i++)for(n=this[i];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&rt.find.matchesSelector(n,t))){r.push(n);break}return this.pushStack(r.length>1?rt.uniqueSort(r):r)},index:function(t){return t?"string"==typeof t?Z.call(rt(t),this[0]):Z.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(rt.uniqueSort(rt.merge(this.get(),rt(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),rt.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return ft(t,"parentNode")},parentsUntil:function(t,e,n){return ft(t,"parentNode",n)},next:function(t){return o(t,"nextSibling")},prev:function(t){return o(t,"previousSibling")},nextAll:function(t){return ft(t,"nextSibling")},prevAll:function(t){return ft(t,"previousSibling")},nextUntil:function(t,e,n){return ft(t,"nextSibling",n)},prevUntil:function(t,e,n){return ft(t,"previousSibling",n)},siblings:function(t){return pt((t.parentNode||{}).firstChild,t)},children:function(t){return pt(t.firstChild)},contents:function(t){return t.contentDocument||rt.merge([],t.childNodes)}},function(t,e){rt.fn[t]=function(n,i){var o=rt.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(o=rt.filter(i,o)),this.length>1&&(xt[t]||rt.uniqueSort(o),bt.test(t)&&o.reverse()),this.pushStack(o)}});var wt=/\S+/g;rt.Callbacks=function(t){t="string"==typeof t?r(t):rt.extend({},t);var e,n,i,o,s=[],a=[],l=-1,u=function(){for(o=t.once,i=e=!0;a.length;l=-1)for(n=a.shift();++l<s.length;)s[l].apply(n[0],n[1])===!1&&t.stopOnFalse&&(l=s.length,n=!1);t.memory||(n=!1),e=!1,o&&(s=n?[]:"")},c={add:function(){return s&&(n&&!e&&(l=s.length-1,a.push(n)),function i(e){rt.each(e,function(e,n){rt.isFunction(n)?t.unique&&c.has(n)||s.push(n):n&&n.length&&"string"!==rt.type(n)&&i(n)})}(arguments),n&&!e&&u()),this},remove:function(){return rt.each(arguments,function(t,e){for(var n;(n=rt.inArray(e,s,n))>-1;)s.splice(n,1),l>=n&&l--}),this},has:function(t){return t?rt.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return o=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return o=a=[],n||(s=n=""),this},locked:function(){return!!o},fireWith:function(t,n){return o||(n=n||[],n=[t,n.slice?n.slice():n],a.push(n),e||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},rt.extend({Deferred:function(t){var e=[["resolve","done",rt.Callbacks("once memory"),"resolved"],["reject","fail",rt.Callbacks("once memory"),"rejected"],["notify","progress",rt.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var t=arguments;return rt.Deferred(function(n){rt.each(e,function(e,r){var s=rt.isFunction(t[e])&&t[e];o[r[1]](function(){var t=s&&s.apply(this,arguments);t&&rt.isFunction(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this===i?n.promise():this,s?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?rt.extend(t,i):i}},o={};return i.pipe=i.then,rt.each(e,function(t,r){var s=r[2],a=r[3];i[r[1]]=s.add,a&&s.add(function(){n=a},e[1^t][2].disable,e[2][2].lock),o[r[0]]=function(){return o[r[0]+"With"](this===o?i:this,arguments),this},o[r[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(t){var e,n,i,o=0,r=G.call(arguments),s=r.length,a=1!==s||t&&rt.isFunction(t.promise)?s:0,l=1===a?t:rt.Deferred(),u=function(t,n,i){return function(o){n[t]=this,i[t]=arguments.length>1?G.call(arguments):o,i===e?l.notifyWith(n,i):--a||l.resolveWith(n,i)}};if(s>1)for(e=new Array(s),n=new Array(s),i=new Array(s);s>o;o++)r[o]&&rt.isFunction(r[o].promise)?r[o].promise().progress(u(o,n,e)).done(u(o,i,r)).fail(l.reject):--a;return a||l.resolveWith(i,r),l.promise()}});var Tt;rt.fn.ready=function(t){return rt.ready.promise().done(t),this},rt.extend({isReady:!1,readyWait:1,holdReady:function(t){t?rt.readyWait++:rt.ready(!0)},ready:function(t){(t===!0?--rt.readyWait:rt.isReady)||(rt.isReady=!0,t!==!0&&--rt.readyWait>0||(Tt.resolveWith(Y,[rt]),rt.fn.triggerHandler&&(rt(Y).triggerHandler("ready"),rt(Y).off("ready"))))}}),rt.ready.promise=function(e){return Tt||(Tt=rt.Deferred(),"complete"===Y.readyState||"loading"!==Y.readyState&&!Y.documentElement.doScroll?t.setTimeout(rt.ready):(Y.addEventListener("DOMContentLoaded",s),t.addEventListener("load",s))),Tt.promise(e)},rt.ready.promise();var Ct=function(t,e,n,i,o,r,s){var a=0,l=t.length,u=null==n;if("object"===rt.type(n)){o=!0;for(a in n)Ct(t,e,a,n[a],!0,r,s)}else if(void 0!==i&&(o=!0,rt.isFunction(i)||(s=!0),u&&(s?(e.call(t,i),e=null):(u=e,e=function(t,e,n){return u.call(rt(t),n)})),e))for(;l>a;a++)e(t[a],n,s?i:i.call(t[a],a,e(t[a],n)));return o?t:u?e.call(t):l?e(t[0],n):r},Et=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};a.uid=1,a.prototype={register:function(t,e){var n=e||{};return t.nodeType?t[this.expando]=n:Object.defineProperty(t,this.expando,{value:n,writable:!0,configurable:!0}),t[this.expando]},cache:function(t){if(!Et(t))return{};var e=t[this.expando];return e||(e={},Et(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,n){var i,o=this.cache(t);if("string"==typeof e)o[e]=n;else for(i in e)o[i]=e[i];return o},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][e]},access:function(t,e,n){var i;return void 0===e||e&&"string"==typeof e&&void 0===n?(i=this.get(t,e),void 0!==i?i:this.get(t,rt.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i,o,r=t[this.expando];if(void 0!==r){if(void 0===e)this.register(t);else{rt.isArray(e)?i=e.concat(e.map(rt.camelCase)):(o=rt.camelCase(e),e in r?i=[e,o]:(i=o,i=i in r?[i]:i.match(wt)||[])),n=i.length;for(;n--;)delete r[i[n]]}(void 0===e||rt.isEmptyObject(r))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!rt.isEmptyObject(e)}};var kt=new a,$t=new a,St=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Nt=/[A-Z]/g;rt.extend({hasData:function(t){return $t.hasData(t)||kt.hasData(t)},data:function(t,e,n){return $t.access(t,e,n)},removeData:function(t,e){$t.remove(t,e)},_data:function(t,e,n){return kt.access(t,e,n)},_removeData:function(t,e){kt.remove(t,e)}}),rt.fn.extend({data:function(t,e){var n,i,o,r=this[0],s=r&&r.attributes;if(void 0===t){if(this.length&&(o=$t.get(r),1===r.nodeType&&!kt.get(r,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(i=s[n].name,0===i.indexOf("data-")&&(i=rt.camelCase(i.slice(5)),l(r,i,o[i])));kt.set(r,"hasDataAttrs",!0)}return o}return"object"==typeof t?this.each(function(){$t.set(this,t)}):Ct(this,function(e){var n,i;if(r&&void 0===e){if(n=$t.get(r,t)||$t.get(r,t.replace(Nt,"-$&").toLowerCase()),void 0!==n)return n;if(i=rt.camelCase(t),n=$t.get(r,i),void 0!==n)return n;if(n=l(r,i,void 0),void 0!==n)return n}else i=rt.camelCase(t),this.each(function(){var n=$t.get(this,i);$t.set(this,i,e),t.indexOf("-")>-1&&void 0!==n&&$t.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){$t.remove(this,t)})}}),rt.extend({queue:function(t,e,n){var i;return t?(e=(e||"fx")+"queue",i=kt.get(t,e),n&&(!i||rt.isArray(n)?i=kt.access(t,e,rt.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=rt.queue(t,e),i=n.length,o=n.shift(),r=rt._queueHooks(t,e),s=function(){rt.dequeue(t,e)};"inprogress"===o&&(o=n.shift(),i--),o&&("fx"===e&&n.unshift("inprogress"),delete r.stop,o.call(t,s,r)),!i&&r&&r.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return kt.get(t,n)||kt.access(t,n,{empty:rt.Callbacks("once memory").add(function(){kt.remove(t,[e+"queue",n])})})}}),rt.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length<n?rt.queue(this[0],t):void 0===e?this:this.each(function(){var n=rt.queue(this,t,e);rt._queueHooks(this,t),"fx"===t&&"inprogress"!==n[0]&&rt.dequeue(this,t)})},dequeue:function(t){return this.each(function(){rt.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,i=1,o=rt.Deferred(),r=this,s=this.length,a=function(){--i||o.resolveWith(r,[r])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";s--;)n=kt.get(r[s],t+"queueHooks"),n&&n.empty&&(i++,n.empty.add(a));return a(),o.promise(e)}});var Dt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,jt=new RegExp("^(?:([+-])=|)("+Dt+")([a-z%]*)$","i"),At=["Top","Right","Bottom","Left"],Ot=function(t,e){return t=e||t,"none"===rt.css(t,"display")||!rt.contains(t.ownerDocument,t)},It=/^(?:checkbox|radio)$/i,Lt=/<([\w:-]+)/,Rt=/^$|\/(?:java|ecma)script/i,qt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};qt.optgroup=qt.option,qt.tbody=qt.tfoot=qt.colgroup=qt.caption=qt.thead,qt.th=qt.td;var Ht=/<|&#?\w+;/;!function(){var t=Y.createDocumentFragment(),e=t.appendChild(Y.createElement("div")),n=Y.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),it.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",it.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Pt=/^key/,Ft=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Mt=/^([^.]*)(?:\.(.+)|)/;rt.event={global:{},add:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=kt.get(t);if(v)for(n.handler&&(r=n,n=r.handler,o=r.selector),n.guid||(n.guid=rt.guid++),(l=v.events)||(l=v.events={}),(s=v.handle)||(s=v.handle=function(e){return"undefined"!=typeof rt&&rt.event.triggered!==e.type?rt.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(wt)||[""],u=e.length;u--;)a=Mt.exec(e[u])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d&&(f=rt.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=rt.event.special[d]||{},c=rt.extend({type:d,origType:g,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&rt.expr.match.needsContext.test(o),namespace:h.join(".")},r),(p=l[d])||(p=l[d]=[],p.delegateCount=0,f.setup&&f.setup.call(t,i,h,s)!==!1||t.addEventListener&&t.addEventListener(d,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,c):p.push(c),rt.event.global[d]=!0)},remove:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=kt.hasData(t)&&kt.get(t);if(v&&(l=v.events)){for(e=(e||"").match(wt)||[""],u=e.length;u--;)if(a=Mt.exec(e[u])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d){for(f=rt.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,p=l[d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=r=p.length;r--;)c=p[r],!o&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(p.splice(r,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(t,c));s&&!p.length&&(f.teardown&&f.teardown.call(t,h,v.handle)!==!1||rt.removeEvent(t,d,v.handle),delete l[d])}else for(d in l)rt.event.remove(t,d+e[u],n,i,!0);rt.isEmptyObject(l)&&kt.remove(t,"handle events")}},dispatch:function(t){t=rt.event.fix(t);var e,n,i,o,r,s=[],a=G.call(arguments),l=(kt.get(this,"events")||{})[t.type]||[],u=rt.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,t)!==!1){for(s=rt.event.handlers.call(this,t,l),e=0;(o=s[e++])&&!t.isPropagationStopped();)for(t.currentTarget=o.elem,n=0;(r=o.handlers[n++])&&!t.isImmediatePropagationStopped();)t.rnamespace&&!t.rnamespace.test(r.namespace)||(t.handleObj=r,t.data=r.data,i=((rt.event.special[r.origType]||{}).handle||r.handler).apply(o.elem,a),void 0!==i&&(t.result=i)===!1&&(t.preventDefault(),t.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,i,o,r,s=[],a=e.delegateCount,l=t.target;if(a&&l.nodeType&&("click"!==t.type||isNaN(t.button)||t.button<1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==t.type)){for(i=[],n=0;a>n;n++)r=e[n],o=r.selector+" ",void 0===i[o]&&(i[o]=r.needsContext?rt(o,this).index(l)>-1:rt.find(o,this,null,[l]).length),i[o]&&i.push(r);i.length&&s.push({elem:l,handlers:i})}return a<e.length&&s.push({elem:this,handlers:e.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,i,o,r=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||Y,i=n.documentElement,o=n.body,t.pageX=e.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),t.pageY=e.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),t.which||void 0===r||(t.which=1&r?1:2&r?3:4&r?2:0),t}},fix:function(t){if(t[rt.expando])return t;var e,n,i,o=t.type,r=t,s=this.fixHooks[o];for(s||(this.fixHooks[o]=s=Ft.test(o)?this.mouseHooks:Pt.test(o)?this.keyHooks:{}),i=s.props?this.props.concat(s.props):this.props,t=new rt.Event(r),e=i.length;e--;)n=i[e],t[n]=r[n];return t.target||(t.target=Y),3===t.target.nodeType&&(t.target=t.target.parentNode),s.filter?s.filter(t,r):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==g()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===g()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&rt.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return rt.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},rt.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n)},rt.Event=function(t,e){return this instanceof rt.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?d:h):this.type=t,e&&rt.extend(this,e),this.timeStamp=t&&t.timeStamp||rt.now(),void(this[rt.expando]=!0)):new rt.Event(t,e)},rt.Event.prototype={constructor:rt.Event,isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=d,t&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=d,t&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=d,t&&t.stopImmediatePropagation(),this.stopPropagation()}},rt.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){rt.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,i=this,o=t.relatedTarget,r=t.handleObj;return o&&(o===i||rt.contains(i,o))||(t.type=r.origType,n=r.handler.apply(this,arguments),t.type=e),n}}}),rt.fn.extend({on:function(t,e,n,i){return v(this,t,e,n,i)},one:function(t,e,n,i){return v(this,t,e,n,i,1)},off:function(t,e,n){var i,o;if(t&&t.preventDefault&&t.handleObj)return i=t.handleObj,rt(t.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof t){for(o in t)this.off(o,e,t[o]);return this}return e!==!1&&"function"!=typeof e||(n=e,e=void 0),n===!1&&(n=h),this.each(function(){rt.event.remove(this,t,n,e)})}});var Wt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,_t=/<script|<style|<link/i,Bt=/checked\s*(?:[^=]|=\s*.checked.)/i,Ut=/^true\/(.*)/,zt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;rt.extend({htmlPrefilter:function(t){return t.replace(Wt,"<$1></$2>")},clone:function(t,e,n){var i,o,r,s,a=t.cloneNode(!0),l=rt.contains(t.ownerDocument,t);if(!(it.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||rt.isXMLDoc(t)))for(s=c(a),r=c(t),i=0,o=r.length;o>i;i++)w(r[i],s[i]);if(e)if(n)for(r=r||c(t),s=s||c(a),i=0,o=r.length;o>i;i++)x(r[i],s[i]);else x(t,a);return s=c(a,"script"),s.length>0&&f(s,!l&&c(t,"script")),a},cleanData:function(t){for(var e,n,i,o=rt.event.special,r=0;void 0!==(n=t[r]);r++)if(Et(n)){if(e=n[kt.expando]){if(e.events)for(i in e.events)o[i]?rt.event.remove(n,i):rt.removeEvent(n,i,e.handle);n[kt.expando]=void 0}n[$t.expando]&&(n[$t.expando]=void 0)}}}),rt.fn.extend({domManip:T,detach:function(t){return C(this,t,!0)},remove:function(t){return C(this,t)},text:function(t){return Ct(this,function(t){return void 0===t?rt.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return T(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=m(this,t);e.appendChild(t)}})},prepend:function(){return T(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=m(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return T(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return T(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(rt.cleanData(c(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return rt.clone(this,t,e)})},html:function(t){return Ct(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!_t.test(t)&&!qt[(Lt.exec(t)||["",""])[1].toLowerCase()]){t=rt.htmlPrefilter(t);try{for(;i>n;n++)e=this[n]||{},1===e.nodeType&&(rt.cleanData(c(e,!1)),e.innerHTML=t);e=0}catch(o){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=[];return T(this,arguments,function(e){var n=this.parentNode;rt.inArray(this,t)<0&&(rt.cleanData(c(this)),n&&n.replaceChild(e,this))},t)}}),rt.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){rt.fn[t]=function(t){for(var n,i=[],o=rt(t),r=o.length-1,s=0;r>=s;s++)n=s===r?this:this.clone(!0),rt(o[s])[e](n),J.apply(i,n.get());return this.pushStack(i)}});var Vt,Xt={HTML:"block",BODY:"block"},Qt=/^margin/,Yt=new RegExp("^("+Dt+")(?!px)[a-z%]+$","i"),Gt=function(e){var n=e.ownerDocument.defaultView;return n&&n.opener||(n=t),n.getComputedStyle(e)},Kt=function(t,e,n,i){var o,r,s={};for(r in e)s[r]=t.style[r],t.style[r]=e[r];o=n.apply(t,i||[]);for(r in e)t.style[r]=s[r];return o},Jt=Y.documentElement;!function(){function e(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",a.innerHTML="",Jt.appendChild(s);var e=t.getComputedStyle(a);n="1%"!==e.top,r="2px"===e.marginLeft,i="4px"===e.width,a.style.marginRight="50%",o="4px"===e.marginRight,Jt.removeChild(s)}var n,i,o,r,s=Y.createElement("div"),a=Y.createElement("div");a.style&&(a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",it.clearCloneStyle="content-box"===a.style.backgroundClip,s.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",s.appendChild(a),rt.extend(it,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==i&&e(),i},pixelMarginRight:function(){return null==i&&e(),o},reliableMarginLeft:function(){return null==i&&e(),r},reliableMarginRight:function(){var e,n=a.appendChild(Y.createElement("div"));return n.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",a.style.width="1px",Jt.appendChild(s),e=!parseFloat(t.getComputedStyle(n).marginRight),Jt.removeChild(s),a.removeChild(n),e}}))}();var Zt=/^(none|table(?!-c[ea]).+)/,te={position:"absolute",visibility:"hidden",display:"block"},ee={letterSpacing:"0",fontWeight:"400"},ne=["Webkit","O","Moz","ms"],ie=Y.createElement("div").style;rt.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=$(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,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":"cssFloat"},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,r,s,a=rt.camelCase(e),l=t.style;return e=rt.cssProps[a]||(rt.cssProps[a]=N(a)||a),s=rt.cssHooks[e]||rt.cssHooks[a],void 0===n?s&&"get"in s&&void 0!==(o=s.get(t,!1,i))?o:l[e]:(r=typeof n,"string"===r&&(o=jt.exec(n))&&o[1]&&(n=u(t,e,o),r="number"),null!=n&&n===n&&("number"===r&&(n+=o&&o[3]||(rt.cssNumber[a]?"":"px")),it.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),s&&"set"in s&&void 0===(n=s.set(t,n,i))||(l[e]=n)),
 
void 0)}},css:function(t,e,n,i){var o,r,s,a=rt.camelCase(e);return e=rt.cssProps[a]||(rt.cssProps[a]=N(a)||a),s=rt.cssHooks[e]||rt.cssHooks[a],s&&"get"in s&&(o=s.get(t,!0,n)),void 0===o&&(o=$(t,e,i)),"normal"===o&&e in ee&&(o=ee[e]),""===n||n?(r=parseFloat(o),n===!0||isFinite(r)?r||0:o):o}}),rt.each(["height","width"],function(t,e){rt.cssHooks[e]={get:function(t,n,i){return n?Zt.test(rt.css(t,"display"))&&0===t.offsetWidth?Kt(t,te,function(){return A(t,e,i)}):A(t,e,i):void 0},set:function(t,n,i){var o,r=i&&Gt(t),s=i&&j(t,e,i,"border-box"===rt.css(t,"boxSizing",!1,r),r);return s&&(o=jt.exec(n))&&"px"!==(o[3]||"px")&&(t.style[e]=n,n=rt.css(t,e)),D(t,n,s)}}}),rt.cssHooks.marginLeft=S(it.reliableMarginLeft,function(t,e){return e?(parseFloat($(t,"marginLeft"))||t.getBoundingClientRect().left-Kt(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px":void 0}),rt.cssHooks.marginRight=S(it.reliableMarginRight,function(t,e){return e?Kt(t,{display:"inline-block"},$,[t,"marginRight"]):void 0}),rt.each({margin:"",padding:"",border:"Width"},function(t,e){rt.cssHooks[t+e]={expand:function(n){for(var i=0,o={},r="string"==typeof n?n.split(" "):[n];4>i;i++)o[t+At[i]+e]=r[i]||r[i-2]||r[0];return o}},Qt.test(t)||(rt.cssHooks[t+e].set=D)}),rt.fn.extend({css:function(t,e){return Ct(this,function(t,e,n){var i,o,r={},s=0;if(rt.isArray(e)){for(i=Gt(t),o=e.length;o>s;s++)r[e[s]]=rt.css(t,e[s],!1,i);return r}return void 0!==n?rt.style(t,e,n):rt.css(t,e)},t,e,arguments.length>1)},show:function(){return O(this,!0)},hide:function(){return O(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Ot(this)?rt(this).show():rt(this).hide()})}}),rt.Tween=I,I.prototype={constructor:I,init:function(t,e,n,i,o,r){this.elem=t,this.prop=n,this.easing=o||rt.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=r||(rt.cssNumber[n]?"":"px")},cur:function(){var t=I.propHooks[this.prop];return t&&t.get?t.get(this):I.propHooks._default.get(this)},run:function(t){var e,n=I.propHooks[this.prop];return this.options.duration?this.pos=e=rt.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=rt.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){rt.fx.step[t.prop]?rt.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[rt.cssProps[t.prop]]&&!rt.cssHooks[t.prop]?t.elem[t.prop]=t.now:rt.style(t.elem,t.prop,t.now+t.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},rt.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},rt.fx=I.prototype.init,rt.fx.step={};var oe,re,se=/^(?:toggle|show|hide)$/,ae=/queueHooks$/;rt.Animation=rt.extend(F,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return u(n.elem,t,jt.exec(e),n),n}]},tweener:function(t,e){rt.isFunction(t)?(e=t,t=["*"]):t=t.match(wt);for(var n,i=0,o=t.length;o>i;i++)n=t[i],F.tweeners[n]=F.tweeners[n]||[],F.tweeners[n].unshift(e)},prefilters:[H],prefilter:function(t,e){e?F.prefilters.unshift(t):F.prefilters.push(t)}}),rt.speed=function(t,e,n){var i=t&&"object"==typeof t?rt.extend({},t):{complete:n||!n&&e||rt.isFunction(t)&&t,duration:t,easing:n&&e||e&&!rt.isFunction(e)&&e};return i.duration=rt.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in rt.fx.speeds?rt.fx.speeds[i.duration]:rt.fx.speeds._default,null!=i.queue&&i.queue!==!0||(i.queue="fx"),i.old=i.complete,i.complete=function(){rt.isFunction(i.old)&&i.old.call(this),i.queue&&rt.dequeue(this,i.queue)},i},rt.fn.extend({fadeTo:function(t,e,n,i){return this.filter(Ot).css("opacity",0).show().end().animate({opacity:e},t,n,i)},animate:function(t,e,n,i){var o=rt.isEmptyObject(t),r=rt.speed(e,n,i),s=function(){var e=F(this,rt.extend({},t),r);(o||kt.get(this,"finish"))&&e.stop(!0)};return s.finish=s,o||r.queue===!1?this.each(s):this.queue(r.queue,s)},stop:function(t,e,n){var i=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,o=null!=t&&t+"queueHooks",r=rt.timers,s=kt.get(this);if(o)s[o]&&s[o].stop&&i(s[o]);else for(o in s)s[o]&&s[o].stop&&ae.test(o)&&i(s[o]);for(o=r.length;o--;)r[o].elem!==this||null!=t&&r[o].queue!==t||(r[o].anim.stop(n),e=!1,r.splice(o,1));!e&&n||rt.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,n=kt.get(this),i=n[t+"queue"],o=n[t+"queueHooks"],r=rt.timers,s=i?i.length:0;for(n.finish=!0,rt.queue(this,t,[]),o&&o.stop&&o.stop.call(this,!0),e=r.length;e--;)r[e].elem===this&&r[e].queue===t&&(r[e].anim.stop(!0),r.splice(e,1));for(e=0;s>e;e++)i[e]&&i[e].finish&&i[e].finish.call(this);delete n.finish})}}),rt.each(["toggle","show","hide"],function(t,e){var n=rt.fn[e];rt.fn[e]=function(t,i,o){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(R(e,!0),t,i,o)}}),rt.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){rt.fn[t]=function(t,n,i){return this.animate(e,t,n,i)}}),rt.timers=[],rt.fx.tick=function(){var t,e=0,n=rt.timers;for(oe=rt.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||rt.fx.stop(),oe=void 0},rt.fx.timer=function(t){rt.timers.push(t),t()?rt.fx.start():rt.timers.pop()},rt.fx.interval=13,rt.fx.start=function(){re||(re=t.setInterval(rt.fx.tick,rt.fx.interval))},rt.fx.stop=function(){t.clearInterval(re),re=null},rt.fx.speeds={slow:600,fast:200,_default:400},rt.fn.delay=function(e,n){return e=rt.fx?rt.fx.speeds[e]||e:e,n=n||"fx",this.queue(n,function(n,i){var o=t.setTimeout(n,e);i.stop=function(){t.clearTimeout(o)}})},function(){var t=Y.createElement("input"),e=Y.createElement("select"),n=e.appendChild(Y.createElement("option"));t.type="checkbox",it.checkOn=""!==t.value,it.optSelected=n.selected,e.disabled=!0,it.optDisabled=!n.disabled,t=Y.createElement("input"),t.value="t",t.type="radio",it.radioValue="t"===t.value}();var le,ue=rt.expr.attrHandle;rt.fn.extend({attr:function(t,e){return Ct(this,rt.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){rt.removeAttr(this,t)})}}),rt.extend({attr:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return"undefined"==typeof t.getAttribute?rt.prop(t,e,n):(1===r&&rt.isXMLDoc(t)||(e=e.toLowerCase(),o=rt.attrHooks[e]||(rt.expr.match.bool.test(e)?le:void 0)),void 0!==n?null===n?void rt.removeAttr(t,e):o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:(t.setAttribute(e,n+""),n):o&&"get"in o&&null!==(i=o.get(t,e))?i:(i=rt.find.attr(t,e),null==i?void 0:i))},attrHooks:{type:{set:function(t,e){if(!it.radioValue&&"radio"===e&&rt.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i,o=0,r=e&&e.match(wt);if(r&&1===t.nodeType)for(;n=r[o++];)i=rt.propFix[n]||n,rt.expr.match.bool.test(n)&&(t[i]=!1),t.removeAttribute(n)}}),le={set:function(t,e,n){return e===!1?rt.removeAttr(t,n):t.setAttribute(n,n),n}},rt.each(rt.expr.match.bool.source.match(/\w+/g),function(t,e){var n=ue[e]||rt.find.attr;ue[e]=function(t,e,i){var o,r;return i||(r=ue[e],ue[e]=o,o=null!=n(t,e,i)?e.toLowerCase():null,ue[e]=r),o}});var ce=/^(?:input|select|textarea|button)$/i,fe=/^(?:a|area)$/i;rt.fn.extend({prop:function(t,e){return Ct(this,rt.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[rt.propFix[t]||t]})}}),rt.extend({prop:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&rt.isXMLDoc(t)||(e=rt.propFix[e]||e,o=rt.propHooks[e]),void 0!==n?o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:t[e]=n:o&&"get"in o&&null!==(i=o.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=rt.find.attr(t,"tabindex");return e?parseInt(e,10):ce.test(t.nodeName)||fe.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),it.optSelected||(rt.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),rt.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){rt.propFix[this.toLowerCase()]=this});var pe=/[\t\r\n\f]/g;rt.fn.extend({addClass:function(t){var e,n,i,o,r,s,a,l=0;if(rt.isFunction(t))return this.each(function(e){rt(this).addClass(t.call(this,e,M(this)))});if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[l++];)if(o=M(n),i=1===n.nodeType&&(" "+o+" ").replace(pe," ")){for(s=0;r=e[s++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");a=rt.trim(i),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,i,o,r,s,a,l=0;if(rt.isFunction(t))return this.each(function(e){rt(this).removeClass(t.call(this,e,M(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[l++];)if(o=M(n),i=1===n.nodeType&&(" "+o+" ").replace(pe," ")){for(s=0;r=e[s++];)for(;i.indexOf(" "+r+" ")>-1;)i=i.replace(" "+r+" "," ");a=rt.trim(i),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):rt.isFunction(t)?this.each(function(n){rt(this).toggleClass(t.call(this,n,M(this),e),e)}):this.each(function(){var e,i,o,r;if("string"===n)for(i=0,o=rt(this),r=t.match(wt)||[];e=r[i++];)o.hasClass(e)?o.removeClass(e):o.addClass(e);else void 0!==t&&"boolean"!==n||(e=M(this),e&&kt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":kt.get(this,"__className__")||""))})},hasClass:function(t){var e,n,i=0;for(e=" "+t+" ";n=this[i++];)if(1===n.nodeType&&(" "+M(n)+" ").replace(pe," ").indexOf(e)>-1)return!0;return!1}});var de=/\r/g;rt.fn.extend({val:function(t){var e,n,i,o=this[0];{if(arguments.length)return i=rt.isFunction(t),this.each(function(n){var o;1===this.nodeType&&(o=i?t.call(this,n,rt(this).val()):t,null==o?o="":"number"==typeof o?o+="":rt.isArray(o)&&(o=rt.map(o,function(t){return null==t?"":t+""})),e=rt.valHooks[this.type]||rt.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,o,"value")||(this.value=o))});if(o)return e=rt.valHooks[o.type]||rt.valHooks[o.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(de,""):null==n?"":n)}}}),rt.extend({valHooks:{option:{get:function(t){return rt.trim(t.value)}},select:{get:function(t){for(var e,n,i=t.options,o=t.selectedIndex,r="select-one"===t.type||0>o,s=r?null:[],a=r?o+1:i.length,l=0>o?a:r?o:0;a>l;l++)if(n=i[l],(n.selected||l===o)&&(it.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!rt.nodeName(n.parentNode,"optgroup"))){if(e=rt(n).val(),r)return e;s.push(e)}return s},set:function(t,e){for(var n,i,o=t.options,r=rt.makeArray(e),s=o.length;s--;)i=o[s],(i.selected=rt.inArray(rt.valHooks.option.get(i),r)>-1)&&(n=!0);return n||(t.selectedIndex=-1),r}}}}),rt.each(["radio","checkbox"],function(){rt.valHooks[this]={set:function(t,e){return rt.isArray(e)?t.checked=rt.inArray(rt(t).val(),e)>-1:void 0}},it.checkOn||(rt.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var he=/^(?:focusinfocus|focusoutblur)$/;rt.extend(rt.event,{trigger:function(e,n,i,o){var r,s,a,l,u,c,f,p=[i||Y],d=nt.call(e,"type")?e.type:e,h=nt.call(e,"namespace")?e.namespace.split("."):[];if(s=a=i=i||Y,3!==i.nodeType&&8!==i.nodeType&&!he.test(d+rt.event.triggered)&&(d.indexOf(".")>-1&&(h=d.split("."),d=h.shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,e=e[rt.expando]?e:new rt.Event(d,"object"==typeof e&&e),e.isTrigger=o?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),n=null==n?[e]:rt.makeArray(n,[e]),f=rt.event.special[d]||{},o||!f.trigger||f.trigger.apply(i,n)!==!1)){if(!o&&!f.noBubble&&!rt.isWindow(i)){for(l=f.delegateType||d,he.test(l+d)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(i.ownerDocument||Y)&&p.push(a.defaultView||a.parentWindow||t)}for(r=0;(s=p[r++])&&!e.isPropagationStopped();)e.type=r>1?l:f.bindType||d,c=(kt.get(s,"events")||{})[e.type]&&kt.get(s,"handle"),c&&c.apply(s,n),c=u&&s[u],c&&c.apply&&Et(s)&&(e.result=c.apply(s,n),e.result===!1&&e.preventDefault());return e.type=d,o||e.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!Et(i)||u&&rt.isFunction(i[d])&&!rt.isWindow(i)&&(a=i[u],a&&(i[u]=null),rt.event.triggered=d,i[d](),rt.event.triggered=void 0,a&&(i[u]=a)),e.result}},simulate:function(t,e,n){var i=rt.extend(new rt.Event,n,{type:t,isSimulated:!0});rt.event.trigger(i,null,e),i.isDefaultPrevented()&&n.preventDefault()}}),rt.fn.extend({trigger:function(t,e){return this.each(function(){rt.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];return n?rt.event.trigger(t,e,n,!0):void 0}}),rt.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(t,e){rt.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),rt.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),it.focusin="onfocusin"in t,it.focusin||rt.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){rt.event.simulate(e,t.target,rt.event.fix(t))};rt.event.special[e]={setup:function(){var i=this.ownerDocument||this,o=kt.access(i,e);o||i.addEventListener(t,n,!0),kt.access(i,e,(o||0)+1)},teardown:function(){var i=this.ownerDocument||this,o=kt.access(i,e)-1;o?kt.access(i,e,o):(i.removeEventListener(t,n,!0),kt.remove(i,e))}}});var ge=t.location,ve=rt.now(),me=/\?/;rt.parseJSON=function(t){return JSON.parse(t+"")},rt.parseXML=function(e){var n;if(!e||"string"!=typeof e)return null;try{n=(new t.DOMParser).parseFromString(e,"text/xml")}catch(i){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||rt.error("Invalid XML: "+e),n};var ye=/#.*$/,be=/([?&])_=[^&]*/,xe=/^(.*?):[ \t]*([^\r\n]*)$/gm,we=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Te=/^(?:GET|HEAD)$/,Ce=/^\/\//,Ee={},ke={},$e="*/".concat("*"),Se=Y.createElement("a");Se.href=ge.href,rt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ge.href,type:"GET",isLocal:we.test(ge.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":rt.parseJSON,"text xml":rt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?B(B(t,rt.ajaxSettings),e):B(rt.ajaxSettings,t)},ajaxPrefilter:W(Ee),ajaxTransport:W(ke),ajax:function(e,n){function i(e,n,i,a){var u,f,y,b,w,C=n;2!==x&&(x=2,l&&t.clearTimeout(l),o=void 0,s=a||"",T.readyState=e>0?4:0,u=e>=200&&300>e||304===e,i&&(b=U(p,T,i)),b=z(p,b,T,u),u?(p.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(rt.lastModified[r]=w),w=T.getResponseHeader("etag"),w&&(rt.etag[r]=w)),204===e||"HEAD"===p.type?C="nocontent":304===e?C="notmodified":(C=b.state,f=b.data,y=b.error,u=!y)):(y=C,!e&&C||(C="error",0>e&&(e=0))),T.status=e,T.statusText=(n||C)+"",u?g.resolveWith(d,[f,C,T]):g.rejectWith(d,[T,C,y]),T.statusCode(m),m=void 0,c&&h.trigger(u?"ajaxSuccess":"ajaxError",[T,p,u?f:y]),v.fireWith(d,[T,C]),c&&(h.trigger("ajaxComplete",[T,p]),--rt.active||rt.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=void 0),n=n||{};var o,r,s,a,l,u,c,f,p=rt.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?rt(d):rt.event,g=rt.Deferred(),v=rt.Callbacks("once memory"),m=p.statusCode||{},y={},b={},x=0,w="canceled",T={readyState:0,getResponseHeader:function(t){var e;if(2===x){if(!a)for(a={};e=xe.exec(s);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===x?s:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return x||(t=b[n]=b[n]||t,y[t]=e),this},overrideMimeType:function(t){return x||(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>x)for(e in t)m[e]=[m[e],t[e]];else T.always(t[T.status]);return this},abort:function(t){var e=t||w;return o&&o.abort(e),i(0,e),this}};if(g.promise(T).complete=v.add,T.success=T.done,T.error=T.fail,p.url=((e||p.url||ge.href)+"").replace(ye,"").replace(Ce,ge.protocol+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=rt.trim(p.dataType||"*").toLowerCase().match(wt)||[""],null==p.crossDomain){u=Y.createElement("a");try{u.href=p.url,u.href=u.href,p.crossDomain=Se.protocol+"//"+Se.host!=u.protocol+"//"+u.host}catch(C){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=rt.param(p.data,p.traditional)),_(Ee,p,n,T),2===x)return T;c=rt.event&&p.global,c&&0===rt.active++&&rt.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Te.test(p.type),r=p.url,p.hasContent||(p.data&&(r=p.url+=(me.test(r)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=be.test(r)?r.replace(be,"$1_="+ve++):r+(me.test(r)?"&":"?")+"_="+ve++)),p.ifModified&&(rt.lastModified[r]&&T.setRequestHeader("If-Modified-Since",rt.lastModified[r]),rt.etag[r]&&T.setRequestHeader("If-None-Match",rt.etag[r])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",p.contentType),T.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+$e+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)T.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,T,p)===!1||2===x))return T.abort();w="abort";for(f in{success:1,error:1,complete:1})T[f](p[f]);if(o=_(ke,p,n,T)){if(T.readyState=1,c&&h.trigger("ajaxSend",[T,p]),2===x)return T;p.async&&p.timeout>0&&(l=t.setTimeout(function(){T.abort("timeout")},p.timeout));try{x=1,o.send(y,i)}catch(C){if(!(2>x))throw C;i(-1,C)}}else i(-1,"No Transport");return T},getJSON:function(t,e,n){return rt.get(t,e,n,"json")},getScript:function(t,e){return rt.get(t,void 0,e,"script")}}),rt.each(["get","post"],function(t,e){rt[e]=function(t,n,i,o){return rt.isFunction(n)&&(o=o||i,i=n,n=void 0),rt.ajax(rt.extend({url:t,type:e,dataType:o,data:n,success:i},rt.isPlainObject(t)&&t))}}),rt._evalUrl=function(t){return rt.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},rt.fn.extend({wrapAll:function(t){var e;return rt.isFunction(t)?this.each(function(e){rt(this).wrapAll(t.call(this,e))}):(this[0]&&(e=rt(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return rt.isFunction(t)?this.each(function(e){rt(this).wrapInner(t.call(this,e))}):this.each(function(){var e=rt(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=rt.isFunction(t);return this.each(function(n){rt(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){rt.nodeName(this,"body")||rt(this).replaceWith(this.childNodes)}).end()}}),rt.expr.filters.hidden=function(t){return!rt.expr.filters.visible(t)},rt.expr.filters.visible=function(t){return t.offsetWidth>0||t.offsetHeight>0||t.getClientRects().length>0};var Ne=/%20/g,De=/\[\]$/,je=/\r?\n/g,Ae=/^(?:submit|button|image|reset|file)$/i,Oe=/^(?:input|select|textarea|keygen)/i;rt.param=function(t,e){var n,i=[],o=function(t,e){e=rt.isFunction(e)?e():null==e?"":e,i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=rt.ajaxSettings&&rt.ajaxSettings.traditional),rt.isArray(t)||t.jquery&&!rt.isPlainObject(t))rt.each(t,function(){o(this.name,this.value)});else for(n in t)V(n,t[n],e,o);return i.join("&").replace(Ne,"+")},rt.fn.extend({serialize:function(){return rt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=rt.prop(this,"elements");return t?rt.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!rt(this).is(":disabled")&&Oe.test(this.nodeName)&&!Ae.test(t)&&(this.checked||!It.test(t))}).map(function(t,e){var n=rt(this).val();return null==n?null:rt.isArray(n)?rt.map(n,function(t){return{name:e.name,value:t.replace(je,"\r\n")}}):{name:e.name,value:n.replace(je,"\r\n")}}).get()}}),rt.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(e){}};var Ie={0:200,1223:204},Le=rt.ajaxSettings.xhr();it.cors=!!Le&&"withCredentials"in Le,it.ajax=Le=!!Le,rt.ajaxTransport(function(e){var n,i;return it.cors||Le&&!e.crossDomain?{send:function(o,r){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(t){return function(){n&&(n=i=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?r(0,"error"):r(a.status,a.statusText):r(Ie[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),i=a.onerror=n("error"),void 0!==a.onabort?a.onabort=i:a.onreadystatechange=function(){4===a.readyState&&t.setTimeout(function(){n&&i()})},n=n("abort");try{a.send(e.hasContent&&e.data||null)}catch(l){if(n)throw l}},abort:function(){n&&n()}}:void 0}),rt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return rt.globalEval(t),t}}}),rt.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),rt.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(i,o){e=rt("<script>").prop({charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&o("error"===t.type?404:200,t.type)}),Y.head.appendChild(e[0])},abort:function(){n&&n()}}}});var Re=[],qe=/(=)\?(?=&|$)|\?\?/;rt.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Re.pop()||rt.expando+"_"+ve++;return this[t]=!0,t}}),rt.ajaxPrefilter("json jsonp",function(e,n,i){var o,r,s,a=e.jsonp!==!1&&(qe.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&qe.test(e.data)&&"data");return a||"jsonp"===e.dataTypes[0]?(o=e.jsonpCallback=rt.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(qe,"$1"+o):e.jsonp!==!1&&(e.url+=(me.test(e.url)?"&":"?")+e.jsonp+"="+o),e.converters["script json"]=function(){return s||rt.error(o+" was not called"),s[0]},e.dataTypes[0]="json",r=t[o],t[o]=function(){s=arguments},i.always(function(){void 0===r?rt(t).removeProp(o):t[o]=r,e[o]&&(e.jsonpCallback=n.jsonpCallback,Re.push(o)),s&&rt.isFunction(r)&&r(s[0]),s=r=void 0}),"script"):void 0}),it.createHTMLDocument=function(){var t=Y.implementation.createHTMLDocument("").body;return t.innerHTML="<form></form><form></form>",2===t.childNodes.length}(),rt.parseHTML=function(t,e,n){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(n=e,e=!1),e=e||(it.createHTMLDocument?Y.implementation.createHTMLDocument(""):Y);var i=ht.exec(t),o=!n&&[];return i?[e.createElement(i[1])]:(i=p([t],e,o),o&&o.length&&rt(o).remove(),rt.merge([],i.childNodes))};var He=rt.fn.load;rt.fn.load=function(t,e,n){if("string"!=typeof t&&He)return He.apply(this,arguments);var i,o,r,s=this,a=t.indexOf(" ");return a>-1&&(i=rt.trim(t.slice(a)),t=t.slice(0,a)),rt.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(o="POST"),s.length>0&&rt.ajax({url:t,type:o||"GET",dataType:"html",data:e}).done(function(t){r=arguments,s.html(i?rt("<div>").append(rt.parseHTML(t)).find(i):t)}).always(n&&function(t,e){s.each(function(){n.apply(s,r||[t.responseText,e,t])})}),this},rt.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){rt.fn[e]=function(t){return this.on(e,t)}}),rt.expr.filters.animated=function(t){return rt.grep(rt.timers,function(e){return t===e.elem}).length},rt.offset={setOffset:function(t,e,n){var i,o,r,s,a,l,u,c=rt.css(t,"position"),f=rt(t),p={};"static"===c&&(t.style.position="relative"),a=f.offset(),r=rt.css(t,"top"),l=rt.css(t,"left"),u=("absolute"===c||"fixed"===c)&&(r+l).indexOf("auto")>-1,u?(i=f.position(),s=i.top,o=i.left):(s=parseFloat(r)||0,o=parseFloat(l)||0),rt.isFunction(e)&&(e=e.call(t,n,rt.extend({},a))),null!=e.top&&(p.top=e.top-a.top+s),null!=e.left&&(p.left=e.left-a.left+o),"using"in e?e.using.call(t,p):f.css(p)}},rt.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){rt.offset.setOffset(this,t,e)});var e,n,i=this[0],o={top:0,left:0},r=i&&i.ownerDocument;if(r)return e=r.documentElement,rt.contains(e,i)?(o=i.getBoundingClientRect(),n=X(r),{top:o.top+n.pageYOffset-e.clientTop,left:o.left+n.pageXOffset-e.clientLeft}):o},position:function(){if(this[0]){var t,e,n=this[0],i={top:0,left:0};return"fixed"===rt.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),rt.nodeName(t[0],"html")||(i=t.offset()),i.top+=rt.css(t[0],"borderTopWidth",!0),i.left+=rt.css(t[0],"borderLeftWidth",!0)),{top:e.top-i.top-rt.css(n,"marginTop",!0),left:e.left-i.left-rt.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===rt.css(t,"position");)t=t.offsetParent;return t||Jt})}}),rt.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,e){var n="pageYOffset"===e;rt.fn[t]=function(i){return Ct(this,function(t,i,o){var r=X(t);return void 0===o?r?r[e]:t[i]:void(r?r.scrollTo(n?r.pageXOffset:o,n?o:r.pageYOffset):t[i]=o)},t,i,arguments.length)}}),rt.each(["top","left"],function(t,e){rt.cssHooks[e]=S(it.pixelPosition,function(t,n){return n?(n=$(t,e),Yt.test(n)?rt(t).position()[e]+"px":n):void 0})}),rt.each({Height:"height",Width:"width"},function(t,e){rt.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,i){rt.fn[i]=function(i,o){var r=arguments.length&&(n||"boolean"!=typeof i),s=n||(i===!0||o===!0?"margin":"border");return Ct(this,function(e,n,i){var o;return rt.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(o=e.documentElement,Math.max(e.body["scroll"+t],o["scroll"+t],e.body["offset"+t],o["offset"+t],o["client"+t])):void 0===i?rt.css(e,n,s):rt.style(e,n,i,s)},e,r?i:void 0,r,null)}})}),rt.fn.extend({bind:function(t,e,n){return this.on(t,null,e,n)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,n,i){return this.on(e,t,n,i)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)},size:function(){return this.length}}),rt.fn.andSelf=rt.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return rt});var Pe=t.jQuery,Fe=t.$;return rt.noConflict=function(e){return t.$===rt&&(t.$=Fe),e&&t.jQuery===rt&&(t.jQuery=Pe),rt},e||(t.jQuery=t.$=rt),rt})},{}],15:[function(t,e,n){"use strict";window.jQuery=window.$=t("jquery");var i=window.$;t("bootstrap");var o=function(){var t=i(".modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography");t.each(function(t,e){var n="markdown-editor-"+t,o=i("<div>").attr("id",n),r=function(t,e){var n=t.getSession();t.setTheme("ace/theme/tomorrow"),t.$blockScrolling=1/0,t.setOption("scrollPastEnd",!0),n.setMode("ace/mode/markdown"),n.setValue(e.val()),n.setUseWrapMode(!0),n.on("change",function(){e.val(n.getValue())}),t.renderer.setShowGutter(!1),n.setTabSize(4),n.setUseSoftTabs(!0)},s=i(e).closest(".form-group"),a=s.find("textarea");s.append(o),r(ace.edit(n),a)})};i(function(){o()})},{bootstrap:1,jquery:14}]},{},[15]);
...
 
\ No newline at end of file
static/dist/js/site.js
Show inline comments
 
deleted file
static/src/hbs/_scripts.hbs
Show inline comments
 
new file 100644
 
<script src='{{ assetPath "js/site.js" }}'></script>
static/src/hbs/_styles.hbs
Show inline comments
 
new file 100644
 
<link href='{{ assetPath "css/site.css" }}' rel='stylesheet' />
static/src/js/main.js
Show inline comments
 
deleted file
static/src/js/site.js
Show inline comments
 
new file 100644
 
/* global window ace */
 
window.jQuery = window.$ = require('jquery');
 

	
 
const $ = window.$;
 

	
 
require('bootstrap');
 

	
 
const loadEditors = () => {
 
    const $editors = $('.modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography');
 
    $editors.each((i, el) => {
 
      const editorId = `markdown-editor-${i}`;
 
      const reportDiv = $('<div>').attr('id', editorId);
 
      const setupEditor = (editor, textarea) => {
 
          const session = editor.getSession();
 
          editor.setTheme('ace/theme/tomorrow');
 
          editor.$blockScrolling = Infinity;
 
          editor.setOption('scrollPastEnd', true);
 
          session.setMode('ace/mode/markdown');
 
          session.setValue(textarea.val());
 
          session.setUseWrapMode(true);
 
          session.on('change', () => {
 
              textarea.val(session.getValue());
 
          });
 
          editor.renderer.setShowGutter(false);
 
          session.setTabSize(4);
 
          session.setUseSoftTabs(true);
 
      };
 
      const $formGroup = $(el).closest('.form-group');
 
      const $textarea = $formGroup.find('textarea');
 
      $formGroup.append(reportDiv);
 
      setupEditor(ace.edit(editorId), $textarea);
 
    });
 
};
 

	
 
$(() => {
 
    loadEditors();
 
});
static/src/less/site.less
Show inline comments
 
// ~ uses paths in node_modules based on default webpack configuration
 
@import "~bootstrap/less/bootstrap.less";
 
@import "~font-awesome/less/font-awesome.less";
 
@import "bootstrap";
 
@import "font-awesome";
 

	
 
// Override some of the variables in bootstrap and font-awesome, @@@ put in own file
 
@fa-font-path: "~font-awesome/fonts/";
 
@icon-font-path: "~bootstrap/fonts/";
 

	
 
@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
 
@font-family-serif:       Georgia, "Times New Roman", Times, serif;
 
@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
 
@import "variables.less";
 

	
 
// Account
 
@import "account.less";
 

	
 
// Symposion UI components
 
@import "editor.less";
 
@import "symposion-components.less";
 
@import "symposion-schedule.less";
 

	
 
// Site overrides
 
@import "custom.less";
static/src/less/variables.less
Show inline comments
 
new file 100644
 
@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
 
@font-family-serif:       Georgia, "Times New Roman", Times, serif;
 
@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
static/webpack.config.js
Show inline comments
 
deleted file
0 comments (0 inline, 0 general)