From f0a2793e8c933ae469c1fcae3f3983afe18fbf37 Mon Sep 17 00:00:00 2001 From: GloriousCode Date: Tue, 15 Aug 2017 06:45:36 +1000 Subject: [PATCH] Adds a new template for the beginning of a new front end --- web/.angular-cli.json | 60 + web/.bowerrc | 3 - web/.editorconfig | 13 + web/.gitignore | 48 +- web/.jshintrc | 24 - web/.travis.yml | 16 +- web/Dockerfile | 1 - web/LICENSE | 22 - web/LICENSE.md | 194 + web/README.md | 69 +- web/_config.yml | 1 + web/app/app.css | 45 - web/app/app.js | 33 - web/app/components/buy-orders/buy-orders.css | 12 - web/app/components/buy-orders/buy-orders.html | 25 - web/app/components/buy-orders/buy-orders.js | 52 - web/app/components/buy/buy.html | 25 - web/app/components/buy/buy.js | 40 - .../enabled-exchanges/enabled-exchanges.html | 28 - .../enabled-exchanges/enabled-exchanges.js | 32 - web/app/components/helpers/stringUtils.js | 9 - web/app/components/helpers/webSocket.js | 21 - .../components/sell-orders/sell-orders.css | 12 - .../components/sell-orders/sell-orders.html | 25 - web/app/components/sell-orders/sell-orders.js | 52 - web/app/components/sell/sell.html | 25 - web/app/components/sell/sell.js | 40 - .../components/version/interpolate-filter.js | 9 - .../version/interpolate-filter_test.js | 15 - .../components/version/version-directive.js | 9 - .../version/version-directive_test.js | 17 - web/app/components/version/version.js | 8 - web/app/components/version/version_test.js | 11 - web/app/darktheme.min.css | 11 - web/app/index-async.html | 58 - web/app/index.html | 80 - web/app/views/home/home.html | 73 - web/app/views/home/home.js | 28 - web/app/views/home/home_test.js | 16 - web/app/views/settings/settings.html | 60 - web/app/views/settings/settings.js | 80 - web/app/views/settings/settings_test.js | 16 - web/app/views/wallets/wallets.html | 17 - web/app/views/wallets/wallets.js | 29 - web/app/views/wallets/wallets_test.js | 16 - web/bower.json | 18 - web/e2e-tests/protractor.conf.js | 22 - web/e2e-tests/scenarios.js | 42 - web/e2e/app.e2e-spec.ts | 14 + web/e2e/app.po.ts | 8 + web/e2e/tsconfig.e2e.json | 12 + web/karma.conf.js | 68 +- web/logo-angular.jpg | Bin 0 -> 3354 bytes web/logo-electron.jpg | Bin 0 -> 8028 bytes web/main.ts | 71 + web/package-lock.json | 9906 +++++++++++++++++ web/package.js | 60 + web/package.json | 129 +- web/protractor.conf.js | 36 + web/server.js | 63 - web/src/app/app-routing.module.ts | 21 + web/src/app/app.component.html | 1 + .../app/app.component.scss} | 0 web/src/app/app.component.spec.ts | 24 + web/src/app/app.component.ts | 22 + web/src/app/app.module.ts | 32 + .../app/components/about/about.component.html | 3 + .../app/components/about/about.component.scss | 0 .../components/about/about.component.spec.ts | 25 + .../app/components/about/about.component.ts | 15 + .../app/components/home/home.component.html | 6 + .../app/components/home/home.component.scss | 17 + .../components/home/home.component.spec.ts | 38 + web/src/app/components/home/home.component.ts | 16 + web/src/app/providers/electron.service.ts | 26 + web/src/assets/.gitkeep | 0 web/src/assets/background.jpg | Bin 0 -> 232337 bytes web/src/environments/index.prod.ts | 5 + web/src/environments/index.ts | 5 + web/src/favicon.ico | Bin 0 -> 5430 bytes web/src/index.html | 14 + web/src/main.ts | 11 + web/src/polyfills.ts | 67 + web/src/styles.scss | 7 + web/src/test.ts | 32 + web/src/tsconfig.app.json | 16 + web/src/tsconfig.spec.json | 25 + web/src/typings.d.ts | 11 + web/tsconfig.json | 30 + web/tslint.json | 116 + web/webpack.config.js | 386 + 91 files changed, 11583 insertions(+), 1317 deletions(-) create mode 100644 web/.angular-cli.json delete mode 100644 web/.bowerrc create mode 100644 web/.editorconfig delete mode 100644 web/.jshintrc delete mode 100644 web/Dockerfile delete mode 100644 web/LICENSE create mode 100644 web/LICENSE.md create mode 100644 web/_config.yml delete mode 100644 web/app/app.css delete mode 100644 web/app/app.js delete mode 100644 web/app/components/buy-orders/buy-orders.css delete mode 100644 web/app/components/buy-orders/buy-orders.html delete mode 100644 web/app/components/buy-orders/buy-orders.js delete mode 100644 web/app/components/buy/buy.html delete mode 100644 web/app/components/buy/buy.js delete mode 100644 web/app/components/enabled-exchanges/enabled-exchanges.html delete mode 100644 web/app/components/enabled-exchanges/enabled-exchanges.js delete mode 100644 web/app/components/helpers/stringUtils.js delete mode 100644 web/app/components/helpers/webSocket.js delete mode 100644 web/app/components/sell-orders/sell-orders.css delete mode 100644 web/app/components/sell-orders/sell-orders.html delete mode 100644 web/app/components/sell-orders/sell-orders.js delete mode 100644 web/app/components/sell/sell.html delete mode 100644 web/app/components/sell/sell.js delete mode 100644 web/app/components/version/interpolate-filter.js delete mode 100644 web/app/components/version/interpolate-filter_test.js delete mode 100644 web/app/components/version/version-directive.js delete mode 100644 web/app/components/version/version-directive_test.js delete mode 100644 web/app/components/version/version.js delete mode 100644 web/app/components/version/version_test.js delete mode 100644 web/app/darktheme.min.css delete mode 100644 web/app/index-async.html delete mode 100644 web/app/index.html delete mode 100644 web/app/views/home/home.html delete mode 100644 web/app/views/home/home.js delete mode 100644 web/app/views/home/home_test.js delete mode 100644 web/app/views/settings/settings.html delete mode 100644 web/app/views/settings/settings.js delete mode 100644 web/app/views/settings/settings_test.js delete mode 100644 web/app/views/wallets/wallets.html delete mode 100644 web/app/views/wallets/wallets.js delete mode 100644 web/app/views/wallets/wallets_test.js delete mode 100644 web/bower.json delete mode 100644 web/e2e-tests/protractor.conf.js delete mode 100644 web/e2e-tests/scenarios.js create mode 100644 web/e2e/app.e2e-spec.ts create mode 100644 web/e2e/app.po.ts create mode 100644 web/e2e/tsconfig.e2e.json create mode 100644 web/logo-angular.jpg create mode 100644 web/logo-electron.jpg create mode 100644 web/main.ts create mode 100644 web/package-lock.json create mode 100644 web/package.js create mode 100644 web/protractor.conf.js delete mode 100644 web/server.js create mode 100644 web/src/app/app-routing.module.ts create mode 100644 web/src/app/app.component.html rename web/{app/controllers.js => src/app/app.component.scss} (100%) create mode 100644 web/src/app/app.component.spec.ts create mode 100644 web/src/app/app.component.ts create mode 100644 web/src/app/app.module.ts create mode 100644 web/src/app/components/about/about.component.html create mode 100644 web/src/app/components/about/about.component.scss create mode 100644 web/src/app/components/about/about.component.spec.ts create mode 100644 web/src/app/components/about/about.component.ts create mode 100644 web/src/app/components/home/home.component.html create mode 100644 web/src/app/components/home/home.component.scss create mode 100644 web/src/app/components/home/home.component.spec.ts create mode 100644 web/src/app/components/home/home.component.ts create mode 100644 web/src/app/providers/electron.service.ts create mode 100644 web/src/assets/.gitkeep create mode 100644 web/src/assets/background.jpg create mode 100644 web/src/environments/index.prod.ts create mode 100644 web/src/environments/index.ts create mode 100644 web/src/favicon.ico create mode 100644 web/src/index.html create mode 100644 web/src/main.ts create mode 100644 web/src/polyfills.ts create mode 100644 web/src/styles.scss create mode 100644 web/src/test.ts create mode 100644 web/src/tsconfig.app.json create mode 100644 web/src/tsconfig.spec.json create mode 100644 web/src/typings.d.ts create mode 100644 web/tsconfig.json create mode 100644 web/tslint.json create mode 100644 web/webpack.config.js diff --git a/web/.angular-cli.json b/web/.angular-cli.json new file mode 100644 index 00000000..793a55c4 --- /dev/null +++ b/web/.angular-cli.json @@ -0,0 +1,60 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "project": { + "name": "angular-electron", + "ejected": true + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": [ + "assets", + "favicon.ico" + ], + "index": "index.html", + "main": "main.ts", + "polyfills": "polyfills.ts", + "test": "test.ts", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", + "prefix": "app", + "styles": [ + "styles.scss" + ], + "scripts": [ + ], + "environmentSource": "environments/environment.ts", + "environments": { + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "lint": [ + { + "project": "src/tsconfig.app.json" + }, + { + "project": "src/tsconfig.spec.json" + }, + { + "project": "e2e/tsconfig.e2e.json" + } + ], + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "scss", + "component": { + } + } +} diff --git a/web/.bowerrc b/web/.bowerrc deleted file mode 100644 index 8c58c8ef..00000000 --- a/web/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "app/bower_components" -} \ No newline at end of file diff --git a/web/.editorconfig b/web/.editorconfig new file mode 100644 index 00000000..6e87a003 --- /dev/null +++ b/web/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/web/.gitignore b/web/.gitignore index b702acc6..463eb2c1 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,7 +1,43 @@ -logs/* -!.gitkeep -node_modules/ -bower_components/ -tmp +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +/app-builds + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +testem.log +/typings + +# e2e +/e2e/*.js +/e2e/*.map + +# System Files .DS_Store -.idea \ No newline at end of file +Thumbs.db diff --git a/web/.jshintrc b/web/.jshintrc deleted file mode 100644 index 60f49fd3..00000000 --- a/web/.jshintrc +++ /dev/null @@ -1,24 +0,0 @@ -{ - "strict": "global", - "globals": { - // Angular - "angular": false, - - // Angular mocks - "module": false, - "inject": false, - - // Jasmine - "jasmine": false, - "describe": false, - "beforeEach": false, - "afterEach": false, - "it": false, - "expect": false, - - // Protractor - "browser": false, - "element": false, - "by": false - } -} diff --git a/web/.travis.yml b/web/.travis.yml index a549d113..e3d2b94c 100644 --- a/web/.travis.yml +++ b/web/.travis.yml @@ -1,14 +1,8 @@ language: node_js node_js: - - '4.4' - -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - - npm start > /dev/null & - - npm run update-webdriver - - sleep 1 # give server time to start - + - "7" + - "6" +install: + - npm install script: - - node_modules/.bin/karma start karma.conf.js --no-auto-watch --single-run --reporters=dots --browsers=Firefox - - node_modules/.bin/protractor e2e-tests/protractor.conf.js --browser=firefox + - npm run build diff --git a/web/Dockerfile b/web/Dockerfile deleted file mode 100644 index bf45650a..00000000 --- a/web/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM node:onbuild diff --git a/web/LICENSE b/web/LICENSE deleted file mode 100644 index b8de5aae..00000000 --- a/web/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2010-2016 Google, Inc. http://angularjs.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/web/LICENSE.md b/web/LICENSE.md new file mode 100644 index 00000000..a4c5fe44 --- /dev/null +++ b/web/LICENSE.md @@ -0,0 +1,194 @@ +Apache License +============== + +_Version 2.0, January 2004_ +_<>_ + +### Terms and Conditions for use, reproduction, and distribution + +#### 1. Definitions + +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means **(i)** the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the +outstanding shares, or **(iii)** beneficial ownership of such entity. + +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License. + +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.” + +“Contributor” shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +#### 2. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +#### 3. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +#### 4. Redistribution + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +* **(a)** You must give any other recipients of the Work or Derivative Works a copy of +this License; and +* **(b)** You must cause any modified files to carry prominent notices stating that You +changed the files; and +* **(c)** You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +#### 5. Submission of Contributions + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +#### 6. Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +#### 7. Disclaimer of Warranty + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +#### 8. Limitation of Liability + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +#### 9. Accepting Warranty or Additional Liability + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +_END OF TERMS AND CONDITIONS_ + +### APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets `[]` replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same “printed page” as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/web/README.md b/web/README.md index e3ebc27c..70eef727 100644 --- a/web/README.md +++ b/web/README.md @@ -2,33 +2,72 @@ A website interface to interact with the main gocryptotrader application ## Current Features -+ Basic web views -+ Interaction between gocryptotrader and gocryptotraderweb ++ It can run... It is so incredibly basic right now ## Planned Features You can track ideas, planned features and what's in progresss on this Trello board: [https://trello.com/b/ZAhMhpOy/gocryptotrader](https://trello.com/b/ZAhMhpOy/gocryptotrader). -### Prerequisites + +Install dependencies with npm : -You can get git from [http://git-scm.com/](http://git-scm.com/). - -You must have node.js and its package manager (npm) installed. You can get them from [http://nodejs.org/](http://nodejs.org/). -### Install Dependencies - -``` +``` bash npm install ``` +There is an issue with `yarn` and `node_modules` that are only used in electron on the backend when the application is built by the packager. Please use `npm` as dependencies manager. -### Run the Application +If you want to generate Angular components with Angular-cli , you **MUST** install `@angular/cli` in npm global context. +Please follow [Angular-cli documentation](https://github.com/angular/angular-cli) if you had installed a previous version of `angular-cli`. -The simplest way to start this server is: - -``` -npm start +``` bash +npm install -g @angular/cli ``` -Now browse to the app at `http://localhost/`. +## To build for development + +- **in a terminal window** -> npm start +- **in another terminal window** -> npm run electron:serve + +Voila! You can use your Angular + Electron app in a local development environment with hot reload ! + +The application code is managed by `main.ts`. In this sample, the app runs with a simple Electron window and "Developer Tools" is open. +The Angular component contains an example of Electron and NodeJS native lib import. See [Use NodeJS Native libraries](#use-nodejs-native-libraries) charpter if you want to import other native libraries in your project. +You can desactivate "Developer Tools" by commenting `win.webContents.openDevTools();` in `main.ts`. + +## To build for production + +- Using development variables (environments/index.ts) : `npm run electron:dev` +- Using production variables (environments/index.prod.ts) : `npm run electron:prod` + +Your built files are in the /dist folder. + +## Included Commands + +|Command|Description| +|--|--| +|`npm run start:web`| Execute the app in the brower | +|`npm run electron:linux`| Builds your application and creates an app consumable on linux system | +|`npm run electron:windows`| On a Windows OS, builds your application and creates an app consumable in windows 32/64 bit systems | +|`npm run electron:mac`| On a MAC OS, builds your application and generates a `.app` file of your application that can be run on Ma | + + +## Browser mode + +Maybe you want to execute the application in the browser (WITHOUT HOT RELOAD ACTUALLY...) ? You can do it with `npm run start:web`. +Note that you can't use Electron or NodeJS native libraries in this case. Please check `providers/electron.service.ts` to watch how conditional import of electron/Native libraries is done. + +## Execute E2E tests + +You can find end-to-end tests in /e2e folder. + +You can run tests with the command lines below : +- **in a terminal window** -> First, start a web server on port 4200 : `npm run start:web` +- **in another terminal window** -> Then, launch Protractor (E2E framework): `npm run e2e` + +# Contributors +|[GloriousCode](https://github.com/gloriouscode)| +|[Shazbot](https://github.com/shazbert)| +|[Maxime GRIS](https://github.com/maximegris)| diff --git a/web/_config.yml b/web/_config.yml new file mode 100644 index 00000000..3397c9a4 --- /dev/null +++ b/web/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-architect \ No newline at end of file diff --git a/web/app/app.css b/web/app/app.css deleted file mode 100644 index ceb2ba69..00000000 --- a/web/app/app.css +++ /dev/null @@ -1,45 +0,0 @@ -/* app css stylesheet */ - -.menu { - list-style: none; - border-bottom: 0.1em solid black; - margin-bottom: 2em; - padding: 0 0 0.5em; -} - -.menu:before { - content: "["; -} - -.menu:after { - content: "]"; -} - -.menu>li { - display: inline; -} - -.menu>li:before { - content: "|"; - padding-right: 0.3em; -} - -.menu>li:nth-child(1):before { - content: ""; - padding: 0; -} - -.animate-show-hide.ng-hide { - opacity: 0; -} - -.animate-show-hide.ng-hide-add, -.animate-show-hide.ng-hide-remove { - transition: all linear 0.5s; -} - -.check-element { - border: 1px solid black; - opacity: 1; - padding: 10px; -} \ No newline at end of file diff --git a/web/app/app.js b/web/app/app.js deleted file mode 100644 index 4137a743..00000000 --- a/web/app/app.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -// Declare app level module which depends on views, and components -angular.module('myApp', [ - 'ngRoute', - 'ui-notification', - 'myApp.home', - 'myApp.wallets', - 'myApp.settings', - 'myApp.version', - 'myApp.buy', - 'myApp.sell', - 'myApp.enabledExchanges', - 'myApp.buyOrders', - 'myApp.sellOrders', - 'myApp.stringUtils', - 'myApp.webSocket' -]). -config(['$locationProvider', '$routeProvider', 'NotificationProvider', function($locationProvider, $routeProvider, NotificationProvider) { - NotificationProvider.setOptions({ - delay: 5000, - startTop: 60, - startRight: 10, - verticalSpacing: 10, - horizontalSpacing: 20, - positionX: 'right', - positionY: 'top' - }); - - $locationProvider.hashPrefix('!'); - - $routeProvider.otherwise({ redirectTo: '/' }); -}]); \ No newline at end of file diff --git a/web/app/components/buy-orders/buy-orders.css b/web/app/components/buy-orders/buy-orders.css deleted file mode 100644 index d76f0485..00000000 --- a/web/app/components/buy-orders/buy-orders.css +++ /dev/null @@ -1,12 +0,0 @@ -.table-fixed-heading { - margin-bottom:0px; -} - -.buy-order-table th,.buy-order-table td { - width:25%; -} - -.buy-order-data { - max-height:200px; - overflow-y:scroll; -} \ No newline at end of file diff --git a/web/app/components/buy-orders/buy-orders.html b/web/app/components/buy-orders/buy-orders.html deleted file mode 100644 index d3e7502f..00000000 --- a/web/app/components/buy-orders/buy-orders.html +++ /dev/null @@ -1,25 +0,0 @@ - -
- - - - - - - - - -
Price{{currencyOne}}{{currencyTwo}}Sum({{currencyTwo}})
-
- - - - - - - - - -
{{buyOrder.price}}{{buyOrder.currencyOneAmount}}{{buyOrder.currencyTwoAmount}}{{buyOrder.sum}}
-
-
\ No newline at end of file diff --git a/web/app/components/buy-orders/buy-orders.js b/web/app/components/buy-orders/buy-orders.js deleted file mode 100644 index 77dd3cba..00000000 --- a/web/app/components/buy-orders/buy-orders.js +++ /dev/null @@ -1,52 +0,0 @@ - -angular.module('myApp.buyOrders',[]).component('buyorders', { - templateUrl: '/components/buy-orders/buy-orders.html', - controller:'BuyOrdersController', - controller: function ($scope, $http, Notification, $rootScope) { - $scope.currency = {}; - $scope.exchange = {}; - - $rootScope.$on('CurrencyChanged', function (event, args) { - $scope.currency = args.Currency; - $scope.exchange = args.Exchange; - $scope.currencyOne = $scope.currency.FirstCurrency; - $scope.currencyTwo = $scope.currency.SecondCurrency; - $scope.getRecentBuyOrders(); - }); - - $scope.getRecentBuyOrders = function() { - var exchData = {params : {exchangeName: '', currencyPair:''}}; - $http.get('/GetBuyOrdersForCurrencyPair' , exchData).success(function(data) { - $scope.buyOrders = data; - }).error(function() { - $scope.buyOrders = [ - {price:12,currencyOneAmount:12,currencyTwoAmount:13,sum:1111}, - {price:13,currencyOneAmount:15,currencyTwoAmount:13,sum:11231}, - {price:14,currencyOneAmount:232,currencyTwoAmount:13,sum:4511}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - ]; - }); - } - - } -}); - - - diff --git a/web/app/components/buy/buy.html b/web/app/components/buy/buy.html deleted file mode 100644 index e02590bd..00000000 --- a/web/app/components/buy/buy.html +++ /dev/null @@ -1,25 +0,0 @@ -
-
-
-
-
- {{currency.CurrencyPair}} -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/web/app/components/buy/buy.js b/web/app/components/buy/buy.js deleted file mode 100644 index 9a4af340..00000000 --- a/web/app/components/buy/buy.js +++ /dev/null @@ -1,40 +0,0 @@ - -angular.module('myApp.buy',[]).component('buy', { - templateUrl: '/components/buy/buy.html', - controller:'BuyController', - controller: function ($scope, $http, Notification, $rootScope) { - $scope.currency = {}; - $scope.exchange = {}; - - $rootScope.$on('CurrencyChanged', function (event, args) { - $scope.currency = args.Currency; - $scope.exchange = args.Exchange; - console.log($scope.currency); - $scope.GetLatestDataFromExchangeCurrency(); - $scope.price = $scope.currency.Ask; - }); - - $scope.GetLatestDataFromExchangeCurrency = function () { - $http.get('/GetLatestDataFromExchangeCurrency?exhange=' + $scope.exchange.exchangeName + '¤cy='+ $scope.currency.CurrencyPair).success(function (data) { - $scope.currency.Last = data.Last; - $scope.currency.Volume = data.Volume; - $scope.currency.Ask = data.Ask; - $scope.price = $scope.currency.Ask; - }); - } - - $scope.placeOrder = function () { - var obj = {}; - obj.ExchangeName = $scope.exchange.exchangeName; - obj.Currency = $scope.currency; - obj.Price = $scope.price; - obj.Amount = $scope.amount; - $http.post('/Command/PlaceBuyOrder', obj).success(function (response) { - Notification.success("Successfully placed order"); - }); - }; - } -}); - - - diff --git a/web/app/components/enabled-exchanges/enabled-exchanges.html b/web/app/components/enabled-exchanges/enabled-exchanges.html deleted file mode 100644 index 6be424b6..00000000 --- a/web/app/components/enabled-exchanges/enabled-exchanges.html +++ /dev/null @@ -1,28 +0,0 @@ -

All enabled currencies

-
-
- -
-
- - - - - - - - - - - -
CurrencyLastVolume
{{value.CurrencyPair}}{{value.Last | number: 6}}{{value.Volume | number: 2}}
-
-
-
-
\ No newline at end of file diff --git a/web/app/components/enabled-exchanges/enabled-exchanges.js b/web/app/components/enabled-exchanges/enabled-exchanges.js deleted file mode 100644 index 36d5ddfe..00000000 --- a/web/app/components/enabled-exchanges/enabled-exchanges.js +++ /dev/null @@ -1,32 +0,0 @@ -angular.module('myApp.enabledExchanges', []).component('enabledexchanges', { - templateUrl: '/components/enabled-exchanges/enabled-exchanges.html', - controller: 'EnabledExchangesController', - controller: function($scope, $http, Notification, $rootScope) { - $scope.selected = {}; - $scope.getDashboardData = function() { - $http({ - method: 'GET', - url: '/data/all-enabled-currencies' - }). - success(function(data, status, headers, config) { - $scope.exchanges = data.data; - $scope.reloadDashboardWithExchangeCurrency($scope.exchanges[0], $scope.exchanges[0].exchangeValues[0]); - Notification.info("Retrieved latest data"); - }). - error(function(data, status, headers, config) { - console.log('error'); - }); - }; - - $scope.reloadDashboardWithExchangeCurrency = function(exchange, value) { - $scope.selected.Exchange = exchange; - $scope.selected.Currency = value; - $rootScope.$emit('CurrencyChanged', $scope.selected); - - }; - - - $scope.getDashboardData(); - - } -}); \ No newline at end of file diff --git a/web/app/components/helpers/stringUtils.js b/web/app/components/helpers/stringUtils.js deleted file mode 100644 index dd8a8cd6..00000000 --- a/web/app/components/helpers/stringUtils.js +++ /dev/null @@ -1,9 +0,0 @@ -angular.module('myApp.stringUtils', []) - .filter('removeSpaces', [function() { - return function(string) { - if (!angular.isString(string)) { - return string; - } - return string.replace(/[\s]/g, ''); - }; - }]); \ No newline at end of file diff --git a/web/app/components/helpers/webSocket.js b/web/app/components/helpers/webSocket.js deleted file mode 100644 index a706658d..00000000 --- a/web/app/components/helpers/webSocket.js +++ /dev/null @@ -1,21 +0,0 @@ -angular.module('myApp.webSocket', ['ngWebSocket']) - .factory('webSocket', function($websocket) { - // Open a WebSocket connection - var dataStream = $websocket('ws://localhost:9050/'); - - var collection = []; - - dataStream.onMessage(function(message) { - collection.push(JSON.parse(message.data)); - }); - - var methods = { - collection: collection, - get: function() { - dataStream.send(JSON.stringify({ action: 'get' })); - } - }; - - return methods; - - }) \ No newline at end of file diff --git a/web/app/components/sell-orders/sell-orders.css b/web/app/components/sell-orders/sell-orders.css deleted file mode 100644 index d76f0485..00000000 --- a/web/app/components/sell-orders/sell-orders.css +++ /dev/null @@ -1,12 +0,0 @@ -.table-fixed-heading { - margin-bottom:0px; -} - -.buy-order-table th,.buy-order-table td { - width:25%; -} - -.buy-order-data { - max-height:200px; - overflow-y:scroll; -} \ No newline at end of file diff --git a/web/app/components/sell-orders/sell-orders.html b/web/app/components/sell-orders/sell-orders.html deleted file mode 100644 index 338b54ce..00000000 --- a/web/app/components/sell-orders/sell-orders.html +++ /dev/null @@ -1,25 +0,0 @@ - -
- - - - - - - - - -
Price{{currencyOne}}{{currencyTwo}}Sum({{currencyTwo}})
-
- - - - - - - - - -
{{sellOrder.price}}{{sellOrder.currencyOneAmount}}{{sellOrder.currencyTwoAmount}}{{sellOrder.sum}}
-
-
\ No newline at end of file diff --git a/web/app/components/sell-orders/sell-orders.js b/web/app/components/sell-orders/sell-orders.js deleted file mode 100644 index c2a48ca2..00000000 --- a/web/app/components/sell-orders/sell-orders.js +++ /dev/null @@ -1,52 +0,0 @@ - -angular.module('myApp.sellOrders',[]).component('sellorders', { - templateUrl: '/components/sell-orders/sell-orders.html', - controller:'SellOrdersController', - controller: function ($scope, $http, Notification, $rootScope) { - $scope.currency = {}; - $scope.exchange = {}; - - $rootScope.$on('CurrencyChanged', function (event, args) { - $scope.currency = args.Currency; - $scope.exchange = args.Exchange; - $scope.currencyOne = $scope.currency.FirstCurrency; - $scope.currencyTwo = $scope.currency.SecondCurrency; - $scope.getRecentSellOrders(); - }); - - $scope.getRecentSellOrders = function() { - var exchData = {params : {exchangeName: '', currencyPair:''}}; - $http.get('/GetSellOrdersForCurrencyPair' , exchData).success(function(data) { - $scope.sellOrders = data; - }).error(function() { - $scope.sellOrders = [ - {price:456,currencyOneAmount:12,currencyTwoAmount:13,sum:1111}, - {price:234,currencyOneAmount:15,currencyTwoAmount:13,sum:11231}, - {price:12344,currencyOneAmount:232,currencyTwoAmount:13,sum:4511}, - {price:15467,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:6717,currencyOneAmount:2452,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:34522,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - {price:17,currencyOneAmount:22,currencyTwoAmount:13,sum:11212311}, - ]; - }); - } - - } -}); - - - diff --git a/web/app/components/sell/sell.html b/web/app/components/sell/sell.html deleted file mode 100644 index 32e9807b..00000000 --- a/web/app/components/sell/sell.html +++ /dev/null @@ -1,25 +0,0 @@ -
-
-
-
-
- {{currency.CurrencyPair}} -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/web/app/components/sell/sell.js b/web/app/components/sell/sell.js deleted file mode 100644 index 05632c4b..00000000 --- a/web/app/components/sell/sell.js +++ /dev/null @@ -1,40 +0,0 @@ - -angular.module('myApp.sell',[]).component('sell', { - templateUrl: '/components/sell/sell.html', - controller:'SellController', - controller: function ($scope, $http, Notification, $rootScope) { - $scope.currency = {}; - $scope.exchange = {}; - - $rootScope.$on('CurrencyChanged', function (event, args) { - $scope.currency = args.Currency; - $scope.exchange = args.Exchange; - console.log($scope.currency); - $scope.GetLatestDataFromExchangeCurrency(); - $scope.price = $scope.currency.Bid; - }); - - $scope.GetLatestDataFromExchangeCurrency = function () { - $http.get('/GetLatestDataFromExchangeCurrency?exhange=' + $scope.exchange.exchangeName + '¤cy='+ $scope.currency.CurrencyPair).success(function (data) { - $scope.currency.Last = data.Last; - $scope.currency.Volume = data.Volume; - $scope.currency.Bid = data.Bid; - $scope.price = $scope.currency.Bid; - }); - } - - $scope.placeOrder = function () { - var obj = {}; - obj.ExchangeName = $scope.exchange.exchangeName; - obj.Currency = $scope.currency; - obj.Price = $scope.price; - obj.Amount = $scope.amount; - $http.post('/Command/PlaceSellOrder', obj).success(function (response) { - Notification.success("Successfully placed order"); - }); - }; - } -}); - - - diff --git a/web/app/components/version/interpolate-filter.js b/web/app/components/version/interpolate-filter.js deleted file mode 100644 index 03bb1987..00000000 --- a/web/app/components/version/interpolate-filter.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -angular.module('myApp.version.interpolate-filter', []) - -.filter('interpolate', ['version', function(version) { - return function(text) { - return String(text).replace(/\%VERSION\%/mg, version); - }; -}]); diff --git a/web/app/components/version/interpolate-filter_test.js b/web/app/components/version/interpolate-filter_test.js deleted file mode 100644 index ff56c529..00000000 --- a/web/app/components/version/interpolate-filter_test.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -describe('myApp.version module', function() { - beforeEach(module('myApp.version')); - - describe('interpolate filter', function() { - beforeEach(module(function($provide) { - $provide.value('version', 'TEST_VER'); - })); - - it('should replace VERSION', inject(function(interpolateFilter) { - expect(interpolateFilter('before %VERSION% after')).toEqual('before TEST_VER after'); - })); - }); -}); diff --git a/web/app/components/version/version-directive.js b/web/app/components/version/version-directive.js deleted file mode 100644 index 74088f8a..00000000 --- a/web/app/components/version/version-directive.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -angular.module('myApp.version.version-directive', []) - -.directive('appVersion', ['version', function(version) { - return function(scope, elm, attrs) { - elm.text(version); - }; -}]); diff --git a/web/app/components/version/version-directive_test.js b/web/app/components/version/version-directive_test.js deleted file mode 100644 index 4a59e119..00000000 --- a/web/app/components/version/version-directive_test.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -describe('myApp.version module', function() { - beforeEach(module('myApp.version')); - - describe('app-version directive', function() { - it('should print current version', function() { - module(function($provide) { - $provide.value('version', 'TEST_VER'); - }); - inject(function($compile, $rootScope) { - var element = $compile('')($rootScope); - expect(element.text()).toEqual('TEST_VER'); - }); - }); - }); -}); diff --git a/web/app/components/version/version.js b/web/app/components/version/version.js deleted file mode 100644 index cb7a10f9..00000000 --- a/web/app/components/version/version.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -angular.module('myApp.version', [ - 'myApp.version.interpolate-filter', - 'myApp.version.version-directive' -]) - -.value('version', '0.1'); diff --git a/web/app/components/version/version_test.js b/web/app/components/version/version_test.js deleted file mode 100644 index 4ca6880d..00000000 --- a/web/app/components/version/version_test.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -describe('myApp.version module', function() { - beforeEach(module('myApp.version')); - - describe('version service', function() { - it('should return current version', inject(function(version) { - expect(version).toEqual('0.1'); - })); - }); -}); diff --git a/web/app/darktheme.min.css b/web/app/darktheme.min.css deleted file mode 100644 index 5eb3a4cf..00000000 --- a/web/app/darktheme.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * bootswatch v3.3.7 - * Homepage: http://bootswatch.com - * Copyright 2012-2016 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * 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;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-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-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-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:#c8c8c8;background-color:#272b30}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#ffffff;text-decoration:none}a:hover,a:focus{color:#ffffff;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #1c1e22}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#7a8288}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#f89406;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#7a8288}.text-primary{color:#7a8288}a.text-primary:hover,a.text-primary:focus{color:#62686d}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#7a8288}a.bg-primary:hover,a.bg-primary:focus{background-color:#62686d}.bg-success{background-color:#62c462}a.bg-success:hover,a.bg-success:focus{background-color:#42b142}.bg-info{background-color:#5bc0de}a.bg-info:hover,a.bg-info:focus{background-color:#31b0d5}.bg-warning{background-color:#f89406}a.bg-warning:hover,a.bg-warning:focus{background-color:#c67605}.bg-danger{background-color:#ee5f5b}a.bg-danger:hover,a.bg-danger:focus{background-color:#e9322d}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #1c1e22}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #7a8288}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #7a8288}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#7a8288}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #7a8288;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#3a3f44;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:#2e3338}caption{padding-top:8px;padding-bottom:8px;color:#7a8288;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #1c1e22}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #1c1e22}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #1c1e22}.table .table{background-color:#272b30}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#353a41}.table-hover>tbody>tr:hover{background-color:#49515a}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#49515a}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#3e444c}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#62c462}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#4fbd4f}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#5bc0de}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#46b8da}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f89406}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#df8505}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ee5f5b}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ec4844}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #1c1e22}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#c8c8c8;border:0;border-bottom:1px solid #1c1e22}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#272b30}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#272b30;background-color:#ffffff;background-image:none;border:1px solid #000000;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .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,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#7a8288;opacity:1}.form-control:-ms-input-placeholder{color:#7a8288}.form-control::-webkit-input-placeholder{color:#7a8288}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#999999;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:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#62c462}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#f89406}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ee5f5b}.has-error .form-control-feedback{color:#ffffff}.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:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:15px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#3a3f44;border-color:#3a3f44}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#232628;border-color:#000000}.btn-default:hover{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#121415;border-color:#000000}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#3a3f44;border-color:#3a3f44}.btn-default .badge{color:#3a3f44;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#7a8288;border-color:#7a8288}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#62686d;border-color:#3e4245}.btn-primary:hover{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#51565a;border-color:#3e4245}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#7a8288;border-color:#7a8288}.btn-primary .badge{color:#7a8288;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#62c462;border-color:#62c462}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#42b142;border-color:#2d792d}.btn-success:hover{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#399739;border-color:#2d792d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#62c462;border-color:#62c462}.btn-success .badge{color:#62c462;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1f7e9a}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1f7e9a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#5bc0de;border-color:#5bc0de}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f89406;border-color:#f89406}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#c67605;border-color:#7c4a03}.btn-warning:hover{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a36104;border-color:#7c4a03}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#f89406;border-color:#f89406}.btn-warning .badge{color:#f89406;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#e9322d;border-color:#b71713}.btn-danger:hover{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#dc1c17;border-color:#b71713}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger .badge{color:#ee5f5b;background-color:#ffffff}.btn-link{color:#ffffff;font-weight:normal;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:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#ffffff;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#7a8288;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#3a3f44;border:1px solid #272b30;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#272b30}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#c8c8c8;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#272b30}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#272b30}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#7a8288}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#7a8288;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 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:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#272b30;text-align:center;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#3e444c}.nav>li.disabled>a{color:#7a8288}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#7a8288;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#3e444c;border-color:#ffffff}.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 #1c1e22}.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:#1c1e22 #1c1e22 #1c1e22}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ffffff;background-color:#3e444c;border:1px solid #1c1e22;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#272b30}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:transparent}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#272b30}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-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-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#3a3f44;border-color:#2b2e32}.navbar-default .navbar-brand{color:#c8c8c8}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#c8c8c8}.navbar-default .navbar-nav>li>a{color:#c8c8c8}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#272b2e}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#272b2e}.navbar-default .navbar-toggle .icon-bar{background-color:#c8c8c8}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#2b2e32}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#272b2e;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#c8c8c8}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#c8c8c8}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#c8c8c8}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#7a8288;border-color:#62686d}.navbar-inverse .navbar-brand{color:#cccccc}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#cccccc}.navbar-inverse .navbar-nav>li>a{color:#cccccc}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#5d6368}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#5d6368}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#697075}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#5d6368;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#cccccc}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#cccccc}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#cccccc}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:transparent;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#7a8288}.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:8px 12px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#ffffff;background-color:transparent;border-color:rgba(0,0,0,0.6)}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#ffffff;background-color:#232628;border-color:rgba(0,0,0,0.6);cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#7a8288;background-color:#ffffff;border-color:rgba(0,0,0,0.6);cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:transparent}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#7a8288;background-color:#3a3f44;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#3a3f44}.label-default[href]:hover,.label-default[href]:focus{background-color:#232628}.label-primary{background-color:#7a8288}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#62686d}.label-success{background-color:#62c462}.label-success[href]:hover,.label-success[href]:focus{background-color:#42b142}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f89406}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#c67605}.label-danger{background-color:#ee5f5b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#e9322d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#7a8288;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ffffff;background-color:#7a8288}.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:#1c1e22}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#050506}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#ffffff}.thumbnail .caption{padding:9px;color:#c8c8c8}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#62c462;border-color:#62bd4f;color:#ffffff}.alert-success hr{border-top-color:#55b142}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3dced8;color:#ffffff}.alert-info hr{border-top-color:#2ac7d2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f89406;border-color:#e96506;color:#ffffff}.alert-warning hr{border-top-color:#d05a05}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ee5f5b;border-color:#ed4d63;color:#ffffff}.alert-danger hr{border-top-color:#ea364f}.alert-danger .alert-link{color:#e6e6e6}@-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{overflow:hidden;height:20px;margin-bottom:20px;background-color:#1c1e22;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#7a8288;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-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:#62c462}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f89406}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ee5f5b}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#32383e;border:1px solid rgba(0,0,0,0.6)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#c8c8c8}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ffffff}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#c8c8c8;background-color:#3e444c}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#999999;color:#7a8288;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#7a8288}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a2aab4}.list-group-item-success{color:#ffffff;background-color:#62c462}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#4fbd4f}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#5bc0de}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#46b8da}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#f89406}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#df8505}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ee5f5b}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ec4844}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.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:#2e3338;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#3e444c;border-top:1px solid rgba(0,0,0,0.6);border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #1c1e22}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid rgba(0,0,0,0.6)}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid rgba(0,0,0,0.6)}.panel-default{border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading{color:#c8c8c8;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading .badge{color:#3e444c;background-color:#c8c8c8}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-primary{border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading{color:#ffffff;background-color:#7a8288;border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading .badge{color:#7a8288;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-success{border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading{color:#ffffff;background-color:#62c462;border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading .badge{color:#62c462;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-info{border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-warning{border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading{color:#ffffff;background-color:#f89406;border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading .badge{color:#f89406;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-danger{border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading{color:#ffffff;background-color:#ee5f5b;border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading .badge{color:#ee5f5b;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.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:#2e3338;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #1c1e22}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #1c1e22}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#2e3338;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#2e3338;border-bottom:1px solid #22262a;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#2e3338}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#2e3338}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#2e3338}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#2e3338;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .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.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-header:before,.modal-header:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-header:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-default,.navbar-inverse{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}@media (min-width:768px){.navbar-default .navbar-nav>li>a,.navbar-inverse .navbar-nav>li>a{border-right:1px solid rgba(0,0,0,0.2);border-left:1px solid rgba(255,255,255,0.1)}.navbar-default .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:hover{border-left-color:transparent}.navbar-default .nav .open>a,.navbar-inverse .nav .open>a{border-color:transparent}.navbar-default .navbar-nav>li.active>a,.navbar-inverse .navbar-nav>li.active>a{border-left-color:transparent}.navbar-default .navbar-form,.navbar-inverse .navbar-form{margin-left:5px;margin-right:5px}}.navbar-default{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.navbar-default .navbar-nav>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none}.navbar-inverse{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.navbar-inverse .badge{background-color:#5d6368}.navbar-inverse .navbar-nav>li>a:hover{background-image:-webkit-linear-gradient(#404448, #4e5458 40%, #53595d);background-image:-o-linear-gradient(#404448, #4e5458 40%, #53595d);background-image:-webkit-gradient(linear, left top, left bottom, from(#404448), color-stop(40%, #4e5458), to(#53595d));background-image:linear-gradient(#404448, #4e5458 40%, #53595d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404448', endColorstr='#ff53595d', GradientType=0);-webkit-filter:none;filter:none}.btn,.btn:hover{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.btn-default{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.btn-default:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none}.btn-primary{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.btn-primary:hover{background-image:-webkit-linear-gradient(#404448, #4e5458 40%, #53595d);background-image:-o-linear-gradient(#404448, #4e5458 40%, #53595d);background-image:-webkit-gradient(linear, left top, left bottom, from(#404448), color-stop(40%, #4e5458), to(#53595d));background-image:linear-gradient(#404448, #4e5458 40%, #53595d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404448', endColorstr='#ff53595d', GradientType=0);-webkit-filter:none;filter:none}.btn-success{background-image:-webkit-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-o-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-webkit-gradient(linear, left top, left bottom, from(#78cc78), color-stop(60%, #62c462), to(#53be53));background-image:linear-gradient(#78cc78, #62c462 60%, #53be53);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff78cc78', endColorstr='#ff53be53', GradientType=0);-webkit-filter:none;filter:none}.btn-success:hover{background-image:-webkit-linear-gradient(#2f7d2f, #379337 40%, #3a9a3a);background-image:-o-linear-gradient(#2f7d2f, #379337 40%, #3a9a3a);background-image:-webkit-gradient(linear, left top, left bottom, from(#2f7d2f), color-stop(40%, #379337), to(#3a9a3a));background-image:linear-gradient(#2f7d2f, #379337 40%, #3a9a3a);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f7d2f', endColorstr='#ff3a9a3a', GradientType=0);-webkit-filter:none;filter:none}.btn-info{background-image:-webkit-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-o-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-webkit-gradient(linear, left top, left bottom, from(#74cae3), color-stop(60%, #5bc0de), to(#4ab9db));background-image:linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff74cae3', endColorstr='#ff4ab9db', GradientType=0);-webkit-filter:none;filter:none}.btn-info:hover{background-image:-webkit-linear-gradient(#20829f, #2596b8 40%, #279dc1);background-image:-o-linear-gradient(#20829f, #2596b8 40%, #279dc1);background-image:-webkit-gradient(linear, left top, left bottom, from(#20829f), color-stop(40%, #2596b8), to(#279dc1));background-image:linear-gradient(#20829f, #2596b8 40%, #279dc1);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff20829f', endColorstr='#ff279dc1', GradientType=0);-webkit-filter:none;filter:none}.btn-warning{background-image:-webkit-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-o-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-webkit-gradient(linear, left top, left bottom, from(#faa123), color-stop(60%, #f89406), to(#e48806));background-image:linear-gradient(#faa123, #f89406 60%, #e48806);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffaa123', endColorstr='#ffe48806', GradientType=0);-webkit-filter:none;filter:none}.btn-warning:hover{background-image:-webkit-linear-gradient(#804d03, #9e5f04 40%, #a86404);background-image:-o-linear-gradient(#804d03, #9e5f04 40%, #a86404);background-image:-webkit-gradient(linear, left top, left bottom, from(#804d03), color-stop(40%, #9e5f04), to(#a86404));background-image:linear-gradient(#804d03, #9e5f04 40%, #a86404);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff804d03', endColorstr='#ffa86404', GradientType=0);-webkit-filter:none;filter:none}.btn-danger{background-image:-webkit-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-o-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-webkit-gradient(linear, left top, left bottom, from(#f17a77), color-stop(60%, #ee5f5b), to(#ec4d49));background-image:linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff17a77', endColorstr='#ffec4d49', GradientType=0);-webkit-filter:none;filter:none}.btn-danger:hover{background-image:-webkit-linear-gradient(#bb1813, #d71c16 40%, #e01d17);background-image:-o-linear-gradient(#bb1813, #d71c16 40%, #e01d17);background-image:-webkit-gradient(linear, left top, left bottom, from(#bb1813), color-stop(40%, #d71c16), to(#e01d17));background-image:linear-gradient(#bb1813, #d71c16 40%, #e01d17);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbb1813', endColorstr='#ffe01d17', GradientType=0);-webkit-filter:none;filter:none}.btn-link,.btn-link:hover{border-color:transparent}h1,h2,h3,h4,h5,h6{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.text-primary,.text-primary:hover{color:#7a8288}.text-success,.text-success:hover{color:#62c462}.text-danger,.text-danger:hover{color:#ee5f5b}.text-warning,.text-warning:hover{color:#f89406}.text-info,.text-info:hover{color:#5bc0de}.table .success,.table .warning,.table .danger,.table .info{color:#fff}.table-bordered tbody tr.success td,.table-bordered tbody tr.warning td,.table-bordered tbody tr.danger td,.table-bordered tbody tr.success:hover td,.table-bordered tbody tr.warning:hover td,.table-bordered tbody tr.danger:hover td{border-color:#1c1e22}.table-responsive>.table{background-color:#2e3338}input,textarea{color:#272b30}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f89406}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f89406}.has-warning .input-group-addon{border-color:rgba(0,0,0,0.6)}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ee5f5b}.has-error .form-control,.has-error .form-control:focus{border-color:#ee5f5b}.has-error .input-group-addon{border-color:rgba(0,0,0,0.6)}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#62c462}.has-success .form-control,.has-success .form-control:focus{border-color:#62c462}.has-success .input-group-addon{border-color:rgba(0,0,0,0.6)}legend{color:#fff}.input-group-addon{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;text-shadow:1px 1px 1px rgba(0,0,0,0.3);color:#ffffff}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:rgba(0,0,0,0.6)}.nav-pills>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.nav-pills>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.active>a,.nav-pills>li.active>a:hover{background-color:none;background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.disabled>a,.nav-pills>li.disabled>a:hover{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a,.pagination>li>span{text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a:hover,.pagination>li>span:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.active>a,.pagination>li.active>span{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.disabled>a,.pagination>li.disabled>a:hover,.pagination>li.disabled>span,.pagination>li.disabled>span:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pager>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.pager>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #141618);background-image:-o-linear-gradient(#020202, #101112 40%, #141618);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#141618));background-image:linear-gradient(#020202, #101112 40%, #141618);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff141618', GradientType=0);-webkit-filter:none;filter:none}.pager>li.disabled>a,.pager>li.disabled>a:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.breadcrumb{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert .close{color:#000000;text-decoration:none}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0c0d0e}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:rgba(0,0,0,0.6)}a.list-group-item-success.active{background-color:#62c462}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#4fbd4f}a.list-group-item-warning.active{background-color:#f89406}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#df8505}a.list-group-item-danger.active{background-color:#ee5f5b}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ec4844}.jumbotron{border:1px solid rgba(0,0,0,0.6)}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-danger .panel-heading,.panel-warning .panel-heading,.panel-info .panel-heading{border-color:#000} \ No newline at end of file diff --git a/web/app/index-async.html b/web/app/index-async.html deleted file mode 100644 index 39a592fb..00000000 --- a/web/app/index-async.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - My AngularJS App - - - - - -
- -
Angular seed app: v
- - - diff --git a/web/app/index.html b/web/app/index.html deleted file mode 100644 index b0205cf8..00000000 --- a/web/app/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - GoCrypto Trader - - - - - - - - - - - - - - - - - - - - -
- - -

Copyright 2016 GoCrypto Trader

- - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/app/views/home/home.html b/web/app/views/home/home.html deleted file mode 100644 index b9ff274a..00000000 --- a/web/app/views/home/home.html +++ /dev/null @@ -1,73 +0,0 @@ -
-
-
-

{{exchange.exchangeName}} Exchange

-

{{currency.CurrencyPair}}

-
-
-
- -
-

Sell orders

- - - -
-
-

Buy orders

- -
-
-
-

Market depth chart

-
-
-

Buy

- -
-
-

Sell

- -
-
-

Wallet quick look

- See current holding of selected currency -
-
-
-

Trade History

-
-
-

My Open Orders

-
-
-
-
- -
-
-
-
-
-
- - - - - - -
-
-
-
-
-
-
-

D:

-
-

Something went wrong! Make sure Gocryptotrader is running. If things still aren't cool, open a ticket here

-
-
-
-
-
\ No newline at end of file diff --git a/web/app/views/home/home.js b/web/app/views/home/home.js deleted file mode 100644 index 86556fd9..00000000 --- a/web/app/views/home/home.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -angular.module('myApp.home', ['ngRoute']) - -.config(['$routeProvider', function($routeProvider) { - $routeProvider.when('/', { - templateUrl: '/views/home/home.html', - controller: 'HomeController' - }); -}]) - -.controller('HomeController', function($scope, $rootScope, $timeout, webSocket) { - $scope.loaded = false; - - $rootScope.$on('CurrencyChanged', function(event, args) { - $scope.currency = args.Currency; - $scope.exchange = args.Exchange; - $scope.loaded = true; - }); - - $timeout(function() { - if ($scope.currency) { - $scope.loaded = true; - } else { - $scope.loadFailed = true; - } - }, 10000); -}); \ No newline at end of file diff --git a/web/app/views/home/home_test.js b/web/app/views/home/home_test.js deleted file mode 100644 index 14ba79b4..00000000 --- a/web/app/views/home/home_test.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -describe('myApp.view1 module', function() { - - beforeEach(module('myApp.view1')); - - describe('view1 controller', function(){ - - it('should ....', inject(function($controller) { - //spec body - var view1Ctrl = $controller('View1Ctrl'); - expect(view1Ctrl).toBeDefined(); - })); - - }); -}); \ No newline at end of file diff --git a/web/app/views/settings/settings.html b/web/app/views/settings/settings.html deleted file mode 100644 index 09f1de28..00000000 --- a/web/app/views/settings/settings.html +++ /dev/null @@ -1,60 +0,0 @@ -

Settings

-
-
-

Exchange config

-
-
-

{{exchange.Name}}

-
-
-
- -
-
- -
-
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
- -
-
-
-
- -
-
-
-
{{availableCurrency}}
-
-
-
-
- -
-
-
-
- -
-
\ No newline at end of file diff --git a/web/app/views/settings/settings.js b/web/app/views/settings/settings.js deleted file mode 100644 index a8dca613..00000000 --- a/web/app/views/settings/settings.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -angular.module('myApp.settings', ['ngRoute']) -.config(['$routeProvider', function($routeProvider) { - $routeProvider.when('/settings', { - templateUrl: '/views/settings/settings.html', - controller: 'SettingsController' - }); -}]) - -.controller('SettingsController', function ($scope, $http, Notification) { - $scope.getconfigData = function() { - $http({ - method: 'GET', - url: '/config/all' - }). - success(function (data, status, headers, config) { - for(var i=0; i -1) { - $scope.config.Exchanges[i].EnabledPairsSplit.splice($scope.config.Exchanges[i].EnabledPairsSplit.indexOf(currency),1); - //I feel there's a better way to do this, but for right now, whatever - $scope.config.Exchanges[i].EnabledPairs = $scope.config.Exchanges[i].EnabledPairs.replace(currency,""); - $scope.config.Exchanges[i].EnabledPairs = $scope.config.Exchanges[i].EnabledPairs.replace(",,",""); - $scope.config.Exchanges[i].EnabledPairs = $scope.config.Exchanges[i].EnabledPairs.replace(/,\s*$/, ""); - - } else { - $scope.config.Exchanges[i].EnabledPairsSplit.push(currency); - $scope.config.Exchanges[i].EnabledPairs = $scope.config.Exchanges[i].EnabledPairs + "," + currency; - } - } - } -} - -$scope.saveAllSettings = function() { - $scope.postObject = jQuery.extend(true, {}, $scope.config); - //Purge any unnecessary post data - delete $scope.postObject.Webserver; - for(var i=0; i<$scope.postObject.Exchanges.length;i++) { - delete $scope.postObject.Exchanges[i].AvailablePairsSplit; - delete $scope.postObject.Exchanges[i].AvailablePairs; - delete $scope.postObject.Exchanges[i].BaseCurrencies; - delete $scope.postObject.Exchanges[i].EnabledPairsSplit; - } - - //Send to be saved - $http({ - method: 'POST', - url: '/config/all/save', - data: $scope.postObject - }). - success(function (data) { - Notification.success('Saved settings'); - for(var i=0; iWallets -

All your currency, all in one place

-
-

{{wallet.ExchangeName}}

- - - - - - - - - - - -
Currency NameTotalHold
{{value.CurrencyName}}{{value.TotalValue}}{{value.Hold}}
-
\ No newline at end of file diff --git a/web/app/views/wallets/wallets.js b/web/app/views/wallets/wallets.js deleted file mode 100644 index acdb386b..00000000 --- a/web/app/views/wallets/wallets.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -angular.module('myApp.wallets', ['ngRoute']) - -.config(['$routeProvider', function($routeProvider) { - $routeProvider.when('/wallets', { - templateUrl: '/views/wallets/wallets.html', - controller: 'WalletsController' - }); -}]) - -.controller('WalletsController', function ($scope, $http, Notification) { - $scope.getDashboardData = function() { - $http({ - method: 'GET', - url: '/data/all-enabled-exchange-account-info' - }). - success(function (data, status, headers, config) { - $scope.wallets = data.data; - Notification.info("Got your wallet!"); - }). - error(function (data, status, headers, config) { - console.log('error'); - }); - }; - - $scope.getDashboardData(); - -}); \ No newline at end of file diff --git a/web/app/views/wallets/wallets_test.js b/web/app/views/wallets/wallets_test.js deleted file mode 100644 index 14ba79b4..00000000 --- a/web/app/views/wallets/wallets_test.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -describe('myApp.view1 module', function() { - - beforeEach(module('myApp.view1')); - - describe('view1 controller', function(){ - - it('should ....', inject(function($controller) { - //spec body - var view1Ctrl = $controller('View1Ctrl'); - expect(view1Ctrl).toBeDefined(); - })); - - }); -}); \ No newline at end of file diff --git a/web/bower.json b/web/bower.json deleted file mode 100644 index b34ecef1..00000000 --- a/web/bower.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "angular-seed", - "description": "A starter project for AngularJS", - "version": "0.0.0", - "homepage": "https://github.com/angular/angular-seed", - "license": "MIT", - "private": true, - "dependencies": { - "angular": "~1.5.0", - "angular-route": "~1.5.0", - "angular-loader": "~1.5.0", - "angular-mocks": "~1.5.0", - "html5-boilerplate": "^5.3.0", - "angular-ui-notification":"latest", - "angular-websocket":"2.0.0", - "bootstrap":"3.3.7" - } -} diff --git a/web/e2e-tests/protractor.conf.js b/web/e2e-tests/protractor.conf.js deleted file mode 100644 index 13c5cb62..00000000 --- a/web/e2e-tests/protractor.conf.js +++ /dev/null @@ -1,22 +0,0 @@ -//jshint strict: false -exports.config = { - - allScriptsTimeout: 11000, - - specs: [ - '*.js' - ], - - capabilities: { - 'browserName': 'chrome' - }, - - baseUrl: 'http://localhost:8000/', - - framework: 'jasmine', - - jasmineNodeOpts: { - defaultTimeoutInterval: 30000 - } - -}; diff --git a/web/e2e-tests/scenarios.js b/web/e2e-tests/scenarios.js deleted file mode 100644 index 240d5f61..00000000 --- a/web/e2e-tests/scenarios.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -/* https://github.com/angular/protractor/blob/master/docs/toc.md */ - -describe('my app', function() { - - - it('should automatically redirect to /view1 when location hash/fragment is empty', function() { - browser.get('index.html'); - expect(browser.getLocationAbsUrl()).toMatch("/view1"); - }); - - - describe('view1', function() { - - beforeEach(function() { - browser.get('index.html#!/view1'); - }); - - - it('should render view1 when user navigates to /view1', function() { - expect(element.all(by.css('[ng-view] p')).first().getText()). - toMatch(/partial for view 1/); - }); - - }); - - - describe('view2', function() { - - beforeEach(function() { - browser.get('index.html#!/view2'); - }); - - - it('should render view2 when user navigates to /view2', function() { - expect(element.all(by.css('[ng-view] p')).first().getText()). - toMatch(/partial for view 2/); - }); - - }); -}); diff --git a/web/e2e/app.e2e-spec.ts b/web/e2e/app.e2e-spec.ts new file mode 100644 index 00000000..2daec1c3 --- /dev/null +++ b/web/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AngularElectronPage } from './app.po'; +import { browser, element, by } from 'protractor'; + +describe('angular-electron App', () => { + let page: AngularElectronPage; + + beforeEach(() => { + page = new AngularElectronPage(); + }); + + it('should display message saying App works !', () => { + expect(element(by.css('app-home h1')).getText()).toMatch('App works !'); + }); +}); diff --git a/web/e2e/app.po.ts b/web/e2e/app.po.ts new file mode 100644 index 00000000..2dedeae9 --- /dev/null +++ b/web/e2e/app.po.ts @@ -0,0 +1,8 @@ +import { browser, element, by } from 'protractor'; + +/* tslint:disable */ +export class AngularElectronPage { + navigateTo(route: string) { + return browser.get(route); + } +} diff --git a/web/e2e/tsconfig.e2e.json b/web/e2e/tsconfig.e2e.json new file mode 100644 index 00000000..ac7a3732 --- /dev/null +++ b/web/e2e/tsconfig.e2e.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types":[ + "jasmine", + "node" + ] + } +} diff --git a/web/karma.conf.js b/web/karma.conf.js index 7271e9fe..84b4cd5a 100644 --- a/web/karma.conf.js +++ b/web/karma.conf.js @@ -1,34 +1,44 @@ -//jshint strict: false -module.exports = function(config) { +// Karma configuration file, see link for more information +// https://karma-runner.github.io/0.13/config/configuration-file.html + +module.exports = function (config) { config.set({ - - basePath: './app', - - files: [ - 'bower_components/angular/angular.js', - 'bower_components/angular-route/angular-route.js', - 'bower_components/angular-mocks/angular-mocks.js', - 'components/**/*.js', - 'view*/**/*.js' - ], - - autoWatch: true, - - frameworks: ['jasmine'], - - browsers: ['Chrome'], - + basePath: '', + frameworks: ['jasmine', '@angular/cli'], plugins: [ - 'karma-chrome-launcher', - 'karma-firefox-launcher', - 'karma-jasmine', - 'karma-junit-reporter' + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') ], - - junitReporter: { - outputFile: 'test_out/unit.xml', - suite: 'unit' - } - + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + files: [ + { pattern: './src/test.ts', watched: false } + ], + preprocessors: { + './src/test.ts': ['@angular/cli'] + }, + mime: { + 'text/x-typescript': ['ts','tsx'] + }, + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + angularCli: { + environment: 'dev' + }, + reporters: config.angularCli && config.angularCli.codeCoverage + ? ['progress', 'coverage-istanbul'] + : ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false }); }; diff --git a/web/logo-angular.jpg b/web/logo-angular.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12f8b170c7faccd355d19d3050e71260924758c9 GIT binary patch literal 3354 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 YuCm6K?LAQ5F7O8!Km`Om&OR;uA0Yffvj6}9 literal 0 HcmV?d00001 diff --git a/web/main.ts b/web/main.ts new file mode 100644 index 00000000..667c524f --- /dev/null +++ b/web/main.ts @@ -0,0 +1,71 @@ +import { app, BrowserWindow, screen } from 'electron'; +import * as path from 'path'; + + +let win, serve; +const args = process.argv.slice(1); +serve = args.some(val => val === '--serve'); + +if (serve) { + require('electron-reload')(__dirname, { + }); +} + +function createWindow() { + + const electronScreen = screen; + const size = electronScreen.getPrimaryDisplay().workAreaSize; + + // Create the browser window. + win = new BrowserWindow({ + x: 0, + y: 0, + width: size.width, + height: size.height + }); + + // and load the index.html of the app. + win.loadURL('file://' + __dirname + '/index.html'); + + // Open the DevTools. + if (serve) { + win.webContents.openDevTools(); + } + + // Emitted when the window is closed. + win.on('closed', () => { + // Dereference the window object, usually you would store window + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + win = null; + }); +} + +try { + + // This method will be called when Electron has finished + // initialization and is ready to create browser windows. + // Some APIs can only be used after this event occurs. + app.on('ready', createWindow); + + // Quit when all windows are closed. + app.on('window-all-closed', () => { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit(); + } + }); + + app.on('activate', () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (win === null) { + createWindow(); + } + }); + +} catch (e) { + // Catch Error + // throw e; +} diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 00000000..2381e602 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,9906 @@ +{ + "name": "angular-electron", + "version": "1.6.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular/cli": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.2.1.tgz", + "integrity": "sha512-Y3AqcyvWcy9c4KuQAKHzXp2oO51bNY3o/90wfpcwct3Bt4znDMXuoQdgf+VhffcbIgc/b2yyPlOatXLRJ7531A==", + "dev": true, + "requires": { + "@ngtools/json-schema": "1.1.0", + "@ngtools/webpack": "1.5.1", + "autoprefixer": "6.7.7", + "chalk": "1.1.3", + "common-tags": "1.4.0", + "core-object": "3.1.3", + "css-loader": "0.28.4", + "cssnano": "3.10.0", + "denodeify": "1.2.1", + "diff": "3.3.0", + "ember-cli-normalize-entity-name": "1.0.0", + "ember-cli-string-utils": "1.1.0", + "exports-loader": "0.6.4", + "extract-text-webpack-plugin": "2.1.2", + "file-loader": "0.10.1", + "fs-extra": "3.0.1", + "get-caller-file": "1.0.2", + "glob": "7.1.2", + "heimdalljs": "0.2.5", + "heimdalljs-logger": "0.1.9", + "html-webpack-plugin": "2.29.0", + "inflection": "1.12.0", + "inquirer": "3.2.1", + "isbinaryfile": "3.0.2", + "istanbul-instrumenter-loader": "2.0.0", + "json-loader": "0.5.4", + "less": "2.7.2", + "less-loader": "4.0.4", + "license-webpack-plugin": "0.4.3", + "lodash": "4.17.4", + "memory-fs": "0.4.1", + "minimatch": "3.0.4", + "node-modules-path": "1.0.1", + "node-sass": "4.5.3", + "nopt": "4.0.1", + "opn": "4.0.2", + "portfinder": "1.0.13", + "postcss-loader": "1.3.3", + "postcss-url": "5.1.2", + "raw-loader": "0.5.1", + "resolve": "1.3.3", + "rsvp": "3.6.2", + "rxjs": "5.4.2", + "sass-loader": "6.0.6", + "script-loader": "0.7.0", + "semver": "5.4.1", + "silent-error": "1.1.0", + "source-map-loader": "0.2.1", + "style-loader": "0.13.2", + "stylus": "0.54.5", + "stylus-loader": "3.0.1", + "temp": "0.8.3", + "typescript": "2.3.4", + "url-loader": "0.5.9", + "walk-sync": "0.3.2", + "webpack": "2.4.1", + "webpack-dev-middleware": "1.11.0", + "webpack-dev-server": "2.4.5", + "webpack-merge": "2.6.1", + "zone.js": "0.8.12" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000706", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "file-loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.10.1.tgz", + "integrity": "sha1-gVA0EZiR/GRB+1pkwRvJPCLd2EI=", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "postcss-url": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-5.1.2.tgz", + "integrity": "sha1-mLMWW+jVkkccsMqt3iwNH4MvEz4=", + "dev": true, + "requires": { + "directory-encoder": "0.7.2", + "js-base64": "2.1.9", + "mime": "1.3.6", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "path-is-absolute": "1.0.1", + "postcss": "5.2.17" + } + }, + "source-list-map": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", + "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "style-loader": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", + "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, + "typescript": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", + "integrity": "sha1-PTgyGCgjHkNPKHUUlZw3qCtin0I=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "webpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.4.1.tgz", + "integrity": "sha1-FakdvjSWbYpLmcfWVu/ZKi5ab2o=", + "dev": true, + "requires": { + "acorn": "5.1.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "4.11.8", + "ajv-keywords": "1.5.1", + "async": "2.5.0", + "enhanced-resolve": "3.3.0", + "interpret": "1.0.3", + "json-loader": "0.5.4", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "0.2.17", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.0.0", + "source-map": "0.5.6", + "supports-color": "3.2.3", + "tapable": "0.2.7", + "uglify-js": "2.8.29", + "watchpack": "1.4.0", + "webpack-sources": "0.2.3", + "yargs": "6.6.0" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "webpack-dev-server": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz", + "integrity": "sha1-MThM6BE2vhCAtLTN4OubkOVO5s8=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "chokidar": "1.7.0", + "compression": "1.7.0", + "connect-history-api-fallback": "1.3.0", + "express": "4.15.3", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "opn": "4.0.2", + "portfinder": "1.0.13", + "serve-index": "1.9.0", + "sockjs": "0.3.18", + "sockjs-client": "1.1.2", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.11.0", + "yargs": "6.6.0" + } + }, + "webpack-sources": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", + "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "dev": true, + "requires": { + "source-list-map": "1.1.2", + "source-map": "0.5.6" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + } + } + }, + "@angular/common": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.3.0.tgz", + "integrity": "sha1-E6VKaSndUvlymxauRG+tWP4WMFM=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.3.0.tgz", + "integrity": "sha1-VVA78nofBi9xuUlTk/MxGQOo/EM=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/compiler-cli": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.3.0.tgz", + "integrity": "sha1-83WAlzD16IPP4hGumRIQ8csanx4=", + "dev": true, + "requires": { + "@angular/tsc-wrapped": "4.3.0", + "minimist": "1.2.0", + "reflect-metadata": "0.1.10" + } + }, + "@angular/core": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.3.0.tgz", + "integrity": "sha1-vSJJw94SJKfGU2xKunKNZWUykzQ=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/forms": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.3.0.tgz", + "integrity": "sha1-fQx6hUc36aMKX9lmX41PVqG5G9g=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/http": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.3.0.tgz", + "integrity": "sha1-37czEKhApq2AUKxR8OVcSYTbCSY=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/platform-browser": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.3.0.tgz", + "integrity": "sha1-AjiUiRhRhcO+zwY1k0YQDlR5x+E=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/platform-browser-dynamic": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.3.0.tgz", + "integrity": "sha1-VR+xiFGyfujz5LDuJarRC9ezEuM=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/router": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.3.0.tgz", + "integrity": "sha1-cbQo8YXrkWGh3hTcGUkhndzf/a4=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/tsc-wrapped": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.3.0.tgz", + "integrity": "sha1-/i5TdrbirRsTnt3iOp27QpnfYmQ=", + "dev": true, + "requires": { + "tsickle": "0.21.6" + } + }, + "@ngtools/json-schema": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", + "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", + "dev": true + }, + "@ngtools/webpack": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.5.1.tgz", + "integrity": "sha512-zGe9JQ3nTpKd2EnYKvC4+zrf/aOLUr2ZhLmSv8bAWMPu59v7fqo3oFs4n3JAbu8albQJmiktGVeY7Y2fFEsS7A==", + "dev": true, + "requires": { + "enhanced-resolve": "3.3.0", + "loader-utils": "1.1.0", + "magic-string": "0.19.1", + "source-map": "0.5.6" + } + }, + "@types/bluebird": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.8.tgz", + "integrity": "sha512-rBfrD56OxaqVjghtVqp2EEX0ieHkRk6IefDVrQXIVGvlhDOEBTvZff4Q02uo84ukVkH4k5eB1cPKGDM2NlFL8A==", + "dev": true + }, + "@types/core-js": { + "version": "0.9.36", + "resolved": "https://registry.npmjs.org/@types/core-js/-/core-js-0.9.36.tgz", + "integrity": "sha1-1yHnzAAH0QzmatJj6/R4pAccU/Q=", + "dev": true + }, + "@types/jasmine": { + "version": "2.5.53", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.53.tgz", + "integrity": "sha512-2YNL0jXYuN7w07mb1sMZQ6T6zOvGi83v8UbjhBZ8mhvI1VkQ2STU9XOrTFyvWswMyh5rW1evS+e7qltYJvTqPA==", + "dev": true + }, + "@types/node": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.7.tgz", + "integrity": "sha1-kmN8bEhEv8mgpoYyPjjz6TGRGMI=", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "2.53.42", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz", + "integrity": "sha1-dMt3+2BS7a/yqJhN2v2I1BnyXKw=", + "dev": true + }, + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "2.1.16", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", + "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "dev": true, + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "dev": true + } + } + }, + "ajv": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", + "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", + "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11" + } + }, + "app-root-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asar": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-0.13.0.tgz", + "integrity": "sha1-3zPdnQG/+EJGTQ2fCVdA1KYq+xQ=", + "dev": true, + "requires": { + "chromium-pickle-js": "0.2.0", + "commander": "2.11.0", + "cuint": "0.2.2", + "glob": "6.0.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "mksnapshot": "0.3.1", + "tmp": "0.0.28" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "tmp": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", + "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + } + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "autoprefixer": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.1.tgz", + "integrity": "sha1-l7yFTH0Ll5+NZIneVHoNF/swf20=", + "dev": true, + "requires": { + "browserslist": "2.2.2", + "caniuse-lite": "1.0.30000706", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.8", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "browserslist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.2.2.tgz", + "integrity": "sha512-MejxGMNIeIqzgaMKVYfFTWHinrwZOnWMXteN9VlHinTd13/0aDmXY9uyRqNsCTnVxqRmrjQFcXI7cy0q9K1IYg==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000706", + "electron-to-chromium": "1.3.16" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", + "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-types": "6.25.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.6", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.10.5" + } + }, + "babel-template": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", + "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", + "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.17.4", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", + "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", + "dev": true + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true, + "requires": { + "buffers": "0.1.1", + "chainsaw": "0.1.0" + } + }, + "binary-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz", + "integrity": "sha1-ZlBsFs5vTWkopbPNajPKQelB43s=", + "dev": true + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "optional": true, + "requires": { + "inherits": "2.0.3" + } + }, + "blocking-proxy": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-0.0.5.tgz", + "integrity": "sha1-RikF4Nz76pcPQao3Ij3anAexkSs=", + "dev": true, + "requires": { + "minimist": "1.2.0" + } + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "bn.js": { + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", + "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", + "dev": true + }, + "body-parser": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", + "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "content-type": "1.0.2", + "debug": "2.6.7", + "depd": "1.1.0", + "http-errors": "1.6.1", + "iconv-lite": "0.4.15", + "on-finished": "2.3.0", + "qs": "6.4.0", + "raw-body": "2.2.0", + "type-is": "1.6.15" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + }, + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.1.1", + "multicast-dns-service-types": "1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + } + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "1.0.6", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.0" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "randombytes": "2.0.5" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000706", + "electron-to-chromium": "1.3.16" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "buffer-indexof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.0.tgz", + "integrity": "sha1-9U9kfE9OJSKLqmVqLlfkPV8nCYI=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", + "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", + "dev": true + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.1", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000706", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + } + }, + "caniuse-db": { + "version": "1.0.30000706", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000706.tgz", + "integrity": "sha1-4rXwRgVzy8yIoJhfXM7QjxYXxvU=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000706", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000706.tgz", + "integrity": "sha1-vFmrxBun1KNjTdqVvv3tYRTh8k4=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, + "dependencies": { + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + } + } + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true, + "requires": { + "traverse": "0.3.9" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.0", + "async-each": "1.0.1", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "clap": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", + "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "clean-css": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.7.tgz", + "integrity": "sha1-ua6k+FZ5iJzz6ui0A0nsTr390DI=", + "dev": true, + "requires": { + "source-map": "0.5.6" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-deep": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", + "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "dev": true, + "requires": { + "for-own": "1.0.0", + "is-plain-object": "2.0.4", + "kind-of": "3.2.2", + "shallow-clone": "0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-3.1.1.tgz", + "integrity": "sha1-ZtvcqLF2YEcrtNeRU8D5LmO7KLY=", + "dev": true, + "requires": { + "app-root-path": "2.0.1", + "css-selector-tokenizer": "0.7.0", + "cssauron": "1.4.0", + "semver-dsl": "1.0.1", + "source-map": "0.5.6", + "sprintf-js": "1.0.3" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.2", + "color-convert": "1.9.0", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "common-tags": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", + "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", + "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } + }, + "compression": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", + "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "bytes": "2.5.0", + "compressible": "2.0.10", + "debug": "2.6.8", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "connect": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", + "integrity": "sha1-aU6NIGgb/kkCgsiriGvpjwn0L+c=", + "dev": true, + "requires": { + "debug": "2.6.7", + "finalhandler": "1.0.3", + "parseurl": "1.3.1", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "connect-history-api-fallback": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", + "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copyfiles": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-1.2.0.tgz", + "integrity": "sha1-qNo6xBqiIgrim9PFi2mEKU8sWTw=", + "dev": true, + "requires": { + "glob": "7.1.2", + "ltcdr": "2.2.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "noms": "0.0.0", + "through2": "2.0.3" + } + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + }, + "core-object": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/core-object/-/core-object-3.1.3.tgz", + "integrity": "sha1-3zmbMxG9sMkJ6Krokp/DwcSyWIA=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "elliptic": "6.4.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.8" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } + }, + "cross-env": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.0.1.tgz", + "integrity": "sha1-/05y6kO0faJIa0On8gQ7JgnkSRM=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "is-windows": "1.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.2.14" + } + } + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.2.14" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "crypto-browserify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", + "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.12", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz", + "integrity": "sha1-bPNXkZLONV6LONX0Ldeh8uyJjQ8=", + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "0.1.8" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + }, + "dependencies": { + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000706", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + } + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "1.2.0", + "source-map": "0.5.6" + } + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.24" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress-zip": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz", + "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", + "dev": true, + "requires": { + "binary": "0.3.0", + "graceful-fs": "4.1.11", + "mkpath": "0.1.0", + "nopt": "3.0.6", + "q": "1.5.0", + "readable-stream": "1.1.14", + "touch": "0.0.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", + "dev": true + }, + "depd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz", + "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "miller-rabin": "4.0.0", + "randombytes": "2.0.5" + } + }, + "directory-encoder": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/directory-encoder/-/directory-encoder-0.7.2.tgz", + "integrity": "sha1-WbTiqk8lQi9sY7UntGL14tDdLFg=", + "dev": true, + "requires": { + "fs-extra": "0.23.1", + "handlebars": "1.3.0", + "img-stats": "0.5.2" + }, + "dependencies": { + "fs-extra": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", + "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.1.1.tgz", + "integrity": "sha1-I2nUUDivBF84mOb6VoYq7T9AKWw=", + "dev": true, + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "1.1.0" + } + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, + "requires": { + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/electron/-/electron-1.6.11.tgz", + "integrity": "sha1-vnnA69zv7bW/KBF0CYAPpTus7/o=", + "dev": true, + "requires": { + "@types/node": "7.0.39", + "electron-download": "3.3.0", + "extract-zip": "1.6.5" + }, + "dependencies": { + "@types/node": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.39.tgz", + "integrity": "sha512-KQHAZeVsk4UIT9XaR6cn4WpHZzimK6UBD1UomQKfQQFmTlUHaNBzeuov+TM4+kigLO0IJt4I5OOsshcCyA9gSA==", + "dev": true + } + } + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "requires": { + "debug": "2.6.8", + "fs-extra": "0.30.0", + "home-path": "1.0.5", + "minimist": "1.2.0", + "nugget": "2.0.1", + "path-exists": "2.1.0", + "rc": "1.2.1", + "semver": "5.4.1", + "sumchecker": "1.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "electron-osx-sign": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.6.tgz", + "integrity": "sha1-I5ji18q1wdjD7quxzUkDdlKOw5o=", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "compare-version": "0.1.2", + "debug": "2.6.8", + "isbinaryfile": "3.0.2", + "minimist": "1.2.0", + "plist": "2.1.0", + "tempfile": "1.1.1" + } + }, + "electron-packager": { + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-8.7.2.tgz", + "integrity": "sha1-RX078kvJYHwGrUsettqkrMrcIQg=", + "dev": true, + "requires": { + "asar": "0.13.0", + "debug": "2.6.8", + "electron-download": "4.1.0", + "electron-osx-sign": "0.4.6", + "extract-zip": "1.6.5", + "fs-extra": "3.0.1", + "get-package-info": "1.0.0", + "minimist": "1.2.0", + "plist": "2.1.0", + "rcedit": "0.9.0", + "resolve": "1.3.3", + "run-series": "1.1.4", + "sanitize-filename": "1.6.1", + "semver": "5.4.1" + }, + "dependencies": { + "electron-download": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz", + "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=", + "dev": true, + "requires": { + "debug": "2.6.8", + "env-paths": "1.0.0", + "fs-extra": "2.1.2", + "minimist": "1.2.0", + "nugget": "2.0.1", + "path-exists": "3.0.0", + "rc": "1.2.1", + "semver": "5.4.1", + "sumchecker": "2.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0" + } + } + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "sumchecker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "dev": true, + "requires": { + "debug": "2.6.8" + } + } + } + }, + "electron-reload": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/electron-reload/-/electron-reload-1.2.1.tgz", + "integrity": "sha1-YW6Qbl29HM6XIi7kKZdRw7KFvys=", + "dev": true, + "requires": { + "chokidar": "1.7.0" + } + }, + "electron-to-chromium": { + "version": "1.3.16", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz", + "integrity": "sha1-0OAmc1dUdwkBrjAaIWZMukXZL30=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "ember-cli-normalize-entity-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz", + "integrity": "sha1-CxT3vLxZmqEXtf3cgeT9A8S61bc=", + "dev": true, + "requires": { + "silent-error": "1.1.0" + } + }, + "ember-cli-string-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz", + "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "engine.io": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-client": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" + } + }, + "enhanced-resolve": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz", + "integrity": "sha512-2qbxE7ek3YxPJ1ML6V+satHkzHpJQKWkRHmRx6mfAoW59yP8YH8BFplbegSP+u2hBd6B6KCOpvJQ3dZAP+hkpg==", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.7" + } + }, + "ensure-posix-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz", + "integrity": "sha1-pls+QtC3HPxYXrd0+ZQ8jZuRsMI=", + "dev": true + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "requires": { + "prr": "0.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es5-ext": { + "version": "0.10.24", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz", + "integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=", + "dev": true, + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24", + "es6-iterator": "2.0.1", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24" + } + }, + "es6-templates": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", + "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, + "requires": { + "recast": "0.11.23", + "through": "2.3.8" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.24" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "dev": true, + "requires": { + "create-hash": "1.1.3" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" + }, + "dependencies": { + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "0.1.1" + } + }, + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "0.1.1", + "repeat-string": "0.2.2" + } + }, + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true + }, + "repeat-string": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "exports-loader": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", + "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.6" + } + }, + "express": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", + "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.7", + "depd": "1.1.0", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.3", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.5", + "qs": "6.4.0", + "range-parser": "1.2.0", + "send": "0.15.3", + "serve-static": "1.12.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" + }, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "external-editor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", + "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", + "dev": true, + "requires": { + "iconv-lite": "0.4.18", + "jschardet": "1.5.0", + "tmp": "0.0.31" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", + "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=", + "dev": true, + "requires": { + "async": "2.5.0", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0", + "webpack-sources": "1.0.1" + } + }, + "extract-zip": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz", + "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.2.0", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-loader": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", + "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "finalhandler": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", + "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", + "dev": true, + "requires": { + "debug": "2.6.7", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } + }, + "forwarded": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", + "dev": true + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "dev": true + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "1.0.0" + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "optional": true, + "requires": { + "globule": "1.2.0" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-package-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", + "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "debug": "2.6.8", + "lodash.get": "4.4.2", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz", + "integrity": "sha1-npsTCpPjiUkTItl1zz7BgYw3zjQ=", + "dev": true, + "requires": { + "optimist": "0.3.7", + "uglify-js": "2.3.6" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", + "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", + "dev": true, + "optional": true, + "requires": { + "async": "0.2.10", + "optimist": "0.3.7", + "source-map": "0.1.43" + } + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + } + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "heimdalljs": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.5.tgz", + "integrity": "sha1-aqVDCO7nk7ZCz/nPlHgURfN3MKw=", + "dev": true, + "requires": { + "rsvp": "3.2.1" + }, + "dependencies": { + "rsvp": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", + "integrity": "sha1-B8tKXfJa3Z6Cbrxn3Mn9idsn2Eo=", + "dev": true + } + } + }, + "heimdalljs-logger": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/heimdalljs-logger/-/heimdalljs-logger-0.1.9.tgz", + "integrity": "sha1-12raTkW3u294b8nAEKaOsuL68XY=", + "dev": true, + "requires": { + "debug": "2.6.8", + "heimdalljs": "0.2.5" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "home-path": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", + "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" + } + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-loader": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz", + "integrity": "sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow=", + "dev": true, + "requires": { + "es6-templates": "0.2.3", + "fastparse": "1.1.1", + "html-minifier": "3.5.3", + "loader-utils": "1.1.0", + "object-assign": "4.1.1" + } + }, + "html-minifier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-iKRzQQDuTCsq0Ultbi/mfJJnR0D3AdZKTq966Gsp92xkmAPCV4Xi08qhJ0Dl3ZAWemSgJ7qZK+UsZc0gFqK6wg==", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.7", + "commander": "2.11.0", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.0.26" + } + }, + "html-webpack-plugin": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz", + "integrity": "sha1-6Yf0IYU9O2k4yMTIFxhC5f0XryM=", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "html-minifier": "3.5.3", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "pretty-error": "2.1.1", + "toposort": "1.0.3" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.1.0", + "domutils": "1.1.6", + "readable-stream": "1.0.34" + }, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", + "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "dev": true, + "requires": { + "depd": "1.1.0", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.1" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.8", + "extend": "3.0.1" + } + }, + "iconv-lite": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "dev": true + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "6.0.8" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "img-stats": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/img-stats/-/img-stats-0.5.2.tgz", + "integrity": "sha1-wgNJbELy2esuWrgjL6dWurMsnis=", + "dev": true, + "requires": { + "xmldom": "0.1.27" + } + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "inquirer": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.1.tgz", + "integrity": "sha512-QgW3eiPN8gpj/K5vVpHADJJgrrF0ho/dZGylikGX7iqAdRgC9FVKYKWFLx6hZDBFcOLEoSqINYrVPeFAeG/PdA==", + "dev": true, + "requires": { + "ansi-escapes": "2.0.0", + "chalk": "2.0.1", + "cli-cursor": "2.1.0", + "cli-width": "2.1.0", + "external-editor": "2.0.4", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "3.7.0" + } + }, + "interpret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", + "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.9.0" + } + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.11.tgz", + "integrity": "sha1-/MC0YeKzvaceMFFVE4I4doJX2d4=", + "dev": true, + "requires": { + "async": "2.5.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.0.7", + "istanbul-lib-instrument": "1.7.4", + "istanbul-lib-report": "1.1.1", + "istanbul-lib-source-maps": "1.2.1", + "istanbul-reports": "1.1.1", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-2.0.0.tgz", + "integrity": "sha1-5UkpAKsLuoNe+oAkywC+mz7qJwA=", + "dev": true, + "requires": { + "convert-source-map": "1.5.0", + "istanbul-lib-instrument": "1.7.4", + "loader-utils": "0.2.17", + "object-assign": "4.1.1" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", + "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz", + "integrity": "sha1-6f2SDkdn89Ge3HZeLWs/XMvQ7qg=", + "dev": true, + "requires": { + "babel-generator": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", + "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "dev": true, + "requires": { + "debug": "2.6.8", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.1", + "source-map": "0.5.6" + } + }, + "istanbul-reports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz", + "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==", + "dev": true, + "requires": { + "handlebars": "4.0.10" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true, + "optional": true + } + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "jasmine": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.6.0.tgz", + "integrity": "sha1-ayLnCIPo5YnUVjRhU7TSBt2+IX8=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2", + "jasmine-core": "2.6.4" + } + }, + "jasmine-core": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", + "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.1.1.tgz", + "integrity": "sha1-Wm1Yq11hvqcwn7wnkjlRF1axtYg=", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.1.0.tgz", + "integrity": "sha1-2llSddGuYx3nNqwKfH2Fyfc+9lI=", + "dev": true + }, + "js-base64": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jschardet": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.0.tgz", + "integrity": "sha512-+Q8JsoEQbrdE+a/gg1F9XO92gcKXgpE5UACqr0sIubjDmBEkd+OOWPGzQeMrWSLxd73r4dHxBeRW7edHu5LmJQ==", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "json-loader": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", + "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "karma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", + "integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "body-parser": "1.17.2", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.2", + "core-js": "2.4.1", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.3.6", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.1.5", + "range-parser": "1.2.0", + "rimraf": "2.6.1", + "safe-buffer": "5.1.1", + "socket.io": "1.7.3", + "source-map": "0.5.6", + "tmp": "0.0.31", + "useragent": "2.2.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.2.14" + } + }, + "karma-cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", + "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", + "dev": true, + "requires": { + "resolve": "1.3.3" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-0.2.0.tgz", + "integrity": "sha1-V2YmMzit6wAm9+Sseoml8FbFZCw=", + "dev": true, + "requires": { + "istanbul-api": "1.1.11" + } + }, + "karma-jasmine": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", + "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "1.1.0" + } + }, + "karma-sourcemap-loader": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", + "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "less": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz", + "integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=", + "dev": true, + "requires": { + "errno": "0.1.4", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.3.6", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.6" + } + }, + "less-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.4.tgz", + "integrity": "sha1-tKjEOEPmXGfS6i6xRltcQjPVAGo=", + "dev": true, + "requires": { + "clone": "2.1.1", + "loader-utils": "1.1.0", + "pify": "2.3.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + } + } + }, + "license-webpack-plugin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-0.4.3.tgz", + "integrity": "sha1-+diNTrwEQHoAYejMrCZXH4jlGhY=", + "dev": true, + "requires": { + "object-assign": "4.1.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true, + "optional": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", + "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", + "dev": true, + "optional": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log4js": { + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "semver": "4.3.6" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "ltcdr": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltcdr/-/ltcdr-2.2.1.tgz", + "integrity": "sha1-Wrh60dTB2rjowIu/A37gwZAih88=", + "dev": true + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "magic-string": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", + "integrity": "sha1-FNdoATyvLsj96hakmvgvw3fnUgE=", + "dev": true, + "requires": { + "vlq": "0.2.2" + } + }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "matcher-collection": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.4.tgz", + "integrity": "sha1-L2auCGmZbynkPQtiyD3R1D5YF1U=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.3" + } + }, + "miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "dev": true + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "dev": true + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "0.1.8", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mkpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", + "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=", + "dev": true + }, + "mksnapshot": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz", + "integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=", + "dev": true, + "requires": { + "decompress-zip": "0.3.0", + "fs-extra": "0.26.7", + "request": "2.81.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", + "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", + "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", + "dev": true, + "requires": { + "dns-packet": "1.1.1", + "thunky": "0.1.0" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "dev": true, + "optional": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "dev": true, + "requires": { + "xml-char-classes": "1.0.0" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "no-case": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", + "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, + "node-forge": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", + "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", + "dev": true + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.2.14" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "node-libs-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.11.1", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.2", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "node-modules-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-modules-path/-/node-modules-path-1.0.1.tgz", + "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=", + "dev": true + }, + "node-sass": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz", + "integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=", + "dev": true, + "optional": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.6.2", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.81.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0" + } + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.0.34" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.0.2" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "1.0.0" + } + }, + "nugget": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "requires": { + "debug": "2.6.8", + "minimist": "1.2.0", + "pretty-bytes": "1.0.4", + "progress-stream": "1.2.0", + "request": "2.81.0", + "single-line-log": "1.1.2", + "throttleit": "0.0.2" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "0.0.3" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "requires": { + "url-parse": "1.0.5" + }, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "p-map": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz", + "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "2.3.1" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "4.9.1", + "browserify-aes": "1.0.6", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "pbkdf2": "3.0.12" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pbkdf2": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", + "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "plist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz", + "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=", + "dev": true, + "requires": { + "base64-js": "1.2.0", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.27" + }, + "dependencies": { + "base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", + "dev": true + } + } + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "requires": { + "async": "1.5.2", + "debug": "2.6.8", + "mkdirp": "0.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.1.9", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqid": "4.1.1" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1", + "postcss-load-options": "1.2.0", + "postcss-load-plugins": "2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } + }, + "postcss-loader": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.3.3.tgz", + "integrity": "sha1-piHqH6KQYqg5cqRvVEhncTAZFus=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-load-config": "1.2.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "6.0.8" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.8" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.8" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.8" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "postcss-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.0.0.tgz", + "integrity": "sha1-EcahED5SeukUw7q0hBUnPQJ9lQg=", + "dev": true, + "requires": { + "mime": "1.3.6", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "postcss": "6.0.8", + "xxhashjs": "0.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", + "integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==", + "dev": true, + "requires": { + "chalk": "2.0.1", + "source-map": "0.5.6", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "2.0.1", + "utila": "0.4.0" + } + }, + "private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "requires": { + "speedometer": "0.1.4", + "through2": "0.2.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "xtend": "2.1.2" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "0.4.0" + } + } + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "2.0.6" + } + }, + "protractor": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", + "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", + "dev": true, + "requires": { + "@types/node": "6.0.85", + "@types/q": "0.0.32", + "@types/selenium-webdriver": "2.53.42", + "blocking-proxy": "0.0.5", + "chalk": "1.1.3", + "glob": "7.1.2", + "jasmine": "2.6.0", + "jasminewd2": "2.1.0", + "optimist": "0.6.1", + "q": "1.4.1", + "saucelabs": "1.3.0", + "selenium-webdriver": "3.0.1", + "source-map-support": "0.4.15", + "webdriver-js-extender": "1.0.0", + "webdriver-manager": "12.0.6" + }, + "dependencies": { + "@types/node": { + "version": "6.0.85", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.85.tgz", + "integrity": "sha512-6qLZpfQFO/g5Ns2e7RsW6brk0Q6Xzwiw7kVVU/XiQNOiJXSojhX76GP457PBYIsNMH2WfcGgcnZB4awFDHrwpA==", + "dev": true + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + } + } + }, + "proxy-addr": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", + "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", + "dev": true, + "requires": { + "forwarded": "0.1.0", + "ipaddr.js": "1.4.0" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "dev": true + }, + "qjobs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", + "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", + "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.15", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, + "rcedit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-0.9.0.tgz", + "integrity": "sha1-ORDfVzRTmeKwMl9KUZAH+J5V7xw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "3.1.3", + "private": "0.1.7", + "source-map": "0.5.6" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + } + }, + "reflect-metadata": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", + "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=", + "dev": true + }, + "regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3", + "is-primitive": "2.0.0" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-converter": "0.1.4", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "run-series": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz", + "integrity": "sha1-iac93F51ye+KtjIMChYA1qQRebk=", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "rxjs": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz", + "integrity": "sha1-KjI2/L8D31e64G/Wly/ZnlwI/Pc=", + "requires": { + "symbol-observable": "1.0.4" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sanitize-filename": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", + "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "dev": true, + "requires": { + "truncate-utf8-bytes": "1.0.2" + } + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + } + }, + "sass-loader": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", + "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "dev": true, + "requires": { + "async": "2.5.0", + "clone-deep": "0.3.0", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "saucelabs": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.3.0.tgz", + "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=", + "dev": true, + "requires": { + "https-proxy-agent": "1.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.2.2" + } + }, + "script-loader": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.0.tgz", + "integrity": "sha1-aF3H5waeDe56kmdPDrxbD1W6pew=", + "dev": true, + "requires": { + "raw-loader": "0.5.1" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "optional": true, + "requires": { + "js-base64": "2.1.9", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz", + "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=", + "dev": true, + "requires": { + "adm-zip": "0.4.7", + "rimraf": "2.6.1", + "tmp": "0.0.30", + "xml2js": "0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + } + } + }, + "selfsigned": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.9.1.tgz", + "integrity": "sha1-zdpEktcNSGVw+HxlVGAjVY4d+lo=", + "dev": true, + "requires": { + "node-forge": "0.6.33" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "5.4.1" + } + }, + "send": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", + "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", + "dev": true, + "requires": { + "debug": "2.6.7", + "depd": "1.1.0", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.1", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", + "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "batch": "0.6.1", + "debug": "2.6.8", + "escape-html": "1.0.3", + "http-errors": "1.6.1", + "mime-types": "2.1.16", + "parseurl": "1.3.1" + } + }, + "serve-static": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", + "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, + "sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "dev": true, + "requires": { + "is-extendable": "0.1.1", + "kind-of": "2.0.1", + "lazy-cache": "0.2.7", + "mixin-object": "2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "silent-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", + "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "dev": true, + "requires": { + "debug": "2.6.8" + } + }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "socket.io": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "dev": true, + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "dev": true, + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "dev": true, + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "2.0.3" + }, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.2.tgz", + "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", + "dev": true, + "requires": { + "debug": "2.6.8", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.1.9" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "source-map-loader": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.1.tgz", + "integrity": "sha1-SBJr6SML1H+tBeRqjDwuPS2r5Qc=", + "dev": true, + "requires": { + "async": "0.9.2", + "loader-utils": "0.2.17", + "source-map": "0.1.43" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true, + "requires": { + "source-map": "0.5.6" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.8", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "dev": true, + "requires": { + "debug": "2.6.8", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + } + }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.3.3" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "0.18.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz", + "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.0", + "debug": "2.6.8", + "glob": "7.0.6", + "mkdirp": "0.5.1", + "sax": "0.5.8", + "source-map": "0.1.43" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "stylus-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.1.tgz", + "integrity": "sha1-d/SzT9Aw0lsmF7z1UT21sHMMQIk=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "lodash.clonedeep": "4.5.0", + "when": "3.6.4" + } + }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, + "requires": { + "debug": "2.6.8", + "es6-promise": "4.1.1" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "tapable": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.7.tgz", + "integrity": "sha1-5GwNqsuyuKmLmwzqD0BSEFgX7Vw=" + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "optional": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "uuid": "2.0.3" + }, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "thunky": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", + "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", + "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "toposort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz", + "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=", + "dev": true + }, + "touch": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", + "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", + "dev": true, + "requires": { + "nopt": "1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.0" + } + } + } + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "1.0.4" + } + }, + "ts-node": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.1.0.tgz", + "integrity": "sha1-p17FrrSPMFixuUXbp2XxFQuoj4w=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "chalk": "1.1.3", + "diff": "3.3.0", + "make-error": "1.3.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.4.15", + "tsconfig": "6.0.0", + "v8flags": "2.1.1", + "yn": "2.0.0" + } + }, + "tsconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", + "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", + "dev": true, + "requires": { + "strip-bom": "3.0.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tsickle": { + "version": "0.21.6", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz", + "integrity": "sha1-U7Abl5xcE/2xOvs/uVgXflmRWI0=", + "dev": true, + "requires": { + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.5.6", + "source-map-support": "0.4.15" + } + }, + "tslib": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", + "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=" + }, + "tslint": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.4.3.tgz", + "integrity": "sha1-dhyEArgONHt3M6BDkKdXslNYBGc=", + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "colors": "1.1.2", + "commander": "2.11.0", + "diff": "3.3.0", + "glob": "7.1.2", + "minimatch": "3.0.4", + "resolve": "1.3.3", + "semver": "5.4.1", + "tslib": "1.7.1", + "tsutils": "2.8.0" + } + }, + "tsutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.8.0.tgz", + "integrity": "sha1-AWAXNymzvxOGKN0UoVN+AIUdgUo=", + "dev": true, + "requires": { + "tslib": "1.7.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.16" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz", + "integrity": "sha1-w8yxbdqgsjFN4DHn5v7onlujRrw=", + "dev": true + }, + "uglify-js": { + "version": "3.0.26", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.26.tgz", + "integrity": "sha512-+D/BjzuvT1oRMSkH0fuF3M/BCvDxDywmZasd1UTPPHsdsHZqJEAZSvrojgFlS7lrM3ZZWq5h7Bb5i96X1TbOJw==", + "dev": true, + "requires": { + "commander": "2.11.0", + "source-map": "0.5.6" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz", + "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "mime": "1.3.6" + } + }, + "url-parse": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", + "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", + "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "useragent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "dev": true, + "requires": { + "lru-cache": "2.2.4", + "tmp": "0.0.31" + }, + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", + "dev": true + } + } + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", + "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "vlq": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", + "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "walk-sync": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.2.tgz", + "integrity": "sha512-FMB5VqpLqOCcqrzA9okZFc0wq0Qbmdm396qJxvQZhDpyu0W95G9JCmp74tx7iyYnyOcBtUuKJsgIKAqjozvmmQ==", + "dev": true, + "requires": { + "ensure-posix-path": "1.0.2", + "matcher-collection": "1.0.4" + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "dev": true, + "requires": { + "async": "2.5.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "dev": true, + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "webdriver-js-extender": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", + "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", + "dev": true, + "requires": { + "@types/selenium-webdriver": "2.53.42", + "selenium-webdriver": "2.53.3" + }, + "dependencies": { + "adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true + }, + "sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + }, + "selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "requires": { + "adm-zip": "0.4.4", + "rimraf": "2.6.1", + "tmp": "0.0.24", + "ws": "1.1.2", + "xml2js": "0.4.4" + } + }, + "tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true + }, + "xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "requires": { + "sax": "0.6.1", + "xmlbuilder": "8.2.2" + } + } + } + }, + "webdriver-manager": { + "version": "12.0.6", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.0.6.tgz", + "integrity": "sha1-PfGkgZdwELTL+MnYXHpXeCjA5ws=", + "dev": true, + "requires": { + "adm-zip": "0.4.7", + "chalk": "1.1.3", + "del": "2.2.2", + "glob": "7.1.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "q": "1.5.0", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.4.1", + "xml2js": "0.4.17" + } + }, + "webpack": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.3.0.tgz", + "integrity": "sha1-zi+eB2Vmq6kfdIhxM6iD/X2hh7w=", + "dev": true, + "requires": { + "acorn": "5.1.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.2.2", + "ajv-keywords": "2.1.0", + "async": "2.5.0", + "enhanced-resolve": "3.3.0", + "escope": "3.6.0", + "interpret": "1.0.3", + "json-loader": "0.5.4", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.0.0", + "source-map": "0.5.6", + "supports-color": "3.2.3", + "tapable": "0.2.7", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.0.1", + "yargs": "6.6.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", + "integrity": "sha1-CWkdCXOjCtH4Ksc6EuIIfwpHVPk=", + "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.3.6", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0" + } + }, + "webpack-dev-server": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.5.0.tgz", + "integrity": "sha1-TTanKLA7iyr6SO0wJCiEfOooQK0=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "3.5.0", + "chokidar": "1.7.0", + "compression": "1.7.0", + "connect-history-api-fallback": "1.3.0", + "del": "3.0.0", + "express": "4.15.3", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "internal-ip": "1.2.0", + "opn": "4.0.2", + "portfinder": "1.0.13", + "selfsigned": "1.9.1", + "serve-index": "1.9.0", + "sockjs": "0.3.18", + "sockjs-client": "1.1.2", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.11.0", + "yargs": "6.6.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.1.1", + "pify": "3.0.0", + "rimraf": "2.6.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "webpack-merge": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-2.6.1.tgz", + "integrity": "sha1-8dgB0sXTn4P/7J8RkkCz476ZShw=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "webpack-sources": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", + "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.5.6" + }, + "dependencies": { + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": "0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", + "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "dev": true, + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", + "dev": true + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", + "dev": true + }, + "xml2js": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "dev": true, + "requires": { + "sax": "1.2.4", + "xmlbuilder": "4.2.1" + }, + "dependencies": { + "xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + } + } + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "xxhashjs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.1.tgz", + "integrity": "sha1-m76b6JYUKXbfo0wGGy0GjEPTDeA=", + "dev": true, + "requires": { + "cuint": "0.2.2" + }, + "dependencies": { + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + } + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "optional": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.12.tgz", + "integrity": "sha1-hv9QU8mK7CkaC/S7rFAdaUoFz7s=" + } + } +} diff --git a/web/package.js b/web/package.js new file mode 100644 index 00000000..5298fa87 --- /dev/null +++ b/web/package.js @@ -0,0 +1,60 @@ +"use strict"; + +var packager = require('electron-packager'); +const pkg = require('./package.json'); +const argv = require('minimist')(process.argv.slice(1)); + +const appName = argv.name || pkg.name; +const buildVersion = pkg.version || '1.0'; +const shouldUseAsar = argv.asar || false; +const shouldBuildAll = argv.all || false; +const arch = argv.arch || 'all'; +const platform = argv.platform || 'darwin'; + +const DEFAULT_OPTS = { + dir: './dist', + name: appName, + asar: shouldUseAsar, + buildVersion: buildVersion +}; + + +pack(platform, arch, function done(err, appPath) { + if (err) { + console.log(err); + } else { + console.log('Application packaged successfuly!', appPath); + } + +}); + +function pack(plat, arch, cb) { + // there is no darwin ia32 electron + if (plat === 'darwin' && arch === 'ia32') return; + + let icon = 'src/favicon'; + + if (icon) { + DEFAULT_OPTS.icon = icon + (() => { + let extension = '.png'; + if (plat === 'darwin') { + extension = '.icns'; + } else if (plat === 'win32') { + extension = '.ico'; + } + return extension; + })(); + } + + const opts = Object.assign({}, DEFAULT_OPTS, { + platform: plat, + arch, + prune: true, + overwrite: true, + all: shouldBuildAll, + out: `app-builds` + }); + + console.log(opts) + packager(opts, cb); +} diff --git a/web/package.json b/web/package.json index f801b12c..a088af1a 100644 --- a/web/package.json +++ b/web/package.json @@ -1,38 +1,103 @@ { - "name": "angular-seed", - "private": true, - "version": "0.0.0", - "description": "A starter project for AngularJS", - "repository": "https://github.com/angular/angular-seed", - "license": "MIT", - "devDependencies": { - "bower": "^1.7.7", - "http-server": "^0.9.0", - "jasmine-core": "^2.4.1", - "karma": "^0.13.22", - "karma-chrome-launcher": "^0.2.3", - "karma-firefox-launcher": "^0.1.7", - "karma-jasmine": "^0.3.8", - "karma-junit-reporter": "^0.4.1", - "protractor": "^3.2.2", - "express": "latest", - "requestify": "latest", - "body-parser": "latest" + "name": "angular-electron", + "version": "1.6.1", + "description": "Angular 4 with Electron (Typescript + SASS + Hot Reload)", + "homepage": "https://github.com/maximegris/angular-electron", + "author": { + "name": "Maxime GRIS", + "email": "maxime.gris@gmail.com" }, + "keywords": [ + "angular", + "electron", + "typescript", + "sass" + ], + "main": "main.js", + "private": true, "scripts": { - "postinstall": "bower install", - "prestart": "npm install", - "start": "node server.js", - "pretest": "npm install", - "test": "karma start karma.conf.js", - "test-single-run": "karma start karma.conf.js --single-run", - "preupdate-webdriver": "npm install", - "update-webdriver": "webdriver-manager update", - "preprotractor": "npm run update-webdriver", - "protractor": "protractor e2e-tests/protractor.conf.js", - "update-index-async": "node -e \"var fs=require('fs'),indexFile='app/index-async.html',loaderFile='app/bower_components/angular-loader/angular-loader.min.js',loaderText=fs.readFileSync(loaderFile,'utf-8').split(/sourceMappingURL=angular-loader.min.js.map/).join('sourceMappingURL=bower_components/angular-loader/angular-loader.min.js.map'),indexText=fs.readFileSync(indexFile,'utf-8').split(/\\/\\/@@NG_LOADER_START@@[\\s\\S]*\\/\\/@@NG_LOADER_END@@/).join('//@@NG_LOADER_START@@\\n'+loaderText+' //@@NG_LOADER_END@@');fs.writeFileSync(indexFile,indexText);\"" + "ng": "ng", + "lint": "ng lint", + "start": "webpack --watch", + "start:web": "webpack-dev-server --content-base . --port 4200 --inline", + "build:electron:main": "tsc main.ts --outDir dist && copyfiles package.json dist && cd dist && npm install --prod && cd ..", + "build": "webpack --display-error-details && npm run build:electron:main", + "build:prod": "cross-env NODE_ENV=production npm run build", + "electron:serve": "npm run build:electron:main && electron ./dist --serve", + "electron:test": "electron ./dist", + "electron:dev": "npm run build && electron ./dist", + "electron:prod": "npm run build:prod && electron ./dist", + "electron:linux": "npm run build:prod && node package.js --asar --platform=linux --arch=x64", + "electron:windows": "npm run build:prod && node package.js --asar --platform=win32 --arch=ia32", + "electron:mac": "npm run build:prod && node package.js --asar --platform=darwin --arch=x64", + "test": "karma start ./karma.conf.js", + "pree2e": "webdriver-manager update --standalone false --gecko false --quiet && npm run build", + "e2e": "protractor ./protractor.conf.js" }, "dependencies": { - "request": "^2.74.0" - } + "@angular/common": "4.3.0", + "@angular/compiler": "4.3.0", + "@angular/core": "4.3.0", + "@angular/forms": "4.3.0", + "@angular/http": "4.3.0", + "@angular/platform-browser": "4.3.0", + "@angular/platform-browser-dynamic": "4.3.0", + "@angular/router": "4.3.0", + "core-js": "2.4.1", + "enhanced-resolve": "3.3.0", + "rxjs": "5.4.2", + "zone.js": "0.8.12" + }, + "devDependencies": { + "@angular/cli": "1.2.1", + "@angular/compiler-cli": "4.3.0", + "@types/bluebird": "3.5.8", + "@types/core-js": "0.9.36", + "@types/jasmine": "2.5.53", + "@types/node": "7.0.7", + "autoprefixer": "7.1.1", + "codelyzer": "3.1.1", + "copyfiles": "1.2.0", + "cross-env": "5.0.1", + "css-loader": "0.28.4", + "cssnano": "3.10.0", + "electron": "1.6.11", + "electron-packager": "8.7.2", + "electron-reload": "1.2.1", + "exports-loader": "0.6.4", + "extract-zip": "=1.6.5", + "file-loader": "0.11.2", + "html-loader": "0.4.5", + "istanbul-instrumenter-loader": "2.0.0", + "jasmine-core": "2.6.4", + "jasmine-spec-reporter": "4.1.1", + "json-loader": "0.5.4", + "karma": "1.7.0", + "karma-chrome-launcher": "2.2.0", + "karma-cli": "1.0.1", + "karma-coverage-istanbul-reporter": "0.2.0", + "karma-jasmine": "1.1.0", + "karma-jasmine-html-reporter": "0.2.2", + "karma-sourcemap-loader": "0.3.7", + "less-loader": "4.0.4", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "postcss-loader": "1.3.3", + "postcss-url": "7.0.0", + "protractor": "5.1.2", + "raw-loader": "0.5.1", + "sass-loader": "6.0.6", + "script-loader": "0.7.0", + "source-map-loader": "0.2.1", + "style-loader": "0.18.2", + "stylus-loader": "3.0.1", + "ts-node": "3.1.0", + "tslint": "5.4.3", + "typescript": "2.4.1", + "url-loader": "0.5.9", + "webdriver-manager": "12.0.6", + "webpack": "3.3.0", + "webpack-dev-server": "2.5.0" + }, + "license": "SEE LICENSE IN LICENSE.md" } diff --git a/web/protractor.conf.js b/web/protractor.conf.js new file mode 100644 index 00000000..52642832 --- /dev/null +++ b/web/protractor.conf.js @@ -0,0 +1,36 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 25000, + getPageTimeout: 15000, + delayBrowserTimeInSeconds: 0, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome', + chromeOptions: { + binary: './node_modules/electron/dist/electron.exe', + args: ['--test-type=webdriver', 'app=dist/main.js'] + } + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine2', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function () { } + }, + beforeLaunch: function () { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + }, + onPrepare() { + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/web/server.js b/web/server.js deleted file mode 100644 index 62a131a3..00000000 --- a/web/server.js +++ /dev/null @@ -1,63 +0,0 @@ -var express = require('express') - , app = express(); -var requestify = require('requestify'); -var bodyParser = require('body-parser') - -var request = require('request'); -var path = __dirname + '/app/'; - -app.use("/bower_components", express.static(path + '/bower_components')); -app.use( bodyParser.json() ); - - -app.get("/",function(req,res){ - res.sendFile(path + "index.html"); -}); - -app.use("/", express.static(path + '/')); - -app.get('/data/all-enabled-currencies', function (req, res) { - request({ - url :'http://localhost:9050/exchanges/enabled/latest/all' - },function(err, resp, body){ - res.send(body); - }) -}); - -app.get('/data/all-enabled-exchange-account-info', function (req, res) { - request({ - url :'http://localhost:9050/exchanges/enabled/accounts/all' - },function(err, resp, body){ - res.send(body); - }) -}); - -app.get('/config/all', function (req, res) { - request({ - url :'http://localhost:9050/config/all' - },function(err, resp, body){ - res.send(body); - }) -}); - - - -//////////////////////////////////////////////////////// -// Posts -/////////////////////////////////////////////////////// - -app.post('/config/all/save', function(req, res) { - requestify.post('http://localhost:9050/config/all/save', { - Data: req.body - }) - .then(function(response) { - console.log(response); - res.send(response.body); - }); -}); - - -var port = process.env.GCT_WEB_PORT || 80; -app.listen(port, function(){ - console.log(`GoCyptoTrader website running! Enter http://localhost:${port}/ into browser`); -}); \ No newline at end of file diff --git a/web/src/app/app-routing.module.ts b/web/src/app/app-routing.module.ts new file mode 100644 index 00000000..cd3f3a54 --- /dev/null +++ b/web/src/app/app-routing.module.ts @@ -0,0 +1,21 @@ +import { HomeComponent } from './components/home/home.component'; +import { AboutComponent } from './components/about/about.component'; +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + component: HomeComponent + }, + { + path:'about', + component: AboutComponent + } +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes, {useHash: true})], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/web/src/app/app.component.html b/web/src/app/app.component.html new file mode 100644 index 00000000..0680b43f --- /dev/null +++ b/web/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/web/app/controllers.js b/web/src/app/app.component.scss similarity index 100% rename from web/app/controllers.js rename to web/src/app/app.component.scss diff --git a/web/src/app/app.component.spec.ts b/web/src/app/app.component.spec.ts new file mode 100644 index 00000000..f4079ef9 --- /dev/null +++ b/web/src/app/app.component.spec.ts @@ -0,0 +1,24 @@ +import { TestBed, async } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; +import { ElectronService } from 'app/providers/electron.service'; + +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + providers : [ + ElectronService + ], + imports: [RouterTestingModule] + }).compileComponents(); + })); + + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); +}); diff --git a/web/src/app/app.component.ts b/web/src/app/app.component.ts new file mode 100644 index 00000000..3039aa11 --- /dev/null +++ b/web/src/app/app.component.ts @@ -0,0 +1,22 @@ +import { Component } from '@angular/core'; +import { ElectronService } from './providers/electron.service'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + constructor(public electronService: ElectronService) { + + if (electronService.isElectron()) { + console.log('Mode electron'); + // Check if electron is correctly injected (see externals in webpack.config.js) + console.log('c', electronService.ipcRenderer); + // Check if nodeJs childProcess is correctly injected (see externals in webpack.config.js) + console.log('c', electronService.childProcess); + } else { + console.log('Mode web'); + } + } +} diff --git a/web/src/app/app.module.ts b/web/src/app/app.module.ts new file mode 100644 index 00000000..9b568e3e --- /dev/null +++ b/web/src/app/app.module.ts @@ -0,0 +1,32 @@ +import 'zone.js/dist/zone-mix'; +import 'reflect-metadata'; +import 'polyfills'; +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { HttpModule } from '@angular/http'; + +import { AppComponent } from './app.component'; +import { HomeComponent } from './components/home/home.component'; +import { AboutComponent } from './components/about/about.component'; + +import { AppRoutingModule } from './app-routing.module'; + +import { ElectronService } from './providers/electron.service'; + +@NgModule({ + declarations: [ + AppComponent, + HomeComponent, + AboutComponent + ], + imports: [ + BrowserModule, + FormsModule, + HttpModule, + AppRoutingModule + ], + providers: [ElectronService], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/web/src/app/components/about/about.component.html b/web/src/app/components/about/about.component.html new file mode 100644 index 00000000..17e2a33d --- /dev/null +++ b/web/src/app/components/about/about.component.html @@ -0,0 +1,3 @@ +

+ about works! +

diff --git a/web/src/app/components/about/about.component.scss b/web/src/app/components/about/about.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/web/src/app/components/about/about.component.spec.ts b/web/src/app/components/about/about.component.spec.ts new file mode 100644 index 00000000..3ed18005 --- /dev/null +++ b/web/src/app/components/about/about.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutComponent } from './about.component'; + +describe('AboutComponent', () => { + let component: AboutComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AboutComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AboutComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should be created', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/web/src/app/components/about/about.component.ts b/web/src/app/components/about/about.component.ts new file mode 100644 index 00000000..9a3c3894 --- /dev/null +++ b/web/src/app/components/about/about.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html', + styleUrls: ['./about.component.scss'] +}) +export class AboutComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/web/src/app/components/home/home.component.html b/web/src/app/components/home/home.component.html new file mode 100644 index 00000000..c5631912 --- /dev/null +++ b/web/src/app/components/home/home.component.html @@ -0,0 +1,6 @@ +
diff --git a/web/src/app/components/home/home.component.scss b/web/src/app/components/home/home.component.scss new file mode 100644 index 00000000..cdbd6d33 --- /dev/null +++ b/web/src/app/components/home/home.component.scss @@ -0,0 +1,17 @@ +.container { + height: 100%; + display: flex; + align-items: center; + justify-content: center; + + background: url(../../../assets/background.jpg) no-repeat center fixed; + -webkit-background-size: cover; /* pour anciens Chrome et Safari */ + background-size: cover; /* version standardisée */ + + .title { + color: white; + margin:0; + padding:50px 20px; + } + +} diff --git a/web/src/app/components/home/home.component.spec.ts b/web/src/app/components/home/home.component.spec.ts new file mode 100644 index 00000000..db6104ad --- /dev/null +++ b/web/src/app/components/home/home.component.spec.ts @@ -0,0 +1,38 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HomeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it(`should have as title 'App works !'`, async(() => { + fixture = TestBed.createComponent(HomeComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('App works !'); + })); + + it('should render title in a h1 tag', async(() => { + fixture = TestBed.createComponent(HomeComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('App works !'); + })); +}); diff --git a/web/src/app/components/home/home.component.ts b/web/src/app/components/home/home.component.ts new file mode 100644 index 00000000..edf1531c --- /dev/null +++ b/web/src/app/components/home/home.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'] +}) +export class HomeComponent implements OnInit { + title = `App works !`; + + constructor() { } + + ngOnInit() { + } + +} diff --git a/web/src/app/providers/electron.service.ts b/web/src/app/providers/electron.service.ts new file mode 100644 index 00000000..dfe422e8 --- /dev/null +++ b/web/src/app/providers/electron.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@angular/core'; + +// If you import a module but never use any of the imported values other than as TypeScript types, +// the resulting javascript file will look as if you never imported the module at all. +import { ipcRenderer } from 'electron'; +import * as childProcess from 'child_process'; + +@Injectable() +export class ElectronService { + + ipcRenderer: typeof ipcRenderer; + childProcess: typeof childProcess; + + constructor() { + // Conditional imports + if (this.isElectron()) { + this.ipcRenderer = window.require('electron').ipcRenderer; + this.childProcess = window.require('child_process'); + } + } + + isElectron = () => { + return window && window.process && window.process.type; + } + +} diff --git a/web/src/assets/.gitkeep b/web/src/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/web/src/assets/background.jpg b/web/src/assets/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6058e77a88b447004ee84f439a8b438192d69adc GIT binary patch literal 232337 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 K@qyis(SHF}F65B_ literal 0 HcmV?d00001 diff --git a/web/src/environments/index.prod.ts b/web/src/environments/index.prod.ts new file mode 100644 index 00000000..2cca3f9a --- /dev/null +++ b/web/src/environments/index.prod.ts @@ -0,0 +1,5 @@ +// This file contains production variables. (When you work in PROD MODE) +// This file is use by webpack. Please don't rename it and don't move it to another directory. +export const environment = { + production: true +}; diff --git a/web/src/environments/index.ts b/web/src/environments/index.ts new file mode 100644 index 00000000..7ab443da --- /dev/null +++ b/web/src/environments/index.ts @@ -0,0 +1,5 @@ +// This file contains development variables. (When you work in DEV MODE) +// This file is use by webpack. Please don't rename it and don't move it to another directory. +export const environment = { + production: false +}; diff --git a/web/src/favicon.ico b/web/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- + + + + AngularElectron + + + + + + + Loading... + + diff --git a/web/src/main.ts b/web/src/main.ts new file mode 100644 index 00000000..29cfdb20 --- /dev/null +++ b/web/src/main.ts @@ -0,0 +1,11 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from 'environments'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/web/src/polyfills.ts b/web/src/polyfills.ts new file mode 100644 index 00000000..6114d69a --- /dev/null +++ b/web/src/polyfills.ts @@ -0,0 +1,67 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following to support `@angular/animation`. */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + +/** Evergreen browsers require these. **/ +import 'core-js/es6/reflect'; +import 'core-js/es7/reflect'; + + +/** ALL Firefox browsers require the following to support `@angular/animation`. **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + + +/*************************************************************************************************** + * Zone JS is required by Angular itself. + */ +import 'zone.js/dist/zone-mix'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. diff --git a/web/src/styles.scss b/web/src/styles.scss new file mode 100644 index 00000000..5472c80a --- /dev/null +++ b/web/src/styles.scss @@ -0,0 +1,7 @@ +/* You can add global styles to this file, and also import other style files */ +html, body { + margin: 0; + padding: 0; + + height: 100%; +} diff --git a/web/src/test.ts b/web/src/test.ts new file mode 100644 index 00000000..cd612eeb --- /dev/null +++ b/web/src/test.ts @@ -0,0 +1,32 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/long-stack-trace-zone'; +import 'zone.js/dist/proxy.js'; +import 'zone.js/dist/sync-test'; +import 'zone.js/dist/jasmine-patch'; +import 'zone.js/dist/async-test'; +import 'zone.js/dist/fake-async-test'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. +declare const __karma__: any; +declare const require: any; + +// Prevent Karma from running prematurely. +__karma__.loaded = function () {}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); +// Finally, start Karma to run the tests. +__karma__.start(); diff --git a/web/src/tsconfig.app.json b/web/src/tsconfig.app.json new file mode 100644 index 00000000..d826715b --- /dev/null +++ b/web/src/tsconfig.app.json @@ -0,0 +1,16 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts", + "dist", + "app-builds", + "node_modules" + ] +} diff --git a/web/src/tsconfig.spec.json b/web/src/tsconfig.spec.json new file mode 100644 index 00000000..1860d4cb --- /dev/null +++ b/web/src/tsconfig.spec.json @@ -0,0 +1,25 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "target": "es5", + "baseUrl": "", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ], + "exclude": [ + "dist", + "app-builds", + "node_modules" + ] +} diff --git a/web/src/typings.d.ts b/web/src/typings.d.ts new file mode 100644 index 00000000..78708ff3 --- /dev/null +++ b/web/src/typings.d.ts @@ -0,0 +1,11 @@ +/* SystemJS module definition */ +declare var nodeModule: NodeModule; +interface NodeModule { + id: string; +} + +declare var window: Window; +interface Window { + process: any; + require: any; +} diff --git a/web/tsconfig.json b/web/tsconfig.json new file mode 100644 index 00000000..cfec3fdb --- /dev/null +++ b/web/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "baseUrl": "src", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowJs": true, + "target": "es5", + "paths": { + "environments": [ + "./environments" + ] + }, + "types": [ + "node", + "jasmine" + ], + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2016", + "dom" + ] + } +} diff --git a/web/tslint.json b/web/tslint.json new file mode 100644 index 00000000..9113f136 --- /dev/null +++ b/web/tslint.json @@ -0,0 +1,116 @@ +{ + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "eofline": true, + "forin": true, + "import-blacklist": [true, "rxjs"], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + "static-before-instance", + "variables-before-functions" + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-variable": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [true, "ignore-params"], + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "typeof-compare": true, + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + + "directive-selector": [true, "attribute", "app", "camelCase"], + "component-selector": [true, "element", "app", "kebab-case"], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true, + "no-access-missing-member": true, + "templates-use-public": true, + "invoke-injectable": true + } +} diff --git a/web/webpack.config.js b/web/webpack.config.js new file mode 100644 index 00000000..91bb465e --- /dev/null +++ b/web/webpack.config.js @@ -0,0 +1,386 @@ +const path = require('path'); +const webpack = require('webpack'); +const ProgressPlugin = require('webpack/lib/ProgressPlugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const autoprefixer = require('autoprefixer'); +const postcssUrl = require('postcss-url'); + +const { NoEmitOnErrorsPlugin, LoaderOptionsPlugin, DefinePlugin, HashedModuleIdsPlugin } = require('webpack'); +const { GlobCopyWebpackPlugin, BaseHrefWebpackPlugin } = require('@angular/cli/plugins/webpack'); +const { CommonsChunkPlugin, UglifyJsPlugin } = require('webpack').optimize; +const { AotPlugin } = require('@ngtools/webpack'); + +const nodeModules = path.join(process.cwd(), 'node_modules'); +const entryPoints = ["inline", "polyfills", "sw-register", "styles", "vendor", "main"]; +const baseHref = ""; +const deployUrl = ""; + +const isProd = (process.env.NODE_ENV === 'production'); + +function getPlugins() { + var plugins = []; + + // Always expose NODE_ENV to webpack, you can now use `process.env.NODE_ENV` + // inside your code for any environment checks; UglifyJS will automatically + // drop any unreachable code. + plugins.push(new DefinePlugin({ + "process.env.NODE_ENV": "\"production\"" + })); + + plugins.push(new NoEmitOnErrorsPlugin()); + + plugins.push(new GlobCopyWebpackPlugin({ + "patterns": [ + "assets", + "favicon.ico" + ], + "globOptions": { + "cwd": process.cwd() + "/src", + "dot": true, + "ignore": "**/.gitkeep" + } + })); + + plugins.push(new ProgressPlugin()); + + plugins.push(new HtmlWebpackPlugin({ + "template": "./src/index.html", + "filename": "./index.html", + "hash": false, + "inject": true, + "compile": true, + "favicon": false, + "minify": false, + "cache": true, + "showErrors": true, + "chunks": "all", + "excludeChunks": [], + "title": "Webpack App", + "xhtml": true, + "chunksSortMode": function sort(left, right) { + let leftIndex = entryPoints.indexOf(left.names[0]); + let rightindex = entryPoints.indexOf(right.names[0]); + if (leftIndex > rightindex) { + return 1; + } + else if (leftIndex < rightindex) { + return -1; + } + else { + return 0; + } + } + })); + + plugins.push(new BaseHrefWebpackPlugin({})); + + plugins.push(new CommonsChunkPlugin({ + "name": "inline", + "minChunks": null + })); + + plugins.push(new CommonsChunkPlugin({ + "name": "vendor", + "minChunks": (module) => module.resource && module.resource.startsWith(nodeModules), + "chunks": [ + "main" + ] + })); + + plugins.push(new ExtractTextPlugin({ + "filename": "[name].bundle.css", + "disable": true + })); + + plugins.push(new LoaderOptionsPlugin({ + "sourceMap": false, + "options": { + "postcss": [ + autoprefixer(), + postcssUrl({ + "url": (obj) => { + // Only convert root relative URLs, which CSS-Loader won't process into require(). + if (!obj.url.startsWith('/') || obj.url.startsWith('//')) { + return obj.url; + } + if (deployUrl.match(/:\/\//)) { + // If deployUrl contains a scheme, ignore baseHref use deployUrl as is. + return `${deployUrl.replace(/\/$/, '')}${obj.url}`; + } + else if (baseHref.match(/:\/\//)) { + // If baseHref contains a scheme, include it as is. + return baseHref.replace(/\/$/, '') + + `/${deployUrl}/${obj.url}`.replace(/\/\/+/g, '/'); + } + else { + // Join together base-href, deploy-url and the original URL. + // Also dedupe multiple slashes into single ones. + return `/${baseHref}/${deployUrl}/${obj.url}`.replace(/\/\/+/g, '/'); + } + } + }) + ], + "sassLoader": { + "sourceMap": false, + "includePaths": [] + }, + "lessLoader": { + "sourceMap": false + }, + "context": "" + } + })); + + if (isProd) { + plugins.push(new HashedModuleIdsPlugin({ + "hashFunction": "md5", + "hashDigest": "base64", + "hashDigestLength": 4 + })); + + plugins.push(new AotPlugin({ + "mainPath": "main.ts", + "hostReplacementPaths": { + "environments/index.ts": "environments/index.prod.ts" + }, + "exclude": [], + "tsConfigPath": "src/tsconfig.app.json" + })); + + plugins.push(new UglifyJsPlugin({ + "mangle": { + "screw_ie8": true + }, + "compress": { + "screw_ie8": true, + "warnings": false + }, + "sourceMap": false + })); + + } else { + plugins.push(new AotPlugin({ + "mainPath": "main.ts", + "hostReplacementPaths": { + "environments/index.ts": "environments/index.ts" + }, + "exclude": [], + "tsConfigPath": "src/tsconfig.app.json", + "skipCodeGeneration": true + })); + } + + return plugins; +} + +module.exports = { + "devtool": "source-map", + "externals": { + "electron": "require('electron')", + "child_process": "require('child_process')", + "crypto": "require('crypto')", + "events": "require('events')", + "fs": "require('fs')", + "http": "require('http')", + "https": "require('https')", + "assert": "require('assert')", + "dns": "require('dns')", + "net": "require('net')", + "os": "require('os')", + "path": "require('path')", + "querystring": "require('querystring')", + "readline": "require('readline')", + "repl": "require('repl')", + "stream": "require('stream')", + "string_decoder": "require('string_decoder')", + "url": "require('url')", + "util": "require('util')", + "zlib": "require('zlib')" + }, + "resolve": { + "extensions": [ + ".ts", + ".js", + ".scss", + ".json" + ], + "aliasFields": [], + "alias": { // WORKAROUND See. angular-cli/issues/5433 + "environments": isProd ? path.resolve(__dirname, 'src/environments/index.prod.ts') : path.resolve(__dirname, 'src/environments/index.ts') + }, + "modules": [ + "./node_modules" + ] + }, + "resolveLoader": { + "modules": [ + "./node_modules" + ] + }, + "entry": { + "main": [ + "./src/main.ts" + ], + "polyfills": [ + "./src/polyfills.ts" + ], + "styles": [ + "./src/styles.scss" + ] + }, + "output": { + "path": path.join(process.cwd(), "dist"), + "filename": "[name].bundle.js", + "chunkFilename": "[id].chunk.js" + }, + "module": { + "rules": [ + { + "enforce": "pre", + "test": /\.(js|ts)$/, + "loader": "source-map-loader", + "exclude": [ + /\/node_modules\//, + path.join(__dirname, 'node_modules', '@angular/compiler') + ] + }, + { + "test": /\.html$/, + "loader": "html-loader" + }, + { + "test": /\.(eot|svg)$/, + "loader": "file-loader?name=[name].[hash:20].[ext]" + }, + { + "test": /\.(jpg|png|gif|otf|ttf|woff|woff2|cur|ani)$/, + "loader": "url-loader?name=[name].[hash:20].[ext]&limit=10000" + }, + { + "exclude": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.css$/, + "loaders": [ + "exports-loader?module.exports.toString()", + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader" + ] + }, + { + "exclude": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.scss$|\.sass$/, + "loaders": [ + "exports-loader?module.exports.toString()", + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "sass-loader" + ] + }, + { + "exclude": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.less$/, + "loaders": [ + "exports-loader?module.exports.toString()", + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "less-loader" + ] + }, + { + "exclude": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.styl$/, + "loaders": [ + "exports-loader?module.exports.toString()", + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "stylus-loader?{\"sourceMap\":false,\"paths\":[]}" + ] + }, + { + "include": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.css$/, + "loaders": ExtractTextPlugin.extract({ + "use": [ + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader" + ], + "fallback": "style-loader", + "publicPath": "" + }) + }, + { + "include": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.scss$|\.sass$/, + "loaders": ExtractTextPlugin.extract({ + "use": [ + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "sass-loader" + ], + "fallback": "style-loader", + "publicPath": "" + }) + }, + { + "include": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.less$/, + "loaders": ExtractTextPlugin.extract({ + "use": [ + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "less-loader" + ], + "fallback": "style-loader", + "publicPath": "" + }) + }, + { + "include": [ + path.join(process.cwd(), "src/styles.scss") + ], + "test": /\.styl$/, + "loaders": ExtractTextPlugin.extract({ + "use": [ + "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", + "postcss-loader", + "stylus-loader?{\"sourceMap\":false,\"paths\":[]}" + ], + "fallback": "style-loader", + "publicPath": "" + }) + }, + { + "test": /\.ts$/, + "loader": "@ngtools/webpack" + } + ] + }, + "plugins": getPlugins(), + "node": { + fs: "empty", + global: true, + crypto: "empty", + tls: "empty", + net: "empty", + process: true, + module: false, + clearImmediate: false, + setImmediate: false, + __dirname: false, + __filename: false + } +};