You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2018/01/03 13:03:20 UTC

[myfaces-tobago] 02/02: rebuild themes after update

This is an automated email from the ASF dual-hosted git repository.

hnoeth pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit e7b173e2a0586429aeb42f46f035b28523f3e114
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Jan 3 14:00:54 2018 +0100

    rebuild themes after update
---
 .../tobago-theme-charlotteville/rebuild-theme.log  | 1177 +--------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 2513 +++++++++++--------
 .../_version/css/bootstrap.css.map                 |    2 +-
 .../_version/css/bootstrap.min.css                 |    4 +-
 .../_version/css/bootstrap.min.css.map             |    2 +-
 .../tobago-bootstrap/_version/js/bootstrap.js      | 1112 ++++-----
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |    6 +-
 .../tobago-theme-roxborough/rebuild-theme.log      | 1173 +--------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 2527 ++++++++++++--------
 .../_version/css/bootstrap.css.map                 |    2 +-
 .../_version/css/bootstrap.min.css                 |    4 +-
 .../_version/css/bootstrap.min.css.map             |    2 +-
 .../tobago-bootstrap/_version/js/bootstrap.js      | 1112 ++++-----
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |    6 +-
 .../tobago-theme-scarborough/rebuild-theme.log     | 1171 +--------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 2527 ++++++++++++--------
 .../_version/css/bootstrap.css.map                 |    2 +-
 .../_version/css/bootstrap.min.css                 |    4 +-
 .../_version/css/bootstrap.min.css.map             |    2 +-
 .../tobago-bootstrap/_version/js/bootstrap.js      | 1112 ++++-----
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |    6 +-
 .../tobago-theme-speyside/rebuild-theme.log        | 1175 +--------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 2484 +++++++++++--------
 .../_version/css/bootstrap.css.map                 |    2 +-
 .../_version/css/bootstrap.min.css                 |    4 +-
 .../_version/css/bootstrap.min.css.map             |    2 +-
 .../tobago-bootstrap/_version/js/bootstrap.js      | 1112 ++++-----
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |    6 +-
 .../tobago-theme-standard/rebuild-theme.log        | 1192 +--------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 2513 +++++++++++--------
 .../_version/css/bootstrap.css.map                 |    2 +-
 .../_version/css/bootstrap.min.css                 |    4 +-
 .../_version/css/bootstrap.min.css.map             |    2 +-
 .../tobago-bootstrap/_version/js/bootstrap.js      | 1112 ++++-----
 .../tobago-bootstrap/_version/js/bootstrap.min.js  |    6 +-
 35 files changed, 10838 insertions(+), 13244 deletions(-)

diff --git a/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log b/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
index cb12c22..1a71653 100644
--- a/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-charlotteville/rebuild-theme.log
@@ -1,8 +1,8 @@
-Build date: 2017-11-28 19:01:13
+Build date: 2018-01-03 13:33:26
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
-[INFO] Building Tobago Theme Charlotteville 4.0.0-SNAPSHOT
+[INFO] Building Tobago Theme Charlotteville 4.0.1-SNAPSHOT
 [INFO] ------------------------------------------------------------------------
 [INFO] 
 [INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce) @ tobago-theme-charlotteville ---
@@ -10,11 +10,11 @@ Build date: 2017-11-28 19:01:13
 [INFO] --- maven-remote-resources-plugin:1.5:process (default) @ tobago-theme-charlotteville ---
 [INFO] 
 [INFO] --- download-maven-plugin:1.4.0:wget (step #1: download-bootstrap) @ tobago-theme-charlotteville ---
-[INFO] Got from cache: __REPO__/.cache/download-maven-plugin/v4.0.0-beta.2.zip_d5ec29f0dc587145274c81abc6564aed
+[INFO] Got from cache: __REPO__/.cache/download-maven-plugin/v4.0.0-beta.3.zip_1da0a689af3fcbb242f6b305c138783d
 [INFO] 
 [INFO] --- maven-resources-plugin:2.7:copy-resources (step #2: copy-bootstrap) @ tobago-theme-charlotteville ---
 [INFO] Using 'UTF-8' encoding to copy filtered resources.
-[INFO] Copying 425 resources
+[INFO] Copying 420 resources
 [INFO] 
 [INFO] --- maven-resources-plugin:2.7:copy-resources (step #3: copy-custom) @ tobago-theme-charlotteville ---
 [INFO] Using 'UTF-8' encoding to copy filtered resources.
@@ -24,1127 +24,108 @@ Build date: 2017-11-28 19:01:13
 [INFO] Applying patch: append-tobago-theme-to-bootstrap.patch
 [INFO] 
 [INFO] --- maven-dependency-plugin:3.0.2:unpack (step #5: unpack-custom) @ tobago-theme-charlotteville ---
-[INFO] Configured Artifact: org.apache.myfaces.tobago:tobago-core:4.0.0-SNAPSHOT:jar
-[INFO] Unpacking __REPO__/org/apache/myfaces/tobago/tobago-core/4.0.0-SNAPSHOT/tobago-core-4.0.0-SNAPSHOT.jar to __CURRENT__/tobago-theme-charlotteville/target/bootstrap with includes "**/*.scss" and excludes ""
+[INFO] Configured Artifact: org.apache.myfaces.tobago:tobago-core:4.0.1-SNAPSHOT:jar
+[INFO] Unpacking __REPO__/org/apache/myfaces/tobago/tobago-core/4.0.1-SNAPSHOT/tobago-core-4.0.1-SNAPSHOT.jar to __CURRENT__/tobago-theme-charlotteville/target/bootstrap with includes "**/*.scss" and excludes ""
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:install-node-and-npm (step #6: install node and npm) @ tobago-theme-charlotteville ---
-[INFO] Installing node version v7.10.1
-[INFO] Unpacking __REPO__/com/github/eirslett/node/7.10.1/node-7.10.1-darwin-x64.tar.gz into __CURRENT__/tobago-theme-charlotteville/target/frontend/node/tmp
-[INFO] Copying node binary from __CURRENT__/tobago-theme-charlotteville/target/frontend/node/tmp/node-v7.10.1-darwin-x64/bin/node to __CURRENT__/tobago-theme-charlotteville/target/frontend/node/node
+[INFO] Installing node version v8.9.3
+[INFO] Unpacking __REPO__/com/github/eirslett/node/8.9.3/node-8.9.3-darwin-x64.tar.gz into __CURRENT__/tobago-theme-charlotteville/target/frontend/node/tmp
+[INFO] Copying node binary from __CURRENT__/tobago-theme-charlotteville/target/frontend/node/tmp/node-v8.9.3-darwin-x64/bin/node to __CURRENT__/tobago-theme-charlotteville/target/frontend/node/node
 [INFO] Installed node locally.
-[INFO] Installing npm version 4.2.0
-[INFO] Unpacking __REPO__/com/github/eirslett/npm/4.2.0/npm-4.2.0.tar.gz into __CURRENT__/tobago-theme-charlotteville/target/frontend/node/node_modules
+[INFO] Installing npm version 5.5.1
+[INFO] Unpacking __REPO__/com/github/eirslett/npm/5.5.1/npm-5.5.1.tar.gz into __CURRENT__/tobago-theme-charlotteville/target/frontend/node/node_modules
 [INFO] Installed npm locally.
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #7: npm install) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm install' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[WARNING] npm WARN deprecated qunitjs@2.4.1: 2.4.1 is the last version where QUnit will be published as 'qunitjs'. To receive future updates, you will need to change the package name to 'qunit'.
-[WARNING] npm WARN prefer global node-gyp@3.6.2 should be installed with -g
 [INFO] 
-[INFO] > fsevents@1.1.3 install __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/fsevents
-[INFO] > node install
+[INFO] > uws@0.14.5 install __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/uws
+[INFO] > node-gyp rebuild > build_log.txt 2>&1 || exit 0
 [INFO] 
-[INFO] [fsevents] Success: "__CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/fsevents/lib/binding/Release/node-v51-darwin-x64/fse.node" is installed via remote
 [INFO] 
 [INFO] > node-sass@4.7.2 install __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/node-sass
 [INFO] > node scripts/install.js
 [INFO] 
-[INFO] Cached binary found at __HOME__/.npm/node-sass/4.7.2/darwin-x64-51_binding.node
-[INFO] 
-[INFO] > phantomjs-prebuilt@2.1.16 install __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt
-[INFO] > node install.js
-[INFO] 
-[INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
-[INFO] Verified checksum of previously downloaded file
-[INFO] Extracting zip contents
-[INFO] Removing __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1511892119147/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Writing location.js file
-[INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
+[INFO] Cached binary found at __HOME__/.npm/node-sass/4.7.2/darwin-x64-57_binding.node
 [INFO] 
 [INFO] > node-sass@4.7.2 postinstall __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/node-sass
 [INFO] > node scripts/build.js
 [INFO] 
-[INFO] Binary found at __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/node-sass/vendor/darwin-x64-51/binding.node
+[INFO] Binary found at __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/node-sass/vendor/darwin-x64-57/binding.node
 [INFO] Testing binary
 [INFO] Binary is fine
-[INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.6 
-[INFO] │ ├─┬ browserslist@2.9.1 
-[INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000772 
-[INFO] │ ├── normalize-range@0.1.2 
-[INFO] │ ├── num2fraction@1.2.2 
-[INFO] │ ├─┬ postcss@6.0.14 
-[INFO] │ │ └─┬ supports-color@4.5.0 
-[INFO] │ │   └── has-flag@2.0.0 
-[INFO] │ └── postcss-value-parser@3.3.0 
-[INFO] ├─┬ babel-cli@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-core@7.0.0-beta.2 
-[INFO] │ │ ├── babel-code-frame@7.0.0-beta.2 
-[INFO] │ │ ├─┬ babel-generator@7.0.0-beta.2 
-[INFO] │ │ │ ├── jsesc@2.5.1 
-[INFO] │ │ │ ├── source-map@0.5.7 
-[INFO] │ │ │ └── trim-right@1.0.1 
-[INFO] │ │ ├── babel-helpers@7.0.0-beta.2 
-[INFO] │ │ ├── babel-messages@7.0.0-beta.2 
-[INFO] │ │ ├── babel-template@7.0.0-beta.2 
-[INFO] │ │ ├── babel-traverse@7.0.0-beta.2 
-[INFO] │ │ ├── babel-types@7.0.0-beta.2 
-[INFO] │ │ ├── babylon@7.0.0-beta.25 
-[INFO] │ │ ├── json5@0.5.1 
-[INFO] │ │ └── source-map@0.5.7 
-[INFO] │ ├─┬ babel-polyfill@7.0.0-beta.2 
-[INFO] │ │ ├── core-js@2.5.1 
-[INFO] │ │ └── regenerator-runtime@0.11.0 
-[INFO] │ ├─┬ babel-register@7.0.0-beta.2 
-[INFO] │ │ ├─┬ find-cache-dir@1.0.0 
-[INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.1.0 
-[INFO] │ │ │ └── pkg-dir@2.0.0 
-[INFO] │ │ ├── home-or-tmp@3.0.0 
-[INFO] │ │ ├─┬ pirates@3.0.2 
-[INFO] │ │ │ └── node-modules-regexp@1.0.0 
-[INFO] │ │ └─┬ source-map-support@0.4.18 
-[INFO] │ │   └── source-map@0.5.7 
-[INFO] │ ├─┬ chokidar@1.7.0 
-[INFO] │ │ ├── anymatch@1.3.2 
-[INFO] │ │ ├── async-each@1.0.1 
-[INFO] │ │ ├─┬ fsevents@1.1.3 
-[INFO] │ │ │ └─┬ node-pre-gyp@0.6.39 
-[INFO] │ │ │   ├── detect-libc@1.0.2 
-[INFO] │ │ │   ├─┬ hawk@3.1.3 
-[INFO] │ │ │   │ ├── boom@2.10.1 
-[INFO] │ │ │   │ ├── cryptiles@2.0.5 
-[INFO] │ │ │   │ ├── hoek@2.16.3 
-[INFO] │ │ │   │ └── sntp@1.0.9 
-[INFO] │ │ │   ├─┬ mkdirp@0.5.1 
-[INFO] │ │ │   │ └── minimist@0.0.8 
-[INFO] │ │ │   ├─┬ nopt@4.0.1 
-[INFO] │ │ │   │ ├── abbrev@1.1.0 
-[INFO] │ │ │   │ └─┬ osenv@0.1.4 
-[INFO] │ │ │   │   ├── os-homedir@1.0.2 
-[INFO] │ │ │   │   └── os-tmpdir@1.0.2 
-[INFO] │ │ │   ├─┬ npmlog@4.1.0 
-[INFO] │ │ │   │ ├─┬ are-we-there-yet@1.1.4 
-[INFO] │ │ │   │ │ └── delegates@1.0.0 
-[INFO] │ │ │   │ ├── console-control-strings@1.1.0 
-[INFO] │ │ │   │ ├─┬ gauge@2.7.4 
-[INFO] │ │ │   │ │ ├── aproba@1.1.1 
-[INFO] │ │ │   │ │ ├── has-unicode@2.0.1 
-[INFO] │ │ │   │ │ ├── object-assign@4.1.1 
-[INFO] │ │ │   │ │ ├── signal-exit@3.0.2 
-[INFO] │ │ │   │ │ ├─┬ string-width@1.0.2 
-[INFO] │ │ │   │ │ │ ├── code-point-at@1.1.0 
-[INFO] │ │ │   │ │ │ └─┬ is-fullwidth-code-point@1.0.0 
-[INFO] │ │ │   │ │ │   └── number-is-nan@1.0.1 
-[INFO] │ │ │   │ │ ├─┬ strip-ansi@3.0.1 
-[INFO] │ │ │   │ │ │ └── ansi-regex@2.1.1 
-[INFO] │ │ │   │ │ └── wide-align@1.1.2 
-[INFO] │ │ │   │ └── set-blocking@2.0.0 
-[INFO] │ │ │   ├─┬ rc@1.2.1 
-[INFO] │ │ │   │ ├── deep-extend@0.4.2 
-[INFO] │ │ │   │ ├── ini@1.3.4 
-[INFO] │ │ │   │ ├── minimist@1.2.0 
-[INFO] │ │ │   │ └── strip-json-comments@2.0.1 
-[INFO] │ │ │   ├─┬ request@2.81.0 
-[INFO] │ │ │   │ ├── aws-sign2@0.6.0 
-[INFO] │ │ │   │ ├── aws4@1.6.0 
-[INFO] │ │ │   │ ├── caseless@0.12.0 
-[INFO] │ │ │   │ ├─┬ combined-stream@1.0.5 
-[INFO] │ │ │   │ │ └── delayed-stream@1.0.0 
-[INFO] │ │ │   │ ├── extend@3.0.1 
-[INFO] │ │ │   │ ├── forever-agent@0.6.1 
-[INFO] │ │ │   │ ├─┬ form-data@2.1.4 
-[INFO] │ │ │   │ │ └── asynckit@0.4.0 
-[WARNING] npm WARN bootstrap@4.0.0-beta.2 requires a peer of jquery@1.9.1 - 3 but none was installed.
-[WARNING] npm WARN postcss-html@0.11.0 requires a peer of postcss-sass@>=0.2.0 but none was installed.
-[INFO] │ │ │   │ ├─┬ har-validator@4.2.1 
-[INFO] │ │ │   │ │ ├─┬ ajv@4.11.8 
-[INFO] │ │ │   │ │ │ ├── co@4.6.0 
-[INFO] │ │ │   │ │ │ └─┬ json-stable-stringify@1.0.1 
-[INFO] │ │ │   │ │ │   └── jsonify@0.0.0 
-[INFO] │ │ │   │ │ └── har-schema@1.0.5 
-[INFO] │ │ │   │ ├─┬ http-signature@1.1.1 
-[INFO] │ │ │   │ │ ├── assert-plus@0.2.0 
-[INFO] │ │ │   │ │ ├─┬ jsprim@1.4.0 
-[INFO] │ │ │   │ │ │ ├── assert-plus@1.0.0 
-[INFO] │ │ │   │ │ │ ├── extsprintf@1.0.2 
-[INFO] │ │ │   │ │ │ ├── json-schema@0.2.3 
-[INFO] │ │ │   │ │ │ └── verror@1.3.6 
-[INFO] │ │ │   │ │ └─┬ sshpk@1.13.0 
-[INFO] │ │ │   │ │   ├── asn1@0.2.3 
-[INFO] │ │ │   │ │   ├── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── bcrypt-pbkdf@1.0.1 
-[INFO] │ │ │   │ │   ├─┬ dashdash@1.14.1 
-[INFO] │ │ │   │ │   │ └── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── ecc-jsbn@0.1.1 
-[INFO] │ │ │   │ │   ├─┬ getpass@0.1.7 
-[INFO] │ │ │   │ │   │ └── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── jodid25519@1.0.2 
-[INFO] │ │ │   │ │   ├── jsbn@0.1.1 
-[INFO] │ │ │   │ │   └── tweetnacl@0.14.5 
-[INFO] │ │ │   │ ├── is-typedarray@1.0.0 
-[INFO] │ │ │   │ ├── isstream@0.1.2 
-[INFO] │ │ │   │ ├── json-stringify-safe@5.0.1 
-[INFO] │ │ │   │ ├─┬ mime-types@2.1.15 
-[INFO] │ │ │   │ │ └── mime-db@1.27.0 
-[INFO] │ │ │   │ ├── oauth-sign@0.8.2 
-[INFO] │ │ │   │ ├── performance-now@0.2.0 
-[INFO] │ │ │   │ ├── qs@6.4.0 
-[INFO] │ │ │   │ ├── safe-buffer@5.0.1 
-[INFO] │ │ │   │ ├── stringstream@0.0.5 
-[INFO] │ │ │   │ ├─┬ tough-cookie@2.3.2 
-[INFO] │ │ │   │ │ └── punycode@1.4.1 
-[INFO] │ │ │   │ ├── tunnel-agent@0.6.0 
-[INFO] │ │ │   │ └── uuid@3.0.1 
-[INFO] │ │ │   ├─┬ rimraf@2.6.1 
-[INFO] │ │ │   │ └─┬ glob@7.1.2 
-[INFO] │ │ │   │   ├── fs.realpath@1.0.0 
-[INFO] │ │ │   │   ├── inflight@1.0.6 
-[INFO] │ │ │   │   ├─┬ minimatch@3.0.4 
-[INFO] │ │ │   │   │ └─┬ brace-expansion@1.1.7 
-[INFO] │ │ │   │   │   ├── balanced-match@0.4.2 
-[INFO] │ │ │   │   │   └── concat-map@0.0.1 
-[INFO] │ │ │   │   └── path-is-absolute@1.0.1 
-[INFO] │ │ │   ├── semver@5.3.0 
-[INFO] │ │ │   ├─┬ tar@2.2.1 
-[INFO] │ │ │   │ ├── block-stream@0.0.9 
-[INFO] │ │ │   │ ├─┬ fstream@1.0.11 
-[INFO] │ │ │   │ │ └── graceful-fs@4.1.11 
-[INFO] │ │ │   │ └── inherits@2.0.3 
-[INFO] │ │ │   └─┬ tar-pack@3.4.0 
-[INFO] │ │ │     ├─┬ debug@2.6.8 
-[INFO] │ │ │     │ └── ms@2.0.0 
-[INFO] │ │ │     ├── fstream-ignore@1.0.5 
-[INFO] │ │ │     ├─┬ once@1.4.0 
-[INFO] │ │ │     │ └── wrappy@1.0.2 
-[INFO] │ │ │     ├─┬ readable-stream@2.2.9 
-[INFO] │ │ │     │ ├── buffer-shims@1.0.0 
-[INFO] │ │ │     │ ├── core-util-is@1.0.2 
-[INFO] │ │ │     │ ├── isarray@1.0.0 
-[INFO] │ │ │     │ ├── process-nextick-args@1.0.7 
-[INFO] │ │ │     │ ├── string_decoder@1.0.1 
-[INFO] │ │ │     │ └── util-deprecate@1.0.2 
-[INFO] │ │ │     └── uid-number@0.0.6 
-[INFO] │ │ ├── glob-parent@2.0.0 
-[INFO] │ │ ├── inherits@2.0.3 
-[INFO] │ │ ├─┬ is-binary-path@1.0.1 
-[INFO] │ │ │ └── binary-extensions@1.11.0 
-[INFO] │ │ ├── is-glob@2.0.1 
-[INFO] │ │ ├── path-is-absolute@1.0.1 
-[INFO] │ │ └─┬ readdirp@2.1.0 
-[INFO] │ │   └── set-immediate-shim@1.0.1 
-[INFO] │ ├── commander@2.12.2 
-[INFO] │ ├── convert-source-map@1.5.1 
-[INFO] │ ├── fs-readdir-recursive@1.1.0 
-[INFO] │ ├─┬ glob@7.1.2 
-[INFO] │ │ ├── fs.realpath@1.0.0 
-[INFO] │ │ ├─┬ inflight@1.0.6 
-[INFO] │ │ │ └── wrappy@1.0.2 
-[INFO] │ │ └── once@1.4.0 
-[INFO] │ ├── lodash@4.17.4 
-[INFO] │ ├─┬ output-file-sync@2.0.0 
-[INFO] │ │ ├── graceful-fs@4.1.11 
-[INFO] │ │ └── is-plain-obj@1.1.0 
-[INFO] │ ├── slash@1.0.0 
-[INFO] │ └── source-map@0.5.7 
-[INFO] ├─┬ babel-eslint@8.0.2 
-[INFO] │ ├─┬ @babel/code-frame@7.0.0-beta.32 
-[INFO] │ │ └── js-tokens@3.0.2 
-[INFO] │ ├─┬ @babel/traverse@7.0.0-beta.32 
-[INFO] │ │ ├─┬ @babel/helper-function-name@7.0.0-beta.32 
-[INFO] │ │ │ ├── @babel/helper-get-function-arity@7.0.0-beta.32 
-[INFO] │ │ │ └─┬ @babel/template@7.0.0-beta.32 
-[INFO] │ │ │   └── babylon@7.0.0-beta.32 
-[INFO] │ │ ├── babylon@7.0.0-beta.32 
-[INFO] │ │ └── globals@10.4.0 
-[INFO] │ ├─┬ @babel/types@7.0.0-beta.32 
-[INFO] │ │ └── to-fast-properties@2.0.0 
-[INFO] │ └── babylon@7.0.0-beta.32 
-[INFO] ├── babel-plugin-external-helpers@7.0.0-beta.2 
-[INFO] ├── babel-plugin-transform-es2015-modules-strip@0.1.1 
-[INFO] ├─┬ babel-preset-env@2.0.0-beta.2 
-[INFO] │ ├── babel-plugin-check-es2015-constants@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-syntax-async-generators@7.0.0-beta.0 
-[INFO] │ ├── babel-plugin-syntax-object-rest-spread@7.0.0-beta.0 
-[INFO] │ ├── babel-plugin-syntax-optional-catch-binding@7.0.0-beta.0 
-[INFO] │ ├── babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0 
-[INFO] │ ├─┬ babel-plugin-transform-async-generator-functions@7.0.0-beta.2 
-[INFO] │ │ ├─┬ babel-helper-remap-async-to-generator@7.0.0-beta.2 
-[INFO] │ │ │ └── babel-helper-wrap-function@7.0.0-beta.2 
-[INFO] │ │ └── babel-plugin-syntax-async-generators@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-async-to-generator@7.0.0-beta.2 
-[INFO] │ │ └── babel-plugin-syntax-async-functions@7.0.0-beta.0 
-[INFO] │ ├── babel-plugin-transform-es2015-arrow-functions@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-block-scoped-functions@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-block-scoping@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-classes@7.0.0-beta.2 
-[INFO] │ │ ├── babel-helper-annotate-as-pure@7.0.0-beta.2 
-[INFO] │ │ ├── babel-helper-define-map@7.0.0-beta.2 
-[INFO] │ │ ├── babel-helper-function-name@7.0.0-beta.2 
-[INFO] │ │ ├── babel-helper-optimise-call-expression@7.0.0-beta.2 
-[INFO] │ │ └── babel-helper-replace-supers@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-computed-properties@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-destructuring@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-duplicate-keys@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-for-of@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-function-name@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-literals@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-modules-amd@7.0.0-beta.2 
-[INFO] │ │ └── babel-helper-module-transforms@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-modules-commonjs@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-modules-systemjs@7.0.0-beta.2 
-[INFO] │ │ └── babel-helper-hoist-variables@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-modules-umd@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-object-super@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-parameters@7.0.0-beta.2 
-[INFO] │ │ ├── babel-helper-call-delegate@7.0.0-beta.2 
-[INFO] │ │ └── babel-helper-get-function-arity@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-shorthand-properties@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-spread@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-sticky-regex@7.0.0-beta.2 
-[INFO] │ │ └── babel-helper-regex@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-template-literals@7.0.0-beta.2 
-[INFO] │ ├── babel-plugin-transform-es2015-typeof-symbol@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-es2015-unicode-regex@7.0.0-beta.2 
-[INFO] │ │ └─┬ regexpu-core@4.1.3 
-[INFO] │ │   ├── regenerate@1.3.3 
-[INFO] │ │   ├── regenerate-unicode-properties@5.1.3 
-[INFO] │ │   ├── regjsgen@0.3.0 
-[INFO] │ │   ├─┬ regjsparser@0.2.1 
-[INFO] │ │   │ └── jsesc@0.5.0 
-[INFO] │ │   ├─┬ unicode-match-property-ecmascript@1.0.3 
-[INFO] │ │   │ ├── unicode-canonical-property-names-ecmascript@1.0.3 
-[INFO] │ │   │ └── unicode-property-aliases-ecmascript@1.0.3 
-[INFO] │ │   └── unicode-match-property-value-ecmascript@1.0.1 
-[INFO] │ ├─┬ babel-plugin-transform-exponentiation-operator@7.0.0-beta.2 
-[INFO] │ │ ├─┬ babel-helper-builder-binary-assignment-operator-visitor@7.0.0-beta.2 
-[INFO] │ │ │ └── babel-helper-explode-assignable-expression@7.0.0-beta.2 
-[INFO] │ │ └── babel-plugin-syntax-exponentiation-operator@7.0.0-beta.0 
-[INFO] │ ├── babel-plugin-transform-new-target@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-object-rest-spread@7.0.0-beta.2 
-[INFO] │ │ └── babel-plugin-syntax-object-rest-spread@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-optional-catch-binding@7.0.0-beta.2 
-[INFO] │ │ └── babel-plugin-syntax-optional-catch-binding@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-plugin-transform-regenerator@7.0.0-beta.2 
-[INFO] │ │ └─┬ regenerator-transform@0.10.0 
-[INFO] │ │   ├─┬ babel-types@6.26.0 
-[INFO] │ │   │ └── to-fast-properties@1.0.3 
-[INFO] │ │   └── private@0.1.8 
-[INFO] │ ├─┬ babel-plugin-transform-unicode-property-regex@2.0.5 
-[INFO] │ │ └─┬ babel-helper-regex@6.26.0 
-[INFO] │ │   └─┬ babel-types@6.26.0 
-[INFO] │ │     └── to-fast-properties@1.0.3 
-[INFO] │ ├─┬ invariant@2.2.2 
-[INFO] │ │ └── loose-envify@1.3.1 
-[INFO] │ └── semver@5.4.1 
-[INFO] ├─┬ bundlesize@0.15.3 
-[INFO] │ ├─┬ axios@0.16.2 
-[INFO] │ │ ├── follow-redirects@1.2.6 
-[INFO] │ │ └── is-buffer@1.1.6 
-[INFO] │ ├── bytes@3.0.0 
-[INFO] │ ├── ci-env@1.5.2 
-[INFO] │ ├─┬ github-build@1.2.0 
-[INFO] │ │ └─┬ axios@0.15.3 
-[INFO] │ │   └─┬ follow-redirects@1.0.0 
-[INFO] │ │     └── debug@2.6.9 
-[INFO] │ ├─┬ gzip-size@4.1.0 
-[INFO] │ │ └── duplexer@0.1.1 
-[INFO] │ ├─┬ opencollective@1.0.3 
-[INFO] │ │ ├─┬ babel-polyfill@6.23.0 
-[INFO] │ │ │ └── regenerator-runtime@0.10.5 
-[INFO] │ │ ├─┬ chalk@1.1.3 
-[INFO] │ │ │ ├── ansi-styles@2.2.1 
-[INFO] │ │ │ └── supports-color@2.0.0 
-[INFO] │ │ ├── minimist@1.2.0 
-[INFO] │ │ ├─┬ node-fetch@1.6.3 
-[INFO] │ │ │ └── encoding@0.1.12 
-[INFO] │ │ └── opn@4.0.2 
-[INFO] │ ├─┬ prettycli@1.4.3 
-[INFO] │ │ └── chalk@2.1.0 
-[INFO] │ └─┬ read-pkg-up@2.0.0 
-[INFO] │   ├─┬ find-up@2.1.0 
-[INFO] │   │ └─┬ locate-path@2.0.0 
-[INFO] │   │   ├─┬ p-locate@2.0.0 
-[INFO] │   │   │ └── p-limit@1.1.0 
-[INFO] │   │   └── path-exists@3.0.0 
-[INFO] │   └─┬ read-pkg@2.0.0 
-[INFO] │     ├─┬ load-json-file@2.0.0 
-[INFO] │     │ └── pify@2.3.0 
-[INFO] │     └─┬ path-type@2.0.0 
-[INFO] │       └── pify@2.3.0 
-[INFO] ├─┬ clean-css-cli@4.1.10 
-[INFO] │ └─┬ clean-css@4.1.9 
-[INFO] │   └── source-map@0.5.7 
-[INFO] ├─┬ cross-env@5.1.1 
-[INFO] │ ├─┬ cross-spawn@5.1.0 
-[INFO] │ │ ├─┬ lru-cache@4.1.1 
-[INFO] │ │ │ ├── pseudomap@1.0.2 
-[INFO] │ │ │ └── yallist@2.1.2 
-[INFO] │ │ └─┬ shebang-command@1.2.0 
-[INFO] │ │   └── shebang-regex@1.0.0 
-[INFO] │ └── is-windows@1.0.1 
-[INFO] ├─┬ eslint@4.12.0 
-[INFO] │ ├─┬ ajv@5.5.0 
-[INFO] │ │ ├── co@4.6.0 
-[INFO] │ │ ├── fast-deep-equal@1.0.0 
-[INFO] │ │ ├── fast-json-stable-stringify@2.0.0 
-[INFO] │ │ └── json-schema-traverse@0.3.1 
-[INFO] │ ├─┬ babel-code-frame@6.26.0 
-[INFO] │ │ └─┬ chalk@1.1.3 
-[INFO] │ │   ├── ansi-styles@2.2.1 
-[INFO] │ │   ├── strip-ansi@3.0.1 
-[INFO] │ │   └── supports-color@2.0.0 
-[INFO] │ ├─┬ chalk@2.3.0 
-[INFO] │ │ └── escape-string-regexp@1.0.5 
-[INFO] │ ├─┬ concat-stream@1.6.0 
-[INFO] │ │ ├─┬ readable-stream@2.3.3 
-[INFO] │ │ │ ├── core-util-is@1.0.2 
-[INFO] │ │ │ ├── isarray@1.0.0 
-[INFO] │ │ │ ├── process-nextick-args@1.0.7 
-[INFO] │ │ │ ├── string_decoder@1.0.3 
-[INFO] │ │ │ └── util-deprecate@1.0.2 
-[INFO] │ │ └── typedarray@0.0.6 
-[INFO] │ ├─┬ debug@3.1.0 
-[INFO] │ │ └── ms@2.0.0 
-[INFO] │ ├── doctrine@2.0.2 
-[INFO] │ ├─┬ eslint-scope@3.7.1 
-[INFO] │ │ └── esrecurse@4.2.0 
-[INFO] │ ├─┬ espree@3.5.2 
-[INFO] │ │ ├── acorn@5.2.1 
-[INFO] │ │ └─┬ acorn-jsx@3.0.1 
-[INFO] │ │   └── acorn@3.3.0 
-[INFO] │ ├── esquery@1.0.0 
-[INFO] │ ├── estraverse@4.2.0 
-[INFO] │ ├── esutils@2.0.2 
-[INFO] │ ├─┬ file-entry-cache@2.0.0 
-[INFO] │ │ ├─┬ flat-cache@1.3.0 
-[INFO] │ │ │ ├── circular-json@0.3.3 
-[INFO] │ │ │ ├─┬ del@2.2.2 
-[INFO] │ │ │ │ ├─┬ globby@5.0.0 
-[INFO] │ │ │ │ │ └── pify@2.3.0 
-[INFO] │ │ │ │ ├── is-path-cwd@1.0.0 
-[INFO] │ │ │ │ ├── is-path-in-cwd@1.0.0 
-[INFO] │ │ │ │ └── pify@2.3.0 
-[INFO] │ │ │ └── write@0.2.1 
-[INFO] │ │ └── object-assign@4.1.1 
-[INFO] │ ├── functional-red-black-tree@1.0.1 
-[INFO] │ ├── globals@11.0.1 
-[INFO] │ ├── ignore@3.3.7 
-[INFO] │ ├── imurmurhash@0.1.4 
-[INFO] │ ├─┬ inquirer@3.0.6 
-[INFO] │ │ ├── ansi-escapes@1.4.0 
-[INFO] │ │ ├─┬ chalk@1.1.3 
-[INFO] │ │ │ ├── ansi-styles@2.2.1 
-[INFO] │ │ │ └── supports-color@2.0.0 
-[INFO] │ │ ├─┬ cli-cursor@2.1.0 
-[INFO] │ │ │ └─┬ restore-cursor@2.0.0 
-[INFO] │ │ │   └── onetime@2.0.1 
-[INFO] │ │ ├── cli-width@2.2.0 
-[INFO] │ │ ├─┬ external-editor@2.1.0 
-[INFO] │ │ │ ├── chardet@0.4.2 
-[INFO] │ │ │ ├── iconv-lite@0.4.19 
-[INFO] │ │ │ └── tmp@0.0.33 
-[INFO] │ │ ├── figures@2.0.0 
-[INFO] │ │ ├── mute-stream@0.0.7 
-[INFO] │ │ ├─┬ run-async@2.3.0 
-[INFO] │ │ │ └── is-promise@2.1.0 
-[INFO] │ │ ├── rx@4.1.0 
-[INFO] │ │ ├─┬ strip-ansi@3.0.1 
-[INFO] │ │ │ └── ansi-regex@2.1.1 
-[INFO] │ │ └── through@2.3.8 
-[INFO] │ ├─┬ is-resolvable@1.0.0 
-[INFO] │ │ └── tryit@1.0.3 
-[INFO] │ ├─┬ js-yaml@3.10.0 
-[INFO] │ │ ├─┬ argparse@1.0.9 
-[INFO] │ │ │ └── sprintf-js@1.0.3 
-[INFO] │ │ └── esprima@4.0.0 
-[INFO] │ ├── json-stable-stringify-without-jsonify@1.0.1 
-[INFO] │ ├─┬ levn@0.3.0 
-[INFO] │ │ ├── prelude-ls@1.1.2 
-[INFO] │ │ └── type-check@0.3.2 
-[INFO] │ ├─┬ minimatch@3.0.4 
-[INFO] │ │ └─┬ brace-expansion@1.1.8 
-[INFO] │ │   └── concat-map@0.0.1 
-[INFO] │ ├─┬ mkdirp@0.5.1 
-[INFO] │ │ └── minimist@0.0.8 
-[INFO] │ ├── natural-compare@1.4.0 
-[INFO] │ ├─┬ optionator@0.8.2 
-[INFO] │ │ ├── deep-is@0.1.3 
-[INFO] │ │ ├── fast-levenshtein@2.0.6 
-[INFO] │ │ └── wordwrap@1.0.0 
-[INFO] │ ├── path-is-inside@1.0.2 
-[INFO] │ ├── pluralize@7.0.0 
-[INFO] │ ├── progress@2.0.0 
-[INFO] │ ├─┬ require-uncached@1.0.3 
-[INFO] │ │ ├─┬ caller-path@0.1.0 
-[INFO] │ │ │ └── callsites@0.2.0 
-[INFO] │ │ └── resolve-from@1.0.1 
-[INFO] │ ├─┬ strip-ansi@4.0.0 
-[INFO] │ │ └── ansi-regex@3.0.0 
-[INFO] │ ├── strip-json-comments@2.0.1 
-[INFO] │ ├─┬ table@4.0.2 
-[INFO] │ │ ├── ajv-keywords@2.1.1 
-[INFO] │ │ └── slice-ansi@1.0.0 
-[INFO] │ └── text-table@0.2.0 
-[INFO] ├─┬ eslint-plugin-compat@2.1.0 
-[INFO] │ ├── babel-runtime@6.26.0 
-[INFO] │ ├── caniuse-db@1.0.30000772 
-[INFO] │ └── requireindex@1.1.0 
-[INFO] ├─┬ htmllint-cli@0.0.6 
-[INFO] │ ├── bluebird@3.5.1 
-[INFO] │ ├─┬ chalk@1.1.3 
-[INFO] │ │ ├── ansi-styles@2.2.1 
-[INFO] │ │ ├── has-ansi@2.0.0 
-[INFO] │ │ └── supports-color@2.0.0 
-[INFO] │ ├─┬ cjson@0.5.0 
-[INFO] │ │ └─┬ json-parse-helpfulerror@1.0.3 
-[INFO] │ │   └── jju@1.3.0 
-[INFO] │ ├─┬ htmllint@0.6.0 
-[INFO] │ │ ├── bulk-require@1.0.1 
-[INFO] │ │ └─┬ htmlparser2@3.9.2 
-[INFO] │ │   ├── domelementtype@1.3.0 
-[INFO] │ │   ├── domhandler@2.4.1 
-[INFO] │ │   ├─┬ domutils@1.6.2 
-[INFO] │ │   │ └─┬ dom-serializer@0.1.0 
-[INFO] │ │   │   └── domelementtype@1.1.3 
-[INFO] │ │   └── entities@1.1.1 
-[INFO] │ ├─┬ liftoff@2.3.0 
-[INFO] │ │ ├── extend@3.0.1 
-[INFO] │ │ ├─┬ fined@1.1.0 
-[INFO] │ │ │ ├─┬ expand-tilde@2.0.2 
-[INFO] │ │ │ │ └─┬ homedir-polyfill@1.0.1 
-[INFO] │ │ │ │   └── parse-passwd@1.0.0 
-[INFO] │ │ │ ├─┬ is-plain-object@2.0.4 
-[INFO] │ │ │ │ └── isobject@3.0.1 
-[INFO] │ │ │ ├─┬ object.defaults@1.1.0 
-[INFO] │ │ │ │ ├── array-each@1.0.1 
-[INFO] │ │ │ │ ├── array-slice@1.0.0 
-[INFO] │ │ │ │ ├── for-own@1.0.0 
-[INFO] │ │ │ │ └── isobject@3.0.1 
-[INFO] │ │ │ ├─┬ object.pick@1.3.0 
-[INFO] │ │ │ │ └── isobject@3.0.1 
-[INFO] │ │ │ └─┬ parse-filepath@1.0.1 
-[INFO] │ │ │   ├─┬ is-absolute@0.2.6 
-[INFO] │ │ │   │ ├─┬ is-relative@0.2.1 
-[INFO] │ │ │   │ │ └─┬ is-unc-path@0.1.2 
-[INFO] │ │ │   │ │   └── unc-path-regex@0.1.2 
-[INFO] │ │ │   │ └── is-windows@0.2.0 
-[INFO] │ │ │   ├── map-cache@0.2.2 
-[INFO] │ │ │   └─┬ path-root@0.1.1 
-[INFO] │ │ │     └── path-root-regex@0.1.2 
-[INFO] │ │ ├── flagged-respawn@0.3.2 
-[INFO] │ │ ├── lodash.isplainobject@4.0.6 
-[INFO] │ │ ├── lodash.isstring@4.0.1 
-[INFO] │ │ └── lodash.mapvalues@4.6.0 
-[INFO] │ ├─┬ promise@7.3.1 
-[INFO] │ │ └── asap@2.0.6 
-[INFO] │ └─┬ yargs@6.6.0 
-[INFO] │   ├── camelcase@3.0.0 
-[INFO] │   ├─┬ cliui@3.2.0 
-[INFO] │   │ ├─┬ string-width@1.0.2 
-[INFO] │   │ │ └── is-fullwidth-code-point@1.0.0 
-[INFO] │   │ └─┬ wrap-ansi@2.1.0 
-[INFO] │   │   └─┬ string-width@1.0.2 
-[INFO] │   │     └── is-fullwidth-code-point@1.0.0 
-[INFO] │   ├── decamelize@1.2.0 
-[INFO] │   ├── get-caller-file@1.0.2 
-[INFO] │   ├─┬ os-locale@1.4.0 
-[INFO] │   │ └─┬ lcid@1.0.0 
-[INFO] │   │   └── invert-kv@1.0.0 
-[INFO] │   ├─┬ read-pkg-up@1.0.1 
-[INFO] │   │ ├─┬ find-up@1.1.2 
-[INFO] │   │ │ └── path-exists@2.1.0 
-[INFO] │   │ └─┬ read-pkg@1.1.0 
-[INFO] │   │   ├─┬ load-json-file@1.1.0 
-[INFO] │   │   │ ├── pify@2.3.0 
-[INFO] │   │   │ └─┬ strip-bom@2.0.0 
-[INFO] │   │   │   └── is-utf8@0.2.1 
-[INFO] │   │   └── path-type@1.1.0 
-[INFO] │   ├── require-directory@2.1.1 
-[INFO] │   ├── require-main-filename@1.0.1 
-[INFO] │   ├── set-blocking@2.0.0 
-[INFO] │   ├─┬ string-width@1.0.2 
-[INFO] │   │ ├── code-point-at@1.1.0 
-[INFO] │   │ └─┬ is-fullwidth-code-point@1.0.0 
-[INFO] │   │   └── number-is-nan@1.0.1 
-[INFO] │   ├── which-module@1.0.0 
-[INFO] │   ├── y18n@3.2.1 
-[INFO] │   └── yargs-parser@4.2.1 
-[INFO] ├── UNMET PEER DEPENDENCY jquery@1.9.1 - 3
-[INFO] ├─┬ jsunitsaucelabs@1.3.0 
-[INFO] │ ├── colors@1.1.2 
-[INFO] │ └─┬ sauce-tunnel@2.5.0 
-[INFO] │   ├─┬ chalk@1.1.3 
-[INFO] │   │ ├── ansi-styles@2.2.1 
-[INFO] │   │ └── supports-color@2.0.0 
-[INFO] │   └── split@1.0.1 
-[INFO] ├─┬ node-sass@4.7.2 
-[INFO] │ ├── async-foreach@0.1.3 
-[INFO] │ ├─┬ chalk@1.1.3 
-[INFO] │ │ ├── ansi-styles@2.2.1 
-[INFO] │ │ └── supports-color@2.0.0 
-[INFO] │ ├── cross-spawn@3.0.1 
-[INFO] │ ├─┬ gaze@1.1.2 
-[INFO] │ │ └── globule@1.2.0 
-[INFO] │ ├── get-stdin@4.0.1 
-[INFO] │ ├── in-publish@2.0.0 
-[INFO] │ ├── lodash.assign@4.2.0 
-[INFO] │ ├── lodash.clonedeep@4.5.0 
-[INFO] │ ├── lodash.mergewith@4.6.0 
-[INFO] │ ├─┬ meow@3.7.0 
-[INFO] │ │ ├─┬ camelcase-keys@2.1.0 
-[INFO] │ │ │ └── camelcase@2.1.1 
-[INFO] │ │ ├─┬ loud-rejection@1.6.0 
-[INFO] │ │ │ ├─┬ currently-unhandled@0.4.1 
-[INFO] │ │ │ │ └── array-find-index@1.0.2 
-[INFO] │ │ │ └── signal-exit@3.0.2 
-[INFO] │ │ ├── map-obj@1.0.1 
-[INFO] │ │ ├── minimist@1.2.0 
-[INFO] │ │ ├─┬ normalize-package-data@2.4.0 
-[INFO] │ │ │ ├── hosted-git-info@2.5.0 
-[INFO] │ │ │ ├── is-builtin-module@1.0.0 
-[INFO] │ │ │ └─┬ validate-npm-package-license@3.0.1 
-[INFO] │ │ │   ├─┬ spdx-correct@1.0.2 
-[INFO] │ │ │   │ └── spdx-license-ids@1.2.2 
-[INFO] │ │ │   └── spdx-expression-parse@1.0.4 
-[INFO] │ │ ├─┬ read-pkg-up@1.0.1 
-[INFO] │ │ │ ├─┬ find-up@1.1.2 
-[INFO] │ │ │ │ └── path-exists@2.1.0 
-[INFO] │ │ │ └─┬ read-pkg@1.1.0 
-[INFO] │ │ │   ├─┬ load-json-file@1.1.0 
-[INFO] │ │ │   │ ├── pify@2.3.0 
-[INFO] │ │ │   │ └── strip-bom@2.0.0 
-[INFO] │ │ │   └── path-type@1.1.0 
-[INFO] │ │ ├─┬ redent@1.0.0 
-[INFO] │ │ │ ├─┬ indent-string@2.1.0 
-[INFO] │ │ │ │ └─┬ repeating@2.0.1 
-[INFO] │ │ │ │   └── is-finite@1.0.2 
-[INFO] │ │ │ └── strip-indent@1.0.1 
-[INFO] │ │ └── trim-newlines@1.0.0 
-[INFO] │ ├── nan@2.8.0 
-[INFO] │ ├─┬ node-gyp@3.6.2 
-[INFO] │ │ ├── fstream@1.0.11 
-[INFO] │ │ ├─┬ nopt@3.0.6 
-[INFO] │ │ │ └── abbrev@1.1.1 
-[INFO] │ │ ├─┬ osenv@0.1.4 
-[INFO] │ │ │ ├── os-homedir@1.0.2 
-[INFO] │ │ │ └── os-tmpdir@1.0.2 
-[INFO] │ │ ├── rimraf@2.6.2 
-[INFO] │ │ ├── semver@5.3.0 
-[INFO] │ │ └─┬ tar@2.2.1 
-[INFO] │ │   └── block-stream@0.0.9 
-[INFO] │ ├─┬ npmlog@4.1.2 
-[INFO] │ │ ├─┬ are-we-there-yet@1.1.4 
-[INFO] │ │ │ └── delegates@1.0.0 
-[INFO] │ │ ├── console-control-strings@1.1.0 
-[INFO] │ │ └─┬ gauge@2.7.4 
-[INFO] │ │   ├── aproba@1.2.0 
-[INFO] │ │   ├── has-unicode@2.0.1 
-[INFO] │ │   ├─┬ string-width@1.0.2 
-[INFO] │ │   │ └── is-fullwidth-code-point@1.0.0 
-[INFO] │ │   └─┬ wide-align@1.1.2 
-[INFO] │ │     └─┬ string-width@1.0.2 
-[INFO] │ │       └── is-fullwidth-code-point@1.0.0 
-[INFO] │ ├─┬ request@2.79.0 
-[INFO] │ │ ├── aws-sign2@0.6.0 
-[INFO] │ │ ├── aws4@1.6.0 
-[INFO] │ │ ├── caseless@0.11.0 
-[INFO] │ │ ├─┬ combined-stream@1.0.5 
-[INFO] │ │ │ └── delayed-stream@1.0.0 
-[INFO] │ │ ├── forever-agent@0.6.1 
-[INFO] │ │ ├─┬ form-data@2.1.4 
-[INFO] │ │ │ └── asynckit@0.4.0 
-[INFO] │ │ ├─┬ har-validator@2.0.6 
-[INFO] │ │ │ └─┬ is-my-json-valid@2.16.1 
-[INFO] │ │ │   ├── generate-function@2.0.0 
-[INFO] │ │ │   ├─┬ generate-object-property@1.2.0 
-[INFO] │ │ │   │ └── is-property@1.0.2 
-[INFO] │ │ │   ├── jsonpointer@4.0.1 
-[INFO] │ │ │   └── xtend@4.0.1 
-[INFO] │ │ ├─┬ hawk@3.1.3 
-[INFO] │ │ │ ├── boom@2.10.1 
-[INFO] │ │ │ ├── cryptiles@2.0.5 
-[INFO] │ │ │ ├── hoek@2.16.3 
-[INFO] │ │ │ └── sntp@1.0.9 
-[INFO] │ │ ├─┬ http-signature@1.1.1 
-[INFO] │ │ │ ├── assert-plus@0.2.0 
-[INFO] │ │ │ ├─┬ jsprim@1.4.1 
-[INFO] │ │ │ │ ├── extsprintf@1.3.0 
-[INFO] │ │ │ │ ├── json-schema@0.2.3 
-[INFO] │ │ │ │ └── verror@1.10.0 
-[INFO] │ │ │ └─┬ sshpk@1.13.1 
-[INFO] │ │ │   ├── asn1@0.2.3 
-[INFO] │ │ │   ├── bcrypt-pbkdf@1.0.1 
-[INFO] │ │ │   ├── dashdash@1.14.1 
-[INFO] │ │ │   ├── ecc-jsbn@0.1.1 
-[INFO] │ │ │   ├── getpass@0.1.7 
-[INFO] │ │ │   ├── jsbn@0.1.1 
-[INFO] │ │ │   └── tweetnacl@0.14.5 
-[INFO] │ │ ├── is-typedarray@1.0.0 
-[INFO] │ │ ├── isstream@0.1.2 
-[INFO] │ │ ├── json-stringify-safe@5.0.1 
-[INFO] │ │ ├─┬ mime-types@2.1.17 
-[INFO] │ │ │ └── mime-db@1.30.0 
-[INFO] │ │ ├── oauth-sign@0.8.2 
-[INFO] │ │ ├── qs@6.3.2 
-[INFO] │ │ ├── stringstream@0.0.5 
-[INFO] │ │ ├─┬ tough-cookie@2.3.3 
-[INFO] │ │ │ └── punycode@1.4.1 
-[INFO] │ │ ├── tunnel-agent@0.4.3 
-[INFO] │ │ └── uuid@3.1.0 
-[INFO] │ ├─┬ sass-graph@2.2.4 
-[INFO] │ │ ├─┬ scss-tokenizer@0.2.3 
-[INFO] │ │ │ ├── js-base64@2.3.2 
-[INFO] │ │ │ └─┬ source-map@0.4.4 
-[INFO] │ │ │   └── amdefine@1.0.1 
-[INFO] │ │ └─┬ yargs@7.1.0 
-[INFO] │ │   ├─┬ read-pkg-up@1.0.1 
-[INFO] │ │   │ ├─┬ find-up@1.1.2 
-[INFO] │ │   │ │ └── path-exists@2.1.0 
-[INFO] │ │   │ └─┬ read-pkg@1.1.0 
-[INFO] │ │   │   ├─┬ load-json-file@1.1.0 
-[INFO] │ │   │   │ ├── pify@2.3.0 
-[INFO] │ │   │   │ └── strip-bom@2.0.0 
-[INFO] │ │   │   └── path-type@1.1.0 
-[INFO] │ │   ├─┬ string-width@1.0.2 
-[INFO] │ │   │ └── is-fullwidth-code-point@1.0.0 
-[INFO] │ │   └── yargs-parser@5.0.0 
-[INFO] │ ├── stdout-stream@1.4.0 
-[INFO] │ └─┬ true-case-path@1.0.2 
-[INFO] │   └── glob@6.0.4 
-[INFO] ├─┬ nodemon@1.12.1 
-[INFO] │ ├── debug@2.6.9 
-[INFO] │ ├── es6-promise@3.3.1 
-[INFO] │ ├── ignore-by-default@1.0.1 
-[INFO] │ ├─┬ lodash.defaults@3.1.2 
-[INFO] │ │ ├─┬ lodash.assign@3.2.0 
-[INFO] │ │ │ ├─┬ lodash._baseassign@3.2.0 
-[INFO] │ │ │ │ └── lodash._basecopy@3.0.1 
-[INFO] │ │ │ ├─┬ lodash._createassigner@3.1.1 
-[INFO] │ │ │ │ ├── lodash._bindcallback@3.0.1 
-[INFO] │ │ │ │ └── lodash._isiterateecall@3.0.9 
-[INFO] │ │ │ └─┬ lodash.keys@3.1.2 
-[INFO] │ │ │   ├── lodash._getnative@3.9.1 
-[INFO] │ │ │   ├── lodash.isarguments@3.1.0 
-[INFO] │ │ │   └── lodash.isarray@3.0.4 
-[INFO] │ │ └── lodash.restparam@3.6.1 
-[INFO] │ ├─┬ ps-tree@1.1.0 
-[INFO] │ │ └─┬ event-stream@3.3.4 
-[INFO] │ │   ├── from@0.1.7 
-[INFO] │ │   ├── map-stream@0.1.0 
-[INFO] │ │   ├── pause-stream@0.0.11 
-[INFO] │ │   ├── split@0.3.3 
-[INFO] │ │   └── stream-combiner@0.0.4 
-[INFO] │ ├─┬ touch@3.1.0 
-[INFO] │ │ └── nopt@1.0.10 
-[INFO] │ ├── undefsafe@0.0.3 
-[INFO] │ └─┬ update-notifier@2.3.0 
-[INFO] │   ├─┬ boxen@1.2.2 
-[INFO] │   │ ├── ansi-align@2.0.0 
-[INFO] │   │ ├── camelcase@4.1.0 
-[INFO] │   │ ├── cli-boxes@1.0.0 
-[INFO] │   │ ├── term-size@1.2.0 
-[INFO] │   │ └─┬ widest-line@1.0.0 
-[INFO] │   │   └─┬ string-width@1.0.2 
-[INFO] │   │     └── is-fullwidth-code-point@1.0.0 
-[INFO] │   ├─┬ configstore@3.1.1 
-[INFO] │   │ ├─┬ unique-string@1.0.0 
-[INFO] │   │ │ └── crypto-random-string@1.0.0 
-[INFO] │   │ └── write-file-atomic@2.3.0 
-[INFO] │   ├── import-lazy@2.1.0 
-[INFO] │   ├─┬ is-installed-globally@0.1.0 
-[INFO] │   │ ├─┬ global-dirs@0.1.1 
-[INFO] │   │ │ └── ini@1.3.5 
-[INFO] │   │ └── is-path-inside@1.0.0 
-[INFO] │   ├── is-npm@1.0.0 
-[INFO] │   ├─┬ latest-version@3.1.0 
-[INFO] │   │ └─┬ package-json@4.0.1 
-[INFO] │   │   ├─┬ got@6.7.1 
-[INFO] │   │   │ ├─┬ create-error-class@3.0.2 
-[INFO] │   │   │ │ └── capture-stack-trace@1.0.0 
-[INFO] │   │   │ ├── duplexer3@0.1.4 
-[INFO] │   │   │ ├── is-redirect@1.0.0 
-[INFO] │   │   │ ├── is-retry-allowed@1.1.0 
-[INFO] │   │   │ ├── lowercase-keys@1.0.0 
-[INFO] │   │   │ ├── timed-out@4.0.1 
-[INFO] │   │   │ ├── unzip-response@2.0.1 
-[INFO] │   │   │ └─┬ url-parse-lax@1.0.0 
-[INFO] │   │   │   └── prepend-http@1.0.4 
-[INFO] │   │   ├─┬ registry-auth-token@3.3.1 
-[INFO] │   │   │ └─┬ rc@1.2.2 
-[INFO] │   │   │   ├── deep-extend@0.4.2 
-[INFO] │   │   │   └── minimist@1.2.0 
-[INFO] │   │   └── registry-url@3.1.0 
-[INFO] │   ├── semver-diff@2.1.0 
-[INFO] │   └── xdg-basedir@3.0.0 
-[INFO] ├─┬ npm-run-all@4.1.2 
-[INFO] │ ├─┬ ansi-styles@3.2.0 
-[INFO] │ │ └─┬ color-convert@1.9.1 
-[INFO] │ │   └── color-name@1.1.3 
-[INFO] │ ├── memorystream@0.3.1 
-[INFO] │ ├─┬ read-pkg@3.0.0 
-[INFO] │ │ ├─┬ load-json-file@4.0.0 
-[INFO] │ │ │ ├─┬ parse-json@4.0.0 
-[INFO] │ │ │ │ └── json-parse-better-errors@1.0.1 
-[INFO] │ │ │ └── strip-bom@3.0.0 
-[INFO] │ │ └── path-type@3.0.0 
-[INFO] │ ├─┬ shell-quote@1.6.1 
-[INFO] │ │ ├── array-filter@0.0.1 
-[INFO] │ │ ├── array-map@0.0.0 
-[INFO] │ │ ├── array-reduce@0.0.0 
-[INFO] │ │ └── jsonify@0.0.0 
-[INFO] │ └─┬ string.prototype.padend@3.0.0 
-[INFO] │   ├─┬ define-properties@1.1.2 
-[INFO] │   │ ├── foreach@2.0.5 
-[INFO] │   │ └── object-keys@1.0.11 
-[INFO] │   ├─┬ es-abstract@1.10.0 
-[INFO] │   │ ├─┬ es-to-primitive@1.1.1 
-[INFO] │   │ │ ├── is-date-object@1.0.1 
-[INFO] │   │ │ └── is-symbol@1.0.1 
-[INFO] │   │ ├── has@1.0.1 
-[INFO] │   │ ├── is-callable@1.1.3 
-[INFO] │   │ └── is-regex@1.0.4 
-[INFO] │   └── function-bind@1.1.1 
-[INFO] ├─┬ phantomjs-prebuilt@2.1.16 
-[INFO] │ ├── es6-promise@4.1.1 
-[INFO] │ ├─┬ extract-zip@1.6.6 
-[INFO] │ │ ├── debug@2.6.9 
-[INFO] │ │ ├── mkdirp@0.5.0 
-[INFO] │ │ └─┬ yauzl@2.4.1 
-[INFO] │ │   └─┬ fd-slicer@1.0.1 
-[INFO] │ │     └── pend@1.2.0 
-[INFO] │ ├─┬ fs-extra@1.0.0 
-[INFO] │ │ ├── jsonfile@2.4.0 
-[INFO] │ │ └── klaw@1.3.1 
-[INFO] │ ├─┬ hasha@2.2.0 
-[INFO] │ │ ├── is-stream@1.1.0 
-[INFO] │ │ └─┬ pinkie-promise@2.0.1 
-[INFO] │ │   └── pinkie@2.0.4 
-[INFO] │ ├── kew@0.7.0 
-[INFO] │ ├── progress@1.1.8 
-[INFO] │ ├─┬ request@2.83.0 
-[INFO] │ │ ├── aws-sign2@0.7.0 
-[INFO] │ │ ├── caseless@0.12.0 
-[INFO] │ │ ├── form-data@2.3.1 
-[INFO] │ │ ├─┬ har-validator@5.0.3 
-[INFO] │ │ │ └── har-schema@2.0.0 
-[INFO] │ │ ├─┬ hawk@6.0.2 
-[INFO] │ │ │ ├── boom@4.3.1 
-[INFO] │ │ │ ├─┬ cryptiles@3.1.2 
-[INFO] │ │ │ │ └── boom@5.2.0 
-[INFO] │ │ │ ├── hoek@4.2.0 
-[INFO] │ │ │ └── sntp@2.1.0 
-[INFO] │ │ ├─┬ http-signature@1.2.0 
-[INFO] │ │ │ └── assert-plus@1.0.0 
-[INFO] │ │ ├── performance-now@2.1.0 
-[INFO] │ │ ├── qs@6.5.1 
-[INFO] │ │ ├── safe-buffer@5.1.1 
-[INFO] │ │ └── tunnel-agent@0.6.0 
-[INFO] │ ├─┬ request-progress@2.0.1 
-[INFO] │ │ └── throttleit@1.0.0 
-[INFO] │ └─┬ which@1.3.0 
-[INFO] │   └── isexe@2.0.0 
-[INFO] ├── popper.js@1.12.9 
-[INFO] ├─┬ postcss-cli@4.1.1 
-[INFO] │ ├── dependency-graph@0.5.2 
-[INFO] │ ├─┬ fs-extra@4.0.2 
-[INFO] │ │ ├── jsonfile@4.0.0 
-[INFO] │ │ └── universalify@0.1.1 
-[INFO] │ ├── get-stdin@5.0.1 
-[INFO] │ ├─┬ globby@6.1.0 
-[INFO] │ │ ├─┬ array-union@1.0.2 
-[INFO] │ │ │ └── array-uniq@1.0.3 
-[INFO] │ │ └── pify@2.3.0 
-[INFO] │ ├─┬ ora@1.3.0 
-[INFO] │ │ ├─┬ chalk@1.1.3 
-[INFO] │ │ │ ├── ansi-styles@2.2.1 
-[INFO] │ │ │ └── supports-color@2.0.0 
-[INFO] │ │ ├── cli-spinners@1.1.0 
-[INFO] │ │ └─┬ log-symbols@1.0.2 
-[INFO] │ │   └─┬ chalk@1.1.3 
-[INFO] │ │     ├── ansi-styles@2.2.1 
-[INFO] │ │     └── supports-color@2.0.0 
-[INFO] │ ├─┬ postcss-load-config@1.2.0 
-[INFO] │ │ ├─┬ cosmiconfig@2.2.2 
-[INFO] │ │ │ ├── minimist@1.2.0 
-[INFO] │ │ │ ├── parse-json@2.2.0 
-[INFO] │ │ │ └── require-from-string@1.2.1 
-[INFO] │ │ ├── postcss-load-options@1.2.0 
-[INFO] │ │ └── postcss-load-plugins@2.3.0 
-[INFO] │ ├─┬ postcss-reporter@5.0.0 
-[INFO] │ │ └── log-symbols@2.1.0 
-[INFO] │ ├── pretty-hrtime@1.0.3 
-[INFO] │ ├─┬ read-cache@1.0.0 
-[INFO] │ │ └── pify@2.3.0 
-[INFO] │ └─┬ yargs@8.0.2 
-[INFO] │   ├── camelcase@4.1.0 
-[INFO] │   ├─┬ os-locale@2.1.0 
-[INFO] │   │ ├─┬ execa@0.7.0 
-[INFO] │   │ │ ├── get-stream@3.0.0 
-[INFO] │   │ │ ├─┬ npm-run-path@2.0.2 
-[INFO] │   │ │ │ └── path-key@2.0.1 
-[INFO] │   │ │ ├── p-finally@1.0.0 
-[INFO] │   │ │ └── strip-eof@1.0.0 
-[INFO] │   │ └─┬ mem@1.1.0 
-[INFO] │   │   └── mimic-fn@1.1.0 
-[INFO] │   ├── which-module@2.0.0 
-[INFO] │   └── yargs-parser@7.0.0 
-[INFO] ├─┬ qunit-phantomjs-runner@2.3.1 
-[INFO] │ └── qunit-reporter-junit@1.1.1 
-[INFO] ├─┬ qunitjs@2.4.1 
-[INFO] │ ├── chokidar@1.6.1 
-[INFO] │ ├─┬ commander@2.9.0 
-[INFO] │ │ └── graceful-readlink@1.0.1 
-[INFO] │ ├── exists-stat@1.0.0 
-[INFO] │ ├─┬ findup-sync@0.4.3 
-[INFO] │ │ ├─┬ detect-file@0.1.0 
-[INFO] │ │ │ └── fs-exists-sync@0.1.0 
-[INFO] │ │ └─┬ resolve-dir@0.1.1 
-[INFO] │ │   ├── expand-tilde@1.2.2 
-[INFO] │ │   └─┬ global-modules@0.2.3 
-[INFO] │ │     ├─┬ global-prefix@0.1.5 
-[INFO] │ │     │ └── is-windows@0.2.0 
-[INFO] │ │     └── is-windows@0.2.0 
-[INFO] │ ├── js-reporters@1.2.0 
-[INFO] │ ├─┬ resolve@1.3.2 
-[INFO] │ │ └── path-parse@1.0.5 
-[INFO] │ └─┬ walk-sync@0.3.1 
-[INFO] │   ├── ensure-posix-path@1.0.2 
-[INFO] │   └── matcher-collection@1.0.5 
-[INFO] ├── rollup@0.50.1 
-[INFO] ├─┬ rollup-plugin-babel@3.0.2 
-[INFO] │ └─┬ rollup-pluginutils@1.5.2 
-[INFO] │   └── estree-walker@0.2.1 
-[INFO] ├─┬ rollup-plugin-node-resolve@3.0.0 
-[INFO] │ ├─┬ browser-resolve@1.11.2 
-[INFO] │ │ └── resolve@1.1.7 
-[INFO] │ ├── builtin-modules@1.1.1 
-[INFO] │ ├── is-module@1.0.0 
-[INFO] │ └── resolve@1.5.0 
-[INFO] ├─┬ shelljs@0.7.8 
-[INFO] │ ├── interpret@1.1.0 
-[INFO] │ └── rechoir@0.6.2 
-[INFO] ├─┬ shx@0.2.2 
-[INFO] │ ├── es6-object-assign@1.1.0 
-[INFO] │ └── minimist@1.2.0 
-[INFO] ├─┬ stylelint@8.3.1 
-[INFO] │ ├── balanced-match@1.0.0 
-[INFO] │ ├─┬ cosmiconfig@3.1.0 
-[INFO] │ │ ├── is-directory@0.3.1 
-[INFO] │ │ ├─┬ parse-json@3.0.0 
-[INFO] │ │ │ └─┬ error-ex@1.3.1 
-[INFO] │ │ │   └── is-arrayish@0.2.1 
-[INFO] │ │ └── require-from-string@2.0.1 
-[INFO] │ ├─┬ execall@1.0.0 
-[INFO] │ │ └─┬ clone-regexp@1.0.0 
-[INFO] │ │   ├── is-regexp@1.0.0 
-[INFO] │ │   └── is-supported-regexp-flag@1.0.0 
-[INFO] │ ├── get-stdin@5.0.1 
-[INFO] │ ├─┬ globby@7.1.1 
-[INFO] │ │ └─┬ dir-glob@2.0.0 
-[INFO] │ │   ├── arrify@1.0.1 
-[INFO] │ │   └── path-type@3.0.0 
-[INFO] │ ├── globjoin@0.1.4 
-[INFO] │ ├── html-tags@2.0.0 
-[INFO] │ ├── known-css-properties@0.4.1 
-[INFO] │ ├── log-symbols@2.1.0 
-[INFO] │ ├── mathml-tag-names@2.0.1 
-[INFO] │ ├─┬ micromatch@2.3.11 
-[INFO] │ │ ├─┬ arr-diff@2.0.0 
-[INFO] │ │ │ └── arr-flatten@1.1.0 
-[INFO] │ │ ├── array-unique@0.2.1 
-[INFO] │ │ ├─┬ braces@1.8.5 
-[INFO] │ │ │ ├─┬ expand-range@1.8.2 
-[INFO] │ │ │ │ └─┬ fill-range@2.2.3 
-[INFO] │ │ │ │   ├── is-number@2.1.0 
-[INFO] │ │ │ │   ├── isobject@2.1.0 
-[INFO] │ │ │ │   └─┬ randomatic@1.1.7 
-[INFO] │ │ │ │     ├─┬ is-number@3.0.0 
-[INFO] │ │ │ │     │ └── kind-of@3.2.2 
-[INFO] │ │ │ │     └── kind-of@4.0.0 
-[INFO] │ │ │ ├── preserve@0.2.0 
-[INFO] │ │ │ └── repeat-element@1.1.2 
-[INFO] │ │ ├─┬ expand-brackets@0.1.5 
-[INFO] │ │ │ └── is-posix-bracket@0.1.1 
-[INFO] │ │ ├── extglob@0.3.2 
-[INFO] │ │ ├── filename-regex@2.0.1 
-[INFO] │ │ ├── is-extglob@1.0.0 
-[INFO] │ │ ├── kind-of@3.2.2 
-[INFO] │ │ ├─┬ normalize-path@2.1.1 
-[INFO] │ │ │ └── remove-trailing-separator@1.1.0 
-[INFO] │ │ ├─┬ object.omit@2.0.1 
-[INFO] │ │ │ ├─┬ for-own@0.1.5 
-[INFO] │ │ │ │ └── for-in@1.0.2 
-[INFO] │ │ │ └── is-extendable@0.1.1 
-[INFO] │ │ ├─┬ parse-glob@3.0.4 
-[INFO] │ │ │ ├── glob-base@0.3.0 
-[INFO] │ │ │ └── is-dotfile@1.0.3 
-[INFO] │ │ └─┬ regex-cache@0.4.4 
-[INFO] │ │   └─┬ is-equal-shallow@0.1.3 
-[INFO] │ │     └── is-primitive@2.0.0 
-[INFO] │ ├── normalize-selector@0.2.0 
-[INFO] │ ├── pify@3.0.0 
-[INFO] │ ├─┬ postcss-html@0.11.0 
-[INFO] │ │ ├─┬ remark@8.0.0 
-[INFO] │ │ │ ├─┬ remark-parse@4.0.0 
-[INFO] │ │ │ │ ├── collapse-white-space@1.0.3 
-[INFO] │ │ │ │ ├── is-alphabetical@1.0.1 
-[INFO] │ │ │ │ ├── is-decimal@1.0.1 
-[INFO] │ │ │ │ ├── is-whitespace-character@1.0.1 
-[INFO] │ │ │ │ ├── is-word-character@1.0.1 
-[INFO] │ │ │ │ ├── markdown-escapes@1.0.1 
-[INFO] │ │ │ │ ├─┬ parse-entities@1.1.1 
-[INFO] │ │ │ │ │ ├── character-entities@1.2.1 
-[INFO] │ │ │ │ │ ├── character-entities-legacy@1.1.1 
-[INFO] │ │ │ │ │ ├── character-reference-invalid@1.1.1 
-[INFO] │ │ │ │ │ ├── is-alphanumerical@1.0.1 
-[INFO] │ │ │ │ │ └── is-hexadecimal@1.0.1 
-[INFO] │ │ │ │ ├── repeat-string@1.6.1 
-[INFO] │ │ │ │ ├── state-toggle@1.0.0 
-[INFO] │ │ │ │ ├── trim@0.0.1 
-[INFO] │ │ │ │ ├── trim-trailing-lines@1.1.0 
-[INFO] │ │ │ │ ├── unherit@1.1.0 
-[INFO] │ │ │ │ ├─┬ unist-util-remove-position@1.1.1 
-[INFO] │ │ │ │ │ └── unist-util-visit@1.2.0 
-[INFO] │ │ │ │ └── vfile-location@2.0.2 
-[INFO] │ │ │ ├─┬ remark-stringify@4.0.0 
-[INFO] │ │ │ │ ├── ccount@1.0.2 
-[INFO] │ │ │ │ ├── is-alphanumeric@1.0.0 
-[INFO] │ │ │ │ ├── longest-streak@2.0.2 
-[INFO] │ │ │ │ ├── markdown-table@1.1.1 
-[INFO] │ │ │ │ ├─┬ mdast-util-compact@1.0.1 
-[INFO] │ │ │ │ │ └─┬ unist-util-modify-children@1.1.1 
-[INFO] │ │ │ │ │   └── array-iterate@1.1.1 
-[INFO] │ │ │ │ └─┬ stringify-entities@1.3.1 
-[INFO] │ │ │ │   └── character-entities-html4@1.1.1 
-[INFO] │ │ │ └─┬ unified@6.1.6 
-[INFO] │ │ │   ├── bail@1.0.2 
-[INFO] │ │ │   ├── trough@1.0.1 
-[INFO] │ │ │   ├─┬ vfile@2.3.0 
-[INFO] │ │ │   │ ├── replace-ext@1.0.0 
-[INFO] │ │ │   │ ├── unist-util-stringify-position@1.1.1 
-[INFO] │ │ │   │ └── vfile-message@1.0.0 
-[INFO] │ │ │   ├── x-is-function@1.0.4 
-[INFO] │ │ │   └── x-is-string@0.1.0 
-[INFO] │ │ └─┬ unist-util-find-all-after@1.0.1 
-[INFO] │ │   └── unist-util-is@2.1.1 
-[INFO] │ ├─┬ postcss-less@1.1.3 
-[INFO] │ │ └─┬ postcss@5.2.18 
-[INFO] │ │   ├─┬ chalk@1.1.3 
-[INFO] │ │   │ ├── ansi-styles@2.2.1 
-[INFO] │ │   │ └── supports-color@2.0.0 
-[INFO] │ │   ├── source-map@0.5.7 
-[INFO] │ │   └─┬ supports-color@3.2.3 
-[INFO] │ │     └── has-flag@1.0.0 
-[INFO] │ ├── postcss-media-query-parser@0.2.3 
-[INFO] │ ├── postcss-resolve-nested-selector@0.1.1 
-[INFO] │ ├── postcss-safe-parser@3.0.1 
-[INFO] │ ├── UNMET PEER DEPENDENCY postcss-sass@>=0.2.0
-[INFO] │ ├── postcss-scss@1.0.2 
-[INFO] │ ├─┬ postcss-selector-parser@3.1.1 
-[INFO] │ │ ├─┬ dot-prop@4.2.0 
-[INFO] │ │ │ └── is-obj@1.0.1 
-[INFO] │ │ ├── indexes-of@1.0.1 
-[INFO] │ │ └── uniq@1.0.1 
-[INFO] │ ├── resolve-from@4.0.0 
-[INFO] │ ├── specificity@0.3.2 
-[INFO] │ ├─┬ string-width@2.1.1 
-[INFO] │ │ ├── is-fullwidth-code-point@2.0.0 
-[INFO] │ │ └─┬ strip-ansi@4.0.0 
-[INFO] │ │   └── ansi-regex@3.0.0 
-[INFO] │ ├── style-search@0.1.0 
-[INFO] │ ├── sugarss@1.0.1 
-[INFO] │ └── svg-tags@1.0.0 
-[INFO] ├─┬ stylelint-config-recommended-scss@2.0.0 
-[INFO] │ └── stylelint-config-recommended@1.0.0 
-[INFO] ├── stylelint-config-standard@17.0.0 
-[INFO] ├─┬ stylelint-order@0.7.0 
-[INFO] │ └── postcss-sorting@3.1.0 
-[INFO] ├─┬ stylelint-scss@2.1.0 
-[INFO] │ └─┬ postcss-selector-parser@2.2.3 
-[INFO] │   └── flatten@1.0.2 
-[INFO] ├─┬ uglify-js@3.2.0 
-[INFO] │ └── source-map@0.6.1 
-[INFO] ├── vnu-jar@17.11.1 
-[INFO] └─┬ workbox-build@2.1.2 
-[INFO]   ├─┬ chalk@1.1.3 
-[INFO]   │ ├── ansi-styles@2.2.1 
-[INFO]   │ └── supports-color@2.0.0 
-[INFO]   ├─┬ fs-extra@3.0.1 
-[INFO]   │ └── jsonfile@3.0.1 
-[INFO]   ├─┬ lodash.template@4.4.0 
-[INFO]   │ ├── lodash._reinterpolate@3.0.0 
-[INFO]   │ └── lodash.templatesettings@4.1.0 
-[INFO]   └── workbox-sw@2.1.2 
 [INFO] 
+[INFO] > nodemon@1.14.1 postinstall __CURRENT__/tobago-theme-charlotteville/target/bootstrap/node_modules/nodemon
+[INFO] > node -e "console.log('\u001b[32mLove nodemon? You can now support the project via the open collective:\u001b[22m\u001b[39m\n > \u001b[96m\u001b[1mhttps://opencollective.com/nodemon/donate\u001b[0m\n')"
+[INFO] 
+[INFO] Love nodemon? You can now support the project via the open collective:
+[INFO]  > https://opencollective.com/nodemon/donate
+[INFO] 
+[WARNING] npm WARN bootstrap@4.0.0-beta.3 requires a peer of jquery@1.9.1 - 3 but none is installed. You must install peer dependencies yourself.
+[ERROR] 
+[INFO] added 1258 packages in 23.76s
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #8: npm run css-compile) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm run css-compile' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 css-compile __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 css-compile __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css
 [INFO] 
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css
+[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap.css.map
 [ERROR] Rendering Complete, saving .css file...
 [ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-grid.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-grid.css
 [ERROR] Rendering Complete, saving .css file...
-[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [ERROR] Wrote CSS to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-reboot.css
+[ERROR] Wrote Source Map to __CURRENT__/tobago-theme-charlotteville/target/bootstrap/dist/css/bootstrap-reboot.css.map
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #9: npm run css-prefix) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm run css-prefix' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 css-prefix __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css"
+[INFO] > bootstrap@4.0.0-beta.3 css-prefix __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > postcss --config build/postcss.config.js --replace "dist/css/*.css" "!dist/css/*.min.css"
 [INFO] 
-[ERROR] ✔ Finished dist/css/bootstrap-grid.css (1.06 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.min.css (1.06 s)
-[ERROR] ✔ Finished dist/css/bootstrap-grid.min.css (1.07 s)
-[ERROR] ✔ Finished dist/css/bootstrap.min.css (1.07 s)
-[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (1.07 s)
-[ERROR] ✔ Finished dist/css/bootstrap.css (1.07 s)
+[ERROR] ✔ Finished dist/css/bootstrap-reboot.css (878 ms)
+[ERROR] ✔ Finished dist/css/bootstrap-grid.css (882 ms)
+[ERROR] ✔ Finished dist/css/bootstrap.css (882 ms)
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #10: npm run css-minify) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm run css-minify' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 css-minify __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 css-minify __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cleancss --level 1 --source-map --source-map-inline-sources --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --level 1 --source-map --source-map-inline-sources --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --level 1 --source-map --source-map-inline-sources --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css
 [INFO] 
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #11: npm run js) @ tobago-theme-charlotteville ---
 [INFO] Running 'npm run js' in __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > npm-run-all js-lint* js-compile* js-minify*
+[INFO] > bootstrap@4.0.0-beta.3 js __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > npm-run-all js-lint* js-compile js-minify
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-lint __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-lint __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > eslint js/ && eslint --config js/tests/.eslintrc.json --env node build/
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-lint-docs __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-lint-docs __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > eslint --config js/tests/.eslintrc.json assets/js/ docs/ sw.js
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-compile __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > npm-run-all --parallel js-compile-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
+[INFO] > bootstrap@4.0.0-beta.3 js-compile-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
+[INFO] > bootstrap@4.0.0-beta.3 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-compile-plugins __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
 [INFO] 
 [ERROR] 
@@ -1163,71 +144,27 @@ Build date: 2017-11-28 19:01:13
 [INFO] js/src/tab.js -> js/dist/tab.js
 [INFO] js/src/tooltip.js -> js/dist/tooltip.js
 [INFO] js/src/util.js -> js/dist/util.js
-[ERROR] created dist/js/bootstrap.js in 2.5s
-[ERROR] created dist/js/bootstrap.bundle.js in 2.7s
-[INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap
-[INFO] 
-[ERROR] 
-[ERROR] __CURRENT__/tobago-theme-charlotteville/target/bootstrap/js/src/index.js → dist/js/bootstrap.js...
-[ERROR] created dist/js/bootstrap.js in 1.5s
-[INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap
-[INFO] 
-[ERROR] 
-[ERROR] __CURRENT__/tobago-theme-charlotteville/target/bootstrap/js/src/index.js → dist/js/bootstrap.bundle.js...
-[ERROR] created dist/js/bootstrap.bundle.js in 1.8s
-[INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-compile-plugins __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps
-[INFO] 
-[INFO] js/src/alert.js -> js/dist/alert.js
-[INFO] js/src/button.js -> js/dist/button.js
-[INFO] js/src/carousel.js -> js/dist/carousel.js
-[INFO] js/src/collapse.js -> js/dist/collapse.js
-[INFO] js/src/dropdown.js -> js/dist/dropdown.js
-[INFO] js/src/index.js -> js/dist/index.js
-[INFO] js/src/modal.js -> js/dist/modal.js
-[INFO] js/src/popover.js -> js/dist/popover.js
-[INFO] js/src/scrollspy.js -> js/dist/scrollspy.js
-[INFO] js/src/tab.js -> js/dist/tab.js
-[INFO] js/src/tooltip.js -> js/dist/tooltip.js
-[INFO] js/src/util.js -> js/dist/util.js
+[ERROR] created dist/js/bootstrap.js in 2.3s
+[ERROR] created dist/js/bootstrap.bundle.js in 2.4s
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-minify __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > npm-run-all --parallel js-minify-*
 [INFO] 
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
-[INFO] 
-[INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
-[INFO] 
-[INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-minify-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
 [INFO] 
-[ERROR] INFO: Using input source map: dist/js/bootstrap.bundle.js.map
-[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-standalone __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map" --output dist/js/bootstrap.min.js dist/js/bootstrap.js
+[INFO] > bootstrap@4.0.0-beta.3 js-minify-docs __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js "assets/js/src/*.js"
 [INFO] 
-[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
+[INFO] > bootstrap@4.0.0-beta.3 js-minify-bundle __CURRENT__/tobago-theme-charlotteville/target/bootstrap
 [INFO] > uglifyjs --compress typeofs=false --mangle --comments "/^!/" --source-map "content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js
 [INFO] 
+[ERROR] INFO: Using input source map: dist/js/bootstrap.js.map
 [ERROR] INFO: Using input source map: dist/js/bootstrap.bundle.js.map
 [INFO] 
-[INFO] > bootstrap@4.0.0-beta.2 js-minify-docs __CURRENT__/tobago-theme-charlotteville/target/bootstrap
-[INFO] > uglifyjs --mangle --comments "/^!/" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js
-[INFO] 
-[INFO] 
 [INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ tobago-theme-charlotteville ---
 [INFO] Using 'UTF-8' encoding to copy filtered resources.
 [INFO] Copying 1 resource
@@ -1258,18 +195,18 @@ main:
 [INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ tobago-theme-charlotteville ---
 [INFO] 
 [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ tobago-theme-charlotteville ---
-[INFO] Building jar: __CURRENT__/tobago-theme-charlotteville/target/tobago-theme-charlotteville-4.0.0-SNAPSHOT.jar
+[INFO] Building jar: __CURRENT__/tobago-theme-charlotteville/target/tobago-theme-charlotteville-4.0.1-SNAPSHOT.jar
 [INFO] 
 [INFO] --- maven-site-plugin:3.6:attach-descriptor (attach-descriptor) @ tobago-theme-charlotteville ---
 [INFO] Skipping because packaging 'jar' is not pom.
 [INFO] 
 [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ tobago-theme-charlotteville ---
-[INFO] Installing __CURRENT__/tobago-theme-charlotteville/target/tobago-theme-charlotteville-4.0.0-SNAPSHOT.jar to __REPO__/org/apache/myfaces/tobago/tobago-theme-charlotteville/4.0.0-SNAPSHOT/tobago-theme-charlotteville-4.0.0-SNAPSHOT.jar
-[INFO] Installing __CURRENT__/tobago-theme-charlotteville/pom.xml to __REPO__/org/apache/myfaces/tobago/tobago-theme-charlotteville/4.0.0-SNAPSHOT/tobago-theme-charlotteville-4.0.0-SNAPSHOT.pom
+[INFO] Installing __CURRENT__/tobago-theme-charlotteville/target/tobago-theme-charlotteville-4.0.1-SNAPSHOT.jar to __REPO__/org/apache/myfaces/tobago/tobago-theme-charlotteville/4.0.1-SNAPSHOT/tobago-theme-charlotteville-4.0.1-SNAPSHOT.jar
+[INFO] Installing __CURRENT__/tobago-theme-charlotteville/pom.xml to __REPO__/org/apache/myfaces/tobago/tobago-theme-charlotteville/4.0.1-SNAPSHOT/tobago-theme-charlotteville-4.0.1-SNAPSHOT.pom
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 01:21 min
-[INFO] Finished at: 2017-11-28T19:02:36+01:00
-[INFO] Final Memory: 26M/86M
+[INFO] Total time: 49.541 s
+[INFO] Finished at: 2018-01-03T13:34:17+01:00
+[INFO] Final Memory: 36M/506M
 [INFO] ------------------------------------------------------------------------
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
index 213e2c8..ca1abfc 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
@@ -1,6 +1,6 @@
 @charset "UTF-8";
 /*!
- * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -49,65 +49,7 @@
   --breakpoint-lg: 992px;
   --breakpoint-xl: 1200px;
   --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  --font-family-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-}
-
-@media print {
-  *,
-  *::before,
-  *::after {
-    text-shadow: none !important;
-    box-shadow: none !important;
-  }
-  a,
-  a:visited {
-    text-decoration: underline;
-  }
-  abbr[title]::after {
-    content: " (" attr(title) ")";
-  }
-  pre {
-    white-space: pre-wrap !important;
-  }
-  pre,
-  blockquote {
-    border: 1px solid #999;
-    page-break-inside: avoid;
-  }
-  thead {
-    display: table-header-group;
-  }
-  tr,
-  img {
-    page-break-inside: avoid;
-  }
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3;
-  }
-  h2,
-  h3 {
-    page-break-after: avoid;
-  }
-  .navbar {
-    display: none;
-  }
-  .badge {
-    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-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
 }
 
 *,
@@ -145,7 +87,7 @@ body {
 }
 
 [tabindex="-1"]:focus {
-  outline: none !important;
+  outline: 0 !important;
 }
 
 hr {
@@ -168,7 +110,7 @@ abbr[title],
 abbr[data-original-title] {
   text-decoration: underline;
   -webkit-text-decoration: underline dotted;
-          text-decoration: underline dotted;
+  text-decoration: underline dotted;
   cursor: help;
   border-bottom: 0;
 }
@@ -299,7 +241,7 @@ select,
 summary,
 textarea {
   -ms-touch-action: manipulation;
-      touch-action: manipulation;
+  touch-action: manipulation;
 }
 
 table {
@@ -435,6 +377,7 @@ output {
 
 summary {
   display: list-item;
+  cursor: pointer;
 }
 
 template {
@@ -541,7 +484,7 @@ mark,
 }
 
 .list-inline-item:not(:last-child) {
-  margin-right: 5px;
+  margin-right: 0.5rem;
 }
 
 .initialism {
@@ -572,9 +515,8 @@ mark,
 .img-thumbnail {
   padding: 0.25rem;
   background-color: #fff;
-  border: 1px solid #ddd;
+  border: 1px solid #dee2e6;
   border-radius: 0.25rem;
-  transition: all 0.2s ease-in-out;
   max-width: 100%;
   height: auto;
 }
@@ -597,26 +539,22 @@ code,
 kbd,
 pre,
 samp {
-  font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
 }
 
 code {
-  padding: 0.2rem 0.4rem;
-  font-size: 90%;
-  color: #bd4147;
-  background-color: #f8f9fa;
-  border-radius: 0.25rem;
+  font-size: 87.5%;
+  color: #e83e8c;
+  word-break: break-word;
 }
 
 a > code {
-  padding: 0;
   color: inherit;
-  background-color: inherit;
 }
 
 kbd {
   padding: 0.2rem 0.4rem;
-  font-size: 90%;
+  font-size: 87.5%;
   color: #fff;
   background-color: #212529;
   border-radius: 0.2rem;
@@ -630,18 +568,14 @@ kbd kbd {
 
 pre {
   display: block;
-  margin-top: 0;
-  margin-bottom: 1rem;
-  font-size: 90%;
+  font-size: 87.5%;
   color: #212529;
 }
 
 pre code {
-  padding: 0;
   font-size: inherit;
   color: inherit;
-  background-color: transparent;
-  border-radius: 0;
+  word-break: normal;
 }
 
 .pre-scrollable {
@@ -690,10 +624,11 @@ pre code {
 }
 
 .row {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
   margin-right: -15px;
   margin-left: -15px;
 }
@@ -724,154 +659,181 @@ pre code {
 
 .col {
   -ms-flex-preferred-size: 0;
-      flex-basis: 0;
+  flex-basis: 0;
+  -webkit-box-flex: 1;
   -ms-flex-positive: 1;
-      flex-grow: 1;
+  flex-grow: 1;
   max-width: 100%;
 }
 
 .col-auto {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 auto;
-      flex: 0 0 auto;
+  flex: 0 0 auto;
   width: auto;
   max-width: none;
 }
 
 .col-1 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 8.333333%;
-      flex: 0 0 8.333333%;
+  flex: 0 0 8.333333%;
   max-width: 8.333333%;
 }
 
 .col-2 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 16.666667%;
-      flex: 0 0 16.666667%;
+  flex: 0 0 16.666667%;
   max-width: 16.666667%;
 }
 
 .col-3 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 25%;
-      flex: 0 0 25%;
+  flex: 0 0 25%;
   max-width: 25%;
 }
 
 .col-4 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 33.333333%;
-      flex: 0 0 33.333333%;
+  flex: 0 0 33.333333%;
   max-width: 33.333333%;
 }
 
 .col-5 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 41.666667%;
-      flex: 0 0 41.666667%;
+  flex: 0 0 41.666667%;
   max-width: 41.666667%;
 }
 
 .col-6 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 50%;
-      flex: 0 0 50%;
+  flex: 0 0 50%;
   max-width: 50%;
 }
 
 .col-7 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 58.333333%;
-      flex: 0 0 58.333333%;
+  flex: 0 0 58.333333%;
   max-width: 58.333333%;
 }
 
 .col-8 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 66.666667%;
-      flex: 0 0 66.666667%;
+  flex: 0 0 66.666667%;
   max-width: 66.666667%;
 }
 
 .col-9 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 75%;
-      flex: 0 0 75%;
+  flex: 0 0 75%;
   max-width: 75%;
 }
 
 .col-10 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 83.333333%;
-      flex: 0 0 83.333333%;
+  flex: 0 0 83.333333%;
   max-width: 83.333333%;
 }
 
 .col-11 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 91.666667%;
-      flex: 0 0 91.666667%;
+  flex: 0 0 91.666667%;
   max-width: 91.666667%;
 }
 
 .col-12 {
+  -webkit-box-flex: 0;
   -ms-flex: 0 0 100%;
-      flex: 0 0 100%;
+  flex: 0 0 100%;
   max-width: 100%;
 }
 
 .order-first {
+  -webkit-box-ordinal-group: 0;
   -ms-flex-order: -1;
-      order: -1;
+  order: -1;
 }
 
 .order-1 {
+  -webkit-box-ordinal-group: 2;
   -ms-flex-order: 1;
-      order: 1;
+  order: 1;
 }
 
 .order-2 {
+  -webkit-box-ordinal-group: 3;
   -ms-flex-order: 2;
-      order: 2;
+  order: 2;
 }
 
 .order-3 {
+  -webkit-box-ordinal-group: 4;
   -ms-flex-order: 3;
-      order: 3;
+  order: 3;
 }
 
 .order-4 {
+  -webkit-box-ordinal-group: 5;
   -ms-flex-order: 4;
-      order: 4;
+  order: 4;
 }
 
 .order-5 {
+  -webkit-box-ordinal-group: 6;
   -ms-flex-order: 5;
-      order: 5;
+  order: 5;
 }
 
 .order-6 {
+  -webkit-box-ordinal-group: 7;
   -ms-flex-order: 6;
-      order: 6;
+  order: 6;
 }
 
 .order-7 {
+  -webkit-box-ordinal-group: 8;
   -ms-flex-order: 7;
-      order: 7;
+  order: 7;
 }
 
 .order-8 {
+  -webkit-box-ordinal-group: 9;
   -ms-flex-order: 8;
-      order: 8;
+  order: 8;
 }
 
 .order-9 {
+  -webkit-box-ordinal-group: 10;
   -ms-flex-order: 9;
-      order: 9;
+  order: 9;
 }
 
 .order-10 {
+  -webkit-box-ordinal-group: 11;
   -ms-flex-order: 10;
-      order: 10;
+  order: 10;
 }
 
 .order-11 {
+  -webkit-box-ordinal-group: 12;
   -ms-flex-order: 11;
-      order: 11;
+  order: 11;
 }
 
 .order-12 {
+  -webkit-box-ordinal-group: 13;
   -ms-flex-order: 12;
-      order: 12;
+  order: 12;
 }
 
 .offset-1 {
@@ -921,128 +883,155 @@ pre code {
 @media (min-width: 576px) {
   .col-sm {
     -ms-flex-preferred-size: 0;
-        flex-basis: 0;
+    flex-basis: 0;
+    -webkit-box-flex: 1;
     -ms-flex-positive: 1;
-        flex-grow: 1;
+    flex-grow: 1;
     max-width: 100%;
   }
   .col-sm-auto {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 auto;
-        flex: 0 0 auto;
+    flex: 0 0 auto;
     width: auto;
     max-width: none;
   }
   .col-sm-1 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 8.333333%;
-        flex: 0 0 8.333333%;
+    flex: 0 0 8.333333%;
     max-width: 8.333333%;
   }
   .col-sm-2 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 16.666667%;
-        flex: 0 0 16.666667%;
+    flex: 0 0 16.666667%;
     max-width: 16.666667%;
   }
   .col-sm-3 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 25%;
-        flex: 0 0 25%;
+    flex: 0 0 25%;
     max-width: 25%;
   }
   .col-sm-4 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 33.333333%;
-        flex: 0 0 33.333333%;
+    flex: 0 0 33.333333%;
     max-width: 33.333333%;
   }
   .col-sm-5 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 41.666667%;
-        flex: 0 0 41.666667%;
+    flex: 0 0 41.666667%;
     max-width: 41.666667%;
   }
   .col-sm-6 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 50%;
-        flex: 0 0 50%;
+    flex: 0 0 50%;
     max-width: 50%;
   }
   .col-sm-7 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 58.333333%;
-        flex: 0 0 58.333333%;
+    flex: 0 0 58.333333%;
     max-width: 58.333333%;
   }
   .col-sm-8 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 66.666667%;
-        flex: 0 0 66.666667%;
+    flex: 0 0 66.666667%;
     max-width: 66.666667%;
   }
   .col-sm-9 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 75%;
-        flex: 0 0 75%;
+    flex: 0 0 75%;
     max-width: 75%;
   }
   .col-sm-10 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 83.333333%;
-        flex: 0 0 83.333333%;
+    flex: 0 0 83.333333%;
     max-width: 83.333333%;
   }
   .col-sm-11 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 91.666667%;
-        flex: 0 0 91.666667%;
+    flex: 0 0 91.666667%;
     max-width: 91.666667%;
   }
   .col-sm-12 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 100%;
-        flex: 0 0 100%;
+    flex: 0 0 100%;
     max-width: 100%;
   }
   .order-sm-first {
+    -webkit-box-ordinal-group: 0;
     -ms-flex-order: -1;
-        order: -1;
+    order: -1;
   }
   .order-sm-1 {
+    -webkit-box-ordinal-group: 2;
     -ms-flex-order: 1;
-        order: 1;
+    order: 1;
   }
   .order-sm-2 {
+    -webkit-box-ordinal-group: 3;
     -ms-flex-order: 2;
-        order: 2;
+    order: 2;
   }
   .order-sm-3 {
+    -webkit-box-ordinal-group: 4;
     -ms-flex-order: 3;
-        order: 3;
+    order: 3;
   }
   .order-sm-4 {
+    -webkit-box-ordinal-group: 5;
     -ms-flex-order: 4;
-        order: 4;
+    order: 4;
   }
   .order-sm-5 {
+    -webkit-box-ordinal-group: 6;
     -ms-flex-order: 5;
-        order: 5;
+    order: 5;
   }
   .order-sm-6 {
+    -webkit-box-ordinal-group: 7;
     -ms-flex-order: 6;
-        order: 6;
+    order: 6;
   }
   .order-sm-7 {
+    -webkit-box-ordinal-group: 8;
     -ms-flex-order: 7;
-        order: 7;
+    order: 7;
   }
   .order-sm-8 {
+    -webkit-box-ordinal-group: 9;
     -ms-flex-order: 8;
-        order: 8;
+    order: 8;
   }
   .order-sm-9 {
+    -webkit-box-ordinal-group: 10;
     -ms-flex-order: 9;
-        order: 9;
+    order: 9;
   }
   .order-sm-10 {
+    -webkit-box-ordinal-group: 11;
     -ms-flex-order: 10;
-        order: 10;
+    order: 10;
   }
   .order-sm-11 {
+    -webkit-box-ordinal-group: 12;
     -ms-flex-order: 11;
-        order: 11;
+    order: 11;
   }
   .order-sm-12 {
+    -webkit-box-ordinal-group: 13;
     -ms-flex-order: 12;
-        order: 12;
+    order: 12;
   }
   .offset-sm-0 {
     margin-left: 0;
@@ -1085,128 +1074,155 @@ pre code {
 @media (min-width: 768px) {
   .col-md {
     -ms-flex-preferred-size: 0;
-        flex-basis: 0;
+    flex-basis: 0;
+    -webkit-box-flex: 1;
     -ms-flex-positive: 1;
-        flex-grow: 1;
+    flex-grow: 1;
     max-width: 100%;
   }
   .col-md-auto {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 auto;
-        flex: 0 0 auto;
+    flex: 0 0 auto;
     width: auto;
     max-width: none;
   }
   .col-md-1 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 8.333333%;
-        flex: 0 0 8.333333%;
+    flex: 0 0 8.333333%;
     max-width: 8.333333%;
   }
   .col-md-2 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 16.666667%;
-        flex: 0 0 16.666667%;
+    flex: 0 0 16.666667%;
     max-width: 16.666667%;
   }
   .col-md-3 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 25%;
-        flex: 0 0 25%;
+    flex: 0 0 25%;
     max-width: 25%;
   }
   .col-md-4 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 33.333333%;
-        flex: 0 0 33.333333%;
+    flex: 0 0 33.333333%;
     max-width: 33.333333%;
   }
   .col-md-5 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 41.666667%;
-        flex: 0 0 41.666667%;
+    flex: 0 0 41.666667%;
     max-width: 41.666667%;
   }
   .col-md-6 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 50%;
-        flex: 0 0 50%;
+    flex: 0 0 50%;
     max-width: 50%;
   }
   .col-md-7 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 58.333333%;
-        flex: 0 0 58.333333%;
+    flex: 0 0 58.333333%;
     max-width: 58.333333%;
   }
   .col-md-8 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 66.666667%;
-        flex: 0 0 66.666667%;
+    flex: 0 0 66.666667%;
     max-width: 66.666667%;
   }
   .col-md-9 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 75%;
-        flex: 0 0 75%;
+    flex: 0 0 75%;
     max-width: 75%;
   }
   .col-md-10 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 83.333333%;
-        flex: 0 0 83.333333%;
+    flex: 0 0 83.333333%;
     max-width: 83.333333%;
   }
   .col-md-11 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 91.666667%;
-        flex: 0 0 91.666667%;
+    flex: 0 0 91.666667%;
     max-width: 91.666667%;
   }
   .col-md-12 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 100%;
-        flex: 0 0 100%;
+    flex: 0 0 100%;
     max-width: 100%;
   }
   .order-md-first {
+    -webkit-box-ordinal-group: 0;
     -ms-flex-order: -1;
-        order: -1;
+    order: -1;
   }
   .order-md-1 {
+    -webkit-box-ordinal-group: 2;
     -ms-flex-order: 1;
-        order: 1;
+    order: 1;
   }
   .order-md-2 {
+    -webkit-box-ordinal-group: 3;
     -ms-flex-order: 2;
-        order: 2;
+    order: 2;
   }
   .order-md-3 {
+    -webkit-box-ordinal-group: 4;
     -ms-flex-order: 3;
-        order: 3;
+    order: 3;
   }
   .order-md-4 {
+    -webkit-box-ordinal-group: 5;
     -ms-flex-order: 4;
-        order: 4;
+    order: 4;
   }
   .order-md-5 {
+    -webkit-box-ordinal-group: 6;
     -ms-flex-order: 5;
-        order: 5;
+    order: 5;
   }
   .order-md-6 {
+    -webkit-box-ordinal-group: 7;
     -ms-flex-order: 6;
-        order: 6;
+    order: 6;
   }
   .order-md-7 {
+    -webkit-box-ordinal-group: 8;
     -ms-flex-order: 7;
-        order: 7;
+    order: 7;
   }
   .order-md-8 {
+    -webkit-box-ordinal-group: 9;
     -ms-flex-order: 8;
-        order: 8;
+    order: 8;
   }
   .order-md-9 {
+    -webkit-box-ordinal-group: 10;
     -ms-flex-order: 9;
-        order: 9;
+    order: 9;
   }
   .order-md-10 {
+    -webkit-box-ordinal-group: 11;
     -ms-flex-order: 10;
-        order: 10;
+    order: 10;
   }
   .order-md-11 {
+    -webkit-box-ordinal-group: 12;
     -ms-flex-order: 11;
-        order: 11;
+    order: 11;
   }
   .order-md-12 {
+    -webkit-box-ordinal-group: 13;
     -ms-flex-order: 12;
-        order: 12;
+    order: 12;
   }
   .offset-md-0 {
     margin-left: 0;
@@ -1249,128 +1265,155 @@ pre code {
 @media (min-width: 992px) {
   .col-lg {
     -ms-flex-preferred-size: 0;
-        flex-basis: 0;
+    flex-basis: 0;
+    -webkit-box-flex: 1;
     -ms-flex-positive: 1;
-        flex-grow: 1;
+    flex-grow: 1;
     max-width: 100%;
   }
   .col-lg-auto {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 auto;
-        flex: 0 0 auto;
+    flex: 0 0 auto;
     width: auto;
     max-width: none;
   }
   .col-lg-1 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 8.333333%;
-        flex: 0 0 8.333333%;
+    flex: 0 0 8.333333%;
     max-width: 8.333333%;
   }
   .col-lg-2 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 16.666667%;
-        flex: 0 0 16.666667%;
+    flex: 0 0 16.666667%;
     max-width: 16.666667%;
   }
   .col-lg-3 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 25%;
-        flex: 0 0 25%;
+    flex: 0 0 25%;
     max-width: 25%;
   }
   .col-lg-4 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 33.333333%;
-        flex: 0 0 33.333333%;
+    flex: 0 0 33.333333%;
     max-width: 33.333333%;
   }
   .col-lg-5 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 41.666667%;
-        flex: 0 0 41.666667%;
+    flex: 0 0 41.666667%;
     max-width: 41.666667%;
   }
   .col-lg-6 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 50%;
-        flex: 0 0 50%;
+    flex: 0 0 50%;
     max-width: 50%;
   }
   .col-lg-7 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 58.333333%;
-        flex: 0 0 58.333333%;
+    flex: 0 0 58.333333%;
     max-width: 58.333333%;
   }
   .col-lg-8 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 66.666667%;
-        flex: 0 0 66.666667%;
+    flex: 0 0 66.666667%;
     max-width: 66.666667%;
   }
   .col-lg-9 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 75%;
-        flex: 0 0 75%;
+    flex: 0 0 75%;
     max-width: 75%;
   }
   .col-lg-10 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 83.333333%;
-        flex: 0 0 83.333333%;
+    flex: 0 0 83.333333%;
     max-width: 83.333333%;
   }
   .col-lg-11 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 91.666667%;
-        flex: 0 0 91.666667%;
+    flex: 0 0 91.666667%;
     max-width: 91.666667%;
   }
   .col-lg-12 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 100%;
-        flex: 0 0 100%;
+    flex: 0 0 100%;
     max-width: 100%;
   }
   .order-lg-first {
+    -webkit-box-ordinal-group: 0;
     -ms-flex-order: -1;
-        order: -1;
+    order: -1;
   }
   .order-lg-1 {
+    -webkit-box-ordinal-group: 2;
     -ms-flex-order: 1;
-        order: 1;
+    order: 1;
   }
   .order-lg-2 {
+    -webkit-box-ordinal-group: 3;
     -ms-flex-order: 2;
-        order: 2;
+    order: 2;
   }
   .order-lg-3 {
+    -webkit-box-ordinal-group: 4;
     -ms-flex-order: 3;
-        order: 3;
+    order: 3;
   }
   .order-lg-4 {
+    -webkit-box-ordinal-group: 5;
     -ms-flex-order: 4;
-        order: 4;
+    order: 4;
   }
   .order-lg-5 {
+    -webkit-box-ordinal-group: 6;
     -ms-flex-order: 5;
-        order: 5;
+    order: 5;
   }
   .order-lg-6 {
+    -webkit-box-ordinal-group: 7;
     -ms-flex-order: 6;
-        order: 6;
+    order: 6;
   }
   .order-lg-7 {
+    -webkit-box-ordinal-group: 8;
     -ms-flex-order: 7;
-        order: 7;
+    order: 7;
   }
   .order-lg-8 {
+    -webkit-box-ordinal-group: 9;
     -ms-flex-order: 8;
-        order: 8;
+    order: 8;
   }
   .order-lg-9 {
+    -webkit-box-ordinal-group: 10;
     -ms-flex-order: 9;
-        order: 9;
+    order: 9;
   }
   .order-lg-10 {
+    -webkit-box-ordinal-group: 11;
     -ms-flex-order: 10;
-        order: 10;
+    order: 10;
   }
   .order-lg-11 {
+    -webkit-box-ordinal-group: 12;
     -ms-flex-order: 11;
-        order: 11;
+    order: 11;
   }
   .order-lg-12 {
+    -webkit-box-ordinal-group: 13;
     -ms-flex-order: 12;
-        order: 12;
+    order: 12;
   }
   .offset-lg-0 {
     margin-left: 0;
@@ -1413,128 +1456,155 @@ pre code {
 @media (min-width: 1200px) {
   .col-xl {
     -ms-flex-preferred-size: 0;
-        flex-basis: 0;
+    flex-basis: 0;
+    -webkit-box-flex: 1;
     -ms-flex-positive: 1;
-        flex-grow: 1;
+    flex-grow: 1;
     max-width: 100%;
   }
   .col-xl-auto {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 auto;
-        flex: 0 0 auto;
+    flex: 0 0 auto;
     width: auto;
     max-width: none;
   }
   .col-xl-1 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 8.333333%;
-        flex: 0 0 8.333333%;
+    flex: 0 0 8.333333%;
     max-width: 8.333333%;
   }
   .col-xl-2 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 16.666667%;
-        flex: 0 0 16.666667%;
+    flex: 0 0 16.666667%;
     max-width: 16.666667%;
   }
   .col-xl-3 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 25%;
-        flex: 0 0 25%;
+    flex: 0 0 25%;
     max-width: 25%;
   }
   .col-xl-4 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 33.333333%;
-        flex: 0 0 33.333333%;
+    flex: 0 0 33.333333%;
     max-width: 33.333333%;
   }
   .col-xl-5 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 41.666667%;
-        flex: 0 0 41.666667%;
+    flex: 0 0 41.666667%;
     max-width: 41.666667%;
   }
   .col-xl-6 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 50%;
-        flex: 0 0 50%;
+    flex: 0 0 50%;
     max-width: 50%;
   }
   .col-xl-7 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 58.333333%;
-        flex: 0 0 58.333333%;
+    flex: 0 0 58.333333%;
     max-width: 58.333333%;
   }
   .col-xl-8 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 66.666667%;
-        flex: 0 0 66.666667%;
+    flex: 0 0 66.666667%;
     max-width: 66.666667%;
   }
   .col-xl-9 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 75%;
-        flex: 0 0 75%;
+    flex: 0 0 75%;
     max-width: 75%;
   }
   .col-xl-10 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 83.333333%;
-        flex: 0 0 83.333333%;
+    flex: 0 0 83.333333%;
     max-width: 83.333333%;
   }
   .col-xl-11 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 91.666667%;
-        flex: 0 0 91.666667%;
+    flex: 0 0 91.666667%;
     max-width: 91.666667%;
   }
   .col-xl-12 {
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 100%;
-        flex: 0 0 100%;
+    flex: 0 0 100%;
     max-width: 100%;
   }
   .order-xl-first {
+    -webkit-box-ordinal-group: 0;
     -ms-flex-order: -1;
-        order: -1;
+    order: -1;
   }
   .order-xl-1 {
+    -webkit-box-ordinal-group: 2;
     -ms-flex-order: 1;
-        order: 1;
+    order: 1;
   }
   .order-xl-2 {
+    -webkit-box-ordinal-group: 3;
     -ms-flex-order: 2;
-        order: 2;
+    order: 2;
   }
   .order-xl-3 {
+    -webkit-box-ordinal-group: 4;
     -ms-flex-order: 3;
-        order: 3;
+    order: 3;
   }
   .order-xl-4 {
+    -webkit-box-ordinal-group: 5;
     -ms-flex-order: 4;
-        order: 4;
+    order: 4;
   }
   .order-xl-5 {
+    -webkit-box-ordinal-group: 6;
     -ms-flex-order: 5;
-        order: 5;
+    order: 5;
   }
   .order-xl-6 {
+    -webkit-box-ordinal-group: 7;
     -ms-flex-order: 6;
-        order: 6;
+    order: 6;
   }
   .order-xl-7 {
+    -webkit-box-ordinal-group: 8;
     -ms-flex-order: 7;
-        order: 7;
+    order: 7;
   }
   .order-xl-8 {
+    -webkit-box-ordinal-group: 9;
     -ms-flex-order: 8;
-        order: 8;
+    order: 8;
   }
   .order-xl-9 {
+    -webkit-box-ordinal-group: 10;
     -ms-flex-order: 9;
-        order: 9;
+    order: 9;
   }
   .order-xl-10 {
+    -webkit-box-ordinal-group: 11;
     -ms-flex-order: 10;
-        order: 10;
+    order: 10;
   }
   .order-xl-11 {
+    -webkit-box-ordinal-group: 12;
     -ms-flex-order: 11;
-        order: 11;
+    order: 11;
   }
   .order-xl-12 {
+    -webkit-box-ordinal-group: 13;
     -ms-flex-order: 12;
-        order: 12;
+    order: 12;
   }
   .offset-xl-0 {
     margin-left: 0;
@@ -1585,16 +1655,16 @@ pre code {
 .table td {
   padding: 0.75rem;
   vertical-align: top;
-  border-top: 1px solid #e9ecef;
+  border-top: 1px solid #dee2e6;
 }
 
 .table thead th {
   vertical-align: bottom;
-  border-bottom: 2px solid #e9ecef;
+  border-bottom: 2px solid #dee2e6;
 }
 
 .table tbody + tbody {
-  border-top: 2px solid #e9ecef;
+  border-top: 2px solid #dee2e6;
 }
 
 .table .table {
@@ -1607,12 +1677,12 @@ pre code {
 }
 
 .table-bordered {
-  border: 1px solid #e9ecef;
+  border: 1px solid #dee2e6;
 }
 
 .table-bordered th,
 .table-bordered td {
-  border: 1px solid #e9ecef;
+  border: 1px solid #dee2e6;
 }
 
 .table-bordered thead th,
@@ -1772,7 +1842,7 @@ pre code {
 .table .thead-light th {
   color: #495057;
   background-color: #e9ecef;
-  border-color: #e9ecef;
+  border-color: #dee2e6;
 }
 
 .table-dark {
@@ -1798,7 +1868,7 @@ pre code {
   background-color: rgba(255, 255, 255, 0.075);
 }
 
-@media (max-width: 575px) {
+@media (max-width: 575.99px) {
   .table-responsive-sm {
     display: block;
     width: 100%;
@@ -1806,12 +1876,12 @@ pre code {
     -webkit-overflow-scrolling: touch;
     -ms-overflow-style: -ms-autohiding-scrollbar;
   }
-  .table-responsive-sm.table-bordered {
+  .table-responsive-sm > .table-bordered {
     border: 0;
   }
 }
 
-@media (max-width: 767px) {
+@media (max-width: 767.99px) {
   .table-responsive-md {
     display: block;
     width: 100%;
@@ -1819,12 +1889,12 @@ pre code {
     -webkit-overflow-scrolling: touch;
     -ms-overflow-style: -ms-autohiding-scrollbar;
   }
-  .table-responsive-md.table-bordered {
+  .table-responsive-md > .table-bordered {
     border: 0;
   }
 }
 
-@media (max-width: 991px) {
+@media (max-width: 991.99px) {
   .table-responsive-lg {
     display: block;
     width: 100%;
@@ -1832,12 +1902,12 @@ pre code {
     -webkit-overflow-scrolling: touch;
     -ms-overflow-style: -ms-autohiding-scrollbar;
   }
-  .table-responsive-lg.table-bordered {
+  .table-responsive-lg > .table-bordered {
     border: 0;
   }
 }
 
-@media (max-width: 1199px) {
+@media (max-width: 1199.99px) {
   .table-responsive-xl {
     display: block;
     width: 100%;
@@ -1845,7 +1915,7 @@ pre code {
     -webkit-overflow-scrolling: touch;
     -ms-overflow-style: -ms-autohiding-scrollbar;
   }
-  .table-responsive-xl.table-bordered {
+  .table-responsive-xl > .table-bordered {
     border: 0;
   }
 }
@@ -1858,7 +1928,7 @@ pre code {
   -ms-overflow-style: -ms-autohiding-scrollbar;
 }
 
-.table-responsive.table-bordered {
+.table-responsive > .table-bordered {
   border: 0;
 }
 
@@ -1870,11 +1940,10 @@ pre code {
   line-height: 1.5;
   color: #495057;
   background-color: #fff;
-  background-image: none;
   background-clip: padding-box;
   border: 1px solid #ced4da;
   border-radius: 0.25rem;
-  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
 }
 
 .form-control::-ms-expand {
@@ -1886,7 +1955,7 @@ pre code {
   color: #495057;
   background-color: #fff;
   border-color: #80bdff;
-  outline: none;
+  outline: 0;
   box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
 }
 
@@ -1895,6 +1964,11 @@ pre code {
   opacity: 1;
 }
 
+.form-control::-moz-placeholder {
+  color: #868e96;
+  opacity: 1;
+}
+
 .form-control:-ms-input-placeholder {
   color: #868e96;
   opacity: 1;
@@ -1927,12 +2001,14 @@ select.form-control:focus::-ms-value {
 .form-control-file,
 .form-control-range {
   display: block;
+  width: 100%;
 }
 
 .col-form-label {
   padding-top: calc(0.375rem + 1px);
   padding-bottom: calc(0.375rem + 1px);
   margin-bottom: 0;
+  font-size: inherit;
   line-height: 1.5;
 }
 
@@ -1950,14 +2026,9 @@ select.form-control:focus::-ms-value {
   line-height: 1.5;
 }
 
-.col-form-legend {
-  padding-top: 0.375rem;
-  padding-bottom: 0.375rem;
-  margin-bottom: 0;
-  font-size: 1rem;
-}
-
 .form-control-plaintext {
+  display: block;
+  width: 100%;
   padding-top: 0.375rem;
   padding-bottom: 0.375rem;
   margin-bottom: 0;
@@ -1968,17 +2039,23 @@ select.form-control:focus::-ms-value {
 }
 
 .form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,
-.input-group-sm > .form-control-plaintext.input-group-addon,
-.input-group-sm > .input-group-btn > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
-.input-group-lg > .form-control-plaintext.input-group-addon,
-.input-group-lg > .input-group-btn > .form-control-plaintext.btn {
+.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,
+.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,
+.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,
+.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
+.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,
+.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,
+.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,
+.input-group-lg > .input-group-append > .form-control-plaintext.btn {
   padding-right: 0;
   padding-left: 0;
 }
 
 .form-control-sm, .input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
+.input-group-sm > .input-group-prepend > .input-group-text,
+.input-group-sm > .input-group-append > .input-group-text,
+.input-group-sm > .input-group-prepend > .btn,
+.input-group-sm > .input-group-append > .btn {
   padding: 0.25rem 0.5rem;
   font-size: 0.875rem;
   line-height: 1.5;
@@ -1986,14 +2063,18 @@ select.form-control:focus::-ms-value {
 }
 
 select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
-.input-group-sm > select.input-group-addon:not([size]):not([multiple]),
-.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {
+.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
+.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),
+.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),
+.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {
   height: calc(1.8125rem + 2px);
 }
 
 .form-control-lg, .input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
+.input-group-lg > .input-group-prepend > .input-group-text,
+.input-group-lg > .input-group-append > .input-group-text,
+.input-group-lg > .input-group-prepend > .btn,
+.input-group-lg > .input-group-append > .btn {
   padding: 0.5rem 1rem;
   font-size: 1.25rem;
   line-height: 1.5;
@@ -2001,8 +2082,10 @@ select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.for
 }
 
 select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
-.input-group-lg > select.input-group-addon:not([size]):not([multiple]),
-.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {
+.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
+.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),
+.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),
+.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {
   height: calc(2.875rem + 2px);
 }
 
@@ -2016,10 +2099,11 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 }
 
 .form-row {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
   margin-right: -5px;
   margin-left: -5px;
 }
@@ -2033,37 +2117,46 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 .form-check {
   position: relative;
   display: block;
-  margin-bottom: 0.5rem;
+  padding-left: 1.25rem;
+}
+
+.form-check-input {
+  position: absolute;
+  margin-top: 0.3rem;
+  margin-left: -1.25rem;
 }
 
-.form-check.disabled .form-check-label {
+.form-check-input:disabled ~ .form-check-label {
   color: #868e96;
 }
 
 .form-check-label {
-  padding-left: 1.25rem;
   margin-bottom: 0;
 }
 
-.form-check-input {
-  position: absolute;
-  margin-top: 0.25rem;
-  margin-left: -1.25rem;
-}
-
 .form-check-inline {
-  display: inline-block;
+  display: -webkit-inline-box;
+  display: -ms-inline-flexbox;
+  display: inline-flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  padding-left: 0;
   margin-right: 0.75rem;
 }
 
-.form-check-inline .form-check-label {
-  vertical-align: middle;
+.form-check-inline .form-check-input {
+  position: static;
+  margin-top: 0;
+  margin-right: 0.3125rem;
+  margin-left: 0;
 }
 
 .valid-feedback {
   display: none;
-  margin-top: .25rem;
-  font-size: .875rem;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 80%;
   color: #28a745;
 }
 
@@ -2091,6 +2184,7 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 .was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
 .custom-select:valid:focus,
 .custom-select.is-valid:focus {
+  border-color: #28a745;
   box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
 }
 
@@ -2105,34 +2199,55 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
   display: block;
 }
 
-.was-validated .form-check-input:valid + .form-check-label, .form-check-input.is-valid + .form-check-label {
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
   color: #28a745;
 }
 
-.was-validated .custom-control-input:valid ~ .custom-control-indicator, .custom-control-input.is-valid ~ .custom-control-indicator {
-  background-color: rgba(40, 167, 69, 0.25);
+.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
+  color: #28a745;
 }
 
-.was-validated .custom-control-input:valid ~ .custom-control-description, .custom-control-input.is-valid ~ .custom-control-description {
-  color: #28a745;
+.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
+  background-color: #71dd8a;
+}
+
+.was-validated .custom-control-input:valid ~ .valid-feedback,
+.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
+.custom-control-input.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
+  background-color: #34ce57;
+}
+
+.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #ffeecf, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
 }
 
-.was-validated .custom-file-input:valid ~ .custom-file-control, .custom-file-input.is-valid ~ .custom-file-control {
+.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
   border-color: #28a745;
 }
 
-.was-validated .custom-file-input:valid ~ .custom-file-control::before, .custom-file-input.is-valid ~ .custom-file-control::before {
+.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {
   border-color: inherit;
 }
 
-.was-validated .custom-file-input:valid:focus, .custom-file-input.is-valid:focus {
+.was-validated .custom-file-input:valid ~ .valid-feedback,
+.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
+.custom-file-input.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
   box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
 }
 
 .invalid-feedback {
   display: none;
-  margin-top: .25rem;
-  font-size: .875rem;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 80%;
   color: #dc3545;
 }
 
@@ -2160,6 +2275,7 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
 .custom-select:invalid:focus,
 .custom-select.is-invalid:focus {
+  border-color: #dc3545;
   box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
 }
 
@@ -2174,37 +2290,61 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
   display: block;
 }
 
-.was-validated .form-check-input:invalid + .form-check-label, .form-check-input.is-invalid + .form-check-label {
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
   color: #dc3545;
 }
 
-.was-validated .custom-control-input:invalid ~ .custom-control-indicator, .custom-control-input.is-invalid ~ .custom-control-indicator {
-  background-color: rgba(220, 53, 69, 0.25);
+.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
+  color: #dc3545;
 }
 
-.was-validated .custom-control-input:invalid ~ .custom-control-description, .custom-control-input.is-invalid ~ .custom-control-description {
-  color: #dc3545;
+.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
+  background-color: #efa2a9;
 }
 
-.was-validated .custom-file-input:invalid ~ .custom-file-control, .custom-file-input.is-invalid ~ .custom-file-control {
+.was-validated .custom-control-input:invalid ~ .invalid-feedback,
+.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
+.custom-control-input.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
+  background-color: #e4606d;
+}
+
+.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #ffeecf, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
   border-color: #dc3545;
 }
 
-.was-validated .custom-file-input:invalid ~ .custom-file-control::before, .custom-file-input.is-invalid ~ .custom-file-control::before {
+.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {
   border-color: inherit;
 }
 
-.was-validated .custom-file-input:invalid:focus, .custom-file-input.is-invalid:focus {
+.was-validated .custom-file-input:invalid ~ .invalid-feedback,
+.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
+.custom-file-input.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
   box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
 }
 
 .form-inline {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: horizontal;
+  -webkit-box-direction: normal;
   -ms-flex-flow: row wrap;
-      flex-flow: row wrap;
+  flex-flow: row wrap;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
 }
 
 .form-inline .form-check {
@@ -2213,23 +2353,31 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 
 @media (min-width: 576px) {
   .form-inline label {
+    display: -webkit-box;
     display: -ms-flexbox;
     display: flex;
+    -webkit-box-align: center;
     -ms-flex-align: center;
-        align-items: center;
+    align-items: center;
+    -webkit-box-pack: center;
     -ms-flex-pack: center;
-        justify-content: center;
+    justify-content: center;
     margin-bottom: 0;
   }
   .form-inline .form-group {
+    display: -webkit-box;
     display: -ms-flexbox;
     display: flex;
+    -webkit-box-flex: 0;
     -ms-flex: 0 0 auto;
-        flex: 0 0 auto;
+    flex: 0 0 auto;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row wrap;
-        flex-flow: row wrap;
+    flex-flow: row wrap;
+    -webkit-box-align: center;
     -ms-flex-align: center;
-        align-items: center;
+    align-items: center;
     margin-bottom: 0;
   }
   .form-inline .form-control {
@@ -2244,17 +2392,16 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
     width: auto;
   }
   .form-inline .form-check {
+    display: -webkit-box;
     display: -ms-flexbox;
     display: flex;
+    -webkit-box-align: center;
     -ms-flex-align: center;
-        align-items: center;
+    align-items: center;
+    -webkit-box-pack: center;
     -ms-flex-pack: center;
-        justify-content: center;
+    justify-content: center;
     width: auto;
-    margin-top: 0;
-    margin-bottom: 0;
-  }
-  .form-inline .form-check-label {
     padding-left: 0;
   }
   .form-inline .form-check-input {
@@ -2264,22 +2411,15 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
     margin-left: 0;
   }
   .form-inline .custom-control {
-    display: -ms-flexbox;
-    display: flex;
+    -webkit-box-align: center;
     -ms-flex-align: center;
-        align-items: center;
+    align-items: center;
+    -webkit-box-pack: center;
     -ms-flex-pack: center;
-        justify-content: center;
-    padding-left: 0;
-  }
-  .form-inline .custom-control-indicator {
-    position: static;
-    display: inline-block;
-    margin-right: 0.25rem;
-    vertical-align: text-bottom;
+    justify-content: center;
   }
-  .form-inline .has-feedback .form-control-feedback {
-    top: 0;
+  .form-inline .custom-control-label {
+    margin-bottom: 0;
   }
 }
 
@@ -2290,15 +2430,15 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
   white-space: nowrap;
   vertical-align: middle;
   -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
   border: 1px solid transparent;
   padding: 0.375rem 0.75rem;
   font-size: 1rem;
   line-height: 1.5;
   border-radius: 0.25rem;
-  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
 }
 
 .btn:focus, .btn:hover {
@@ -2311,7 +2451,11 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
 }
 
 .btn.disabled, .btn:disabled {
-  opacity: .65;
+  opacity: 0.65;
+}
+
+.btn:not([disabled]):not(.disabled) {
+  cursor: pointer;
 }
 
 .btn:not([disabled]):not(.disabled):active, .btn:not([disabled]):not(.disabled).active {
@@ -2349,6 +2493,10 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #0062cc;
   border-color: #005cbf;
+}
+
+.btn-primary:not([disabled]):not(.disabled):active:focus, .btn-primary:not([disabled]):not(.disabled).active:focus,
+.show > .btn-primary.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
 }
 
@@ -2378,6 +2526,10 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #6c757d;
   border-color: #666e76;
+}
+
+.btn-secondary:not([disabled]):not(.disabled):active:focus, .btn-secondary:not([disabled]):not(.disabled).active:focus,
+.show > .btn-secondary.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
 }
 
@@ -2407,6 +2559,10 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #1e7e34;
   border-color: #1c7430;
+}
+
+.btn-success:not([disabled]):not(.disabled):active:focus, .btn-success:not([disabled]):not(.disabled).active:focus,
+.show > .btn-success.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
 }
 
@@ -2436,17 +2592,21 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #117a8b;
   border-color: #10707f;
+}
+
+.btn-info:not([disabled]):not(.disabled):active:focus, .btn-info:not([disabled]):not(.disabled).active:focus,
+.show > .btn-info.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
 }
 
 .btn-warning {
-  color: #111;
+  color: #212529;
   background-color: #ffc107;
   border-color: #ffc107;
 }
 
 .btn-warning:hover {
-  color: #111;
+  color: #212529;
   background-color: #e0a800;
   border-color: #d39e00;
 }
@@ -2462,9 +2622,13 @@ fieldset[disabled] a.btn {
 
 .btn-warning:not([disabled]):not(.disabled):active, .btn-warning:not([disabled]):not(.disabled).active,
 .show > .btn-warning.dropdown-toggle {
-  color: #111;
+  color: #212529;
   background-color: #d39e00;
   border-color: #c69500;
+}
+
+.btn-warning:not([disabled]):not(.disabled):active:focus, .btn-warning:not([disabled]):not(.disabled).active:focus,
+.show > .btn-warning.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
 }
 
@@ -2494,17 +2658,21 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #bd2130;
   border-color: #b21f2d;
+}
+
+.btn-danger:not([disabled]):not(.disabled):active:focus, .btn-danger:not([disabled]):not(.disabled).active:focus,
+.show > .btn-danger.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
 }
 
 .btn-light {
-  color: #111;
+  color: #212529;
   background-color: #f8f9fa;
   border-color: #f8f9fa;
 }
 
 .btn-light:hover {
-  color: #111;
+  color: #212529;
   background-color: #e2e6ea;
   border-color: #dae0e5;
 }
@@ -2520,9 +2688,13 @@ fieldset[disabled] a.btn {
 
 .btn-light:not([disabled]):not(.disabled):active, .btn-light:not([disabled]):not(.disabled).active,
 .show > .btn-light.dropdown-toggle {
-  color: #111;
+  color: #212529;
   background-color: #dae0e5;
   border-color: #d3d9df;
+}
+
+.btn-light:not([disabled]):not(.disabled):active:focus, .btn-light:not([disabled]):not(.disabled).active:focus,
+.show > .btn-light.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
 }
 
@@ -2552,6 +2724,10 @@ fieldset[disabled] a.btn {
   color: #fff;
   background-color: #1d2124;
   border-color: #171a1d;
+}
+
+.btn-dark:not([disabled]):not(.disabled):active:focus, .btn-dark:not([disabled]):not(.disabled).active:focus,
+.show > .btn-dark.dropdown-toggle:focus {
   box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
 }
 
@@ -2579,7 +2755,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active,
 .show > .btn-outline-primary.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #007bff;
   border-color: #007bff;
   box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
@@ -2609,7 +2785,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-secondary:not([disabled]):not(.disabled):active, .btn-outline-secondary:not([disabled]):not(.disabled).active,
 .show > .btn-outline-secondary.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #868e96;
   border-color: #868e96;
   box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
@@ -2639,7 +2815,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-success:not([disabled]):not(.disabled):active, .btn-outline-success:not([disabled]):not(.disabled).active,
 .show > .btn-outline-success.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #28a745;
   border-color: #28a745;
   box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
@@ -2669,7 +2845,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-info:not([disabled]):not(.disabled):active, .btn-outline-info:not([disabled]):not(.disabled).active,
 .show > .btn-outline-info.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #17a2b8;
   border-color: #17a2b8;
   box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
@@ -2683,7 +2859,7 @@ fieldset[disabled] a.btn {
 }
 
 .btn-outline-warning:hover {
-  color: #fff;
+  color: #212529;
   background-color: #ffc107;
   border-color: #ffc107;
 }
@@ -2699,7 +2875,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-warning:not([disabled]):not(.disabled):active, .btn-outline-warning:not([disabled]):not(.disabled).active,
 .show > .btn-outline-warning.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #ffc107;
   border-color: #ffc107;
   box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
@@ -2729,7 +2905,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-danger:not([disabled]):not(.disabled):active, .btn-outline-danger:not([disabled]):not(.disabled).active,
 .show > .btn-outline-danger.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #dc3545;
   border-color: #dc3545;
   box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
@@ -2759,7 +2935,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-light:not([disabled]):not(.disabled):active, .btn-outline-light:not([disabled]):not(.disabled).active,
 .show > .btn-outline-light.dropdown-toggle {
-  color: #212529;
+  color: #fff;
   background-color: #f8f9fa;
   border-color: #f8f9fa;
   box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
@@ -2789,7 +2965,7 @@ fieldset[disabled] a.btn {
 
 .btn-outline-dark:not([disabled]):not(.disabled):active, .btn-outline-dark:not([disabled]):not(.disabled).active,
 .show > .btn-outline-dark.dropdown-toggle {
-  color: #fff;
+  color: #212529;
   background-color: #343a40;
   border-color: #343a40;
   box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
@@ -2809,6 +2985,7 @@ fieldset[disabled] a.btn {
 }
 
 .btn-link:focus, .btn-link.focus {
+  text-decoration: underline;
   border-color: transparent;
   box-shadow: none;
 }
@@ -2942,6 +3119,69 @@ tbody.collapse.show {
   margin-left: 0;
 }
 
+.dropright .dropdown-menu {
+  margin-top: 0;
+  margin-left: 0.125rem;
+}
+
+.dropright .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-bottom: 0.3em solid transparent;
+  border-left: 0.3em solid;
+}
+
+.dropright .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropright .dropdown-toggle::after {
+  vertical-align: 0;
+}
+
+.dropleft .dropdown-menu {
+  margin-top: 0;
+  margin-right: 0.125rem;
+}
+
+.dropleft .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+}
+
+.dropleft .dropdown-toggle::after {
+  display: none;
+}
+
+.dropleft .dropdown-toggle::before {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-right: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0.3em solid;
+  border-bottom: 0.3em solid transparent;
+}
+
+.dropleft .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropleft .dropdown-toggle::before {
+  vertical-align: 0;
+}
+
 .dropdown-divider {
   height: 0;
   margin: 0.5rem 0;
@@ -2958,7 +3198,7 @@ tbody.collapse.show {
   color: #212529;
   text-align: inherit;
   white-space: nowrap;
-  background: none;
+  background-color: transparent;
   border: 0;
 }
 
@@ -2995,6 +3235,7 @@ tbody.collapse.show {
 .btn-group,
 .btn-group-vertical {
   position: relative;
+  display: -webkit-inline-box;
   display: -ms-inline-flexbox;
   display: inline-flex;
   vertical-align: middle;
@@ -3003,20 +3244,21 @@ tbody.collapse.show {
 .btn-group > .btn,
 .btn-group-vertical > .btn {
   position: relative;
+  -webkit-box-flex: 0;
   -ms-flex: 0 1 auto;
-      flex: 0 1 auto;
+  flex: 0 1 auto;
 }
 
 .btn-group > .btn:hover,
 .btn-group-vertical > .btn:hover {
-  z-index: 2;
+  z-index: 1;
 }
 
 .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
 .btn-group-vertical > .btn:focus,
 .btn-group-vertical > .btn:active,
 .btn-group-vertical > .btn.active {
-  z-index: 2;
+  z-index: 1;
 }
 
 .btn-group .btn + .btn,
@@ -3031,62 +3273,42 @@ tbody.collapse.show {
 }
 
 .btn-toolbar {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-box-pack: start;
   -ms-flex-pack: start;
-      justify-content: flex-start;
+  justify-content: flex-start;
 }
 
 .btn-toolbar .input-group {
   width: auto;
 }
 
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
-}
-
 .btn-group > .btn:first-child {
   margin-left: 0;
 }
 
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-
-.btn-group > .btn-group {
-  float: left;
-}
-
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-
-.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
   border-top-right-radius: 0;
   border-bottom-right-radius: 0;
 }
 
-.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) > .btn {
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
 
-.btn + .dropdown-toggle-split {
+.dropdown-toggle-split {
   padding-right: 0.5625rem;
   padding-left: 0.5625rem;
 }
 
-.btn + .dropdown-toggle-split::after {
+.dropdown-toggle-split::after {
   margin-left: 0;
 }
 
@@ -3101,12 +3323,16 @@ tbody.collapse.show {
 }
 
 .btn-group-vertical {
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
+  -webkit-box-align: start;
   -ms-flex-align: start;
-      align-items: flex-start;
+  align-items: flex-start;
+  -webkit-box-pack: center;
   -ms-flex-pack: center;
-      justify-content: center;
+  justify-content: center;
 }
 
 .btn-group-vertical .btn,
@@ -3122,39 +3348,27 @@ tbody.collapse.show {
   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) {
+.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
   border-bottom-right-radius: 0;
   border-bottom-left-radius: 0;
 }
 
-.btn-group-vertical > .btn:last-child:not(:first-child) {
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
   border-top-left-radius: 0;
   border-top-right-radius: 0;
 }
 
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
+.btn-group-toggle > .btn,
+.btn-group-toggle > .btn-group > .btn {
+  margin-bottom: 0;
 }
 
-[data-toggle="buttons"] > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+.btn-group-toggle > .btn input[type="radio"],
+.btn-group-toggle > .btn input[type="checkbox"],
+.btn-group-toggle > .btn-group > .btn input[type="radio"],
+.btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
   position: absolute;
   clip: rect(0, 0, 0, 0);
   pointer-events: none;
@@ -3162,163 +3376,158 @@ tbody.collapse.show {
 
 .input-group {
   position: relative;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -ms-flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-box-align: stretch;
   -ms-flex-align: stretch;
-      align-items: stretch;
+  align-items: stretch;
   width: 100%;
 }
 
-.input-group .form-control {
+.input-group .form-control,
+.input-group .custom-select,
+.input-group .custom-file {
   position: relative;
-  z-index: 2;
+  -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
-      flex: 1 1 auto;
+  flex: 1 1 auto;
   width: 1%;
   margin-bottom: 0;
 }
 
-.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {
+.input-group .form-control:focus,
+.input-group .custom-select:focus,
+.input-group .custom-file:focus {
   z-index: 3;
 }
 
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: -ms-flexbox;
-  display: flex;
-  -ms-flex-align: center;
-      align-items: center;
-}
-
-.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 {
-  white-space: nowrap;
-}
-
-.input-group-addon {
-  padding: 0.375rem 0.75rem;
-  margin-bottom: 0;
-  font-size: 1rem;
-  font-weight: 400;
-  line-height: 1.5;
-  color: #495057;
-  text-align: center;
-  background-color: #e9ecef;
-  border: 1px solid #ced4da;
-  border-radius: 0.25rem;
+.input-group .form-control + .form-control,
+.input-group .custom-select + .form-control,
+.input-group .custom-file + .form-control {
+  margin-left: -1px;
 }
 
-.input-group-addon.form-control-sm,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .input-group-addon.btn {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-  border-radius: 0.2rem;
+.input-group .form-control:not(:last-child),
+.input-group .custom-select:not(:last-child) {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
 }
 
-.input-group-addon.form-control-lg,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .input-group-addon.btn {
-  padding: 0.5rem 1rem;
-  font-size: 1.25rem;
-  border-radius: 0.3rem;
+.input-group .form-control:not(:first-child),
+.input-group .custom-select:not(:first-child) {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
 }
 
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
-  margin-top: 0;
+.input-group .custom-file {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
 }
 
-.input-group .form-control:not(:last-child),
-.input-group-addon:not(:last-child),
-.input-group-btn:not(:last-child) > .btn,
-.input-group-btn:not(:last-child) > .btn-group > .btn,
-.input-group-btn:not(:last-child) > .dropdown-toggle,
-.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
+.input-group .custom-file:not(:last-child) .custom-file-control,
+.input-group .custom-file:not(:last-child) .custom-file-control::before {
   border-top-right-radius: 0;
   border-bottom-right-radius: 0;
 }
 
-.input-group-addon:not(:last-child) {
-  border-right: 0;
-}
-
-.input-group .form-control:not(:first-child),
-.input-group-addon:not(:first-child),
-.input-group-btn:not(:first-child) > .btn,
-.input-group-btn:not(:first-child) > .btn-group > .btn,
-.input-group-btn:not(:first-child) > .dropdown-toggle,
-.input-group-btn:not(:last-child) > .btn:not(:first-child),
-.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
+.input-group .custom-file:not(:first-child) .custom-file-control,
+.input-group .custom-file:not(:first-child) .custom-file-control::before {
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
 
-.form-control + .input-group-addon:not(:first-child) {
-  border-left: 0;
-}
-
-.input-group-btn {
-  position: relative;
-  -ms-flex-align: stretch;
-      align-items: stretch;
-  font-size: 0;
-  white-space: nowrap;
+.input-group-prepend,
+.input-group-append {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
 }
 
-.input-group-btn > .btn {
+.input-group-prepend .btn,
+.input-group-append .btn {
   position: relative;
+  z-index: 2;
 }
 
-.input-group-btn > .btn + .btn {
+.input-group-prepend .btn + .btn,
+.input-group-prepend .btn + .input-group-text,
+.input-group-prepend .input-group-text + .input-group-text,
+.input-group-prepend .input-group-text + .btn,
+.input-group-append .btn + .btn,
+.input-group-append .btn + .input-group-text,
+.input-group-append .input-group-text + .input-group-text,
+.input-group-append .input-group-text + .btn {
   margin-left: -1px;
 }
 
-.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {
-  z-index: 3;
+.input-group-prepend {
+  margin-right: -1px;
 }
 
-.input-group-btn:first-child > .btn + .btn {
-  margin-left: 0;
+.input-group-append {
+  margin-left: -1px;
 }
 
-.input-group-btn:not(:last-child) > .btn,
-.input-group-btn:not(:last-child) > .btn-group {
-  margin-right: -1px;
+.input-group-text {
+  padding: 0.375rem 0.75rem;
+  margin-bottom: 0;
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #495057;
+  text-align: center;
+  white-space: nowrap;
+  background-color: #e9ecef;
+  border: 1px solid #ced4da;
+  border-radius: 0.25rem;
 }
 
-.input-group-btn:not(:first-child) > .btn,
-.input-group-btn:not(:first-child) > .btn-group {
-  z-index: 2;
-  margin-left: 0;
+.input-group-text input[type="radio"],
+.input-group-text input[type="checkbox"] {
+  margin-top: 0;
 }
 
-.input-group-btn:not(:first-child) > .btn:first-child,
-.input-group-btn:not(:first-child) > .btn-group:first-child {
-  margin-left: -1px;
+.input-group > .input-group-prepend > .btn,
+.input-group > .input-group-prepend > .input-group-text,
+.input-group > .input-group-append:not(:last-child) > .btn,
+.input-group > .input-group-append:not(:last-child) > .input-group-text,
+.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
 }
 
-.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,
-.input-group-btn:not(:first-child) > .btn-group:focus,
-.input-group-btn:not(:first-child) > .btn-group:active,
-.input-group-btn:not(:first-child) > .btn-group:hover {
-  z-index: 3;
+.input-group > .input-group-append > .btn,
+.input-group > .input-group-append > .input-group-text,
+.input-group > .input-group-prepend:not(:first-child) > .btn,
+.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
+.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
+.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
 }
 
 .custom-control {
   position: relative;
-  display: -ms-inline-flexbox;
-  display: inline-flex;
+  display: block;
   min-height: 1.5rem;
   padding-left: 1.5rem;
+}
+
+.custom-control-inline {
+  display: -webkit-inline-box;
+  display: -ms-inline-flexbox;
+  display: inline-flex;
   margin-right: 1rem;
 }
 
@@ -3328,29 +3537,33 @@ tbody.collapse.show {
   opacity: 0;
 }
 
-.custom-control-input:checked ~ .custom-control-indicator {
+.custom-control-input:checked ~ .custom-control-label::before {
   color: #fff;
   background-color: #007bff;
 }
 
-.custom-control-input:focus ~ .custom-control-indicator {
+.custom-control-input:focus ~ .custom-control-label::before {
   box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
 }
 
-.custom-control-input:active ~ .custom-control-indicator {
+.custom-control-input:active ~ .custom-control-label::before {
   color: #fff;
   background-color: #b3d7ff;
 }
 
-.custom-control-input:disabled ~ .custom-control-indicator {
+.custom-control-input:disabled ~ .custom-control-label {
+  color: #868e96;
+}
+
+.custom-control-input:disabled ~ .custom-control-label::before {
   background-color: #e9ecef;
 }
 
-.custom-control-input:disabled ~ .custom-control-description {
-  color: #868e96;
+.custom-control-label {
+  margin-bottom: 0;
 }
 
-.custom-control-indicator {
+.custom-control-label::before {
   position: absolute;
   top: 0.25rem;
   left: 0;
@@ -3358,72 +3571,80 @@ tbody.collapse.show {
   width: 1rem;
   height: 1rem;
   pointer-events: none;
+  content: "";
   -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  background-color: #ddd;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+  background-color: #dee2e6;
+}
+
+.custom-control-label::after {
+  position: absolute;
+  top: 0.25rem;
+  left: 0;
+  display: block;
+  width: 1rem;
+  height: 1rem;
+  content: "";
   background-repeat: no-repeat;
   background-position: center center;
   background-size: 50% 50%;
 }
 
-.custom-checkbox .custom-control-indicator {
+.custom-checkbox .custom-control-label::before {
   border-radius: 0.25rem;
 }
 
-.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
+  background-color: #007bff;
 }
 
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {
-  background-color: #007bff;
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
 }
 
-.custom-radio .custom-control-indicator {
-  border-radius: 50%;
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
+  background-color: #007bff;
 }
 
-.custom-radio .custom-control-input:checked ~ .custom-control-indicator {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
 }
 
-.custom-controls-stacked {
-  display: -ms-flexbox;
-  display: flex;
-  -ms-flex-direction: column;
-      flex-direction: column;
+.custom-radio .custom-control-label::before {
+  border-radius: 50%;
 }
 
-.custom-controls-stacked .custom-control {
-  margin-bottom: 0.25rem;
+.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
+  background-color: #007bff;
 }
 
-.custom-controls-stacked .custom-control + .custom-control {
-  margin-left: 0;
+.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
 }
 
 .custom-select {
   display: inline-block;
-  max-width: 100%;
+  width: 100%;
   height: calc(2.25rem + 2px);
   padding: 0.375rem 1.75rem 0.375rem 0.75rem;
   line-height: 1.5;
   color: #495057;
   vertical-align: middle;
-  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
   background-size: 8px 10px;
   border: 1px solid #ced4da;
   border-radius: 0.25rem;
   -webkit-appearance: none;
-     -moz-appearance: none;
-          appearance: none;
+  -moz-appearance: none;
+  appearance: none;
 }
 
 .custom-select:focus {
   border-color: #80bdff;
-  outline: none;
+  outline: 0;
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
 }
 
 .custom-select:focus::-ms-value {
@@ -3431,8 +3652,9 @@ tbody.collapse.show {
   background-color: #fff;
 }
 
-.custom-select[multiple] {
+.custom-select[multiple], .custom-select[size]:not([size="1"]) {
   height: auto;
+  padding-right: 0.75rem;
   background-image: none;
 }
 
@@ -3452,75 +3674,81 @@ tbody.collapse.show {
   font-size: 75%;
 }
 
+.custom-select-lg {
+  height: calc(2.875rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 125%;
+}
+
 .custom-file {
   position: relative;
   display: inline-block;
-  max-width: 100%;
+  width: 100%;
   height: calc(2.25rem + 2px);
   margin-bottom: 0;
 }
 
 .custom-file-input {
-  min-width: 14rem;
-  max-width: 100%;
+  position: relative;
+  z-index: 2;
+  width: 100%;
   height: calc(2.25rem + 2px);
   margin: 0;
   opacity: 0;
 }
 
 .custom-file-input:focus ~ .custom-file-control {
-  box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #007bff;
+  border-color: #80bdff;
+  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-file-input:focus ~ .custom-file-control::before {
+  border-color: #80bdff;
+}
+
+.custom-file-input:lang(en) ~ .custom-file-label::after {
+  content: "Browse";
 }
 
-.custom-file-control {
+.custom-file-label {
   position: absolute;
   top: 0;
   right: 0;
   left: 0;
-  z-index: 5;
+  z-index: 1;
   height: calc(2.25rem + 2px);
   padding: 0.375rem 0.75rem;
   line-height: 1.5;
   color: #495057;
-  pointer-events: none;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
   background-color: #fff;
   border: 1px solid #ced4da;
   border-radius: 0.25rem;
 }
 
-.custom-file-control:lang(en):empty::after {
-  content: "Choose file...";
-}
-
-.custom-file-control::before {
+.custom-file-label::after {
   position: absolute;
-  top: -1px;
-  right: -1px;
-  bottom: -1px;
-  z-index: 6;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 3;
   display: block;
-  height: calc(2.25rem + 2px);
+  height: calc(calc(2.25rem + 2px) - 1px * 2);
   padding: 0.375rem 0.75rem;
   line-height: 1.5;
   color: #495057;
+  content: "Browse";
   background-color: #e9ecef;
-  border: 1px solid #ced4da;
+  border-left: 1px solid #ced4da;
   border-radius: 0 0.25rem 0.25rem 0;
 }
 
-.custom-file-control:lang(en)::before {
-  content: "Browse";
-}
-
 .nav {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
   padding-left: 0;
   margin-bottom: 0;
   list-style: none;
@@ -3540,7 +3768,7 @@ tbody.collapse.show {
 }
 
 .nav-tabs {
-  border-bottom: 1px solid #ddd;
+  border-bottom: 1px solid #dee2e6;
 }
 
 .nav-tabs .nav-item {
@@ -3554,7 +3782,7 @@ tbody.collapse.show {
 }
 
 .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
-  border-color: #e9ecef #e9ecef #ddd;
+  border-color: #e9ecef #e9ecef #dee2e6;
 }
 
 .nav-tabs .nav-link.disabled {
@@ -3567,7 +3795,7 @@ tbody.collapse.show {
 .nav-tabs .nav-item.show .nav-link {
   color: #495057;
   background-color: #fff;
-  border-color: #ddd #ddd #fff;
+  border-color: #dee2e6 #dee2e6 #fff;
 }
 
 .nav-tabs .dropdown-menu {
@@ -3587,16 +3815,18 @@ tbody.collapse.show {
 }
 
 .nav-fill .nav-item {
+  -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
-      flex: 1 1 auto;
+  flex: 1 1 auto;
   text-align: center;
 }
 
 .nav-justified .nav-item {
   -ms-flex-preferred-size: 0;
-      flex-basis: 0;
+  flex-basis: 0;
+  -webkit-box-flex: 1;
   -ms-flex-positive: 1;
-      flex-grow: 1;
+  flex-grow: 1;
   text-align: center;
 }
 
@@ -3610,27 +3840,33 @@ tbody.collapse.show {
 
 .navbar {
   position: relative;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
+  justify-content: space-between;
   padding: 0.5rem 1rem;
 }
 
 .navbar > .container,
 .navbar > .container-fluid {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
+  justify-content: space-between;
 }
 
 .navbar-brand {
@@ -3648,10 +3884,13 @@ tbody.collapse.show {
 }
 
 .navbar-nav {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
   padding-left: 0;
   margin-bottom: 0;
   list-style: none;
@@ -3675,18 +3914,20 @@ tbody.collapse.show {
 
 .navbar-collapse {
   -ms-flex-preferred-size: 100%;
-      flex-basis: 100%;
+  flex-basis: 100%;
+  -webkit-box-flex: 1;
   -ms-flex-positive: 1;
-      flex-grow: 1;
+  flex-grow: 1;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
 }
 
 .navbar-toggler {
   padding: 0.25rem 0.75rem;
   font-size: 1.25rem;
   line-height: 1;
-  background: transparent;
+  background-color: transparent;
   border: 1px solid transparent;
   border-radius: 0.25rem;
 }
@@ -3695,6 +3936,10 @@ tbody.collapse.show {
   text-decoration: none;
 }
 
+.navbar-toggler:not([disabled]):not(.disabled) {
+  cursor: pointer;
+}
+
 .navbar-toggler-icon {
   display: inline-block;
   width: 1.5em;
@@ -3705,7 +3950,7 @@ tbody.collapse.show {
   background-size: 100% 100%;
 }
 
-@media (max-width: 575px) {
+@media (max-width: 575.99px) {
   .navbar-expand-sm > .container,
   .navbar-expand-sm > .container-fluid {
     padding-right: 0;
@@ -3715,14 +3960,19 @@ tbody.collapse.show {
 
 @media (min-width: 576px) {
   .navbar-expand-sm {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row nowrap;
-        flex-flow: row nowrap;
+    flex-flow: row nowrap;
+    -webkit-box-pack: start;
     -ms-flex-pack: start;
-        justify-content: flex-start;
+    justify-content: flex-start;
   }
   .navbar-expand-sm .navbar-nav {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-direction: row;
-        flex-direction: row;
+    flex-direction: row;
   }
   .navbar-expand-sm .navbar-nav .dropdown-menu {
     position: absolute;
@@ -3738,13 +3988,14 @@ tbody.collapse.show {
   .navbar-expand-sm > .container,
   .navbar-expand-sm > .container-fluid {
     -ms-flex-wrap: nowrap;
-        flex-wrap: nowrap;
+    flex-wrap: nowrap;
   }
   .navbar-expand-sm .navbar-collapse {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
     -ms-flex-preferred-size: auto;
-        flex-basis: auto;
+    flex-basis: auto;
   }
   .navbar-expand-sm .navbar-toggler {
     display: none;
@@ -3755,7 +4006,7 @@ tbody.collapse.show {
   }
 }
 
-@media (max-width: 767px) {
+@media (max-width: 767.99px) {
   .navbar-expand-md > .container,
   .navbar-expand-md > .container-fluid {
     padding-right: 0;
@@ -3765,14 +4016,19 @@ tbody.collapse.show {
 
 @media (min-width: 768px) {
   .navbar-expand-md {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row nowrap;
-        flex-flow: row nowrap;
+    flex-flow: row nowrap;
+    -webkit-box-pack: start;
     -ms-flex-pack: start;
-        justify-content: flex-start;
+    justify-content: flex-start;
   }
   .navbar-expand-md .navbar-nav {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-direction: row;
-        flex-direction: row;
+    flex-direction: row;
   }
   .navbar-expand-md .navbar-nav .dropdown-menu {
     position: absolute;
@@ -3788,13 +4044,14 @@ tbody.collapse.show {
   .navbar-expand-md > .container,
   .navbar-expand-md > .container-fluid {
     -ms-flex-wrap: nowrap;
-        flex-wrap: nowrap;
+    flex-wrap: nowrap;
   }
   .navbar-expand-md .navbar-collapse {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
     -ms-flex-preferred-size: auto;
-        flex-basis: auto;
+    flex-basis: auto;
   }
   .navbar-expand-md .navbar-toggler {
     display: none;
@@ -3805,7 +4062,7 @@ tbody.collapse.show {
   }
 }
 
-@media (max-width: 991px) {
+@media (max-width: 991.99px) {
   .navbar-expand-lg > .container,
   .navbar-expand-lg > .container-fluid {
     padding-right: 0;
@@ -3815,14 +4072,19 @@ tbody.collapse.show {
 
 @media (min-width: 992px) {
   .navbar-expand-lg {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row nowrap;
-        flex-flow: row nowrap;
+    flex-flow: row nowrap;
+    -webkit-box-pack: start;
     -ms-flex-pack: start;
-        justify-content: flex-start;
+    justify-content: flex-start;
   }
   .navbar-expand-lg .navbar-nav {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-direction: row;
-        flex-direction: row;
+    flex-direction: row;
   }
   .navbar-expand-lg .navbar-nav .dropdown-menu {
     position: absolute;
@@ -3838,13 +4100,14 @@ tbody.collapse.show {
   .navbar-expand-lg > .container,
   .navbar-expand-lg > .container-fluid {
     -ms-flex-wrap: nowrap;
-        flex-wrap: nowrap;
+    flex-wrap: nowrap;
   }
   .navbar-expand-lg .navbar-collapse {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
     -ms-flex-preferred-size: auto;
-        flex-basis: auto;
+    flex-basis: auto;
   }
   .navbar-expand-lg .navbar-toggler {
     display: none;
@@ -3855,7 +4118,7 @@ tbody.collapse.show {
   }
 }
 
-@media (max-width: 1199px) {
+@media (max-width: 1199.99px) {
   .navbar-expand-xl > .container,
   .navbar-expand-xl > .container-fluid {
     padding-right: 0;
@@ -3865,14 +4128,19 @@ tbody.collapse.show {
 
 @media (min-width: 1200px) {
   .navbar-expand-xl {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row nowrap;
-        flex-flow: row nowrap;
+    flex-flow: row nowrap;
+    -webkit-box-pack: start;
     -ms-flex-pack: start;
-        justify-content: flex-start;
+    justify-content: flex-start;
   }
   .navbar-expand-xl .navbar-nav {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-direction: row;
-        flex-direction: row;
+    flex-direction: row;
   }
   .navbar-expand-xl .navbar-nav .dropdown-menu {
     position: absolute;
@@ -3888,13 +4156,14 @@ tbody.collapse.show {
   .navbar-expand-xl > .container,
   .navbar-expand-xl > .container-fluid {
     -ms-flex-wrap: nowrap;
-        flex-wrap: nowrap;
+    flex-wrap: nowrap;
   }
   .navbar-expand-xl .navbar-collapse {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
     -ms-flex-preferred-size: auto;
-        flex-basis: auto;
+    flex-basis: auto;
   }
   .navbar-expand-xl .navbar-toggler {
     display: none;
@@ -3906,10 +4175,13 @@ tbody.collapse.show {
 }
 
 .navbar-expand {
+  -webkit-box-orient: horizontal;
+  -webkit-box-direction: normal;
   -ms-flex-flow: row nowrap;
-      flex-flow: row nowrap;
+  flex-flow: row nowrap;
+  -webkit-box-pack: start;
   -ms-flex-pack: start;
-      justify-content: flex-start;
+  justify-content: flex-start;
 }
 
 .navbar-expand > .container,
@@ -3919,8 +4191,10 @@ tbody.collapse.show {
 }
 
 .navbar-expand .navbar-nav {
+  -webkit-box-orient: horizontal;
+  -webkit-box-direction: normal;
   -ms-flex-direction: row;
-      flex-direction: row;
+  flex-direction: row;
 }
 
 .navbar-expand .navbar-nav .dropdown-menu {
@@ -3940,14 +4214,15 @@ tbody.collapse.show {
 .navbar-expand > .container,
 .navbar-expand > .container-fluid {
   -ms-flex-wrap: nowrap;
-      flex-wrap: nowrap;
+  flex-wrap: nowrap;
 }
 
 .navbar-expand .navbar-collapse {
+  display: -webkit-box !important;
   display: -ms-flexbox !important;
   display: flex !important;
   -ms-flex-preferred-size: auto;
-      flex-basis: auto;
+  flex-basis: auto;
 }
 
 .navbar-expand .navbar-toggler {
@@ -4057,10 +4332,13 @@ tbody.collapse.show {
 
 .card {
   position: relative;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
   min-width: 0;
   word-wrap: break-word;
   background-color: #fff;
@@ -4085,8 +4363,9 @@ tbody.collapse.show {
 }
 
 .card-body {
+  -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
-      flex: 1 1 auto;
+  flex: 1 1 auto;
   padding: 1.25rem;
 }
 
@@ -4175,10 +4454,13 @@ tbody.collapse.show {
 }
 
 .card-deck {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
 }
 
 .card-deck .card {
@@ -4187,18 +4469,24 @@ tbody.collapse.show {
 
 @media (min-width: 576px) {
   .card-deck {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row wrap;
-        flex-flow: row wrap;
+    flex-flow: row wrap;
     margin-right: -15px;
     margin-left: -15px;
   }
   .card-deck .card {
+    display: -webkit-box;
     display: -ms-flexbox;
     display: flex;
+    -webkit-box-flex: 1;
     -ms-flex: 1 0 0%;
-        flex: 1 0 0%;
+    flex: 1 0 0%;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
     -ms-flex-direction: column;
-        flex-direction: column;
+    flex-direction: column;
     margin-right: 15px;
     margin-bottom: 0;
     margin-left: 15px;
@@ -4206,66 +4494,80 @@ tbody.collapse.show {
 }
 
 .card-group {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
 }
 
-.card-group .card {
+.card-group > .card {
   margin-bottom: 15px;
 }
 
 @media (min-width: 576px) {
   .card-group {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
     -ms-flex-flow: row wrap;
-        flex-flow: row wrap;
+    flex-flow: row wrap;
   }
-  .card-group .card {
+  .card-group > .card {
+    -webkit-box-flex: 1;
     -ms-flex: 1 0 0%;
-        flex: 1 0 0%;
+    flex: 1 0 0%;
     margin-bottom: 0;
   }
-  .card-group .card + .card {
+  .card-group > .card + .card {
     margin-left: 0;
     border-left: 0;
   }
-  .card-group .card:first-child {
+  .card-group > .card:first-child {
     border-top-right-radius: 0;
     border-bottom-right-radius: 0;
   }
-  .card-group .card:first-child .card-img-top {
+  .card-group > .card:first-child .card-img-top,
+  .card-group > .card:first-child .card-header {
     border-top-right-radius: 0;
   }
-  .card-group .card:first-child .card-img-bottom {
+  .card-group > .card:first-child .card-img-bottom,
+  .card-group > .card:first-child .card-footer {
     border-bottom-right-radius: 0;
   }
-  .card-group .card:last-child {
+  .card-group > .card:last-child {
     border-top-left-radius: 0;
     border-bottom-left-radius: 0;
   }
-  .card-group .card:last-child .card-img-top {
+  .card-group > .card:last-child .card-img-top,
+  .card-group > .card:last-child .card-header {
     border-top-left-radius: 0;
   }
-  .card-group .card:last-child .card-img-bottom {
+  .card-group > .card:last-child .card-img-bottom,
+  .card-group > .card:last-child .card-footer {
     border-bottom-left-radius: 0;
   }
-  .card-group .card:only-child {
+  .card-group > .card:only-child {
     border-radius: 0.25rem;
   }
-  .card-group .card:only-child .card-img-top {
+  .card-group > .card:only-child .card-img-top,
+  .card-group > .card:only-child .card-header {
     border-top-left-radius: 0.25rem;
     border-top-right-radius: 0.25rem;
   }
-  .card-group .card:only-child .card-img-bottom {
+  .card-group > .card:only-child .card-img-bottom,
+  .card-group > .card:only-child .card-footer {
     border-bottom-right-radius: 0.25rem;
     border-bottom-left-radius: 0.25rem;
   }
-  .card-group .card:not(:first-child):not(:last-child):not(:only-child) {
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
     border-radius: 0;
   }
-  .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
-  .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom {
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
+  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
     border-radius: 0;
   }
 }
@@ -4277,9 +4579,11 @@ tbody.collapse.show {
 @media (min-width: 576px) {
   .card-columns {
     -webkit-column-count: 3;
-            column-count: 3;
+    -moz-column-count: 3;
+    column-count: 3;
     -webkit-column-gap: 1.25rem;
-            column-gap: 1.25rem;
+    -moz-column-gap: 1.25rem;
+    column-gap: 1.25rem;
   }
   .card-columns .card {
     display: inline-block;
@@ -4288,10 +4592,11 @@ tbody.collapse.show {
 }
 
 .breadcrumb {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -ms-flex-wrap: wrap;
-      flex-wrap: wrap;
+  flex-wrap: wrap;
   padding: 0.75rem 1rem;
   margin-bottom: 1rem;
   list-style: none;
@@ -4320,6 +4625,7 @@ tbody.collapse.show {
 }
 
 .pagination {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   padding-left: 0;
@@ -4327,6 +4633,28 @@ tbody.collapse.show {
   border-radius: 0.25rem;
 }
 
+.page-link {
+  position: relative;
+  display: block;
+  padding: 0.5rem 0.75rem;
+  margin-left: -1px;
+  line-height: 1.25;
+  color: #007bff;
+  background-color: #fff;
+  border: 1px solid #dee2e6;
+}
+
+.page-link:focus, .page-link:hover {
+  color: #0056b3;
+  text-decoration: none;
+  background-color: #e9ecef;
+  border-color: #dee2e6;
+}
+
+.page-link:not([disabled]):not(.disabled) {
+  cursor: pointer;
+}
+
 .page-item:first-child .page-link {
   margin-left: 0;
   border-top-left-radius: 0.25rem;
@@ -4339,7 +4667,7 @@ tbody.collapse.show {
 }
 
 .page-item.active .page-link {
-  z-index: 2;
+  z-index: 1;
   color: #fff;
   background-color: #007bff;
   border-color: #007bff;
@@ -4348,26 +4676,9 @@ tbody.collapse.show {
 .page-item.disabled .page-link {
   color: #868e96;
   pointer-events: none;
+  cursor: auto;
   background-color: #fff;
-  border-color: #ddd;
-}
-
-.page-link {
-  position: relative;
-  display: block;
-  padding: 0.5rem 0.75rem;
-  margin-left: -1px;
-  line-height: 1.25;
-  color: #007bff;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-
-.page-link:focus, .page-link:hover {
-  color: #0056b3;
-  text-decoration: none;
-  background-color: #e9ecef;
-  border-color: #ddd;
+  border-color: #dee2e6;
 }
 
 .pagination-lg .page-link {
@@ -4474,12 +4785,12 @@ tbody.collapse.show {
 }
 
 .badge-warning {
-  color: #111;
+  color: #212529;
   background-color: #ffc107;
 }
 
 .badge-warning[href]:focus, .badge-warning[href]:hover {
-  color: #111;
+  color: #212529;
   text-decoration: none;
   background-color: #d39e00;
 }
@@ -4496,12 +4807,12 @@ tbody.collapse.show {
 }
 
 .badge-light {
-  color: #111;
+  color: #212529;
   background-color: #f8f9fa;
 }
 
 .badge-light[href]:focus, .badge-light[href]:hover {
-  color: #111;
+  color: #212529;
   text-decoration: none;
   background-color: #dae0e5;
 }
@@ -4552,6 +4863,10 @@ tbody.collapse.show {
   font-weight: 700;
 }
 
+.alert-dismissible {
+  padding-right: 4rem;
+}
+
 .alert-dismissible .close {
   position: absolute;
   top: 0;
@@ -4691,6 +5006,7 @@ tbody.collapse.show {
 }
 
 .progress {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   height: 1rem;
@@ -4701,14 +5017,20 @@ tbody.collapse.show {
 }
 
 .progress-bar {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
-  -ms-flex-align: center;
-      align-items: center;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -ms-flex-direction: column;
+  flex-direction: column;
+  -webkit-box-pack: center;
   -ms-flex-pack: center;
-      justify-content: center;
+  justify-content: center;
   color: #fff;
+  text-align: center;
   background-color: #007bff;
+  transition: width 0.6s ease;
 }
 
 .progress-bar-striped {
@@ -4718,26 +5040,32 @@ tbody.collapse.show {
 
 .progress-bar-animated {
   -webkit-animation: progress-bar-stripes 1s linear infinite;
-          animation: progress-bar-stripes 1s linear infinite;
+  animation: progress-bar-stripes 1s linear infinite;
 }
 
 .media {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-align: start;
   -ms-flex-align: start;
-      align-items: flex-start;
+  align-items: flex-start;
 }
 
 .media-body {
+  -webkit-box-flex: 1;
   -ms-flex: 1;
-      flex: 1;
+  flex: 1;
 }
 
 .list-group {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
   padding-left: 0;
   margin-bottom: 0;
 }
@@ -4780,6 +5108,7 @@ tbody.collapse.show {
 }
 
 .list-group-item:focus, .list-group-item:hover {
+  z-index: 1;
   text-decoration: none;
 }
 
@@ -5017,9 +5346,13 @@ button.list-group-item-dark.active {
   opacity: .75;
 }
 
+.close:not([disabled]):not(.disabled) {
+  cursor: pointer;
+}
+
 button.close {
   padding: 0;
-  background: transparent;
+  background-color: transparent;
   border: 0;
   -webkit-appearance: none;
 }
@@ -5040,37 +5373,51 @@ button.close {
   outline: 0;
 }
 
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 0.5rem;
+  pointer-events: none;
+}
+
 .modal.fade .modal-dialog {
   transition: -webkit-transform 0.3s ease-out;
   transition: transform 0.3s ease-out;
   transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
   -webkit-transform: translate(0, -25%);
-          transform: translate(0, -25%);
+  transform: translate(0, -25%);
 }
 
 .modal.show .modal-dialog {
   -webkit-transform: translate(0, 0);
-          transform: translate(0, 0);
-}
-
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
+  transform: translate(0, 0);
 }
 
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-  pointer-events: none;
+.modal-dialog-centered {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  min-height: calc(100% - (0.5rem * 2));
 }
 
 .modal-content {
   position: relative;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
+  width: 100%;
   pointer-events: auto;
   background-color: #fff;
   background-clip: padding-box;
@@ -5098,21 +5445,24 @@ button.close {
 }
 
 .modal-header {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-align: start;
   -ms-flex-align: start;
-      align-items: flex-start;
+  align-items: flex-start;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
-  padding: 15px;
+  justify-content: space-between;
+  padding: 1rem;
   border-bottom: 1px solid #e9ecef;
   border-top-left-radius: 0.3rem;
   border-top-right-radius: 0.3rem;
 }
 
 .modal-header .close {
-  padding: 15px;
-  margin: -15px -15px -15px auto;
+  padding: 1rem;
+  margin: -1rem -1rem -1rem auto;
 }
 
 .modal-title {
@@ -5122,19 +5472,23 @@ button.close {
 
 .modal-body {
   position: relative;
+  -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
-      flex: 1 1 auto;
-  padding: 15px;
+  flex: 1 1 auto;
+  padding: 1rem;
 }
 
 .modal-footer {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
+  -webkit-box-pack: end;
   -ms-flex-pack: end;
-      justify-content: flex-end;
-  padding: 15px;
+  justify-content: flex-end;
+  padding: 1rem;
   border-top: 1px solid #e9ecef;
 }
 
@@ -5157,7 +5511,10 @@ button.close {
 @media (min-width: 576px) {
   .modal-dialog {
     max-width: 500px;
-    margin: 30px auto;
+    margin: 1.75rem auto;
+  }
+  .modal-dialog-centered {
+    min-height: calc(100% - (1.75rem * 2));
   }
   .modal-sm {
     max-width: 300px;
@@ -5201,80 +5558,80 @@ button.close {
 .tooltip .arrow {
   position: absolute;
   display: block;
-  width: 5px;
-  height: 5px;
+  width: 0.8rem;
+  height: 0.4rem;
 }
 
 .tooltip .arrow::before {
   position: absolute;
+  content: "";
   border-color: transparent;
   border-style: solid;
 }
 
-.tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^="top"] {
-  padding: 5px 0;
+.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
+  padding: 0.4rem 0;
 }
 
-.tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow {
+.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
   bottom: 0;
 }
 
-.tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
-  margin-left: -3px;
-  content: "";
-  border-width: 5px 5px 0;
+.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
+  top: 0;
+  border-width: 0.4rem 0.4rem 0;
   border-top-color: #000;
 }
 
-.tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^="right"] {
-  padding: 0 5px;
+.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
+  padding: 0 0.4rem;
 }
 
-.tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow {
+.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
   left: 0;
+  width: 0.4rem;
+  height: 0.8rem;
 }
 
-.tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before {
-  margin-top: -3px;
-  content: "";
-  border-width: 5px 5px 5px 0;
+.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
+  right: 0;
+  border-width: 0.4rem 0.4rem 0.4rem 0;
   border-right-color: #000;
 }
 
-.tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^="bottom"] {
-  padding: 5px 0;
+.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
+  padding: 0.4rem 0;
 }
 
-.tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow {
+.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
   top: 0;
 }
 
-.tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
-  margin-left: -3px;
-  content: "";
-  border-width: 0 5px 5px;
+.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+  bottom: 0;
+  border-width: 0 0.4rem 0.4rem;
   border-bottom-color: #000;
 }
 
-.tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^="left"] {
-  padding: 0 5px;
+.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
+  padding: 0 0.4rem;
 }
 
-.tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow {
+.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
   right: 0;
+  width: 0.4rem;
+  height: 0.8rem;
 }
 
-.tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before {
-  right: 0;
-  margin-top: -3px;
-  content: "";
-  border-width: 5px 0 5px 5px;
+.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
+  left: 0;
+  border-width: 0.4rem 0 0.4rem 0.4rem;
   border-left-color: #000;
 }
 
 .tooltip-inner {
   max-width: 200px;
-  padding: 3px 8px;
+  padding: 0.25rem 0.5rem;
   color: #fff;
   text-align: center;
   background-color: #000;
@@ -5313,133 +5670,125 @@ button.close {
 .popover .arrow {
   position: absolute;
   display: block;
-  width: 0.8rem;
-  height: 0.4rem;
+  width: 1rem;
+  height: 0.5rem;
+  margin: 0 0.3rem;
 }
 
-.popover .arrow::before,
-.popover .arrow::after {
+.popover .arrow::before, .popover .arrow::after {
   position: absolute;
   display: block;
+  content: "";
   border-color: transparent;
   border-style: solid;
 }
 
-.popover .arrow::before {
-  content: "";
-  border-width: 0.8rem;
+.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
+  margin-bottom: 0.5rem;
 }
 
-.popover .arrow::after {
-  content: "";
-  border-width: 0.8rem;
+.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
+  bottom: calc((0.5rem + 1px) * -1);
 }
 
-.popover.bs-popover-top, .popover.bs-popover-auto[x-placement^="top"] {
-  margin-bottom: 0.8rem;
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
+.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
+  border-width: 0.5rem 0.5rem 0;
 }
 
-.popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^="top"] .arrow {
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
   bottom: 0;
-}
-
-.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before,
-.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
-  border-bottom-width: 0;
-}
-
-.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before {
-  bottom: -0.8rem;
-  margin-left: -0.8rem;
   border-top-color: rgba(0, 0, 0, 0.25);
 }
 
-.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
-  bottom: calc((0.8rem - 1px) * -1);
-  margin-left: -0.8rem;
+.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
+  bottom: 1px;
   border-top-color: #fff;
 }
 
-.popover.bs-popover-right, .popover.bs-popover-auto[x-placement^="right"] {
-  margin-left: 0.8rem;
+.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
+  margin-left: 0.5rem;
 }
 
-.popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^="right"] .arrow {
-  left: 0;
+.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
+  left: calc((0.5rem + 1px) * -1);
+  width: 0.5rem;
+  height: 1rem;
+  margin: 0.3rem 0;
 }
 
-.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before,
-.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
-  margin-top: -0.8rem;
-  border-left-width: 0;
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
+.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
+  border-width: 0.5rem 0.5rem 0.5rem 0;
 }
 
-.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before {
-  left: -0.8rem;
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
+  left: 0;
   border-right-color: rgba(0, 0, 0, 0.25);
 }
 
-.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
-  left: calc((0.8rem - 1px) * -1);
+.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
+  left: 1px;
   border-right-color: #fff;
 }
 
-.popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^="bottom"] {
-  margin-top: 0.8rem;
+.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
+  margin-top: 0.5rem;
 }
 
-.popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^="bottom"] .arrow {
-  top: 0;
+.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
+  top: calc((0.5rem + 1px) * -1);
 }
 
-.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
-.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
-  margin-left: -0.8rem;
-  border-top-width: 0;
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+  border-width: 0 0.5rem 0.5rem 0.5rem;
 }
 
-.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before {
-  top: -0.8rem;
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
+  top: 0;
   border-bottom-color: rgba(0, 0, 0, 0.25);
 }
 
-.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
-  top: calc((0.8rem - 1px) * -1);
+.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+  top: 1px;
   border-bottom-color: #fff;
 }
 
-.popover.bs-popover-bottom .popover-header::before, .popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
   position: absolute;
   top: 0;
   left: 50%;
   display: block;
-  width: 20px;
-  margin-left: -10px;
+  width: 1rem;
+  margin-left: -0.5rem;
   content: "";
   border-bottom: 1px solid #f7f7f7;
 }
 
-.popover.bs-popover-left, .popover.bs-popover-auto[x-placement^="left"] {
-  margin-right: 0.8rem;
+.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
+  margin-right: 0.5rem;
 }
 
-.popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^="left"] .arrow {
-  right: 0;
+.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
+  right: calc((0.5rem + 1px) * -1);
+  width: 0.5rem;
+  height: 1rem;
+  margin: 0.3rem 0;
 }
 
-.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before,
-.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
-  margin-top: -0.8rem;
-  border-right-width: 0;
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
+.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
+  border-width: 0.5rem 0 0.5rem 0.5rem;
 }
 
-.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before {
-  right: -0.8rem;
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
+  right: 0;
   border-left-color: rgba(0, 0, 0, 0.25);
 }
 
-.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
-  right: calc((0.8rem - 1px) * -1);
+.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
+  right: 1px;
   border-left-color: #fff;
 }
 
@@ -5476,16 +5825,17 @@ button.close {
 .carousel-item {
   position: relative;
   display: none;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
   width: 100%;
   transition: -webkit-transform 0.6s ease;
   transition: transform 0.6s ease;
   transition: transform 0.6s ease, -webkit-transform 0.6s ease;
   -webkit-backface-visibility: hidden;
-          backface-visibility: hidden;
+  backface-visibility: hidden;
   -webkit-perspective: 1000px;
-          perspective: 1000px;
+  perspective: 1000px;
 }
 
 .carousel-item.active,
@@ -5503,42 +5853,42 @@ button.close {
 .carousel-item-next.carousel-item-left,
 .carousel-item-prev.carousel-item-right {
   -webkit-transform: translateX(0);
-          transform: translateX(0);
+  transform: translateX(0);
 }
 
 @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
   .carousel-item-next.carousel-item-left,
   .carousel-item-prev.carousel-item-right {
     -webkit-transform: translate3d(0, 0, 0);
-            transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
   }
 }
 
 .carousel-item-next,
 .active.carousel-item-right {
   -webkit-transform: translateX(100%);
-          transform: translateX(100%);
+  transform: translateX(100%);
 }
 
 @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
   .carousel-item-next,
   .active.carousel-item-right {
     -webkit-transform: translate3d(100%, 0, 0);
-            transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
   }
 }
 
 .carousel-item-prev,
 .active.carousel-item-left {
   -webkit-transform: translateX(-100%);
-          transform: translateX(-100%);
+  transform: translateX(-100%);
 }
 
 @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
   .carousel-item-prev,
   .active.carousel-item-left {
     -webkit-transform: translate3d(-100%, 0, 0);
-            transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
   }
 }
 
@@ -5547,12 +5897,15 @@ button.close {
   position: absolute;
   top: 0;
   bottom: 0;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-align: center;
   -ms-flex-align: center;
-      align-items: center;
+  align-items: center;
+  -webkit-box-pack: center;
   -ms-flex-pack: center;
-      justify-content: center;
+  justify-content: center;
   width: 15%;
   color: #fff;
   text-align: center;
@@ -5599,10 +5952,12 @@ button.close {
   bottom: 10px;
   left: 0;
   z-index: 15;
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-pack: center;
   -ms-flex-pack: center;
-      justify-content: center;
+  justify-content: center;
   padding-left: 0;
   margin-right: 15%;
   margin-left: 15%;
@@ -5611,8 +5966,9 @@ button.close {
 
 .carousel-indicators li {
   position: relative;
+  -webkit-box-flex: 0;
   -ms-flex: 0 1 auto;
-      flex: 0 1 auto;
+  flex: 0 1 auto;
   width: 30px;
   height: 3px;
   margin-right: 3px;
@@ -5685,7 +6041,9 @@ button.close {
   background-color: #007bff !important;
 }
 
-a.bg-primary:focus, a.bg-primary:hover {
+a.bg-primary:focus, a.bg-primary:hover,
+button.bg-primary:focus,
+button.bg-primary:hover {
   background-color: #0062cc !important;
 }
 
@@ -5693,7 +6051,9 @@ a.bg-primary:focus, a.bg-primary:hover {
   background-color: #868e96 !important;
 }
 
-a.bg-secondary:focus, a.bg-secondary:hover {
+a.bg-secondary:focus, a.bg-secondary:hover,
+button.bg-secondary:focus,
+button.bg-secondary:hover {
   background-color: #6c757d !important;
 }
 
@@ -5701,7 +6061,9 @@ a.bg-secondary:focus, a.bg-secondary:hover {
   background-color: #28a745 !important;
 }
 
-a.bg-success:focus, a.bg-success:hover {
+a.bg-success:focus, a.bg-success:hover,
+button.bg-success:focus,
+button.bg-success:hover {
   background-color: #1e7e34 !important;
 }
 
@@ -5709,7 +6071,9 @@ a.bg-success:focus, a.bg-success:hover {
   background-color: #17a2b8 !important;
 }
 
-a.bg-info:focus, a.bg-info:hover {
+a.bg-info:focus, a.bg-info:hover,
+button.bg-info:focus,
+button.bg-info:hover {
   background-color: #117a8b !important;
 }
 
@@ -5717,7 +6081,9 @@ a.bg-info:focus, a.bg-info:hover {
   background-color: #ffc107 !important;
 }
 
-a.bg-warning:focus, a.bg-warning:hover {
+a.bg-warning:focus, a.bg-warning:hover,
+button.bg-warning:focus,
+button.bg-warning:hover {
   background-color: #d39e00 !important;
 }
 
@@ -5725,7 +6091,9 @@ a.bg-warning:focus, a.bg-warning:hover {
   background-color: #dc3545 !important;
 }
 
-a.bg-danger:focus, a.bg-danger:hover {
+a.bg-danger:focus, a.bg-danger:hover,
+button.bg-danger:focus,
+button.bg-danger:hover {
   background-color: #bd2130 !important;
 }
 
@@ -5733,7 +6101,9 @@ a.bg-danger:focus, a.bg-danger:hover {
   background-color: #f8f9fa !important;
 }
 
-a.bg-light:focus, a.bg-light:hover {
+a.bg-light:focus, a.bg-light:hover,
+button.bg-light:focus,
+button.bg-light:hover {
   background-color: #dae0e5 !important;
 }
 
@@ -5741,7 +6111,9 @@ a.bg-light:focus, a.bg-light:hover {
   background-color: #343a40 !important;
 }
 
-a.bg-dark:focus, a.bg-dark:hover {
+a.bg-dark:focus, a.bg-dark:hover,
+button.bg-dark:focus,
+button.bg-dark:hover {
   background-color: #1d2124 !important;
 }
 
@@ -5880,11 +6252,13 @@ a.bg-dark:focus, a.bg-dark:hover {
 }
 
 .d-flex {
+  display: -webkit-box !important;
   display: -ms-flexbox !important;
   display: flex !important;
 }
 
 .d-inline-flex {
+  display: -webkit-inline-box !important;
   display: -ms-inline-flexbox !important;
   display: inline-flex !important;
 }
@@ -5912,10 +6286,12 @@ a.bg-dark:focus, a.bg-dark:hover {
     display: table-cell !important;
   }
   .d-sm-flex {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
   }
   .d-sm-inline-flex {
+    display: -webkit-inline-box !important;
     display: -ms-inline-flexbox !important;
     display: inline-flex !important;
   }
@@ -5944,10 +6320,12 @@ a.bg-dark:focus, a.bg-dark:hover {
     display: table-cell !important;
   }
   .d-md-flex {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
   }
   .d-md-inline-flex {
+    display: -webkit-inline-box !important;
     display: -ms-inline-flexbox !important;
     display: inline-flex !important;
   }
@@ -5976,10 +6354,12 @@ a.bg-dark:focus, a.bg-dark:hover {
     display: table-cell !important;
   }
   .d-lg-flex {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
   }
   .d-lg-inline-flex {
+    display: -webkit-inline-box !important;
     display: -ms-inline-flexbox !important;
     display: inline-flex !important;
   }
@@ -6008,10 +6388,12 @@ a.bg-dark:focus, a.bg-dark:hover {
     display: table-cell !important;
   }
   .d-xl-flex {
+    display: -webkit-box !important;
     display: -ms-flexbox !important;
     display: flex !important;
   }
   .d-xl-inline-flex {
+    display: -webkit-inline-box !important;
     display: -ms-inline-flexbox !important;
     display: inline-flex !important;
   }
@@ -6097,623 +6479,708 @@ a.bg-dark:focus, a.bg-dark:hover {
 }
 
 .flex-row {
+  -webkit-box-orient: horizontal !important;
+  -webkit-box-direction: normal !important;
   -ms-flex-direction: row !important;
-      flex-direction: row !important;
+  flex-direction: row !important;
 }
 
 .flex-column {
+  -webkit-box-orient: vertical !important;
+  -webkit-box-direction: normal !important;
   -ms-flex-direction: column !important;
-      flex-direction: column !important;
+  flex-direction: column !important;
 }
 
 .flex-row-reverse {
+  -webkit-box-orient: horizontal !important;
+  -webkit-box-direction: reverse !important;
   -ms-flex-direction: row-reverse !important;
-      flex-direction: row-reverse !important;
+  flex-direction: row-reverse !important;
 }
 
 .flex-column-reverse {
+  -webkit-box-orient: vertical !important;
+  -webkit-box-direction: reverse !important;
   -ms-flex-direction: column-reverse !important;
-      flex-direction: column-reverse !important;
+  flex-direction: column-reverse !important;
 }
 
 .flex-wrap {
   -ms-flex-wrap: wrap !important;
-      flex-wrap: wrap !important;
+  flex-wrap: wrap !important;
 }
 
 .flex-nowrap {
   -ms-flex-wrap: nowrap !important;
-      flex-wrap: nowrap !important;
+  flex-wrap: nowrap !important;
 }
 
 .flex-wrap-reverse {
   -ms-flex-wrap: wrap-reverse !important;
-      flex-wrap: wrap-reverse !important;
+  flex-wrap: wrap-reverse !important;
 }
 
 .justify-content-start {
+  -webkit-box-pack: start !important;
   -ms-flex-pack: start !important;
-      justify-content: flex-start !important;
+  justify-content: flex-start !important;
 }
 
 .justify-content-end {
+  -webkit-box-pack: end !important;
   -ms-flex-pack: end !important;
-      justify-content: flex-end !important;
+  justify-content: flex-end !important;
 }
 
 .justify-content-center {
+  -webkit-box-pack: center !important;
   -ms-flex-pack: center !important;
-      justify-content: center !important;
+  justify-content: center !important;
 }
 
 .justify-content-between {
+  -webkit-box-pack: justify !important;
   -ms-flex-pack: justify !important;
-      justify-content: space-between !important;
+  justify-content: space-between !important;
 }
 
 .justify-content-around {
   -ms-flex-pack: distribute !important;
-      justify-content: space-around !important;
+  justify-content: space-around !important;
 }
 
 .align-items-start {
+  -webkit-box-align: start !important;
   -ms-flex-align: start !important;
-      align-items: flex-start !important;
+  align-items: flex-start !important;
 }
 
 .align-items-end {
+  -webkit-box-align: end !important;
   -ms-flex-align: end !important;
-      align-items: flex-end !important;
+  align-items: flex-end !important;
 }
 
 .align-items-center {
+  -webkit-box-align: center !important;
   -ms-flex-align: center !important;
-      align-items: center !important;
+  align-items: center !important;
 }
 
 .align-items-baseline {
+  -webkit-box-align: baseline !important;
   -ms-flex-align: baseline !important;
-      align-items: baseline !important;
+  align-items: baseline !important;
 }
 
 .align-items-stretch {
+  -webkit-box-align: stretch !important;
   -ms-flex-align: stretch !important;
-      align-items: stretch !important;
+  align-items: stretch !important;
 }
 
 .align-content-start {
   -ms-flex-line-pack: start !important;
-      align-content: flex-start !important;
+  align-content: flex-start !important;
 }
 
 .align-content-end {
   -ms-flex-line-pack: end !important;
-      align-content: flex-end !important;
+  align-content: flex-end !important;
 }
 
 .align-content-center {
   -ms-flex-line-pack: center !important;
-      align-content: center !important;
+  align-content: center !important;
 }
 
 .align-content-between {
   -ms-flex-line-pack: justify !important;
-      align-content: space-between !important;
+  align-content: space-between !important;
 }
 
 .align-content-around {
   -ms-flex-line-pack: distribute !important;
-      align-content: space-around !important;
+  align-content: space-around !important;
 }
 
 .align-content-stretch {
   -ms-flex-line-pack: stretch !important;
-      align-content: stretch !important;
+  align-content: stretch !important;
 }
 
 .align-self-auto {
   -ms-flex-item-align: auto !important;
-      align-self: auto !important;
+  align-self: auto !important;
 }
 
 .align-self-start {
   -ms-flex-item-align: start !important;
-      align-self: flex-start !important;
+  align-self: flex-start !important;
 }
 
 .align-self-end {
   -ms-flex-item-align: end !important;
-      align-self: flex-end !important;
+  align-self: flex-end !important;
 }
 
 .align-self-center {
   -ms-flex-item-align: center !important;
-      align-self: center !important;
+  align-self: center !important;
 }
 
 .align-self-baseline {
   -ms-flex-item-align: baseline !important;
-      align-self: baseline !important;
+  align-self: baseline !important;
 }
 
 .align-self-stretch {
   -ms-flex-item-align: stretch !important;
-      align-self: stretch !important;
+  align-self: stretch !important;
 }
 
 @media (min-width: 576px) {
   .flex-sm-row {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: row !important;
-        flex-direction: row !important;
+    flex-direction: row !important;
   }
   .flex-sm-column {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: column !important;
-        flex-direction: column !important;
+    flex-direction: column !important;
   }
   .flex-sm-row-reverse {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: row-reverse !important;
-        flex-direction: row-reverse !important;
+    flex-direction: row-reverse !important;
   }
   .flex-sm-column-reverse {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: column-reverse !important;
-        flex-direction: column-reverse !important;
+    flex-direction: column-reverse !important;
   }
   .flex-sm-wrap {
     -ms-flex-wrap: wrap !important;
-        flex-wrap: wrap !important;
+    flex-wrap: wrap !important;
   }
   .flex-sm-nowrap {
     -ms-flex-wrap: nowrap !important;
-        flex-wrap: nowrap !important;
+    flex-wrap: nowrap !important;
   }
   .flex-sm-wrap-reverse {
     -ms-flex-wrap: wrap-reverse !important;
-        flex-wrap: wrap-reverse !important;
+    flex-wrap: wrap-reverse !important;
   }
   .justify-content-sm-start {
+    -webkit-box-pack: start !important;
     -ms-flex-pack: start !important;
-        justify-content: flex-start !important;
+    justify-content: flex-start !important;
   }
   .justify-content-sm-end {
+    -webkit-box-pack: end !important;
     -ms-flex-pack: end !important;
-        justify-content: flex-end !important;
+    justify-content: flex-end !important;
   }
   .justify-content-sm-center {
+    -webkit-box-pack: center !important;
     -ms-flex-pack: center !important;
-        justify-content: center !important;
+    justify-content: center !important;
   }
   .justify-content-sm-between {
+    -webkit-box-pack: justify !important;
     -ms-flex-pack: justify !important;
-        justify-content: space-between !important;
+    justify-content: space-between !important;
   }
   .justify-content-sm-around {
     -ms-flex-pack: distribute !important;
-        justify-content: space-around !important;
+    justify-content: space-around !important;
   }
   .align-items-sm-start {
+    -webkit-box-align: start !important;
     -ms-flex-align: start !important;
-        align-items: flex-start !important;
+    align-items: flex-start !important;
   }
   .align-items-sm-end {
+    -webkit-box-align: end !important;
     -ms-flex-align: end !important;
-        align-items: flex-end !important;
+    align-items: flex-end !important;
   }
   .align-items-sm-center {
+    -webkit-box-align: center !important;
     -ms-flex-align: center !important;
-        align-items: center !important;
+    align-items: center !important;
   }
   .align-items-sm-baseline {
+    -webkit-box-align: baseline !important;
     -ms-flex-align: baseline !important;
-        align-items: baseline !important;
+    align-items: baseline !important;
   }
   .align-items-sm-stretch {
+    -webkit-box-align: stretch !important;
     -ms-flex-align: stretch !important;
-        align-items: stretch !important;
+    align-items: stretch !important;
   }
   .align-content-sm-start {
     -ms-flex-line-pack: start !important;
-        align-content: flex-start !important;
+    align-content: flex-start !important;
   }
   .align-content-sm-end {
     -ms-flex-line-pack: end !important;
-        align-content: flex-end !important;
+    align-content: flex-end !important;
   }
   .align-content-sm-center {
     -ms-flex-line-pack: center !important;
-        align-content: center !important;
+    align-content: center !important;
   }
   .align-content-sm-between {
     -ms-flex-line-pack: justify !important;
-        align-content: space-between !important;
+    align-content: space-between !important;
   }
   .align-content-sm-around {
     -ms-flex-line-pack: distribute !important;
-        align-content: space-around !important;
+    align-content: space-around !important;
   }
   .align-content-sm-stretch {
     -ms-flex-line-pack: stretch !important;
-        align-content: stretch !important;
+    align-content: stretch !important;
   }
   .align-self-sm-auto {
     -ms-flex-item-align: auto !important;
-        align-self: auto !important;
+    align-self: auto !important;
   }
   .align-self-sm-start {
     -ms-flex-item-align: start !important;
-        align-self: flex-start !important;
+    align-self: flex-start !important;
   }
   .align-self-sm-end {
     -ms-flex-item-align: end !important;
-        align-self: flex-end !important;
+    align-self: flex-end !important;
   }
   .align-self-sm-center {
     -ms-flex-item-align: center !important;
-        align-self: center !important;
+    align-self: center !important;
   }
   .align-self-sm-baseline {
     -ms-flex-item-align: baseline !important;
-        align-self: baseline !important;
+    align-self: baseline !important;
   }
   .align-self-sm-stretch {
     -ms-flex-item-align: stretch !important;
-        align-self: stretch !important;
+    align-self: stretch !important;
   }
 }
 
 @media (min-width: 768px) {
   .flex-md-row {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: row !important;
-        flex-direction: row !important;
+    flex-direction: row !important;
   }
   .flex-md-column {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: column !important;
-        flex-direction: column !important;
+    flex-direction: column !important;
   }
   .flex-md-row-reverse {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: row-reverse !important;
-        flex-direction: row-reverse !important;
+    flex-direction: row-reverse !important;
   }
   .flex-md-column-reverse {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: column-reverse !important;
-        flex-direction: column-reverse !important;
+    flex-direction: column-reverse !important;
   }
   .flex-md-wrap {
     -ms-flex-wrap: wrap !important;
-        flex-wrap: wrap !important;
+    flex-wrap: wrap !important;
   }
   .flex-md-nowrap {
     -ms-flex-wrap: nowrap !important;
-        flex-wrap: nowrap !important;
+    flex-wrap: nowrap !important;
   }
   .flex-md-wrap-reverse {
     -ms-flex-wrap: wrap-reverse !important;
-        flex-wrap: wrap-reverse !important;
+    flex-wrap: wrap-reverse !important;
   }
   .justify-content-md-start {
+    -webkit-box-pack: start !important;
     -ms-flex-pack: start !important;
-        justify-content: flex-start !important;
+    justify-content: flex-start !important;
   }
   .justify-content-md-end {
+    -webkit-box-pack: end !important;
     -ms-flex-pack: end !important;
-        justify-content: flex-end !important;
+    justify-content: flex-end !important;
   }
   .justify-content-md-center {
+    -webkit-box-pack: center !important;
     -ms-flex-pack: center !important;
-        justify-content: center !important;
+    justify-content: center !important;
   }
   .justify-content-md-between {
+    -webkit-box-pack: justify !important;
     -ms-flex-pack: justify !important;
-        justify-content: space-between !important;
+    justify-content: space-between !important;
   }
   .justify-content-md-around {
     -ms-flex-pack: distribute !important;
-        justify-content: space-around !important;
+    justify-content: space-around !important;
   }
   .align-items-md-start {
+    -webkit-box-align: start !important;
     -ms-flex-align: start !important;
-        align-items: flex-start !important;
+    align-items: flex-start !important;
   }
   .align-items-md-end {
+    -webkit-box-align: end !important;
     -ms-flex-align: end !important;
-        align-items: flex-end !important;
+    align-items: flex-end !important;
   }
   .align-items-md-center {
+    -webkit-box-align: center !important;
     -ms-flex-align: center !important;
-        align-items: center !important;
+    align-items: center !important;
   }
   .align-items-md-baseline {
+    -webkit-box-align: baseline !important;
     -ms-flex-align: baseline !important;
-        align-items: baseline !important;
+    align-items: baseline !important;
   }
   .align-items-md-stretch {
+    -webkit-box-align: stretch !important;
     -ms-flex-align: stretch !important;
-        align-items: stretch !important;
+    align-items: stretch !important;
   }
   .align-content-md-start {
     -ms-flex-line-pack: start !important;
-        align-content: flex-start !important;
+    align-content: flex-start !important;
   }
   .align-content-md-end {
     -ms-flex-line-pack: end !important;
-        align-content: flex-end !important;
+    align-content: flex-end !important;
   }
   .align-content-md-center {
     -ms-flex-line-pack: center !important;
-        align-content: center !important;
+    align-content: center !important;
   }
   .align-content-md-between {
     -ms-flex-line-pack: justify !important;
-        align-content: space-between !important;
+    align-content: space-between !important;
   }
   .align-content-md-around {
     -ms-flex-line-pack: distribute !important;
-        align-content: space-around !important;
+    align-content: space-around !important;
   }
   .align-content-md-stretch {
     -ms-flex-line-pack: stretch !important;
-        align-content: stretch !important;
+    align-content: stretch !important;
   }
   .align-self-md-auto {
     -ms-flex-item-align: auto !important;
-        align-self: auto !important;
+    align-self: auto !important;
   }
   .align-self-md-start {
     -ms-flex-item-align: start !important;
-        align-self: flex-start !important;
+    align-self: flex-start !important;
   }
   .align-self-md-end {
     -ms-flex-item-align: end !important;
-        align-self: flex-end !important;
+    align-self: flex-end !important;
   }
   .align-self-md-center {
     -ms-flex-item-align: center !important;
-        align-self: center !important;
+    align-self: center !important;
   }
   .align-self-md-baseline {
     -ms-flex-item-align: baseline !important;
-        align-self: baseline !important;
+    align-self: baseline !important;
   }
   .align-self-md-stretch {
     -ms-flex-item-align: stretch !important;
-        align-self: stretch !important;
+    align-self: stretch !important;
   }
 }
 
 @media (min-width: 992px) {
   .flex-lg-row {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: row !important;
-        flex-direction: row !important;
+    flex-direction: row !important;
   }
   .flex-lg-column {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: column !important;
-        flex-direction: column !important;
+    flex-direction: column !important;
   }
   .flex-lg-row-reverse {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: row-reverse !important;
-        flex-direction: row-reverse !important;
+    flex-direction: row-reverse !important;
   }
   .flex-lg-column-reverse {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: column-reverse !important;
-        flex-direction: column-reverse !important;
+    flex-direction: column-reverse !important;
   }
   .flex-lg-wrap {
     -ms-flex-wrap: wrap !important;
-        flex-wrap: wrap !important;
+    flex-wrap: wrap !important;
   }
   .flex-lg-nowrap {
     -ms-flex-wrap: nowrap !important;
-        flex-wrap: nowrap !important;
+    flex-wrap: nowrap !important;
   }
   .flex-lg-wrap-reverse {
     -ms-flex-wrap: wrap-reverse !important;
-        flex-wrap: wrap-reverse !important;
+    flex-wrap: wrap-reverse !important;
   }
   .justify-content-lg-start {
+    -webkit-box-pack: start !important;
     -ms-flex-pack: start !important;
-        justify-content: flex-start !important;
+    justify-content: flex-start !important;
   }
   .justify-content-lg-end {
+    -webkit-box-pack: end !important;
     -ms-flex-pack: end !important;
-        justify-content: flex-end !important;
+    justify-content: flex-end !important;
   }
   .justify-content-lg-center {
+    -webkit-box-pack: center !important;
     -ms-flex-pack: center !important;
-        justify-content: center !important;
+    justify-content: center !important;
   }
   .justify-content-lg-between {
+    -webkit-box-pack: justify !important;
     -ms-flex-pack: justify !important;
-        justify-content: space-between !important;
+    justify-content: space-between !important;
   }
   .justify-content-lg-around {
     -ms-flex-pack: distribute !important;
-        justify-content: space-around !important;
+    justify-content: space-around !important;
   }
   .align-items-lg-start {
+    -webkit-box-align: start !important;
     -ms-flex-align: start !important;
-        align-items: flex-start !important;
+    align-items: flex-start !important;
   }
   .align-items-lg-end {
+    -webkit-box-align: end !important;
     -ms-flex-align: end !important;
-        align-items: flex-end !important;
+    align-items: flex-end !important;
   }
   .align-items-lg-center {
+    -webkit-box-align: center !important;
     -ms-flex-align: center !important;
-        align-items: center !important;
+    align-items: center !important;
   }
   .align-items-lg-baseline {
+    -webkit-box-align: baseline !important;
     -ms-flex-align: baseline !important;
-        align-items: baseline !important;
+    align-items: baseline !important;
   }
   .align-items-lg-stretch {
+    -webkit-box-align: stretch !important;
     -ms-flex-align: stretch !important;
-        align-items: stretch !important;
+    align-items: stretch !important;
   }
   .align-content-lg-start {
     -ms-flex-line-pack: start !important;
-        align-content: flex-start !important;
+    align-content: flex-start !important;
   }
   .align-content-lg-end {
     -ms-flex-line-pack: end !important;
-        align-content: flex-end !important;
+    align-content: flex-end !important;
   }
   .align-content-lg-center {
     -ms-flex-line-pack: center !important;
-        align-content: center !important;
+    align-content: center !important;
   }
   .align-content-lg-between {
     -ms-flex-line-pack: justify !important;
-        align-content: space-between !important;
+    align-content: space-between !important;
   }
   .align-content-lg-around {
     -ms-flex-line-pack: distribute !important;
-        align-content: space-around !important;
+    align-content: space-around !important;
   }
   .align-content-lg-stretch {
     -ms-flex-line-pack: stretch !important;
-        align-content: stretch !important;
+    align-content: stretch !important;
   }
   .align-self-lg-auto {
     -ms-flex-item-align: auto !important;
-        align-self: auto !important;
+    align-self: auto !important;
   }
   .align-self-lg-start {
     -ms-flex-item-align: start !important;
-        align-self: flex-start !important;
+    align-self: flex-start !important;
   }
   .align-self-lg-end {
     -ms-flex-item-align: end !important;
-        align-self: flex-end !important;
+    align-self: flex-end !important;
   }
   .align-self-lg-center {
     -ms-flex-item-align: center !important;
-        align-self: center !important;
+    align-self: center !important;
   }
   .align-self-lg-baseline {
     -ms-flex-item-align: baseline !important;
-        align-self: baseline !important;
+    align-self: baseline !important;
   }
   .align-self-lg-stretch {
     -ms-flex-item-align: stretch !important;
-        align-self: stretch !important;
+    align-self: stretch !important;
   }
 }
 
 @media (min-width: 1200px) {
   .flex-xl-row {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: row !important;
-        flex-direction: row !important;
+    flex-direction: row !important;
   }
   .flex-xl-column {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: normal !important;
     -ms-flex-direction: column !important;
-        flex-direction: column !important;
+    flex-direction: column !important;
   }
   .flex-xl-row-reverse {
+    -webkit-box-orient: horizontal !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: row-reverse !important;
-        flex-direction: row-reverse !important;
+    flex-direction: row-reverse !important;
   }
   .flex-xl-column-reverse {
+    -webkit-box-orient: vertical !important;
+    -webkit-box-direction: reverse !important;
     -ms-flex-direction: column-reverse !important;
-        flex-direction: column-reverse !important;
+    flex-direction: column-reverse !important;
   }
   .flex-xl-wrap {
     -ms-flex-wrap: wrap !important;
-        flex-wrap: wrap !important;
+    flex-wrap: wrap !important;
   }
   .flex-xl-nowrap {
     -ms-flex-wrap: nowrap !important;
-        flex-wrap: nowrap !important;
+    flex-wrap: nowrap !important;
   }
   .flex-xl-wrap-reverse {
     -ms-flex-wrap: wrap-reverse !important;
-        flex-wrap: wrap-reverse !important;
+    flex-wrap: wrap-reverse !important;
   }
   .justify-content-xl-start {
+    -webkit-box-pack: start !important;
     -ms-flex-pack: start !important;
-        justify-content: flex-start !important;
+    justify-content: flex-start !important;
   }
   .justify-content-xl-end {
+    -webkit-box-pack: end !important;
     -ms-flex-pack: end !important;
-        justify-content: flex-end !important;
+    justify-content: flex-end !important;
   }
   .justify-content-xl-center {
+    -webkit-box-pack: center !important;
     -ms-flex-pack: center !important;
-        justify-content: center !important;
+    justify-content: center !important;
   }
   .justify-content-xl-between {
+    -webkit-box-pack: justify !important;
     -ms-flex-pack: justify !important;
-        justify-content: space-between !important;
+    justify-content: space-between !important;
   }
   .justify-content-xl-around {
     -ms-flex-pack: distribute !important;
-        justify-content: space-around !important;
+    justify-content: space-around !important;
   }
   .align-items-xl-start {
+    -webkit-box-align: start !important;
     -ms-flex-align: start !important;
-        align-items: flex-start !important;
+    align-items: flex-start !important;
   }
   .align-items-xl-end {
+    -webkit-box-align: end !important;
     -ms-flex-align: end !important;
-        align-items: flex-end !important;
+    align-items: flex-end !important;
   }
   .align-items-xl-center {
+    -webkit-box-align: center !important;
     -ms-flex-align: center !important;
-        align-items: center !important;
+    align-items: center !important;
   }
   .align-items-xl-baseline {
+    -webkit-box-align: baseline !important;
     -ms-flex-align: baseline !important;
-        align-items: baseline !important;
+    align-items: baseline !important;
   }
   .align-items-xl-stretch {
+    -webkit-box-align: stretch !important;
     -ms-flex-align: stretch !important;
-        align-items: stretch !important;
+    align-items: stretch !important;
   }
   .align-content-xl-start {
     -ms-flex-line-pack: start !important;
-        align-content: flex-start !important;
+    align-content: flex-start !important;
   }
   .align-content-xl-end {
     -ms-flex-line-pack: end !important;
-        align-content: flex-end !important;
+    align-content: flex-end !important;
   }
   .align-content-xl-center {
     -ms-flex-line-pack: center !important;
-        align-content: center !important;
+    align-content: center !important;
   }
   .align-content-xl-between {
     -ms-flex-line-pack: justify !important;
-        align-content: space-between !important;
+    align-content: space-between !important;
   }
   .align-content-xl-around {
     -ms-flex-line-pack: distribute !important;
-        align-content: space-around !important;
+    align-content: space-around !important;
   }
   .align-content-xl-stretch {
     -ms-flex-line-pack: stretch !important;
-        align-content: stretch !important;
+    align-content: stretch !important;
   }
   .align-self-xl-auto {
     -ms-flex-item-align: auto !important;
-        align-self: auto !important;
+    align-self: auto !important;
   }
   .align-self-xl-start {
     -ms-flex-item-align: start !important;
-        align-self: flex-start !important;
+    align-self: flex-start !important;
   }
   .align-self-xl-end {
     -ms-flex-item-align: end !important;
-        align-self: flex-end !important;
+    align-self: flex-end !important;
   }
   .align-self-xl-center {
     -ms-flex-item-align: center !important;
-        align-self: center !important;
+    align-self: center !important;
   }
   .align-self-xl-baseline {
     -ms-flex-item-align: baseline !important;
-        align-self: baseline !important;
+    align-self: baseline !important;
   }
   .align-self-xl-stretch {
     -ms-flex-item-align: stretch !important;
-        align-self: stretch !important;
+    align-self: stretch !important;
   }
 }
 
@@ -6832,7 +7299,7 @@ a.bg-dark:focus, a.bg-dark:hover {
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   -webkit-clip-path: inset(50%);
-          clip-path: inset(50%);
+  clip-path: inset(50%);
   border: 0;
 }
 
@@ -6844,7 +7311,7 @@ a.bg-dark:focus, a.bg-dark:hover {
   clip: auto;
   white-space: normal;
   -webkit-clip-path: none;
-          clip-path: none;
+  clip-path: none;
 }
 
 .w-25 {
@@ -8389,6 +8856,64 @@ a.text-dark:focus, a.text-dark:hover {
   visibility: hidden !important;
 }
 
+@media print {
+  *,
+  *::before,
+  *::after {
+    text-shadow: none !important;
+    box-shadow: none !important;
+  }
+  a,
+  a:visited {
+    text-decoration: underline;
+  }
+  abbr[title]::after {
+    content: " (" attr(title) ")";
+  }
+  pre {
+    white-space: pre-wrap !important;
+  }
+  pre,
+  blockquote {
+    border: 1px solid #999;
+    page-break-inside: avoid;
+  }
+  thead {
+    display: table-header-group;
+  }
+  tr,
+  img {
+    page-break-inside: avoid;
+  }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3;
+  }
+  h2,
+  h3 {
+    page-break-after: avoid;
+  }
+  .navbar {
+    display: none;
+  }
+  .badge {
+    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;
+  }
+}
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -8428,6 +8953,7 @@ XXX code will be inserted after the _variables.scss
 /* used icons ---------------------------------------------------- */
 /* fix bootstrap ---------------------------------------------------- */
 span.dropdown {
+  display: -webkit-inline-box;
   display: -ms-inline-flexbox;
   display: inline-flex;
 }
@@ -8469,18 +8995,20 @@ Todo: check, if this is needed? (It doesn't work with the build system)
 }
 
 .tobago-box-header {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
+  justify-content: space-between;
   -ms-flex-line-pack: center;
-      align-content: center;
+  align-content: center;
 }
 
 .card-header > h3:first-child {
   margin-bottom: 0;
   -ms-flex-item-align: center;
-      align-self: center;
+  align-self: center;
 }
 
 .card-header .navbar {
@@ -8514,11 +9042,6 @@ button.tobago-button:disabled img, button.tobago-button:disabled span {
   pointer-events: none;
 }
 
-.input-group-btn > .btn-group {
-  z-index: 1000 !important;
-  /* workaround for TOBAGO-1708, better restructure the HTML */
-}
-
 /* collapsible -------------------------------------------------------------- */
 .tobago-collapsed.tobago-box .card-body,
 .tobago-collapsed.tobago-section .tobago-section-content,
@@ -8593,8 +9116,9 @@ XXX workaround for Bootstrap with datetimepicker needed for popups
 .tobago-flexLayout.tobago-label-container > .form-control, .tobago-flexLayout.tobago-label-container > .form-control-plaintext, .tobago-flexLayout.tobago-label-container > .twitter-typeahead,
 .tobago-flexLayout.tobago-label-container > .tobago-input-group-outer, .tobago-flexLayout.tobago-label-container > .tobago-messages-container,
 .tobago-flexLayout.tobago-label-container > .tobago-file, .tobago-flexLayout.tobago-label-container > .tobago-selectManyShuttle {
+  -webkit-box-flex: 1;
   -ms-flex: 1 0 0px;
-      flex: 1 0 0px;
+  flex: 1 0 0px;
 }
 
 /* flowLayout ---------------------------------------------------------- */
@@ -8661,7 +9185,7 @@ table.tobago-gridLayout > tbody > tr:first-child > td {
 /* image ----------------------------------------------------------- */
 .tobago-image.disabled {
   -webkit-filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
-          filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
+  filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
 }
 
 /* in ----------------------------------------------------------- */
@@ -8763,8 +9287,9 @@ button.nav-link {
 
 /* messages ----------------------------------------------------------- */
 .tobago-messages-container {
+  -webkit-box-align: start;
   -ms-flex-align: start;
-      align-items: flex-start;
+  align-items: flex-start;
 }
 
 .tobago-messages-container.tobago-flexLayout .tobago-messages:first-child small label {
@@ -8787,8 +9312,9 @@ a.tobago-messages-button {
 }
 
 .tobago-flexLayout.tobago-messages-container > .twitter-typeahead, .tobago-flexLayout.tobago-messages-container > .tobago-input-group-outer, .tobago-flexLayout.tobago-messages-container > .tobago-selectManyShuttle, .tobago-flexLayout.tobago-messages-container > .tobago-file {
+  -webkit-box-flex: 1;
   -ms-flex: 1 0 0px;
-      flex: 1 0 0px;
+  flex: 1 0 0px;
 }
 
 /* nav ----------------------------------------------------------- */
@@ -8964,12 +9490,14 @@ h1 > .fa:first-child, h2 > .fa:first-child, h3 > .fa:first-child, h4 > .fa:first
 }
 
 .tobago-section-header {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
+  justify-content: space-between;
   -ms-flex-line-pack: center;
-      align-content: center;
+  align-content: center;
 }
 
 /* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
@@ -9062,14 +9590,16 @@ h1 > .fa:first-child, h2 > .fa:first-child, h3 > .fa:first-child, h4 > .fa:first
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
 }
 
 .tobago-selectManyShuttle .tobago-selectManyShuttle-unselected,
 .tobago-selectManyShuttle .tobago-selectManyShuttle-selected {
+  -webkit-box-flex: 1;
   -ms-flex: 1 0 0px;
-      flex: 1 0 0px;
+  flex: 1 0 0px;
 }
 
 .tobago-selectManyShuttle-hidden {
@@ -9077,10 +9607,13 @@ h1 > .fa:first-child, h2 > .fa:first-child, h3 > .fa:first-child, h4 > .fa:first
 }
 
 .tobago-selectManyShuttle-toolBar {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
   padding: 0 0.5rem;
 }
 
@@ -9089,8 +9622,9 @@ h1 > .fa:first-child, h2 > .fa:first-child, h3 > .fa:first-child, h4 > .fa:first
 }
 
 .tobago-selectManyShuttle-toolBar > div {
+  -webkit-box-flex: 1;
   -ms-flex: 1 0 0px;
-      flex: 1 0 0px;
+  flex: 1 0 0px;
 }
 
 .tobago-selectManyShuttle-toolBar > * {
@@ -9100,20 +9634,14 @@ h1 > .fa:first-child, h2 > .fa:first-child, h3 > .fa:first-child, h4 > .fa:first
 
 /* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
-.input-group-btn:not(:last-child) > .tobago-selectOneChoice {
+.input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
-  width: 100%;
-  -webkit-appearance: none;
-  margin-right: -1px;
   border-top-right-radius: 0;
   border-bottom-right-radius: 0;
 }
 
-.input-group-btn:not(:first-child) > .tobago-selectOneChoice {
+.input-group-append > .tobago-selectOneChoice {
   /* after facet */
-  width: 100%;
-  -webkit-appearance: none;
-  margin-left: -1px;
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
@@ -9178,7 +9706,7 @@ th.tobago-sheet-headerCell .tobago-out {
 .tobago-sheet-header {
   overflow: hidden;
   -ms-flex-negative: 0;
-      flex-shrink: 0;
+  flex-shrink: 0;
 }
 
 th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
@@ -9192,10 +9720,13 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 }
 
 .tobago-sheet {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
   -ms-flex-direction: column;
-      flex-direction: column;
+  flex-direction: column;
   margin-bottom: 1rem;
 }
 
@@ -9225,6 +9756,7 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 }
 
 .tobago-sheet-paging {
+  display: -webkit-inline-box;
   display: -ms-inline-flexbox;
   display: inline-flex;
 }
@@ -9250,8 +9782,9 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 
 .tobago-sheet-body {
   overflow-y: auto;
+  -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
-      flex: 1 1 auto;
+  flex: 1 1 auto;
 }
 
 .tobago-sheet-headerTable {
@@ -9377,10 +9910,12 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 }
 
 .twitter-typeahead {
+  display: -webkit-box !important;
   display: -ms-flexbox !important;
   display: flex !important;
+  -webkit-box-flex: 1;
   -ms-flex-positive: 1;
-      flex-grow: 1;
+  flex-grow: 1;
 }
 
 .input-group > .twitter-typeahead {
@@ -9412,12 +9947,14 @@ th.tobago-sheet-headerCell-markup-filler > .tobago-sheet-header {
 
 /* tab / tab-group ----------------------------------------------------------------- */
 .tobago-tab {
+  display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
+  -webkit-box-pack: justify;
   -ms-flex-pack: justify;
-      justify-content: space-between;
+  justify-content: space-between;
   -ms-flex-line-pack: center;
-      align-content: center;
+  align-content: center;
   margin-left: 0.2rem;
   z-index: 0;
   /* IE11 fix to hide bottom border on active tab */
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
index 9818d63..af909c0 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_gri [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
index b63cc13..4677a11 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -1,7 +1,7 @@
 @charset "UTF-8";/*!
- * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
  * Copyright 2011-2017 The Bootstrap Authors
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#868e96;--gray-dark:#343a40;--primary:#007bff;--secondary:#868e96;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 58d8f17..79b57af 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_print.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/mixins/_transition.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_br [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../. [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.js b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.js
index 630a9e0..920e77f 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.js
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.js
@@ -1,36 +1,72 @@
 /*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
+  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap = (function (exports,$,Popper) {
-'use strict';
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
+	typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
+	(factory((global.bootstrap = {}),global.jQuery,global.Popper));
+}(this, (function (exports,$,Popper) { 'use strict';
 
 $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
 Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
 
+function _defineProperties(target, props) {
+  for (var i = 0; i < props.length; i++) {
+    var descriptor = props[i];
+    descriptor.enumerable = descriptor.enumerable || false;
+    descriptor.configurable = true;
+    if ("value" in descriptor) descriptor.writable = true;
+    Object.defineProperty(target, descriptor.key, descriptor);
+  }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+  if (staticProps) _defineProperties(Constructor, staticProps);
+  return Constructor;
+}
+
+function _extends() {
+  _extends = Object.assign || function (target) {
+    for (var i = 1; i < arguments.length; i++) {
+      var source = arguments[i];
+
+      for (var key in source) {
+        if (Object.prototype.hasOwnProperty.call(source, key)) {
+          target[key] = source[key];
+        }
+      }
+    }
+
+    return target;
+  };
+
+  return _extends.apply(this, arguments);
+}
+
+function _inheritsLoose(subClass, superClass) {
+  subClass.prototype = Object.create(superClass.prototype);
+  subClass.prototype.constructor = subClass;
+  subClass.__proto__ = superClass;
+}
+
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): util.js
+ * Bootstrap (v4.0.0-beta.3): util.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Util = function () {
+var Util = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Private TransitionEnd Helpers
    * ------------------------------------------------------------------------
    */
   var transition = false;
-  var MAX_UID = 1000000;
-  var TransitionEndEvent = {
-    WebkitTransition: 'webkitTransitionEnd',
-    MozTransition: 'transitionend',
-    OTransition: 'oTransitionEnd otransitionend',
-    transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
-
-  };
+  var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp)
 
   function toType(obj) {
     return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
@@ -41,7 +77,7 @@ var Util = function () {
       bindType: transition.end,
       delegateType: transition.end,
       handle: function handle(event) {
-        if ($(event.target).is(this)) {
+        if ($$$1(event.target).is(this)) {
           return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
         }
 
@@ -55,24 +91,16 @@ var Util = function () {
       return false;
     }
 
-    var el = document.createElement('bootstrap');
-
-    for (var name in TransitionEndEvent) {
-      if (typeof el.style[name] !== 'undefined') {
-        return {
-          end: TransitionEndEvent[name]
-        };
-      }
-    }
-
-    return false;
+    return {
+      end: 'transitionend'
+    };
   }
 
   function transitionEndEmulator(duration) {
     var _this = this;
 
     var called = false;
-    $(this).one(Util.TRANSITION_END, function () {
+    $$$1(this).one(Util.TRANSITION_END, function () {
       called = true;
     });
     setTimeout(function () {
@@ -85,12 +113,19 @@ var Util = function () {
 
   function setTransitionEndSupport() {
     transition = transitionEndTest();
-    $.fn.emulateTransitionEnd = transitionEndEmulator;
+    $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
 
     if (Util.supportsTransitionEnd()) {
-      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+      $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
     }
   }
+
+  function escapeId(selector) {
+    // we escape IDs in case of special selectors (selector = '#myId:something')
+    // $.escapeSelector does not exist in jQuery < 3
+    selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
+    return selector;
+  }
   /**
    * --------------------------------------------------------------------------
    * Public Util Api
@@ -113,10 +148,15 @@ var Util = function () {
 
       if (!selector || selector === '#') {
         selector = element.getAttribute('href') || '';
+      } // if it's an ID
+
+
+      if (selector.charAt(0) === '#') {
+        selector = escapeId(selector);
       }
 
       try {
-        var $selector = $(document).find(selector);
+        var $selector = $$$1(document).find(selector);
         return $selector.length > 0 ? selector : null;
       } catch (error) {
         return null;
@@ -126,7 +166,7 @@ var Util = function () {
       return element.offsetHeight;
     },
     triggerTransitionEnd: function triggerTransitionEnd(element) {
-      $(element).trigger(transition.end);
+      $$$1(element).trigger(transition.end);
     },
     supportsTransitionEnd: function supportsTransitionEnd() {
       return Boolean(transition);
@@ -152,51 +192,25 @@ var Util = function () {
   return Util;
 }($);
 
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-var createClass = _createClass;
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-var inheritsLoose = _inheritsLoose;
-
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): alert.js
+ * Bootstrap (v4.0.0-beta.3): alert.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Alert = function () {
+var Alert = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'alert';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.alert';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 150;
   var Selector = {
     DISMISS: '[data-dismiss="alert"]'
@@ -244,7 +258,7 @@ var Alert = function () {
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
       this._element = null;
     }; // private
 
@@ -254,46 +268,46 @@ var Alert = function () {
       var parent = false;
 
       if (selector) {
-        parent = $(selector)[0];
+        parent = $$$1(selector)[0];
       }
 
       if (!parent) {
-        parent = $(element).closest("." + ClassName.ALERT)[0];
+        parent = $$$1(element).closest("." + ClassName.ALERT)[0];
       }
 
       return parent;
     };
 
     _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
-      var closeEvent = $.Event(Event.CLOSE);
-      $(element).trigger(closeEvent);
+      var closeEvent = $$$1.Event(Event.CLOSE);
+      $$$1(element).trigger(closeEvent);
       return closeEvent;
     };
 
     _proto._removeElement = function _removeElement(element) {
       var _this = this;
 
-      $(element).removeClass(ClassName.SHOW);
+      $$$1(element).removeClass(ClassName.SHOW);
 
-      if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
+      if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
         this._destroyElement(element);
 
         return;
       }
 
-      $(element).one(Util.TRANSITION_END, function (event) {
+      $$$1(element).one(Util.TRANSITION_END, function (event) {
         return _this._destroyElement(element, event);
       }).emulateTransitionEnd(TRANSITION_DURATION);
     };
 
     _proto._destroyElement = function _destroyElement(element) {
-      $(element).detach().trigger(Event.CLOSED).remove();
+      $$$1(element).detach().trigger(Event.CLOSED).remove();
     }; // static
 
 
     Alert._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var $element = $(this);
+        var $element = $$$1(this);
         var data = $element.data(DATA_KEY);
 
         if (!data) {
@@ -317,7 +331,7 @@ var Alert = function () {
       };
     };
 
-    createClass(Alert, null, [{
+    _createClass(Alert, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -332,18 +346,18 @@ var Alert = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
   /**
    * ------------------------------------------------------------------------
    * jQuery
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Alert._jQueryInterface;
-  $.fn[NAME].Constructor = Alert;
+  $$$1.fn[NAME] = Alert._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Alert;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Alert._jQueryInterface;
   };
 
@@ -352,23 +366,23 @@ var Alert = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): button.js
+ * Bootstrap (v4.0.0-beta.3): button.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Button = function () {
+var Button = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'button';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.button';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var ClassName = {
     ACTIVE: 'active',
     BUTTON: 'btn',
@@ -406,20 +420,20 @@ var Button = function () {
     _proto.toggle = function toggle() {
       var triggerChangeEvent = true;
       var addAriaPressed = true;
-      var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
+      var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
 
       if (rootElement) {
-        var input = $(this._element).find(Selector.INPUT)[0];
+        var input = $$$1(this._element).find(Selector.INPUT)[0];
 
         if (input) {
           if (input.type === 'radio') {
-            if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
+            if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
               triggerChangeEvent = false;
             } else {
-              var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
+              var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
 
               if (activeElement) {
-                $(activeElement).removeClass(ClassName.ACTIVE);
+                $$$1(activeElement).removeClass(ClassName.ACTIVE);
               }
             }
           }
@@ -429,8 +443,8 @@ var Button = function () {
               return;
             }
 
-            input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
-            $(input).trigger('change');
+            input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
+            $$$1(input).trigger('change');
           }
 
           input.focus();
@@ -439,27 +453,27 @@ var Button = function () {
       }
 
       if (addAriaPressed) {
-        this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
+        this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
       }
 
       if (triggerChangeEvent) {
-        $(this._element).toggleClass(ClassName.ACTIVE);
+        $$$1(this._element).toggleClass(ClassName.ACTIVE);
       }
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
       this._element = null;
     }; // static
 
 
     Button._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
         if (!data) {
           data = new Button(this);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (config === 'toggle') {
@@ -468,7 +482,7 @@ var Button = function () {
       });
     };
 
-    createClass(Button, null, [{
+    _createClass(Button, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -483,18 +497,18 @@ var Button = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
     event.preventDefault();
     var button = event.target;
 
-    if (!$(button).hasClass(ClassName.BUTTON)) {
-      button = $(button).closest(Selector.BUTTON);
+    if (!$$$1(button).hasClass(ClassName.BUTTON)) {
+      button = $$$1(button).closest(Selector.BUTTON);
     }
 
-    Button._jQueryInterface.call($(button), 'toggle');
+    Button._jQueryInterface.call($$$1(button), 'toggle');
   }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    var button = $(event.target).closest(Selector.BUTTON)[0];
-    $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+    var button = $$$1(event.target).closest(Selector.BUTTON)[0];
+    $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
   });
   /**
    * ------------------------------------------------------------------------
@@ -502,11 +516,11 @@ var Button = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Button._jQueryInterface;
-  $.fn[NAME].Constructor = Button;
+  $$$1.fn[NAME] = Button._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Button;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Button._jQueryInterface;
   };
 
@@ -515,23 +529,23 @@ var Button = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): carousel.js
+ * Bootstrap (v4.0.0-beta.3): carousel.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Carousel = function () {
+var Carousel = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'carousel';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.carousel';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 600;
   var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
 
@@ -606,8 +620,8 @@ var Carousel = function () {
       this._isSliding = false;
       this.touchTimeout = null;
       this._config = this._getConfig(config);
-      this._element = $(element)[0];
-      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
+      this._element = $$$1(element)[0];
+      this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
 
       this._addEventListeners();
     } // getters
@@ -625,7 +639,7 @@ var Carousel = function () {
     _proto.nextWhenVisible = function nextWhenVisible() {
       // Don't call next when the page isn't visible
       // or the carousel or its parent isn't visible
-      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
+      if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
         this.next();
       }
     };
@@ -641,7 +655,7 @@ var Carousel = function () {
         this._isPaused = true;
       }
 
-      if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
+      if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
         Util.triggerTransitionEnd(this._element);
         this.cycle(true);
       }
@@ -668,7 +682,7 @@ var Carousel = function () {
     _proto.to = function to(index) {
       var _this = this;
 
-      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+      this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
 
       var activeIndex = this._getItemIndex(this._activeElement);
 
@@ -677,7 +691,7 @@ var Carousel = function () {
       }
 
       if (this._isSliding) {
-        $(this._element).one(Event.SLID, function () {
+        $$$1(this._element).one(Event.SLID, function () {
           return _this.to(index);
         });
         return;
@@ -695,8 +709,8 @@ var Carousel = function () {
     };
 
     _proto.dispose = function dispose() {
-      $(this._element).off(EVENT_KEY);
-      $.removeData(this._element, DATA_KEY);
+      $$$1(this._element).off(EVENT_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
       this._items = null;
       this._config = null;
       this._element = null;
@@ -709,7 +723,7 @@ var Carousel = function () {
 
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
+      config = _extends({}, Default, config);
       Util.typeCheckConfig(NAME, config, DefaultType);
       return config;
     };
@@ -718,13 +732,13 @@ var Carousel = function () {
       var _this2 = this;
 
       if (this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN, function (event) {
+        $$$1(this._element).on(Event.KEYDOWN, function (event) {
           return _this2._keydown(event);
         });
       }
 
       if (this._config.pause === 'hover') {
-        $(this._element).on(Event.MOUSEENTER, function (event) {
+        $$$1(this._element).on(Event.MOUSEENTER, function (event) {
           return _this2.pause(event);
         }).on(Event.MOUSELEAVE, function (event) {
           return _this2.cycle(event);
@@ -738,7 +752,7 @@ var Carousel = function () {
           // (as if it's the second time we tap on it, mouseenter compat event
           // is NOT fired) and after a timeout (to allow for mouse compatibility
           // events to fire) we explicitly restart cycling
-          $(this._element).on(Event.TOUCHEND, function () {
+          $$$1(this._element).on(Event.TOUCHEND, function () {
             _this2.pause();
 
             if (_this2.touchTimeout) {
@@ -775,7 +789,7 @@ var Carousel = function () {
     };
 
     _proto._getItemIndex = function _getItemIndex(element) {
-      this._items = $.makeArray($(element).parent().find(Selector.ITEM));
+      this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
       return this._items.indexOf(element);
     };
 
@@ -800,26 +814,26 @@ var Carousel = function () {
     _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
       var targetIndex = this._getItemIndex(relatedTarget);
 
-      var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
+      var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
 
-      var slideEvent = $.Event(Event.SLIDE, {
+      var slideEvent = $$$1.Event(Event.SLIDE, {
         relatedTarget: relatedTarget,
         direction: eventDirectionName,
         from: fromIndex,
         to: targetIndex
       });
-      $(this._element).trigger(slideEvent);
+      $$$1(this._element).trigger(slideEvent);
       return slideEvent;
     };
 
     _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
       if (this._indicatorsElement) {
-        $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+        $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
 
         var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
 
         if (nextIndicator) {
-          $(nextIndicator).addClass(ClassName.ACTIVE);
+          $$$1(nextIndicator).addClass(ClassName.ACTIVE);
         }
       }
     };
@@ -827,7 +841,7 @@ var Carousel = function () {
     _proto._slide = function _slide(direction, element) {
       var _this3 = this;
 
-      var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+      var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
 
       var activeElementIndex = this._getItemIndex(activeElement);
 
@@ -850,7 +864,7 @@ var Carousel = function () {
         eventDirectionName = Direction.RIGHT;
       }
 
-      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
+      if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
         this._isSliding = false;
         return;
       }
@@ -874,31 +888,31 @@ var Carousel = function () {
 
       this._setActiveIndicatorElement(nextElement);
 
-      var slidEvent = $.Event(Event.SLID, {
+      var slidEvent = $$$1.Event(Event.SLID, {
         relatedTarget: nextElement,
         direction: eventDirectionName,
         from: activeElementIndex,
         to: nextElementIndex
       });
 
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
-        $(nextElement).addClass(orderClassName);
+      if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
+        $$$1(nextElement).addClass(orderClassName);
         Util.reflow(nextElement);
-        $(activeElement).addClass(directionalClassName);
-        $(nextElement).addClass(directionalClassName);
-        $(activeElement).one(Util.TRANSITION_END, function () {
-          $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
-          $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+        $$$1(activeElement).addClass(directionalClassName);
+        $$$1(nextElement).addClass(directionalClassName);
+        $$$1(activeElement).one(Util.TRANSITION_END, function () {
+          $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+          $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
           _this3._isSliding = false;
           setTimeout(function () {
-            return $(_this3._element).trigger(slidEvent);
+            return $$$1(_this3._element).trigger(slidEvent);
           }, 0);
         }).emulateTransitionEnd(TRANSITION_DURATION);
       } else {
-        $(activeElement).removeClass(ClassName.ACTIVE);
-        $(nextElement).addClass(ClassName.ACTIVE);
+        $$$1(activeElement).removeClass(ClassName.ACTIVE);
+        $$$1(nextElement).addClass(ClassName.ACTIVE);
         this._isSliding = false;
-        $(this._element).trigger(slidEvent);
+        $$$1(this._element).trigger(slidEvent);
       }
 
       if (isCycling) {
@@ -909,19 +923,19 @@ var Carousel = function () {
 
     Carousel._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
-        var _config = $.extend({}, Default, $(this).data());
+        var _config = _extends({}, Default, $$$1(this).data());
 
         if (typeof config === 'object') {
-          $.extend(_config, config);
+          _config = _extends({}, _config, config);
         }
 
         var action = typeof config === 'string' ? config : _config.slide;
 
         if (!data) {
           data = new Carousel(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'number') {
@@ -946,29 +960,29 @@ var Carousel = function () {
         return;
       }
 
-      var target = $(selector)[0];
+      var target = $$$1(selector)[0];
 
-      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
+      if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
         return;
       }
 
-      var config = $.extend({}, $(target).data(), $(this).data());
+      var config = _extends({}, $$$1(target).data(), $$$1(this).data());
       var slideIndex = this.getAttribute('data-slide-to');
 
       if (slideIndex) {
         config.interval = false;
       }
 
-      Carousel._jQueryInterface.call($(target), config);
+      Carousel._jQueryInterface.call($$$1(target), config);
 
       if (slideIndex) {
-        $(target).data(DATA_KEY).to(slideIndex);
+        $$$1(target).data(DATA_KEY).to(slideIndex);
       }
 
       event.preventDefault();
     };
 
-    createClass(Carousel, null, [{
+    _createClass(Carousel, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -988,10 +1002,10 @@ var Carousel = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
-  $(window).on(Event.LOAD_DATA_API, function () {
-    $(Selector.DATA_RIDE).each(function () {
-      var $carousel = $(this);
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+  $$$1(window).on(Event.LOAD_DATA_API, function () {
+    $$$1(Selector.DATA_RIDE).each(function () {
+      var $carousel = $$$1(this);
 
       Carousel._jQueryInterface.call($carousel, $carousel.data());
     });
@@ -1002,11 +1016,11 @@ var Carousel = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Carousel._jQueryInterface;
-  $.fn[NAME].Constructor = Carousel;
+  $$$1.fn[NAME] = Carousel._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Carousel;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Carousel._jQueryInterface;
   };
 
@@ -1015,23 +1029,23 @@ var Carousel = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): collapse.js
+ * Bootstrap (v4.0.0-beta.3): collapse.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Collapse = function () {
+var Collapse = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'collapse';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.collapse';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 600;
   var Default = {
     toggle: true,
@@ -1076,14 +1090,14 @@ var Collapse = function () {
       this._isTransitioning = false;
       this._element = element;
       this._config = this._getConfig(config);
-      this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
-      var tabToggles = $(Selector.DATA_TOGGLE);
+      this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+      var tabToggles = $$$1(Selector.DATA_TOGGLE);
 
       for (var i = 0; i < tabToggles.length; i++) {
         var elem = tabToggles[i];
         var selector = Util.getSelectorFromElement(elem);
 
-        if (selector !== null && $(selector).filter(element).length > 0) {
+        if (selector !== null && $$$1(selector).filter(element).length > 0) {
           this._triggerArray.push(elem);
         }
       }
@@ -1104,7 +1118,7 @@ var Collapse = function () {
 
     // public
     _proto.toggle = function toggle() {
-      if ($(this._element).hasClass(ClassName.SHOW)) {
+      if ($$$1(this._element).hasClass(ClassName.SHOW)) {
         this.hide();
       } else {
         this.show();
@@ -1114,7 +1128,7 @@ var Collapse = function () {
     _proto.show = function show() {
       var _this = this;
 
-      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
+      if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
         return;
       }
 
@@ -1122,7 +1136,7 @@ var Collapse = function () {
       var activesData;
 
       if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
+        actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES));
 
         if (!actives.length) {
           actives = null;
@@ -1130,46 +1144,46 @@ var Collapse = function () {
       }
 
       if (actives) {
-        activesData = $(actives).data(DATA_KEY);
+        activesData = $$$1(actives).data(DATA_KEY);
 
         if (activesData && activesData._isTransitioning) {
           return;
         }
       }
 
-      var startEvent = $.Event(Event.SHOW);
-      $(this._element).trigger(startEvent);
+      var startEvent = $$$1.Event(Event.SHOW);
+      $$$1(this._element).trigger(startEvent);
 
       if (startEvent.isDefaultPrevented()) {
         return;
       }
 
       if (actives) {
-        Collapse._jQueryInterface.call($(actives), 'hide');
+        Collapse._jQueryInterface.call($$$1(actives), 'hide');
 
         if (!activesData) {
-          $(actives).data(DATA_KEY, null);
+          $$$1(actives).data(DATA_KEY, null);
         }
       }
 
       var dimension = this._getDimension();
 
-      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+      $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
       this._element.style[dimension] = 0;
 
       if (this._triggerArray.length) {
-        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+        $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
       }
 
       this.setTransitioning(true);
 
       var complete = function complete() {
-        $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+        $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
         _this._element.style[dimension] = '';
 
         _this.setTransitioning(false);
 
-        $(_this._element).trigger(Event.SHOWN);
+        $$$1(_this._element).trigger(Event.SHOWN);
       };
 
       if (!Util.supportsTransitionEnd()) {
@@ -1179,19 +1193,19 @@ var Collapse = function () {
 
       var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
       var scrollSize = "scroll" + capitalizedDimension;
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+      $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
       this._element.style[dimension] = this._element[scrollSize] + "px";
     };
 
     _proto.hide = function hide() {
       var _this2 = this;
 
-      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
+      if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
         return;
       }
 
-      var startEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(startEvent);
+      var startEvent = $$$1.Event(Event.HIDE);
+      $$$1(this._element).trigger(startEvent);
 
       if (startEvent.isDefaultPrevented()) {
         return;
@@ -1201,7 +1215,7 @@ var Collapse = function () {
 
       this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
       Util.reflow(this._element);
-      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+      $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
 
       if (this._triggerArray.length) {
         for (var i = 0; i < this._triggerArray.length; i++) {
@@ -1209,10 +1223,10 @@ var Collapse = function () {
           var selector = Util.getSelectorFromElement(trigger);
 
           if (selector !== null) {
-            var $elem = $(selector);
+            var $elem = $$$1(selector);
 
             if (!$elem.hasClass(ClassName.SHOW)) {
-              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+              $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
             }
           }
         }
@@ -1223,7 +1237,7 @@ var Collapse = function () {
       var complete = function complete() {
         _this2.setTransitioning(false);
 
-        $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+        $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
       };
 
       this._element.style[dimension] = '';
@@ -1233,7 +1247,7 @@ var Collapse = function () {
         return;
       }
 
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+      $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
     };
 
     _proto.setTransitioning = function setTransitioning(isTransitioning) {
@@ -1241,7 +1255,7 @@ var Collapse = function () {
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
       this._config = null;
       this._parent = null;
       this._element = null;
@@ -1251,7 +1265,7 @@ var Collapse = function () {
 
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
+      config = _extends({}, Default, config);
       config.toggle = Boolean(config.toggle); // coerce string values
 
       Util.typeCheckConfig(NAME, config, DefaultType);
@@ -1259,7 +1273,7 @@ var Collapse = function () {
     };
 
     _proto._getDimension = function _getDimension() {
-      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
+      var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
       return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
     };
 
@@ -1275,11 +1289,11 @@ var Collapse = function () {
           parent = this._config.parent[0];
         }
       } else {
-        parent = $(this._config.parent)[0];
+        parent = $$$1(this._config.parent)[0];
       }
 
       var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
-      $(parent).find(selector).each(function (i, element) {
+      $$$1(parent).find(selector).each(function (i, element) {
         _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
       });
       return parent;
@@ -1287,10 +1301,10 @@ var Collapse = function () {
 
     _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
       if (element) {
-        var isOpen = $(element).hasClass(ClassName.SHOW);
+        var isOpen = $$$1(element).hasClass(ClassName.SHOW);
 
         if (triggerArray.length) {
-          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+          $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
         }
       }
     }; // static
@@ -1298,15 +1312,15 @@ var Collapse = function () {
 
     Collapse._getTargetFromElement = function _getTargetFromElement(element) {
       var selector = Util.getSelectorFromElement(element);
-      return selector ? $(selector)[0] : null;
+      return selector ? $$$1(selector)[0] : null;
     };
 
     Collapse._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var $this = $(this);
+        var $this = $$$1(this);
         var data = $this.data(DATA_KEY);
 
-        var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
+        var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
 
         if (!data && _config.toggle && /show|hide/.test(config)) {
           _config.toggle = false;
@@ -1327,7 +1341,7 @@ var Collapse = function () {
       });
     };
 
-    createClass(Collapse, null, [{
+    _createClass(Collapse, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -1347,16 +1361,16 @@ var Collapse = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
     // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
     if (event.currentTarget.tagName === 'A') {
       event.preventDefault();
     }
 
-    var $trigger = $(this);
+    var $trigger = $$$1(this);
     var selector = Util.getSelectorFromElement(this);
-    $(selector).each(function () {
-      var $target = $(this);
+    $$$1(selector).each(function () {
+      var $target = $$$1(this);
       var data = $target.data(DATA_KEY);
       var config = data ? 'toggle' : $trigger.data();
 
@@ -1369,11 +1383,11 @@ var Collapse = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Collapse._jQueryInterface;
-  $.fn[NAME].Constructor = Collapse;
+  $$$1.fn[NAME] = Collapse._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Collapse;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Collapse._jQueryInterface;
   };
 
@@ -1382,32 +1396,23 @@ var Collapse = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): dropdown.js
+ * Bootstrap (v4.0.0-beta.3): dropdown.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Dropdown = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
-  }
+var Dropdown = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
-
-
   var NAME = 'dropdown';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.dropdown';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
 
   var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
@@ -1435,8 +1440,11 @@ var Dropdown = function () {
     DISABLED: 'disabled',
     SHOW: 'show',
     DROPUP: 'dropup',
+    DROPRIGHT: 'dropright',
+    DROPLEFT: 'dropleft',
     MENURIGHT: 'dropdown-menu-right',
-    MENULEFT: 'dropdown-menu-left'
+    MENULEFT: 'dropdown-menu-left',
+    POSITION_STATIC: 'position-static'
   };
   var Selector = {
     DATA_TOGGLE: '[data-toggle="dropdown"]',
@@ -1449,15 +1457,21 @@ var Dropdown = function () {
     TOP: 'top-start',
     TOPEND: 'top-end',
     BOTTOM: 'bottom-start',
-    BOTTOMEND: 'bottom-end'
+    BOTTOMEND: 'bottom-end',
+    RIGHT: 'right-start',
+    RIGHTEND: 'right-end',
+    LEFT: 'left-start',
+    LEFTEND: 'left-end'
   };
   var Default = {
     offset: 0,
-    flip: true
+    flip: true,
+    boundary: 'scrollParent'
   };
   var DefaultType = {
     offset: '(number|string|function)',
-    flip: 'boolean'
+    flip: 'boolean',
+    boundary: '(string|element)'
     /**
      * ------------------------------------------------------------------------
      * Class Definition
@@ -1484,13 +1498,13 @@ var Dropdown = function () {
 
     // public
     _proto.toggle = function toggle() {
-      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
+      if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
         return;
       }
 
       var parent = Dropdown._getParentFromElement(this._element);
 
-      var isActive = $(this._menu).hasClass(ClassName.SHOW);
+      var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
 
       Dropdown._clearMenus();
 
@@ -1501,49 +1515,68 @@ var Dropdown = function () {
       var relatedTarget = {
         relatedTarget: this._element
       };
-      var showEvent = $.Event(Event.SHOW, relatedTarget);
-      $(parent).trigger(showEvent);
+      var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
+      $$$1(parent).trigger(showEvent);
 
       if (showEvent.isDefaultPrevented()) {
         return;
-      }
+      } // Disable totally Popper.js for Dropdown in Navbar
 
-      var element = this._element; // for dropup with alignment we use the parent as popper container
 
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent;
+      if (!this._inNavbar) {
+        /**
+         * Check for Popper dependency
+         * Popper - https://popper.js.org
+         */
+        if (typeof Popper === 'undefined') {
+          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
         }
-      }
 
-      this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra
+        var element = this._element; // for dropup with alignment we use the parent as popper container
+
+        if ($$$1(parent).hasClass(ClassName.DROPUP)) {
+          if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+            element = parent;
+          }
+        } // If boundary is not `scrollParent`, then set position to `static`
+        // to allow the menu to "escape" the scroll parent's boundaries
+        // https://github.com/twbs/bootstrap/issues/24251
+
+
+        if (this._config.boundary !== 'scrollParent') {
+          $$$1(parent).addClass(ClassName.POSITION_STATIC);
+        }
+
+        this._popper = new Popper(element, this._menu, this._getPopperConfig());
+      } // if this is a touch-enabled device we add extra
       // empty mouseover listeners to the body's immediate children;
       // only needed because of broken event delegation on iOS
       // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
 
-      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-        $('body').children().on('mouseover', null, $.noop);
+
+      if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) {
+        $$$1('body').children().on('mouseover', null, $$$1.noop);
       }
 
       this._element.focus();
 
       this._element.setAttribute('aria-expanded', true);
 
-      $(this._menu).toggleClass(ClassName.SHOW);
-      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
+      $$$1(this._menu).toggleClass(ClassName.SHOW);
+      $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._element).off(EVENT_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
+      $$$1(this._element).off(EVENT_KEY);
       this._element = null;
       this._menu = null;
 
       if (this._popper !== null) {
         this._popper.destroy();
-      }
 
-      this._popper = null;
+        this._popper = null;
+      }
     };
 
     _proto.update = function update() {
@@ -1558,7 +1591,7 @@ var Dropdown = function () {
     _proto._addEventListeners = function _addEventListeners() {
       var _this = this;
 
-      $(this._element).on(Event.CLICK, function (event) {
+      $$$1(this._element).on(Event.CLICK, function (event) {
         event.preventDefault();
         event.stopPropagation();
 
@@ -1567,7 +1600,7 @@ var Dropdown = function () {
     };
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
+      config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
       Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
       return config;
     };
@@ -1576,23 +1609,27 @@ var Dropdown = function () {
       if (!this._menu) {
         var parent = Dropdown._getParentFromElement(this._element);
 
-        this._menu = $(parent).find(Selector.MENU)[0];
+        this._menu = $$$1(parent).find(Selector.MENU)[0];
       }
 
       return this._menu;
     };
 
     _proto._getPlacement = function _getPlacement() {
-      var $parentDropdown = $(this._element).parent();
+      var $parentDropdown = $$$1(this._element).parent();
       var placement = AttachmentMap.BOTTOM; // Handle dropup
 
       if ($parentDropdown.hasClass(ClassName.DROPUP)) {
         placement = AttachmentMap.TOP;
 
-        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
+        if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
           placement = AttachmentMap.TOPEND;
         }
-      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
+      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+        placement = AttachmentMap.RIGHT;
+      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+        placement = AttachmentMap.LEFT;
+      } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
         placement = AttachmentMap.BOTTOMEND;
       }
 
@@ -1600,7 +1637,7 @@ var Dropdown = function () {
     };
 
     _proto._detectNavbar = function _detectNavbar() {
-      return $(this._element).closest('.navbar').length > 0;
+      return $$$1(this._element).closest('.navbar').length > 0;
     };
 
     _proto._getPopperConfig = function _getPopperConfig() {
@@ -1610,7 +1647,7 @@ var Dropdown = function () {
 
       if (typeof this._config.offset === 'function') {
         offsetConf.fn = function (data) {
-          data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
+          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
           return data;
         };
       } else {
@@ -1623,30 +1660,25 @@ var Dropdown = function () {
           offset: offsetConf,
           flip: {
             enabled: this._config.flip
+          },
+          preventOverflow: {
+            boundariesElement: this._config.boundary
           }
-        } // Disable Popper.js for Dropdown in Navbar
-
+        }
       };
-
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        };
-      }
-
       return popperConfig;
     }; // static
 
 
     Dropdown._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
         var _config = typeof config === 'object' ? config : null;
 
         if (!data) {
           data = new Dropdown(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'string') {
@@ -1664,12 +1696,12 @@ var Dropdown = function () {
         return;
       }
 
-      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
+      var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
 
       for (var i = 0; i < toggles.length; i++) {
         var parent = Dropdown._getParentFromElement(toggles[i]);
 
-        var context = $(toggles[i]).data(DATA_KEY);
+        var context = $$$1(toggles[i]).data(DATA_KEY);
         var relatedTarget = {
           relatedTarget: toggles[i]
         };
@@ -1680,16 +1712,16 @@ var Dropdown = function () {
 
         var dropdownMenu = context._menu;
 
-        if (!$(parent).hasClass(ClassName.SHOW)) {
+        if (!$$$1(parent).hasClass(ClassName.SHOW)) {
           continue;
         }
 
-        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
+        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
           continue;
         }
 
-        var hideEvent = $.Event(Event.HIDE, relatedTarget);
-        $(parent).trigger(hideEvent);
+        var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
+        $$$1(parent).trigger(hideEvent);
 
         if (hideEvent.isDefaultPrevented()) {
           continue;
@@ -1698,12 +1730,12 @@ var Dropdown = function () {
 
 
         if ('ontouchstart' in document.documentElement) {
-          $('body').children().off('mouseover', null, $.noop);
+          $$$1('body').children().off('mouseover', null, $$$1.noop);
         }
 
         toggles[i].setAttribute('aria-expanded', 'false');
-        $(dropdownMenu).removeClass(ClassName.SHOW);
-        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
+        $$$1(dropdownMenu).removeClass(ClassName.SHOW);
+        $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
       }
     };
 
@@ -1712,39 +1744,46 @@ var Dropdown = function () {
       var selector = Util.getSelectorFromElement(element);
 
       if (selector) {
-        parent = $(selector)[0];
+        parent = $$$1(selector)[0];
       }
 
       return parent || element.parentNode;
     };
 
     Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
-      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
+      // If not input/textarea:
+      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
+      // If input/textarea:
+      //  - If space key => not a dropdown command
+      //  - If key is other than escape
+      //    - If key is not up or down => not a dropdown command
+      //    - If trigger inside the menu => not a dropdown command
+      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
         return;
       }
 
       event.preventDefault();
       event.stopPropagation();
 
-      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+      if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
         return;
       }
 
       var parent = Dropdown._getParentFromElement(this);
 
-      var isActive = $(parent).hasClass(ClassName.SHOW);
+      var isActive = $$$1(parent).hasClass(ClassName.SHOW);
 
       if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
         if (event.which === ESCAPE_KEYCODE) {
-          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
-          $(toggle).trigger('focus');
+          var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
+          $$$1(toggle).trigger('focus');
         }
 
-        $(this).trigger('click');
+        $$$1(this).trigger('click');
         return;
       }
 
-      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
+      var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
 
       if (!items.length) {
         return;
@@ -1769,7 +1808,7 @@ var Dropdown = function () {
       items[index].focus();
     };
 
-    createClass(Dropdown, null, [{
+    _createClass(Dropdown, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -1794,11 +1833,11 @@ var Dropdown = function () {
    */
 
 
-  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+  $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
     event.preventDefault();
     event.stopPropagation();
 
-    Dropdown._jQueryInterface.call($(this), 'toggle');
+    Dropdown._jQueryInterface.call($$$1(this), 'toggle');
   }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
     e.stopPropagation();
   });
@@ -1808,11 +1847,11 @@ var Dropdown = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Dropdown._jQueryInterface;
-  $.fn[NAME].Constructor = Dropdown;
+  $$$1.fn[NAME] = Dropdown._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Dropdown;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Dropdown._jQueryInterface;
   };
 
@@ -1821,23 +1860,23 @@ var Dropdown = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): modal.js
+ * Bootstrap (v4.0.0-beta.3): modal.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Modal = function () {
+var Modal = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'modal';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.modal';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 300;
   var BACKDROP_TRANSITION_DURATION = 150;
   var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
@@ -1895,7 +1934,7 @@ var Modal = function () {
     function Modal(element, config) {
       this._config = this._getConfig(config);
       this._element = element;
-      this._dialog = $(element).find(Selector.DIALOG)[0];
+      this._dialog = $$$1(element).find(Selector.DIALOG)[0];
       this._backdrop = null;
       this._isShown = false;
       this._isBodyOverflowing = false;
@@ -1919,14 +1958,14 @@ var Modal = function () {
         return;
       }
 
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
+      if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
         this._isTransitioning = true;
       }
 
-      var showEvent = $.Event(Event.SHOW, {
+      var showEvent = $$$1.Event(Event.SHOW, {
         relatedTarget: relatedTarget
       });
-      $(this._element).trigger(showEvent);
+      $$$1(this._element).trigger(showEvent);
 
       if (this._isShown || showEvent.isDefaultPrevented()) {
         return;
@@ -1940,18 +1979,18 @@ var Modal = function () {
 
       this._adjustDialog();
 
-      $(document.body).addClass(ClassName.OPEN);
+      $$$1(document.body).addClass(ClassName.OPEN);
 
       this._setEscapeEvent();
 
       this._setResizeEvent();
 
-      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+      $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
         return _this.hide(event);
       });
-      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
-        $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
-          if ($(event.target).is(_this._element)) {
+      $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+        $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+          if ($$$1(event.target).is(_this._element)) {
             _this._ignoreBackdropClick = true;
           }
         });
@@ -1973,15 +2012,15 @@ var Modal = function () {
         return;
       }
 
-      var hideEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(hideEvent);
+      var hideEvent = $$$1.Event(Event.HIDE);
+      $$$1(this._element).trigger(hideEvent);
 
       if (!this._isShown || hideEvent.isDefaultPrevented()) {
         return;
       }
 
       this._isShown = false;
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+      var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
 
       if (transition) {
         this._isTransitioning = true;
@@ -1991,13 +2030,13 @@ var Modal = function () {
 
       this._setResizeEvent();
 
-      $(document).off(Event.FOCUSIN);
-      $(this._element).removeClass(ClassName.SHOW);
-      $(this._element).off(Event.CLICK_DISMISS);
-      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+      $$$1(document).off(Event.FOCUSIN);
+      $$$1(this._element).removeClass(ClassName.SHOW);
+      $$$1(this._element).off(Event.CLICK_DISMISS);
+      $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
 
       if (transition) {
-        $(this._element).one(Util.TRANSITION_END, function (event) {
+        $$$1(this._element).one(Util.TRANSITION_END, function (event) {
           return _this2._hideModal(event);
         }).emulateTransitionEnd(TRANSITION_DURATION);
       } else {
@@ -2006,8 +2045,8 @@ var Modal = function () {
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(window, document, this._element, this._backdrop).off(EVENT_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
+      $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
       this._config = null;
       this._element = null;
       this._dialog = null;
@@ -2024,7 +2063,7 @@ var Modal = function () {
 
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
+      config = _extends({}, Default, config);
       Util.typeCheckConfig(NAME, config, DefaultType);
       return config;
     };
@@ -2032,7 +2071,7 @@ var Modal = function () {
     _proto._showElement = function _showElement(relatedTarget) {
       var _this3 = this;
 
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+      var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
 
       if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
         // don't move modals dom position
@@ -2049,13 +2088,13 @@ var Modal = function () {
         Util.reflow(this._element);
       }
 
-      $(this._element).addClass(ClassName.SHOW);
+      $$$1(this._element).addClass(ClassName.SHOW);
 
       if (this._config.focus) {
         this._enforceFocus();
       }
 
-      var shownEvent = $.Event(Event.SHOWN, {
+      var shownEvent = $$$1.Event(Event.SHOWN, {
         relatedTarget: relatedTarget
       });
 
@@ -2065,11 +2104,11 @@ var Modal = function () {
         }
 
         _this3._isTransitioning = false;
-        $(_this3._element).trigger(shownEvent);
+        $$$1(_this3._element).trigger(shownEvent);
       };
 
       if (transition) {
-        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
+        $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
       } else {
         transitionComplete();
       }
@@ -2078,9 +2117,9 @@ var Modal = function () {
     _proto._enforceFocus = function _enforceFocus() {
       var _this4 = this;
 
-      $(document).off(Event.FOCUSIN) // guard against infinite focus loop
+      $$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop
       .on(Event.FOCUSIN, function (event) {
-        if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
+        if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) {
           _this4._element.focus();
         }
       });
@@ -2090,7 +2129,7 @@ var Modal = function () {
       var _this5 = this;
 
       if (this._isShown && this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+        $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
           if (event.which === ESCAPE_KEYCODE) {
             event.preventDefault();
 
@@ -2098,7 +2137,7 @@ var Modal = function () {
           }
         });
       } else if (!this._isShown) {
-        $(this._element).off(Event.KEYDOWN_DISMISS);
+        $$$1(this._element).off(Event.KEYDOWN_DISMISS);
       }
     };
 
@@ -2106,11 +2145,11 @@ var Modal = function () {
       var _this6 = this;
 
       if (this._isShown) {
-        $(window).on(Event.RESIZE, function (event) {
+        $$$1(window).on(Event.RESIZE, function (event) {
           return _this6.handleUpdate(event);
         });
       } else {
-        $(window).off(Event.RESIZE);
+        $$$1(window).off(Event.RESIZE);
       }
     };
 
@@ -2124,19 +2163,19 @@ var Modal = function () {
       this._isTransitioning = false;
 
       this._showBackdrop(function () {
-        $(document.body).removeClass(ClassName.OPEN);
+        $$$1(document.body).removeClass(ClassName.OPEN);
 
         _this7._resetAdjustments();
 
         _this7._resetScrollbar();
 
-        $(_this7._element).trigger(Event.HIDDEN);
+        $$$1(_this7._element).trigger(Event.HIDDEN);
       });
     };
 
     _proto._removeBackdrop = function _removeBackdrop() {
       if (this._backdrop) {
-        $(this._backdrop).remove();
+        $$$1(this._backdrop).remove();
         this._backdrop = null;
       }
     };
@@ -2144,7 +2183,7 @@ var Modal = function () {
     _proto._showBackdrop = function _showBackdrop(callback) {
       var _this8 = this;
 
-      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+      var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
 
       if (this._isShown && this._config.backdrop) {
         var doAnimate = Util.supportsTransitionEnd() && animate;
@@ -2152,11 +2191,11 @@ var Modal = function () {
         this._backdrop.className = ClassName.BACKDROP;
 
         if (animate) {
-          $(this._backdrop).addClass(animate);
+          $$$1(this._backdrop).addClass(animate);
         }
 
-        $(this._backdrop).appendTo(document.body);
-        $(this._element).on(Event.CLICK_DISMISS, function (event) {
+        $$$1(this._backdrop).appendTo(document.body);
+        $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
           if (_this8._ignoreBackdropClick) {
             _this8._ignoreBackdropClick = false;
             return;
@@ -2177,7 +2216,7 @@ var Modal = function () {
           Util.reflow(this._backdrop);
         }
 
-        $(this._backdrop).addClass(ClassName.SHOW);
+        $$$1(this._backdrop).addClass(ClassName.SHOW);
 
         if (!callback) {
           return;
@@ -2188,9 +2227,9 @@ var Modal = function () {
           return;
         }
 
-        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+        $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
       } else if (!this._isShown && this._backdrop) {
-        $(this._backdrop).removeClass(ClassName.SHOW);
+        $$$1(this._backdrop).removeClass(ClassName.SHOW);
 
         var callbackRemove = function callbackRemove() {
           _this8._removeBackdrop();
@@ -2200,8 +2239,8 @@ var Modal = function () {
           }
         };
 
-        if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+        if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
+          $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
         } else {
           callbackRemove();
         }
@@ -2244,52 +2283,52 @@ var Modal = function () {
         // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
         //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
         // Adjust fixed content padding
-        $(Selector.FIXED_CONTENT).each(function (index, element) {
-          var actualPadding = $(element)[0].style.paddingRight;
-          var calculatedPadding = $(element).css('padding-right');
-          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+        $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+          var actualPadding = $$$1(element)[0].style.paddingRight;
+          var calculatedPadding = $$$1(element).css('padding-right');
+          $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
         }); // Adjust sticky content margin
 
-        $(Selector.STICKY_CONTENT).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+        $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
+          var actualMargin = $$$1(element)[0].style.marginRight;
+          var calculatedMargin = $$$1(element).css('margin-right');
+          $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
         }); // Adjust navbar-toggler margin
 
-        $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+        $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+          var actualMargin = $$$1(element)[0].style.marginRight;
+          var calculatedMargin = $$$1(element).css('margin-right');
+          $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
         }); // Adjust body padding
 
         var actualPadding = document.body.style.paddingRight;
-        var calculatedPadding = $('body').css('padding-right');
-        $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+        var calculatedPadding = $$$1('body').css('padding-right');
+        $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
       }
     };
 
     _proto._resetScrollbar = function _resetScrollbar() {
       // Restore fixed content padding
-      $(Selector.FIXED_CONTENT).each(function (index, element) {
-        var padding = $(element).data('padding-right');
+      $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+        var padding = $$$1(element).data('padding-right');
 
         if (typeof padding !== 'undefined') {
-          $(element).css('padding-right', padding).removeData('padding-right');
+          $$$1(element).css('padding-right', padding).removeData('padding-right');
         }
       }); // Restore sticky content and navbar-toggler margin
 
-      $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
-        var margin = $(element).data('margin-right');
+      $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+        var margin = $$$1(element).data('margin-right');
 
         if (typeof margin !== 'undefined') {
-          $(element).css('margin-right', margin).removeData('margin-right');
+          $$$1(element).css('margin-right', margin).removeData('margin-right');
         }
       }); // Restore body padding
 
-      var padding = $('body').data('padding-right');
+      var padding = $$$1('body').data('padding-right');
 
       if (typeof padding !== 'undefined') {
-        $('body').css('padding-right', padding).removeData('padding-right');
+        $$$1('body').css('padding-right', padding).removeData('padding-right');
       }
     };
 
@@ -2306,13 +2345,13 @@ var Modal = function () {
 
     Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
-        var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
+        var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
 
         if (!data) {
           data = new Modal(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'string') {
@@ -2327,7 +2366,7 @@ var Modal = function () {
       });
     };
 
-    createClass(Modal, null, [{
+    _createClass(Modal, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -2347,36 +2386,36 @@ var Modal = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
     var _this10 = this;
 
     var target;
     var selector = Util.getSelectorFromElement(this);
 
     if (selector) {
-      target = $(selector)[0];
+      target = $$$1(selector)[0];
     }
 
-    var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
+    var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
 
     if (this.tagName === 'A' || this.tagName === 'AREA') {
       event.preventDefault();
     }
 
-    var $target = $(target).one(Event.SHOW, function (showEvent) {
+    var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
       if (showEvent.isDefaultPrevented()) {
         // only register focus restorer if modal will actually get shown
         return;
       }
 
       $target.one(Event.HIDDEN, function () {
-        if ($(_this10).is(':visible')) {
+        if ($$$1(_this10).is(':visible')) {
           _this10.focus();
         }
       });
     });
 
-    Modal._jQueryInterface.call($(target), config, this);
+    Modal._jQueryInterface.call($$$1(target), config, this);
   });
   /**
    * ------------------------------------------------------------------------
@@ -2384,11 +2423,11 @@ var Modal = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Modal._jQueryInterface;
-  $.fn[NAME].Constructor = Modal;
+  $$$1.fn[NAME] = Modal._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Modal;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Modal._jQueryInterface;
   };
 
@@ -2397,31 +2436,22 @@ var Modal = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tooltip.js
+ * Bootstrap (v4.0.0-beta.3): tooltip.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Tooltip = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
-  }
+var Tooltip = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
-
-
   var NAME = 'tooltip';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.tooltip';
   var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 150;
   var CLASS_PREFIX = 'bs-tooltip';
   var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
@@ -2436,7 +2466,8 @@ var Tooltip = function () {
     placement: '(string|function)',
     offset: '(number|string)',
     container: '(string|element|boolean)',
-    fallbackPlacement: '(string|array)'
+    fallbackPlacement: '(string|array)',
+    boundary: '(string|element)'
   };
   var AttachmentMap = {
     AUTO: 'auto',
@@ -2456,7 +2487,8 @@ var Tooltip = function () {
     placement: 'top',
     offset: 0,
     container: false,
-    fallbackPlacement: 'flip'
+    fallbackPlacement: 'flip',
+    boundary: 'scrollParent'
   };
   var HoverState = {
     SHOW: 'show',
@@ -2500,7 +2532,15 @@ var Tooltip = function () {
   /*#__PURE__*/
   function () {
     function Tooltip(element, config) {
-      // private
+      /**
+       * Check for Popper dependency
+       * Popper - https://popper.js.org
+       */
+      if (typeof Popper === 'undefined') {
+        throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+      } // private
+
+
       this._isEnabled = true;
       this._timeout = 0;
       this._hoverState = '';
@@ -2537,11 +2577,11 @@ var Tooltip = function () {
 
       if (event) {
         var dataKey = this.constructor.DATA_KEY;
-        var context = $(event.currentTarget).data(dataKey);
+        var context = $$$1(event.currentTarget).data(dataKey);
 
         if (!context) {
           context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-          $(event.currentTarget).data(dataKey, context);
+          $$$1(event.currentTarget).data(dataKey, context);
         }
 
         context._activeTrigger.click = !context._activeTrigger.click;
@@ -2552,7 +2592,7 @@ var Tooltip = function () {
           context._leave(null, context);
         }
       } else {
-        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
+        if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
           this._leave(null, this);
 
           return;
@@ -2564,12 +2604,12 @@ var Tooltip = function () {
 
     _proto.dispose = function dispose() {
       clearTimeout(this._timeout);
-      $.removeData(this.element, this.constructor.DATA_KEY);
-      $(this.element).off(this.constructor.EVENT_KEY);
-      $(this.element).closest('.modal').off('hide.bs.modal');
+      $$$1.removeData(this.element, this.constructor.DATA_KEY);
+      $$$1(this.element).off(this.constructor.EVENT_KEY);
+      $$$1(this.element).closest('.modal').off('hide.bs.modal');
 
       if (this.tip) {
-        $(this.tip).remove();
+        $$$1(this.tip).remove();
       }
 
       this._isEnabled = null;
@@ -2590,15 +2630,15 @@ var Tooltip = function () {
     _proto.show = function show() {
       var _this = this;
 
-      if ($(this.element).css('display') === 'none') {
+      if ($$$1(this.element).css('display') === 'none') {
         throw new Error('Please use show on visible elements');
       }
 
-      var showEvent = $.Event(this.constructor.Event.SHOW);
+      var showEvent = $$$1.Event(this.constructor.Event.SHOW);
 
       if (this.isWithContent() && this._isEnabled) {
-        $(this.element).trigger(showEvent);
-        var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
+        $$$1(this.element).trigger(showEvent);
+        var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
 
         if (showEvent.isDefaultPrevented() || !isInTheDom) {
           return;
@@ -2611,7 +2651,7 @@ var Tooltip = function () {
         this.setContent();
 
         if (this.config.animation) {
-          $(tip).addClass(ClassName.FADE);
+          $$$1(tip).addClass(ClassName.FADE);
         }
 
         var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
@@ -2619,14 +2659,14 @@ var Tooltip = function () {
         var attachment = this._getAttachment(placement);
 
         this.addAttachmentClass(attachment);
-        var container = this.config.container === false ? document.body : $(this.config.container);
-        $(tip).data(this.constructor.DATA_KEY, this);
+        var container = this.config.container === false ? document.body : $$$1(this.config.container);
+        $$$1(tip).data(this.constructor.DATA_KEY, this);
 
-        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
-          $(tip).appendTo(container);
+        if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
+          $$$1(tip).appendTo(container);
         }
 
-        $(this.element).trigger(this.constructor.Event.INSERTED);
+        $$$1(this.element).trigger(this.constructor.Event.INSERTED);
         this._popper = new Popper(this.element, tip, {
           placement: attachment,
           modifiers: {
@@ -2638,6 +2678,9 @@ var Tooltip = function () {
             },
             arrow: {
               element: Selector.ARROW
+            },
+            preventOverflow: {
+              boundariesElement: this.config.boundary
             }
           },
           onCreate: function onCreate(data) {
@@ -2649,13 +2692,13 @@ var Tooltip = function () {
             _this._handlePopperPlacementChange(data);
           }
         });
-        $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
+        $$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
         // empty mouseover listeners to the body's immediate children;
         // only needed because of broken event delegation on iOS
         // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
 
         if ('ontouchstart' in document.documentElement) {
-          $('body').children().on('mouseover', null, $.noop);
+          $$$1('body').children().on('mouseover', null, $$$1.noop);
         }
 
         var complete = function complete() {
@@ -2665,15 +2708,15 @@ var Tooltip = function () {
 
           var prevHoverState = _this._hoverState;
           _this._hoverState = null;
-          $(_this.element).trigger(_this.constructor.Event.SHOWN);
+          $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
 
           if (prevHoverState === HoverState.OUT) {
             _this._leave(null, _this);
           }
         };
 
-        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
+        if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
+          $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
         } else {
           complete();
         }
@@ -2684,7 +2727,7 @@ var Tooltip = function () {
       var _this2 = this;
 
       var tip = this.getTipElement();
-      var hideEvent = $.Event(this.constructor.Event.HIDE);
+      var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
 
       var complete = function complete() {
         if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
@@ -2695,7 +2738,7 @@ var Tooltip = function () {
 
         _this2.element.removeAttribute('aria-describedby');
 
-        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+        $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
 
         if (_this2._popper !== null) {
           _this2._popper.destroy();
@@ -2706,25 +2749,25 @@ var Tooltip = function () {
         }
       };
 
-      $(this.element).trigger(hideEvent);
+      $$$1(this.element).trigger(hideEvent);
 
       if (hideEvent.isDefaultPrevented()) {
         return;
       }
 
-      $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
+      $$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
       // empty mouseover listeners we added for iOS support
 
       if ('ontouchstart' in document.documentElement) {
-        $('body').children().off('mouseover', null, $.noop);
+        $$$1('body').children().off('mouseover', null, $$$1.noop);
       }
 
       this._activeTrigger[Trigger.CLICK] = false;
       this._activeTrigger[Trigger.FOCUS] = false;
       this._activeTrigger[Trigger.HOVER] = false;
 
-      if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+      if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
+        $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
       } else {
         complete();
       }
@@ -2744,16 +2787,16 @@ var Tooltip = function () {
     };
 
     _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
     };
 
     _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
+      this.tip = this.tip || $$$1(this.config.template)[0];
       return this.tip;
     };
 
     _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement());
+      var $tip = $$$1(this.getTipElement());
       this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
       $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
     };
@@ -2764,11 +2807,11 @@ var Tooltip = function () {
       if (typeof content === 'object' && (content.nodeType || content.jquery)) {
         // content is a DOM node or a jQuery
         if (html) {
-          if (!$(content).parent().is($element)) {
+          if (!$$$1(content).parent().is($element)) {
             $element.empty().append(content);
           }
         } else {
-          $element.text($(content).text());
+          $element.text($$$1(content).text());
         }
       } else {
         $element[html ? 'html' : 'text'](content);
@@ -2796,26 +2839,26 @@ var Tooltip = function () {
       var triggers = this.config.trigger.split(' ');
       triggers.forEach(function (trigger) {
         if (trigger === 'click') {
-          $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+          $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
             return _this3.toggle(event);
           });
         } else if (trigger !== Trigger.MANUAL) {
           var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
           var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
-          $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+          $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
             return _this3._enter(event);
           }).on(eventOut, _this3.config.selector, function (event) {
             return _this3._leave(event);
           });
         }
 
-        $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+        $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
           return _this3.hide();
         });
       });
 
       if (this.config.selector) {
-        this.config = $.extend({}, this.config, {
+        this.config = _extends({}, this.config, {
           trigger: 'manual',
           selector: ''
         });
@@ -2835,18 +2878,18 @@ var Tooltip = function () {
 
     _proto._enter = function _enter(event, context) {
       var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
+      context = context || $$$1(event.currentTarget).data(dataKey);
 
       if (!context) {
         context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
+        $$$1(event.currentTarget).data(dataKey, context);
       }
 
       if (event) {
         context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
       }
 
-      if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+      if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
         context._hoverState = HoverState.SHOW;
         return;
       }
@@ -2868,11 +2911,11 @@ var Tooltip = function () {
 
     _proto._leave = function _leave(event, context) {
       var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
+      context = context || $$$1(event.currentTarget).data(dataKey);
 
       if (!context) {
         context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
+        $$$1(event.currentTarget).data(dataKey, context);
       }
 
       if (event) {
@@ -2909,7 +2952,7 @@ var Tooltip = function () {
     };
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
+      config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
 
       if (typeof config.delay === 'number') {
         config.delay = {
@@ -2945,7 +2988,7 @@ var Tooltip = function () {
     };
 
     _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
+      var $tip = $$$1(this.getTipElement());
       var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
 
       if (tabClass !== null && tabClass.length > 0) {
@@ -2967,7 +3010,7 @@ var Tooltip = function () {
         return;
       }
 
-      $(tip).removeClass(ClassName.FADE);
+      $$$1(tip).removeClass(ClassName.FADE);
       this.config.animation = false;
       this.hide();
       this.show();
@@ -2977,7 +3020,7 @@ var Tooltip = function () {
 
     Tooltip._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
         var _config = typeof config === 'object' && config;
 
@@ -2987,7 +3030,7 @@ var Tooltip = function () {
 
         if (!data) {
           data = new Tooltip(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'string') {
@@ -3000,7 +3043,7 @@ var Tooltip = function () {
       });
     };
 
-    createClass(Tooltip, null, [{
+    _createClass(Tooltip, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -3045,11 +3088,11 @@ var Tooltip = function () {
    */
 
 
-  $.fn[NAME] = Tooltip._jQueryInterface;
-  $.fn[NAME].Constructor = Tooltip;
+  $$$1.fn[NAME] = Tooltip._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Tooltip;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Tooltip._jQueryInterface;
   };
 
@@ -3058,31 +3101,31 @@ var Tooltip = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): popover.js
+ * Bootstrap (v4.0.0-beta.3): popover.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Popover = function () {
+var Popover = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'popover';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.popover';
   var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var CLASS_PREFIX = 'bs-popover';
   var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var Default = $.extend({}, Tooltip.Default, {
+  var Default = _extends({}, Tooltip.Default, {
     placement: 'right',
     trigger: 'click',
     content: '',
     template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
   });
-  var DefaultType = $.extend({}, Tooltip.DefaultType, {
+  var DefaultType = _extends({}, Tooltip.DefaultType, {
     content: '(string|element|function)'
   });
   var ClassName = {
@@ -3115,7 +3158,7 @@ var Popover = function () {
   var Popover =
   /*#__PURE__*/
   function (_Tooltip) {
-    inheritsLoose(Popover, _Tooltip);
+    _inheritsLoose(Popover, _Tooltip);
 
     function Popover() {
       return _Tooltip.apply(this, arguments) || this;
@@ -3129,29 +3172,36 @@ var Popover = function () {
     };
 
     _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+      $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
     };
 
     _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
+      this.tip = this.tip || $$$1(this.config.template)[0];
       return this.tip;
     };
 
     _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
+      var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events
 
       this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
-      this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
+
+      var content = this._getContent();
+
+      if (typeof content === 'function') {
+        content = content.call(this.element);
+      }
+
+      this.setElementContent($tip.find(Selector.CONTENT), content);
       $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
     }; // private
 
 
     _proto._getContent = function _getContent() {
-      return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
+      return this.element.getAttribute('data-content') || this.config.content;
     };
 
     _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
+      var $tip = $$$1(this.getTipElement());
       var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
 
       if (tabClass !== null && tabClass.length > 0) {
@@ -3162,7 +3212,7 @@ var Popover = function () {
 
     Popover._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
         var _config = typeof config === 'object' ? config : null;
 
@@ -3172,7 +3222,7 @@ var Popover = function () {
 
         if (!data) {
           data = new Popover(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'string') {
@@ -3185,7 +3235,7 @@ var Popover = function () {
       });
     };
 
-    createClass(Popover, null, [{
+    _createClass(Popover, null, [{
       key: "VERSION",
       // getters
       get: function get() {
@@ -3231,11 +3281,11 @@ var Popover = function () {
    */
 
 
-  $.fn[NAME] = Popover._jQueryInterface;
-  $.fn[NAME].Constructor = Popover;
+  $$$1.fn[NAME] = Popover._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Popover;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Popover._jQueryInterface;
   };
 
@@ -3244,23 +3294,23 @@ var Popover = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): scrollspy.js
+ * Bootstrap (v4.0.0-beta.3): scrollspy.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var ScrollSpy = function () {
+var ScrollSpy = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'scrollspy';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.scrollspy';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var Default = {
     offset: 10,
     method: 'auto',
@@ -3317,7 +3367,7 @@ var ScrollSpy = function () {
       this._targets = [];
       this._activeTarget = null;
       this._scrollHeight = 0;
-      $(this._scrollElement).on(Event.SCROLL, function (event) {
+      $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
         return _this._process(event);
       });
       this.refresh();
@@ -3338,13 +3388,13 @@ var ScrollSpy = function () {
       this._offsets = [];
       this._targets = [];
       this._scrollHeight = this._getScrollHeight();
-      var targets = $.makeArray($(this._selector));
+      var targets = $$$1.makeArray($$$1(this._selector));
       targets.map(function (element) {
         var target;
         var targetSelector = Util.getSelectorFromElement(element);
 
         if (targetSelector) {
-          target = $(targetSelector)[0];
+          target = $$$1(targetSelector)[0];
         }
 
         if (target) {
@@ -3352,7 +3402,7 @@ var ScrollSpy = function () {
 
           if (targetBCR.width || targetBCR.height) {
             // todo (fat): remove sketch reliance on jQuery position/offset
-            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
+            return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
           }
         }
 
@@ -3369,8 +3419,8 @@ var ScrollSpy = function () {
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._scrollElement).off(EVENT_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
+      $$$1(this._scrollElement).off(EVENT_KEY);
       this._element = null;
       this._scrollElement = null;
       this._config = null;
@@ -3383,14 +3433,14 @@ var ScrollSpy = function () {
 
 
     _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
+      config = _extends({}, Default, config);
 
       if (typeof config.target !== 'string') {
-        var id = $(config.target).attr('id');
+        var id = $$$1(config.target).attr('id');
 
         if (!id) {
           id = Util.getUID(NAME);
-          $(config.target).attr('id', id);
+          $$$1(config.target).attr('id', id);
         }
 
         config.target = "#" + id;
@@ -3461,7 +3511,7 @@ var ScrollSpy = function () {
       queries = queries.map(function (selector) {
         return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
       });
-      var $link = $(queries.join(','));
+      var $link = $$$1(queries.join(','));
 
       if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
         $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
@@ -3476,25 +3526,25 @@ var ScrollSpy = function () {
         $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
       }
 
-      $(this._scrollElement).trigger(Event.ACTIVATE, {
+      $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
         relatedTarget: target
       });
     };
 
     _proto._clear = function _clear() {
-      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+      $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
     }; // static
 
 
     ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var data = $(this).data(DATA_KEY);
+        var data = $$$1(this).data(DATA_KEY);
 
         var _config = typeof config === 'object' && config;
 
         if (!data) {
           data = new ScrollSpy(this, _config);
-          $(this).data(DATA_KEY, data);
+          $$$1(this).data(DATA_KEY, data);
         }
 
         if (typeof config === 'string') {
@@ -3507,7 +3557,7 @@ var ScrollSpy = function () {
       });
     };
 
-    createClass(ScrollSpy, null, [{
+    _createClass(ScrollSpy, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -3527,11 +3577,11 @@ var ScrollSpy = function () {
    */
 
 
-  $(window).on(Event.LOAD_DATA_API, function () {
-    var scrollSpys = $.makeArray($(Selector.DATA_SPY));
+  $$$1(window).on(Event.LOAD_DATA_API, function () {
+    var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
 
     for (var i = scrollSpys.length; i--;) {
-      var $spy = $(scrollSpys[i]);
+      var $spy = $$$1(scrollSpys[i]);
 
       ScrollSpy._jQueryInterface.call($spy, $spy.data());
     }
@@ -3542,11 +3592,11 @@ var ScrollSpy = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = ScrollSpy._jQueryInterface;
-  $.fn[NAME].Constructor = ScrollSpy;
+  $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
+  $$$1.fn[NAME].Constructor = ScrollSpy;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return ScrollSpy._jQueryInterface;
   };
 
@@ -3555,23 +3605,23 @@ var ScrollSpy = function () {
 
 /**
  * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tab.js
+ * Bootstrap (v4.0.0-beta.3): tab.js
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  * --------------------------------------------------------------------------
  */
 
-var Tab = function () {
+var Tab = function ($$$1) {
   /**
    * ------------------------------------------------------------------------
    * Constants
    * ------------------------------------------------------------------------
    */
   var NAME = 'tab';
-  var VERSION = '4.0.0-beta.2';
+  var VERSION = '4.0.0-beta.3';
   var DATA_KEY = 'bs.tab';
   var EVENT_KEY = "." + DATA_KEY;
   var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
+  var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
   var TRANSITION_DURATION = 150;
   var Event = {
     HIDE: "hide" + EVENT_KEY,
@@ -3617,53 +3667,53 @@ var Tab = function () {
     _proto.show = function show() {
       var _this = this;
 
-      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
+      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
         return;
       }
 
       var target;
       var previous;
-      var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+      var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
       var selector = Util.getSelectorFromElement(this._element);
 
       if (listElement) {
         var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
-        previous = $.makeArray($(listElement).find(itemSelector));
+        previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
         previous = previous[previous.length - 1];
       }
 
-      var hideEvent = $.Event(Event.HIDE, {
+      var hideEvent = $$$1.Event(Event.HIDE, {
         relatedTarget: this._element
       });
-      var showEvent = $.Event(Event.SHOW, {
+      var showEvent = $$$1.Event(Event.SHOW, {
         relatedTarget: previous
       });
 
       if (previous) {
-        $(previous).trigger(hideEvent);
+        $$$1(previous).trigger(hideEvent);
       }
 
-      $(this._element).trigger(showEvent);
+      $$$1(this._element).trigger(showEvent);
 
       if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
         return;
       }
 
       if (selector) {
-        target = $(selector)[0];
+        target = $$$1(selector)[0];
       }
 
       this._activate(this._element, listElement);
 
       var complete = function complete() {
-        var hiddenEvent = $.Event(Event.HIDDEN, {
+        var hiddenEvent = $$$1.Event(Event.HIDDEN, {
           relatedTarget: _this._element
         });
-        var shownEvent = $.Event(Event.SHOWN, {
+        var shownEvent = $$$1.Event(Event.SHOWN, {
           relatedTarget: previous
         });
-        $(previous).trigger(hiddenEvent);
-        $(_this._element).trigger(shownEvent);
+        $$$1(previous).trigger(hiddenEvent);
+        $$$1(_this._element).trigger(shownEvent);
       };
 
       if (target) {
@@ -3674,7 +3724,7 @@ var Tab = function () {
     };
 
     _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
+      $$$1.removeData(this._element, DATA_KEY);
       this._element = null;
     }; // private
 
@@ -3685,36 +3735,32 @@ var Tab = function () {
       var activeElements;
 
       if (container.nodeName === 'UL') {
-        activeElements = $(container).find(Selector.ACTIVE_UL);
+        activeElements = $$$1(container).find(Selector.ACTIVE_UL);
       } else {
-        activeElements = $(container).children(Selector.ACTIVE);
+        activeElements = $$$1(container).children(Selector.ACTIVE);
       }
 
       var active = activeElements[0];
-      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
+      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
 
       var complete = function complete() {
-        return _this2._transitionComplete(element, active, isTransitioning, callback);
+        return _this2._transitionComplete(element, active, callback);
       };
 
       if (active && isTransitioning) {
-        $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+        $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
       } else {
         complete();
       }
-
-      if (active) {
-        $(active).removeClass(ClassName.SHOW);
-      }
     };
 
-    _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
+    _proto._transitionComplete = function _transitionComplete(element, active, callback) {
       if (active) {
-        $(active).removeClass(ClassName.ACTIVE);
-        var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+        $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
+        var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
 
         if (dropdownChild) {
-          $(dropdownChild).removeClass(ClassName.ACTIVE);
+          $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
         }
 
         if (active.getAttribute('role') === 'tab') {
@@ -3722,24 +3768,20 @@ var Tab = function () {
         }
       }
 
-      $(element).addClass(ClassName.ACTIVE);
+      $$$1(element).addClass(ClassName.ACTIVE);
 
       if (element.getAttribute('role') === 'tab') {
         element.setAttribute('aria-selected', true);
       }
 
-      if (isTransitioning) {
-        Util.reflow(element);
-        $(element).addClass(ClassName.SHOW);
-      } else {
-        $(element).removeClass(ClassName.FADE);
-      }
+      Util.reflow(element);
+      $$$1(element).addClass(ClassName.SHOW);
 
-      if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
-        var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
+      if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+        var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
 
         if (dropdownElement) {
-          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+          $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
         }
 
         element.setAttribute('aria-expanded', true);
@@ -3753,7 +3795,7 @@ var Tab = function () {
 
     Tab._jQueryInterface = function _jQueryInterface(config) {
       return this.each(function () {
-        var $this = $(this);
+        var $this = $$$1(this);
         var data = $this.data(DATA_KEY);
 
         if (!data) {
@@ -3771,7 +3813,7 @@ var Tab = function () {
       });
     };
 
-    createClass(Tab, null, [{
+    _createClass(Tab, null, [{
       key: "VERSION",
       get: function get() {
         return VERSION;
@@ -3786,10 +3828,10 @@ var Tab = function () {
    */
 
 
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+  $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
     event.preventDefault();
 
-    Tab._jQueryInterface.call($(this), 'show');
+    Tab._jQueryInterface.call($$$1(this), 'show');
   });
   /**
    * ------------------------------------------------------------------------
@@ -3797,11 +3839,11 @@ var Tab = function () {
    * ------------------------------------------------------------------------
    */
 
-  $.fn[NAME] = Tab._jQueryInterface;
-  $.fn[NAME].Constructor = Tab;
+  $$$1.fn[NAME] = Tab._jQueryInterface;
+  $$$1.fn[NAME].Constructor = Tab;
 
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
+  $$$1.fn[NAME].noConflict = function () {
+    $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
     return Tab._jQueryInterface;
   };
 
@@ -3815,12 +3857,12 @@ var Tab = function () {
  * --------------------------------------------------------------------------
  */
 
-(function () {
-  if (typeof $ === 'undefined') {
+(function ($$$1) {
+  if (typeof $$$1 === 'undefined') {
     throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
   }
 
-  var version = $.fn.jquery.split(' ')[0].split('.');
+  var version = $$$1.fn.jquery.split(' ')[0].split('.');
   var minMajor = 1;
   var ltMajor = 2;
   var minMinor = 9;
@@ -3844,7 +3886,7 @@ exports.Scrollspy = ScrollSpy;
 exports.Tab = Tab;
 exports.Tooltip = Tooltip;
 
-return exports;
+Object.defineProperty(exports, '__esModule', { value: true });
 
-}({},$,Popper));
+})));
 //# sourceMappingURL=bootstrap.js.map
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
index 306541a..f69abcb 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/js/bootstrap.min.js
@@ -1,7 +1,7 @@
 /*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
+  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(t){var n=this,i=!1;return e(this).one(r.TRANSITION_END,function(){i=!0}),setTimeout(f [...]
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t [...]
 //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/rebuild-theme.log b/tobago-theme/tobago-theme-roxborough/rebuild-theme.log
index c7f65ef..97a110c 100644
--- a/tobago-theme/tobago-theme-roxborough/rebuild-theme.log
+++ b/tobago-theme/tobago-theme-roxborough/rebuild-theme.log
@@ -1,8 +1,8 @@
-Build date: 2017-11-28 19:02:36
+Build date: 2018-01-03 13:34:17
 [INFO] Scanning for projects...
 [INFO] 
 [INFO] ------------------------------------------------------------------------
-[INFO] Building Tobago Theme Roxborough 4.0.0-SNAPSHOT
+[INFO] Building Tobago Theme Roxborough 4.0.1-SNAPSHOT
 [INFO] ------------------------------------------------------------------------
 [INFO] 
 [INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce) @ tobago-theme-roxborough ---
@@ -10,11 +10,11 @@ Build date: 2017-11-28 19:02:36
 [INFO] --- maven-remote-resources-plugin:1.5:process (default) @ tobago-theme-roxborough ---
 [INFO] 
 [INFO] --- download-maven-plugin:1.4.0:wget (step #1: download-bootstrap) @ tobago-theme-roxborough ---
-[INFO] Got from cache: __REPO__/.cache/download-maven-plugin/v4.0.0-beta.2.zip_d5ec29f0dc587145274c81abc6564aed
+[INFO] Got from cache: __REPO__/.cache/download-maven-plugin/v4.0.0-beta.3.zip_1da0a689af3fcbb242f6b305c138783d
 [INFO] 
 [INFO] --- maven-resources-plugin:2.7:copy-resources (step #2: copy-bootstrap) @ tobago-theme-roxborough ---
 [INFO] Using 'UTF-8' encoding to copy filtered resources.
-[INFO] Copying 425 resources
+[INFO] Copying 420 resources
 [INFO] 
 [INFO] --- maven-resources-plugin:2.7:copy-resources (step #3: copy-custom) @ tobago-theme-roxborough ---
 [INFO] Using 'UTF-8' encoding to copy filtered resources.
@@ -24,1067 +24,51 @@ Build date: 2017-11-28 19:02:36
 [INFO] Applying patch: append-tobago-theme-to-bootstrap.patch
 [INFO] 
 [INFO] --- maven-dependency-plugin:3.0.2:unpack (step #5: unpack-custom) @ tobago-theme-roxborough ---
-[INFO] Configured Artifact: org.apache.myfaces.tobago:tobago-core:4.0.0-SNAPSHOT:jar
-[INFO] Unpacking __REPO__/org/apache/myfaces/tobago/tobago-core/4.0.0-SNAPSHOT/tobago-core-4.0.0-SNAPSHOT.jar to __CURRENT__/tobago-theme-roxborough/target/bootstrap with includes "**/*.scss" and excludes ""
+[INFO] Configured Artifact: org.apache.myfaces.tobago:tobago-core:4.0.1-SNAPSHOT:jar
+[INFO] Unpacking __REPO__/org/apache/myfaces/tobago/tobago-core/4.0.1-SNAPSHOT/tobago-core-4.0.1-SNAPSHOT.jar to __CURRENT__/tobago-theme-roxborough/target/bootstrap with includes "**/*.scss" and excludes ""
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:install-node-and-npm (step #6: install node and npm) @ tobago-theme-roxborough ---
-[INFO] Installing node version v7.10.1
-[INFO] Unpacking __REPO__/com/github/eirslett/node/7.10.1/node-7.10.1-darwin-x64.tar.gz into __CURRENT__/tobago-theme-roxborough/target/frontend/node/tmp
-[INFO] Copying node binary from __CURRENT__/tobago-theme-roxborough/target/frontend/node/tmp/node-v7.10.1-darwin-x64/bin/node to __CURRENT__/tobago-theme-roxborough/target/frontend/node/node
+[INFO] Installing node version v8.9.3
+[INFO] Unpacking __REPO__/com/github/eirslett/node/8.9.3/node-8.9.3-darwin-x64.tar.gz into __CURRENT__/tobago-theme-roxborough/target/frontend/node/tmp
+[INFO] Copying node binary from __CURRENT__/tobago-theme-roxborough/target/frontend/node/tmp/node-v8.9.3-darwin-x64/bin/node to __CURRENT__/tobago-theme-roxborough/target/frontend/node/node
 [INFO] Installed node locally.
-[INFO] Installing npm version 4.2.0
-[INFO] Unpacking __REPO__/com/github/eirslett/npm/4.2.0/npm-4.2.0.tar.gz into __CURRENT__/tobago-theme-roxborough/target/frontend/node/node_modules
+[INFO] Installing npm version 5.5.1
+[INFO] Unpacking __REPO__/com/github/eirslett/npm/5.5.1/npm-5.5.1.tar.gz into __CURRENT__/tobago-theme-roxborough/target/frontend/node/node_modules
 [INFO] Installed npm locally.
 [INFO] 
 [INFO] --- frontend-maven-plugin:1.4:npm (step #7: npm install) @ tobago-theme-roxborough ---
 [INFO] Running 'npm install' in __CURRENT__/tobago-theme-roxborough/target/bootstrap
-[WARNING] npm WARN deprecated qunitjs@2.4.1: 2.4.1 is the last version where QUnit will be published as 'qunitjs'. To receive future updates, you will need to change the package name to 'qunit'.
-[WARNING] npm WARN prefer global node-gyp@3.6.2 should be installed with -g
 [INFO] 
-[INFO] > fsevents@1.1.3 install __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/fsevents
-[INFO] > node install
+[INFO] > uws@0.14.5 install __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/uws
+[INFO] > node-gyp rebuild > build_log.txt 2>&1 || exit 0
 [INFO] 
-[INFO] [fsevents] Success: "__CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/fsevents/lib/binding/Release/node-v51-darwin-x64/fse.node" is installed via remote
 [INFO] 
 [INFO] > node-sass@4.7.2 install __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/node-sass
 [INFO] > node scripts/install.js
 [INFO] 
-[INFO] Cached binary found at __HOME__/.npm/node-sass/4.7.2/darwin-x64-51_binding.node
-[INFO] 
-[INFO] > phantomjs-prebuilt@2.1.16 install __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/phantomjs-prebuilt
-[INFO] > node install.js
-[INFO] 
-[INFO] PhantomJS not found on PATH
-[INFO] Download already available at /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip
-[INFO] Verified checksum of previously downloaded file
-[INFO] Extracting zip contents
-[INFO] Removing __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Copying extracted folder /var/folders/yp/1vrxjnrs20798ydt_yl8wrpr0000gp/T/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1511892200658/phantomjs-2.1.1-macosx -> __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom
-[INFO] Writing location.js file
-[INFO] Done. Phantomjs binary available at __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
+[INFO] Cached binary found at __HOME__/.npm/node-sass/4.7.2/darwin-x64-57_binding.node
 [INFO] 
 [INFO] > node-sass@4.7.2 postinstall __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/node-sass
 [INFO] > node scripts/build.js
 [INFO] 
-[INFO] Binary found at __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/node-sass/vendor/darwin-x64-51/binding.node
+[INFO] Binary found at __CURRENT__/tobago-theme-roxborough/target/bootstrap/node_modules/node-sass/vendor/darwin-x64-57/binding.node
 [INFO] Testing binary
 [INFO] Binary is fine
-[INFO] bootstrap@4.0.0-beta.2 __CURRENT__/tobago-theme-roxborough/target/bootstrap
-[INFO] ├─┬ autoprefixer@7.1.6 
-[INFO] │ ├─┬ browserslist@2.9.1 
-[INFO] │ │ └── electron-to-chromium@1.3.27 
-[INFO] │ ├── caniuse-lite@1.0.30000772 
-[INFO] │ ├── normalize-range@0.1.2 
-[INFO] │ ├── num2fraction@1.2.2 
-[INFO] │ ├─┬ postcss@6.0.14 
-[INFO] │ │ └─┬ supports-color@4.5.0 
-[INFO] │ │   └── has-flag@2.0.0 
-[INFO] │ └── postcss-value-parser@3.3.0 
-[INFO] ├─┬ babel-cli@7.0.0-beta.2 
-[INFO] │ ├─┬ babel-core@7.0.0-beta.2 
-[INFO] │ │ ├── babel-code-frame@7.0.0-beta.2 
-[INFO] │ │ ├─┬ babel-generator@7.0.0-beta.2 
-[INFO] │ │ │ ├── jsesc@2.5.1 
-[INFO] │ │ │ ├── source-map@0.5.7 
-[INFO] │ │ │ └── trim-right@1.0.1 
-[INFO] │ │ ├── babel-helpers@7.0.0-beta.2 
-[INFO] │ │ ├── babel-messages@7.0.0-beta.2 
-[INFO] │ │ ├── babel-template@7.0.0-beta.2 
-[INFO] │ │ ├── babel-traverse@7.0.0-beta.2 
-[INFO] │ │ ├── babel-types@7.0.0-beta.2 
-[INFO] │ │ ├── babylon@7.0.0-beta.25 
-[INFO] │ │ ├── json5@0.5.1 
-[INFO] │ │ └── source-map@0.5.7 
-[INFO] │ ├─┬ babel-polyfill@7.0.0-beta.2 
-[INFO] │ │ ├── core-js@2.5.1 
-[INFO] │ │ └── regenerator-runtime@0.11.0 
-[INFO] │ ├─┬ babel-register@7.0.0-beta.2 
-[INFO] │ │ ├─┬ find-cache-dir@1.0.0 
-[INFO] │ │ │ ├── commondir@1.0.1 
-[INFO] │ │ │ ├── make-dir@1.1.0 
-[INFO] │ │ │ └── pkg-dir@2.0.0 
-[INFO] │ │ ├── home-or-tmp@3.0.0 
-[INFO] │ │ ├─┬ pirates@3.0.2 
-[INFO] │ │ │ └── node-modules-regexp@1.0.0 
-[INFO] │ │ └─┬ source-map-support@0.4.18 
-[INFO] │ │   └── source-map@0.5.7 
-[INFO] │ ├─┬ chokidar@1.7.0 
-[INFO] │ │ ├── anymatch@1.3.2 
-[INFO] │ │ ├── async-each@1.0.1 
-[INFO] │ │ ├─┬ fsevents@1.1.3 
-[INFO] │ │ │ └─┬ node-pre-gyp@0.6.39 
-[INFO] │ │ │   ├── detect-libc@1.0.2 
-[INFO] │ │ │   ├─┬ hawk@3.1.3 
-[INFO] │ │ │   │ ├── boom@2.10.1 
-[INFO] │ │ │   │ ├── cryptiles@2.0.5 
-[INFO] │ │ │   │ ├── hoek@2.16.3 
-[INFO] │ │ │   │ └── sntp@1.0.9 
-[INFO] │ │ │   ├─┬ mkdirp@0.5.1 
-[INFO] │ │ │   │ └── minimist@0.0.8 
-[INFO] │ │ │   ├─┬ nopt@4.0.1 
-[INFO] │ │ │   │ ├── abbrev@1.1.0 
-[INFO] │ │ │   │ └─┬ osenv@0.1.4 
-[INFO] │ │ │   │   ├── os-homedir@1.0.2 
-[INFO] │ │ │   │   └── os-tmpdir@1.0.2 
-[INFO] │ │ │   ├─┬ npmlog@4.1.0 
-[INFO] │ │ │   │ ├─┬ are-we-there-yet@1.1.4 
-[INFO] │ │ │   │ │ └── delegates@1.0.0 
-[INFO] │ │ │   │ ├── console-control-strings@1.1.0 
-[INFO] │ │ │   │ ├─┬ gauge@2.7.4 
-[INFO] │ │ │   │ │ ├── aproba@1.1.1 
-[INFO] │ │ │   │ │ ├── has-unicode@2.0.1 
-[INFO] │ │ │   │ │ ├── object-assign@4.1.1 
-[INFO] │ │ │   │ │ ├── signal-exit@3.0.2 
-[INFO] │ │ │   │ │ ├─┬ string-width@1.0.2 
-[INFO] │ │ │   │ │ │ ├── code-point-at@1.1.0 
-[INFO] │ │ │   │ │ │ └─┬ is-fullwidth-code-point@1.0.0 
-[INFO] │ │ │   │ │ │   └── number-is-nan@1.0.1 
-[INFO] │ │ │   │ │ ├─┬ strip-ansi@3.0.1 
-[INFO] │ │ │   │ │ │ └── ansi-regex@2.1.1 
-[INFO] │ │ │   │ │ └── wide-align@1.1.2 
-[INFO] │ │ │   │ └── set-blocking@2.0.0 
-[INFO] │ │ │   ├─┬ rc@1.2.1 
-[INFO] │ │ │   │ ├── deep-extend@0.4.2 
-[INFO] │ │ │   │ ├── ini@1.3.4 
-[INFO] │ │ │   │ ├── minimist@1.2.0 
-[INFO] │ │ │   │ └── strip-json-comments@2.0.1 
-[INFO] │ │ │   ├─┬ request@2.81.0 
-[INFO] │ │ │   │ ├── aws-sign2@0.6.0 
-[INFO] │ │ │   │ ├── aws4@1.6.0 
-[INFO] │ │ │   │ ├── caseless@0.12.0 
-[INFO] │ │ │   │ ├─┬ combined-stream@1.0.5 
-[INFO] │ │ │   │ │ └── delayed-stream@1.0.0 
-[INFO] │ │ │   │ ├── extend@3.0.1 
-[INFO] │ │ │   │ ├── forever-agent@0.6.1 
-[INFO] │ │ │   │ ├─┬ form-data@2.1.4 
-[INFO] │ │ │   │ │ └── asynckit@0.4.0 
-[INFO] │ │ │   │ ├─┬ har-validator@4.2.1 
-[INFO] │ │ │   │ │ ├─┬ ajv@4.11.8 
-[INFO] │ │ │   │ │ │ ├── co@4.6.0 
-[INFO] │ │ │   │ │ │ └─┬ json-stable-stringify@1.0.1 
-[INFO] │ │ │   │ │ │   └── jsonify@0.0.0 
-[INFO] │ │ │   │ │ └── har-schema@1.0.5 
-[INFO] │ │ │   │ ├─┬ http-signature@1.1.1 
-[INFO] │ │ │   │ │ ├── assert-plus@0.2.0 
-[INFO] │ │ │   │ │ ├─┬ jsprim@1.4.0 
-[INFO] │ │ │   │ │ │ ├── assert-plus@1.0.0 
-[INFO] │ │ │   │ │ │ ├── extsprintf@1.0.2 
-[INFO] │ │ │   │ │ │ ├── json-schema@0.2.3 
-[INFO] │ │ │   │ │ │ └── verror@1.3.6 
-[INFO] │ │ │   │ │ └─┬ sshpk@1.13.0 
-[INFO] │ │ │   │ │   ├── asn1@0.2.3 
-[INFO] │ │ │   │ │   ├── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── bcrypt-pbkdf@1.0.1 
-[INFO] │ │ │   │ │   ├─┬ dashdash@1.14.1 
-[INFO] │ │ │   │ │   │ └── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── ecc-jsbn@0.1.1 
-[INFO] │ │ │   │ │   ├─┬ getpass@0.1.7 
-[INFO] │ │ │   │ │   │ └── assert-plus@1.0.0 
-[INFO] │ │ │   │ │   ├── jodid25519@1.0.2 
-[INFO] │ │ │   │ │   ├── jsbn@0.1.1 
-[INFO] │ │ │   │ │   └── tweetnacl@0.14.5 
-[INFO] │ │ │   │ ├── is-typedarray@1.0.0 
-[INFO] │ │ │   │ ├── isstream@0.1.2 
-[INFO] │ │ │   │ ├── json-stringify-safe@5.0.1 
-[INFO] │ │ │   │ ├─┬ mime-types@2.1.15 
-[INFO] │ │ │   │ │ └── mime-db@1.27.0 
-[INFO] │ │ │   │ ├── oauth-sign@0.8.2 
-[INFO] │ │ │   │ ├── performance-now@0.2.0 
-[INFO] │ │ │   │ ├── qs@6.4.0 
-[INFO] │ │ │   │ ├── safe-buffer@5.0.1 
-[INFO] │ │ │   │ ├── stringstream@0.0.5 
-[INFO] │ │ │   │ ├─┬ tough-cookie@2.3.2 
-[INFO] │ │ │   │ │ └── punycode@1.4.1 
-[INFO] │ │ │   │ ├── tunnel-agent@0.6.0 
-[INFO] │ │ │   │ └── uuid@3.0.1 
... 38853 lines suppressed ...

-- 
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.