Full Code of guillaumepotier/Parsley.js for AI

master a1fda048a9ec cached
444 files
2.9 MB
779.6k tokens
594 symbols
1 requests
Download .txt
Showing preview only (3,110K chars total). Download the full file or copy to clipboard to get everything.
Repository: guillaumepotier/Parsley.js
Branch: master
Commit: a1fda048a9ec
Files: 444
Total size: 2.9 MB

Directory structure:
gitextract_gu7fheup/

├── .babelrc
├── .editorconfig
├── .eslintrc
├── .github/
│   ├── FUNDING.yml
│   └── ISSUE_TEMPLATE.md
├── .gitignore
├── .npmignore
├── .travis.yml
├── CHANGELOG.md
├── CNAME
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── UPGRADE-2.0.md
├── UPGRADE-2.1.md
├── UPGRADE-2.2.md
├── bower.json
├── bower_components/
│   ├── bootstrap/
│   │   ├── .bower.json
│   │   ├── DOCS-LICENSE
│   │   ├── LICENSE
│   │   ├── LICENSE-MIT
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── dist/
│   │   │   ├── css/
│   │   │   │   ├── bootstrap-theme.css
│   │   │   │   └── bootstrap.css
│   │   │   └── js/
│   │   │       └── bootstrap.js
│   │   ├── js/
│   │   │   ├── affix.js
│   │   │   ├── alert.js
│   │   │   ├── button.js
│   │   │   ├── carousel.js
│   │   │   ├── collapse.js
│   │   │   ├── dropdown.js
│   │   │   ├── modal.js
│   │   │   ├── popover.js
│   │   │   ├── scrollspy.js
│   │   │   ├── tab.js
│   │   │   ├── tooltip.js
│   │   │   └── transition.js
│   │   └── less/
│   │       ├── alerts.less
│   │       ├── badges.less
│   │       ├── bootstrap.less
│   │       ├── breadcrumbs.less
│   │       ├── button-groups.less
│   │       ├── buttons.less
│   │       ├── carousel.less
│   │       ├── close.less
│   │       ├── code.less
│   │       ├── component-animations.less
│   │       ├── dropdowns.less
│   │       ├── forms.less
│   │       ├── glyphicons.less
│   │       ├── grid.less
│   │       ├── input-groups.less
│   │       ├── jumbotron.less
│   │       ├── labels.less
│   │       ├── list-group.less
│   │       ├── media.less
│   │       ├── mixins.less
│   │       ├── modals.less
│   │       ├── navbar.less
│   │       ├── navs.less
│   │       ├── normalize.less
│   │       ├── pager.less
│   │       ├── pagination.less
│   │       ├── panels.less
│   │       ├── popovers.less
│   │       ├── print.less
│   │       ├── progress-bars.less
│   │       ├── responsive-utilities.less
│   │       ├── scaffolding.less
│   │       ├── tables.less
│   │       ├── theme.less
│   │       ├── thumbnails.less
│   │       ├── tooltip.less
│   │       ├── type.less
│   │       ├── utilities.less
│   │       ├── variables.less
│   │       └── wells.less
│   ├── expect.js/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── History.md
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── support/
│   │   │   └── jquery.js
│   │   └── test/
│   │       ├── common.js
│   │       ├── expect.js
│   │       └── index.html
│   ├── jquery/
│   │   ├── .bower.json
│   │   ├── MIT-LICENSE.txt
│   │   ├── bower.json
│   │   ├── dist/
│   │   │   └── jquery.js
│   │   └── src/
│   │       ├── ajax/
│   │       │   ├── jsonp.js
│   │       │   ├── load.js
│   │       │   ├── parseJSON.js
│   │       │   ├── parseXML.js
│   │       │   ├── script.js
│   │       │   ├── var/
│   │       │   │   ├── nonce.js
│   │       │   │   └── rquery.js
│   │       │   └── xhr.js
│   │       ├── ajax.js
│   │       ├── attributes/
│   │       │   ├── attr.js
│   │       │   ├── classes.js
│   │       │   ├── prop.js
│   │       │   ├── support.js
│   │       │   └── val.js
│   │       ├── attributes.js
│   │       ├── callbacks.js
│   │       ├── core/
│   │       │   ├── access.js
│   │       │   ├── init.js
│   │       │   ├── parseHTML.js
│   │       │   ├── ready.js
│   │       │   └── var/
│   │       │       └── rsingleTag.js
│   │       ├── core.js
│   │       ├── css/
│   │       │   ├── addGetHookIf.js
│   │       │   ├── curCSS.js
│   │       │   ├── defaultDisplay.js
│   │       │   ├── hiddenVisibleSelectors.js
│   │       │   ├── support.js
│   │       │   ├── swap.js
│   │       │   └── var/
│   │       │       ├── cssExpand.js
│   │       │       ├── getStyles.js
│   │       │       ├── isHidden.js
│   │       │       ├── rmargin.js
│   │       │       └── rnumnonpx.js
│   │       ├── css.js
│   │       ├── data/
│   │       │   ├── Data.js
│   │       │   ├── accepts.js
│   │       │   └── var/
│   │       │       ├── data_priv.js
│   │       │       └── data_user.js
│   │       ├── data.js
│   │       ├── deferred.js
│   │       ├── deprecated.js
│   │       ├── dimensions.js
│   │       ├── effects/
│   │       │   ├── Tween.js
│   │       │   └── animatedSelector.js
│   │       ├── effects.js
│   │       ├── event/
│   │       │   ├── ajax.js
│   │       │   ├── alias.js
│   │       │   └── support.js
│   │       ├── event.js
│   │       ├── exports/
│   │       │   ├── amd.js
│   │       │   └── global.js
│   │       ├── intro.js
│   │       ├── jquery.js
│   │       ├── manipulation/
│   │       │   ├── _evalUrl.js
│   │       │   ├── support.js
│   │       │   └── var/
│   │       │       └── rcheckableType.js
│   │       ├── manipulation.js
│   │       ├── offset.js
│   │       ├── outro.js
│   │       ├── queue/
│   │       │   └── delay.js
│   │       ├── queue.js
│   │       ├── selector-native.js
│   │       ├── selector-sizzle.js
│   │       ├── selector.js
│   │       ├── serialize.js
│   │       ├── sizzle/
│   │       │   └── dist/
│   │       │       └── sizzle.js
│   │       ├── traversing/
│   │       │   ├── findFilter.js
│   │       │   └── var/
│   │       │       └── rneedsContext.js
│   │       ├── traversing.js
│   │       ├── var/
│   │       │   ├── arr.js
│   │       │   ├── class2type.js
│   │       │   ├── concat.js
│   │       │   ├── hasOwn.js
│   │       │   ├── indexOf.js
│   │       │   ├── pnum.js
│   │       │   ├── push.js
│   │       │   ├── rnotwhite.js
│   │       │   ├── slice.js
│   │       │   ├── strundefined.js
│   │       │   ├── support.js
│   │       │   └── toString.js
│   │       └── wrap.js
│   ├── mocha/
│   │   ├── .bower.json
│   │   ├── .editorconfig
│   │   ├── .eslintrc
│   │   ├── .mailmap
│   │   ├── CONTRIBUTING.md
│   │   ├── HISTORY.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── mocha.css
│   │   ├── mocha.js
│   │   └── scripts/
│   │       └── ensure-compatible-npm.sh
│   ├── sinonjs/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   └── sinon.js
│   └── uwidget/
│       ├── .bower.json
│       ├── LICENSE
│       ├── README.md
│       ├── bower.json
│       ├── uwidget.css
│       ├── uwidget.js
│       └── uwidget.less
├── dist/
│   ├── i18n/
│   │   ├── al.js
│   │   ├── ar.js
│   │   ├── bg.js
│   │   ├── ca.js
│   │   ├── cs.extra.js
│   │   ├── cs.js
│   │   ├── cy.js
│   │   ├── da.js
│   │   ├── de.extra.js
│   │   ├── de.js
│   │   ├── el.extra.js
│   │   ├── el.js
│   │   ├── en.extra.js
│   │   ├── en.js
│   │   ├── es.js
│   │   ├── et.js
│   │   ├── eu.js
│   │   ├── fa.js
│   │   ├── fi.extra.js
│   │   ├── fi.js
│   │   ├── fr.extra.js
│   │   ├── fr.js
│   │   ├── he.extra.js
│   │   ├── he.js
│   │   ├── hr.extra.js
│   │   ├── hr.js
│   │   ├── hu.extra.js
│   │   ├── hu.js
│   │   ├── id.extra.js
│   │   ├── id.js
│   │   ├── is.js
│   │   ├── it.extra.js
│   │   ├── it.js
│   │   ├── ja.extra.js
│   │   ├── ja.js
│   │   ├── ko.js
│   │   ├── lt.extra.js
│   │   ├── lt.js
│   │   ├── lv.extra.js
│   │   ├── lv.js
│   │   ├── mk.js
│   │   ├── ms.extra.js
│   │   ├── ms.js
│   │   ├── nl.extra.js
│   │   ├── nl.js
│   │   ├── no.js
│   │   ├── pl.js
│   │   ├── pt-br.js
│   │   ├── pt-pt.js
│   │   ├── ro.extra.js
│   │   ├── ro.js
│   │   ├── ru.extra.js
│   │   ├── ru.js
│   │   ├── sk.extra.js
│   │   ├── sk.js
│   │   ├── sl.extra.js
│   │   ├── sl.js
│   │   ├── sq.js
│   │   ├── sr.extra.js
│   │   ├── sr.js
│   │   ├── sv.extra.js
│   │   ├── sv.js
│   │   ├── ta.js
│   │   ├── th.extra.js
│   │   ├── th.js
│   │   ├── tk.js
│   │   ├── tr.js
│   │   ├── ua.extra.js
│   │   ├── ua.js
│   │   ├── uk.extra.js
│   │   ├── uk.js
│   │   ├── ur.js
│   │   ├── vi.js
│   │   ├── zh_cn.extra.js
│   │   ├── zh_cn.js
│   │   └── zh_tw.js
│   └── parsley.js
├── doc/
│   ├── about.html
│   ├── annotated-source/
│   │   ├── base.html
│   │   ├── constraint.html
│   │   ├── defaults.html
│   │   ├── docco.css
│   │   ├── factory.html
│   │   ├── field.html
│   │   ├── form.html
│   │   ├── main.html
│   │   ├── multiple.html
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── normalize.css
│   │   ├── pubsub.html
│   │   ├── remote.html
│   │   ├── ui.html
│   │   ├── utils.html
│   │   ├── validator.html
│   │   └── validator_registry.html
│   ├── assets/
│   │   ├── docs.css
│   │   ├── docs.js
│   │   ├── docs.less
│   │   ├── example.js
│   │   ├── help.css
│   │   ├── help.less
│   │   └── spec-build.js
│   ├── download.html
│   ├── examples/
│   │   ├── ajax.html
│   │   ├── custom-validator-events.html
│   │   ├── customvalidator.html
│   │   ├── events.html
│   │   ├── multisteps.html
│   │   └── simple.html
│   ├── examples.html
│   ├── help.html
│   ├── index.html
│   └── tests.html
├── gulpfile.babel.js
├── index.html
├── package.json
├── rollup.config.js
├── src/
│   ├── .babelrc
│   ├── extra/
│   │   ├── plugin/
│   │   │   └── bind.js
│   │   └── validator/
│   │       ├── comparison.js
│   │       ├── date.js
│   │       ├── dateiso.js
│   │       ├── luhn.js
│   │       ├── notequalto.js
│   │       └── words.js
│   ├── header.js
│   ├── i18n/
│   │   ├── al.js
│   │   ├── ar.js
│   │   ├── bg.js
│   │   ├── ca.js
│   │   ├── cs.extra.js
│   │   ├── cs.js
│   │   ├── da.js
│   │   ├── de.extra.js
│   │   ├── de.js
│   │   ├── el.extra.js
│   │   ├── el.js
│   │   ├── en.extra.js
│   │   ├── en.js
│   │   ├── es.js
│   │   ├── et.js
│   │   ├── eu.js
│   │   ├── fa.js
│   │   ├── fi.extra.js
│   │   ├── fi.js
│   │   ├── fr.extra.js
│   │   ├── fr.js
│   │   ├── he.extra.js
│   │   ├── he.js
│   │   ├── hr.extra.js
│   │   ├── hr.js
│   │   ├── hu.extra.js
│   │   ├── hu.js
│   │   ├── id.extra.js
│   │   ├── id.js
│   │   ├── is.js
│   │   ├── it.extra.js
│   │   ├── it.js
│   │   ├── ja.extra.js
│   │   ├── ja.js
│   │   ├── ko.js
│   │   ├── lt.extra.js
│   │   ├── lt.js
│   │   ├── lv.extra.js
│   │   ├── lv.js
│   │   ├── mk.js
│   │   ├── ms.extra.js
│   │   ├── ms.js
│   │   ├── nl.extra.js
│   │   ├── nl.js
│   │   ├── no.js
│   │   ├── pl.js
│   │   ├── pt-br.js
│   │   ├── pt-pt.js
│   │   ├── ro.extra.js
│   │   ├── ro.js
│   │   ├── ru.extra.js
│   │   ├── ru.js
│   │   ├── sk.extra.js
│   │   ├── sk.js
│   │   ├── sl.extra.js
│   │   ├── sl.js
│   │   ├── sq.js
│   │   ├── sr.extra.js
│   │   ├── sr.js
│   │   ├── sv.extra.js
│   │   ├── sv.js
│   │   ├── ta.js
│   │   ├── th.extra.js
│   │   ├── th.js
│   │   ├── tk.js
│   │   ├── tr.js
│   │   ├── ua.extra.js
│   │   ├── ua.js
│   │   ├── uk.extra.js
│   │   ├── uk.js
│   │   ├── ur.js
│   │   ├── vi.js
│   │   ├── zh_cn.extra.js
│   │   ├── zh_cn.js
│   │   └── zh_tw.js
│   ├── parsley/
│   │   ├── base.js
│   │   ├── constraint.js
│   │   ├── defaults.js
│   │   ├── factory.js
│   │   ├── field.js
│   │   ├── form.js
│   │   ├── main.js
│   │   ├── multiple.js
│   │   ├── pubsub.js
│   │   ├── remote.js
│   │   ├── ui.js
│   │   ├── utils.js
│   │   ├── validator.js
│   │   └── validator_registry.js
│   ├── parsley.css
│   ├── parsley.js
│   └── vendor/
│       └── inputevent.js
├── test/
│   ├── .eslintrc
│   ├── runner.html
│   ├── setup/
│   │   ├── browser.js
│   │   ├── browser_setup.js
│   │   ├── dom_leak_check.js
│   │   ├── expect_warning.js
│   │   ├── node.js
│   │   ├── node_setup.js
│   │   └── setup.js
│   └── unit/
│       ├── base.js
│       ├── extra/
│       │   ├── bind.js
│       │   ├── comparison.js
│       │   ├── dateiso.js
│       │   └── words.js
│       ├── field.js
│       ├── form.js
│       ├── index.js
│       ├── multiple.js
│       ├── parsley.js
│       ├── pubsub.js
│       ├── remote.js
│       ├── ui.js
│       ├── utils.js
│       ├── validator.js
│       └── validator_registry.js
└── tools/
    ├── mocha_options.js
    └── rollup_options.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .babelrc
================================================
{
  "presets": [
    [
      "@babel/preset-env", {
        "targets": {
          "node": "current"
        }
      }
    ]
  ]
}


================================================
FILE: .editorconfig
================================================
# EditorConfig is awesome: http://EditorConfig.org

root = true;

[*]
#  Ensure there's no lingering whitespace
trim_trailing_whitespace = true
# Ensure a newline at the end of each file
insert_final_newline = true

[*.js]
# Unix-style newlines
end_of_line = lf
charset = utf-8
indent_style = space
indent_size = 2

================================================
FILE: .eslintrc
================================================
{
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module"
  },
  "rules": {},
  "env": {
    "browser": true,
    "node": true
  }
}


================================================
FILE: .github/FUNDING.yml
================================================
github: marcandre


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
What kind of issue is this? (put 'x' between the square brackets)

 - [ ] Question. This issue tracker is not the place for questions. If you want to ask how to do
       something, or to understand why something isn't working the way you expect it to, use
       http://stackoverflow.com/questions/ask .
       Provide working code, starting from http://codepen.io/marcandre/pen/jqbzyN?editors=101.
       We monitor the tag `parsley.js`.

 - [ ] Bug report. If you’ve found a bug, you must provide a minimal example in a CodePen,
       starting from http://codepen.io/marcandre/pen/jqbzyN?editors=101 .

 - [ ] Feature Request. Make sure there's no good way to do what you want first;
       consider asking on http://stackoverflow.com/questions/ask first.




================================================
FILE: .gitignore
================================================
.DS_Store

# Logs
logs
*.log

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directory
node_modules
coverage
tmp

# Users Environment Variables
.lock-wscript

doc/assets/spec-build.js.map


================================================
FILE: .npmignore
================================================
/.github/
/bower_components/
/doc/
/test/

/CONTRIBUTING.md
/gulpfile.babel.js
/CNAME
/yarn.lock
/index.html


================================================
FILE: .travis.yml
================================================
language: node_js
node_js:
  - "8"
sudo: false
script: "gulp test"
env:
  - JQUERY=1.11
  - JQUERY=1.12
  - JQUERY=2.1
  - JQUERY=2.2
  - JQUERY=3.0.0
  - JQUERY=3.1.1
install:
  - npm install --save-dev gulp@>=4
  - npm install --save-dev "rollup@>=0.66.0 <2"
  - npm install
  - npm install jquery@$JQUERY
matrix:
  allow_failures:
    - env: JQUERY=3.0.0-beta1


================================================
FILE: CHANGELOG.md
================================================
# Parsley 2.x changelog

Parsley follows [semver](https://semver.org/). This lists new features only. For bug fixes and small changes, check the commit list.

## 2.9

- Added `euvatin` (European Union Value Added Tax Identification Number) validator.

## 2.8

- Added `refresh` method. Parsley automatically refreshes before validating, but `refresh` is there if one needs to insure that some fields are rebound/unbound, or triggers are updated, etc...

- `Parsley.hasValidator` makes it easy to check if a validator exists or not [#1216]

- `classHandler` now supports global functions, `errorWrapper` too. [#1101]

## 2.7

- Support for Date type (#1158)

## 2.6.1

- Avoid min/max/range validators for date type, until this is actually supported (#1158)

## 2.6.0

- While input with `type="number"` must have a default step of 1, the default for
  `data-parsley-type="number"` has been changed to `'any'` as an hopeless attempt
  to minimize the confusion around this validator. (#1129)

## 2.5.1

- An input with class 'required' will no longer be required; only having an attribute `'required'`
  or `'data-parsley-required'` makes an input being required (#1138)

## 2.5.0

- New option `debounce` to minimize validation (#1103)

## 2.4.2

- `$('...').parsley({someOption: 'value'})` will always set the option `someOptions`. Previously if the field/form was already initialized, options were ignored.

## 2.3.1

- Parsley now relies on `input` events instead of `change` and `keyup` events
  to revalidate after the first failure. This is now customizable with the
  `triggerAfterFailure` option. Triggers specified with the `trigger` option
  are unbound once a field has failed.
- Parsley updates the UI before firing success/error/validated events
- Deprecated uses of ParsleyUI. Methods are now instance methods of ParsleyField,
  with modernized interfaces.

## 2.2.0

- type="number" now follows HTML5 spec. In particular, commas are no longer accepted. (#1037)
- Calls to validate, isValid, whenValidate, whenValid use named arguments
  (e.g. validate({force: true, group: 'foo'})). Previous API is supported for
  isValid/validate but is deprecated.
- Drop support for undocumented option `eventValidate`.

## 2.2.0-rc3

- Merged both versions (remote and basic) of Parsley.
  There is now a single version that is remote & promise aware.
- Converted src/ and test/ to ECMAScript 6.
  Requires es5-shim if you need compatibility with IE8.

## 2.2.0-rc2

- A custom validator may specify an error message by simply passing it as first argument
  when rejecting the promise. (#560)
- Submit buttons: data now included in the submitted form (#826) and
  attribute 'formnovalidate' is supported (#972)
- Remote: use HTTP status code for what is considered valid or not (#956)
- Remote: allow RESTful urls where "{value}" is replaced by the value to validate
- Remote: add field:ajaxoptions to allow customizing of the ajax parameters (#894)
- pattern validator is now anchored, unless it looks like /pattern/flag (#861)
- Parsley won't try to correct names with caps (#990)

## 2.2.0-rc1

- Major validators refactor:
  - Compatible with promises from the ground up. Previous API (e.g. `isValid`)
    remains, but promise-aware API is now recommended (e.g. `whenValid`).
  - New API to define custom validators (old API is still there but deprecated).
  - Shorter code, removed dependency on `validators` lib.
  - The `remote` validator is much smaller now, will probably be merged in the future.

- Deprecated `data-parsley-trim-value` in favour of new `whitespace` API
- Added `whitespace` API with two options: `trim` and `squish`

## 2.1.2

- fix custom triggers after a `reset()` (#926)
- fix documentation and generated dist files

## 2.1.1

- Bug fix for reentrant validations

## 2.1.0

- Event remodel
  - New API `on` and `off` to register for events
  - Global listeners added with `Parsley.on`
  - Using the new API, event names no longer have their ".parsley" ending
  - Compatibility with previous API is maintained, but `$.emit`, `$.listen`,
    etc. are now deprecated  (#899)

- New features
  - New event 'form:submit' fired before a form is submitted.
  - The `value` option can now be a function
  - Parsley.version is now the best way to get the current version
  - Additional translations

- Changes
  - Error containers are created only the first time they are needed.
  - [BC Break] `isValid()` field method now returns just a boolean, `[]` is no
  more returned when field is optional and empty. `needsValidation()` appears
  now to indicate if a valid field needed a validation.

- Bug fixes
  - Speed optimization (#855)
  - Eemote cache now cleared after form submission (#813)
  - Event 'field:reset' now fired if a field is no longer validated (because it
    is excluded, or removed) (#841)
  - Support for validators with compound names by restoring full case
    sensitivity to error messages. (#805)
  - Fix conflict between different forms on the same page (#888)
  - Handles checkbox names containing spaces (#881)
  - Detects name conflicts between validators and regular options
  - Compatible with jQuery.noConflict() (#859)

## 2.0.7

- support of html5 `maxlength` and `minlength` (#731)
- various doc updates
- improved test suite
- various small code simplifications
- updated TLD range for URL validator (#829)

## 2.0.6

- removed buggy special char in remote.js plugin (#755)
- fixed bug where isValid returned old errors on field with no constraints
  anymore (#776)
- fix a lot of tests

## 2.0.5

  - fixed AMD

## 2.0.4

  - added ParsleyField context to asyncValidator callback functions (#702)
  - fixed AMD loading of Validator.js (#691, #693)
  - added extra/words.js validators (#700)
  - added support of multiple groups (#706)

## 2.0.3

  - fix not AMD loading for Wordpress case (#685)

## 2.0.2

  - proper version number in `dist/` files

## 2.0.1

  - fixed "attr.specified is deprecated." console warning (#608)
  - fixed package.json config with main dep (#617)
  - fixed `addValidator()` method
  - added support for `requirementsTransformer` for custom validators
  - updated jQuery needed version from README and doc
  - fixed case when a multiple item were dynamically removed from DOM (#634)
  - added proper `type="range"` support (#668)

## 2.0.0

  - fixed remote re-entering already validated value (#576)
  - added `stopImmediatePropagation()` un `onSubmit()` method to avoid conflicts
    with other libraries (#561)
  - fixed parsleyFieldMultiple behavior that tried to bind non radio or checkbox
    fields as a multiple field (#589)
  - `input[type=hidden]` are now excluded by default (#589)
  - fixed constraints unicity on fields belonging to same multiple group
  - added `data-parsley-remote-validator` feature (#587)
  - now support custom messages placeholders (#602)
  - fix exception when ParsleyField or ParsleyFieldMultiple value is null or
    undefined (#598)
  - fixed `destroy()` method + added test (#555)
  - added requirejs AMD support for `dist/parsley.js` and `dist/parsley.min.js`
    versions (#606)
  - fixed custom namespace -multiple that didn't re-evaluated correctly (#595)
  - added `ParsleyUI.getErrorsMessages()` (Closes #607)

## 2.0.0-rc5

  - totally reworked multiple fields (#542):
    - created a new Class: `ParsleyFieldMultiple`
    - multiple fields returns now same `ParsleyFieldMultiple` instance
  - `dist/parsley+remote.js` and `dist/parsley+remote.min.js` have been renamed
    to `dist/parsley.remote.js` and `dist/parsley.remote.min.js`
  - changed the way `asyncValidate` handle events
  - fix warning if parsley called on a page without elements to validate (#562)
  - fixed `ParsleyUtils.attr()` attribute checking (#564)
  - updated `ParsleyUtils.get()` method. Do not support anymore placeholder
    feature since `ParsleyUtils.get() || placeholder` writing is more readable
  - select and select multiple elements both handle the `parsley-success` and
    `parsley-error` classes directly and not their parent.
  - added pattern flags support (#566, #550)
  - fixed ParsleyFieldMultiple optional fields if not explicitely required
  - fixed ParsleyFieldMultiple trigger
  - fixed select UI auto-bind change on error (#537)
  - fixed `asyncIsValid()` and `asyncValidate()` API to support `force` option

## 2.0.0-rc4

  - fixed js error if wrong data-parsley-errors-container is given
  - fixed js error if `name=""` or `id=""` for parlsey multiple fields (#533)
  - fixed dynamically added fields form inheritance (#532)
  - fixed parsley-remote.js remote validator registration that overrided
    other extra validators.
  - added multiple xhr queries aborting in parsley.remote to avoid unneeded
    server overload with keyup trigger
  - fixed excluded fields option and added some doc for it (#546)
  - fixed `range` validator with `0` value (#543)
  - added `data-parsley-trim-value` option
  - updated validator.js
  - added `this.submitEvent.preventDefault()` support for parsley.remote
    call twice form / field tests with parsley.remote for better support (#552)
  - fixed global leaks shown by test suite
  - new $ Parsley API behavior:
    - returns `undefined` if called on non existing DOM element
      + console warn (#548)
    - returns an array of instances if called on selector with multiple
      elements (#547)
  - fixed `min`, `max`, `range` validators (#556)

## 2.0.0-rc3

  - fixed $ conflict (#525)
  - added `force` validation for `isValid()` and `validate()`
  - added doc events example
  - added doc Help section
  - added `data-parsley-errors-messages-disabled` option

## 2.0.0-rc2

  - added `data-parsley-validate-if-empty` field option (#489)
  - fixed select multiple bug (#522)
  - allowed checkbox, radio and select multiple inputs to have either a `name`
    or an `id` to be binded (instead of just a name)

## 2.0.0-rc1

  - initial 2.x public release


================================================
FILE: CNAME
================================================
parsleyjs.org


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

Hi there.

Thanks for your interest in Parsley and your will to contribute. You're welcome!

First thing: make sure you are using the **latest official release**.

## Questions?

Please ask questions on [StackOverflow](http://stackoverflow.com/questions/ask) and be sure to include the `parsley.js` tag. Please **provide an example**, starting for example from [this jsfiddle](http://jsfiddle.net/marcandre/58vnaqur/)

## Issues?

If you believe you have found a bug in `parsley`, please **provide an example**, starting for example from [this jsfiddle](http://jsfiddle.net/marcandre/58vnaqur/).

This makes it possible for you to be sure you have isolated the issue to a minimal case. It also makes it much easier for us to understand your issue. Sometimes the issue is [completely different than what you would expect](https://github.com/guillaumepotier/Parsley.js/issues/711) and only an actual example can lead to a solution.

## Pull requests?

To run tests locally:

    npm install	          # needed only the very first time!
    gulp test             # runs tests in the console
    # or to run them in the browser:
    gulp test-browser    	# starts a local server
    open test/runner.html # open in your favorite browser

*Note:* Parsley is written in EcmaScript 6.

*Note:* There's currently a test that fails on some system, a beer to you if you can fix that, see https://github.com/guillaumepotier/Parsley.js/issues/1095

**More tips general to any open source projects**

Here are a few simple rules you'll have to follow in order to ease code reviews,
discussions and PR merging.

1) You MUST follow Parsley coding standard. It basically follows
[these popular rules](http://sideeffect.kr/popularconvention#javascript) except that
functions are followed by one space on Parsley. Use two spaces as tabs.

2) You MUST write / update tests for each code contribution you do

3) You MUST commit a passing test-suite

4) You SHOULD write documentation

5) You MUST NOT modify `/dist`. Changes are made only to `/src`, `/test`, etc...

Please, write [commit messages that make
sense](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html),
and [rebase your branch](http://git-scm.com/book/en/Git-Branching-Rebasing)
before submitting your Pull Request.

One may ask you to [squash your
commits](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)
too. This is used to "clean" your Pull Request before merging it (we don't want
commits such as `fix tests`, `fix 2`, `fix 3`, etc.). Good rule of thumb: the test-suite must pass at each commit point.

Also, while creating your Pull Request on GitHub, you MUST write a description
which gives the context and/or explains why you are creating it.

Thank you!


Inspired by http://williamdurand.fr/2013/07/04/on-open-sourcing-libraries/


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2013-2020 Guillaume Potier, Marc-André Lafortune and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: README.md
================================================
# Parsley

[![Build Status](https://travis-ci.org/guillaumepotier/Parsley.js.svg?branch=master)](https://travis-ci.org/guillaumepotier/Parsley.js)

JavaScript form validation, without actually writing a single line of JavaScript!

## Maintenance status

This project is considered stable, no new features are planned.

Minimal maintenance by @marcandre. Good quality PRs fixing bugs will be merged. Enquire before working on new features.

## Version

2.9.2

## Doc

See `index.html` and `doc/`

## Requirements

[jQuery](https://jquery.com/) >= 1.8 (compatible with 2.x and 3.0)
[es5-shim](https://github.com/es-shims/es5-shim) if you want need to support IE8

## Questions?

Please ask questions on [StackOverflow](https://stackoverflow.com/questions/ask) and be sure to include the `parsley.js` tag. Please **provide an example**, starting for example from [this jsfiddle](https://jsfiddle.net/marcandre/58vnaqur/)

## Contributing

See the [`CONTRIBUTING.md` file](https://github.com/guillaumepotier/Parsley.js/blob/master/CONTRIBUTING.md)

## Integrations

Create integration with other framework as a separate Github repo and send a pull request for including here.
Some integrations are

- [CakePHP](https://github.com/Codaxis/parsley-helper)
- [Django](https://github.com/agiliq/django-parsley)
- [Rails](https://github.com/mekishizufu/parsley-rails)
- [OSSCDN by MaxCDN](https://osscdn.com/#/parsleyjs)
- [Drupal](https://www.drupal.org/project/parsley)

## Install dev environment and running tests

First time: install `npm` and:

```
npm install -g gulp
```

then

```
npm install
gulp test
```

## Build `dist/` and `doc/annotated-source`

```
gulp build
```

## Run tests

In the browser: run a server with `gulp test-browser`, then open `test/runner.html`

In the terminal: `gulp test`

## License

Released under the MIT License. See the bundled `LICENSE` file for
details.


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

Latest release

## Reporting a Vulnerability

Contact Marc-André Lafortune (follow link from Github profile or @malafortune on Twitter)


================================================
FILE: UPGRADE-2.0.md
================================================
# UPGRADE FROM 1.x to 2.0

## General

- default namespace is now `data-parsley-` for DOM-API
  (not anymore 1.2.x `parsley-` or 1.1.x `data-`)
- there is only one global `ParsleyValidator` instance. Adding / removing
  validators is not made on `ParsleyForm` or `ParsleyField` instances anymore,
  but directly against `ParsleyValidator`. Same goes for errors messages.


## Options / Configuration

- `options` is now a flat 1 dim depth object.
- These options have been removed:
    - `listeners`
    - `validators`
    - `useHtml5Constraints`
    - `messages`
    - `validateIfUnchanged`
- These options have been renamed:
    - `validationMinlength` into `validationTreshold`
    - `errors.classHandler` into `classHandler`
    - `errors.container` into `errorsContainer`
    - `errors.errorsWrapper` into `errorsWrapper`
    - `errors.errorEleme` into `errorTemplate`


## Validators

  - `required` validator now accepts `false` value and becomes inactive.
  - `rangelength` validator is now renamed as `length`. Same requirements.
  - `rangecheck` validator is now renamed as `check`. Same requirements.
  - `notnull`, `type="urlstrict"`, `type="tel"` have disappeared from built-in
    validators.
  - types `phone`, `urlstrict`, `dateIso` have been removed. They could be
    crafted and submitted by someone in `extra/`


## UI/UX

  - `.parsley-validated` class is not added anymore on bound fields
  - `novalidate` attr is now automatically added to `<form>`
  - `.parsley-error-list` is now `.parsley-errors-list`
  - to customize `type` validator error message, you do not need to add
    the precise type anymore.
    eg: `parsley-type-email-message="msg"` becomes
    `data-parsley-type-message="msg"`


## Javascript

  - `.parsley('method')` API is deprecated. Use .parsley().method() now
    eg: `$('#form').parsley('validate')` is now `$('#form').parsley().validate()`


## Listeners

  - can now be global with `$.listen()` and listen for every Parsley instance
    firing it (the way `ParsleyUI` works)
  - can be Field / Form specific by using `.subscribe()` and `.unsubscribe()`
    on a Parsley instance.


## Misc

  - parsley `remote` validator is shipped now in parsley.remote.js
  - parsley.extend is no more. Instead, extra validators are now placed in a
    dir and can be built with a script into a single file.


================================================
FILE: UPGRADE-2.1.md
================================================
# UPGRADE FROM 2.0.x to 2.1.0

## General

2.1.0 version introduced some minor BC Breaks. Here is the list:

### `isValid()` field methods returns boolean. If you had a test case like this:

```javascript
if ('object' === typeof $('#field').parsley().isValid() && !$('#field').parsley().isValid().length) {
    // field is optional and empty, nor valid, nor invalid
}
```

becomes

```javascript
if ($('#field').parsley().isValid() && !$('#field').parsley().needsValidation()) {
    // field is optional and empty, nor valid, nor invalid
}
```


================================================
FILE: UPGRADE-2.2.md
================================================
# UPGRADE FROM 2.1.x to 2.2.0

## Where's parsley.remote?

Both versions (remote and basic) of Parsley have been merged. There is now a single version that is remote & promise aware, and it is lighter than both of the 2.1.x versions.

## Compatibility

2.2.0 version should be compatible with 2.1.x except that you need to include `es5-shim` if you need compatibility with IE8.

Please check the console for **deprecation notices** and adapt your code accordingly.

Note that `type="number"` now follows HTML5 spec. In particular, commas are no longer accepted. (#1037)

## Source changes

Parsley's source is now in EcmaScript 6.

The `i18n` folder is now part of the `dist` folder.


================================================
FILE: bower.json
================================================
{
  "name": "parsleyjs",
  "ignore": [
    "**/.*",
    "build",
    "test",
    "doc",
    "*.md",
    ".json",
    "*.html",
    "AUTHORS.txt",
    "Gruntfile.js",
    "package.json"
  ],
  "dependencies": {
    "jquery": ">1.8"
  },
  "devDependencies": {
    "expect.js": "*",
    "mocha": "*",
    "bootstrap": "~3.0.3",
    "sinonjs": "~1.7.3",
    "uwidget": "~0.0.1"
  },
  "keywords": [
    "parsley",
    "form",
    "validation",
    "html5",
    "polyfill"
  ],
  "author": {
    "name": "Guillaume Potier",
    "email": "guillaume@wisembly.com",
    "url": "http://guillaumepotier.com/"
  },
  "license": "MIT",
  "main": "dist/parsley.js"
}


================================================
FILE: bower_components/bootstrap/.bower.json
================================================
{
  "name": "bootstrap",
  "version": "3.0.3",
  "main": [
    "./dist/js/bootstrap.js",
    "./dist/css/bootstrap.css",
    "./dist/fonts/glyphicons-halflings-regular.eot",
    "./dist/fonts/glyphicons-halflings-regular.svg",
    "./dist/fonts/glyphicons-halflings-regular.ttf",
    "./dist/fonts/glyphicons-halflings-regular.woff"
  ],
  "ignore": [
    "**/.*",
    "_*",
    "docs-assets",
    "examples",
    "/fonts",
    "js/tests",
    "CNAME",
    "CONTRIBUTING.md",
    "Gruntfile.js",
    "browserstack.json",
    "composer.json",
    "package.json",
    "*.html"
  ],
  "dependencies": {
    "jquery": ">= 1.9.0"
  },
  "homepage": "https://github.com/twbs/bootstrap",
  "_release": "3.0.3",
  "_resolution": {
    "type": "version",
    "tag": "v3.0.3",
    "commit": "6d03173a1aad98e75f7d33e65b411c519176c59a"
  },
  "_source": "git://github.com/twbs/bootstrap.git",
  "_target": "~3.0.3",
  "_originalSource": "bootstrap"
}

================================================
FILE: bower_components/bootstrap/DOCS-LICENSE
================================================
Creative Commons Legal Code

Attribution 3.0 Unported

    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
    LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
    REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
    DAMAGES RESULTING FROM ITS USE.

License

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.

1. Definitions

 a. "Adaptation" means a work based upon the Work, or upon the Work and
    other pre-existing works, such as a translation, adaptation,
    derivative work, arrangement of music or other alterations of a
    literary or artistic work, or phonogram or performance and includes
    cinematographic adaptations or any other form in which the Work may be
    recast, transformed, or adapted including in any form recognizably
    derived from the original, except that a work that constitutes a
    Collection will not be considered an Adaptation for the purpose of
    this License. For the avoidance of doubt, where the Work is a musical
    work, performance or phonogram, the synchronization of the Work in
    timed-relation with a moving image ("synching") will be considered an
    Adaptation for the purpose of this License.
 b. "Collection" means a collection of literary or artistic works, such as
    encyclopedias and anthologies, or performances, phonograms or
    broadcasts, or other works or subject matter other than works listed
    in Section 1(f) below, which, by reason of the selection and
    arrangement of their contents, constitute intellectual creations, in
    which the Work is included in its entirety in unmodified form along
    with one or more other contributions, each constituting separate and
    independent works in themselves, which together are assembled into a
    collective whole. A work that constitutes a Collection will not be
    considered an Adaptation (as defined above) for the purposes of this
    License.
 c. "Distribute" means to make available to the public the original and
    copies of the Work or Adaptation, as appropriate, through sale or
    other transfer of ownership.
 d. "Licensor" means the individual, individuals, entity or entities that
    offer(s) the Work under the terms of this License.
 e. "Original Author" means, in the case of a literary or artistic work,
    the individual, individuals, entity or entities who created the Work
    or if no individual or entity can be identified, the publisher; and in
    addition (i) in the case of a performance the actors, singers,
    musicians, dancers, and other persons who act, sing, deliver, declaim,
    play in, interpret or otherwise perform literary or artistic works or
    expressions of folklore; (ii) in the case of a phonogram the producer
    being the person or legal entity who first fixes the sounds of a
    performance or other sounds; and, (iii) in the case of broadcasts, the
    organization that transmits the broadcast.
 f. "Work" means the literary and/or artistic work offered under the terms
    of this License including without limitation any production in the
    literary, scientific and artistic domain, whatever may be the mode or
    form of its expression including digital form, such as a book,
    pamphlet and other writing; a lecture, address, sermon or other work
    of the same nature; a dramatic or dramatico-musical work; a
    choreographic work or entertainment in dumb show; a musical
    composition with or without words; a cinematographic work to which are
    assimilated works expressed by a process analogous to cinematography;
    a work of drawing, painting, architecture, sculpture, engraving or
    lithography; a photographic work to which are assimilated works
    expressed by a process analogous to photography; a work of applied
    art; an illustration, map, plan, sketch or three-dimensional work
    relative to geography, topography, architecture or science; a
    performance; a broadcast; a phonogram; a compilation of data to the
    extent it is protected as a copyrightable work; or a work performed by
    a variety or circus performer to the extent it is not otherwise
    considered a literary or artistic work.
 g. "You" means an individual or entity exercising rights under this
    License who has not previously violated the terms of this License with
    respect to the Work, or who has received express permission from the
    Licensor to exercise rights under this License despite a previous
    violation.
 h. "Publicly Perform" means to perform public recitations of the Work and
    to communicate to the public those public recitations, by any means or
    process, including by wire or wireless means or public digital
    performances; to make available to the public Works in such a way that
    members of the public may access these Works from a place and at a
    place individually chosen by them; to perform the Work to the public
    by any means or process and the communication to the public of the
    performances of the Work, including by public digital performance; to
    broadcast and rebroadcast the Work by any means including signs,
    sounds or images.
 i. "Reproduce" means to make copies of the Work by any means including
    without limitation by sound or visual recordings and the right of
    fixation and reproducing fixations of the Work, including storage of a
    protected performance or phonogram in digital form or other electronic
    medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:

 a. to Reproduce the Work, to incorporate the Work into one or more
    Collections, and to Reproduce the Work as incorporated in the
    Collections;
 b. to create and Reproduce Adaptations provided that any such Adaptation,
    including any translation in any medium, takes reasonable steps to
    clearly label, demarcate or otherwise identify that changes were made
    to the original Work. For example, a translation could be marked "The
    original work was translated from English to Spanish," or a
    modification could indicate "The original work has been modified.";
 c. to Distribute and Publicly Perform the Work including as incorporated
    in Collections; and,
 d. to Distribute and Publicly Perform Adaptations.
 e. For the avoidance of doubt:

     i. Non-waivable Compulsory License Schemes. In those jurisdictions in
        which the right to collect royalties through any statutory or
        compulsory licensing scheme cannot be waived, the Licensor
        reserves the exclusive right to collect such royalties for any
        exercise by You of the rights granted under this License;
    ii. Waivable Compulsory License Schemes. In those jurisdictions in
        which the right to collect royalties through any statutory or
        compulsory licensing scheme can be waived, the Licensor waives the
        exclusive right to collect such royalties for any exercise by You
        of the rights granted under this License; and,
   iii. Voluntary License Schemes. The Licensor waives the right to
        collect royalties, whether individually or, in the event that the
        Licensor is a member of a collecting society that administers
        voluntary licensing schemes, via that society, from any exercise
        by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:

 a. You may Distribute or Publicly Perform the Work only under the terms
    of this License. You must include a copy of, or the Uniform Resource
    Identifier (URI) for, this License with every copy of the Work You
    Distribute or Publicly Perform. You may not offer or impose any terms
    on the Work that restrict the terms of this License or the ability of
    the recipient of the Work to exercise the rights granted to that
    recipient under the terms of the License. You may not sublicense the
    Work. You must keep intact all notices that refer to this License and
    to the disclaimer of warranties with every copy of the Work You
    Distribute or Publicly Perform. When You Distribute or Publicly
    Perform the Work, You may not impose any effective technological
    measures on the Work that restrict the ability of a recipient of the
    Work from You to exercise the rights granted to that recipient under
    the terms of the License. This Section 4(a) applies to the Work as
    incorporated in a Collection, but this does not require the Collection
    apart from the Work itself to be made subject to the terms of this
    License. If You create a Collection, upon notice from any Licensor You
    must, to the extent practicable, remove from the Collection any credit
    as required by Section 4(b), as requested. If You create an
    Adaptation, upon notice from any Licensor You must, to the extent
    practicable, remove from the Adaptation any credit as required by
    Section 4(b), as requested.
 b. If You Distribute, or Publicly Perform the Work or any Adaptations or
    Collections, You must, unless a request has been made pursuant to
    Section 4(a), keep intact all copyright notices for the Work and
    provide, reasonable to the medium or means You are utilizing: (i) the
    name of the Original Author (or pseudonym, if applicable) if supplied,
    and/or if the Original Author and/or Licensor designate another party
    or parties (e.g., a sponsor institute, publishing entity, journal) for
    attribution ("Attribution Parties") in Licensor's copyright notice,
    terms of service or by other reasonable means, the name of such party
    or parties; (ii) the title of the Work if supplied; (iii) to the
    extent reasonably practicable, the URI, if any, that Licensor
    specifies to be associated with the Work, unless such URI does not
    refer to the copyright notice or licensing information for the Work;
    and (iv) , consistent with Section 3(b), in the case of an Adaptation,
    a credit identifying the use of the Work in the Adaptation (e.g.,
    "French translation of the Work by Original Author," or "Screenplay
    based on original Work by Original Author"). The credit required by
    this Section 4 (b) may be implemented in any reasonable manner;
    provided, however, that in the case of a Adaptation or Collection, at
    a minimum such credit will appear, if a credit for all contributing
    authors of the Adaptation or Collection appears, then as part of these
    credits and in a manner at least as prominent as the credits for the
    other contributing authors. For the avoidance of doubt, You may only
    use the credit required by this Section for the purpose of attribution
    in the manner set out above and, by exercising Your rights under this
    License, You may not implicitly or explicitly assert or imply any
    connection with, sponsorship or endorsement by the Original Author,
    Licensor and/or Attribution Parties, as appropriate, of You or Your
    use of the Work, without the separate, express prior written
    permission of the Original Author, Licensor and/or Attribution
    Parties.
 c. Except as otherwise agreed in writing by the Licensor or as may be
    otherwise permitted by applicable law, if You Reproduce, Distribute or
    Publicly Perform the Work either by itself or as part of any
    Adaptations or Collections, You must not distort, mutilate, modify or
    take other derogatory action in relation to the Work which would be
    prejudicial to the Original Author's honor or reputation. Licensor
    agrees that in those jurisdictions (e.g. Japan), in which any exercise
    of the right granted in Section 3(b) of this License (the right to
    make Adaptations) would be deemed to be a distortion, mutilation,
    modification or other derogatory action prejudicial to the Original
    Author's honor and reputation, the Licensor will waive or not assert,
    as appropriate, this Section, to the fullest extent permitted by the
    applicable national law, to enable You to reasonably exercise Your
    right under Section 3(b) of this License (right to make Adaptations)
    but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

 a. This License and the rights granted hereunder will terminate
    automatically upon any breach by You of the terms of this License.
    Individuals or entities who have received Adaptations or Collections
    from You under this License, however, will not have their licenses
    terminated provided such individuals or entities remain in full
    compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
    survive any termination of this License.
 b. Subject to the above terms and conditions, the license granted here is
    perpetual (for the duration of the applicable copyright in the Work).
    Notwithstanding the above, Licensor reserves the right to release the
    Work under different license terms or to stop distributing the Work at
    any time; provided, however that any such election will not serve to
    withdraw this License (or any other license that has been, or is
    required to be, granted under the terms of this License), and this
    License will continue in full force and effect unless terminated as
    stated above.

8. Miscellaneous

 a. Each time You Distribute or Publicly Perform the Work or a Collection,
    the Licensor offers to the recipient a license to the Work on the same
    terms and conditions as the license granted to You under this License.
 b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
    offers to the recipient a license to the original Work on the same
    terms and conditions as the license granted to You under this License.
 c. If any provision of this License is invalid or unenforceable under
    applicable law, it shall not affect the validity or enforceability of
    the remainder of the terms of this License, and without further action
    by the parties to this agreement, such provision shall be reformed to
    the minimum extent necessary to make such provision valid and
    enforceable.
 d. No term or provision of this License shall be deemed waived and no
    breach consented to unless such waiver or consent shall be in writing
    and signed by the party to be charged with such waiver or consent.
 e. This License constitutes the entire agreement between the parties with
    respect to the Work licensed here. There are no understandings,
    agreements or representations with respect to the Work not specified
    here. Licensor shall not be bound by any additional provisions that
    may appear in any communication from You. This License may not be
    modified without the mutual written agreement of the Licensor and You.
 f. The rights granted under, and the subject matter referenced, in this
    License were drafted utilizing the terminology of the Berne Convention
    for the Protection of Literary and Artistic Works (as amended on
    September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
    Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
    and the Universal Copyright Convention (as revised on July 24, 1971).
    These rights and subject matter take effect in the relevant
    jurisdiction in which the License terms are sought to be enforced
    according to the corresponding provisions of the implementation of
    those treaty provisions in the applicable national law. If the
    standard suite of rights granted under applicable copyright law
    includes additional rights not granted under this License, such
    additional rights are deemed to be included in the License; this
    License is not intended to restrict the license of any rights under
    applicable law.


Creative Commons Notice

    Creative Commons is not a party to this License, and makes no warranty
    whatsoever in connection with the Work. Creative Commons will not be
    liable to You or any party on any legal theory for any damages
    whatsoever, including without limitation any general, special,
    incidental or consequential damages arising in connection to this
    license. Notwithstanding the foregoing two (2) sentences, if Creative
    Commons has expressly identified itself as the Licensor hereunder, it
    shall have all rights and obligations of Licensor.

    Except for the limited purpose of indicating to the public that the
    Work is licensed under the CCPL, Creative Commons does not authorize
    the use by either party of the trademark "Creative Commons" or any
    related trademark or logo of Creative Commons without the prior
    written consent of Creative Commons. Any permitted use will be in
    compliance with Creative Commons' then-current trademark usage
    guidelines, as may be published on its website or otherwise made
    available upon request from time to time. For the avoidance of doubt,
    this trademark restriction does not form part of this License.

    Creative Commons may be contacted at http://creativecommons.org/.


================================================
FILE: bower_components/bootstrap/LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS


================================================
FILE: bower_components/bootstrap/LICENSE-MIT
================================================
The MIT License (MIT)

Copyright (c) 2013 Twitter, Inc

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: bower_components/bootstrap/README.md
================================================
# [Bootstrap](http://getbootstrap.com) [![Build Status](https://secure.travis-ci.org/twbs/bootstrap.png)](http://travis-ci.org/twbs/bootstrap) [![devDependency Status](https://david-dm.org/twbs/bootstrap/dev-status.png)](https://david-dm.org/twbs/bootstrap#info=devDependencies)
[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)

Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).

To get started, check out <http://getbootstrap.com>!



## Quick start

Three quick start options are available:

* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.0.3.zip).
* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
* Install with [Bower](http://bower.io): `bower install bootstrap`.

Read the [Getting Started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.

### What's included

Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this:

```
bootstrap/
├── css/
│   ├── bootstrap.css
│   ├── bootstrap.min.css
│   ├── bootstrap-theme.css
│   └── bootstrap-theme.min.css
├── js/
│   ├── bootstrap.js
│   └── bootstrap.min.js
└── fonts/
    ├── glyphicons-halflings-regular.eot
    ├── glyphicons-halflings-regular.svg
    ├── glyphicons-halflings-regular.ttf
    └── glyphicons-halflings-regular.woff
```

We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). Fonts from Glyphicons are included, as is the optional Bootstrap theme.



## Bugs and feature requests

Have a bug or a feature request? [Please open a new issue](https://github.com/twbs/bootstrap/issues). Before opening any issue, please search for existing issues and read the [Issue Guidelines](https://github.com/necolas/issue-guidelines), written by [Nicolas Gallagher](https://github.com/necolas/).

You may use [this JS Bin](http://jsbin.com/aKiCIDO/1/edit) as a template for your bug reports.



## Documentation

Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at <http://getbootstrap.com>. The docs may also be run locally.

### Running documentation locally

1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v1.x).
2. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
  - **Windows users:** run `chcp 65001` first to change the command prompt's character encoding ([code page](http://en.wikipedia.org/wiki/Windows_code_page)) to UTF-8 so Jekyll runs without errors.
3. Open <http://localhost:9001> in your browser, and voilà.

Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).

### Documentation for previous releases

Documentation for v2.3.2 has been made available for the time being at <http://getbootstrap.com/2.3.2/> while folks transition to Bootstrap 3.

[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download.



## Compiling CSS and JavaScript

Bootstrap uses [Grunt](http://gruntjs.com/) with convenient methods for working with the framework. It's how we compile our code, run tests, and more. To use it, install the required dependencies as directed and then run some Grunt commands.

### Install Grunt

From the command line:

1. Install `grunt-cli` globally with `npm install -g grunt-cli`.
2. Navigate to the root `/bootstrap` directory, then run `npm install`. npm will look at [package.json](package.json) and automatically install the necessary local dependencies listed there.

When completed, you'll be able to run the various Grunt commands provided from the command line.

**Unfamiliar with `npm`? Don't have node installed?** That's a-okay. npm stands for [node packaged modules](http://npmjs.org/) and is a way to manage development dependencies through node.js. [Download and install node.js](http://nodejs.org/download/) before proceeding.

### Available Grunt commands

#### Build - `grunt`
Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Uses [recess](http://twitter.github.io/recess/) and [UglifyJS](http://lisperator.net/uglifyjs/).**

#### Only compile CSS and JavaScript - `grunt dist`
`grunt dist` creates the `/dist` directory with compiled files. **Uses [recess](http://twitter.github.io/recess/) and [UglifyJS](http://lisperator.net/uglifyjs/).**

#### Tests - `grunt test`
Runs [JSHint](http://jshint.com) and [QUnit](http://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/) (used for CI).

#### Watch - `grunt watch`
This is a convenience method for watching just Less files and automatically building them whenever you save.

### Troubleshooting dependencies

Should you encounter problems with installing dependencies or running Grunt commands, uninstall all previous dependency versions (global and local). Then, rerun `npm install`.



## Contributing

Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.

More over, if your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](http://github.com/mdo/code-guide), maintained by [Mark Otto](http://github.com/mdo).

Editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.

With v3.1, we're moving from the Apache 2 to the MIT license for the Bootstrap code (not the docs). Please see the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) for more information.


## Community

Keep track of development and community news.

* Follow [@twbootstrap on Twitter](http://twitter.com/twbootstrap).
* Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com).
* Have a question that's not a feature request or bug report? [Ask on the mailing list.](http://groups.google.com/group/twitter-bootstrap)
* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##twitter-bootstrap` channel.




## Versioning

For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the following format:

`<major>.<minor>.<patch>`

And constructed with the following guidelines:

* Breaking backward compatibility bumps the major (and resets the minor and patch)
* New additions without breaking backward compatibility bumps the minor (and resets the patch)
* Bug fixes and misc changes bumps the patch

For more information on SemVer, please visit <http://semver.org/>.



## Authors

**Mark Otto**

+ <http://twitter.com/mdo>
+ <http://github.com/mdo>

**Jacob Thornton**

+ <http://twitter.com/fat>
+ <http://github.com/fat>



## Copyright and license

Copyright 2013 Twitter, Inc under [the Apache 2.0 license](LICENSE).


================================================
FILE: bower_components/bootstrap/bower.json
================================================
{
  "name": "bootstrap",
  "version": "3.0.3",
  "main": [
    "./dist/js/bootstrap.js", 
    "./dist/css/bootstrap.css", 
    "./dist/fonts/glyphicons-halflings-regular.eot",
    "./dist/fonts/glyphicons-halflings-regular.svg",
    "./dist/fonts/glyphicons-halflings-regular.ttf",
    "./dist/fonts/glyphicons-halflings-regular.woff"
  ],
  "ignore": [
    "**/.*",
    "_*",
    "docs-assets",
    "examples",
    "/fonts",
    "js/tests",
    "CNAME",
    "CONTRIBUTING.md",
    "Gruntfile.js",
    "browserstack.json",
    "composer.json",
    "package.json",
    "*.html"
  ],
  "dependencies": {
    "jquery": ">= 1.9.0"
  }
}


================================================
FILE: bower_components/bootstrap/dist/css/bootstrap-theme.css
================================================
/*!
 * Bootstrap v3.0.3 (http://getbootstrap.com)
 * Copyright 2013 Twitter, Inc.
 * Licensed under http://www.apache.org/licenses/LICENSE-2.0
 */

.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
}

.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}

.btn:active,
.btn.active {
  background-image: none;
}

.btn-default {
  text-shadow: 0 1px 0 #fff;
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
  background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
  background-repeat: repeat-x;
  border-color: #dbdbdb;
  border-color: #ccc;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-default:hover,
.btn-default:focus {
  background-color: #e0e0e0;
  background-position: 0 -15px;
}

.btn-default:active,
.btn-default.active {
  background-color: #e0e0e0;
  border-color: #dbdbdb;
}

.btn-primary {
  background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
  background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
  background-repeat: repeat-x;
  border-color: #2b669a;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #2d6ca2;
  background-position: 0 -15px;
}

.btn-primary:active,
.btn-primary.active {
  background-color: #2d6ca2;
  border-color: #2b669a;
}

.btn-success {
  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
  background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
  background-repeat: repeat-x;
  border-color: #3e8f3e;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-success:hover,
.btn-success:focus {
  background-color: #419641;
  background-position: 0 -15px;
}

.btn-success:active,
.btn-success.active {
  background-color: #419641;
  border-color: #3e8f3e;
}

.btn-warning {
  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
  background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
  background-repeat: repeat-x;
  border-color: #e38d13;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-warning:hover,
.btn-warning:focus {
  background-color: #eb9316;
  background-position: 0 -15px;
}

.btn-warning:active,
.btn-warning.active {
  background-color: #eb9316;
  border-color: #e38d13;
}

.btn-danger {
  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
  background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
  background-repeat: repeat-x;
  border-color: #b92c28;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-danger:hover,
.btn-danger:focus {
  background-color: #c12e2a;
  background-position: 0 -15px;
}

.btn-danger:active,
.btn-danger.active {
  background-color: #c12e2a;
  border-color: #b92c28;
}

.btn-info {
  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
  background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
  background-repeat: repeat-x;
  border-color: #28a4c9;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.btn-info:hover,
.btn-info:focus {
  background-color: #2aabd2;
  background-position: 0 -15px;
}

.btn-info:active,
.btn-info.active {
  background-color: #2aabd2;
  border-color: #28a4c9;
}

.thumbnail,
.img-thumbnail {
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  background-color: #e8e8e8;
  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
}

.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  background-color: #357ebd;
  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
}

.navbar-default {
  background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
  background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
  background-repeat: repeat-x;
  border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
}

.navbar-default .navbar-nav > .active > a {
  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
  background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
}

.navbar-brand,
.navbar-nav > li > a {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
}

.navbar-inverse {
  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
  background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.navbar-inverse .navbar-nav > .active > a {
  background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
  background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
          box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
}

.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}

.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
  border-radius: 0;
}

.alert {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.alert-success {
  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
  background-repeat: repeat-x;
  border-color: #b2dba1;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
}

.alert-info {
  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
  background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
  background-repeat: repeat-x;
  border-color: #9acfea;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
}

.alert-warning {
  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
  background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
  background-repeat: repeat-x;
  border-color: #f5e79e;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
}

.alert-danger {
  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
  background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
  background-repeat: repeat-x;
  border-color: #dca7a7;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
}

.progress {
  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
  background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
}

.progress-bar {
  background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
  background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
}

.progress-bar-success {
  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
  background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
}

.progress-bar-info {
  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
  background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
}

.progress-bar-warning {
  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
  background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
}

.progress-bar-danger {
  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
  background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
}

.list-group {
  border-radius: 4px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}

.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  text-shadow: 0 -1px 0 #3071a9;
  background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
  background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
  background-repeat: repeat-x;
  border-color: #3278b3;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
}

.panel {
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.panel-default > .panel-heading {
  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
}

.panel-primary > .panel-heading {
  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
  background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
}

.panel-success > .panel-heading {
  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
  background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
}

.panel-info > .panel-heading {
  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
  background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
}

.panel-warning > .panel-heading {
  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
  background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
}

.panel-danger > .panel-heading {
  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
  background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
}

.well {
  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
  background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
  background-repeat: repeat-x;
  border-color: #dcdcdc;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
}

================================================
FILE: bower_components/bootstrap/dist/css/bootstrap.css
================================================
/*!
 * Bootstrap v3.0.3 (http://getbootstrap.com)
 * Copyright 2013 Twitter, Inc.
 * Licensed under http://www.apache.org/licenses/LICENSE-2.0
 */

/*! normalize.css v2.1.3 | MIT License | git.io/normalize */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
video {
  display: inline-block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none;
}

html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}

body {
  margin: 0;
}

a {
  background: transparent;
}

a:focus {
  outline: thin dotted;
}

a:active,
a:hover {
  outline: 0;
}

h1 {
  margin: 0.67em 0;
  font-size: 2em;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

hr {
  height: 0;
  -moz-box-sizing: content-box;
       box-sizing: content-box;
}

mark {
  color: #000;
  background: #ff0;
}

code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em;
}

pre {
  white-space: pre-wrap;
}

q {
  quotes: "\201C" "\201D" "\2018" "\2019";
}

small {
  font-size: 80%;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
  margin: 0;
}

fieldset {
  padding: 0.35em 0.625em 0.75em;
  margin: 0 2px;
  border: 1px solid #c0c0c0;
}

legend {
  padding: 0;
  border: 0;
}

button,
input,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: 100%;
}

button,
input {
  line-height: normal;
}

button,
select {
  text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

input[type="checkbox"],
input[type="radio"] {
  padding: 0;
  box-sizing: border-box;
}

input[type="search"] {
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
          box-sizing: content-box;
  -webkit-appearance: textfield;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}

textarea {
  overflow: auto;
  vertical-align: top;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

@media print {
  * {
    color: #000 !important;
    text-shadow: none !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="javascript:"]:after,
  a[href^="#"]: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;
  }
  @page  {
    margin: 2cm .5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  select {
    background: #fff !important;
  }
  .navbar {
    display: none;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

html {
  font-size: 62.5%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.428571429;
  color: #333333;
  background-color: #ffffff;
}

input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

a {
  color: #428bca;
  text-decoration: none;
}

a:hover,
a:focus {
  color: #2a6496;
  text-decoration: underline;
}

a:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

img {
  vertical-align: middle;
}

.img-responsive {
  display: block;
  height: auto;
  max-width: 100%;
}

.img-rounded {
  border-radius: 6px;
}

.img-thumbnail {
  display: inline-block;
  height: auto;
  max-width: 100%;
  padding: 4px;
  line-height: 1.428571429;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 4px;
  -webkit-transition: all 0.2s ease-in-out;
          transition: all 0.2s ease-in-out;
}

.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;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  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: #999999;
}

h1,
h2,
h3 {
  margin-top: 20px;
  margin-bottom: 10px;
}

h1 small,
h2 small,
h3 small,
h1 .small,
h2 .small,
h3 .small {
  font-size: 65%;
}

h4,
h5,
h6 {
  margin-top: 10px;
  margin-bottom: 10px;
}

h4 small,
h5 small,
h6 small,
h4 .small,
h5 .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: 200;
  line-height: 1.4;
}

@media (min-width: 768px) {
  .lead {
    font-size: 21px;
  }
}

small,
.small {
  font-size: 85%;
}

cite {
  font-style: normal;
}

.text-muted {
  color: #999999;
}

.text-primary {
  color: #428bca;
}

.text-primary:hover {
  color: #3071a9;
}

.text-warning {
  color: #8a6d3b;
}

.text-warning:hover {
  color: #66512c;
}

.text-danger {
  color: #a94442;
}

.text-danger:hover {
  color: #843534;
}

.text-success {
  color: #3c763d;
}

.text-success:hover {
  color: #2b542c;
}

.text-info {
  color: #31708f;
}

.text-info:hover {
  color: #245269;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-center {
  text-align: center;
}

.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;
}

.list-inline > li {
  display: inline-block;
  padding-right: 5px;
  padding-left: 5px;
}

.list-inline > li:first-child {
  padding-left: 0;
}

dl {
  margin-top: 0;
  margin-bottom: 20px;
}

dt,
dd {
  line-height: 1.428571429;
}

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

@media (min-width: 768px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    overflow: hidden;
    clear: left;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
  .dl-horizontal dd:before,
  .dl-horizontal dd:after {
    display: table;
    content: " ";
  }
  .dl-horizontal dd:after {
    clear: both;
  }
  .dl-horizontal dd:before,
  .dl-horizontal dd:after {
    display: table;
    content: " ";
  }
  .dl-horizontal dd:after {
    clear: both;
  }
}

abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #999999;
}

.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

blockquote {
  padding: 10px 20px;
  margin: 0 0 20px;
  border-left: 5px solid #eeeeee;
}

blockquote p {
  font-size: 17.5px;
  font-weight: 300;
  line-height: 1.25;
}

blockquote p:last-child {
  margin-bottom: 0;
}

blockquote small,
blockquote .small {
  display: block;
  line-height: 1.428571429;
  color: #999999;
}

blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}

blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
}

blockquote.pull-right p,
blockquote.pull-right small,
blockquote.pull-right .small {
  text-align: right;
}

blockquote.pull-right small:before,
blockquote.pull-right .small:before {
  content: '';
}

blockquote.pull-right small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}

blockquote:before,
blockquote:after {
  content: "";
}

address {
  margin-bottom: 20px;
  font-style: normal;
  line-height: 1.428571429;
}

code,
kbd,
pre,
samp {
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}

code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  white-space: nowrap;
  background-color: #f9f2f4;
  border-radius: 4px;
}

pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.428571429;
  color: #333333;
  word-break: break-all;
  word-wrap: break-word;
  background-color: #f5f5f5;
  border: 1px solid #cccccc;
  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 {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

.container:before,
.container:after {
  display: table;
  content: " ";
}

.container:after {
  clear: both;
}

.container:before,
.container:after {
  display: table;
  content: " ";
}

.container:after {
  clear: both;
}

@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}

@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}

@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}

.row {
  margin-right: -15px;
  margin-left: -15px;
}

.row:before,
.row:after {
  display: table;
  content: " ";
}

.row:after {
  clear: both;
}

.row:before,
.row:after {
  display: table;
  content: " ";
}

.row:after {
  clear: both;
}

.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-right: 15px;
  padding-left: 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.66666666666666%;
}

.col-xs-10 {
  width: 83.33333333333334%;
}

.col-xs-9 {
  width: 75%;
}

.col-xs-8 {
  width: 66.66666666666666%;
}

.col-xs-7 {
  width: 58.333333333333336%;
}

.col-xs-6 {
  width: 50%;
}

.col-xs-5 {
  width: 41.66666666666667%;
}

.col-xs-4 {
  width: 33.33333333333333%;
}

.col-xs-3 {
  width: 25%;
}

.col-xs-2 {
  width: 16.666666666666664%;
}

.col-xs-1 {
  width: 8.333333333333332%;
}

.col-xs-pull-12 {
  right: 100%;
}

.col-xs-pull-11 {
  right: 91.66666666666666%;
}

.col-xs-pull-10 {
  right: 83.33333333333334%;
}

.col-xs-pull-9 {
  right: 75%;
}

.col-xs-pull-8 {
  right: 66.66666666666666%;
}

.col-xs-pull-7 {
  right: 58.333333333333336%;
}

.col-xs-pull-6 {
  right: 50%;
}

.col-xs-pull-5 {
  right: 41.66666666666667%;
}

.col-xs-pull-4 {
  right: 33.33333333333333%;
}

.col-xs-pull-3 {
  right: 25%;
}

.col-xs-pull-2 {
  right: 16.666666666666664%;
}

.col-xs-pull-1 {
  right: 8.333333333333332%;
}

.col-xs-pull-0 {
  right: 0;
}

.col-xs-push-12 {
  left: 100%;
}

.col-xs-push-11 {
  left: 91.66666666666666%;
}

.col-xs-push-10 {
  left: 83.33333333333334%;
}

.col-xs-push-9 {
  left: 75%;
}

.col-xs-push-8 {
  left: 66.66666666666666%;
}

.col-xs-push-7 {
  left: 58.333333333333336%;
}

.col-xs-push-6 {
  left: 50%;
}

.col-xs-push-5 {
  left: 41.66666666666667%;
}

.col-xs-push-4 {
  left: 33.33333333333333%;
}

.col-xs-push-3 {
  left: 25%;
}

.col-xs-push-2 {
  left: 16.666666666666664%;
}

.col-xs-push-1 {
  left: 8.333333333333332%;
}

.col-xs-push-0 {
  left: 0;
}

.col-xs-offset-12 {
  margin-left: 100%;
}

.col-xs-offset-11 {
  margin-left: 91.66666666666666%;
}

.col-xs-offset-10 {
  margin-left: 83.33333333333334%;
}

.col-xs-offset-9 {
  margin-left: 75%;
}

.col-xs-offset-8 {
  margin-left: 66.66666666666666%;
}

.col-xs-offset-7 {
  margin-left: 58.333333333333336%;
}

.col-xs-offset-6 {
  margin-left: 50%;
}

.col-xs-offset-5 {
  margin-left: 41.66666666666667%;
}

.col-xs-offset-4 {
  margin-left: 33.33333333333333%;
}

.col-xs-offset-3 {
  margin-left: 25%;
}

.col-xs-offset-2 {
  margin-left: 16.666666666666664%;
}

.col-xs-offset-1 {
  margin-left: 8.333333333333332%;
}

.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.66666666666666%;
  }
  .col-sm-10 {
    width: 83.33333333333334%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666666666666%;
  }
  .col-sm-7 {
    width: 58.333333333333336%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666666666667%;
  }
  .col-sm-4 {
    width: 33.33333333333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.666666666666664%;
  }
  .col-sm-1 {
    width: 8.333333333333332%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666666666666%;
  }
  .col-sm-pull-10 {
    right: 83.33333333333334%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666666666666%;
  }
  .col-sm-pull-7 {
    right: 58.333333333333336%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666666666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.666666666666664%;
  }
  .col-sm-pull-1 {
    right: 8.333333333333332%;
  }
  .col-sm-pull-0 {
    right: 0;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666666666666%;
  }
  .col-sm-push-10 {
    left: 83.33333333333334%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666666666666%;
  }
  .col-sm-push-7 {
    left: 58.333333333333336%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666666666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.666666666666664%;
  }
  .col-sm-push-1 {
    left: 8.333333333333332%;
  }
  .col-sm-push-0 {
    left: 0;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666666666666%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333333334%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666666666666%;
  }
  .col-sm-offset-7 {
    margin-left: 58.333333333333336%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666666666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.666666666666664%;
  }
  .col-sm-offset-1 {
    margin-left: 8.333333333333332%;
  }
  .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.66666666666666%;
  }
  .col-md-10 {
    width: 83.33333333333334%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666666666666%;
  }
  .col-md-7 {
    width: 58.333333333333336%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666666666667%;
  }
  .col-md-4 {
    width: 33.33333333333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.666666666666664%;
  }
  .col-md-1 {
    width: 8.333333333333332%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666666666666%;
  }
  .col-md-pull-10 {
    right: 83.33333333333334%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666666666666%;
  }
  .col-md-pull-7 {
    right: 58.333333333333336%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666666666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.666666666666664%;
  }
  .col-md-pull-1 {
    right: 8.333333333333332%;
  }
  .col-md-pull-0 {
    right: 0;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666666666666%;
  }
  .col-md-push-10 {
    left: 83.33333333333334%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666666666666%;
  }
  .col-md-push-7 {
    left: 58.333333333333336%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666666666667%;
  }
  .col-md-push-4 {
    left: 33.33333333333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.666666666666664%;
  }
  .col-md-push-1 {
    left: 8.333333333333332%;
  }
  .col-md-push-0 {
    left: 0;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666666666666%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333333334%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666666666666%;
  }
  .col-md-offset-7 {
    margin-left: 58.333333333333336%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666666666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.666666666666664%;
  }
  .col-md-offset-1 {
    margin-left: 8.333333333333332%;
  }
  .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.66666666666666%;
  }
  .col-lg-10 {
    width: 83.33333333333334%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666666666666%;
  }
  .col-lg-7 {
    width: 58.333333333333336%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666666666667%;
  }
  .col-lg-4 {
    width: 33.33333333333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.666666666666664%;
  }
  .col-lg-1 {
    width: 8.333333333333332%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666666666666%;
  }
  .col-lg-pull-10 {
    right: 83.33333333333334%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666666666666%;
  }
  .col-lg-pull-7 {
    right: 58.333333333333336%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666666666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.666666666666664%;
  }
  .col-lg-pull-1 {
    right: 8.333333333333332%;
  }
  .col-lg-pull-0 {
    right: 0;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666666666666%;
  }
  .col-lg-push-10 {
    left: 83.33333333333334%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666666666666%;
  }
  .col-lg-push-7 {
    left: 58.333333333333336%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666666666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.666666666666664%;
  }
  .col-lg-push-1 {
    left: 8.333333333333332%;
  }
  .col-lg-push-0 {
    left: 0;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666666666666%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333333334%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666666666666%;
  }
  .col-lg-offset-7 {
    margin-left: 58.333333333333336%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666666666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.666666666666664%;
  }
  .col-lg-offset-1 {
    margin-left: 8.333333333333332%;
  }
  .col-lg-offset-0 {
    margin-left: 0;
  }
}

table {
  max-width: 100%;
  background-color: transparent;
}

th {
  text-align: left;
}

.table {
  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.428571429;
  vertical-align: top;
  border-top: 1px solid #dddddd;
}

.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #dddddd;
}

.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 #dddddd;
}

.table .table {
  background-color: #ffffff;
}

.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 #dddddd;
}

.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 #dddddd;
}

.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}

.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
  background-color: #f9f9f9;
}

.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th {
  background-color: #f5f5f5;
}

table col[class*="col-"] {
  position: static;
  display: table-column;
  float: none;
}

table td[class*="col-"],
table th[class*="col-"] {
  display: table-cell;
  float: none;
}

.table > thead > tr > .active,
.table > tbody > tr > .active,
.table > tfoot > tr > .active,
.table > thead > .active > td,
.table > tbody > .active > td,
.table > tfoot > .active > td,
.table > thead > .active > th,
.table > tbody > .active > th,
.table > tfoot > .active > th {
  background-color: #f5f5f5;
}

.table-hover > tbody > tr > .active:hover,
.table-hover > tbody > .active:hover > td,
.table-hover > tbody > .active:hover > th {
  background-color: #e8e8e8;
}

.table > thead > tr > .success,
.table > tbody > tr > .success,
.table > tfoot > tr > .success,
.table > thead > .success > td,
.table > tbody > .success > td,
.table > tfoot > .success > td,
.table > thead > .success > th,
.table > tbody > .success > th,
.table > tfoot > .success > th {
  background-color: #dff0d8;
}

.table-hover > tbody > tr > .success:hover,
.table-hover > tbody > .success:hover > td,
.table-hover > tbody > .success:hover > th {
  background-color: #d0e9c6;
}

.table > thead > tr > .danger,
.table > tbody > tr > .danger,
.table > tfoot > tr > .danger,
.table > thead > .danger > td,
.table > tbody > .danger > td,
.table > tfoot > .danger > td,
.table > thead > .danger > th,
.table > tbody > .danger > th,
.table > tfoot > .danger > th {
  background-color: #f2dede;
}

.table-hover > tbody > tr > .danger:hover,
.table-hover > tbody > .danger:hover > td,
.table-hover > tbody > .danger:hover > th {
  background-color: #ebcccc;
}

.table > thead > tr > .warning,
.table > tbody > tr > .warning,
.table > tfoot > tr > .warning,
.table > thead > .warning > td,
.table > tbody > .warning > td,
.table > tfoot > .warning > td,
.table > thead > .warning > th,
.table > tbody > .warning > th,
.table > tfoot > .warning > th {
  background-color: #fcf8e3;
}

.table-hover > tbody > tr > .warning:hover,
.table-hover > tbody > .warning:hover > td,
.table-hover > tbody > .warning:hover > th {
  background-color: #faf2cc;
}

@media (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-x: scroll;
    overflow-y: hidden;
    border: 1px solid #dddddd;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    -webkit-overflow-scrolling: touch;
  }
  .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;
}

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;
  margin-bottom: 5px;
  font-weight: bold;
}

input[type="search"] {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  /* IE8-9 */

  line-height: normal;
}

input[type="file"] {
  display: block;
}

select[multiple],
select[size] {
  height: auto;
}

select optgroup {
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
}

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;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  height: auto;
}

output {
  display: block;
  padding-top: 7px;
  font-size: 14px;
  line-height: 1.428571429;
  color: #555555;
  vertical-align: middle;
}

.form-control {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.428571429;
  color: #555555;
  vertical-align: middle;
  background-color: #ffffff;
  background-image: none;
  border: 1px solid #cccccc;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}

.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}

.form-control:-moz-placeholder {
  color: #999999;
}

.form-control::-moz-placeholder {
  color: #999999;
  opacity: 1;
}

.form-control:-ms-input-placeholder {
  color: #999999;
}

.form-control::-webkit-input-placeholder {
  color: #999999;
}

.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  cursor: not-allowed;
  background-color: #eeeeee;
}

textarea.form-control {
  height: auto;
}

.form-group {
  margin-bottom: 15px;
}

.radio,
.checkbox {
  display: block;
  min-height: 20px;
  padding-left: 20px;
  margin-top: 10px;
  margin-bottom: 10px;
  vertical-align: middle;
}

.radio label,
.checkbox label {
  display: inline;
  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"] {
  float: left;
  margin-left: -20px;
}

.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}

.radio-inline,
.checkbox-inline {
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  vertical-align: middle;
  cursor: pointer;
}

.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}

input[type="radio"][disabled],
input[type="checkbox"][disabled],
.radio[disabled],
.radio-inline[disabled],
.checkbox[disabled],
.checkbox-inline[disabled],
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"],
fieldset[disabled] .radio,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}

.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 {
  height: auto;
}

.input-lg {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.33;
  border-radius: 6px;
}

select.input-lg {
  height: 46px;
  line-height: 46px;
}

textarea.input-lg {
  height: auto;
}

.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline {
  color: #8a6d3b;
}

.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}

.has-warning .input-group-addon {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #8a6d3b;
}

.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline {
  color: #a94442;
}

.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}

.has-error .input-group-addon {
  color: #a94442;
  background-color: #f2dede;
  border-color: #a94442;
}

.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline {
  color: #3c763d;
}

.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}

.has-success .input-group-addon {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #3c763d;
}

.form-control-static {
  margin-bottom: 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;
  }
  .form-inline select.form-control {
    width: auto;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    float: none;
    margin-left: 0;
  }
}

.form-horizontal .control-label,
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  padding-top: 7px;
  margin-top: 0;
  margin-bottom: 0;
}

.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 27px;
}

.form-horizontal .form-group {
  margin-right: -15px;
  margin-left: -15px;
}

.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
  display: table;
  content: " ";
}

.form-horizontal .form-group:after {
  clear: both;
}

.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
  display: table;
  content: " ";
}

.form-horizontal .form-group:after {
  clear: both;
}

.form-horizontal .form-control-static {
  padding-top: 7px;
}

@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
  }
}

.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.428571429;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
       -o-user-select: none;
          user-select: none;
}

.btn:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

.btn:hover,
.btn:focus {
  color: #333333;
  text-decoration: none;
}

.btn:active,
.btn.active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}

.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
          box-shadow: none;
}

.btn-default {
  color: #333333;
  background-color: #ffffff;
  border-color: #cccccc;
}

.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.open .dropdown-toggle.btn-default {
  color: #333333;
  background-color: #ebebeb;
  border-color: #adadad;
}

.btn-default:active,
.btn-default.active,
.open .dropdown-toggle.btn-default {
  background-image: none;
}

.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.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:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
  background-color: #ffffff;
  border-color: #cccccc;
}

.btn-default .badge {
  color: #ffffff;
  background-color: #fff;
}

.btn-primary {
  color: #ffffff;
  background-color: #428bca;
  border-color: #357ebd;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
  color: #ffffff;
  background-color: #3276b1;
  border-color: #285e8e;
}

.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
  background-image: none;
}

.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.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:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
  background-color: #428bca;
  border-color: #357ebd;
}

.btn-primary .badge {
  color: #428bca;
  background-color: #fff;
}

.btn-warning {
  color: #ffffff;
  background-color: #f0ad4e;
  border-color: #eea236;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.open .dropdown-toggle.btn-warning {
  color: #ffffff;
  background-color: #ed9c28;
  border-color: #d58512;
}

.btn-warning:active,
.btn-warning.active,
.open .dropdown-toggle.btn-warning {
  background-image: none;
}

.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.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:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
  background-color: #f0ad4e;
  border-color: #eea236;
}

.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}

.btn-danger {
  color: #ffffff;
  background-color: #d9534f;
  border-color: #d43f3a;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.open .dropdown-toggle.btn-danger {
  color: #ffffff;
  background-color: #d2322d;
  border-color: #ac2925;
}

.btn-danger:active,
.btn-danger.active,
.open .dropdown-toggle.btn-danger {
  background-image: none;
}

.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.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:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
  background-color: #d9534f;
  border-color: #d43f3a;
}

.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}

.btn-success {
  color: #ffffff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.open .dropdown-toggle.btn-success {
  color: #ffffff;
  background-color: #47a447;
  border-color: #398439;
}

.btn-success:active,
.btn-success.active,
.open .dropdown-toggle.btn-success {
  background-image: none;
}

.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.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:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
  background-color: #5cb85c;
  border-color: #4cae4c;
}

.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}

.btn-info {
  color: #ffffff;
  background-color: #5bc0de;
  border-color: #46b8da;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.open .dropdown-toggle.btn-info {
  color: #ffffff;
  background-color: #39b3d7;
  border-color: #269abc;
}

.btn-info:active,
.btn-info.active,
.open .dropdown-toggle.btn-info {
  background-image: none;
}

.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.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:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
  background-color: #5bc0de;
  border-color: #46b8da;
}

.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}

.btn-link {
  font-weight: normal;
  color: #428bca;
  cursor: pointer;
  border-radius: 0;
}

.btn-link,
.btn-link:active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}

.btn-link:hover,
.btn-link:focus {
  color: #2a6496;
  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: #999999;
  text-decoration: none;
}

.btn-lg {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.33;
  border-radius: 6px;
}

.btn-sm {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}

.btn-xs {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}

.btn-block {
  display: block;
  width: 100%;
  padding-right: 0;
  padding-left: 0;
}

.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;
}

.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
          transition: height 0.35s ease;
}

@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.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';
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -moz-osx-font-smoothing: grayscale;
}

.glyphicon:empty {
  width: 1em;
}

.glyphicon-asterisk:before {
  content: "\2a";
}

.glyphicon-plus:before {
  content: "\2b";
}

.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";
}

.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px solid;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}

.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;
  font-size: 14px;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
          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.428571429;
  color: #333333;
  white-space: nowrap;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  color: #262626;
  text-decoration: none;
  background-color: #f5f5f5;
}

.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #ffffff;
  text-decoration: none;
  background-color: #428bca;
  outline: 0;
}

.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #999999;
}

.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  cursor: not-allowed;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}

.open > .dropdown-menu {
  display: block;
}

.open > a {
  outline: 0;
}

.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.428571429;
  color: #999999;
}

.dropdown-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 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 solid;
  content: "";
}

.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}

@media (min-width: 768px) {
  .navbar-right .dropdown-menu {
    right: 0;
    left: 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:focus,
.btn-group-vertical > .btn:focus {
  outline: none;
}

.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:before,
.btn-toolbar:after {
  display: table;
  content: " ";
}

.btn-toolbar:after {
  clear: both;
}

.btn-toolbar:before,
.btn-toolbar:after {
  display: table;
  content: " ";
}

.btn-toolbar:after {
  clear: both;
}

.btn-toolbar .btn-group {
  float: left;
}

.btn-toolbar > .btn + .btn,
.btn-toolbar > .btn-group + .btn,
.btn-toolbar > .btn + .btn-group,
.btn-toolbar > .btn-group + .btn-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-top-right-radius: 0;
  border-bottom-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 > .btn:last-child,
.btn-group > .btn-group:first-child > .dropdown-toggle {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.btn-group > .btn-group:last-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-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}

.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}

.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.33;
  border-radius: 6px;
}

.btn-group > .btn + .dropdown-toggle {
  padding-right: 8px;
  padding-left: 8px;
}

.btn-group > .btn-lg + .dropdown-toggle {
  padding-right: 12px;
  padding-left: 12px;
}

.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}

.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
          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:before,
.btn-group-vertical > .btn-group:after {
  display: table;
  content: " ";
}

.btn-group-vertical > .btn-group:after {
  clear: both;
}

.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after {
  display: table;
  content: " ";
}

.btn-group-vertical > .btn-group:after {
  clear: both;
}

.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-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-bottom-left-radius: 4px;
  border-top-left-radius: 0;
}

.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}

.btn-group-vertical > .btn-group:first-child > .btn:last-child,
.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.btn-group-vertical > .btn-group:last-child > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}

.btn-group-justified {
  display: table;
  width: 100%;
  border-collapse: separate;
  table-layout: fixed;
}

.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  display: table-cell;
  float: none;
  width: 1%;
}

.btn-group-justified > .btn-group .btn {
  width: 100%;
}

[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
  display: none;
}

.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}

.input-group[class*="col-"] {
  float: none;
  padding-right: 0;
  padding-left: 0;
}

.input-group .form-control {
  width: 100%;
  margin-bottom: 0;
}

.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.33;
  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 {
  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 {
  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 #cccccc;
  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 > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
  border-top-right-radius: 0;
  border-bottom-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 > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}

.input-group-addon:last-child {
  border-left: 0;
}

.input-group-btn {
  position: relative;
  white-space: nowrap;
}

.input-group-btn:first-child > .btn {
  margin-right: -1px;
}

.input-group-btn:last-child > .btn {
  margin-left: -1px;
}

.input-group-btn > .btn {
  position: relative;
}

.input-group-btn > .btn + .btn {
  margin-left: -4px;
}

.input-group-btn > .btn:hover,
.input-group-btn > .btn:active {
  z-index: 2;
}

.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.nav:before,
.nav:after {
  display: table;
  content: " ";
}

.nav:after {
  clear: both;
}

.nav:before,
.nav:after {
  display: table;
  content: " ";
}

.nav:after {
  clear: both;
}

.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: #999999;
}

.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #999999;
  text-decoration: none;
  cursor: not-allowed;
  background-color: transparent;
}

.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #428bca;
}

.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 #dddddd;
}

.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}

.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.428571429;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
}

.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #dddddd;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  cursor: default;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-bottom-color: transparent;
}

.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}

.nav-tabs.nav-justified > li {
  float: none;
}

.nav-tabs.nav-justified > li > a {
  margin-bottom: 5px;
  text-align: center;
}

.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 #dddddd;
}

@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #dddddd;
    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: #ffffff;
  }
}

.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: #ffffff;
  background-color: #428bca;
}

.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 {
  margin-bottom: 5px;
  text-align: center;
}

.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 #dddddd;
}

@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #dddddd;
    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: #ffffff;
  }
}

.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;
}

.navbar:before,
.navbar:after {
  display: table;
  content: " ";
}

.navbar:after {
  clear: both;
}

.navbar:before,
.navbar:after {
  display: table;
  content: " ";
}

.navbar:after {
  clear: both;
}

@media (min-width: 768px) {
  .navbar {
    border-radius: 4px;
  }
}

.navbar-header:before,
.navbar-header:after {
  display: table;
  content: " ";
}

.navbar-header:after {
  clear: both;
}

.navbar-header:before,
.navbar-header:after {
  display: table;
  content: " ";
}

.navbar-header:after {
  clear: both;
}

@media (min-width: 768px) {
  .navbar-header {
    float: left;
  }
}

.navbar-collapse {
  max-height: 340px;
  padding-right: 15px;
  padding-left: 15px;
  overflow-x: visible;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}

.navbar-collapse:before,
.navbar-collapse:after {
  display: table;
  content: " ";
}

.navbar-collapse:after {
  clear: both;
}

.navbar-collapse:before,
.navbar-collapse:after {
  display: table;
  content: " ";
}

.navbar-collapse:after {
  clear: both;
}

.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-right: 0;
    padding-left: 0;
  }
}

.container > .navbar-header,
.container > .navbar-collapse {
  margin-right: -15px;
  margin-left: -15px;
}

@media (min-width: 768px) {
  .container > .navbar-header,
  .container > .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;
}

.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}

@media (min-width: 768px) {
  .navbar > .container .navbar-brand {
    margin-left: -15px;
  }
}

.navbar-toggle {
  position: relative;
  float: right;
  padding: 9px 10px;
  margin-top: 8px;
  margin-right: 15px;
  margin-bottom: 8px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}

.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-nav.navbar-right:last-child {
    margin-right: -15px;
  }
}

@media (min-width: 768px) {
  .navbar-left {
    float: left !important;
  }
  .navbar-right {
    float: right !important;
  }
}

.navbar-form {
  padding: 10px 15px;
  margin-top: 8px;
  margin-right: -15px;
  margin-bottom: 8px;
  margin-left: -15px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.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;
  }
  .navbar-form select.form-control {
    width: auto;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    float: none;
    margin-left: 0;
  }
}

@media (max-width: 767px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
}

@media (min-width: 768px) {
  .navbar-form {
    width: auto;
    padding-top: 0;
    padding-bottom: 0;
    margin-right: 0;
    margin-left: 0;
    border: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  .navbar-form.navbar-right:last-child {
    margin-right: -15px;
  }
}

.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 {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.navbar-nav.pull-right > li > .dropdown-menu,
.navbar-nav > li > .dropdown-menu.pull-right {
  right: 0;
  left: auto;
}

.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-right: 15px;
    margin-left: 15px;
  }
  .navbar-text.navbar-right:last-child {
    margin-right: 0;
  }
}

.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}

.navbar-default .navbar-brand {
  color: #777777;
}

.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}

.navbar-default .navbar-text {
  color: #777777;
}

.navbar-default .navbar-nav > li > a {
  color: #777777;
}

.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333333;
  background-color: transparent;
}

.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555555;
  background-color: #e7e7e7;
}

.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #cccccc;
  background-color: transparent;
}

.navbar-default .navbar-toggle {
  border-color: #dddddd;
}

.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #dddddd;
}

.navbar-default .navbar-toggle .icon-bar {
  background-color: #cccccc;
}

.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 {
  color: #555555;
  background-color: #e7e7e7;
}

@media (max-width: 767px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333333;
    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: #555555;
    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: #cccccc;
    background-color: transparent;
  }
}

.navbar-default .navbar-link {
  color: #777777;
}

.navbar-default .navbar-link:hover {
  color: #333333;
}

.navbar-inverse {
  background-color: #222222;
  border-color: #080808;
}

.navbar-inverse .navbar-brand {
  color: #999999;
}

.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #ffffff;
  background-color: transparent;
}

.navbar-inverse .navbar-text {
  color: #999999;
}

.navbar-inverse .navbar-nav > li > a {
  color: #999999;
}

.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #ffffff;
  background-color: transparent;
}

.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #ffffff;
  background-color: #080808;
}

.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444444;
  background-color: transparent;
}

.navbar-inverse .navbar-toggle {
  border-color: #333333;
}

.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333333;
}

.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #ffffff;
}

.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 {
  color: #ffffff;
  background-color: #080808;
}

@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: #999999;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #ffffff;
    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: #ffffff;
    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: #444444;
    background-color: transparent;
  }
}

.navbar-inverse .navbar-link {
  color: #999999;
}

.navbar-inverse .navbar-link:hover {
  color: #ffffff;
}

.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 {
  padding: 0 5px;
  color: #cccccc;
  content: "/\00a0";
}

.breadcrumb > .active {
  color: #999999;
}

.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;
  margin-left: -1px;
  line-height: 1.428571429;
  text-decoration: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
}

.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-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  background-color: #eeeeee;
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 2;
  color: #ffffff;
  cursor: default;
  background-color: #428bca;
  border-color: #428bca;
}

.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #999999;
  cursor: not-allowed;
  background-color: #ffffff;
  border-color: #dddddd;
}

.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 18px;
}

.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-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
}

.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-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

.pager {
  padding-left: 0;
  margin: 20px 0;
  text-align: center;
  list-style: none;
}

.pager:before,
.pager:after {
  display: table;
  content: " ";
}

.pager:after {
  clear: both;
}

.pager:before,
.pager:after {
  display: table;
  content: " ";
}

.pager:after {
  clear: both;
}

.pager li {
  display: inline;
}

.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  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: #999999;
  cursor: not-allowed;
  background-color: #ffffff;
}

.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}

.label[href]:hover,
.label[href]:focus {
  color: #ffffff;
  text-decoration: none;
  cursor: pointer;
}

.label:empty {
  display: none;
}

.btn .label {
  position: relative;
  top: -1px;
}

.label-default {
  background-color: #999999;
}

.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #808080;
}

.label-primary {
  background-color: #428bca;
}

.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #3071a9;
}

.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;
  line-height: 1;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  background-color: #999999;
  border-radius: 10px;
}

.badge:empty {
  display: none;
}

.btn .badge {
  position: relative;
  top: -1px;
}

a.badge:hover,
a.badge:focus {
  color: #ffffff;
  text-decoration: none;
  cursor: pointer;
}

a.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #428bca;
  background-color: #ffffff;
}

.nav-pills > li > a > .badge {
  margin-left: 3px;
}

.jumbotron {
  padding: 30px;
  margin-bottom: 30px;
  font-size: 21px;
  font-weight: 200;
  line-height: 2.1428571435;
  color: inherit;
  background-color: #eeeeee;
}

.jumbotron h1,
.jumbotron .h1 {
  line-height: 1;
  color: inherit;
}

.jumbotron p {
  line-height: 1.4;
}

.container .jumbotron {
  border-radius: 6px;
}

.jumbotron .container {
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron {
    padding-right: 60px;
    padding-left: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 63px;
  }
}

.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 20px;
  line-height: 1.428571429;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 4px;
  -webkit-transition: all 0.2s ease-in-out;
          transition: all 0.2s ease-in-out;
}

.thumbnail > img,
.thumbnail a > img {
  display: block;
  height: auto;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}

a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #428bca;
}

.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 {
  padding-right: 35px;
}

.alert-dismissable .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}

.alert-success {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}

.alert-success hr {
  border-top-color: #c9e2b3;
}

.alert-success .alert-link {
  color: #2b542c;
}

.alert-info {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}

.alert-info hr {
  border-top-color: #a6e1ec;
}

.alert-info .alert-link {
  color: #245269;
}

.alert-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}

.alert-warning hr {
  border-top-color: #f7e1b5;
}

.alert-warning .alert-link {
  color: #66512c;
}

.alert-danger {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}

.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 {
  height: 20px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f5f5f5;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          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: #ffffff;
  text-align: center;
  background-color: #428bca;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
          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 {
  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 {
  -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,
.media-body {
  overflow: hidden;
  zoom: 1;
}

.media,
.media .media {
  margin-top: 15px;
}

.media:first-child {
  margin-top: 0;
}

.media-object {
  display: block;
}

.media-heading {
  margin: 0 0 5px;
}

.media > .pull-left {
  margin-right: 10px;
}

.media > .pull-right {
  margin-left: 10px;
}

.media-list {
  padding-left: 0;
  list-style: none;
}

.list-group {
  padding-left: 0;
  margin-bottom: 20px;
}

.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #ffffff;
  border: 1px solid #dddddd;
}

.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;
}

.list-group-item > .badge {
  float: right;
}

.list-group-item > .badge + .badge {
  margin-right: 5px;
}

a.list-group-item {
  color: #555555;
}

a.list-group-item .list-group-item-heading {
  color: #333333;
}

a.list-group-item:hover,
a.list-group-item:focus {
  text-decoration: none;
  background-color: #f5f5f5;
}

a.list-group-item.active,
a.list-group-item.active:hover,
a.list-group-item.active:focus {
  z-index: 2;
  color: #ffffff;
  background-color: #428bca;
  border-color: #428bca;
}

a.list-group-item.active .list-group-item-heading,
a.list-group-item.active:hover .list-group-item-heading,
a.list-group-item.active:focus .list-group-item-heading {
  color: inherit;
}

a.list-group-item.active .list-group-item-text,
a.list-group-item.active:hover .list-group-item-text,
a.list-group-item.active:focus .list-group-item-text {
  color: #e1edf7;
}

.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: #ffffff;
  border: 1px solid transparent;
  border-radius: 4px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
          box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.panel-body {
  padding: 15px;
}

.panel-body:before,
.panel-body:after {
  display: table;
  content: " ";
}

.panel-body:after {
  clear: both;
}

.panel-body:before,
.panel-body:after {
  display: table;
  content: " ";
}

.panel-body:after {
  clear: both;
}

.panel > .list-group {
  margin-bottom: 0;
}

.panel > .list-group .list-group-item {
  border-width: 1px 0;
}

.panel > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}

.panel > .list-group .list-group-item:last-child {
  border-bottom: 0;
}

.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}

.panel > .table,
.panel > .table-responsive > .table {
  margin-bottom: 0;
}

.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive {
  border-top: 1px solid #dddddd;
}

.panel > .table > tbody:first-child th,
.panel > .table > tbody: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:last-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:last-child > th,
.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,
.panel > .table-bordered > thead > tr:last-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:last-child > td,
.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 {
  border-bottom: 0;
}

.panel > .table-responsive {
  margin-bottom: 0;
  border: 0;
}

.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 {
  color: inherit;
}

.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #dddddd;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}

.panel-group .panel {
  margin-bottom: 0;
  overflow: hidden;
  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 {
  border-top: 1px solid #dddddd;
}

.panel-group .panel-footer {
  border-top: 0;
}

.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #dddddd;
}

.panel-default {
  border-color: #dddddd;
}

.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #dddddd;
}

.panel-default > .panel-heading + .panel-collapse .panel-body {
  border-top-color: #dddddd;
}

.panel-default > .panel-footer + .panel-collapse .panel-body {
  border-bottom-color: #dddddd;
}

.panel-primary {
  border-color: #428bca;
}

.panel-primary > .panel-heading {
  color: #ffffff;
  background-color: #428bca;
  border-color: #428bca;
}

.panel-primary > .panel-heading + .panel-collapse .panel-body {
  border-top-color: #428bca;
}

.panel-primary > .panel-footer + .panel-collapse .panel-body {
  border-bottom-color: #428bca;
}

.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-footer + .panel-collapse .panel-body {
  border-bottom-color: #d6e9c6;
}

.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-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-footer + .panel-collapse .panel-body {
  border-bottom-color: #ebccd1;
}

.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-footer + .panel-collapse .panel-body {
  border-bottom-color: #bce8f1;
}

.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
          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: #000000;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}

.close:hover,
.close:focus {
  color: #000000;
  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 {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  display: none;
  overflow: auto;
  overflow-y: scroll;
}

.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
      -ms-transform: translate(0, -25%);
          transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
     -moz-transition: -moz-transform 0.3s ease-out;
       -o-transition: -o-transform 0.3s ease-out;
          transition: transform 0.3s ease-out;
}

.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0);
}

.modal-dialog {
  position: relative;
  z-index: 1050;
  width: auto;
  margin: 10px;
}

.modal-content {
  position: relative;
  background-color: #ffffff;
  border: 1px solid #999999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  outline: none;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
          box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
  background-color: #000000;
}

.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}

.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}

.modal-header {
  min-height: 16.428571429px;
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}

.modal-header .close {
  margin-top: -2px;
}

.modal-title {
  margin: 0;
  line-height: 1.428571429;
}

.modal-body {
  position: relative;
  padding: 20px;
}

.modal-footer {
  padding: 19px 20px 20px;
  margin-top: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}

.modal-footer:before,
.modal-footer:after {
  display: table;
  content: " ";
}

.modal-footer:after {
  clear: both;
}

.modal-footer:before,
.modal-footer:after {
  display: table;
  content: " ";
}

.modal-footer:after {
  clear: both;
}

.modal-footer .btn + .btn {
  margin-bottom: 0;
  margin-left: 5px;
}

.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}

.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}

@media screen and (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
}

.tooltip {
  position: absolute;
  z-index: 1030;
  display: block;
  font-size: 12px;
  line-height: 1.4;
  opacity: 0;
  filter: alpha(opacity=0);
  visibility: visible;
}

.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}

.tooltip.top {
  padding: 5px 0;
  margin-top: -3px;
}

.tooltip.right {
  padding: 0 5px;
  margin-left: 3px;
}

.tooltip.bottom {
  padding: 5px 0;
  margin-top: 3px;
}

.tooltip.left {
  padding: 0 5px;
  margin-left: -3px;
}

.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  background-color: #000000;
  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-top-color: #000000;
  border-width: 5px 5px 0;
}

.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  left: 5px;
  border-top-color: #000000;
  border-width: 5px 5px 0;
}

.tooltip.top-right .tooltip-arrow {
  right: 5px;
  bottom: 0;
  border-top-color: #000000;
  border-width: 5px 5px 0;
}

.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-right-color: #000000;
  border-width: 5px 5px 5px 0;
}

.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-left-color: #000000;
  border-width: 5px 0 5px 5px;
}

.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-bottom-color: #000000;
  border-width: 0 5px 5px;
}

.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  left: 5px;
  border-bottom-color: #000000;
  border-width: 0 5px 5px;
}

.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  right: 5px;
  border-bottom-color: #000000;
  border-width: 0 5px 5px;
}

.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1010;
  display: none;
  max-width: 276px;
  padding: 1px;
  text-align: left;
  white-space: normal;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}

.popover.top {
  margin-top: -10px;
}

.popover.right {
  margin-left: 10px;
}

.popover.bottom {
  margin-top: 10px;
}

.popover.left {
  margin-left: -10px;
}

.popover-title {
  padding: 8px 14px;
  margin: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 18px;
  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 {
  bottom: -11px;
  left: 50%;
  margin-left: -11px;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  border-bottom-width: 0;
}

.popover.top .arrow:after {
  bottom: 1px;
  margin-left: -10px;
  border-top-color: #ffffff;
  border-bottom-width: 0;
  content: " ";
}

.popover.right .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
  border-left-width: 0;
}

.popover.right .arrow:after {
  bottom: -10px;
  left: 1px;
  border-right-color: #ffffff;
  border-left-width: 0;
  content: " ";
}

.popover.bottom .arrow {
  top: -11px;
  left: 50%;
  margin-left: -11px;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  border-top-width: 0;
}

.popover.bottom .arrow:after {
  top: 1px;
  margin-left: -10px;
  border-bottom-color: #ffffff;
  border-top-width: 0;
  content: " ";
}

.popover.left .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
  border-right-width: 0;
}

.popover.left .arrow:after {
  right: 1px;
  bottom: -10px;
  border-left-color: #ffffff;
  border-right-width: 0;
  content: " ";
}

.carousel {
  position: relative;
}

.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.carousel-inner > .item {
  position: relative;
  display: none;
  -webkit-transition: 0.6s ease-in-out left;
          transition: 0.6s ease-in-out left;
}

.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  height: auto;
  max-width: 100%;
  line-height: 1;
}

.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;
  bottom: 0;
  left: 0;
  width: 15%;
  font-size: 20px;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  opacity: 0.5;
  filter: alpha(opacity=50);
}

.carousel-control.left {
  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(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 {
  right: 0;
  left: auto;
  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(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 {
  color: #ffffff;
  text-decoration: none;
  outline: 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%;
  z-index: 5;
  display: inline-block;
}

.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
}

.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
}

.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  margin-top: -10px;
  margin-left: -10px;
  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%;
  padding-left: 0;
  margin-left: -30%;
  text-align: center;
  list-style: none;
}

.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
  border: 1px solid #ffffff;
  border-radius: 10px;
}

.carousel-indicators .active {
  width: 12px;
  height: 12px;
  margin: 0;
  background-color: #ffffff;
}

.carousel-caption {
  position: absolute;
  right: 15%;
  bottom: 20px;
  left: 15%;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #ffffff;
  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 .glyphicons-chevron-left,
  .carousel-control .glyphicons-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -15px;
    margin-left: -15px;
    font-size: 30px;
  }
  .carousel-caption {
    right: 20%;
    left: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}

.clearfix:before,
.clearfix:after {
  display: table;
  content: " ";
}

.clearfix:after {
  clear: both;
}

.center-block {
  display: block;
  margin-right: auto;
  margin-left: 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;
  visibility: hidden !important;
}

.affix {
  position: fixed;
}

@-ms-viewport {
  width: device-width;
}

.visible-xs,
tr.visible-xs,
th.visible-xs,
td.visible-xs {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .visible-xs.visible-sm {
    display: block !important;
  }
  table.visible-xs.visible-sm {
    display: table;
  }
  tr.visible-xs.visible-sm {
    display: table-row !important;
  }
  th.visible-xs.visible-sm,
  td.visible-xs.visible-sm {
    display: table-cell !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .visible-xs.visible-md {
    display: block !important;
  }
  table.visible-xs.visible-md {
    display: table;
  }
  tr.visible-xs.visible-md {
    display: table-row !important;
  }
  th.visible-xs.visible-md,
  td.visible-xs.visible-md {
    display: table-cell !important;
  }
}

@media (min-width: 1200px) {
  .visible-xs.visible-lg {
    display: block !important;
  }
  table.visible-xs.visible-lg {
    display: table;
  }
  tr.visible-xs.visible-lg {
    display: table-row !important;
  }
  th.visible-xs.visible-lg,
  td.visible-xs.visible-lg {
    display: table-cell !important;
  }
}

.visible-sm,
tr.visible-sm,
th.visible-sm,
td.visible-sm {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-sm.visible-xs {
    display: block !important;
  }
  table.visible-sm.visible-xs {
    display: table;
  }
  tr.visible-sm.visible-xs {
    display: table-row !important;
  }
  th.visible-sm.visible-xs,
  td.visible-sm.visible-xs {
    display: table-cell !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .visible-sm.visible-md {
    display: block !important;
  }
  table.visible-sm.visible-md {
    display: table;
  }
  tr.visible-sm.visible-md {
    display: table-row !important;
  }
  th.visible-sm.visible-md,
  td.visible-sm.visible-md {
    display: table-cell !important;
  }
}

@media (min-width: 1200px) {
  .visible-sm.visible-lg {
    display: block !important;
  }
  table.visible-sm.visible-lg {
    display: table;
  }
  tr.visible-sm.visible-lg {
    display: table-row !important;
  }
  th.visible-sm.visible-lg,
  td.visible-sm.visible-lg {
    display: table-cell !important;
  }
}

.visible-md,
tr.visible-md,
th.visible-md,
td.visible-md {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-md.visible-xs {
    display: block !important;
  }
  table.visible-md.visible-xs {
    display: table;
  }
  tr.visible-md.visible-xs {
    display: table-row !important;
  }
  th.visible-md.visible-xs,
  td.visible-md.visible-xs {
    display: table-cell !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .visible-md.visible-sm {
    display: block !important;
  }
  table.visible-md.visible-sm {
    display: table;
  }
  tr.visible-md.visible-sm {
    display: table-row !important;
  }
  th.visible-md.visible-sm,
  td.visible-md.visible-sm {
    display: table-cell !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}

@media (min-width: 1200px) {
  .visible-md.visible-lg {
    display: block !important;
  }
  table.visible-md.visible-lg {
    display: table;
  }
  tr.visible-md.visible-lg {
    display: table-row !important;
  }
  th.visible-md.visible-lg,
  td.visible-md.visible-lg {
    display: table-cell !important;
  }
}

.visible-lg,
tr.visible-lg,
th.visible-lg,
td.visible-lg {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-lg.visible-xs {
    display: block !important;
  }
  table.visible-lg.visible-xs {
    display: table;
  }
  tr.visible-lg.visible-xs {
    display: table-row !important;
  }
  th.visible-lg.visible-xs,
  td.visible-lg.visible-xs {
    display: table-cell !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .visible-lg.visible-sm {
    display: block !important;
  }
  table.visible-lg.visible-sm {
    display: table;
  }
  tr.visible-lg.visible-sm {
    display: table-row !important;
  }
  th.visible-lg.visible-sm,
  td.visible-lg.visible-sm {
    display: table-cell !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .visible-lg.visible-md {
    display: block !important;
  }
  table.visible-lg.visible-md {
    display: table;
  }
  tr.visible-lg.visible-md {
    display: table-row !important;
  }
  th.visible-lg.visible-md,
  td.visible-lg.visible-md {
    display: table-cell !important;
  }
}

@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}

.hidden-xs {
  display: block !important;
}

table.hidden-xs {
  display: table;
}

tr.hidden-xs {
  display: table-row !important;
}

th.hidden-xs,
td.hidden-xs {
  display: table-cell !important;
}

@media (max-width: 767px) {
  .hidden-xs,
  tr.hidden-xs,
  th.hidden-xs,
  td.hidden-xs {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hidden-xs.hidden-sm,
  tr.hidden-xs.hidden-sm,
  th.hidden-xs.hidden-sm,
  td.hidden-xs.hidden-sm {
    display: none !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-xs.hidden-md,
  tr.hidden-xs.hidden-md,
  th.hidden-xs.hidden-md,
  td.hidden-xs.hidden-md {
    display: none !important;
  }
}

@media (min-wi
Download .txt
gitextract_gu7fheup/

├── .babelrc
├── .editorconfig
├── .eslintrc
├── .github/
│   ├── FUNDING.yml
│   └── ISSUE_TEMPLATE.md
├── .gitignore
├── .npmignore
├── .travis.yml
├── CHANGELOG.md
├── CNAME
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── UPGRADE-2.0.md
├── UPGRADE-2.1.md
├── UPGRADE-2.2.md
├── bower.json
├── bower_components/
│   ├── bootstrap/
│   │   ├── .bower.json
│   │   ├── DOCS-LICENSE
│   │   ├── LICENSE
│   │   ├── LICENSE-MIT
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── dist/
│   │   │   ├── css/
│   │   │   │   ├── bootstrap-theme.css
│   │   │   │   └── bootstrap.css
│   │   │   └── js/
│   │   │       └── bootstrap.js
│   │   ├── js/
│   │   │   ├── affix.js
│   │   │   ├── alert.js
│   │   │   ├── button.js
│   │   │   ├── carousel.js
│   │   │   ├── collapse.js
│   │   │   ├── dropdown.js
│   │   │   ├── modal.js
│   │   │   ├── popover.js
│   │   │   ├── scrollspy.js
│   │   │   ├── tab.js
│   │   │   ├── tooltip.js
│   │   │   └── transition.js
│   │   └── less/
│   │       ├── alerts.less
│   │       ├── badges.less
│   │       ├── bootstrap.less
│   │       ├── breadcrumbs.less
│   │       ├── button-groups.less
│   │       ├── buttons.less
│   │       ├── carousel.less
│   │       ├── close.less
│   │       ├── code.less
│   │       ├── component-animations.less
│   │       ├── dropdowns.less
│   │       ├── forms.less
│   │       ├── glyphicons.less
│   │       ├── grid.less
│   │       ├── input-groups.less
│   │       ├── jumbotron.less
│   │       ├── labels.less
│   │       ├── list-group.less
│   │       ├── media.less
│   │       ├── mixins.less
│   │       ├── modals.less
│   │       ├── navbar.less
│   │       ├── navs.less
│   │       ├── normalize.less
│   │       ├── pager.less
│   │       ├── pagination.less
│   │       ├── panels.less
│   │       ├── popovers.less
│   │       ├── print.less
│   │       ├── progress-bars.less
│   │       ├── responsive-utilities.less
│   │       ├── scaffolding.less
│   │       ├── tables.less
│   │       ├── theme.less
│   │       ├── thumbnails.less
│   │       ├── tooltip.less
│   │       ├── type.less
│   │       ├── utilities.less
│   │       ├── variables.less
│   │       └── wells.less
│   ├── expect.js/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── History.md
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── support/
│   │   │   └── jquery.js
│   │   └── test/
│   │       ├── common.js
│   │       ├── expect.js
│   │       └── index.html
│   ├── jquery/
│   │   ├── .bower.json
│   │   ├── MIT-LICENSE.txt
│   │   ├── bower.json
│   │   ├── dist/
│   │   │   └── jquery.js
│   │   └── src/
│   │       ├── ajax/
│   │       │   ├── jsonp.js
│   │       │   ├── load.js
│   │       │   ├── parseJSON.js
│   │       │   ├── parseXML.js
│   │       │   ├── script.js
│   │       │   ├── var/
│   │       │   │   ├── nonce.js
│   │       │   │   └── rquery.js
│   │       │   └── xhr.js
│   │       ├── ajax.js
│   │       ├── attributes/
│   │       │   ├── attr.js
│   │       │   ├── classes.js
│   │       │   ├── prop.js
│   │       │   ├── support.js
│   │       │   └── val.js
│   │       ├── attributes.js
│   │       ├── callbacks.js
│   │       ├── core/
│   │       │   ├── access.js
│   │       │   ├── init.js
│   │       │   ├── parseHTML.js
│   │       │   ├── ready.js
│   │       │   └── var/
│   │       │       └── rsingleTag.js
│   │       ├── core.js
│   │       ├── css/
│   │       │   ├── addGetHookIf.js
│   │       │   ├── curCSS.js
│   │       │   ├── defaultDisplay.js
│   │       │   ├── hiddenVisibleSelectors.js
│   │       │   ├── support.js
│   │       │   ├── swap.js
│   │       │   └── var/
│   │       │       ├── cssExpand.js
│   │       │       ├── getStyles.js
│   │       │       ├── isHidden.js
│   │       │       ├── rmargin.js
│   │       │       └── rnumnonpx.js
│   │       ├── css.js
│   │       ├── data/
│   │       │   ├── Data.js
│   │       │   ├── accepts.js
│   │       │   └── var/
│   │       │       ├── data_priv.js
│   │       │       └── data_user.js
│   │       ├── data.js
│   │       ├── deferred.js
│   │       ├── deprecated.js
│   │       ├── dimensions.js
│   │       ├── effects/
│   │       │   ├── Tween.js
│   │       │   └── animatedSelector.js
│   │       ├── effects.js
│   │       ├── event/
│   │       │   ├── ajax.js
│   │       │   ├── alias.js
│   │       │   └── support.js
│   │       ├── event.js
│   │       ├── exports/
│   │       │   ├── amd.js
│   │       │   └── global.js
│   │       ├── intro.js
│   │       ├── jquery.js
│   │       ├── manipulation/
│   │       │   ├── _evalUrl.js
│   │       │   ├── support.js
│   │       │   └── var/
│   │       │       └── rcheckableType.js
│   │       ├── manipulation.js
│   │       ├── offset.js
│   │       ├── outro.js
│   │       ├── queue/
│   │       │   └── delay.js
│   │       ├── queue.js
│   │       ├── selector-native.js
│   │       ├── selector-sizzle.js
│   │       ├── selector.js
│   │       ├── serialize.js
│   │       ├── sizzle/
│   │       │   └── dist/
│   │       │       └── sizzle.js
│   │       ├── traversing/
│   │       │   ├── findFilter.js
│   │       │   └── var/
│   │       │       └── rneedsContext.js
│   │       ├── traversing.js
│   │       ├── var/
│   │       │   ├── arr.js
│   │       │   ├── class2type.js
│   │       │   ├── concat.js
│   │       │   ├── hasOwn.js
│   │       │   ├── indexOf.js
│   │       │   ├── pnum.js
│   │       │   ├── push.js
│   │       │   ├── rnotwhite.js
│   │       │   ├── slice.js
│   │       │   ├── strundefined.js
│   │       │   ├── support.js
│   │       │   └── toString.js
│   │       └── wrap.js
│   ├── mocha/
│   │   ├── .bower.json
│   │   ├── .editorconfig
│   │   ├── .eslintrc
│   │   ├── .mailmap
│   │   ├── CONTRIBUTING.md
│   │   ├── HISTORY.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── mocha.css
│   │   ├── mocha.js
│   │   └── scripts/
│   │       └── ensure-compatible-npm.sh
│   ├── sinonjs/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   └── sinon.js
│   └── uwidget/
│       ├── .bower.json
│       ├── LICENSE
│       ├── README.md
│       ├── bower.json
│       ├── uwidget.css
│       ├── uwidget.js
│       └── uwidget.less
├── dist/
│   ├── i18n/
│   │   ├── al.js
│   │   ├── ar.js
│   │   ├── bg.js
│   │   ├── ca.js
│   │   ├── cs.extra.js
│   │   ├── cs.js
│   │   ├── cy.js
│   │   ├── da.js
│   │   ├── de.extra.js
│   │   ├── de.js
│   │   ├── el.extra.js
│   │   ├── el.js
│   │   ├── en.extra.js
│   │   ├── en.js
│   │   ├── es.js
│   │   ├── et.js
│   │   ├── eu.js
│   │   ├── fa.js
│   │   ├── fi.extra.js
│   │   ├── fi.js
│   │   ├── fr.extra.js
│   │   ├── fr.js
│   │   ├── he.extra.js
│   │   ├── he.js
│   │   ├── hr.extra.js
│   │   ├── hr.js
│   │   ├── hu.extra.js
│   │   ├── hu.js
│   │   ├── id.extra.js
│   │   ├── id.js
│   │   ├── is.js
│   │   ├── it.extra.js
│   │   ├── it.js
│   │   ├── ja.extra.js
│   │   ├── ja.js
│   │   ├── ko.js
│   │   ├── lt.extra.js
│   │   ├── lt.js
│   │   ├── lv.extra.js
│   │   ├── lv.js
│   │   ├── mk.js
│   │   ├── ms.extra.js
│   │   ├── ms.js
│   │   ├── nl.extra.js
│   │   ├── nl.js
│   │   ├── no.js
│   │   ├── pl.js
│   │   ├── pt-br.js
│   │   ├── pt-pt.js
│   │   ├── ro.extra.js
│   │   ├── ro.js
│   │   ├── ru.extra.js
│   │   ├── ru.js
│   │   ├── sk.extra.js
│   │   ├── sk.js
│   │   ├── sl.extra.js
│   │   ├── sl.js
│   │   ├── sq.js
│   │   ├── sr.extra.js
│   │   ├── sr.js
│   │   ├── sv.extra.js
│   │   ├── sv.js
│   │   ├── ta.js
│   │   ├── th.extra.js
│   │   ├── th.js
│   │   ├── tk.js
│   │   ├── tr.js
│   │   ├── ua.extra.js
│   │   ├── ua.js
│   │   ├── uk.extra.js
│   │   ├── uk.js
│   │   ├── ur.js
│   │   ├── vi.js
│   │   ├── zh_cn.extra.js
│   │   ├── zh_cn.js
│   │   └── zh_tw.js
│   └── parsley.js
├── doc/
│   ├── about.html
│   ├── annotated-source/
│   │   ├── base.html
│   │   ├── constraint.html
│   │   ├── defaults.html
│   │   ├── docco.css
│   │   ├── factory.html
│   │   ├── field.html
│   │   ├── form.html
│   │   ├── main.html
│   │   ├── multiple.html
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── normalize.css
│   │   ├── pubsub.html
│   │   ├── remote.html
│   │   ├── ui.html
│   │   ├── utils.html
│   │   ├── validator.html
│   │   └── validator_registry.html
│   ├── assets/
│   │   ├── docs.css
│   │   ├── docs.js
│   │   ├── docs.less
│   │   ├── example.js
│   │   ├── help.css
│   │   ├── help.less
│   │   └── spec-build.js
│   ├── download.html
│   ├── examples/
│   │   ├── ajax.html
│   │   ├── custom-validator-events.html
│   │   ├── customvalidator.html
│   │   ├── events.html
│   │   ├── multisteps.html
│   │   └── simple.html
│   ├── examples.html
│   ├── help.html
│   ├── index.html
│   └── tests.html
├── gulpfile.babel.js
├── index.html
├── package.json
├── rollup.config.js
├── src/
│   ├── .babelrc
│   ├── extra/
│   │   ├── plugin/
│   │   │   └── bind.js
│   │   └── validator/
│   │       ├── comparison.js
│   │       ├── date.js
│   │       ├── dateiso.js
│   │       ├── luhn.js
│   │       ├── notequalto.js
│   │       └── words.js
│   ├── header.js
│   ├── i18n/
│   │   ├── al.js
│   │   ├── ar.js
│   │   ├── bg.js
│   │   ├── ca.js
│   │   ├── cs.extra.js
│   │   ├── cs.js
│   │   ├── da.js
│   │   ├── de.extra.js
│   │   ├── de.js
│   │   ├── el.extra.js
│   │   ├── el.js
│   │   ├── en.extra.js
│   │   ├── en.js
│   │   ├── es.js
│   │   ├── et.js
│   │   ├── eu.js
│   │   ├── fa.js
│   │   ├── fi.extra.js
│   │   ├── fi.js
│   │   ├── fr.extra.js
│   │   ├── fr.js
│   │   ├── he.extra.js
│   │   ├── he.js
│   │   ├── hr.extra.js
│   │   ├── hr.js
│   │   ├── hu.extra.js
│   │   ├── hu.js
│   │   ├── id.extra.js
│   │   ├── id.js
│   │   ├── is.js
│   │   ├── it.extra.js
│   │   ├── it.js
│   │   ├── ja.extra.js
│   │   ├── ja.js
│   │   ├── ko.js
│   │   ├── lt.extra.js
│   │   ├── lt.js
│   │   ├── lv.extra.js
│   │   ├── lv.js
│   │   ├── mk.js
│   │   ├── ms.extra.js
│   │   ├── ms.js
│   │   ├── nl.extra.js
│   │   ├── nl.js
│   │   ├── no.js
│   │   ├── pl.js
│   │   ├── pt-br.js
│   │   ├── pt-pt.js
│   │   ├── ro.extra.js
│   │   ├── ro.js
│   │   ├── ru.extra.js
│   │   ├── ru.js
│   │   ├── sk.extra.js
│   │   ├── sk.js
│   │   ├── sl.extra.js
│   │   ├── sl.js
│   │   ├── sq.js
│   │   ├── sr.extra.js
│   │   ├── sr.js
│   │   ├── sv.extra.js
│   │   ├── sv.js
│   │   ├── ta.js
│   │   ├── th.extra.js
│   │   ├── th.js
│   │   ├── tk.js
│   │   ├── tr.js
│   │   ├── ua.extra.js
│   │   ├── ua.js
│   │   ├── uk.extra.js
│   │   ├── uk.js
│   │   ├── ur.js
│   │   ├── vi.js
│   │   ├── zh_cn.extra.js
│   │   ├── zh_cn.js
│   │   └── zh_tw.js
│   ├── parsley/
│   │   ├── base.js
│   │   ├── constraint.js
│   │   ├── defaults.js
│   │   ├── factory.js
│   │   ├── field.js
│   │   ├── form.js
│   │   ├── main.js
│   │   ├── multiple.js
│   │   ├── pubsub.js
│   │   ├── remote.js
│   │   ├── ui.js
│   │   ├── utils.js
│   │   ├── validator.js
│   │   └── validator_registry.js
│   ├── parsley.css
│   ├── parsley.js
│   └── vendor/
│       └── inputevent.js
├── test/
│   ├── .eslintrc
│   ├── runner.html
│   ├── setup/
│   │   ├── browser.js
│   │   ├── browser_setup.js
│   │   ├── dom_leak_check.js
│   │   ├── expect_warning.js
│   │   ├── node.js
│   │   ├── node_setup.js
│   │   └── setup.js
│   └── unit/
│       ├── base.js
│       ├── extra/
│       │   ├── bind.js
│       │   ├── comparison.js
│       │   ├── dateiso.js
│       │   └── words.js
│       ├── field.js
│       ├── form.js
│       ├── index.js
│       ├── multiple.js
│       ├── parsley.js
│       ├── pubsub.js
│       ├── remote.js
│       ├── ui.js
│       ├── utils.js
│       ├── validator.js
│       └── validator_registry.js
└── tools/
    ├── mocha_options.js
    └── rollup_options.js
Download .txt
SYMBOL INDEX (594 symbols across 40 files)

FILE: bower_components/bootstrap/dist/js/bootstrap.js
  function transitionEnd (line 34) | function transitionEnd() {
  function removeElement (line 119) | function removeElement() {
  function clearMenus (line 771) | function clearMenus() {
  function getParent (line 782) | function getParent($this) {
  function complete (line 1343) | function complete() {
  function ScrollSpy (line 1611) | function ScrollSpy(element, options) {
  function next (line 1812) | function next() {

FILE: bower_components/bootstrap/js/alert.js
  function removeElement (line 54) | function removeElement() {

FILE: bower_components/bootstrap/js/dropdown.js
  function clearMenus (line 93) | function clearMenus() {
  function getParent (line 104) | function getParent($this) {

FILE: bower_components/bootstrap/js/scrollspy.js
  function ScrollSpy (line 26) | function ScrollSpy(element, options) {

FILE: bower_components/bootstrap/js/tab.js
  function next (line 68) | function next() {

FILE: bower_components/bootstrap/js/tooltip.js
  function complete (line 263) | function complete() {

FILE: bower_components/bootstrap/js/transition.js
  function transitionEnd (line 26) | function transitionEnd() {

FILE: bower_components/expect.js/index.js
  function expect (line 30) | function expect (obj) {
  function Assertion (line 40) | function Assertion (obj, flag, parent) {
  function bind (line 497) | function bind (fn, scope) {
  function every (line 510) | function every (arr, fn, thisObj) {
  function indexOf (line 527) | function indexOf (arr, o, i) {
  function i (line 578) | function i (obj, showHidden, depth) {
  function isArray (line 770) | function isArray (ar) {
  function isRegExp (line 774) | function isRegExp(re) {
  function isDate (line 792) | function isDate(d) {
  function keys (line 796) | function keys (obj) {
  function map (line 812) | function map (arr, mapper, that) {
  function reduce (line 826) | function reduce (arr, fun) {
  function isUndefinedOrNull (line 912) | function isUndefinedOrNull (value) {
  function isArguments (line 916) | function isArguments (object) {
  function regExpEquiv (line 920) | function regExpEquiv (a, b) {
  function objEquiv (line 925) | function objEquiv (a, b) {
  function f (line 980) | function f(n) {
  function date (line 985) | function date(d, key) {
  function quote (line 1011) | function quote(string) {
  function str (line 1027) | function str(key, holder) {
  function walk (line 1202) | function walk(holder, key) {

FILE: bower_components/expect.js/support/jquery.js
  function jQuerySub (line 871) | function jQuerySub( selector, context ) {
  function doScrollCheck (line 937) | function doScrollCheck() {
  function createFlags (line 964) | function createFlags( flags ) {
  function resolveFunc (line 1296) | function resolveFunc( i ) {
  function progressFunc (line 1304) | function progressFunc( i ) {
  function dataAttr (line 1931) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 1962) | function isEmptyDataObject( obj ) {
  function handleQueueMarkDefer (line 1980) | function handleQueueMarkDefer( elem, type, src ) {
  function resolve (line 2133) | function resolve() {
  function returnFalse (line 3465) | function returnFalse() {
  function returnTrue (line 3468) | function returnTrue() {
  function dirNodeCheck (line 5168) | function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function dirCheck (line 5201) | function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function isDisconnected (line 5474) | function isDisconnected( node ) {
  function winnow (line 5591) | function winnow( elements, qualifier, keep ) {
  function createSafeFragment (line 5628) | function createSafeFragment( document ) {
  function root (line 5992) | function root( elem, cur ) {
  function cloneCopyEvent (line 5999) | function cloneCopyEvent( src, dest ) {
  function cloneFixAttributes (line 6027) | function cloneFixAttributes( src, dest ) {
  function getAll (line 6163) | function getAll( elem ) {
  function fixDefaultChecked (line 6176) | function fixDefaultChecked( elem ) {
  function findInputs (line 6182) | function findInputs( elem ) {
  function shimCloneNode (line 6193) | function shimCloneNode( elem ) {
  function evalScript (line 6425) | function evalScript( i, elem ) {
  function getWH (line 6767) | function getWH( elem, name, extra ) {
  function addToPrefiltersOrTransports (line 6895) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 6931) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 6973) | function ajaxExtend( target, src ) {
  function done (line 7315) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 7630) | function buildParams( prefix, obj, traditional, add ) {
  function ajaxHandleResponses (line 7680) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7745) | function ajaxConvert( s, response ) {
  function createStandardXHR (line 8011) | function createStandardXHR() {
  function createActiveXHR (line 8017) | function createActiveXHR() {
  function doAnimation (line 8349) | function doAnimation() {
  function stopQueue (line 8492) | function stopQueue( elem, data, index ) {
  function createFxNow (line 8534) | function createFxNow() {
  function clearFxNow (line 8539) | function clearFxNow() {
  function genFx (line 8544) | function genFx( type, num ) {
  function t (line 8659) | function t( gotoEnd ) {
  function defaultDisplay (line 8851) | function defaultDisplay( nodeName ) {
  function getWindow (line 9160) | function getWindow( elem ) {

FILE: bower_components/expect.js/test/expect.js
  function err (line 6) | function err (fn, msg) {
  function itThrowsSometimes (line 83) | function itThrowsSometimes (first, second) {
  function itThrows (line 96) | function itThrows () {
  function itThrowsString (line 100) | function itThrowsString () {
  function itThrowsMessage (line 104) | function itThrowsMessage () {
  function itWorks (line 112) | function itWorks () {
  function Foo (line 238) | function Foo(){}

FILE: bower_components/jquery/dist/jquery.js
  function isArraylike (line 533) | function isArraylike( obj ) {
  function Sizzle (line 750) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 864) | function createCache() {
  function markFunction (line 882) | function markFunction( fn ) {
  function assert (line 891) | function assert( fn ) {
  function addHandle (line 913) | function addHandle( attrs, handler ) {
  function siblingCheck (line 928) | function siblingCheck( a, b ) {
  function createInputPseudo (line 955) | function createInputPseudo( type ) {
  function createButtonPseudo (line 966) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 977) | function createPositionalPseudo( fn ) {
  function testContext (line 1000) | function testContext( context ) {
  function setFilters (line 2009) | function setFilters() {}
  function toSelector (line 2080) | function toSelector( tokens ) {
  function addCombinator (line 2090) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2143) | function elementMatcher( matchers ) {
  function multipleContexts (line 2157) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2166) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2187) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2280) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2338) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function winnow (line 2634) | function winnow( elements, qualifier, not ) {
  function sibling (line 2958) | function sibling( cur, dir ) {
  function createOptions (line 3036) | function createOptions( options ) {
  function completed (line 3430) | function completed() {
  function Data (line 3535) | function Data() {
  function dataAttr (line 3726) | function dataAttr( elem, key, data ) {
  function returnTrue (line 4066) | function returnTrue() {
  function returnFalse (line 4070) | function returnFalse() {
  function safeActiveElement (line 4074) | function safeActiveElement() {
  function manipulationTarget (line 4946) | function manipulationTarget( elem, content ) {
  function disableScript (line 4956) | function disableScript( elem ) {
  function restoreScript (line 4960) | function restoreScript( elem ) {
  function setGlobalEval (line 4973) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 4984) | function cloneCopyEvent( src, dest ) {
  function getAll (line 5018) | function getAll( context, tag ) {
  function fixInput (line 5029) | function fixInput( src, dest ) {
  function actualDisplay (line 5484) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 5506) | function defaultDisplay( nodeName ) {
  function curCSS (line 5553) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 5601) | function addGetHookIf( conditionFn, hookFn ) {
  function computePixelPositionAndBoxSizingReliable (line 5641) | function computePixelPositionAndBoxSizingReliable() {
  function vendorPropName (line 5746) | function vendorPropName( style, name ) {
  function setPositiveNumber (line 5768) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 5776) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 5815) | function getWidthOrHeight( elem, name, extra ) {
  function showHide (line 5859) | function showHide( elements, show ) {
  function Tween (line 6157) | function Tween( elem, options, prop, end, easing ) {
  function createFxNow (line 6326) | function createFxNow() {
  function genFx (line 6334) | function genFx( type, includeWidth ) {
  function createTween (line 6354) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 6368) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 6501) | function propFilter( props, specialEasing ) {
  function Animation (line 6538) | function Animation( elem, properties, options ) {
  function addToPrefiltersOrTransports (line 7586) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 7618) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7645) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 7665) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7721) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 8179) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 8423) | function buildParams( prefix, obj, traditional, add ) {
  function getWindow (line 8917) | function getWindow( elem ) {

FILE: bower_components/jquery/src/ajax.js
  function addToPrefiltersOrTransports (line 50) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 82) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 109) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 129) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 185) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 643) | function done( status, nativeStatusText, responses, headers ) {

FILE: bower_components/jquery/src/callbacks.js
  function createOptions (line 10) | function createOptions( options ) {

FILE: bower_components/jquery/src/core.js
  function isArraylike (line 480) | function isArraylike( obj ) {

FILE: bower_components/jquery/src/core/ready.js
  function completed (line 64) | function completed() {

FILE: bower_components/jquery/src/css.js
  function vendorPropName (line 39) | function vendorPropName( style, name ) {
  function setPositiveNumber (line 61) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 69) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 108) | function getWidthOrHeight( elem, name, extra ) {
  function showHide (line 152) | function showHide( elements, show ) {

FILE: bower_components/jquery/src/css/addGetHookIf.js
  function addGetHookIf (line 3) | function addGetHookIf( conditionFn, hookFn ) {

FILE: bower_components/jquery/src/css/curCSS.js
  function curCSS (line 9) | function curCSS( elem, name, computed ) {

FILE: bower_components/jquery/src/css/defaultDisplay.js
  function actualDisplay (line 15) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 37) | function defaultDisplay( nodeName ) {

FILE: bower_components/jquery/src/css/support.js
  function computePixelPositionAndBoxSizingReliable (line 28) | function computePixelPositionAndBoxSizingReliable() {

FILE: bower_components/jquery/src/data.js
  function dataAttr (line 22) | function dataAttr( elem, key, data ) {

FILE: bower_components/jquery/src/data/Data.js
  function Data (line 7) | function Data() {

FILE: bower_components/jquery/src/effects.js
  function createFxNow (line 75) | function createFxNow() {
  function genFx (line 83) | function genFx( type, includeWidth ) {
  function createTween (line 103) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 117) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 250) | function propFilter( props, specialEasing ) {
  function Animation (line 287) | function Animation( elem, properties, options ) {

FILE: bower_components/jquery/src/effects/Tween.js
  function Tween (line 6) | function Tween( elem, options, prop, end, easing ) {

FILE: bower_components/jquery/src/event.js
  function returnTrue (line 21) | function returnTrue() {
  function returnFalse (line 25) | function returnFalse() {
  function safeActiveElement (line 29) | function safeActiveElement() {

FILE: bower_components/jquery/src/manipulation.js
  function manipulationTarget (line 51) | function manipulationTarget( elem, content ) {
  function disableScript (line 61) | function disableScript( elem ) {
  function restoreScript (line 65) | function restoreScript( elem ) {
  function setGlobalEval (line 78) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 89) | function cloneCopyEvent( src, dest ) {
  function getAll (line 123) | function getAll( context, tag ) {
  function fixInput (line 134) | function fixInput( src, dest ) {

FILE: bower_components/jquery/src/offset.js
  function getWindow (line 20) | function getWindow( elem ) {

FILE: bower_components/jquery/src/serialize.js
  function buildParams (line 15) | function buildParams( prefix, obj, traditional, add ) {

FILE: bower_components/jquery/src/sizzle/dist/sizzle.js
  function Sizzle (line 197) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 311) | function createCache() {
  function markFunction (line 329) | function markFunction( fn ) {
  function assert (line 338) | function assert( fn ) {
  function addHandle (line 360) | function addHandle( attrs, handler ) {
  function siblingCheck (line 375) | function siblingCheck( a, b ) {
  function createInputPseudo (line 402) | function createInputPseudo( type ) {
  function createButtonPseudo (line 413) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 424) | function createPositionalPseudo( fn ) {
  function testContext (line 447) | function testContext( context ) {
  function setFilters (line 1456) | function setFilters() {}
  function toSelector (line 1527) | function toSelector( tokens ) {
  function addCombinator (line 1537) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 1590) | function elementMatcher( matchers ) {
  function multipleContexts (line 1604) | function multipleContexts( selector, contexts, results ) {
  function condense (line 1613) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 1634) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 1727) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 1785) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {

FILE: bower_components/jquery/src/traversing.js
  function sibling (line 127) | function sibling( cur, dir ) {

FILE: bower_components/jquery/src/traversing/findFilter.js
  function winnow (line 11) | function winnow( elements, qualifier, not ) {

FILE: bower_components/mocha/mocha.js
  function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
  function isArray (line 33) | function isArray(val) {
  function EventEmitter (line 42) | function EventEmitter() {}
  function on (line 81) | function on() {
  function Progress (line 219) | function Progress() {
  function Context (line 355) | function Context() {}
  function Hook (line 455) | function Hook(title, fn) {
  function visit (line 702) | function visit(obj, file) {
  function image (line 996) | function image(name) {
  function Mocha (line 1018) | function Mocha(options) {
  function done (line 1422) | function done(failures) {
  function parse (line 1473) | function parse(str) {
  function shortFormat (line 1515) | function shortFormat(ms) {
  function longFormat (line 1538) | function longFormat(ms) {
  function plural (line 1554) | function plural(ms, n, name) {
  function Pending (line 1577) | function Pending(message) {
  function Base (line 1819) | function Base(runner) {
  function pad (line 1925) | function pad(str, len) {
  function inlineDiff (line 1938) | function inlineDiff(err, escape) {
  function unifiedDiff (line 1972) | function unifiedDiff(err, escape) {
  function errorDiff (line 2013) | function errorDiff(err, type, escape) {
  function escapeInvisibles (line 2034) | function escapeInvisibles(line) {
  function colorLines (line 2048) | function colorLines(name, str) {
  function sameType (line 2067) | function sameType(a, b) {
  function Doc (line 2092) | function Doc(runner) {
  function Dot (line 2158) | function Dot(runner) {
  function HTMLCov (line 2228) | function HTMLCov(runner) {
  function coverageClass (line 2252) | function coverageClass(coveragePctg) {
  function HTML (line 2315) | function HTML(runner) {
  function makeUrl (line 2485) | function makeUrl(s) {
  function error (line 2519) | function error(msg) {
  function fragment (line 2528) | function fragment(html) {
  function hideSuitesWithout (line 2550) | function hideSuitesWithout(classname) {
  function unhide (line 2563) | function unhide() {
  function text (line 2576) | function text(el, contents) {
  function on (line 2587) | function on(el, event, fn) {
  function JSONCov (line 2638) | function JSONCov(runner, output) {
  function map (line 2682) | function map(cov) {
  function coverage (line 2722) | function coverage(filename, data) {
  function clean (line 2762) | function clean(test) {
  function List (line 2791) | function List(runner) {
  function clean (line 2825) | function clean(test) {
  function JSONReporter (line 2854) | function JSONReporter(runner) {
  function clean (line 2902) | function clean(test) {
  function errorJSON (line 2918) | function errorJSON(err) {
  function Landing (line 2968) | function Landing(runner) {
  function List (line 3046) | function List(runner) {
  function Markdown (line 3115) | function Markdown(runner) {
  function Min (line 3210) | function Min(runner) {
  function NyanCat (line 3251) | function NyanCat(runner) {
  function draw (line 3321) | function draw(type, n) {
  function write (line 3489) | function write(string) {
  function Progress (line 3524) | function Progress(runner, options) {
  function Spec (line 3609) | function Spec(runner) {
  function TAP (line 3691) | function TAP(runner) {
  function title (line 3738) | function title(test) {
  function XUnit (line 3778) | function XUnit(runner, options) {
  function tag (line 3888) | function tag(name, attrs, close, content) {
  function cdata (line 3910) | function cdata(str) {
  function Runnable (line 3961) | function Runnable(title, fn) {
  function multiple (line 4139) | function multiple(err) {
  function done (line 4148) | function done(err) {
  function callFn (line 4201) | function callFn(fn) {
  function callFnAsync (line 4221) | function callFnAsync(fn) {
  function Runner (line 4302) | function Runner(suite, delay) {
  function next (line 4520) | function next(i) {
  function next (line 4576) | function next(suite) {
  function hookErr (line 4679) | function hookErr(_, errSuite, after) {
  function next (line 4705) | function next(err, errSuite) {
  function next (line 4820) | function next(errSuite) {
  function done (line 4854) | function done(errSuite) {
  function uncaught (line 4966) | function uncaught(err) {
  function start (line 4970) | function start() {
  function filterLeaks (line 5024) | function filterLeaks(ok, globals) {
  function extraGlobals (line 5065) | function extraGlobals() {
  function Suite (line 5129) | function Suite(title, parentContext) {
  function Test (line 5471) | function Test(title, fn) {
  function ignored (line 5691) | function ignored(path) {
  function highlight (line 5795) | function highlight(js) {
  function emptyRepresentation (line 5834) | function emptyRepresentation(value, type) {
  function jsonStringify (line 5928) | function jsonStringify(object, spaces, depth) {
  function withStack (line 6032) | function withStack(value, fn) {
  function isMochaInternal (line 6186) | function isMochaInternal(line) {
  function isNodeInternal (line 6193) | function isNodeInternal(line) {
  function BrowserStdout (line 6234) | function BrowserStdout(opts) {
  function Bar (line 6304) | function Bar () {}
  function kMaxLength (line 6318) | function kMaxLength () {
  function Buffer (line 6336) | function Buffer (arg) {
  function fromNumber (line 6360) | function fromNumber (that, length) {
  function fromString (line 6370) | function fromString (that, string, encoding) {
  function fromObject (line 6381) | function fromObject (that, object) {
  function fromBuffer (line 6404) | function fromBuffer (that, buffer) {
  function fromArray (line 6411) | function fromArray (that, array) {
  function fromTypedArray (line 6421) | function fromTypedArray (that, array) {
  function fromArrayBuffer (line 6433) | function fromArrayBuffer (that, array) {
  function fromArrayLike (line 6445) | function fromArrayLike (that, array) {
  function fromJsonObject (line 6456) | function fromJsonObject (that, object) {
  function allocate (line 6472) | function allocate (that, length) {
  function checked (line 6488) | function checked (length) {
  function SlowBuffer (line 6498) | function SlowBuffer (subject, encoding) {
  function byteLength (line 6582) | function byteLength (string, encoding) {
  function slowToString (line 6623) | function slowToString (encoding, start, end) {
  function arrayIndexOf (line 6720) | function arrayIndexOf (arr, val, byteOffset) {
  function hexWrite (line 6748) | function hexWrite (buf, string, offset, length) {
  function utf8Write (line 6775) | function utf8Write (buf, string, offset, length) {
  function asciiWrite (line 6779) | function asciiWrite (buf, string, offset, length) {
  function binaryWrite (line 6783) | function binaryWrite (buf, string, offset, length) {
  function base64Write (line 6787) | function base64Write (buf, string, offset, length) {
  function ucs2Write (line 6791) | function ucs2Write (buf, string, offset, length) {
  function base64Slice (line 6874) | function base64Slice (buf, start, end) {
  function utf8Slice (line 6882) | function utf8Slice (buf, start, end) {
  function decodeCodePointsArray (line 6960) | function decodeCodePointsArray (codePoints) {
  function asciiSlice (line 6978) | function asciiSlice (buf, start, end) {
  function binarySlice (line 6988) | function binarySlice (buf, start, end) {
  function hexSlice (line 6998) | function hexSlice (buf, start, end) {
  function utf16leSlice (line 7011) | function utf16leSlice (buf, start, end) {
  function checkOffset (line 7060) | function checkOffset (offset, ext, length) {
  function checkInt (line 7221) | function checkInt (buf, value, offset, ext, max, min) {
  function objectWriteUInt16 (line 7268) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
  function objectWriteUInt32 (line 7302) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
  function checkIEEE754 (line 7446) | function checkIEEE754 (buf, value, offset, ext, max, min) {
  function writeFloat (line 7452) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
  function writeDouble (line 7468) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
  function base64clean (line 7653) | function base64clean (str) {
  function stringtrim (line 7665) | function stringtrim (str) {
  function toHex (line 7670) | function toHex (n) {
  function utf8ToBytes (line 7675) | function utf8ToBytes (string, units) {
  function asciiToBytes (line 7755) | function asciiToBytes (str) {
  function utf16leToBytes (line 7764) | function utf16leToBytes (str, units) {
  function base64ToBytes (line 7780) | function base64ToBytes (str) {
  function blitBuffer (line 7784) | function blitBuffer (src, dst, offset, length) {
  function decode (line 7810) | function decode (elt) {
  function b64ToByteArray (line 7828) | function b64ToByteArray (b64) {
  function uint8ToBase64 (line 7874) | function uint8ToBase64 (uint8) {
  function EventEmitter (line 8061) | function EventEmitter() {
  function g (line 8203) | function g() {
  function isFunction (line 8326) | function isFunction(arg) {
  function isNumber (line 8330) | function isNumber(arg) {
  function isObject (line 8334) | function isObject(arg) {
  function isUndefined (line 8338) | function isUndefined(arg) {
  function cleanUpNextTick (line 8428) | function cleanUpNextTick() {
  function drainQueue (line 8440) | function drainQueue() {
  function Item (line 8478) | function Item(fun, array) {
  function noop (line 8492) | function noop() {}
  function Duplex (line 8569) | function Duplex(options) {
  function onend (line 8590) | function onend() {
  function forEach (line 8601) | function forEach (xs, f) {
  function PassThrough (line 8645) | function PassThrough(options) {
  function ReadableState (line 8722) | function ReadableState(options, stream) {
  function Readable (line 8790) | function Readable(options) {
  function readableAddChunk (line 8828) | function readableAddChunk(stream, state, chunk, encoding, addToFront) {
  function needMoreData (line 8884) | function needMoreData(state) {
  function roundUpToNextPowerOf2 (line 8902) | function roundUpToNextPowerOf2(n) {
  function howMuchToRead (line 8914) | function howMuchToRead(n, state) {
  function chunkInvalid (line 9067) | function chunkInvalid(state, chunk) {
  function onEofChunk (line 9079) | function onEofChunk(stream, state) {
  function emitReadable (line 9096) | function emitReadable(stream) {
  function emitReadable_ (line 9111) | function emitReadable_(stream) {
  function maybeReadMore (line 9124) | function maybeReadMore(stream, state) {
  function maybeReadMore_ (line 9133) | function maybeReadMore_(stream, state) {
  function onunpipe (line 9185) | function onunpipe(readable) {
  function onend (line 9192) | function onend() {
  function cleanup (line 9204) | function cleanup() {
  function ondata (line 9227) | function ondata(chunk) {
  function onerror (line 9240) | function onerror(er) {
  function onclose (line 9259) | function onclose() {
  function onfinish (line 9264) | function onfinish() {
  function unpipe (line 9271) | function unpipe() {
  function pipeOnDrain (line 9288) | function pipeOnDrain(src) {
  function resume (line 9406) | function resume(stream, state) {
  function resume_ (line 9415) | function resume_(stream, state) {
  function flow (line 9433) | function flow(stream) {
  function fromList (line 9512) | function fromList(n, state) {
  function endReadable (line 9576) | function endReadable(stream) {
  function forEach (line 9597) | function forEach (xs, f) {
  function indexOf (line 9603) | function indexOf (xs, x) {
  function TransformState (line 9688) | function TransformState(options, stream) {
  function afterTransform (line 9699) | function afterTransform(stream, er, data) {
  function Transform (line 9725) | function Transform(options) {
  function done (line 9804) | function done(stream, er) {
  function WriteReq (line 9867) | function WriteReq(chunk, encoding, cb) {
  function WritableState (line 9873) | function WritableState(options, stream) {
  function Writable (line 9961) | function Writable(options) {
  function writeAfterEnd (line 9983) | function writeAfterEnd(stream, state, cb) {
  function validChunk (line 9997) | function validChunk(stream, state, chunk, cb) {
  function decodeChunk (line 10061) | function decodeChunk(state, chunk, encoding) {
  function writeOrBuffer (line 10073) | function writeOrBuffer(stream, state, chunk, encoding, cb) {
  function doWrite (line 10094) | function doWrite(stream, state, writev, len, chunk, encoding, cb) {
  function onwriteError (line 10106) | function onwriteError(stream, state, sync, er, cb) {
  function onwriteStateUpdate (line 10121) | function onwriteStateUpdate(state) {
  function onwrite (line 10128) | function onwrite(stream, er) {
  function afterWrite (line 10158) | function afterWrite(stream, state, finished, cb) {
  function onwriteDrain (line 10169) | function onwriteDrain(stream, state) {
  function clearBuffer (line 10178) | function clearBuffer(stream, state) {
  function needFinish (line 10263) | function needFinish(stream, state) {
  function prefinish (line 10270) | function prefinish(stream, state) {
  function finishMaybe (line 10277) | function finishMaybe(stream, state) {
  function endWritable (line 10290) | function endWritable(stream, state, cb) {
  function isArray (line 10328) | function isArray(ar) {
  function isBoolean (line 10333) | function isBoolean(arg) {
  function isNull (line 10338) | function isNull(arg) {
  function isNullOrUndefined (line 10343) | function isNullOrUndefined(arg) {
  function isNumber (line 10348) | function isNumber(arg) {
  function isString (line 10353) | function isString(arg) {
  function isSymbol (line 10358) | function isSymbol(arg) {
  function isUndefined (line 10363) | function isUndefined(arg) {
  function isRegExp (line 10368) | function isRegExp(re) {
  function isObject (line 10373) | function isObject(arg) {
  function isDate (line 10378) | function isDate(d) {
  function isError (line 10383) | function isError(e) {
  function isFunction (line 10389) | function isFunction(arg) {
  function isPrimitive (line 10394) | function isPrimitive(arg) {
  function isBuffer (line 10404) | function isBuffer(arg) {
  function objectToString (line 10409) | function objectToString(o) {
  function Stream (line 10473) | function Stream() {
  function ondata (line 10480) | function ondata(chunk) {
  function ondrain (line 10490) | function ondrain() {
  function onend (line 10506) | function onend() {
  function onclose (line 10514) | function onclose() {
  function onerror (line 10522) | function onerror(er) {
  function cleanup (line 10533) | function cleanup() {
  function assertEncoding (line 10593) | function assertEncoding(encoding) {
  function passThroughWrite (line 10769) | function passThroughWrite(buffer) {
  function utf16DetectIncompleteChar (line 10773) | function utf16DetectIncompleteChar(buffer) {
  function base64DetectIncompleteChar (line 10778) | function base64DetectIncompleteChar(buffer) {
  function deprecated (line 10869) | function deprecated() {
  function inspect (line 10916) | function inspect(obj, opts) {
  function stylizeWithColor (line 10974) | function stylizeWithColor(str, styleType) {
  function stylizeNoColor (line 10986) | function stylizeNoColor(str, styleType) {
  function arrayToHash (line 10991) | function arrayToHash(array) {
  function formatValue (line 11002) | function formatValue(ctx, value, recurseTimes) {
  function formatPrimitive (line 11115) | function formatPrimitive(ctx, value) {
  function formatError (line 11134) | function formatError(value) {
  function formatArray (line 11139) | function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
  function formatProperty (line 11159) | function formatProperty(ctx, value, recurseTimes, visibleKeys, key, arra...
  function reduceToSingleString (line 11218) | function reduceToSingleString(output, base, braces) {
  function isArray (line 11241) | function isArray(ar) {
  function isBoolean (line 11246) | function isBoolean(arg) {
  function isNull (line 11251) | function isNull(arg) {
  function isNullOrUndefined (line 11256) | function isNullOrUndefined(arg) {
  function isNumber (line 11261) | function isNumber(arg) {
  function isString (line 11266) | function isString(arg) {
  function isSymbol (line 11271) | function isSymbol(arg) {
  function isUndefined (line 11276) | function isUndefined(arg) {
  function isRegExp (line 11281) | function isRegExp(re) {
  function isObject (line 11286) | function isObject(arg) {
  function isDate (line 11291) | function isDate(d) {
  function isError (line 11296) | function isError(e) {
  function isFunction (line 11302) | function isFunction(arg) {
  function isPrimitive (line 11307) | function isPrimitive(arg) {
  function objectToString (line 11319) | function objectToString(o) {
  function pad (line 11324) | function pad(n) {
  function timestamp (line 11333) | function timestamp() {
  function hasOwnProperty (line 11375) | function hasOwnProperty(obj, prop) {
  function map (line 11401) | function map(arr, mapper, that) {
  function clonePath (line 11413) | function clonePath(path) {
  function removeEmpty (line 11416) | function removeEmpty(array) {
  function escapeHTML (line 11425) | function escapeHTML(s) {
  function canonicalize (line 11437) | function canonicalize(obj, stack, replacementStack) {
  function buildValues (line 11482) | function buildValues(components, newString, oldString, useLongestToken) {
  function Diff (line 11526) | function Diff(ignoreWhitespace) {
  function done (line 11533) | function done(value) {
  function execEditLength (line 11569) | function execEditLength() {
  function contextLines (line 11796) | function contextLines(lines) {
  function eofNL (line 11801) | function eofNL(curRange, i, current) {
  function which (line 12030) | function which(name) {
  function growl (line 12159) | function growl(msg, options, fn) {
  function timeslice (line 12323) | function timeslice() {

FILE: bower_components/sinonjs/sinon.js
  function cb (line 131) | function cb(err, res) {
  function makeDone (line 139) | function makeDone(num) {
  function cb (line 152) | function cb(err, res) {
  function callNext (line 159) | function callNext() {
  function next (line 166) | function next(err, result) {
  function keys (line 285) | function keys(object) {
  function isCircular (line 299) | function isCircular(object, objects) {
  function ascii (line 313) | function ascii(object, processed, indent) {
  function isDOMNode (line 471) | function isDOMNode(obj) {
  function isElement (line 490) | function isElement(obj) {
  function isFunction (line 494) | function isFunction(obj) {
  function mirrorProperties (line 498) | function mirrorProperties(target, source) {
  function isRestorable (line 506) | function isRestorable (obj) {
  function assertType (line 839) | function assertType(value, type, name) {
  function isMatcher (line 853) | function isMatcher(object) {
  function matchObject (line 857) | function matchObject(expectation, actual) {
  function createPropertyMatcher (line 1009) | function createPropertyMatcher(propertyTest, messagePrefix) {
  function throwYieldError (line 1079) | function throwYieldError(proxy, text, args) {
  function createSpyCall (line 1231) | function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
  function spy (line 1270) | function spy(object, property) {
  function matchingFake (line 1283) | function matchingFake(fakes, args, strict) {
  function incrementCallCount (line 1297) | function incrementCallCount() {
  function createCallProperties (line 1306) | function createCallProperties() {
  function createProxy (line 1314) | function createProxy(func) {
  function delegateToCalls (line 1506) | function delegateToCalls(method, matchAny, actual, notCalled) {
  function stub (line 1658) | function stub(object, property, func) {
  function getChangingValue (line 1688) | function getChangingValue(stub, property) {
  function getCallback (line 1697) | function getCallback(stub, args) {
  function getCallbackError (line 1722) | function getCallbackError(stub, func, args) {
  function callCallback (line 1757) | function callCallback(stub, args) {
  function throwsException (line 1783) | function throwsException(error, message) {
  function mock (line 2030) | function mock(object) {
  function each (line 2041) | function each(collection, callback) {
  function callCountInWords (line 2168) | function callCountInWords(callCount) {
  function expectedCallCountInWords (line 2176) | function expectedCallCountInWords(expectation) {
  function receivedMinCalls (line 2197) | function receivedMinCalls(expectation) {
  function receivedMaxCalls (line 2202) | function receivedMaxCalls(expectation) {
  function getFakes (line 2456) | function getFakes(fakeCollection) {
  function each (line 2464) | function each(fakeCollection, method) {
  function compact (line 2474) | function compact(fakeCollection) {
  function addTimer (line 2607) | function addTimer(args, recurring) {
  function parseTime (line 2633) | function parseTime(str) {
  function createObject (line 2659) | function createObject(object) {
  function ClockDate (line 2805) | function ClockDate(year, month, date, hour, minute, second, ms) {
  function mirrorDateProperties (line 2832) | function mirrorDateProperties(target, source) {
  function restore (line 2863) | function restore() {
  function stubGlobal (line 2879) | function stubGlobal(method, clock) {
  function FakeXMLHttpRequest (line 3059) | function FakeXMLHttpRequest() {
  function verifyState (line 3088) | function verifyState(xhr) {
  function each (line 3100) | function each(collection, callback) {
  function some (line 3106) | function some(collection, callback) {
  function verifyRequestSent (line 3178) | function verifyRequestSent(xhr) {
  function verifyHeadersReceived (line 3184) | function verifyHeadersReceived(xhr) {
  function verifyResponseBodyType (line 3190) | function verifyResponseBodyType(body) {
  function F (line 3538) | function F() {}
  function create (line 3540) | function create(proto) {
  function responseArray (line 3545) | function responseArray(handler) {
  function matchOne (line 3563) | function matchOne(response, reqMethod, reqUrl) {
  function match (line 3572) | function match(response, request) {
  function log (line 3593) | function log(response, request) {
  function Server (line 3749) | function Server() {}
  function exposeValue (line 3836) | function exposeValue(sandbox, config, key, value) {
  function prepareSandboxFromConfig (line 3848) | function prepareSandboxFromConfig(config) {
  function test (line 3963) | function test(callback) {
  function createTest (line 4036) | function createTest(property, setUp, tearDown) {
  function testCase (line 4062) | function testCase(tests, prefix) {
  function verifyIsStub (line 4135) | function verifyIsStub() {
  function failAssertion (line 4155) | function failAssertion(object, msg) {
  function mirrorPropAsAssertion (line 4161) | function mirrorPropAsAssertion(name, method, message) {
  function exposedName (line 4188) | function exposedName(prefix, prop) {

FILE: dist/parsley.js
  function _typeof (line 20) | function _typeof(obj) {
  function _extends (line 34) | function _extends() {
  function _slicedToArray (line 52) | function _slicedToArray(arr, i) {
  function _toConsumableArray (line 56) | function _toConsumableArray(arr) {
  function _arrayWithoutHoles (line 60) | function _arrayWithoutHoles(arr) {
  function _arrayWithHoles (line 68) | function _arrayWithHoles(arr) {
  function _iterableToArray (line 72) | function _iterableToArray(iter) {
  function _iterableToArrayLimit (line 76) | function _iterableToArrayLimit(arr, i) {
  function _nonIterableSpread (line 106) | function _nonIterableSpread() {
  function _nonIterableRest (line 110) | function _nonIterableRest() {
  function adapt (line 2216) | function adapt(fn, context) {
  function eventName (line 2231) | function eventName(name) {
  function InputEvent (line 2411) | function InputEvent() {

FILE: doc/assets/example.js
  function createCodeExample (line 4) | function createCodeExample() {
  function launchEditor (line 13) | function launchEditor() {
  function track (line 42) | function track() {
  function init (line 52) | function init() {

FILE: doc/assets/spec-build.js
  function setup_ew (line 20) | function setup_ew () {
  function setup_dlc (line 40) | function setup_dlc () {
  function setup (line 47) | function setup () {
  function _typeof (line 77) | function _typeof(obj) {
  function _extends (line 91) | function _extends() {
  function _slicedToArray (line 109) | function _slicedToArray(arr, i) {
  function _toConsumableArray (line 113) | function _toConsumableArray(arr) {
  function _arrayWithoutHoles (line 117) | function _arrayWithoutHoles(arr) {
  function _arrayWithHoles (line 125) | function _arrayWithHoles(arr) {
  function _iterableToArray (line 129) | function _iterableToArray(iter) {
  function _iterableToArrayLimit (line 133) | function _iterableToArrayLimit(arr, i) {
  function _nonIterableSpread (line 163) | function _nonIterableSpread() {
  function _nonIterableRest (line 167) | function _nonIterableRest() {
  function adapt (line 2273) | function adapt(fn, context) {
  function eventName (line 2288) | function eventName(name) {
  function InputEvent (line 2468) | function InputEvent() {

FILE: gulpfile.babel.js
  function lint (line 24) | function lint(files) {
  function buildRollup (line 31) | async function buildRollup(...rules) {
  function buildDoc (line 39) | function buildDoc(done) {
  function copyI18n (line 60) | function copyI18n() {
  function writeVersion (line 67) | function writeVersion() {
  function buildDocTest (line 77) | function buildDocTest() {
  function runTests (line 85) | function runTests() {
  function testBrowser (line 92) | function testBrowser() {
  function gitClean (line 100) | function gitClean(done) {
  function npmPublish (line 109) | function npmPublish() {
  function gitPush (line 114) | function gitPush() {
  function gitPushPages (line 119) | function gitPushPages() {
  function gitTag (line 124) | function gitTag() {

FILE: src/parsley/pubsub.js
  function adapt (line 12) | function adapt(fn, context) {
  function eventName (line 26) | function eventName(name) {

FILE: src/vendor/inputevent.js
  function InputEvent (line 11) | function InputEvent() {

FILE: tools/rollup_options.js
  function rollupOptions (line 13) | function rollupOptions({
Condensed preview — 444 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,239K chars).
[
  {
    "path": ".babelrc",
    "chars": 131,
    "preview": "{\n  \"presets\": [\n    [\n      \"@babel/preset-env\", {\n        \"targets\": {\n          \"node\": \"current\"\n        }\n      }\n "
  },
  {
    "path": ".editorconfig",
    "chars": 314,
    "preview": "# EditorConfig is awesome: http://EditorConfig.org\n\nroot = true;\n\n[*]\n#  Ensure there's no lingering whitespace\ntrim_tra"
  },
  {
    "path": ".eslintrc",
    "chars": 147,
    "preview": "{\n  \"parserOptions\": {\n    \"ecmaVersion\": 6,\n    \"sourceType\": \"module\"\n  },\n  \"rules\": {},\n  \"env\": {\n    \"browser\": tr"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 18,
    "preview": "github: marcandre\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 762,
    "preview": "What kind of issue is this? (put 'x' between the square brackets)\n\n - [ ] Question. This issue tracker is not the place "
  },
  {
    "path": ".gitignore",
    "chars": 492,
    "preview": ".DS_Store\n\n# Logs\nlogs\n*.log\n\n# Runtime data\npids\n*.pid\n*.seed\n\n# Directory for instrumented libs generated by jscoverag"
  },
  {
    "path": ".npmignore",
    "chars": 109,
    "preview": "/.github/\n/bower_components/\n/doc/\n/test/\n\n/CONTRIBUTING.md\n/gulpfile.babel.js\n/CNAME\n/yarn.lock\n/index.html\n"
  },
  {
    "path": ".travis.yml",
    "chars": 364,
    "preview": "language: node_js\nnode_js:\n  - \"8\"\nsudo: false\nscript: \"gulp test\"\nenv:\n  - JQUERY=1.11\n  - JQUERY=1.12\n  - JQUERY=2.1\n "
  },
  {
    "path": "CHANGELOG.md",
    "chars": 9938,
    "preview": "# Parsley 2.x changelog\n\nParsley follows [semver](https://semver.org/). This lists new features only. For bug fixes and "
  },
  {
    "path": "CNAME",
    "chars": 14,
    "preview": "parsleyjs.org\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2848,
    "preview": "# Contributing\n\nHi there.\n\nThanks for your interest in Parsley and your will to contribute. You're welcome!\n\nFirst thing"
  },
  {
    "path": "LICENSE",
    "chars": 1127,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013-2020 Guillaume Potier, Marc-André Lafortune and contributors\n\nPermission is he"
  },
  {
    "path": "README.md",
    "chars": 1890,
    "preview": "# Parsley\n\n[![Build Status](https://travis-ci.org/guillaumepotier/Parsley.js.svg?branch=master)](https://travis-ci.org/g"
  },
  {
    "path": "SECURITY.md",
    "chars": 178,
    "preview": "# Security Policy\n\n## Supported Versions\n\nLatest release\n\n## Reporting a Vulnerability\n\nContact Marc-André Lafortune (fo"
  },
  {
    "path": "UPGRADE-2.0.md",
    "chars": 2345,
    "preview": "# UPGRADE FROM 1.x to 2.0\n\n## General\n\n- default namespace is now `data-parsley-` for DOM-API\n  (not anymore 1.2.x `pars"
  },
  {
    "path": "UPGRADE-2.1.md",
    "chars": 544,
    "preview": "# UPGRADE FROM 2.0.x to 2.1.0\n\n## General\n\n2.1.0 version introduced some minor BC Breaks. Here is the list:\n\n### `isVali"
  },
  {
    "path": "UPGRADE-2.2.md",
    "chars": 684,
    "preview": "# UPGRADE FROM 2.1.x to 2.2.0\n\n## Where's parsley.remote?\n\nBoth versions (remote and basic) of Parsley have been merged."
  },
  {
    "path": "bower.json",
    "chars": 655,
    "preview": "{\n  \"name\": \"parsleyjs\",\n  \"ignore\": [\n    \"**/.*\",\n    \"build\",\n    \"test\",\n    \"doc\",\n    \"*.md\",\n    \".json\",\n    \"*."
  },
  {
    "path": "bower_components/bootstrap/.bower.json",
    "chars": 938,
    "preview": "{\n  \"name\": \"bootstrap\",\n  \"version\": \"3.0.3\",\n  \"main\": [\n    \"./dist/js/bootstrap.js\",\n    \"./dist/css/bootstrap.css\","
  },
  {
    "path": "bower_components/bootstrap/DOCS-LICENSE",
    "chars": 19466,
    "preview": "Creative Commons Legal Code\n\nAttribution 3.0 Unported\n\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT P"
  },
  {
    "path": "bower_components/bootstrap/LICENSE",
    "chars": 10173,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "bower_components/bootstrap/LICENSE-MIT",
    "chars": 1079,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013 Twitter, Inc\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "bower_components/bootstrap/README.md",
    "chars": 7533,
    "preview": "# [Bootstrap](http://getbootstrap.com) [![Build Status](https://secure.travis-ci.org/twbs/bootstrap.png)](http://travis-"
  },
  {
    "path": "bower_components/bootstrap/bower.json",
    "chars": 633,
    "preview": "{\n  \"name\": \"bootstrap\",\n  \"version\": \"3.0.3\",\n  \"main\": [\n    \"./dist/js/bootstrap.js\", \n    \"./dist/css/bootstrap.css\""
  },
  {
    "path": "bower_components/bootstrap/dist/css/bootstrap-theme.css",
    "chars": 14716,
    "preview": "/*!\n * Bootstrap v3.0.3 (http://getbootstrap.com)\n * Copyright 2013 Twitter, Inc.\n * Licensed under http://www.apache.or"
  },
  {
    "path": "bower_components/bootstrap/dist/css/bootstrap.css",
    "chars": 122848,
    "preview": "/*!\n * Bootstrap v3.0.3 (http://getbootstrap.com)\n * Copyright 2013 Twitter, Inc.\n * Licensed under http://www.apache.or"
  },
  {
    "path": "bower_components/bootstrap/dist/js/bootstrap.js",
    "chars": 58519,
    "preview": "/*!\n * Bootstrap v3.0.3 (http://getbootstrap.com)\n * Copyright 2013 Twitter, Inc.\n * Licensed under http://www.apache.or"
  },
  {
    "path": "bower_components/bootstrap/js/affix.js",
    "chars": 3861,
    "preview": "/* ========================================================================\n * Bootstrap: affix.js v3.0.3\n * http://getb"
  },
  {
    "path": "bower_components/bootstrap/js/alert.js",
    "chars": 2582,
    "preview": "/* ========================================================================\n * Bootstrap: alert.js v3.0.3\n * http://getb"
  },
  {
    "path": "bower_components/bootstrap/js/button.js",
    "chars": 3265,
    "preview": "/* ========================================================================\n * Bootstrap: button.js v3.0.3\n * http://get"
  },
  {
    "path": "bower_components/bootstrap/js/carousel.js",
    "chars": 6493,
    "preview": "/* ========================================================================\n * Bootstrap: carousel.js v3.0.3\n * http://g"
  },
  {
    "path": "bower_components/bootstrap/js/collapse.js",
    "chars": 5228,
    "preview": "/* ========================================================================\n * Bootstrap: collapse.js v3.0.3\n * http://g"
  },
  {
    "path": "bower_components/bootstrap/js/dropdown.js",
    "chars": 4477,
    "preview": "/* ========================================================================\n * Bootstrap: dropdown.js v3.0.3\n * http://g"
  },
  {
    "path": "bower_components/bootstrap/js/modal.js",
    "chars": 6975,
    "preview": "/* ========================================================================\n * Bootstrap: modal.js v3.0.3\n * http://getb"
  },
  {
    "path": "bower_components/bootstrap/js/popover.js",
    "chars": 3488,
    "preview": "/* ========================================================================\n * Bootstrap: popover.js v3.0.3\n * http://ge"
  },
  {
    "path": "bower_components/bootstrap/js/scrollspy.js",
    "chars": 4635,
    "preview": "/* ========================================================================\n * Bootstrap: scrollspy.js v3.0.3\n * http://"
  },
  {
    "path": "bower_components/bootstrap/js/tab.js",
    "chars": 3413,
    "preview": "/* ========================================================================\n * Bootstrap: tab.js v3.0.3\n * http://getboo"
  },
  {
    "path": "bower_components/bootstrap/js/tooltip.js",
    "chars": 11908,
    "preview": "/* ========================================================================\n * Bootstrap: tooltip.js v3.0.3\n * http://ge"
  },
  {
    "path": "bower_components/bootstrap/js/transition.js",
    "chars": 1964,
    "preview": "/* ========================================================================\n * Bootstrap: transition.js v3.0.3\n * http:/"
  },
  {
    "path": "bower_components/bootstrap/less/alerts.less",
    "chars": 1430,
    "preview": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert"
  },
  {
    "path": "bower_components/bootstrap/less/badges.less",
    "chars": 1005,
    "preview": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base classes\n.badge {\n  display: inline-block;\n "
  },
  {
    "path": "bower_components/bootstrap/less/bootstrap.less",
    "chars": 1071,
    "preview": "// Core variables and mixins\n@import \"variables.less\";\n@import \"mixins.less\";\n\n// Reset\n@import \"normalize.less\";\n@impor"
  },
  {
    "path": "bower_components/bootstrap/less/breadcrumbs.less",
    "chars": 540,
    "preview": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bo"
  },
  {
    "path": "bower_components/bootstrap/less/button-groups.less",
    "chars": 4919,
    "preview": "//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-gro"
  },
  {
    "path": "bower_components/bootstrap/less/buttons.less",
    "chars": 3499,
    "preview": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------"
  },
  {
    "path": "bower_components/bootstrap/less/carousel.less",
    "chars": 4592,
    "preview": "//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators"
  },
  {
    "path": "bower_components/bootstrap/less/close.less",
    "chars": 683,
    "preview": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-s"
  },
  {
    "path": "bower_components/bootstrap/less/code.less",
    "chars": 1102,
    "preview": "//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\nco"
  },
  {
    "path": "bower_components/bootstrap/less/component-animations.less",
    "chars": 509,
    "preview": "//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `."
  },
  {
    "path": "bower_components/bootstrap/less/dropdowns.less",
    "chars": 3821,
    "preview": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display:"
  },
  {
    "path": "bower_components/bootstrap/less/forms.less",
    "chars": 9172,
    "preview": "//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline"
  },
  {
    "path": "bower_components/bootstrap/less/glyphicons.less",
    "chars": 14918,
    "preview": "//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus a"
  },
  {
    "path": "bower_components/bootstrap/less/grid.less",
    "chars": 1793,
    "preview": "//\n// Grid system\n// --------------------------------------------------\n\n// Set the container width, and override it for"
  },
  {
    "path": "bower_components/bootstrap/less/input-groups.less",
    "chars": 3281,
    "preview": "//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.i"
  },
  {
    "path": "bower_components/bootstrap/less/jumbotron.less",
    "chars": 936,
    "preview": "//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding: @jumbotron-padding;\n  ma"
  },
  {
    "path": "bower_components/bootstrap/less/labels.less",
    "chars": 1084,
    "preview": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3e"
  },
  {
    "path": "bower_components/bootstrap/less/list-group.less",
    "chars": 1914,
    "preview": "//\n// List groups\n// --------------------------------------------------\n\n// Base class\n//\n// Easily usable on <ul>, <ol>"
  },
  {
    "path": "bower_components/bootstrap/less/media.less",
    "chars": 848,
    "preview": "// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------"
  },
  {
    "path": "bower_components/bootstrap/less/mixins.less",
    "chars": 24469,
    "preview": "//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clear"
  },
  {
    "path": "bower_components/bootstrap/less/modals.less",
    "chars": 3078,
    "preview": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scr"
  },
  {
    "path": "bower_components/bootstrap/less/navbar.less",
    "chars": 13814,
    "preview": "//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static n"
  },
  {
    "path": "bower_components/bootstrap/less/navs.less",
    "chars": 4915,
    "preview": "//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// ------------------------------------"
  },
  {
    "path": "bower_components/bootstrap/less/normalize.less",
    "chars": 7275,
    "preview": "/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\n\n// ======================================================="
  },
  {
    "path": "bower_components/bootstrap/less/pager.less",
    "chars": 865,
    "preview": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @li"
  },
  {
    "path": "bower_components/bootstrap/less/pagination.less",
    "chars": 1858,
    "preview": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-"
  },
  {
    "path": "bower_components/bootstrap/less/panels.less",
    "chars": 4028,
    "preview": "//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-heigh"
  },
  {
    "path": "bower_components/bootstrap/less/popovers.less",
    "chars": 3282,
    "preview": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left"
  },
  {
    "path": "bower_components/bootstrap/less/print.less",
    "chars": 1650,
    "preview": "//\n// Basic print styles\n// --------------------------------------------------\n// Source: https://github.com/h5bp/html5-"
  },
  {
    "path": "bower_components/bootstrap/less/progress-bars.less",
    "chars": 1589,
    "preview": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -----------------------"
  },
  {
    "path": "bower_components/bootstrap/less/responsive-utilities.less",
    "chars": 4880,
    "preview": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n/"
  },
  {
    "path": "bower_components/bootstrap/less/scaffolding.less",
    "chars": 1867,
    "preview": "//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n\n*,\n*:before,\n*:after "
  },
  {
    "path": "bower_components/bootstrap/less/tables.less",
    "chars": 4304,
    "preview": "//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  max-width: 100%;\n  background-color: @tab"
  },
  {
    "path": "bower_components/bootstrap/less/theme.less",
    "chars": 6854,
    "preview": "\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@"
  },
  {
    "path": "bower_components/bootstrap/less/thumbnails.less",
    "chars": 742,
    "preview": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.th"
  },
  {
    "path": "bower_components/bootstrap/less/tooltip.less",
    "chars": 2576,
    "preview": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  "
  },
  {
    "path": "bower_components/bootstrap/less/type.less",
    "chars": 5179,
    "preview": "//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h"
  },
  {
    "path": "bower_components/bootstrap/less/utilities.less",
    "chars": 780,
    "preview": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.c"
  },
  {
    "path": "bower_components/bootstrap/less/variables.less",
    "chars": 19762,
    "preview": "//\n// Variables\n// --------------------------------------------------\n\n\n// Global values\n// ----------------------------"
  },
  {
    "path": "bower_components/bootstrap/less/wells.less",
    "chars": 535,
    "preview": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding:"
  },
  {
    "path": "bower_components/expect.js/.bower.json",
    "chars": 361,
    "preview": "{\n  \"name\": \"expect.js\",\n  \"homepage\": \"https://github.com/Automattic/expect.js\",\n  \"version\": \"0.3.1\",\n  \"_release\": \"0"
  },
  {
    "path": "bower_components/expect.js/.gitignore",
    "chars": 23,
    "preview": "node_modules\n.DS_Store\n"
  },
  {
    "path": "bower_components/expect.js/.npmignore",
    "chars": 22,
    "preview": "support\ntest\nMakefile\n"
  },
  {
    "path": "bower_components/expect.js/History.md",
    "chars": 1706,
    "preview": "\n0.3.0 / 2014-02-20\n==================\n\n * renmaed to `index.js`\n * added repository to package.json\n * remove unused va"
  },
  {
    "path": "bower_components/expect.js/Makefile",
    "chars": 196,
    "preview": "\nREPORTER = dot\n\ntest:\n\t@./node_modules/.bin/mocha \\\n\t\t--require ./test/common \\\n\t\t--reporter $(REPORTER) \\\n\t\t--growl \\\n"
  },
  {
    "path": "bower_components/expect.js/README.md",
    "chars": 6142,
    "preview": "# Expect\n\nMinimalistic BDD assertion toolkit based on\n[should.js](http://github.com/visionmedia/should.js)\n\n```js\nexpect"
  },
  {
    "path": "bower_components/expect.js/index.js",
    "chars": 36447,
    "preview": "(function (global, module) {\n\n  var exports = module.exports;\n\n  /**\n   * Exports.\n   */\n\n  module.exports = expect;\n  e"
  },
  {
    "path": "bower_components/expect.js/package.json",
    "chars": 300,
    "preview": "{\n    \"name\": \"expect.js\"\n  , \"version\": \"0.3.1\"\n  , \"description\": \"BDD style assertions for node and the browser.\"\n  ,"
  },
  {
    "path": "bower_components/expect.js/support/jquery.js",
    "chars": 269348,
    "preview": "/*!\n * jQuery JavaScript Library v1.7.1\n * http://jquery.com/\n *\n * Copyright 2011, John Resig\n * Dual licensed under th"
  },
  {
    "path": "bower_components/expect.js/test/common.js",
    "chars": 143,
    "preview": "\n/*!\n * Common test dependencies.\n */\n\n// expose the globals that are obtained through `<script>` on the browser\nexpect "
  },
  {
    "path": "bower_components/expect.js/test/expect.js",
    "chars": 15501,
    "preview": "\n/**\n * Module dependencies.\n */\n\nfunction err (fn, msg) {\n  try {\n    fn();\n    throw new Error('Expected an error');\n "
  },
  {
    "path": "bower_components/expect.js/test/index.html",
    "chars": 496,
    "preview": "<!doctype html>\n<html>\n  <head>\n    <title>expect.js tests</title>\n    <link href=\"/support/mocha.css\" rel=\"stylesheet\" "
  },
  {
    "path": "bower_components/jquery/.bower.json",
    "chars": 750,
    "preview": "{\n  \"name\": \"jquery\",\n  \"version\": \"2.1.4\",\n  \"main\": \"dist/jquery.js\",\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n "
  },
  {
    "path": "bower_components/jquery/MIT-LICENSE.txt",
    "chars": 1099,
    "preview": "Copyright 2014 jQuery Foundation and other contributors\nhttp://jquery.com/\n\nPermission is hereby granted, free of charge"
  },
  {
    "path": "bower_components/jquery/bower.json",
    "chars": 451,
    "preview": "{\n  \"name\": \"jquery\",\n  \"version\": \"2.1.4\",\n  \"main\": \"dist/jquery.js\",\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n "
  },
  {
    "path": "bower_components/jquery/dist/jquery.js",
    "chars": 247597,
    "preview": "/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Cop"
  },
  {
    "path": "bower_components/jquery/src/ajax/jsonp.js",
    "chars": 2516,
    "preview": "define([\n\t\"../core\",\n\t\"./var/nonce\",\n\t\"./var/rquery\",\n\t\"../ajax\"\n], function( jQuery, nonce, rquery ) {\n\nvar oldCallback"
  },
  {
    "path": "bower_components/jquery/src/ajax/load.js",
    "chars": 1669,
    "preview": "define([\n\t\"../core\",\n\t\"../core/parseHTML\",\n\t\"../ajax\",\n\t\"../traversing\",\n\t\"../manipulation\",\n\t\"../selector\",\n\t// Optiona"
  },
  {
    "path": "bower_components/jquery/src/ajax/parseJSON.js",
    "chars": 222,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n// Support: Android 2.3\n// Workaround failure to string-cast null input\njQu"
  },
  {
    "path": "bower_components/jquery/src/ajax/parseXML.js",
    "chars": 485,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml,"
  },
  {
    "path": "bower_components/jquery/src/ajax/script.js",
    "chars": 1271,
    "preview": "define([\n\t\"../core\",\n\t\"../ajax\"\n], function( jQuery ) {\n\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscr"
  },
  {
    "path": "bower_components/jquery/src/ajax/var/nonce.js",
    "chars": 73,
    "preview": "define([\n\t\"../../core\"\n], function( jQuery ) {\n\treturn jQuery.now();\n});\n"
  },
  {
    "path": "bower_components/jquery/src/ajax/var/rquery.js",
    "chars": 40,
    "preview": "define(function() {\n\treturn (/\\?/);\n});\n"
  },
  {
    "path": "bower_components/jquery/src/ajax/xhr.js",
    "chars": 3488,
    "preview": "define([\n\t\"../core\",\n\t\"../var/support\",\n\t\"../ajax\"\n], function( jQuery, support ) {\n\njQuery.ajaxSettings.xhr = function("
  },
  {
    "path": "bower_components/jquery/src/ajax.js",
    "chars": 21168,
    "preview": "define([\n\t\"./core\",\n\t\"./var/rnotwhite\",\n\t\"./ajax/var/nonce\",\n\t\"./ajax/var/rquery\",\n\t\"./core/init\",\n\t\"./ajax/parseJSON\",\n"
  },
  {
    "path": "bower_components/jquery/src/attributes/attr.js",
    "chars": 3320,
    "preview": "define([\n\t\"../core\",\n\t\"../var/rnotwhite\",\n\t\"../var/strundefined\",\n\t\"../core/access\",\n\t\"./support\",\n\t\"../selector\"\n], fun"
  },
  {
    "path": "bower_components/jquery/src/attributes/classes.js",
    "chars": 4155,
    "preview": "define([\n\t\"../core\",\n\t\"../var/rnotwhite\",\n\t\"../var/strundefined\",\n\t\"../data/var/data_priv\",\n\t\"../core/init\"\n], function("
  },
  {
    "path": "bower_components/jquery/src/attributes/prop.js",
    "chars": 1854,
    "preview": "define([\n\t\"../core\",\n\t\"../core/access\",\n\t\"./support\"\n], function( jQuery, access, support ) {\n\nvar rfocusable = /^(?:inp"
  },
  {
    "path": "bower_components/jquery/src/attributes/support.js",
    "chars": 893,
    "preview": "define([\n\t\"../var/support\"\n], function( support ) {\n\n(function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tsel"
  },
  {
    "path": "bower_components/jquery/src/attributes/val.js",
    "chars": 3839,
    "preview": "define([\n\t\"../core\",\n\t\"./support\",\n\t\"../core/init\"\n], function( jQuery, support ) {\n\nvar rreturn = /\\r/g;\n\njQuery.fn.ext"
  },
  {
    "path": "bower_components/jquery/src/attributes.js",
    "chars": 200,
    "preview": "define([\n\t\"./core\",\n\t\"./attributes/attr\",\n\t\"./attributes/prop\",\n\t\"./attributes/classes\",\n\t\"./attributes/val\"\n], function"
  },
  {
    "path": "bower_components/jquery/src/callbacks.js",
    "chars": 5506,
    "preview": "define([\n\t\"./core\",\n\t\"./var/rnotwhite\"\n], function( jQuery, rnotwhite ) {\n\n// String to Object options format cache\nvar "
  },
  {
    "path": "bower_components/jquery/src/core/access.js",
    "chars": 1210,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n// Multifunctional method to get and set values of a collection\n// The valu"
  },
  {
    "path": "bower_components/jquery/src/core/init.js",
    "chars": 3401,
    "preview": "// Initialize a jQuery object\ndefine([\n\t\"../core\",\n\t\"./var/rsingleTag\",\n\t\"../traversing/findFilter\"\n], function( jQuery,"
  },
  {
    "path": "bower_components/jquery/src/core/parseHTML.js",
    "chars": 938,
    "preview": "define([\n\t\"../core\",\n\t\"./var/rsingleTag\",\n\t\"../manipulation\" // buildFragment\n], function( jQuery, rsingleTag ) {\n\n// da"
  },
  {
    "path": "bower_components/jquery/src/core/ready.js",
    "chars": 2381,
    "preview": "define([\n\t\"../core\",\n\t\"../core/init\",\n\t\"../deferred\"\n], function( jQuery ) {\n\n// The deferred used on DOM ready\nvar read"
  },
  {
    "path": "bower_components/jquery/src/core/var/rsingleTag.js",
    "chars": 91,
    "preview": "define(function() {\n\t// Match a standalone tag\n\treturn (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n});\n"
  },
  {
    "path": "bower_components/jquery/src/core.js",
    "chars": 11790,
    "preview": "define([\n\t\"./var/arr\",\n\t\"./var/slice\",\n\t\"./var/concat\",\n\t\"./var/push\",\n\t\"./var/indexOf\",\n\t\"./var/class2type\",\n\t\"./var/to"
  },
  {
    "path": "bower_components/jquery/src/css/addGetHookIf.js",
    "chars": 509,
    "preview": "define(function() {\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\t// Define the hook, we'll check on the first run if"
  },
  {
    "path": "bower_components/jquery/src/css/curCSS.js",
    "chars": 1452,
    "preview": "define([\n\t\"../core\",\n\t\"./var/rnumnonpx\",\n\t\"./var/rmargin\",\n\t\"./var/getStyles\",\n\t\"../selector\" // contains\n], function( j"
  },
  {
    "path": "bower_components/jquery/src/css/defaultDisplay.js",
    "chars": 1867,
    "preview": "define([\n\t\"../core\",\n\t\"../manipulation\" // appendTo\n], function( jQuery ) {\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retr"
  },
  {
    "path": "bower_components/jquery/src/css/hiddenVisibleSelectors.js",
    "chars": 380,
    "preview": "define([\n\t\"../core\",\n\t\"../selector\"\n], function( jQuery ) {\n\njQuery.expr.filters.hidden = function( elem ) {\n\t// Support"
  },
  {
    "path": "bower_components/jquery/src/css/support.js",
    "chars": 3198,
    "preview": "define([\n\t\"../core\",\n\t\"../var/support\"\n], function( jQuery, support ) {\n\n(function() {\n\tvar pixelPositionVal, boxSizingR"
  },
  {
    "path": "bower_components/jquery/src/css/swap.js",
    "chars": 555,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n// A method for quickly swapping in/out CSS properties to get correct calcu"
  },
  {
    "path": "bower_components/jquery/src/css/var/cssExpand.js",
    "chars": 70,
    "preview": "define(function() {\n\treturn [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n});\n"
  },
  {
    "path": "bower_components/jquery/src/css/var/getStyles.js",
    "chars": 410,
    "preview": "define(function() {\n\treturn function( elem ) {\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on el"
  },
  {
    "path": "bower_components/jquery/src/css/var/isHidden.js",
    "chars": 355,
    "preview": "define([\n\t\"../../core\",\n\t\"../../selector\"\n\t// css is assumed\n], function( jQuery ) {\n\n\treturn function( elem, el ) {\n\t\t/"
  },
  {
    "path": "bower_components/jquery/src/css/var/rmargin.js",
    "chars": 45,
    "preview": "define(function() {\n\treturn (/^margin/);\n});\n"
  },
  {
    "path": "bower_components/jquery/src/css/var/rnumnonpx.js",
    "chars": 113,
    "preview": "define([\n\t\"../../var/pnum\"\n], function( pnum ) {\n\treturn new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n});\n"
  },
  {
    "path": "bower_components/jquery/src/css.js",
    "chars": 12346,
    "preview": "define([\n\t\"./core\",\n\t\"./var/pnum\",\n\t\"./core/access\",\n\t\"./css/var/rmargin\",\n\t\"./css/var/rnumnonpx\",\n\t\"./css/var/cssExpand"
  },
  {
    "path": "bower_components/jquery/src/data/Data.js",
    "chars": 4882,
    "preview": "define([\n\t\"../core\",\n\t\"../var/rnotwhite\",\n\t\"./accepts\"\n], function( jQuery, rnotwhite ) {\n\nfunction Data() {\n\t// Support"
  },
  {
    "path": "bower_components/jquery/src/data/accepts.js",
    "chars": 383,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = f"
  },
  {
    "path": "bower_components/jquery/src/data/var/data_priv.js",
    "chars": 66,
    "preview": "define([\n\t\"../Data\"\n], function( Data ) {\n\treturn new Data();\n});\n"
  },
  {
    "path": "bower_components/jquery/src/data/var/data_user.js",
    "chars": 66,
    "preview": "define([\n\t\"../Data\"\n], function( Data ) {\n\treturn new Data();\n});\n"
  },
  {
    "path": "bower_components/jquery/src/data.js",
    "chars": 4942,
    "preview": "define([\n\t\"./core\",\n\t\"./var/rnotwhite\",\n\t\"./core/access\",\n\t\"./data/var/data_priv\",\n\t\"./data/var/data_user\"\n], function( "
  },
  {
    "path": "bower_components/jquery/src/deferred.js",
    "chars": 4414,
    "preview": "define([\n\t\"./core\",\n\t\"./var/slice\",\n\t\"./callbacks\"\n], function( jQuery, slice ) {\n\njQuery.extend({\n\n\tDeferred: function("
  },
  {
    "path": "bower_components/jquery/src/deprecated.js",
    "chars": 223,
    "preview": "define([\n\t\"./core\",\n\t\"./traversing\"\n], function( jQuery ) {\n\n// The number of elements contained in the matched element "
  },
  {
    "path": "bower_components/jquery/src/dimensions.js",
    "chars": 1776,
    "preview": "define([\n\t\"./core\",\n\t\"./core/access\",\n\t\"./css\"\n], function( jQuery, access ) {\n\n// Create innerHeight, innerWidth, heigh"
  },
  {
    "path": "bower_components/jquery/src/effects/Tween.js",
    "chars": 3028,
    "preview": "define([\n\t\"../core\",\n\t\"../css\"\n], function( jQuery ) {\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new"
  },
  {
    "path": "bower_components/jquery/src/effects/animatedSelector.js",
    "chars": 225,
    "preview": "define([\n\t\"../core\",\n\t\"../selector\",\n\t\"../effects\"\n], function( jQuery ) {\n\njQuery.expr.filters.animated = function( ele"
  },
  {
    "path": "bower_components/jquery/src/effects.js",
    "chars": 16914,
    "preview": "define([\n\t\"./core\",\n\t\"./var/pnum\",\n\t\"./css/var/cssExpand\",\n\t\"./css/var/isHidden\",\n\t\"./css/defaultDisplay\",\n\t\"./data/var/"
  },
  {
    "path": "bower_components/jquery/src/event/ajax.js",
    "chars": 322,
    "preview": "define([\n\t\"../core\",\n\t\"../event\"\n], function( jQuery ) {\n\n// Attach a bunch of functions for handling common AJAX events"
  },
  {
    "path": "bower_components/jquery/src/event/alias.js",
    "chars": 1094,
    "preview": "define([\n\t\"../core\",\n\t\"../event\"\n], function( jQuery ) {\n\njQuery.each( (\"blur focus focusin focusout load resize scroll "
  },
  {
    "path": "bower_components/jquery/src/event/support.js",
    "chars": 123,
    "preview": "define([\n\t\"../var/support\"\n], function( support ) {\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\nreturn support;\n\n}"
  },
  {
    "path": "bower_components/jquery/src/event.js",
    "chars": 24475,
    "preview": "define([\n\t\"./core\",\n\t\"./var/strundefined\",\n\t\"./var/rnotwhite\",\n\t\"./var/hasOwn\",\n\t\"./var/slice\",\n\t\"./event/support\",\n\t\"./"
  },
  {
    "path": "bower_components/jquery/src/exports/amd.js",
    "chars": 1006,
    "preview": "define([\n\t\"../core\"\n], function( jQuery ) {\n\n// Register as a named AMD module, since jQuery can be concatenated with ot"
  },
  {
    "path": "bower_components/jquery/src/exports/global.js",
    "chars": 641,
    "preview": "define([\n\t\"../core\",\n\t\"../var/strundefined\"\n], function( jQuery, strundefined ) {\n\nvar\n\t// Map over jQuery in case of ov"
  },
  {
    "path": "bower_components/jquery/src/intro.js",
    "chars": 1393,
    "preview": "/*!\n * jQuery JavaScript Library v@VERSION\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * "
  },
  {
    "path": "bower_components/jquery/src/jquery.js",
    "chars": 574,
    "preview": "define([\n\t\"./core\",\n\t\"./selector\",\n\t\"./traversing\",\n\t\"./callbacks\",\n\t\"./deferred\",\n\t\"./core/ready\",\n\t\"./data\",\n\t\"./queue"
  },
  {
    "path": "bower_components/jquery/src/manipulation/_evalUrl.js",
    "chars": 240,
    "preview": "define([\n\t\"../ajax\"\n], function( jQuery ) {\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax({\n\t\turl: url,\n\t\ttyp"
  },
  {
    "path": "bower_components/jquery/src/manipulation/support.js",
    "chars": 975,
    "preview": "define([\n\t\"../var/support\"\n], function( support ) {\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\t"
  },
  {
    "path": "bower_components/jquery/src/manipulation/var/rcheckableType.js",
    "chars": 59,
    "preview": "define(function() {\n\treturn (/^(?:checkbox|radio)$/i);\n});\n"
  },
  {
    "path": "bower_components/jquery/src/manipulation.js",
    "chars": 15039,
    "preview": "define([\n\t\"./core\",\n\t\"./var/concat\",\n\t\"./var/push\",\n\t\"./core/access\",\n\t\"./manipulation/var/rcheckableType\",\n\t\"./manipula"
  },
  {
    "path": "bower_components/jquery/src/offset.js",
    "chars": 5588,
    "preview": "define([\n\t\"./core\",\n\t\"./var/strundefined\",\n\t\"./core/access\",\n\t\"./css/var/rnumnonpx\",\n\t\"./css/curCSS\",\n\t\"./css/addGetHook"
  },
  {
    "path": "bower_components/jquery/src/outro.js",
    "chars": 5,
    "preview": "}));\n"
  },
  {
    "path": "bower_components/jquery/src/queue/delay.js",
    "chars": 561,
    "preview": "define([\n\t\"../core\",\n\t\"../queue\",\n\t\"../effects\" // Delay is optional because of this dependency\n], function( jQuery ) {\n"
  },
  {
    "path": "bower_components/jquery/src/queue.js",
    "chars": 3063,
    "preview": "define([\n\t\"./core\",\n\t\"./data/var/data_priv\",\n\t\"./deferred\",\n\t\"./callbacks\"\n], function( jQuery, data_priv ) {\n\njQuery.ex"
  },
  {
    "path": "bower_components/jquery/src/selector-native.js",
    "chars": 4434,
    "preview": "define([\n\t\"./core\"\n], function( jQuery ) {\n\n/*\n * Optional (non-Sizzle) selector module for custom builds.\n *\n * Note th"
  },
  {
    "path": "bower_components/jquery/src/selector-sizzle.js",
    "chars": 294,
    "preview": "define([\n\t\"./core\",\n\t\"sizzle\"\n], function( jQuery, Sizzle ) {\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQu"
  },
  {
    "path": "bower_components/jquery/src/selector.js",
    "chars": 33,
    "preview": "define([ \"./selector-sizzle\" ]);\n"
  },
  {
    "path": "bower_components/jquery/src/serialize.js",
    "chars": 3214,
    "preview": "define([\n\t\"./core\",\n\t\"./manipulation/var/rcheckableType\",\n\t\"./core/init\",\n\t\"./traversing\", // filter\n\t\"./attributes/prop"
  },
  {
    "path": "bower_components/jquery/src/sizzle/dist/sizzle.js",
    "chars": 59443,
    "preview": "/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. "
  },
  {
    "path": "bower_components/jquery/src/traversing/findFilter.js",
    "chars": 2464,
    "preview": "define([\n\t\"../core\",\n\t\"../var/indexOf\",\n\t\"./var/rneedsContext\",\n\t\"../selector\"\n], function( jQuery, indexOf, rneedsConte"
  },
  {
    "path": "bower_components/jquery/src/traversing/var/rneedsContext.js",
    "chars": 110,
    "preview": "define([\n\t\"../../core\",\n\t\"../../selector\"\n], function( jQuery ) {\n\treturn jQuery.expr.match.needsContext;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/traversing.js",
    "chars": 4535,
    "preview": "define([\n\t\"./core\",\n\t\"./var/indexOf\",\n\t\"./traversing/var/rneedsContext\",\n\t\"./core/init\",\n\t\"./traversing/findFilter\",\n\t\"."
  },
  {
    "path": "bower_components/jquery/src/var/arr.js",
    "chars": 36,
    "preview": "define(function() {\n\treturn [];\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/class2type.js",
    "chars": 64,
    "preview": "define(function() {\n\t// [[Class]] -> type pairs\n\treturn {};\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/concat.js",
    "chars": 63,
    "preview": "define([\n\t\"./arr\"\n], function( arr ) {\n\treturn arr.concat;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/hasOwn.js",
    "chars": 92,
    "preview": "define([\n\t\"./class2type\"\n], function( class2type ) {\n\treturn class2type.hasOwnProperty;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/indexOf.js",
    "chars": 64,
    "preview": "define([\n\t\"./arr\"\n], function( arr ) {\n\treturn arr.indexOf;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/pnum.js",
    "chars": 80,
    "preview": "define(function() {\n\treturn (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/push.js",
    "chars": 61,
    "preview": "define([\n\t\"./arr\"\n], function( arr ) {\n\treturn arr.push;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/rnotwhite.js",
    "chars": 42,
    "preview": "define(function() {\n\treturn (/\\S+/g);\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/slice.js",
    "chars": 62,
    "preview": "define([\n\t\"./arr\"\n], function( arr ) {\n\treturn arr.slice;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/strundefined.js",
    "chars": 50,
    "preview": "define(function() {\n\treturn typeof undefined;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/support.js",
    "chars": 99,
    "preview": "define(function() {\n\t// All support tests are defined in their respective modules.\n\treturn {};\n});\n"
  },
  {
    "path": "bower_components/jquery/src/var/toString.js",
    "chars": 86,
    "preview": "define([\n\t\"./class2type\"\n], function( class2type ) {\n\treturn class2type.toString;\n});\n"
  },
  {
    "path": "bower_components/jquery/src/wrap.js",
    "chars": 1496,
    "preview": "define([\n\t\"./core\",\n\t\"./core/init\",\n\t\"./manipulation\", // clone\n\t\"./traversing\" // parent, contents\n], function( jQuery "
  },
  {
    "path": "bower_components/mocha/.bower.json",
    "chars": 1235,
    "preview": "{\n  \"name\": \"mocha\",\n  \"homepage\": \"http://mocha.github.io/mocha\",\n  \"description\": \"simple, flexible, fun test framewor"
  },
  {
    "path": "bower_components/mocha/.editorconfig",
    "chars": 315,
    "preview": "# This file is for unifying the coding style for different editors and IDEs\n# editorconfig.org\n\nroot = true\n\n[*]\nend_of_"
  },
  {
    "path": "bower_components/mocha/.eslintrc",
    "chars": 3700,
    "preview": "---\nenv:\n  node: true\n\nrules:\n  brace-style: [2, 1tbs]\n  camelcase: 2\n  comma-dangle: [2, never]\n  comma-spacing: [2, {b"
  },
  {
    "path": "bower_components/mocha/.mailmap",
    "chars": 865,
    "preview": "TJ Holowaychuk <tj@vision-media.ca>\nTravis Jeffery <tj@travisjeffery.com>   <travisjeffery@gmail.com>\nTravis Jeffery <tj"
  },
  {
    "path": "bower_components/mocha/CONTRIBUTING.md",
    "chars": 2889,
    "preview": "# Contributing to Mocha\n\nHi!  We could use your help.  Let us help you help us.  Or something.\n\n## General\n\n1. If you ar"
  },
  {
    "path": "bower_components/mocha/HISTORY.md",
    "chars": 37084,
    "preview": "2.3.3 / 2015-09-19\n==================\n\n * [#1875] - Fix Markdown reporter exceeds maximum call stack size ([@danielstjul"
  },
  {
    "path": "bower_components/mocha/LICENSE",
    "chars": 1103,
    "preview": "(The MIT License)\n\nCopyright (c) 2011-2015 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of ch"
  },
  {
    "path": "bower_components/mocha/README.md",
    "chars": 771,
    "preview": "[![Build Status](https://api.travis-ci.org/mochajs/mocha.svg?branch=master)](http://travis-ci.org/mochajs/mocha) [![Gitt"
  },
  {
    "path": "bower_components/mocha/bower.json",
    "chars": 967,
    "preview": "{\n  \"name\": \"mocha\",\n  \"homepage\": \"http://mocha.github.io/mocha\",\n  \"description\": \"simple, flexible, fun test framewor"
  },
  {
    "path": "bower_components/mocha/mocha.css",
    "chars": 4990,
    "preview": "@charset \"utf-8\";\n\nbody {\n  margin:0;\n}\n\n#mocha {\n  font: 20px/1.5 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  mar"
  },
  {
    "path": "bower_components/mocha/mocha.js",
    "chars": 314384,
    "preview": "(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)"
  },
  {
    "path": "bower_components/mocha/scripts/ensure-compatible-npm.sh",
    "chars": 235,
    "preview": "#!/usr/bin/env sh\n\nset -o nounset\nset -o errexit\n\nnpm install semver\nif node -e \"process.exit(require('semver').lt(proce"
  },
  {
    "path": "bower_components/sinonjs/.bower.json",
    "chars": 446,
    "preview": "{\n  \"name\": \"sinonjs\",\n  \"version\": \"1.7.3\",\n  \"main\": \"sinon.js\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"c"
  },
  {
    "path": "bower_components/sinonjs/README.md",
    "chars": 189,
    "preview": "sinon.js\n========\n\nSinonJS proxy repository for the BowerJS package manager\n\nInstall with: `bower install sinon.js`\n\nFor"
  },
  {
    "path": "bower_components/sinonjs/bower.json",
    "chars": 137,
    "preview": "{\n  \"name\": \"sinonjs\",\n  \"version\": \"1.7.3\",\n  \"main\": \"sinon.js\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"c"
  },
  {
    "path": "bower_components/sinonjs/sinon.js",
    "chars": 132684,
    "preview": "/**\n * Sinon.JS 1.7.3, 2013/06/20\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @author Contributors: htt"
  },
  {
    "path": "bower_components/uwidget/.bower.json",
    "chars": 630,
    "preview": "{\n  \"name\": \"uwidget\",\n  \"version\": \"0.0.2\",\n  \"devDependencies\": {\n    \"jquery\": \"~1.10.0\"\n  },\n  \"keywords\": [\n    \"wi"
  },
  {
    "path": "bower_components/uwidget/LICENSE",
    "chars": 1120,
    "preview": "Copyright 2013-2014 Guillaume Potier and contributors\nhttp://github.com/guillaumepotier/uwidget\n\nPermission is hereby gr"
  },
  {
    "path": "bower_components/uwidget/README.md",
    "chars": 1967,
    "preview": "# Universal Widget\n\nThe aim of this very simple widget is to easily display a API-distant collection\nof objects, with si"
  },
  {
    "path": "bower_components/uwidget/bower.json",
    "chars": 308,
    "preview": "{\n  \"name\": \"uwidget\",\n  \"version\": \"0.0.1\",\n  \"devDependencies\": {\n    \"jquery\": \"~1.10.0\"\n  },\n  \"keywords\": [\n    \"wi"
  },
  {
    "path": "bower_components/uwidget/uwidget.css",
    "chars": 860,
    "preview": ".uwidget {\n  border: 1px solid #e5e5e5;\n}\n.uwidget .uwidget-actions {\n  display: block;\n  height: 22px;\n  background-col"
  },
  {
    "path": "bower_components/uwidget/uwidget.js",
    "chars": 6860,
    "preview": "!(function ($) {\n\n  var UWidget = function (element, options) {\n    this.init($(element), options);\n  };\n\n  UWidget.prot"
  },
  {
    "path": "bower_components/uwidget/uwidget.less",
    "chars": 900,
    "preview": "@lightgrey: #999;\n@extralightgrey: #f5f5f5;\n@border: #e5e5e5;\n@black: #111;\n\n.uwidget {\n  border: 1px solid @border;\n\n  "
  }
]

// ... and 244 more files (download for full content)

About this extraction

This page contains the full source code of the guillaumepotier/Parsley.js GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 444 files (2.9 MB), approximately 779.6k tokens, and a symbol index with 594 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!