From 45703dfa7f97bc68a94155016ba620a66d826414 Mon Sep 17 00:00:00 2001 From: HippErger Date: Tue, 18 Apr 2017 20:13:08 -0500 Subject: [PATCH 1/7] First React App --- public/nerdSmiley.ico | Bin 0 -> 155551 bytes src/App.js | 16 ++++-- src/apple.svg | 6 +++ src/france.svg | 2 + yarn.lock | 116 +++++++++--------------------------------- 5 files changed, 44 insertions(+), 96 deletions(-) create mode 100644 public/nerdSmiley.ico create mode 100644 src/apple.svg create mode 100644 src/france.svg diff --git a/public/nerdSmiley.ico b/public/nerdSmiley.ico new file mode 100644 index 0000000000000000000000000000000000000000..9324311b346e437780dc9da936e4a468ca5f4d45 GIT binary patch literal 155551 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≦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 H8Vvsr2DxpS literal 0 HcmV?d00001 diff --git a/src/App.js b/src/App.js index 0042c777..e1fca6bd 100644 --- a/src/App.js +++ b/src/App.js @@ -1,16 +1,24 @@ import React from "react"; -import logo from "./logo.svg"; +// import logo from "./logo.svg"; import "./App.css"; +// import apple from "./apple.svg"; +import france from "./france.svg"; + function App() { return (
- logo -

Welcome to React

+ logo +

We're rockin NOW!!!

- To get started, edit src/App.js and save to reload. + Day 1 - Form Learning Teams
+ Day 3 - Team Charters are due
+ Day 5 - Learning Teams submit project proposals
+ Day 9 - Learning Team Check-ins
+ Day 15 - Learning Team Check-ins
+ Day 20 - Learning Team Project Presentations.

); diff --git a/src/apple.svg b/src/apple.svg new file mode 100644 index 00000000..2bb95de7 --- /dev/null +++ b/src/apple.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/france.svg b/src/france.svg new file mode 100644 index 00000000..a4bded52 --- /dev/null +++ b/src/france.svg @@ -0,0 +1,2 @@ + + diff --git a/yarn.lock b/yarn.lock index 137072ec..1066eff8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -239,7 +239,7 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" -autoprefixer@6.5.1: +autoprefixer@6.5.1, autoprefixer@^6.3.1: version "6.5.1" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.1.tgz#ae759a5221e709f3da17c2d656230e67c43cbb75" dependencies: @@ -250,17 +250,6 @@ autoprefixer@6.5.1: postcss "^5.2.4" postcss-value-parser "^3.2.3" -autoprefixer@^6.3.1: - version "6.7.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.2.tgz#172ab07b998ae9b957530928a59a40be54a45023" - dependencies: - browserslist "^1.7.1" - caniuse-db "^1.0.30000618" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.11" - postcss-value-parser "^3.2.3" - aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -277,7 +266,7 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-core@6.17.0: +babel-core@6.17.0, babel-core@^6.0.0: version "6.17.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" dependencies: @@ -303,30 +292,6 @@ babel-core@6.17.0: slash "^1.0.0" source-map "^0.5.0" -babel-core@^6.0.0: - version "6.22.1" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648" - dependencies: - babel-code-frame "^6.22.0" - babel-generator "^6.22.0" - babel-helpers "^6.22.0" - babel-messages "^6.22.0" - babel-register "^6.22.0" - babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.1" - babel-types "^6.22.0" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" - slash "^1.0.0" - source-map "^0.5.0" - babel-core@^6.11.4, babel-core@^6.24.0: version "6.24.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.0.tgz#8f36a0a77f5c155aed6f920b844d23ba56742a02" @@ -369,7 +334,7 @@ babel-eslint@^7.1.1: babel-types "^6.23.0" babylon "^6.16.1" -babel-generator@^6.17.0, babel-generator@^6.18.0, babel-generator@^6.22.0, babel-generator@^6.24.0: +babel-generator@^6.17.0, babel-generator@^6.18.0, babel-generator@^6.24.0: version "6.24.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.0.tgz#eba270a8cc4ce6e09a61be43465d7c62c1f87c56" dependencies: @@ -483,14 +448,7 @@ babel-helper-get-function-arity@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-helper-hoist-variables@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz#3eacbf731d80705845dd2e9718f600cfb9b4ba72" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.22.0" - -babel-helper-hoist-variables@^6.24.1: +babel-helper-hoist-variables@^6.22.0, babel-helper-hoist-variables@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" dependencies: @@ -569,7 +527,7 @@ babel-helper-replace-supers@^6.24.1: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-helpers@^6.16.0, babel-helpers@^6.22.0, babel-helpers@^6.23.0: +babel-helpers@^6.16.0, babel-helpers@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.23.0.tgz#4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992" dependencies: @@ -592,7 +550,7 @@ babel-loader@6.2.5: mkdirp "^0.5.1" object-assign "^4.0.1" -babel-messages@^6.22.0, babel-messages@^6.23.0, babel-messages@^6.8.0: +babel-messages@^6.23.0, babel-messages@^6.8.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: @@ -1180,7 +1138,7 @@ babel-preset-react@6.16.0: babel-plugin-transform-react-jsx-self "^6.11.0" babel-plugin-transform-react-jsx-source "^6.3.13" -babel-register@^6.16.0, babel-register@^6.22.0, babel-register@^6.24.0: +babel-register@^6.16.0, babel-register@^6.24.0: version "6.24.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.0.tgz#5e89f8463ba9970356d02eb07dabe3308b080cfd" dependencies: @@ -1226,7 +1184,7 @@ babel-template@^6.24.1: babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1, babel-traverse@^6.23.0, babel-traverse@^6.23.1: +babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.23.0, babel-traverse@^6.23.1: version "6.23.1" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" dependencies: @@ -1240,7 +1198,7 @@ babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-tr invariant "^2.2.0" lodash "^4.2.0" -babel-traverse@^6.24.1: +babel-traverse@^6.22.0, babel-traverse@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" dependencies: @@ -1254,7 +1212,7 @@ babel-traverse@^6.24.1: invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.22.0, babel-types@^6.23.0: +babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" dependencies: @@ -1263,7 +1221,7 @@ babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.22 lodash "^4.2.0" to-fast-properties "^1.0.1" -babel-types@^6.19.0, babel-types@^6.24.1: +babel-types@^6.19.0, babel-types@^6.22.0, babel-types@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" dependencies: @@ -1382,14 +1340,14 @@ browserify-zlib@~0.1.4: dependencies: pako "~0.2.0" -browserslist@^1.0.1, browserslist@^1.4.0, browserslist@^1.5.2, browserslist@^1.7.1: +browserslist@^1.0.1, browserslist@^1.5.2: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@~1.4.0: +browserslist@^1.4.0, browserslist@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" dependencies: @@ -1467,7 +1425,7 @@ caniuse-api@^1.5.2: lodash.memoize "^4.1.0" lodash.uniq "^4.3.0" -caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554, caniuse-db@^1.0.30000618, caniuse-db@^1.0.30000639: +caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554, caniuse-db@^1.0.30000639: version "1.0.30000646" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000646.tgz#c724b90d61df24286e015fc528d062073c00def4" @@ -2482,7 +2440,7 @@ events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -eventsource@0.1.6, eventsource@^0.1.3: +eventsource@^0.1.3: version "0.1.6" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" dependencies: @@ -2579,12 +2537,6 @@ faye-websocket@^0.10.0: dependencies: websocket-driver ">=0.5.1" -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - faye-websocket@~0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" @@ -3043,7 +2995,7 @@ http-errors@~1.6.1: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-proxy-middleware@0.17.2: +http-proxy-middleware@0.17.2, http-proxy-middleware@~0.17.1: version "0.17.2" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz#572d517a6d2fb1063a469de294eed96066352007" dependencies: @@ -3052,16 +3004,7 @@ http-proxy-middleware@0.17.2: lodash "^4.16.2" micromatch "^2.3.11" -http-proxy-middleware@~0.17.1: - version "0.17.3" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.3.tgz#940382147149b856084f5534752d5b5a8168cd1d" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.15.1, http-proxy@^1.16.2: +http-proxy@^1.15.1: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: @@ -3260,7 +3203,7 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-glob@^3.0.0, is-glob@^3.1.0: +is-glob@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" dependencies: @@ -3998,7 +3941,7 @@ lodash.words@^3.0.0: dependencies: lodash._root "^3.0.0" -lodash@4, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.16.4, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.3.0: +lodash@4, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.16.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -4866,7 +4809,7 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.11, postcss@^5.2.4: +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.4: version "5.2.16" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.16.tgz#732b3100000f9ff8379a48a53839ed097376ad57" dependencies: @@ -5364,13 +5307,13 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.6.1: +rimraf@2, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" -rimraf@2.5.4: +rimraf@2.5.4, rimraf@^2.2.8: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -5541,7 +5484,7 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -sockjs-client@1.0.3: +sockjs-client@1.0.3, sockjs-client@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.0.3.tgz#b0d8280998460eb2564c5d79d7e3d7cfd8a353ad" dependencies: @@ -5552,17 +5495,6 @@ sockjs-client@1.0.3: json3 "^3.3.2" url-parse "^1.0.1" -sockjs-client@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5" - dependencies: - debug "^2.2.0" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.1" - sockjs@^0.3.15: version "0.3.18" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" @@ -5965,7 +5897,7 @@ url-parse@1.0.x: querystringify "0.0.x" requires-port "1.0.x" -url-parse@^1.0.1, url-parse@^1.1.1: +url-parse@^1.0.1: version "1.1.8" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.8.tgz#7a65b3a8d57a1e86af6b4e2276e34774167c0156" dependencies: From 9da9156be8f252b250315f9d08feadf6dd61cc69 Mon Sep 17 00:00:00 2001 From: HippErger Date: Wed, 19 Apr 2017 23:31:15 -0500 Subject: [PATCH 2/7] All seven components are up. --- src/App.js | 27 ------------------ src/components/App.js | 33 ++++++++++++++++++++++ src/{ => components}/App.test.js | 0 src/components/Component5.js | 12 ++++++++ src/components/Component6.js | 13 +++++++++ src/components/Component7.js | 12 ++++++++ src/components/Header.js | 17 +++++++++++ src/components/Insert.js | 11 ++++++++ src/components/Main.js | 17 +++++++++++ src/components/Smiley.js | 12 ++++++++ src/{ => components}/apple.svg | 0 src/{ => components}/france.svg | 0 src/{ => components}/logo.svg | 0 {public => src/components}/nerdSmiley.ico | Bin src/index.js | 7 +++-- 15 files changed, 132 insertions(+), 29 deletions(-) delete mode 100644 src/App.js create mode 100644 src/components/App.js rename src/{ => components}/App.test.js (100%) create mode 100644 src/components/Component5.js create mode 100644 src/components/Component6.js create mode 100644 src/components/Component7.js create mode 100644 src/components/Header.js create mode 100644 src/components/Insert.js create mode 100644 src/components/Main.js create mode 100644 src/components/Smiley.js rename src/{ => components}/apple.svg (100%) rename src/{ => components}/france.svg (100%) rename src/{ => components}/logo.svg (100%) rename {public => src/components}/nerdSmiley.ico (100%) diff --git a/src/App.js b/src/App.js deleted file mode 100644 index e1fca6bd..00000000 --- a/src/App.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -// import logo from "./logo.svg"; -import "./App.css"; -// import apple from "./apple.svg"; -import france from "./france.svg"; - - -function App() { - return ( -
-
- logo -

We're rockin NOW!!!

-
-

- Day 1 - Form Learning Teams
- Day 3 - Team Charters are due
- Day 5 - Learning Teams submit project proposals
- Day 9 - Learning Team Check-ins
- Day 15 - Learning Team Check-ins
- Day 20 - Learning Team Project Presentations. -

-
- ); -} - -export default App; diff --git a/src/components/App.js b/src/components/App.js new file mode 100644 index 00000000..6c07c2c9 --- /dev/null +++ b/src/components/App.js @@ -0,0 +1,33 @@ +import React from "react"; +// import logo from "./logo.svg"; +import "../App.css"; +// import apple from "./apple.svg"; +// import france from "./france.svg"; +import Header from "./Header"; +import SmileyFace from "./Smiley"; +import Main from "./Main"; +import Insert from "./Insert"; +// import users from "./users"; +import Component5 from "./Component5"; +import Component6 from "./Component6"; +import ComponentX from "./Component7"; + + +function App() { + return ( +
+
+ +
+ + + + +
+ + ); +} + + + +export default App; diff --git a/src/App.test.js b/src/components/App.test.js similarity index 100% rename from src/App.test.js rename to src/components/App.test.js diff --git a/src/components/Component5.js b/src/components/Component5.js new file mode 100644 index 00000000..99c4ca06 --- /dev/null +++ b/src/components/Component5.js @@ -0,0 +1,12 @@ +import React from "react"; + +function Component5() { + return ( +
+

Component5!!

+
+ + ); + +} +export default Component5; diff --git a/src/components/Component6.js b/src/components/Component6.js new file mode 100644 index 00000000..e4f13d39 --- /dev/null +++ b/src/components/Component6.js @@ -0,0 +1,13 @@ +import React from "react"; + +function Component6() { + + return ( +
+

Component6!!

+
+ ); + +} + +export default Component6; diff --git a/src/components/Component7.js b/src/components/Component7.js new file mode 100644 index 00000000..6e66f8ea --- /dev/null +++ b/src/components/Component7.js @@ -0,0 +1,12 @@ +import React from "react"; +function Component7() { + + return ( +
+

Component7!!

+
+ ); + +} + +export default Component7; diff --git a/src/components/Header.js b/src/components/Header.js new file mode 100644 index 00000000..73d70f20 --- /dev/null +++ b/src/components/Header.js @@ -0,0 +1,17 @@ +import React from "react"; +import france from "./france.svg"; + +function Header() { + return ( +
+ logo +

Were rockin NOW!!!

+
+ ); + + + +} + + +export default Header; diff --git a/src/components/Insert.js b/src/components/Insert.js new file mode 100644 index 00000000..4fdd6f67 --- /dev/null +++ b/src/components/Insert.js @@ -0,0 +1,11 @@ +import React from "react"; + +function Insert(props){ + return( +
+

{props.message}

+
+ ); +} + +export default Insert; diff --git a/src/components/Main.js b/src/components/Main.js new file mode 100644 index 00000000..eaa44535 --- /dev/null +++ b/src/components/Main.js @@ -0,0 +1,17 @@ +import React from "react"; +function Main() { + + return ( +

+ Day 1 - Form Learning Teams
+ Day 3 - Team Charters are due
+ Day 5 - Learning Teams submit project proposals
+ Day 9 - Learning Team Check-ins
+ Day 15 - Learning Team Check-ins
+ Day 20 - Learning Team Project Presentations. +

+ ); + +} + +export default Main; diff --git a/src/components/Smiley.js b/src/components/Smiley.js new file mode 100644 index 00000000..07ad8565 --- /dev/null +++ b/src/components/Smiley.js @@ -0,0 +1,12 @@ +import React from "react"; +import face from "./nerdSmiley.ico"; + +function Smiley() { + return ( +
+ logo +
+ ); +} + +export default Smiley; diff --git a/src/apple.svg b/src/components/apple.svg similarity index 100% rename from src/apple.svg rename to src/components/apple.svg diff --git a/src/france.svg b/src/components/france.svg similarity index 100% rename from src/france.svg rename to src/components/france.svg diff --git a/src/logo.svg b/src/components/logo.svg similarity index 100% rename from src/logo.svg rename to src/components/logo.svg diff --git a/public/nerdSmiley.ico b/src/components/nerdSmiley.ico similarity index 100% rename from public/nerdSmiley.ico rename to src/components/nerdSmiley.ico diff --git a/src/index.js b/src/index.js index 8e6bfe35..320f2432 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,8 @@ import React from "react"; import ReactDOM from "react-dom"; -import App from "./App"; +import App from "./components/App"; import "./index.css"; -import users from "./users"; +// import users from "./users"; function render() { @@ -11,4 +11,7 @@ function render() { document.getElementById("root") ); } + + + render(); From aa0d23d3c19cc2287431d93741435132b3e7a03b Mon Sep 17 00:00:00 2001 From: HippErger Date: Sat, 22 Apr 2017 21:13:51 -0500 Subject: [PATCH 3/7] displaying users --- src/components/App.js | 25 ++++++------------------- src/components/FirstNameOfUser.js | 0 src/components/Header.js | 9 +-------- src/components/ListOfUsers.js | 28 ++++++++++++++++++++++++++++ src/components/Main.js | 9 ++------- src/components/UserDetails.js | 18 ++++++++++++++++++ src/components/convertListItems.js | 0 src/index.js | 3 ++- src/users.js | 3 --- 9 files changed, 57 insertions(+), 38 deletions(-) create mode 100644 src/components/FirstNameOfUser.js create mode 100644 src/components/ListOfUsers.js create mode 100644 src/components/UserDetails.js create mode 100644 src/components/convertListItems.js diff --git a/src/components/App.js b/src/components/App.js index 6c07c2c9..bc57bcac 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,33 +1,20 @@ import React from "react"; -// import logo from "./logo.svg"; import "../App.css"; -// import apple from "./apple.svg"; -// import france from "./france.svg"; import Header from "./Header"; -import SmileyFace from "./Smiley"; -import Main from "./Main"; -import Insert from "./Insert"; -// import users from "./users"; -import Component5 from "./Component5"; -import Component6 from "./Component6"; -import ComponentX from "./Component7"; +import ListOfUsers from "./ListOfUsers"; +// import Main from "./Main"; +// import UserDetails from "./UserDetails"; +// import Users from "../users"; function App() { return (
- -
- - - - +
+ ) - ); } - - export default App; diff --git a/src/components/FirstNameOfUser.js b/src/components/FirstNameOfUser.js new file mode 100644 index 00000000..e69de29b diff --git a/src/components/Header.js b/src/components/Header.js index 73d70f20..363d5a98 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -1,16 +1,9 @@ import React from "react"; -import france from "./france.svg"; function Header() { return ( -
- logo -

Were rockin NOW!!!

-
+

Address Book

); - - - } diff --git a/src/components/ListOfUsers.js b/src/components/ListOfUsers.js new file mode 100644 index 00000000..bb4cabf3 --- /dev/null +++ b/src/components/ListOfUsers.js @@ -0,0 +1,28 @@ +import React from "react"; +import Users from "../users" +import UserDetails from "./UserDetails"; + +function ListOfUsers(props) { + + const objectsOfUsers = Users.map((item) => { + return ( + + ); + }); + + return ( +
+

{props.title}

+

+ {props.content} +

+
    + {objectsOfUsers} +
+
+ ); +} + +export default ListOfUsers; diff --git a/src/components/Main.js b/src/components/Main.js index eaa44535..2f4303ff 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -1,14 +1,9 @@ import React from "react"; -function Main() { +function Main(props) { return (

- Day 1 - Form Learning Teams
- Day 3 - Team Charters are due
- Day 5 - Learning Teams submit project proposals
- Day 9 - Learning Team Check-ins
- Day 15 - Learning Team Check-ins
- Day 20 - Learning Team Project Presentations. + {props.message}

); diff --git a/src/components/UserDetails.js b/src/components/UserDetails.js new file mode 100644 index 00000000..a30feca0 --- /dev/null +++ b/src/components/UserDetails.js @@ -0,0 +1,18 @@ +import React from "react"; +// import Users from "../Users"; + +function UserDetails(props) { + return ( +
  • +

    User {props.id.toString()}

    +

    {props.first_name.toUpperCase()}

    +

    {props.last_name.toUpperCase()}

    +
    User Info
    +

    {props.address}

    +

    {props.phone}

    +

    {props.occupation}

    +
  • + ); +} + +export default UserDetails; diff --git a/src/components/convertListItems.js b/src/components/convertListItems.js new file mode 100644 index 00000000..e69de29b diff --git a/src/index.js b/src/index.js index 320f2432..57c9cf6e 100644 --- a/src/index.js +++ b/src/index.js @@ -2,12 +2,13 @@ import React from "react"; import ReactDOM from "react-dom"; import App from "./components/App"; import "./index.css"; +import Users from "./users"; // import users from "./users"; function render() { ReactDOM.render( - , + , document.getElementById("root") ); } diff --git a/src/users.js b/src/users.js index b700dc61..78359cb6 100644 --- a/src/users.js +++ b/src/users.js @@ -55,6 +55,3 @@ export default [ } ]; - - - From 77a3b6970b42504920827085bd150d1a59220aad Mon Sep 17 00:00:00 2001 From: HippErger Date: Sun, 23 Apr 2017 15:54:48 -0500 Subject: [PATCH 4/7] only first user diplayed now --- src/components/App.js | 7 +------ src/components/ListOfUsers.js | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/components/App.js b/src/components/App.js index bc57bcac..6f065bb3 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -2,10 +2,6 @@ import React from "react"; import "../App.css"; import Header from "./Header"; import ListOfUsers from "./ListOfUsers"; -// import Main from "./Main"; -// import UserDetails from "./UserDetails"; -// import Users from "../users"; - function App() { return ( @@ -13,8 +9,7 @@ function App() {
    - ) - + ); } export default App; diff --git a/src/components/ListOfUsers.js b/src/components/ListOfUsers.js index bb4cabf3..a0b71500 100644 --- a/src/components/ListOfUsers.js +++ b/src/components/ListOfUsers.js @@ -1,5 +1,5 @@ import React from "react"; -import Users from "../users" +import Users from "../users"; import UserDetails from "./UserDetails"; function ListOfUsers(props) { @@ -19,7 +19,7 @@ function ListOfUsers(props) { {props.content}

      - {objectsOfUsers} + {objectsOfUsers[0]}
    ); From d4d7e47f63d9c5bb21eecc0ea809eafee2dd6fc4 Mon Sep 17 00:00:00 2001 From: HippErger Date: Mon, 24 Apr 2017 20:22:56 -0500 Subject: [PATCH 5/7] validation and state passed --- package.json | 3 +- ...op Homepage - Start Bootstrap Template.htm | 72 + .../320x150 | Bin 0 -> 6057 bytes .../800x300 | Bin 0 -> 12737 bytes .../bootstrap.min.css | 6 + .../bootstrap.min.js | 7 + .../bundle.js | 34535 ++++++++++++++++ .../jquery.js | 4 + .../saved_resource.html | 6 + .../shop-homepage.css | 54 + src/components/App.js | 10 +- src/components/ListOfUsers.js | 32 +- src/components/UserDetails.js | 25 +- src/index.js | 1 - yarn.lock | 2 +- 15 files changed, 34731 insertions(+), 26 deletions(-) create mode 100644 public/Shop Homepage - Start Bootstrap Template.htm create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/320x150 create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/800x300 create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.css create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.js create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/bundle.js create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/jquery.js create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/saved_resource.html create mode 100644 public/Shop Homepage - Start Bootstrap Template_files/shop-homepage.css diff --git a/package.json b/package.json index a449367b..cb655ff4 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "foreman": "^2.0.0", "json-server": "^0.9.4", + "prop-types": "^15.5.8", "react": "^15.3.2", "react-dom": "^15.3.2" }, @@ -24,5 +25,5 @@ "test": "npm run lint && react-scripts test --env=jsdom", "eject": "react-scripts eject" }, - "proxy" : "http://localhost:3001" + "proxy": "http://localhost:3001" } diff --git a/public/Shop Homepage - Start Bootstrap Template.htm b/public/Shop Homepage - Start Bootstrap Template.htm new file mode 100644 index 00000000..039d22ba --- /dev/null +++ b/public/Shop Homepage - Start Bootstrap Template.htm @@ -0,0 +1,72 @@ + + + + + + + + + + + Shop Homepage - Start Bootstrap Template + + + + + + + + + + + + + + + + + +
    //NavBar BEGIN//NavBar END // SideBar BEGIN

    $24.99

    First Product

    See more snippets like this online store item at Bootsnipp - http://bootsnipp.com.

    15 reviews

    $64.99

    Second Product

    This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    12 reviews

    $74.99

    Third Product

    This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    31 reviews

    $84.99

    Fourth Product

    This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    6 reviews

    $94.99

    Fifth Product

    This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    18 reviews

    Like this template?

    If you like this template, then check out this tutorial on how to build a working review system for your online store!

    View Tutorial
    //Footer BEGIN

    Copyright © Your Website 2014

    // Footer END
    + + + + + + + + + + \ No newline at end of file diff --git a/public/Shop Homepage - Start Bootstrap Template_files/320x150 b/public/Shop Homepage - Start Bootstrap Template_files/320x150 new file mode 100644 index 0000000000000000000000000000000000000000..fbae43870251347e68d2e41bb54bbd5d89f13686 GIT binary patch literal 6057 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 literal 0 HcmV?d00001 diff --git a/public/Shop Homepage - Start Bootstrap Template_files/800x300 b/public/Shop Homepage - Start Bootstrap Template_files/800x300 new file mode 100644 index 0000000000000000000000000000000000000000..6172d008e802a92d4e4e447cc9733012740765d0 GIT binary patch literal 12737 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 JP{zRLzW~%f93cPz literal 0 HcmV?d00001 diff --git a/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.css b/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.css new file mode 100644 index 00000000..ed3905e0 --- /dev/null +++ b/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-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}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;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-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.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{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-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-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.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,.125);box-shadow:inset 0 3px 5px rgba(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>.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-left-radius:4px;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-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;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:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{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:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;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:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{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,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;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:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-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:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-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;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-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 li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .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.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{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}}@-o-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,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.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:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.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;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.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 #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.js b/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.js new file mode 100644 index 00000000..9bcd2fcc --- /dev/null +++ b/public/Shop Homepage - Start Bootstrap Template_files/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/public/Shop Homepage - Start Bootstrap Template_files/bundle.js b/public/Shop Homepage - Start Bootstrap Template_files/bundle.js new file mode 100644 index 00000000..e1867b46 --- /dev/null +++ b/public/Shop Homepage - Start Bootstrap Template_files/bundle.js @@ -0,0 +1,34535 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ var parentHotUpdateCallback = this["webpackHotUpdate"]; +/******/ this["webpackHotUpdate"] = +/******/ function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars +/******/ hotAddUpdateChunk(chunkId, moreModules); +/******/ if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); +/******/ } +/******/ +/******/ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars +/******/ var head = document.getElementsByTagName("head")[0]; +/******/ var script = document.createElement("script"); +/******/ script.type = "text/javascript"; +/******/ script.charset = "utf-8"; +/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js"; +/******/ head.appendChild(script); +/******/ } +/******/ +/******/ function hotDownloadManifest(callback) { // eslint-disable-line no-unused-vars +/******/ if(typeof XMLHttpRequest === "undefined") +/******/ return callback(new Error("No browser support")); +/******/ try { +/******/ var request = new XMLHttpRequest(); +/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json"; +/******/ request.open("GET", requestPath, true); +/******/ request.timeout = 10000; +/******/ request.send(null); +/******/ } catch(err) { +/******/ return callback(err); +/******/ } +/******/ request.onreadystatechange = function() { +/******/ if(request.readyState !== 4) return; +/******/ if(request.status === 0) { +/******/ // timeout +/******/ callback(new Error("Manifest request to " + requestPath + " timed out.")); +/******/ } else if(request.status === 404) { +/******/ // no update available +/******/ callback(); +/******/ } else if(request.status !== 200 && request.status !== 304) { +/******/ // other failure +/******/ callback(new Error("Manifest request to " + requestPath + " failed.")); +/******/ } else { +/******/ // success +/******/ try { +/******/ var update = JSON.parse(request.responseText); +/******/ } catch(e) { +/******/ callback(e); +/******/ return; +/******/ } +/******/ callback(null, update); +/******/ } +/******/ }; +/******/ } + +/******/ +/******/ +/******/ // Copied from https://github.com/facebook/react/blob/bef45b0/src/shared/utils/canDefineProperty.js +/******/ var canDefineProperty = false; +/******/ try { +/******/ Object.defineProperty({}, "x", { +/******/ get: function() {} +/******/ }); +/******/ canDefineProperty = true; +/******/ } catch(x) { +/******/ // IE will fail on defineProperty +/******/ } +/******/ +/******/ var hotApplyOnUpdate = true; +/******/ var hotCurrentHash = "482a089fa960814fd834"; // eslint-disable-line no-unused-vars +/******/ var hotCurrentModuleData = {}; +/******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars +/******/ +/******/ function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars +/******/ var me = installedModules[moduleId]; +/******/ if(!me) return __webpack_require__; +/******/ var fn = function(request) { +/******/ if(me.hot.active) { +/******/ if(installedModules[request]) { +/******/ if(installedModules[request].parents.indexOf(moduleId) < 0) +/******/ installedModules[request].parents.push(moduleId); +/******/ if(me.children.indexOf(request) < 0) +/******/ me.children.push(request); +/******/ } else hotCurrentParents = [moduleId]; +/******/ } else { +/******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId); +/******/ hotCurrentParents = []; +/******/ } +/******/ return __webpack_require__(request); +/******/ }; +/******/ for(var name in __webpack_require__) { +/******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name)) { +/******/ if(canDefineProperty) { +/******/ Object.defineProperty(fn, name, (function(name) { +/******/ return { +/******/ configurable: true, +/******/ enumerable: true, +/******/ get: function() { +/******/ return __webpack_require__[name]; +/******/ }, +/******/ set: function(value) { +/******/ __webpack_require__[name] = value; +/******/ } +/******/ }; +/******/ }(name))); +/******/ } else { +/******/ fn[name] = __webpack_require__[name]; +/******/ } +/******/ } +/******/ } +/******/ +/******/ function ensure(chunkId, callback) { +/******/ if(hotStatus === "ready") +/******/ hotSetStatus("prepare"); +/******/ hotChunksLoading++; +/******/ __webpack_require__.e(chunkId, function() { +/******/ try { +/******/ callback.call(null, fn); +/******/ } finally { +/******/ finishChunkLoading(); +/******/ } +/******/ +/******/ function finishChunkLoading() { +/******/ hotChunksLoading--; +/******/ if(hotStatus === "prepare") { +/******/ if(!hotWaitingFilesMap[chunkId]) { +/******/ hotEnsureUpdateChunk(chunkId); +/******/ } +/******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) { +/******/ hotUpdateDownloaded(); +/******/ } +/******/ } +/******/ } +/******/ }); +/******/ } +/******/ if(canDefineProperty) { +/******/ Object.defineProperty(fn, "e", { +/******/ enumerable: true, +/******/ value: ensure +/******/ }); +/******/ } else { +/******/ fn.e = ensure; +/******/ } +/******/ return fn; +/******/ } +/******/ +/******/ function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars +/******/ var hot = { +/******/ // private stuff +/******/ _acceptedDependencies: {}, +/******/ _declinedDependencies: {}, +/******/ _selfAccepted: false, +/******/ _selfDeclined: false, +/******/ _disposeHandlers: [], +/******/ +/******/ // Module API +/******/ active: true, +/******/ accept: function(dep, callback) { +/******/ if(typeof dep === "undefined") +/******/ hot._selfAccepted = true; +/******/ else if(typeof dep === "function") +/******/ hot._selfAccepted = dep; +/******/ else if(typeof dep === "object") +/******/ for(var i = 0; i < dep.length; i++) +/******/ hot._acceptedDependencies[dep[i]] = callback; +/******/ else +/******/ hot._acceptedDependencies[dep] = callback; +/******/ }, +/******/ decline: function(dep) { +/******/ if(typeof dep === "undefined") +/******/ hot._selfDeclined = true; +/******/ else if(typeof dep === "number") +/******/ hot._declinedDependencies[dep] = true; +/******/ else +/******/ for(var i = 0; i < dep.length; i++) +/******/ hot._declinedDependencies[dep[i]] = true; +/******/ }, +/******/ dispose: function(callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ addDisposeHandler: function(callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ removeDisposeHandler: function(callback) { +/******/ var idx = hot._disposeHandlers.indexOf(callback); +/******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ // Management API +/******/ check: hotCheck, +/******/ apply: hotApply, +/******/ status: function(l) { +/******/ if(!l) return hotStatus; +/******/ hotStatusHandlers.push(l); +/******/ }, +/******/ addStatusHandler: function(l) { +/******/ hotStatusHandlers.push(l); +/******/ }, +/******/ removeStatusHandler: function(l) { +/******/ var idx = hotStatusHandlers.indexOf(l); +/******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ //inherit from previous dispose call +/******/ data: hotCurrentModuleData[moduleId] +/******/ }; +/******/ return hot; +/******/ } +/******/ +/******/ var hotStatusHandlers = []; +/******/ var hotStatus = "idle"; +/******/ +/******/ function hotSetStatus(newStatus) { +/******/ hotStatus = newStatus; +/******/ for(var i = 0; i < hotStatusHandlers.length; i++) +/******/ hotStatusHandlers[i].call(null, newStatus); +/******/ } +/******/ +/******/ // while downloading +/******/ var hotWaitingFiles = 0; +/******/ var hotChunksLoading = 0; +/******/ var hotWaitingFilesMap = {}; +/******/ var hotRequestedFilesMap = {}; +/******/ var hotAvailibleFilesMap = {}; +/******/ var hotCallback; +/******/ +/******/ // The update info +/******/ var hotUpdate, hotUpdateNewHash; +/******/ +/******/ function toModuleId(id) { +/******/ var isNumber = (+id) + "" === id; +/******/ return isNumber ? +id : id; +/******/ } +/******/ +/******/ function hotCheck(apply, callback) { +/******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status"); +/******/ if(typeof apply === "function") { +/******/ hotApplyOnUpdate = false; +/******/ callback = apply; +/******/ } else { +/******/ hotApplyOnUpdate = apply; +/******/ callback = callback || function(err) { +/******/ if(err) throw err; +/******/ }; +/******/ } +/******/ hotSetStatus("check"); +/******/ hotDownloadManifest(function(err, update) { +/******/ if(err) return callback(err); +/******/ if(!update) { +/******/ hotSetStatus("idle"); +/******/ callback(null, null); +/******/ return; +/******/ } +/******/ +/******/ hotRequestedFilesMap = {}; +/******/ hotAvailibleFilesMap = {}; +/******/ hotWaitingFilesMap = {}; +/******/ for(var i = 0; i < update.c.length; i++) +/******/ hotAvailibleFilesMap[update.c[i]] = true; +/******/ hotUpdateNewHash = update.h; +/******/ +/******/ hotSetStatus("prepare"); +/******/ hotCallback = callback; +/******/ hotUpdate = {}; +/******/ var chunkId = 0; +/******/ { // eslint-disable-line no-lone-blocks +/******/ /*globals chunkId */ +/******/ hotEnsureUpdateChunk(chunkId); +/******/ } +/******/ if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) { +/******/ hotUpdateDownloaded(); +/******/ } +/******/ }); +/******/ } +/******/ +/******/ function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars +/******/ if(!hotAvailibleFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) +/******/ return; +/******/ hotRequestedFilesMap[chunkId] = false; +/******/ for(var moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ hotUpdate[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) { +/******/ hotUpdateDownloaded(); +/******/ } +/******/ } +/******/ +/******/ function hotEnsureUpdateChunk(chunkId) { +/******/ if(!hotAvailibleFilesMap[chunkId]) { +/******/ hotWaitingFilesMap[chunkId] = true; +/******/ } else { +/******/ hotRequestedFilesMap[chunkId] = true; +/******/ hotWaitingFiles++; +/******/ hotDownloadUpdateChunk(chunkId); +/******/ } +/******/ } +/******/ +/******/ function hotUpdateDownloaded() { +/******/ hotSetStatus("ready"); +/******/ var callback = hotCallback; +/******/ hotCallback = null; +/******/ if(!callback) return; +/******/ if(hotApplyOnUpdate) { +/******/ hotApply(hotApplyOnUpdate, callback); +/******/ } else { +/******/ var outdatedModules = []; +/******/ for(var id in hotUpdate) { +/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { +/******/ outdatedModules.push(toModuleId(id)); +/******/ } +/******/ } +/******/ callback(null, outdatedModules); +/******/ } +/******/ } +/******/ +/******/ function hotApply(options, callback) { +/******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status"); +/******/ if(typeof options === "function") { +/******/ callback = options; +/******/ options = {}; +/******/ } else if(options && typeof options === "object") { +/******/ callback = callback || function(err) { +/******/ if(err) throw err; +/******/ }; +/******/ } else { +/******/ options = {}; +/******/ callback = callback || function(err) { +/******/ if(err) throw err; +/******/ }; +/******/ } +/******/ +/******/ function getAffectedStuff(module) { +/******/ var outdatedModules = [module]; +/******/ var outdatedDependencies = {}; +/******/ +/******/ var queue = outdatedModules.slice(); +/******/ while(queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = installedModules[moduleId]; +/******/ if(!module || module.hot._selfAccepted) +/******/ continue; +/******/ if(module.hot._selfDeclined) { +/******/ return new Error("Aborted because of self decline: " + moduleId); +/******/ } +/******/ if(moduleId === 0) { +/******/ return; +/******/ } +/******/ for(var i = 0; i < module.parents.length; i++) { +/******/ var parentId = module.parents[i]; +/******/ var parent = installedModules[parentId]; +/******/ if(parent.hot._declinedDependencies[moduleId]) { +/******/ return new Error("Aborted because of declined dependency: " + moduleId + " in " + parentId); +/******/ } +/******/ if(outdatedModules.indexOf(parentId) >= 0) continue; +/******/ if(parent.hot._acceptedDependencies[moduleId]) { +/******/ if(!outdatedDependencies[parentId]) +/******/ outdatedDependencies[parentId] = []; +/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); +/******/ continue; +/******/ } +/******/ delete outdatedDependencies[parentId]; +/******/ outdatedModules.push(parentId); +/******/ queue.push(parentId); +/******/ } +/******/ } +/******/ +/******/ return [outdatedModules, outdatedDependencies]; +/******/ } +/******/ +/******/ function addAllToSet(a, b) { +/******/ for(var i = 0; i < b.length; i++) { +/******/ var item = b[i]; +/******/ if(a.indexOf(item) < 0) +/******/ a.push(item); +/******/ } +/******/ } +/******/ +/******/ // at begin all updates modules are outdated +/******/ // the "outdated" status can propagate to parents if they don't accept the children +/******/ var outdatedDependencies = {}; +/******/ var outdatedModules = []; +/******/ var appliedUpdate = {}; +/******/ for(var id in hotUpdate) { +/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { +/******/ var moduleId = toModuleId(id); +/******/ var result = getAffectedStuff(moduleId); +/******/ if(!result) { +/******/ if(options.ignoreUnaccepted) +/******/ continue; +/******/ hotSetStatus("abort"); +/******/ return callback(new Error("Aborted because " + moduleId + " is not accepted")); +/******/ } +/******/ if(result instanceof Error) { +/******/ hotSetStatus("abort"); +/******/ return callback(result); +/******/ } +/******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; +/******/ addAllToSet(outdatedModules, result[0]); +/******/ for(var moduleId in result[1]) { +/******/ if(Object.prototype.hasOwnProperty.call(result[1], moduleId)) { +/******/ if(!outdatedDependencies[moduleId]) +/******/ outdatedDependencies[moduleId] = []; +/******/ addAllToSet(outdatedDependencies[moduleId], result[1][moduleId]); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Store self accepted outdated modules to require them later by the module system +/******/ var outdatedSelfAcceptedModules = []; +/******/ for(var i = 0; i < outdatedModules.length; i++) { +/******/ var moduleId = outdatedModules[i]; +/******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted) +/******/ outdatedSelfAcceptedModules.push({ +/******/ module: moduleId, +/******/ errorHandler: installedModules[moduleId].hot._selfAccepted +/******/ }); +/******/ } +/******/ +/******/ // Now in "dispose" phase +/******/ hotSetStatus("dispose"); +/******/ var queue = outdatedModules.slice(); +/******/ while(queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = installedModules[moduleId]; +/******/ if(!module) continue; +/******/ +/******/ var data = {}; +/******/ +/******/ // Call dispose handlers +/******/ var disposeHandlers = module.hot._disposeHandlers; +/******/ for(var j = 0; j < disposeHandlers.length; j++) { +/******/ var cb = disposeHandlers[j]; +/******/ cb(data); +/******/ } +/******/ hotCurrentModuleData[moduleId] = data; +/******/ +/******/ // disable module (this disables requires from this module) +/******/ module.hot.active = false; +/******/ +/******/ // remove module from cache +/******/ delete installedModules[moduleId]; +/******/ +/******/ // remove "parents" references from all children +/******/ for(var j = 0; j < module.children.length; j++) { +/******/ var child = installedModules[module.children[j]]; +/******/ if(!child) continue; +/******/ var idx = child.parents.indexOf(moduleId); +/******/ if(idx >= 0) { +/******/ child.parents.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // remove outdated dependency from module children +/******/ for(var moduleId in outdatedDependencies) { +/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { +/******/ var module = installedModules[moduleId]; +/******/ var moduleOutdatedDependencies = outdatedDependencies[moduleId]; +/******/ for(var j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ var dependency = moduleOutdatedDependencies[j]; +/******/ var idx = module.children.indexOf(dependency); +/******/ if(idx >= 0) module.children.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Not in "apply" phase +/******/ hotSetStatus("apply"); +/******/ +/******/ hotCurrentHash = hotUpdateNewHash; +/******/ +/******/ // insert new code +/******/ for(var moduleId in appliedUpdate) { +/******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { +/******/ modules[moduleId] = appliedUpdate[moduleId]; +/******/ } +/******/ } +/******/ +/******/ // call accept handlers +/******/ var error = null; +/******/ for(var moduleId in outdatedDependencies) { +/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { +/******/ var module = installedModules[moduleId]; +/******/ var moduleOutdatedDependencies = outdatedDependencies[moduleId]; +/******/ var callbacks = []; +/******/ for(var i = 0; i < moduleOutdatedDependencies.length; i++) { +/******/ var dependency = moduleOutdatedDependencies[i]; +/******/ var cb = module.hot._acceptedDependencies[dependency]; +/******/ if(callbacks.indexOf(cb) >= 0) continue; +/******/ callbacks.push(cb); +/******/ } +/******/ for(var i = 0; i < callbacks.length; i++) { +/******/ var cb = callbacks[i]; +/******/ try { +/******/ cb(outdatedDependencies); +/******/ } catch(err) { +/******/ if(!error) +/******/ error = err; +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Load self accepted modules +/******/ for(var i = 0; i < outdatedSelfAcceptedModules.length; i++) { +/******/ var item = outdatedSelfAcceptedModules[i]; +/******/ var moduleId = item.module; +/******/ hotCurrentParents = [moduleId]; +/******/ try { +/******/ __webpack_require__(moduleId); +/******/ } catch(err) { +/******/ if(typeof item.errorHandler === "function") { +/******/ try { +/******/ item.errorHandler(err); +/******/ } catch(err) { +/******/ if(!error) +/******/ error = err; +/******/ } +/******/ } else if(!error) +/******/ error = err; +/******/ } +/******/ } +/******/ +/******/ // handle errors in accept handlers and self accepted module load +/******/ if(error) { +/******/ hotSetStatus("fail"); +/******/ return callback(error); +/******/ } +/******/ +/******/ hotSetStatus("idle"); +/******/ callback(null, outdatedModules); +/******/ } + +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false, +/******/ hot: hotCreateModule(moduleId), +/******/ parents: hotCurrentParents, +/******/ children: [] +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; + +/******/ // __webpack_hash__ +/******/ __webpack_require__.h = function() { return hotCurrentHash; }; + +/******/ // Load entry module and return exports +/******/ return hotCreateRequire(0)(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/*!******************!*\ + !*** multi main ***! + \******************/ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(/*! /Users/claytonberger/Documents/Projects/acaadvanced/advanced-homework-1/node_modules/react-dev-utils/webpackHotDevClient.js */1); + __webpack_require__(/*! /Users/claytonberger/Documents/Projects/acaadvanced/advanced-homework-1/node_modules/react-scripts/config/polyfills.js */81); + module.exports = __webpack_require__(/*! /Users/claytonberger/Documents/Projects/acaadvanced/advanced-homework-1/src/index.js */88); + + +/***/ }, +/* 1 */ +/*!**************************************************!*\ + !*** ./~/react-dev-utils/webpackHotDevClient.js ***! + \**************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + // This alternative WebpackDevServer combines the functionality of: + // https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js + // https://github.com/webpack/webpack/blob/webpack-1/hot/dev-server.js + + // It only supports their simplest configuration (hot updates on same server). + // It makes some opinionated choices on top, like adding a syntax error overlay + // that looks similar to our console output. The error overlay is inspired by: + // https://github.com/glenjamin/webpack-hot-middleware + + var ansiHTML = __webpack_require__(/*! ansi-html */ 2); + var SockJS = __webpack_require__(/*! sockjs-client */ 3); + var stripAnsi = __webpack_require__(/*! strip-ansi */ 68); + var url = __webpack_require__(/*! url */ 70); + var formatWebpackMessages = __webpack_require__(/*! ./formatWebpackMessages */ 76); + var Entities = __webpack_require__(/*! html-entities */ 77).AllHtmlEntities; + var entities = new Entities(); + + // Color scheme inspired by https://github.com/glenjamin/webpack-hot-middleware + var colors = { + reset: ['transparent', 'transparent'], + black: '181818', + red: 'E36049', + green: 'B3CB74', + yellow: 'FFD080', + blue: '7CAFC2', + magenta: '7FACCA', + cyan: 'C3C2EF', + lightgrey: 'EBE7E3', + darkgrey: '6D7891' + }; + ansiHTML.setColors(colors); + + function createOverlayIframe(onIframeLoad) { + var iframe = document.createElement('iframe'); + iframe.id = 'react-dev-utils-webpack-hot-dev-client-overlay'; + iframe.src = 'about:blank'; + iframe.style.position = 'fixed'; + iframe.style.left = 0; + iframe.style.top = 0; + iframe.style.right = 0; + iframe.style.bottom = 0; + iframe.style.width = '100vw'; + iframe.style.height = '100vh'; + iframe.style.border = 'none'; + iframe.style.zIndex = 9999999999; + iframe.onload = onIframeLoad; + return iframe; + } + + function addOverlayDivTo(iframe) { + var div = iframe.contentDocument.createElement('div'); + div.id = 'react-dev-utils-webpack-hot-dev-client-overlay-div'; + div.style.position = 'fixed'; + div.style.boxSizing = 'border-box'; + div.style.left = 0; + div.style.top = 0; + div.style.right = 0; + div.style.bottom = 0; + div.style.width = '100vw'; + div.style.height = '100vh'; + div.style.backgroundColor = 'black'; + div.style.color = '#E8E8E8'; + div.style.fontFamily = 'Menlo, Consolas, monospace'; + div.style.fontSize = 'large'; + div.style.padding = '2rem'; + div.style.lineHeight = '1.2'; + div.style.whiteSpace = 'pre-wrap'; + div.style.overflow = 'auto'; + iframe.contentDocument.body.appendChild(div); + return div; + } + + var overlayIframe = null; + var overlayDiv = null; + var lastOnOverlayDivReady = null; + + function ensureOverlayDivExists(onOverlayDivReady) { + if (overlayDiv) { + // Everything is ready, call the callback right away. + onOverlayDivReady(overlayDiv); + return; + } + + // Creating an iframe may be asynchronous so we'll schedule the callback. + // In case of multiple calls, last callback wins. + lastOnOverlayDivReady = onOverlayDivReady; + + if (overlayIframe) { + // We're already creating it. + return; + } + + // Create iframe and, when it is ready, a div inside it. + overlayIframe = createOverlayIframe(function onIframeLoad() { + overlayDiv = addOverlayDivTo(overlayIframe); + // Now we can talk! + lastOnOverlayDivReady(overlayDiv); + }); + + // Zalgo alert: onIframeLoad() will be called either synchronously + // or asynchronously depending on the browser. + // We delay adding it so `overlayIframe` is set when `onIframeLoad` fires. + document.body.appendChild(overlayIframe); + } + + function showErrorOverlay(message) { + ensureOverlayDivExists(function onOverlayDivReady(overlayDiv) { + // Make it look similar to our terminal. + overlayDiv.innerHTML = + 'Failed to compile.

    ' + + ansiHTML(entities.encode(message)); + }); + } + + function destroyErrorOverlay() { + if (!overlayDiv) { + // It is not there in the first place. + return; + } + + // Clean up and reset internal state. + document.body.removeChild(overlayIframe); + overlayDiv = null; + overlayIframe = null; + lastOnOverlayDivReady = null; + } + + // Connect to WebpackDevServer via a socket. + var connection = new SockJS(url.format({ + protocol: window.location.protocol, + hostname: window.location.hostname, + port: window.location.port, + // Hardcoded in WebpackDevServer + pathname: '/sockjs-node' + })); + + // Unlike WebpackDevServer client, we won't try to reconnect + // to avoid spamming the console. Disconnect usually happens + // when developer stops the server. + connection.onclose = function() { + console.info( + 'The development server has disconnected.\nRefresh the page if necessary.' + ); + }; + + // Remember some state related to hot module replacement. + var isFirstCompilation = true; + var mostRecentCompilationHash = null; + var hasCompileErrors = false; + + function clearOutdatedErrors() { + // Clean up outdated compile errors, if any. + if (hasCompileErrors && typeof console.clear === 'function') { + console.clear(); + } + } + + // Successful compilation. + function handleSuccess() { + clearOutdatedErrors(); + destroyErrorOverlay(); + + var isHotUpdate = !isFirstCompilation; + isFirstCompilation = false; + hasCompileErrors = false; + + // Attempt to apply hot updates or reload. + if (isHotUpdate) { + tryApplyUpdates(); + } + } + + // Compilation with warnings (e.g. ESLint). + function handleWarnings(warnings) { + clearOutdatedErrors(); + destroyErrorOverlay(); + + var isHotUpdate = !isFirstCompilation; + isFirstCompilation = false; + hasCompileErrors = false; + + function printWarnings() { + // Print warnings to the console. + for (var i = 0; i < warnings.length; i++) { + console.warn(stripAnsi(warnings[i])); + } + } + + // Attempt to apply hot updates or reload. + if (isHotUpdate) { + tryApplyUpdates(function onSuccessfulHotUpdate() { + // Only print warnings if we aren't refreshing the page. + // Otherwise they'll disappear right away anyway. + printWarnings(); + }); + } else { + // Print initial warnings immediately. + printWarnings(); + } + } + + // Compilation with errors (e.g. syntax error or missing modules). + function handleErrors(errors) { + clearOutdatedErrors(); + + isFirstCompilation = false; + hasCompileErrors = true; + + // "Massage" webpack messages. + var formatted = formatWebpackMessages({ + errors: errors, + warnings: [] + }); + + // Only show the first error. + showErrorOverlay(formatted.errors[0]); + + // Also log them to the console. + for (var i = 0; i < formatted.errors.length; i++) { + console.error(stripAnsi(formatted.errors[i])); + } + + // Do not attempt to reload now. + // We will reload on next success instead. + } + + // There is a newer version of the code available. + function handleAvailableHash(hash) { + // Update last known compilation hash. + mostRecentCompilationHash = hash; + } + + // Handle messages from the server. + connection.onmessage = function(e) { + var message = JSON.parse(e.data); + switch (message.type) { + case 'hash': + handleAvailableHash(message.data); + break; + case 'still-ok': + case 'ok': + handleSuccess(); + break; + case 'warnings': + handleWarnings(message.data); + break; + case 'errors': + handleErrors(message.data); + break; + default: + // Do nothing. + } + } + + // Is there a newer version of this code available? + function isUpdateAvailable() { + /* globals __webpack_hash__ */ + // __webpack_hash__ is the hash of the current compilation. + // It's a global variable injected by Webpack. + return mostRecentCompilationHash !== __webpack_require__.h(); + } + + // Webpack disallows updates in other states. + function canApplyUpdates() { + return module.hot.status() === 'idle'; + } + + // Attempt to update code on the fly, fall back to a hard reload. + function tryApplyUpdates(onHotUpdateSuccess) { + if (false) { + // HotModuleReplacementPlugin is not in Webpack configuration. + window.location.reload(); + return; + } + + if (!isUpdateAvailable() || !canApplyUpdates()) { + return; + } + + function handleApplyUpdates(err, updatedModules) { + if (err || !updatedModules) { + window.location.reload(); + return; + } + + if (typeof onHotUpdateSuccess === 'function') { + // Maybe we want to do something. + onHotUpdateSuccess(); + } + + if (isUpdateAvailable()) { + // While we were updating, there was a new update! Do it again. + tryApplyUpdates(); + } + } + + // https://webpack.github.io/docs/hot-module-replacement.html#check + var result = module.hot.check(/* autoApply */true, handleApplyUpdates); + + // // Webpack 2 returns a Promise instead of invoking a callback + if (result && result.then) { + result.then( + function(updatedModules) { + handleApplyUpdates(null, updatedModules); + }, + function(err) { + handleApplyUpdates(err, null); + } + ); + } + } + + +/***/ }, +/* 2 */ +/*!******************************!*\ + !*** ./~/ansi-html/index.js ***! + \******************************/ +/***/ function(module, exports) { + + module.exports = ansiHTML; + + // Reference to https://github.com/sindresorhus/ansi-regex + var re_ansi = /(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/; + + var _defColors = { + reset: ['fff', '000'], // [FOREGROUD_COLOR, BACKGROUND_COLOR] + black: '000', + red: 'ff0000', + green: '209805', + yellow: 'e8bf03', + blue: '0000ff', + magenta: 'ff00ff', + cyan: '00ffee', + lightgrey: 'f0f0f0', + darkgrey: '888' + }; + var _styles = { + 30: 'black', + 31: 'red', + 32: 'green', + 33: 'yellow', + 34: 'blue', + 35: 'magenta', + 36: 'cyan', + 37: 'lightgrey' + }; + var _openTags = { + '1': 'font-weight:bold', // bold + '2': 'opacity:0.8', // dim + '3': '', // italic + '4': '', // underscore + '8': 'display:none', // hidden + '9': '', // delete + }; + var _closeTags = { + '23': '', // reset italic + '24': '', // reset underscore + '29': '' // reset delete + }; + [0, 21, 22, 27, 28, 39, 49].forEach(function (n) { + _closeTags[n] = ''; + }); + + /** + * Converts text with ANSI color codes to HTML markup. + * @param {String} text + * @returns {*} + */ + function ansiHTML(text) { + // Returns the text if the string has no ANSI escape code. + if (!re_ansi.test(text)) { + return text; + } + + // Cache opened sequence. + var ansiCodes = []; + // Replace with markup. + var ret = text.replace(/\033\[(\d+)*m/g, function (match, seq) { + var ot = _openTags[seq]; + if (ot) { + // If current sequence has been opened, close it. + if (!!~ansiCodes.indexOf(seq)) { + ansiCodes.pop(); + return ''; + } + // Open tag. + ansiCodes.push(seq); + return ot[0] == '<' ? ot : ''; + } + + var ct = _closeTags[seq]; + if (ct) { + // Pop sequence + ansiCodes.pop(); + return ct; + } + return ''; + }); + + // Make sure tags are closed. + var l = ansiCodes.length; + (l > 0) && (ret += Array(l + 1).join('')); + + return ret; + } + + /** + * Customize colors. + * @param {Object} colors reference to _defColors + */ + ansiHTML.setColors = function (colors) { + if (typeof colors != 'object') { + throw new Error('`colors` parameter must be an Object.'); + } + + var _finalColors = {}; + for (var key in _defColors) { + var hex = colors.hasOwnProperty(key) ? colors[key] : null; + if (!hex) { + _finalColors[key] = _defColors[key]; + continue; + } + if ('reset' == key) { + if(typeof hex == 'string'){ + hex = [hex]; + } + if (!Array.isArray(hex) || hex.length == 0 || hex.some(function (h) { + return typeof h != 'string'; + })) { + throw new Error('The value of `' + key + '` property must be an Array and each item could only be a hex string, e.g.: FF0000'); + } + var defHexColor = _defColors[key]; + if(!hex[0]){ + hex[0] = defHexColor[0]; + } + if (hex.length == 1 || !hex[1]) { + hex = [hex[0]]; + hex.push(defHexColor[1]); + } + + hex = hex.slice(0, 2); + } else if (typeof hex != 'string') { + throw new Error('The value of `' + key + '` property must be a hex string, e.g.: FF0000'); + } + _finalColors[key] = hex; + } + _setTags(_finalColors); + }; + + /** + * Reset colors. + */ + ansiHTML.reset = function(){ + _setTags(_defColors); + }; + + /** + * Expose tags, including open and close. + * @type {Object} + */ + ansiHTML.tags = { + get open() { + return _openTags; + }, + get close() { + return _closeTags; + } + }; + + function _setTags(colors) { + // reset all + _openTags['0'] = 'font-weight:normal;opacity:1;color:#' + colors.reset[0] + ';background:#' + colors.reset[1]; + // inverse + _openTags['7'] = 'color:#' + colors.reset[1] + ';background:#' + colors.reset[0]; + // dark grey + _openTags['90'] = 'color:#' + colors.darkgrey; + + for (var code in _styles) { + var color = _styles[code]; + var oriColor = colors[color] || '000'; + _openTags[code] = 'color:#' + oriColor; + code = parseInt(code); + _openTags[(code + 10).toString()] = 'background:#' + oriColor; + } + } + + ansiHTML.reset(); + + +/***/ }, +/* 3 */ +/*!**************************************!*\ + !*** ./~/sockjs-client/lib/entry.js ***! + \**************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var transportList = __webpack_require__(/*! ./transport-list */ 4); + + module.exports = __webpack_require__(/*! ./main */ 52)(transportList); + + // TODO can't get rid of this until all servers do + if ('_sockjs_onload' in global) { + setTimeout(global._sockjs_onload, 1); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 4 */ +/*!***********************************************!*\ + !*** ./~/sockjs-client/lib/transport-list.js ***! + \***********************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + module.exports = [ + // streaming transports + __webpack_require__(/*! ./transport/websocket */ 5) + , __webpack_require__(/*! ./transport/xhr-streaming */ 22) + , __webpack_require__(/*! ./transport/xdr-streaming */ 32) + , __webpack_require__(/*! ./transport/eventsource */ 34) + , __webpack_require__(/*! ./transport/lib/iframe-wrap */ 37)(__webpack_require__(/*! ./transport/eventsource */ 34)) + + // polling transports + , __webpack_require__(/*! ./transport/htmlfile */ 45) + , __webpack_require__(/*! ./transport/lib/iframe-wrap */ 37)(__webpack_require__(/*! ./transport/htmlfile */ 45)) + , __webpack_require__(/*! ./transport/xhr-polling */ 47) + , __webpack_require__(/*! ./transport/xdr-polling */ 48) + , __webpack_require__(/*! ./transport/lib/iframe-wrap */ 37)(__webpack_require__(/*! ./transport/xhr-polling */ 47)) + , __webpack_require__(/*! ./transport/jsonp-polling */ 49) + ]; + + +/***/ }, +/* 5 */ +/*!****************************************************!*\ + !*** ./~/sockjs-client/lib/transport/websocket.js ***! + \****************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(/*! ../utils/event */ 6) + , urlUtils = __webpack_require__(/*! ../utils/url */ 9) + , inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , WebsocketDriver = __webpack_require__(/*! ./driver/websocket */ 21) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:websocket'); + } + + function WebSocketTransport(transUrl) { + if (!WebSocketTransport.enabled()) { + throw new Error('Transport created when disabled'); + } + + EventEmitter.call(this); + debug('constructor', transUrl); + + var self = this; + var url = urlUtils.addPath(transUrl, '/websocket'); + if (url.slice(0, 5) === 'https') { + url = 'wss' + url.slice(5); + } else { + url = 'ws' + url.slice(4); + } + this.url = url; + + this.ws = new WebsocketDriver(this.url); + this.ws.onmessage = function(e) { + debug('message event', e.data); + self.emit('message', e.data); + }; + // Firefox has an interesting bug. If a websocket connection is + // created after onunload, it stays alive even when user + // navigates away from the page. In such situation let's lie - + // let's not open the ws connection at all. See: + // https://github.com/sockjs/sockjs-client/issues/28 + // https://bugzilla.mozilla.org/show_bug.cgi?id=696085 + this.unloadRef = utils.unloadAdd(function() { + debug('unload'); + self.ws.close(); + }); + this.ws.onclose = function(e) { + debug('close event', e.code, e.reason); + self.emit('close', e.code, e.reason); + self._cleanup(); + }; + this.ws.onerror = function(e) { + debug('error event', e); + self.emit('close', 1006, 'WebSocket connection broken'); + self._cleanup(); + }; + } + + inherits(WebSocketTransport, EventEmitter); + + WebSocketTransport.prototype.send = function(data) { + var msg = '[' + data + ']'; + debug('send', msg); + this.ws.send(msg); + }; + + WebSocketTransport.prototype.close = function() { + debug('close'); + if (this.ws) { + this.ws.close(); + } + this._cleanup(); + }; + + WebSocketTransport.prototype._cleanup = function() { + debug('_cleanup'); + var ws = this.ws; + if (ws) { + ws.onmessage = ws.onclose = ws.onerror = null; + } + utils.unloadDel(this.unloadRef); + this.unloadRef = this.ws = null; + this.removeAllListeners(); + }; + + WebSocketTransport.enabled = function() { + debug('enabled'); + return !!WebsocketDriver; + }; + WebSocketTransport.transportName = 'websocket'; + + // In theory, ws should require 1 round trip. But in chrome, this is + // not very stable over SSL. Most likely a ws connection requires a + // separate SSL connection, in which case 2 round trips are an + // absolute minumum. + WebSocketTransport.roundTrips = 2; + + module.exports = WebSocketTransport; + + +/***/ }, +/* 6 */ +/*!********************************************!*\ + !*** ./~/sockjs-client/lib/utils/event.js ***! + \********************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var random = __webpack_require__(/*! ./random */ 7); + + var onUnload = {} + , afterUnload = false + // detect google chrome packaged apps because they don't allow the 'unload' event + , isChromePackagedApp = global.chrome && global.chrome.app && global.chrome.app.runtime + ; + + module.exports = { + attachEvent: function(event, listener) { + if (typeof global.addEventListener !== 'undefined') { + global.addEventListener(event, listener, false); + } else if (global.document && global.attachEvent) { + // IE quirks. + // According to: http://stevesouders.com/misc/test-postmessage.php + // the message gets delivered only to 'document', not 'window'. + global.document.attachEvent('on' + event, listener); + // I get 'window' for ie8. + global.attachEvent('on' + event, listener); + } + } + + , detachEvent: function(event, listener) { + if (typeof global.addEventListener !== 'undefined') { + global.removeEventListener(event, listener, false); + } else if (global.document && global.detachEvent) { + global.document.detachEvent('on' + event, listener); + global.detachEvent('on' + event, listener); + } + } + + , unloadAdd: function(listener) { + if (isChromePackagedApp) { + return null; + } + + var ref = random.string(8); + onUnload[ref] = listener; + if (afterUnload) { + setTimeout(this.triggerUnloadCallbacks, 0); + } + return ref; + } + + , unloadDel: function(ref) { + if (ref in onUnload) { + delete onUnload[ref]; + } + } + + , triggerUnloadCallbacks: function() { + for (var ref in onUnload) { + onUnload[ref](); + delete onUnload[ref]; + } + } + }; + + var unloadTriggered = function() { + if (afterUnload) { + return; + } + afterUnload = true; + module.exports.triggerUnloadCallbacks(); + }; + + // 'unload' alone is not reliable in opera within an iframe, but we + // can't use `beforeunload` as IE fires it on javascript: links. + if (!isChromePackagedApp) { + module.exports.attachEvent('unload', unloadTriggered); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 7 */ +/*!*********************************************!*\ + !*** ./~/sockjs-client/lib/utils/random.js ***! + \*********************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /* global crypto:true */ + var crypto = __webpack_require__(/*! crypto */ 8); + + // This string has length 32, a power of 2, so the modulus doesn't introduce a + // bias. + var _randomStringChars = 'abcdefghijklmnopqrstuvwxyz012345'; + module.exports = { + string: function(length) { + var max = _randomStringChars.length; + var bytes = crypto.randomBytes(length); + var ret = []; + for (var i = 0; i < length; i++) { + ret.push(_randomStringChars.substr(bytes[i] % max, 1)); + } + return ret.join(''); + } + + , number: function(max) { + return Math.floor(Math.random() * max); + } + + , numberString: function(max) { + var t = ('' + (max - 1)).length; + var p = new Array(t + 1).join('0'); + return (p + this.number(max)).slice(-t); + } + }; + + +/***/ }, +/* 8 */ +/*!*****************************************************!*\ + !*** ./~/sockjs-client/lib/utils/browser-crypto.js ***! + \*****************************************************/ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + if (global.crypto && global.crypto.getRandomValues) { + module.exports.randomBytes = function(length) { + var bytes = new Uint8Array(length); + global.crypto.getRandomValues(bytes); + return bytes; + }; + } else { + module.exports.randomBytes = function(length) { + var bytes = new Array(length); + for (var i = 0; i < length; i++) { + bytes[i] = Math.floor(Math.random() * 256); + } + return bytes; + }; + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 9 */ +/*!******************************************!*\ + !*** ./~/sockjs-client/lib/utils/url.js ***! + \******************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var URL = __webpack_require__(/*! url-parse */ 10); + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:utils:url'); + } + + module.exports = { + getOrigin: function(url) { + if (!url) { + return null; + } + + var p = new URL(url); + if (p.protocol === 'file:') { + return null; + } + + var port = p.port; + if (!port) { + port = (p.protocol === 'https:') ? '443' : '80'; + } + + return p.protocol + '//' + p.hostname + ':' + port; + } + + , isOriginEqual: function(a, b) { + var res = this.getOrigin(a) === this.getOrigin(b); + debug('same', a, b, res); + return res; + } + + , isSchemeEqual: function(a, b) { + return (a.split(':')[0] === b.split(':')[0]); + } + + , addPath: function (url, path) { + var qs = url.split('?'); + return qs[0] + path + (qs[1] ? '?' + qs[1] : ''); + } + + , addQuery: function (url, q) { + return url + (url.indexOf('?') === -1 ? ('?' + q) : ('&' + q)); + } + }; + + +/***/ }, +/* 10 */ +/*!******************************!*\ + !*** ./~/url-parse/index.js ***! + \******************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var required = __webpack_require__(/*! requires-port */ 11) + , lolcation = __webpack_require__(/*! ./lolcation */ 12) + , qs = __webpack_require__(/*! querystringify */ 13) + , protocolre = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i; + + /** + * These are the parse rules for the URL parser, it informs the parser + * about: + * + * 0. The char it Needs to parse, if it's a string it should be done using + * indexOf, RegExp using exec and NaN means set as current value. + * 1. The property we should set when parsing this value. + * 2. Indication if it's backwards or forward parsing, when set as number it's + * the value of extra chars that should be split off. + * 3. Inherit from location if non existing in the parser. + * 4. `toLowerCase` the resulting value. + */ + var rules = [ + ['#', 'hash'], // Extract from the back. + ['?', 'query'], // Extract from the back. + ['/', 'pathname'], // Extract from the back. + ['@', 'auth', 1], // Extract from the front. + [NaN, 'host', undefined, 1, 1], // Set left over value. + [/:(\d+)$/, 'port', undefined, 1], // RegExp the back. + [NaN, 'hostname', undefined, 1, 1] // Set left over. + ]; + + /** + * @typedef ProtocolExtract + * @type Object + * @property {String} protocol Protocol matched in the URL, in lowercase. + * @property {Boolean} slashes `true` if protocol is followed by "//", else `false`. + * @property {String} rest Rest of the URL that is not part of the protocol. + */ + + /** + * Extract protocol information from a URL with/without double slash ("//"). + * + * @param {String} address URL we want to extract from. + * @return {ProtocolExtract} Extracted information. + * @api private + */ + function extractProtocol(address) { + var match = protocolre.exec(address); + + return { + protocol: match[1] ? match[1].toLowerCase() : '', + slashes: !!match[2], + rest: match[3] + }; + } + + /** + * Resolve a relative URL pathname against a base URL pathname. + * + * @param {String} relative Pathname of the relative URL. + * @param {String} base Pathname of the base URL. + * @return {String} Resolved pathname. + * @api private + */ + function resolve(relative, base) { + var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/')) + , i = path.length + , last = path[i - 1] + , unshift = false + , up = 0; + + while (i--) { + if (path[i] === '.') { + path.splice(i, 1); + } else if (path[i] === '..') { + path.splice(i, 1); + up++; + } else if (up) { + if (i === 0) unshift = true; + path.splice(i, 1); + up--; + } + } + + if (unshift) path.unshift(''); + if (last === '.' || last === '..') path.push(''); + + return path.join('/'); + } + + /** + * The actual URL instance. Instead of returning an object we've opted-in to + * create an actual constructor as it's much more memory efficient and + * faster and it pleases my OCD. + * + * @constructor + * @param {String} address URL we want to parse. + * @param {Object|String} location Location defaults for relative paths. + * @param {Boolean|Function} parser Parser for the query string. + * @api public + */ + function URL(address, location, parser) { + if (!(this instanceof URL)) { + return new URL(address, location, parser); + } + + var relative, extracted, parse, instruction, index, key + , instructions = rules.slice() + , type = typeof location + , url = this + , i = 0; + + // + // The following if statements allows this module two have compatibility with + // 2 different API: + // + // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments + // where the boolean indicates that the query string should also be parsed. + // + // 2. The `URL` interface of the browser which accepts a URL, object as + // arguments. The supplied object will be used as default values / fall-back + // for relative paths. + // + if ('object' !== type && 'string' !== type) { + parser = location; + location = null; + } + + if (parser && 'function' !== typeof parser) parser = qs.parse; + + location = lolcation(location); + + // + // Extract protocol information before running the instructions. + // + extracted = extractProtocol(address || ''); + relative = !extracted.protocol && !extracted.slashes; + url.slashes = extracted.slashes || relative && location.slashes; + url.protocol = extracted.protocol || location.protocol || ''; + address = extracted.rest; + + // + // When the authority component is absent the URL starts with a path + // component. + // + if (!extracted.slashes) instructions[2] = [/(.*)/, 'pathname']; + + for (; i < instructions.length; i++) { + instruction = instructions[i]; + parse = instruction[0]; + key = instruction[1]; + + if (parse !== parse) { + url[key] = address; + } else if ('string' === typeof parse) { + if (~(index = address.indexOf(parse))) { + if ('number' === typeof instruction[2]) { + url[key] = address.slice(0, index); + address = address.slice(index + instruction[2]); + } else { + url[key] = address.slice(index); + address = address.slice(0, index); + } + } + } else if ((index = parse.exec(address))) { + url[key] = index[1]; + address = address.slice(0, index.index); + } + + url[key] = url[key] || ( + relative && instruction[3] ? location[key] || '' : '' + ); + + // + // Hostname, host and protocol should be lowercased so they can be used to + // create a proper `origin`. + // + if (instruction[4]) url[key] = url[key].toLowerCase(); + } + + // + // Also parse the supplied query string in to an object. If we're supplied + // with a custom parser as function use that instead of the default build-in + // parser. + // + if (parser) url.query = parser(url.query); + + // + // If the URL is relative, resolve the pathname against the base URL. + // + if ( + relative + && location.slashes + && url.pathname.charAt(0) !== '/' + && (url.pathname !== '' || location.pathname !== '') + ) { + url.pathname = resolve(url.pathname, location.pathname); + } + + // + // We should not add port numbers if they are already the default port number + // for a given protocol. As the host also contains the port number we're going + // override it with the hostname which contains no port number. + // + if (!required(url.port, url.protocol)) { + url.host = url.hostname; + url.port = ''; + } + + // + // Parse down the `auth` for the username and password. + // + url.username = url.password = ''; + if (url.auth) { + instruction = url.auth.split(':'); + url.username = instruction[0] || ''; + url.password = instruction[1] || ''; + } + + url.origin = url.protocol && url.host && url.protocol !== 'file:' + ? url.protocol +'//'+ url.host + : 'null'; + + // + // The href is just the compiled result. + // + url.href = url.toString(); + } + + /** + * This is convenience method for changing properties in the URL instance to + * insure that they all propagate correctly. + * + * @param {String} part Property we need to adjust. + * @param {Mixed} value The newly assigned value. + * @param {Boolean|Function} fn When setting the query, it will be the function + * used to parse the query. + * When setting the protocol, double slash will be + * removed from the final url if it is true. + * @returns {URL} + * @api public + */ + function set(part, value, fn) { + var url = this; + + switch (part) { + case 'query': + if ('string' === typeof value && value.length) { + value = (fn || qs.parse)(value); + } + + url[part] = value; + break; + + case 'port': + url[part] = value; + + if (!required(value, url.protocol)) { + url.host = url.hostname; + url[part] = ''; + } else if (value) { + url.host = url.hostname +':'+ value; + } + + break; + + case 'hostname': + url[part] = value; + + if (url.port) value += ':'+ url.port; + url.host = value; + break; + + case 'host': + url[part] = value; + + if (/:\d+$/.test(value)) { + value = value.split(':'); + url.port = value.pop(); + url.hostname = value.join(':'); + } else { + url.hostname = value; + url.port = ''; + } + + break; + + case 'protocol': + url.protocol = value.toLowerCase(); + url.slashes = !fn; + break; + + case 'pathname': + url.pathname = value.length && value.charAt(0) !== '/' ? '/' + value : value; + + break; + + default: + url[part] = value; + } + + for (var i = 0; i < rules.length; i++) { + var ins = rules[i]; + + if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase(); + } + + url.origin = url.protocol && url.host && url.protocol !== 'file:' + ? url.protocol +'//'+ url.host + : 'null'; + + url.href = url.toString(); + + return url; + }; + + /** + * Transform the properties back in to a valid and full URL string. + * + * @param {Function} stringify Optional query stringify function. + * @returns {String} + * @api public + */ + function toString(stringify) { + if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify; + + var query + , url = this + , protocol = url.protocol; + + if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':'; + + var result = protocol + (url.slashes ? '//' : ''); + + if (url.username) { + result += url.username; + if (url.password) result += ':'+ url.password; + result += '@'; + } + + result += url.host + url.pathname; + + query = 'object' === typeof url.query ? stringify(url.query) : url.query; + if (query) result += '?' !== query.charAt(0) ? '?'+ query : query; + + if (url.hash) result += url.hash; + + return result; + } + + URL.prototype = { set: set, toString: toString }; + + // + // Expose the URL parser and some additional properties that might be useful for + // others or testing. + // + URL.extractProtocol = extractProtocol; + URL.location = lolcation; + URL.qs = qs; + + module.exports = URL; + + +/***/ }, +/* 11 */ +/*!**********************************!*\ + !*** ./~/requires-port/index.js ***! + \**********************************/ +/***/ function(module, exports) { + + 'use strict'; + + /** + * Check if we're required to add a port number. + * + * @see https://url.spec.whatwg.org/#default-port + * @param {Number|String} port Port number we need to check + * @param {String} protocol Protocol we need to check against. + * @returns {Boolean} Is it a default port for the given protocol + * @api private + */ + module.exports = function required(port, protocol) { + protocol = protocol.split(':')[0]; + port = +port; + + if (!port) return false; + + switch (protocol) { + case 'http': + case 'ws': + return port !== 80; + + case 'https': + case 'wss': + return port !== 443; + + case 'ftp': + return port !== 21; + + case 'gopher': + return port !== 70; + + case 'file': + return false; + } + + return port !== 0; + }; + + +/***/ }, +/* 12 */ +/*!**********************************!*\ + !*** ./~/url-parse/lolcation.js ***! + \**********************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//; + + /** + * These properties should not be copied or inherited from. This is only needed + * for all non blob URL's as a blob URL does not include a hash, only the + * origin. + * + * @type {Object} + * @private + */ + var ignore = { hash: 1, query: 1 } + , URL; + + /** + * The location object differs when your code is loaded through a normal page, + * Worker or through a worker using a blob. And with the blobble begins the + * trouble as the location object will contain the URL of the blob, not the + * location of the page where our code is loaded in. The actual origin is + * encoded in the `pathname` so we can thankfully generate a good "default" + * location from it so we can generate proper relative URL's again. + * + * @param {Object|String} loc Optional default location object. + * @returns {Object} lolcation object. + * @api public + */ + module.exports = function lolcation(loc) { + loc = loc || global.location || {}; + URL = URL || __webpack_require__(/*! ./ */ 10); + + var finaldestination = {} + , type = typeof loc + , key; + + if ('blob:' === loc.protocol) { + finaldestination = new URL(unescape(loc.pathname), {}); + } else if ('string' === type) { + finaldestination = new URL(loc, {}); + for (key in ignore) delete finaldestination[key]; + } else if ('object' === type) { + for (key in loc) { + if (key in ignore) continue; + finaldestination[key] = loc[key]; + } + + if (finaldestination.slashes === undefined) { + finaldestination.slashes = slashes.test(loc.href); + } + } + + return finaldestination; + }; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 13 */ +/*!***********************************!*\ + !*** ./~/querystringify/index.js ***! + \***********************************/ +/***/ function(module, exports) { + + 'use strict'; + + var has = Object.prototype.hasOwnProperty; + + /** + * Simple query string parser. + * + * @param {String} query The query string that needs to be parsed. + * @returns {Object} + * @api public + */ + function querystring(query) { + var parser = /([^=?&]+)=?([^&]*)/g + , result = {} + , part; + + // + // Little nifty parsing hack, leverage the fact that RegExp.exec increments + // the lastIndex property so we can continue executing this loop until we've + // parsed all results. + // + for (; + part = parser.exec(query); + result[decodeURIComponent(part[1])] = decodeURIComponent(part[2]) + ); + + return result; + } + + /** + * Transform a query string to an object. + * + * @param {Object} obj Object that should be transformed. + * @param {String} prefix Optional prefix. + * @returns {String} + * @api public + */ + function querystringify(obj, prefix) { + prefix = prefix || ''; + + var pairs = []; + + // + // Optionally prefix with a '?' if needed + // + if ('string' !== typeof prefix) prefix = '?'; + + for (var key in obj) { + if (has.call(obj, key)) { + pairs.push(encodeURIComponent(key) +'='+ encodeURIComponent(obj[key])); + } + } + + return pairs.length ? prefix + pairs.join('&') : ''; + } + + // + // Expose the module. + // + exports.stringify = querystringify; + exports.parse = querystring; + + +/***/ }, +/* 14 */ +/*!********************************!*\ + !*** ./~/debug/src/browser.js ***! + \********************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + + exports = module.exports = __webpack_require__(/*! ./debug */ 16); + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + + /** + * Colors. + */ + + exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' + ]; + + /** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + + function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window && typeof window.process !== 'undefined' && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document && 'WebkitAppearance' in document.documentElement.style) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window && window.console && (console.firebug || (console.exception && console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); + } + + /** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + + exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } + }; + + + /** + * Colorize log arguments if enabled. + * + * @api public + */ + + function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); + } + + /** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + + function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); + } + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + + function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + + function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = ({"NODE_ENV":"development","PUBLIC_URL":""}).DEBUG; + } + + return r; + } + + /** + * Enable namespaces listed in `localStorage.debug` initially. + */ + + exports.enable(load()); + + /** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + + function localstorage() { + try { + return window.localStorage; + } catch (e) {} + } + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../process/browser.js */ 15))) + +/***/ }, +/* 15 */ +/*!******************************!*\ + !*** ./~/process/browser.js ***! + \******************************/ +/***/ function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }, +/* 16 */ +/*!******************************!*\ + !*** ./~/debug/src/debug.js ***! + \******************************/ +/***/ function(module, exports, __webpack_require__) { + + + /** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + + exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; + exports.coerce = coerce; + exports.disable = disable; + exports.enable = enable; + exports.enabled = enabled; + exports.humanize = __webpack_require__(/*! ms */ 17); + + /** + * The currently active debug mode names, and names to skip. + */ + + exports.names = []; + exports.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + + exports.formatters = {}; + + /** + * Previous log timestamp. + */ + + var prevTime; + + /** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + + function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; + } + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + + function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + + function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var split = (namespaces || '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @api public + */ + + function disable() { + exports.enable(''); + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + + function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + + function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; + } + + +/***/ }, +/* 17 */ +/*!***********************!*\ + !*** ./~/ms/index.js ***! + \***********************/ +/***/ function(module, exports) { + + /** + * Helpers. + */ + + var s = 1000 + var m = s * 60 + var h = m * 60 + var d = h * 24 + var y = d * 365.25 + + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} options + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + + module.exports = function (val, options) { + options = options || {} + var type = typeof val + if (type === 'string' && val.length > 0) { + return parse(val) + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? + fmtLong(val) : + fmtShort(val) + } + throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val)) + } + + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str) + if (str.length > 10000) { + return + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str) + if (!match) { + return + } + var n = parseFloat(match[1]) + var type = (match[2] || 'ms').toLowerCase() + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y + case 'days': + case 'day': + case 'd': + return n * d + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n + default: + return undefined + } + } + + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd' + } + if (ms >= h) { + return Math.round(ms / h) + 'h' + } + if (ms >= m) { + return Math.round(ms / m) + 'm' + } + if (ms >= s) { + return Math.round(ms / s) + 's' + } + return ms + 'ms' + } + + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms' + } + + /** + * Pluralization helper. + */ + + function plural(ms, n, name) { + if (ms < n) { + return + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name + } + return Math.ceil(ms / n) + ' ' + name + 's' + } + + +/***/ }, +/* 18 */ +/*!****************************************!*\ + !*** ./~/inherits/inherits_browser.js ***! + \****************************************/ +/***/ function(module, exports) { + + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + + +/***/ }, +/* 19 */ +/*!**********************************************!*\ + !*** ./~/sockjs-client/lib/event/emitter.js ***! + \**********************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , EventTarget = __webpack_require__(/*! ./eventtarget */ 20) + ; + + function EventEmitter() { + EventTarget.call(this); + } + + inherits(EventEmitter, EventTarget); + + EventEmitter.prototype.removeAllListeners = function(type) { + if (type) { + delete this._listeners[type]; + } else { + this._listeners = {}; + } + }; + + EventEmitter.prototype.once = function(type, listener) { + var self = this + , fired = false; + + function g() { + self.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + this.on(type, g); + }; + + EventEmitter.prototype.emit = function(type) { + var listeners = this._listeners[type]; + if (!listeners) { + return; + } + var args = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < listeners.length; i++) { + listeners[i].apply(this, args); + } + }; + + EventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener; + EventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener; + + module.exports.EventEmitter = EventEmitter; + + +/***/ }, +/* 20 */ +/*!**************************************************!*\ + !*** ./~/sockjs-client/lib/event/eventtarget.js ***! + \**************************************************/ +/***/ function(module, exports) { + + 'use strict'; + + /* Simplified implementation of DOM2 EventTarget. + * http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget + */ + + function EventTarget() { + this._listeners = {}; + } + + EventTarget.prototype.addEventListener = function(eventType, listener) { + if (!(eventType in this._listeners)) { + this._listeners[eventType] = []; + } + var arr = this._listeners[eventType]; + // #4 + if (arr.indexOf(listener) === -1) { + // Make a copy so as not to interfere with a current dispatchEvent. + arr = arr.concat([listener]); + } + this._listeners[eventType] = arr; + }; + + EventTarget.prototype.removeEventListener = function(eventType, listener) { + var arr = this._listeners[eventType]; + if (!arr) { + return; + } + var idx = arr.indexOf(listener); + if (idx !== -1) { + if (arr.length > 1) { + // Make a copy so as not to interfere with a current dispatchEvent. + this._listeners[eventType] = arr.slice(0, idx).concat(arr.slice(idx + 1)); + } else { + delete this._listeners[eventType]; + } + return; + } + }; + + EventTarget.prototype.dispatchEvent = function(event) { + var t = event.type; + var args = Array.prototype.slice.call(arguments, 0); + // TODO: This doesn't match the real behavior; per spec, onfoo get + // their place in line from the /first/ time they're set from + // non-null. Although WebKit bumps it to the end every time it's + // set. + if (this['on' + t]) { + this['on' + t].apply(this, args); + } + if (t in this._listeners) { + // Grab a reference to the listeners list. removeEventListener may alter the list. + var listeners = this._listeners[t]; + for (var i = 0; i < listeners.length; i++) { + listeners[i].apply(this, args); + } + } + }; + + module.exports = EventTarget; + + +/***/ }, +/* 21 */ +/*!************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/browser/websocket.js ***! + \************************************************************/ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {module.exports = global.WebSocket || global.MozWebSocket; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 22 */ +/*!********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/xhr-streaming.js ***! + \********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + , XhrReceiver = __webpack_require__(/*! ./receiver/xhr */ 27) + , XHRCorsObject = __webpack_require__(/*! ./sender/xhr-cors */ 28) + , XHRLocalObject = __webpack_require__(/*! ./sender/xhr-local */ 30) + , browser = __webpack_require__(/*! ../utils/browser */ 31) + ; + + function XhrStreamingTransport(transUrl) { + if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) { + throw new Error('Transport created when disabled'); + } + AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XHRCorsObject); + } + + inherits(XhrStreamingTransport, AjaxBasedTransport); + + XhrStreamingTransport.enabled = function(info) { + if (info.nullOrigin) { + return false; + } + // Opera doesn't support xhr-streaming #60 + // But it might be able to #92 + if (browser.isOpera()) { + return false; + } + + return XHRCorsObject.enabled; + }; + + XhrStreamingTransport.transportName = 'xhr-streaming'; + XhrStreamingTransport.roundTrips = 2; // preflight, ajax + + // Safari gets confused when a streaming ajax request is started + // before onload. This causes the load indicator to spin indefinetely. + // Only require body when used in a browser + XhrStreamingTransport.needBody = !!global.document; + + module.exports = XhrStreamingTransport; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 23 */ +/*!*********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/lib/ajax-based.js ***! + \*********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + , SenderReceiver = __webpack_require__(/*! ./sender-receiver */ 24) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:ajax-based'); + } + + function createAjaxSender(AjaxObject) { + return function(url, payload, callback) { + debug('create ajax sender', url, payload); + var opt = {}; + if (typeof payload === 'string') { + opt.headers = {'Content-type':'text/plain'}; + } + var ajaxUrl = urlUtils.addPath(url, '/xhr_send'); + var xo = new AjaxObject('POST', ajaxUrl, payload, opt); + xo.once('finish', function(status) { + debug('finish', status); + xo = null; + + if (status !== 200 && status !== 204) { + return callback(new Error('http status ' + status)); + } + callback(); + }); + return function() { + debug('abort'); + xo.close(); + xo = null; + + var err = new Error('Aborted'); + err.code = 1000; + callback(err); + }; + }; + } + + function AjaxBasedTransport(transUrl, urlSuffix, Receiver, AjaxObject) { + SenderReceiver.call(this, transUrl, urlSuffix, createAjaxSender(AjaxObject), Receiver, AjaxObject); + } + + inherits(AjaxBasedTransport, SenderReceiver); + + module.exports = AjaxBasedTransport; + + +/***/ }, +/* 24 */ +/*!**************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/lib/sender-receiver.js ***! + \**************************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + , BufferedSender = __webpack_require__(/*! ./buffered-sender */ 25) + , Polling = __webpack_require__(/*! ./polling */ 26) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:sender-receiver'); + } + + function SenderReceiver(transUrl, urlSuffix, senderFunc, Receiver, AjaxObject) { + var pollUrl = urlUtils.addPath(transUrl, urlSuffix); + debug(pollUrl); + var self = this; + BufferedSender.call(this, transUrl, senderFunc); + + this.poll = new Polling(Receiver, pollUrl, AjaxObject); + this.poll.on('message', function(msg) { + debug('poll message', msg); + self.emit('message', msg); + }); + this.poll.once('close', function(code, reason) { + debug('poll close', code, reason); + self.poll = null; + self.emit('close', code, reason); + self.close(); + }); + } + + inherits(SenderReceiver, BufferedSender); + + SenderReceiver.prototype.close = function() { + debug('close'); + this.removeAllListeners(); + if (this.poll) { + this.poll.abort(); + this.poll = null; + } + this.stop(); + }; + + module.exports = SenderReceiver; + + +/***/ }, +/* 25 */ +/*!**************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/lib/buffered-sender.js ***! + \**************************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:buffered-sender'); + } + + function BufferedSender(url, sender) { + debug(url); + EventEmitter.call(this); + this.sendBuffer = []; + this.sender = sender; + this.url = url; + } + + inherits(BufferedSender, EventEmitter); + + BufferedSender.prototype.send = function(message) { + debug('send', message); + this.sendBuffer.push(message); + if (!this.sendStop) { + this.sendSchedule(); + } + }; + + // For polling transports in a situation when in the message callback, + // new message is being send. If the sending connection was started + // before receiving one, it is possible to saturate the network and + // timeout due to the lack of receiving socket. To avoid that we delay + // sending messages by some small time, in order to let receiving + // connection be started beforehand. This is only a halfmeasure and + // does not fix the big problem, but it does make the tests go more + // stable on slow networks. + BufferedSender.prototype.sendScheduleWait = function() { + debug('sendScheduleWait'); + var self = this; + var tref; + this.sendStop = function() { + debug('sendStop'); + self.sendStop = null; + clearTimeout(tref); + }; + tref = setTimeout(function() { + debug('timeout'); + self.sendStop = null; + self.sendSchedule(); + }, 25); + }; + + BufferedSender.prototype.sendSchedule = function() { + debug('sendSchedule', this.sendBuffer.length); + var self = this; + if (this.sendBuffer.length > 0) { + var payload = '[' + this.sendBuffer.join(',') + ']'; + this.sendStop = this.sender(this.url, payload, function(err) { + self.sendStop = null; + if (err) { + debug('error', err); + self.emit('close', err.code || 1006, 'Sending error: ' + err); + self._cleanup(); + } else { + self.sendScheduleWait(); + } + }); + this.sendBuffer = []; + } + }; + + BufferedSender.prototype._cleanup = function() { + debug('_cleanup'); + this.removeAllListeners(); + }; + + BufferedSender.prototype.stop = function() { + debug('stop'); + this._cleanup(); + if (this.sendStop) { + this.sendStop(); + this.sendStop = null; + } + }; + + module.exports = BufferedSender; + + +/***/ }, +/* 26 */ +/*!******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/lib/polling.js ***! + \******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:polling'); + } + + function Polling(Receiver, receiveUrl, AjaxObject) { + debug(receiveUrl); + EventEmitter.call(this); + this.Receiver = Receiver; + this.receiveUrl = receiveUrl; + this.AjaxObject = AjaxObject; + this._scheduleReceiver(); + } + + inherits(Polling, EventEmitter); + + Polling.prototype._scheduleReceiver = function() { + debug('_scheduleReceiver'); + var self = this; + var poll = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject); + + poll.on('message', function(msg) { + debug('message', msg); + self.emit('message', msg); + }); + + poll.once('close', function(code, reason) { + debug('close', code, reason, self.pollIsClosing); + self.poll = poll = null; + + if (!self.pollIsClosing) { + if (reason === 'network') { + self._scheduleReceiver(); + } else { + self.emit('close', code || 1006, reason); + self.removeAllListeners(); + } + } + }); + }; + + Polling.prototype.abort = function() { + debug('abort'); + this.removeAllListeners(); + this.pollIsClosing = true; + if (this.poll) { + this.poll.abort(); + } + }; + + module.exports = Polling; + + +/***/ }, +/* 27 */ +/*!*******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/receiver/xhr.js ***! + \*******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:receiver:xhr'); + } + + function XhrReceiver(url, AjaxObject) { + debug(url); + EventEmitter.call(this); + var self = this; + + this.bufferPosition = 0; + + this.xo = new AjaxObject('POST', url, null); + this.xo.on('chunk', this._chunkHandler.bind(this)); + this.xo.once('finish', function(status, text) { + debug('finish', status, text); + self._chunkHandler(status, text); + self.xo = null; + var reason = status === 200 ? 'network' : 'permanent'; + debug('close', reason); + self.emit('close', null, reason); + self._cleanup(); + }); + } + + inherits(XhrReceiver, EventEmitter); + + XhrReceiver.prototype._chunkHandler = function(status, text) { + debug('_chunkHandler', status); + if (status !== 200 || !text) { + return; + } + + for (var idx = -1; ; this.bufferPosition += idx + 1) { + var buf = text.slice(this.bufferPosition); + idx = buf.indexOf('\n'); + if (idx === -1) { + break; + } + var msg = buf.slice(0, idx); + if (msg) { + debug('message', msg); + this.emit('message', msg); + } + } + }; + + XhrReceiver.prototype._cleanup = function() { + debug('_cleanup'); + this.removeAllListeners(); + }; + + XhrReceiver.prototype.abort = function() { + debug('abort'); + if (this.xo) { + this.xo.close(); + debug('close'); + this.emit('close', null, 'user'); + this.xo = null; + } + this._cleanup(); + }; + + module.exports = XhrReceiver; + + +/***/ }, +/* 28 */ +/*!**********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/sender/xhr-cors.js ***! + \**********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , XhrDriver = __webpack_require__(/*! ../driver/xhr */ 29) + ; + + function XHRCorsObject(method, url, payload, opts) { + XhrDriver.call(this, method, url, payload, opts); + } + + inherits(XHRCorsObject, XhrDriver); + + XHRCorsObject.enabled = XhrDriver.enabled && XhrDriver.supportsCORS; + + module.exports = XHRCorsObject; + + +/***/ }, +/* 29 */ +/*!***************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/browser/abstract-xhr.js ***! + \***************************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , inherits = __webpack_require__(/*! inherits */ 18) + , utils = __webpack_require__(/*! ../../utils/event */ 6) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + , XHR = global.XMLHttpRequest + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:browser:xhr'); + } + + function AbstractXHRObject(method, url, payload, opts) { + debug(method, url); + var self = this; + EventEmitter.call(this); + + setTimeout(function () { + self._start(method, url, payload, opts); + }, 0); + } + + inherits(AbstractXHRObject, EventEmitter); + + AbstractXHRObject.prototype._start = function(method, url, payload, opts) { + var self = this; + + try { + this.xhr = new XHR(); + } catch (x) {} + + if (!this.xhr) { + debug('no xhr'); + this.emit('finish', 0, 'no xhr support'); + this._cleanup(); + return; + } + + // several browsers cache POSTs + url = urlUtils.addQuery(url, 't=' + (+new Date())); + + // Explorer tends to keep connection open, even after the + // tab gets closed: http://bugs.jquery.com/ticket/5280 + this.unloadRef = utils.unloadAdd(function() { + debug('unload cleanup'); + self._cleanup(true); + }); + try { + this.xhr.open(method, url, true); + if (this.timeout && 'timeout' in this.xhr) { + this.xhr.timeout = this.timeout; + this.xhr.ontimeout = function() { + debug('xhr timeout'); + self.emit('finish', 0, ''); + self._cleanup(false); + }; + } + } catch (e) { + debug('exception', e); + // IE raises an exception on wrong port. + this.emit('finish', 0, ''); + this._cleanup(false); + return; + } + + if ((!opts || !opts.noCredentials) && AbstractXHRObject.supportsCORS) { + debug('withCredentials'); + // Mozilla docs says https://developer.mozilla.org/en/XMLHttpRequest : + // "This never affects same-site requests." + + this.xhr.withCredentials = 'true'; + } + if (opts && opts.headers) { + for (var key in opts.headers) { + this.xhr.setRequestHeader(key, opts.headers[key]); + } + } + + this.xhr.onreadystatechange = function() { + if (self.xhr) { + var x = self.xhr; + var text, status; + debug('readyState', x.readyState); + switch (x.readyState) { + case 3: + // IE doesn't like peeking into responseText or status + // on Microsoft.XMLHTTP and readystate=3 + try { + status = x.status; + text = x.responseText; + } catch (e) {} + debug('status', status); + // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450 + if (status === 1223) { + status = 204; + } + + // IE does return readystate == 3 for 404 answers. + if (status === 200 && text && text.length > 0) { + debug('chunk'); + self.emit('chunk', status, text); + } + break; + case 4: + status = x.status; + debug('status', status); + // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450 + if (status === 1223) { + status = 204; + } + // IE returns this for a bad port + // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383770(v=vs.85).aspx + if (status === 12005 || status === 12029) { + status = 0; + } + + debug('finish', status, x.responseText); + self.emit('finish', status, x.responseText); + self._cleanup(false); + break; + } + } + }; + + try { + self.xhr.send(payload); + } catch (e) { + self.emit('finish', 0, ''); + self._cleanup(false); + } + }; + + AbstractXHRObject.prototype._cleanup = function(abort) { + debug('cleanup'); + if (!this.xhr) { + return; + } + this.removeAllListeners(); + utils.unloadDel(this.unloadRef); + + // IE needs this field to be a function + this.xhr.onreadystatechange = function() {}; + if (this.xhr.ontimeout) { + this.xhr.ontimeout = null; + } + + if (abort) { + try { + this.xhr.abort(); + } catch (x) {} + } + this.unloadRef = this.xhr = null; + }; + + AbstractXHRObject.prototype.close = function() { + debug('close'); + this._cleanup(true); + }; + + AbstractXHRObject.enabled = !!XHR; + // override XMLHttpRequest for IE6/7 + // obfuscate to avoid firewalls + var axo = ['Active'].concat('Object').join('X'); + if (!AbstractXHRObject.enabled && (axo in global)) { + debug('overriding xmlhttprequest'); + XHR = function() { + try { + return new global[axo]('Microsoft.XMLHTTP'); + } catch (e) { + return null; + } + }; + AbstractXHRObject.enabled = !!new XHR(); + } + + var cors = false; + try { + cors = 'withCredentials' in new XHR(); + } catch (ignored) {} + + AbstractXHRObject.supportsCORS = cors; + + module.exports = AbstractXHRObject; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 30 */ +/*!***********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/sender/xhr-local.js ***! + \***********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , XhrDriver = __webpack_require__(/*! ../driver/xhr */ 29) + ; + + function XHRLocalObject(method, url, payload /*, opts */) { + XhrDriver.call(this, method, url, payload, { + noCredentials: true + }); + } + + inherits(XHRLocalObject, XhrDriver); + + XHRLocalObject.enabled = XhrDriver.enabled; + + module.exports = XHRLocalObject; + + +/***/ }, +/* 31 */ +/*!**********************************************!*\ + !*** ./~/sockjs-client/lib/utils/browser.js ***! + \**********************************************/ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + module.exports = { + isOpera: function() { + return global.navigator && + /opera/i.test(global.navigator.userAgent); + } + + , isKonqueror: function() { + return global.navigator && + /konqueror/i.test(global.navigator.userAgent); + } + + // #187 wrap document.domain in try/catch because of WP8 from file:/// + , hasDomain: function () { + // non-browser client always has a domain + if (!global.document) { + return true; + } + + try { + return !!global.document.domain; + } catch (e) { + return false; + } + } + }; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 32 */ +/*!********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/xdr-streaming.js ***! + \********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + , XhrReceiver = __webpack_require__(/*! ./receiver/xhr */ 27) + , XDRObject = __webpack_require__(/*! ./sender/xdr */ 33) + ; + + // According to: + // http://stackoverflow.com/questions/1641507/detect-browser-support-for-cross-domain-xmlhttprequests + // http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ + + function XdrStreamingTransport(transUrl) { + if (!XDRObject.enabled) { + throw new Error('Transport created when disabled'); + } + AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XDRObject); + } + + inherits(XdrStreamingTransport, AjaxBasedTransport); + + XdrStreamingTransport.enabled = function(info) { + if (info.cookie_needed || info.nullOrigin) { + return false; + } + return XDRObject.enabled && info.sameScheme; + }; + + XdrStreamingTransport.transportName = 'xdr-streaming'; + XdrStreamingTransport.roundTrips = 2; // preflight, ajax + + module.exports = XdrStreamingTransport; + + +/***/ }, +/* 33 */ +/*!*****************************************************!*\ + !*** ./~/sockjs-client/lib/transport/sender/xdr.js ***! + \*****************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , inherits = __webpack_require__(/*! inherits */ 18) + , eventUtils = __webpack_require__(/*! ../../utils/event */ 6) + , browser = __webpack_require__(/*! ../../utils/browser */ 31) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:sender:xdr'); + } + + // References: + // http://ajaxian.com/archives/100-line-ajax-wrapper + // http://msdn.microsoft.com/en-us/library/cc288060(v=VS.85).aspx + + function XDRObject(method, url, payload) { + debug(method, url); + var self = this; + EventEmitter.call(this); + + setTimeout(function() { + self._start(method, url, payload); + }, 0); + } + + inherits(XDRObject, EventEmitter); + + XDRObject.prototype._start = function(method, url, payload) { + debug('_start'); + var self = this; + var xdr = new global.XDomainRequest(); + // IE caches even POSTs + url = urlUtils.addQuery(url, 't=' + (+new Date())); + + xdr.onerror = function() { + debug('onerror'); + self._error(); + }; + xdr.ontimeout = function() { + debug('ontimeout'); + self._error(); + }; + xdr.onprogress = function() { + debug('progress', xdr.responseText); + self.emit('chunk', 200, xdr.responseText); + }; + xdr.onload = function() { + debug('load'); + self.emit('finish', 200, xdr.responseText); + self._cleanup(false); + }; + this.xdr = xdr; + this.unloadRef = eventUtils.unloadAdd(function() { + self._cleanup(true); + }); + try { + // Fails with AccessDenied if port number is bogus + this.xdr.open(method, url); + if (this.timeout) { + this.xdr.timeout = this.timeout; + } + this.xdr.send(payload); + } catch (x) { + this._error(); + } + }; + + XDRObject.prototype._error = function() { + this.emit('finish', 0, ''); + this._cleanup(false); + }; + + XDRObject.prototype._cleanup = function(abort) { + debug('cleanup', abort); + if (!this.xdr) { + return; + } + this.removeAllListeners(); + eventUtils.unloadDel(this.unloadRef); + + this.xdr.ontimeout = this.xdr.onerror = this.xdr.onprogress = this.xdr.onload = null; + if (abort) { + try { + this.xdr.abort(); + } catch (x) {} + } + this.unloadRef = this.xdr = null; + }; + + XDRObject.prototype.close = function() { + debug('close'); + this._cleanup(true); + }; + + // IE 8/9 if the request target uses the same scheme - #79 + XDRObject.enabled = !!(global.XDomainRequest && browser.hasDomain()); + + module.exports = XDRObject; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 34 */ +/*!******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/eventsource.js ***! + \******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + , EventSourceReceiver = __webpack_require__(/*! ./receiver/eventsource */ 35) + , XHRCorsObject = __webpack_require__(/*! ./sender/xhr-cors */ 28) + , EventSourceDriver = __webpack_require__(/*! eventsource */ 36) + ; + + function EventSourceTransport(transUrl) { + if (!EventSourceTransport.enabled()) { + throw new Error('Transport created when disabled'); + } + + AjaxBasedTransport.call(this, transUrl, '/eventsource', EventSourceReceiver, XHRCorsObject); + } + + inherits(EventSourceTransport, AjaxBasedTransport); + + EventSourceTransport.enabled = function() { + return !!EventSourceDriver; + }; + + EventSourceTransport.transportName = 'eventsource'; + EventSourceTransport.roundTrips = 2; + + module.exports = EventSourceTransport; + + +/***/ }, +/* 35 */ +/*!***************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/receiver/eventsource.js ***! + \***************************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , EventSourceDriver = __webpack_require__(/*! eventsource */ 36) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:receiver:eventsource'); + } + + function EventSourceReceiver(url) { + debug(url); + EventEmitter.call(this); + + var self = this; + var es = this.es = new EventSourceDriver(url); + es.onmessage = function(e) { + debug('message', e.data); + self.emit('message', decodeURI(e.data)); + }; + es.onerror = function(e) { + debug('error', es.readyState, e); + // ES on reconnection has readyState = 0 or 1. + // on network error it's CLOSED = 2 + var reason = (es.readyState !== 2 ? 'network' : 'permanent'); + self._cleanup(); + self._close(reason); + }; + } + + inherits(EventSourceReceiver, EventEmitter); + + EventSourceReceiver.prototype.abort = function() { + debug('abort'); + this._cleanup(); + this._close('user'); + }; + + EventSourceReceiver.prototype._cleanup = function() { + debug('cleanup'); + var es = this.es; + if (es) { + es.onmessage = es.onerror = null; + es.close(); + this.es = null; + } + }; + + EventSourceReceiver.prototype._close = function(reason) { + debug('close', reason); + var self = this; + // Safari and chrome < 15 crash if we close window before + // waiting for ES cleanup. See: + // https://code.google.com/p/chromium/issues/detail?id=89155 + setTimeout(function() { + self.emit('close', null, reason); + self.removeAllListeners(); + }, 200); + }; + + module.exports = EventSourceReceiver; + + +/***/ }, +/* 36 */ +/*!**************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/browser/eventsource.js ***! + \**************************************************************/ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {module.exports = global.EventSource; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 37 */ +/*!**********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/lib/iframe-wrap.js ***! + \**********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , IframeTransport = __webpack_require__(/*! ../iframe */ 38) + , objectUtils = __webpack_require__(/*! ../../utils/object */ 44) + ; + + module.exports = function(transport) { + + function IframeWrapTransport(transUrl, baseUrl) { + IframeTransport.call(this, transport.transportName, transUrl, baseUrl); + } + + inherits(IframeWrapTransport, IframeTransport); + + IframeWrapTransport.enabled = function(url, info) { + if (!global.document) { + return false; + } + + var iframeInfo = objectUtils.extend({}, info); + iframeInfo.sameOrigin = true; + return transport.enabled(iframeInfo) && IframeTransport.enabled(); + }; + + IframeWrapTransport.transportName = 'iframe-' + transport.transportName; + IframeWrapTransport.needBody = true; + IframeWrapTransport.roundTrips = IframeTransport.roundTrips + transport.roundTrips - 1; // html, javascript (2) + transport - no CORS (1) + + IframeWrapTransport.facadeTransport = transport; + + return IframeWrapTransport; + }; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 38 */ +/*!*************************************************!*\ + !*** ./~/sockjs-client/lib/transport/iframe.js ***! + \*************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + // Few cool transports do work only for same-origin. In order to make + // them work cross-domain we shall use iframe, served from the + // remote domain. New browsers have capabilities to communicate with + // cross domain iframe using postMessage(). In IE it was implemented + // from IE 8+, but of course, IE got some details wrong: + // http://msdn.microsoft.com/en-us/library/cc197015(v=VS.85).aspx + // http://stevesouders.com/misc/test-postmessage.php + + var inherits = __webpack_require__(/*! inherits */ 18) + , JSON3 = __webpack_require__(/*! json3 */ 39) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , version = __webpack_require__(/*! ../version */ 42) + , urlUtils = __webpack_require__(/*! ../utils/url */ 9) + , iframeUtils = __webpack_require__(/*! ../utils/iframe */ 43) + , eventUtils = __webpack_require__(/*! ../utils/event */ 6) + , random = __webpack_require__(/*! ../utils/random */ 7) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:transport:iframe'); + } + + function IframeTransport(transport, transUrl, baseUrl) { + if (!IframeTransport.enabled()) { + throw new Error('Transport created when disabled'); + } + EventEmitter.call(this); + + var self = this; + this.origin = urlUtils.getOrigin(baseUrl); + this.baseUrl = baseUrl; + this.transUrl = transUrl; + this.transport = transport; + this.windowId = random.string(8); + + var iframeUrl = urlUtils.addPath(baseUrl, '/iframe.html') + '#' + this.windowId; + debug(transport, transUrl, iframeUrl); + + this.iframeObj = iframeUtils.createIframe(iframeUrl, function(r) { + debug('err callback'); + self.emit('close', 1006, 'Unable to load an iframe (' + r + ')'); + self.close(); + }); + + this.onmessageCallback = this._message.bind(this); + eventUtils.attachEvent('message', this.onmessageCallback); + } + + inherits(IframeTransport, EventEmitter); + + IframeTransport.prototype.close = function() { + debug('close'); + this.removeAllListeners(); + if (this.iframeObj) { + eventUtils.detachEvent('message', this.onmessageCallback); + try { + // When the iframe is not loaded, IE raises an exception + // on 'contentWindow'. + this.postMessage('c'); + } catch (x) {} + this.iframeObj.cleanup(); + this.iframeObj = null; + this.onmessageCallback = this.iframeObj = null; + } + }; + + IframeTransport.prototype._message = function(e) { + debug('message', e.data); + if (!urlUtils.isOriginEqual(e.origin, this.origin)) { + debug('not same origin', e.origin, this.origin); + return; + } + + var iframeMessage; + try { + iframeMessage = JSON3.parse(e.data); + } catch (ignored) { + debug('bad json', e.data); + return; + } + + if (iframeMessage.windowId !== this.windowId) { + debug('mismatched window id', iframeMessage.windowId, this.windowId); + return; + } + + switch (iframeMessage.type) { + case 's': + this.iframeObj.loaded(); + // window global dependency + this.postMessage('s', JSON3.stringify([ + version + , this.transport + , this.transUrl + , this.baseUrl + ])); + break; + case 't': + this.emit('message', iframeMessage.data); + break; + case 'c': + var cdata; + try { + cdata = JSON3.parse(iframeMessage.data); + } catch (ignored) { + debug('bad json', iframeMessage.data); + return; + } + this.emit('close', cdata[0], cdata[1]); + this.close(); + break; + } + }; + + IframeTransport.prototype.postMessage = function(type, data) { + debug('postMessage', type, data); + this.iframeObj.post(JSON3.stringify({ + windowId: this.windowId + , type: type + , data: data || '' + }), this.origin); + }; + + IframeTransport.prototype.send = function(message) { + debug('send', message); + this.postMessage('m', message); + }; + + IframeTransport.enabled = function() { + return iframeUtils.iframeEnabled; + }; + + IframeTransport.transportName = 'iframe'; + IframeTransport.roundTrips = 2; + + module.exports = IframeTransport; + + +/***/ }, +/* 39 */ +/*!******************************!*\ + !*** ./~/json3/lib/json3.js ***! + \******************************/ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ + ;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = "function" === "function" && __webpack_require__(/*! !webpack amd options */ 41); + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; + + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; + + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; + + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } + + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } + + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } + } + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; + } + + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); + }; + } + + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; + }; + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } + + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } + } + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } + } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; + + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; + + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; + } + result += useCharIndex ? symbols[index] : value.charAt(index); + } + } + return result + '"'; + }; + + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); + } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; + } else { + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); + } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; + } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; + + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); + } + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); + } + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); + }; + } + + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; + + // Internal: Stores the parser state. + var Index, Source; + + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; + + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } + } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); + } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; + + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); + } + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; + } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; + + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; + }; + } + } + + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { + return JSON3; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + }).call(this); + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/buildin/module.js */ 40)(module), (function() { return this; }()))) + +/***/ }, +/* 40 */ +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/***/ function(module, exports) { + + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }, +/* 41 */ +/*!****************************************!*\ + !*** (webpack)/buildin/amd-options.js ***! + \****************************************/ +/***/ function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; + + /* WEBPACK VAR INJECTION */}.call(exports, {})) + +/***/ }, +/* 42 */ +/*!****************************************!*\ + !*** ./~/sockjs-client/lib/version.js ***! + \****************************************/ +/***/ function(module, exports) { + + module.exports = '1.0.1'; + +/***/ }, +/* 43 */ +/*!*********************************************!*\ + !*** ./~/sockjs-client/lib/utils/iframe.js ***! + \*********************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var eventUtils = __webpack_require__(/*! ./event */ 6) + , JSON3 = __webpack_require__(/*! json3 */ 39) + , browser = __webpack_require__(/*! ./browser */ 31) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:utils:iframe'); + } + + module.exports = { + WPrefix: '_jp' + , currentWindowId: null + + , polluteGlobalNamespace: function() { + if (!(module.exports.WPrefix in global)) { + global[module.exports.WPrefix] = {}; + } + } + + , postMessage: function(type, data) { + if (global.parent !== global) { + global.parent.postMessage(JSON3.stringify({ + windowId: module.exports.currentWindowId + , type: type + , data: data || '' + }), '*'); + } else { + debug('Cannot postMessage, no parent window.', type, data); + } + } + + , createIframe: function(iframeUrl, errorCallback) { + var iframe = global.document.createElement('iframe'); + var tref, unloadRef; + var unattach = function() { + debug('unattach'); + clearTimeout(tref); + // Explorer had problems with that. + try { + iframe.onload = null; + } catch (x) {} + iframe.onerror = null; + }; + var cleanup = function() { + debug('cleanup'); + if (iframe) { + unattach(); + // This timeout makes chrome fire onbeforeunload event + // within iframe. Without the timeout it goes straight to + // onunload. + setTimeout(function() { + if (iframe) { + iframe.parentNode.removeChild(iframe); + } + iframe = null; + }, 0); + eventUtils.unloadDel(unloadRef); + } + }; + var onerror = function(err) { + debug('onerror', err); + if (iframe) { + cleanup(); + errorCallback(err); + } + }; + var post = function(msg, origin) { + debug('post', msg, origin); + try { + // When the iframe is not loaded, IE raises an exception + // on 'contentWindow'. + if (iframe && iframe.contentWindow) { + setTimeout(function() { + iframe.contentWindow.postMessage(msg, origin); + }, 0); + } + } catch (x) {} + }; + + iframe.src = iframeUrl; + iframe.style.display = 'none'; + iframe.style.position = 'absolute'; + iframe.onerror = function() { + onerror('onerror'); + }; + iframe.onload = function() { + debug('onload'); + // `onload` is triggered before scripts on the iframe are + // executed. Give it few seconds to actually load stuff. + clearTimeout(tref); + tref = setTimeout(function() { + onerror('onload timeout'); + }, 2000); + }; + global.document.body.appendChild(iframe); + tref = setTimeout(function() { + onerror('timeout'); + }, 15000); + unloadRef = eventUtils.unloadAdd(cleanup); + return { + post: post + , cleanup: cleanup + , loaded: unattach + }; + } + + /* jshint undef: false, newcap: false */ + /* eslint no-undef: 0, new-cap: 0 */ + , createHtmlfile: function(iframeUrl, errorCallback) { + var axo = ['Active'].concat('Object').join('X'); + var doc = new global[axo]('htmlfile'); + var tref, unloadRef; + var iframe; + var unattach = function() { + clearTimeout(tref); + iframe.onerror = null; + }; + var cleanup = function() { + if (doc) { + unattach(); + eventUtils.unloadDel(unloadRef); + iframe.parentNode.removeChild(iframe); + iframe = doc = null; + CollectGarbage(); + } + }; + var onerror = function(r) { + debug('onerror', r); + if (doc) { + cleanup(); + errorCallback(r); + } + }; + var post = function(msg, origin) { + try { + // When the iframe is not loaded, IE raises an exception + // on 'contentWindow'. + if (iframe && iframe.contentWindow) { + setTimeout(function() { + iframe.contentWindow.postMessage(msg, origin); + }, 0); + } + } catch (x) {} + }; + + doc.open(); + doc.write('' + + 'document.domain="' + global.document.domain + '";' + + ''); + doc.close(); + doc.parentWindow[module.exports.WPrefix] = global[module.exports.WPrefix]; + var c = doc.createElement('div'); + doc.body.appendChild(c); + iframe = doc.createElement('iframe'); + c.appendChild(iframe); + iframe.src = iframeUrl; + iframe.onerror = function() { + onerror('onerror'); + }; + tref = setTimeout(function() { + onerror('timeout'); + }, 15000); + unloadRef = eventUtils.unloadAdd(cleanup); + return { + post: post + , cleanup: cleanup + , loaded: unattach + }; + } + }; + + module.exports.iframeEnabled = false; + if (global.document) { + // postMessage misbehaves in konqueror 4.6.5 - the messages are delivered with + // huge delay, or not at all. + module.exports.iframeEnabled = (typeof global.postMessage === 'function' || + typeof global.postMessage === 'object') && (!browser.isKonqueror()); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 44 */ +/*!*********************************************!*\ + !*** ./~/sockjs-client/lib/utils/object.js ***! + \*********************************************/ +/***/ function(module, exports) { + + 'use strict'; + + module.exports = { + isObject: function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + } + + , extend: function(obj) { + if (!this.isObject(obj)) { + return obj; + } + var source, prop; + for (var i = 1, length = arguments.length; i < length; i++) { + source = arguments[i]; + for (prop in source) { + if (Object.prototype.hasOwnProperty.call(source, prop)) { + obj[prop] = source[prop]; + } + } + } + return obj; + } + }; + + +/***/ }, +/* 45 */ +/*!***************************************************!*\ + !*** ./~/sockjs-client/lib/transport/htmlfile.js ***! + \***************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , HtmlfileReceiver = __webpack_require__(/*! ./receiver/htmlfile */ 46) + , XHRLocalObject = __webpack_require__(/*! ./sender/xhr-local */ 30) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + ; + + function HtmlFileTransport(transUrl) { + if (!HtmlfileReceiver.enabled) { + throw new Error('Transport created when disabled'); + } + AjaxBasedTransport.call(this, transUrl, '/htmlfile', HtmlfileReceiver, XHRLocalObject); + } + + inherits(HtmlFileTransport, AjaxBasedTransport); + + HtmlFileTransport.enabled = function(info) { + return HtmlfileReceiver.enabled && info.sameOrigin; + }; + + HtmlFileTransport.transportName = 'htmlfile'; + HtmlFileTransport.roundTrips = 2; + + module.exports = HtmlFileTransport; + + +/***/ }, +/* 46 */ +/*!************************************************************!*\ + !*** ./~/sockjs-client/lib/transport/receiver/htmlfile.js ***! + \************************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , iframeUtils = __webpack_require__(/*! ../../utils/iframe */ 43) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + , random = __webpack_require__(/*! ../../utils/random */ 7) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:receiver:htmlfile'); + } + + function HtmlfileReceiver(url) { + debug(url); + EventEmitter.call(this); + var self = this; + iframeUtils.polluteGlobalNamespace(); + + this.id = 'a' + random.string(6); + url = urlUtils.addQuery(url, 'c=' + decodeURIComponent(iframeUtils.WPrefix + '.' + this.id)); + + debug('using htmlfile', HtmlfileReceiver.htmlfileEnabled); + var constructFunc = HtmlfileReceiver.htmlfileEnabled ? + iframeUtils.createHtmlfile : iframeUtils.createIframe; + + global[iframeUtils.WPrefix][this.id] = { + start: function() { + debug('start'); + self.iframeObj.loaded(); + } + , message: function(data) { + debug('message', data); + self.emit('message', data); + } + , stop: function() { + debug('stop'); + self._cleanup(); + self._close('network'); + } + }; + this.iframeObj = constructFunc(url, function() { + debug('callback'); + self._cleanup(); + self._close('permanent'); + }); + } + + inherits(HtmlfileReceiver, EventEmitter); + + HtmlfileReceiver.prototype.abort = function() { + debug('abort'); + this._cleanup(); + this._close('user'); + }; + + HtmlfileReceiver.prototype._cleanup = function() { + debug('_cleanup'); + if (this.iframeObj) { + this.iframeObj.cleanup(); + this.iframeObj = null; + } + delete global[iframeUtils.WPrefix][this.id]; + }; + + HtmlfileReceiver.prototype._close = function(reason) { + debug('_close', reason); + this.emit('close', null, reason); + this.removeAllListeners(); + }; + + HtmlfileReceiver.htmlfileEnabled = false; + + // obfuscate to avoid firewalls + var axo = ['Active'].concat('Object').join('X'); + if (axo in global) { + try { + HtmlfileReceiver.htmlfileEnabled = !!new global[axo]('htmlfile'); + } catch (x) {} + } + + HtmlfileReceiver.enabled = HtmlfileReceiver.htmlfileEnabled || iframeUtils.iframeEnabled; + + module.exports = HtmlfileReceiver; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 47 */ +/*!******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/xhr-polling.js ***! + \******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + , XhrReceiver = __webpack_require__(/*! ./receiver/xhr */ 27) + , XHRCorsObject = __webpack_require__(/*! ./sender/xhr-cors */ 28) + , XHRLocalObject = __webpack_require__(/*! ./sender/xhr-local */ 30) + ; + + function XhrPollingTransport(transUrl) { + if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) { + throw new Error('Transport created when disabled'); + } + AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XHRCorsObject); + } + + inherits(XhrPollingTransport, AjaxBasedTransport); + + XhrPollingTransport.enabled = function(info) { + if (info.nullOrigin) { + return false; + } + + if (XHRLocalObject.enabled && info.sameOrigin) { + return true; + } + return XHRCorsObject.enabled; + }; + + XhrPollingTransport.transportName = 'xhr-polling'; + XhrPollingTransport.roundTrips = 2; // preflight, ajax + + module.exports = XhrPollingTransport; + + +/***/ }, +/* 48 */ +/*!******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/xdr-polling.js ***! + \******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var inherits = __webpack_require__(/*! inherits */ 18) + , AjaxBasedTransport = __webpack_require__(/*! ./lib/ajax-based */ 23) + , XdrStreamingTransport = __webpack_require__(/*! ./xdr-streaming */ 32) + , XhrReceiver = __webpack_require__(/*! ./receiver/xhr */ 27) + , XDRObject = __webpack_require__(/*! ./sender/xdr */ 33) + ; + + function XdrPollingTransport(transUrl) { + if (!XDRObject.enabled) { + throw new Error('Transport created when disabled'); + } + AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XDRObject); + } + + inherits(XdrPollingTransport, AjaxBasedTransport); + + XdrPollingTransport.enabled = XdrStreamingTransport.enabled; + XdrPollingTransport.transportName = 'xdr-polling'; + XdrPollingTransport.roundTrips = 2; // preflight, ajax + + module.exports = XdrPollingTransport; + + +/***/ }, +/* 49 */ +/*!********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/jsonp-polling.js ***! + \********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + // The simplest and most robust transport, using the well-know cross + // domain hack - JSONP. This transport is quite inefficient - one + // message could use up to one http request. But at least it works almost + // everywhere. + // Known limitations: + // o you will get a spinning cursor + // o for Konqueror a dumb timer is needed to detect errors + + var inherits = __webpack_require__(/*! inherits */ 18) + , SenderReceiver = __webpack_require__(/*! ./lib/sender-receiver */ 24) + , JsonpReceiver = __webpack_require__(/*! ./receiver/jsonp */ 50) + , jsonpSender = __webpack_require__(/*! ./sender/jsonp */ 51) + ; + + function JsonPTransport(transUrl) { + if (!JsonPTransport.enabled()) { + throw new Error('Transport created when disabled'); + } + SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver); + } + + inherits(JsonPTransport, SenderReceiver); + + JsonPTransport.enabled = function() { + return !!global.document; + }; + + JsonPTransport.transportName = 'jsonp-polling'; + JsonPTransport.roundTrips = 1; + JsonPTransport.needBody = true; + + module.exports = JsonPTransport; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 50 */ +/*!*********************************************************!*\ + !*** ./~/sockjs-client/lib/transport/receiver/jsonp.js ***! + \*********************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var utils = __webpack_require__(/*! ../../utils/iframe */ 43) + , random = __webpack_require__(/*! ../../utils/random */ 7) + , browser = __webpack_require__(/*! ../../utils/browser */ 31) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + , inherits = __webpack_require__(/*! inherits */ 18) + , EventEmitter = __webpack_require__(/*! events */ 19).EventEmitter + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:receiver:jsonp'); + } + + function JsonpReceiver(url) { + debug(url); + var self = this; + EventEmitter.call(this); + + utils.polluteGlobalNamespace(); + + this.id = 'a' + random.string(6); + var urlWithId = urlUtils.addQuery(url, 'c=' + encodeURIComponent(utils.WPrefix + '.' + this.id)); + + global[utils.WPrefix][this.id] = this._callback.bind(this); + this._createScript(urlWithId); + + // Fallback mostly for Konqueror - stupid timer, 35 seconds shall be plenty. + this.timeoutId = setTimeout(function() { + debug('timeout'); + self._abort(new Error('JSONP script loaded abnormally (timeout)')); + }, JsonpReceiver.timeout); + } + + inherits(JsonpReceiver, EventEmitter); + + JsonpReceiver.prototype.abort = function() { + debug('abort'); + if (global[utils.WPrefix][this.id]) { + var err = new Error('JSONP user aborted read'); + err.code = 1000; + this._abort(err); + } + }; + + JsonpReceiver.timeout = 35000; + JsonpReceiver.scriptErrorTimeout = 1000; + + JsonpReceiver.prototype._callback = function(data) { + debug('_callback', data); + this._cleanup(); + + if (this.aborting) { + return; + } + + if (data) { + debug('message', data); + this.emit('message', data); + } + this.emit('close', null, 'network'); + this.removeAllListeners(); + }; + + JsonpReceiver.prototype._abort = function(err) { + debug('_abort', err); + this._cleanup(); + this.aborting = true; + this.emit('close', err.code, err.message); + this.removeAllListeners(); + }; + + JsonpReceiver.prototype._cleanup = function() { + debug('_cleanup'); + clearTimeout(this.timeoutId); + if (this.script2) { + this.script2.parentNode.removeChild(this.script2); + this.script2 = null; + } + if (this.script) { + var script = this.script; + // Unfortunately, you can't really abort script loading of + // the script. + script.parentNode.removeChild(script); + script.onreadystatechange = script.onerror = + script.onload = script.onclick = null; + this.script = null; + } + delete global[utils.WPrefix][this.id]; + }; + + JsonpReceiver.prototype._scriptError = function() { + debug('_scriptError'); + var self = this; + if (this.errorTimer) { + return; + } + + this.errorTimer = setTimeout(function() { + if (!self.loadedOkay) { + self._abort(new Error('JSONP script loaded abnormally (onerror)')); + } + }, JsonpReceiver.scriptErrorTimeout); + }; + + JsonpReceiver.prototype._createScript = function(url) { + debug('_createScript', url); + var self = this; + var script = this.script = global.document.createElement('script'); + var script2; // Opera synchronous load trick. + + script.id = 'a' + random.string(8); + script.src = url; + script.type = 'text/javascript'; + script.charset = 'UTF-8'; + script.onerror = this._scriptError.bind(this); + script.onload = function() { + debug('onload'); + self._abort(new Error('JSONP script loaded abnormally (onload)')); + }; + + // IE9 fires 'error' event after onreadystatechange or before, in random order. + // Use loadedOkay to determine if actually errored + script.onreadystatechange = function() { + debug('onreadystatechange', script.readyState); + if (/loaded|closed/.test(script.readyState)) { + if (script && script.htmlFor && script.onclick) { + self.loadedOkay = true; + try { + // In IE, actually execute the script. + script.onclick(); + } catch (x) {} + } + if (script) { + self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)')); + } + } + }; + // IE: event/htmlFor/onclick trick. + // One can't rely on proper order for onreadystatechange. In order to + // make sure, set a 'htmlFor' and 'event' properties, so that + // script code will be installed as 'onclick' handler for the + // script object. Later, onreadystatechange, manually execute this + // code. FF and Chrome doesn't work with 'event' and 'htmlFor' + // set. For reference see: + // http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html + // Also, read on that about script ordering: + // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order + if (typeof script.async === 'undefined' && global.document.attachEvent) { + // According to mozilla docs, in recent browsers script.async defaults + // to 'true', so we may use it to detect a good browser: + // https://developer.mozilla.org/en/HTML/Element/script + if (!browser.isOpera()) { + // Naively assume we're in IE + try { + script.htmlFor = script.id; + script.event = 'onclick'; + } catch (x) {} + script.async = true; + } else { + // Opera, second sync script hack + script2 = this.script2 = global.document.createElement('script'); + script2.text = "try{var a = document.getElementById('" + script.id + "'); if(a)a.onerror();}catch(x){};"; + script.async = script2.async = false; + } + } + if (typeof script.async !== 'undefined') { + script.async = true; + } + + var head = global.document.getElementsByTagName('head')[0]; + head.insertBefore(script, head.firstChild); + if (script2) { + head.insertBefore(script2, head.firstChild); + } + }; + + module.exports = JsonpReceiver; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 51 */ +/*!*******************************************************!*\ + !*** ./~/sockjs-client/lib/transport/sender/jsonp.js ***! + \*******************************************************/ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var random = __webpack_require__(/*! ../../utils/random */ 7) + , urlUtils = __webpack_require__(/*! ../../utils/url */ 9) + ; + + var debug = function() {}; + if (true) { + debug = __webpack_require__(/*! debug */ 14)('sockjs-client:sender:jsonp'); + } + + var form, area; + + function createIframe(id) { + debug('createIframe', id); + try { + // ie6 dynamic iframes with target="" support (thanks Chris Lambacher) + return global.document.createElement('