diff --git a/package-lock.json b/package-lock.json
index 49bcdc421f6f205fc11c5ed878c2075516eb8b8c..0387d1e66b4b96d98e82d48f89b5434fec7a5396 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,19 +9,19 @@
             "dev": true
         },
         "accepts": {
-            "version": "1.3.5",
-            "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
-            "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+            "version": "1.3.7",
+            "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+            "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
             "dev": true,
             "requires": {
-                "mime-types": "~2.1.18",
-                "negotiator": "0.6.1"
+                "mime-types": "~2.1.24",
+                "negotiator": "0.6.2"
             }
         },
         "acorn": {
-            "version": "5.7.1",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz",
-            "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==",
+            "version": "5.7.3",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+            "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
             "dev": true
         },
         "acorn-dynamic-import": {
@@ -100,9 +100,9 @@
             }
         },
         "ajv-keywords": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
-            "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+            "version": "3.4.1",
+            "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+            "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
             "dev": true
         },
         "align-text": {
@@ -116,6 +116,12 @@
                 "repeat-string": "^1.5.2"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -139,15 +145,6 @@
             "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
             "dev": true
         },
-        "ansi-gray": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
-            "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
-            "dev": true,
-            "requires": {
-                "ansi-wrap": "0.1.0"
-            }
-        },
         "ansi-html": {
             "version": "0.0.7",
             "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
@@ -169,12 +166,6 @@
                 "color-convert": "^1.9.0"
             }
         },
-        "ansi-wrap": {
-            "version": "0.1.0",
-            "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
-            "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
-            "dev": true
-        },
         "anymatch": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
@@ -183,6 +174,17 @@
             "requires": {
                 "micromatch": "^3.1.4",
                 "normalize-path": "^2.1.1"
+            },
+            "dependencies": {
+                "normalize-path": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+                    "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+                    "dev": true,
+                    "requires": {
+                        "remove-trailing-separator": "^1.0.1"
+                    }
+                }
             }
         },
         "aproba": {
@@ -191,23 +193,6 @@
             "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
             "dev": true
         },
-        "archive-type": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
-            "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
-            "dev": true,
-            "requires": {
-                "file-type": "^3.1.0"
-            },
-            "dependencies": {
-                "file-type": {
-                    "version": "3.9.0",
-                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
-                    "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-                    "dev": true
-                }
-            }
-        },
         "are-we-there-yet": {
             "version": "1.1.5",
             "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
@@ -245,12 +230,6 @@
             "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
             "dev": true
         },
-        "array-differ": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
-            "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
-            "dev": true
-        },
         "array-find-index": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
@@ -258,9 +237,9 @@
             "dev": true
         },
         "array-flatten": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
-            "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+            "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
             "dev": true
         },
         "array-includes": {
@@ -295,10 +274,13 @@
             "dev": true
         },
         "asn1": {
-            "version": "0.2.3",
-            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
-            "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
-            "dev": true
+            "version": "0.2.4",
+            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+            "dev": true,
+            "requires": {
+                "safer-buffer": "~2.1.0"
+            }
         },
         "asn1.js": {
             "version": "4.10.1",
@@ -312,18 +294,19 @@
             }
         },
         "assert": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
-            "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+            "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
             "dev": true,
             "requires": {
+                "object-assign": "^4.1.1",
                 "util": "0.10.3"
             }
         },
         "assert-plus": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
-            "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
             "dev": true
         },
         "assign-symbols": {
@@ -339,24 +322,18 @@
             "dev": true
         },
         "async": {
-            "version": "2.6.1",
-            "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
-            "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+            "version": "2.6.3",
+            "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+            "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
             "dev": true,
             "requires": {
-                "lodash": "^4.17.10"
+                "lodash": "^4.17.14"
             }
         },
         "async-each": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
-            "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
-            "dev": true
-        },
-        "async-each-series": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz",
-            "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+            "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
             "dev": true
         },
         "async-foreach": {
@@ -372,9 +349,9 @@
             "dev": true
         },
         "atob": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
-            "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=",
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+            "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
             "dev": true
         },
         "autoprefixer": {
@@ -392,25 +369,25 @@
             }
         },
         "aws-sign2": {
-            "version": "0.6.0",
-            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
-            "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
             "dev": true
         },
         "aws4": {
-            "version": "1.7.0",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
-            "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==",
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+            "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
             "dev": true
         },
         "axios": {
-            "version": "0.18.0",
-            "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
-            "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
+            "version": "0.18.1",
+            "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
+            "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
             "dev": true,
             "requires": {
-                "follow-redirects": "^1.3.0",
-                "is-buffer": "^1.1.5"
+                "follow-redirects": "1.5.10",
+                "is-buffer": "^2.0.2"
             }
         },
         "babel-code-frame": {
@@ -657,9 +634,9 @@
             }
         },
         "babel-loader": {
-            "version": "7.1.4",
-            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz",
-            "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==",
+            "version": "7.1.5",
+            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
+            "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
             "dev": true,
             "requires": {
                 "find-cache-dir": "^1.0.0",
@@ -1199,9 +1176,9 @@
             }
         },
         "base64-js": {
-            "version": "0.0.8",
-            "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
-            "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=",
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+            "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
             "dev": true
         },
         "batch": {
@@ -1215,130 +1192,22 @@
             "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
             "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
             "dev": true,
-            "optional": true,
             "requires": {
                 "tweetnacl": "^0.14.3"
             }
         },
-        "beeper": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
-            "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
-            "dev": true
-        },
         "big.js": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
-            "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+            "version": "5.2.2",
+            "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+            "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
             "dev": true
         },
-        "bin-build": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
-            "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=",
-            "dev": true,
-            "requires": {
-                "archive-type": "^3.0.1",
-                "decompress": "^3.0.0",
-                "download": "^4.1.2",
-                "exec-series": "^1.0.0",
-                "rimraf": "^2.2.6",
-                "tempfile": "^1.0.0",
-                "url-regex": "^3.0.0"
-            },
-            "dependencies": {
-                "tempfile": {
-                    "version": "1.1.1",
-                    "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
-                    "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
-                    "dev": true,
-                    "requires": {
-                        "os-tmpdir": "^1.0.0",
-                        "uuid": "^2.0.1"
-                    }
-                },
-                "uuid": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
-                    "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
-                    "dev": true
-                }
-            }
-        },
-        "bin-check": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
-            "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=",
-            "dev": true,
-            "requires": {
-                "executable": "^1.0.0"
-            }
-        },
-        "bin-version": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
-            "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
-            "dev": true,
-            "requires": {
-                "find-versions": "^1.0.0"
-            }
-        },
-        "bin-version-check": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
-            "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
-            "dev": true,
-            "requires": {
-                "bin-version": "^1.0.0",
-                "minimist": "^1.1.0",
-                "semver": "^4.0.3",
-                "semver-truncate": "^1.0.0"
-            },
-            "dependencies": {
-                "minimist": {
-                    "version": "1.2.0",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-                    "dev": true
-                },
-                "semver": {
-                    "version": "4.3.6",
-                    "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
-                    "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
-                    "dev": true
-                }
-            }
-        },
-        "bin-wrapper": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
-            "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=",
-            "dev": true,
-            "requires": {
-                "bin-check": "^2.0.0",
-                "bin-version-check": "^2.1.0",
-                "download": "^4.0.0",
-                "each-async": "^1.1.1",
-                "lazy-req": "^1.0.0",
-                "os-filter-obj": "^1.0.0"
-            }
-        },
         "binary-extensions": {
-            "version": "1.11.0",
-            "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
-            "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
+            "version": "1.13.1",
+            "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+            "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
             "dev": true
         },
-        "bl": {
-            "version": "1.2.2",
-            "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
-            "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
-            "dev": true,
-            "requires": {
-                "readable-stream": "^2.3.5",
-                "safe-buffer": "^5.1.1"
-            }
-        },
         "block-stream": {
             "version": "0.0.9",
             "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
@@ -1349,9 +1218,9 @@
             }
         },
         "bluebird": {
-            "version": "3.5.1",
-            "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
-            "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+            "version": "3.5.5",
+            "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
+            "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
             "dev": true
         },
         "bn.js": {
@@ -1361,23 +1230,29 @@
             "dev": true
         },
         "body-parser": {
-            "version": "1.18.2",
-            "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
-            "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+            "version": "1.19.0",
+            "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+            "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
             "dev": true,
             "requires": {
-                "bytes": "3.0.0",
+                "bytes": "3.1.0",
                 "content-type": "~1.0.4",
                 "debug": "2.6.9",
-                "depd": "~1.1.1",
-                "http-errors": "~1.6.2",
-                "iconv-lite": "0.4.19",
+                "depd": "~1.1.2",
+                "http-errors": "1.7.2",
+                "iconv-lite": "0.4.24",
                 "on-finished": "~2.3.0",
-                "qs": "6.5.1",
-                "raw-body": "2.3.2",
-                "type-is": "~1.6.15"
+                "qs": "6.7.0",
+                "raw-body": "2.4.0",
+                "type-is": "~1.6.17"
             },
             "dependencies": {
+                "bytes": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+                    "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+                    "dev": true
+                },
                 "debug": {
                     "version": "2.6.9",
                     "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -1388,9 +1263,9 @@
                     }
                 },
                 "qs": {
-                    "version": "6.5.1",
-                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
-                    "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+                    "version": "6.7.0",
+                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+                    "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
                     "dev": true
                 }
             }
@@ -1409,25 +1284,10 @@
                 "multicast-dns-service-types": "^1.1.0"
             }
         },
-        "boolbase": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
-            "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
-            "dev": true
-        },
-        "boom": {
-            "version": "2.10.1",
-            "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
-            "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
-            "dev": true,
-            "requires": {
-                "hoek": "2.x.x"
-            }
-        },
         "bootstrap": {
-            "version": "4.1.3",
-            "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz",
-            "integrity": "sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w==",
+            "version": "4.3.1",
+            "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
+            "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==",
             "dev": true
         },
         "brace-expansion": {
@@ -1501,14 +1361,15 @@
             }
         },
         "browserify-des": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz",
-            "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+            "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
             "dev": true,
             "requires": {
                 "cipher-base": "^1.0.1",
                 "des.js": "^1.0.0",
-                "inherits": "^2.0.1"
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
             }
         },
         "browserify-rsa": {
@@ -1556,48 +1417,20 @@
             }
         },
         "buffer": {
-            "version": "3.6.0",
-            "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz",
-            "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=",
+            "version": "4.9.1",
+            "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+            "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
             "dev": true,
             "requires": {
-                "base64-js": "0.0.8",
+                "base64-js": "^1.0.2",
                 "ieee754": "^1.1.4",
                 "isarray": "^1.0.0"
             }
         },
-        "buffer-alloc": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
-            "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
-            "dev": true,
-            "requires": {
-                "buffer-alloc-unsafe": "^1.1.0",
-                "buffer-fill": "^1.0.0"
-            }
-        },
-        "buffer-alloc-unsafe": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
-            "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
-            "dev": true
-        },
-        "buffer-crc32": {
-            "version": "0.2.13",
-            "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
-            "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
-            "dev": true
-        },
-        "buffer-fill": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
-            "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
-            "dev": true
-        },
         "buffer-from": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
-            "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+            "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
             "dev": true
         },
         "buffer-indexof": {
@@ -1606,44 +1439,12 @@
             "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
             "dev": true
         },
-        "buffer-to-vinyl": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
-            "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
-            "dev": true,
-            "requires": {
-                "file-type": "^3.1.0",
-                "readable-stream": "^2.0.2",
-                "uuid": "^2.0.1",
-                "vinyl": "^1.0.0"
-            },
-            "dependencies": {
-                "file-type": {
-                    "version": "3.9.0",
-                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
-                    "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-                    "dev": true
-                },
-                "uuid": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
-                    "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
-                    "dev": true
-                }
-            }
-        },
         "buffer-xor": {
             "version": "1.0.3",
             "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
             "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
             "dev": true
         },
-        "builtin-modules": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
-            "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
-            "dev": true
-        },
         "builtin-status-codes": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
@@ -1702,6 +1503,30 @@
                 "unset-value": "^1.0.0"
             }
         },
+        "caller-callsite": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+            "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+            "dev": true,
+            "requires": {
+                "callsites": "^2.0.0"
+            }
+        },
+        "caller-path": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+            "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+            "dev": true,
+            "requires": {
+                "caller-callsite": "^2.0.0"
+            }
+        },
+        "callsites": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+            "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+            "dev": true
+        },
         "camel-case": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
@@ -1753,49 +1578,23 @@
             }
         },
         "caniuse-db": {
-            "version": "1.0.30000861",
-            "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000861.tgz",
-            "integrity": "sha1-byeEChMMEMCx4A+rdynB+vj0zNM=",
+            "version": "1.0.30000989",
+            "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000989.tgz",
+            "integrity": "sha512-5pkU/t9nueoBgELZOCpK+wN4wK6MkIz1Q9lGZSgLwg4xR8EhLY9r0qj6T2bUI8Cq9pGbioEar+Zqgosk5fpbjg==",
             "dev": true
         },
         "caniuse-lite": {
-            "version": "1.0.30000861",
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000861.tgz",
-            "integrity": "sha512-aeEQ4kyd41qCl8XFbCjWgVBI3EOd66M9sC43MFn0kuD/vcrNqvoIAlKon4xdp8yMCYvVjdCltI3lgArj8I6cNA==",
-            "dev": true
-        },
-        "capture-stack-trace": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
-            "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
+            "version": "1.0.30000989",
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
+            "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
             "dev": true
         },
         "caseless": {
-            "version": "0.11.0",
-            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
-            "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
             "dev": true
         },
-        "caw": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
-            "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
-            "dev": true,
-            "requires": {
-                "get-proxy": "^1.0.1",
-                "is-obj": "^1.0.0",
-                "object-assign": "^3.0.0",
-                "tunnel-agent": "^0.4.0"
-            },
-            "dependencies": {
-                "object-assign": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
-                    "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
-                    "dev": true
-                }
-            }
-        },
         "center-align": {
             "version": "0.1.3",
             "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
@@ -1807,9 +1606,9 @@
             }
         },
         "chalk": {
-            "version": "2.4.1",
-            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-            "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
             "dev": true,
             "requires": {
                 "ansi-styles": "^3.2.1",
@@ -1824,30 +1623,29 @@
             "dev": true
         },
         "chokidar": {
-            "version": "2.0.4",
-            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
-            "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+            "version": "2.1.6",
+            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
+            "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
             "dev": true,
             "requires": {
                 "anymatch": "^2.0.0",
-                "async-each": "^1.0.0",
-                "braces": "^2.3.0",
-                "fsevents": "^1.2.2",
+                "async-each": "^1.0.1",
+                "braces": "^2.3.2",
+                "fsevents": "^1.2.7",
                 "glob-parent": "^3.1.0",
-                "inherits": "^2.0.1",
+                "inherits": "^2.0.3",
                 "is-binary-path": "^1.0.0",
                 "is-glob": "^4.0.0",
-                "lodash.debounce": "^4.0.8",
-                "normalize-path": "^2.1.1",
+                "normalize-path": "^3.0.0",
                 "path-is-absolute": "^1.0.0",
-                "readdirp": "^2.0.0",
-                "upath": "^1.0.5"
+                "readdirp": "^2.2.1",
+                "upath": "^1.1.1"
             }
         },
         "chownr": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
-            "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
+            "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==",
             "dev": true
         },
         "cipher-base": {
@@ -1920,20 +1718,12 @@
             }
         },
         "clean-css": {
-            "version": "4.1.11",
-            "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
-            "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+            "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
             "dev": true,
             "requires": {
-                "source-map": "0.5.x"
-            },
-            "dependencies": {
-                "source-map": {
-                    "version": "0.5.7",
-                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-                    "dev": true
-                }
+                "source-map": "~0.6.0"
             }
         },
         "cliui": {
@@ -1985,25 +1775,8 @@
                 "is-plain-object": "^2.0.4",
                 "kind-of": "^6.0.0",
                 "shallow-clone": "^1.0.0"
-            },
-            "dependencies": {
-                "for-own": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
-                    "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
-                    "dev": true,
-                    "requires": {
-                        "for-in": "^1.0.1"
-                    }
-                }
             }
         },
-        "clone-stats": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
-            "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
-            "dev": true
-        },
         "co": {
             "version": "4.6.0",
             "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -2047,18 +1820,18 @@
             }
         },
         "color-convert": {
-            "version": "1.9.2",
-            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
-            "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
             "dev": true,
             "requires": {
-                "color-name": "1.1.1"
+                "color-name": "1.1.3"
             }
         },
         "color-name": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
-            "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+            "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
             "dev": true
         },
         "color-string": {
@@ -2070,12 +1843,6 @@
                 "color-name": "^1.0.0"
             }
         },
-        "color-support": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
-            "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
-            "dev": true
-        },
         "colormin": {
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
@@ -2094,18 +1861,18 @@
             "dev": true
         },
         "combined-stream": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
-            "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
             "dev": true,
             "requires": {
                 "delayed-stream": "~1.0.0"
             }
         },
         "commander": {
-            "version": "2.15.1",
-            "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
-            "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+            "version": "2.17.1",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+            "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
             "dev": true
         },
         "commondir": {
@@ -2115,32 +1882,32 @@
             "dev": true
         },
         "component-emitter": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
-            "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+            "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
             "dev": true
         },
         "compressible": {
-            "version": "2.0.14",
-            "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
-            "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
+            "version": "2.0.17",
+            "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+            "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
             "dev": true,
             "requires": {
-                "mime-db": ">= 1.34.0 < 2"
+                "mime-db": ">= 1.40.0 < 2"
             }
         },
         "compression": {
-            "version": "1.7.2",
-            "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz",
-            "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=",
+            "version": "1.7.4",
+            "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+            "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
             "dev": true,
             "requires": {
-                "accepts": "~1.3.4",
+                "accepts": "~1.3.5",
                 "bytes": "3.0.0",
-                "compressible": "~2.0.13",
+                "compressible": "~2.0.16",
                 "debug": "2.6.9",
-                "on-headers": "~1.0.1",
-                "safe-buffer": "5.1.1",
+                "on-headers": "~1.0.2",
+                "safe-buffer": "5.1.2",
                 "vary": "~1.1.2"
             },
             "dependencies": {
@@ -2152,12 +1919,6 @@
                     "requires": {
                         "ms": "2.0.0"
                     }
-                },
-                "safe-buffer": {
-                    "version": "5.1.1",
-                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-                    "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
-                    "dev": true
                 }
             }
         },
@@ -2188,20 +1949,10 @@
                 "globs": "^0.1.2"
             }
         },
-        "config-chain": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz",
-            "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=",
-            "dev": true,
-            "requires": {
-                "ini": "^1.3.4",
-                "proto-list": "~1.2.1"
-            }
-        },
         "connect-history-api-fallback": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
-            "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+            "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
             "dev": true
         },
         "console-browserify": {
@@ -2219,12 +1970,6 @@
             "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
             "dev": true
         },
-        "console-stream": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
-            "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=",
-            "dev": true
-        },
         "consolidate": {
             "version": "0.14.5",
             "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz",
@@ -2241,10 +1986,13 @@
             "dev": true
         },
         "content-disposition": {
-            "version": "0.5.2",
-            "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
-            "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
-            "dev": true
+            "version": "0.5.3",
+            "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+            "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "5.1.2"
+            }
         },
         "content-type": {
             "version": "1.0.4",
@@ -2253,15 +2001,18 @@
             "dev": true
         },
         "convert-source-map": {
-            "version": "1.5.1",
-            "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
-            "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
-            "dev": true
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+            "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "~5.1.1"
+            }
         },
         "cookie": {
-            "version": "0.3.1",
-            "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
-            "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+            "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
             "dev": true
         },
         "cookie-signature": {
@@ -2291,9 +2042,9 @@
             "dev": true
         },
         "core-js": {
-            "version": "2.5.7",
-            "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
-            "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
+            "version": "2.6.9",
+            "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+            "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
             "dev": true
         },
         "core-util-is": {
@@ -2303,25 +2054,42 @@
             "dev": true
         },
         "cosmiconfig": {
-            "version": "2.2.2",
-            "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
-            "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+            "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
             "dev": true,
             "requires": {
+                "import-fresh": "^2.0.0",
                 "is-directory": "^0.3.1",
-                "js-yaml": "^3.4.3",
-                "minimist": "^1.2.0",
-                "object-assign": "^4.1.0",
-                "os-homedir": "^1.0.1",
-                "parse-json": "^2.2.0",
-                "require-from-string": "^1.1.0"
+                "js-yaml": "^3.13.1",
+                "parse-json": "^4.0.0"
             },
             "dependencies": {
-                "minimist": {
-                    "version": "1.2.0",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                "esprima": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+                    "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
                     "dev": true
+                },
+                "js-yaml": {
+                    "version": "3.13.1",
+                    "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+                    "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+                    "dev": true,
+                    "requires": {
+                        "argparse": "^1.0.7",
+                        "esprima": "^4.0.0"
+                    }
+                },
+                "parse-json": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+                    "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+                    "dev": true,
+                    "requires": {
+                        "error-ex": "^1.3.1",
+                        "json-parse-better-errors": "^1.0.1"
+                    }
                 }
             }
         },
@@ -2335,15 +2103,6 @@
                 "elliptic": "^6.0.0"
             }
         },
-        "create-error-class": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
-            "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
-            "dev": true,
-            "requires": {
-                "capture-stack-trace": "^1.0.0"
-            }
-        },
         "create-hash": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
@@ -2372,13 +2131,12 @@
             }
         },
         "cross-env": {
-            "version": "5.2.0",
-            "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
-            "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz",
+            "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==",
             "dev": true,
             "requires": {
-                "cross-spawn": "^6.0.5",
-                "is-windows": "^1.0.0"
+                "cross-spawn": "^6.0.5"
             }
         },
         "cross-spawn": {
@@ -2400,15 +2158,6 @@
             "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
             "dev": true
         },
-        "cryptiles": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
-            "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
-            "dev": true,
-            "requires": {
-                "boom": "2.x.x"
-            }
-        },
         "crypto-browserify": {
             "version": "3.12.0",
             "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
@@ -2429,26 +2178,15 @@
             }
         },
         "css": {
-            "version": "2.2.3",
-            "resolved": "https://registry.npmjs.org/css/-/css-2.2.3.tgz",
-            "integrity": "sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==",
+            "version": "2.2.4",
+            "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+            "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
             "dev": true,
             "requires": {
-                "inherits": "^2.0.1",
-                "source-map": "^0.1.38",
-                "source-map-resolve": "^0.5.1",
+                "inherits": "^2.0.3",
+                "source-map": "^0.6.1",
+                "source-map-resolve": "^0.5.2",
                 "urix": "^0.1.0"
-            },
-            "dependencies": {
-                "source-map": {
-                    "version": "0.1.43",
-                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
-                    "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
-                    "dev": true,
-                    "requires": {
-                        "amdefine": ">=0.0.4"
-                    }
-                }
             }
         },
         "css-color-names": {
@@ -2541,28 +2279,10 @@
                 }
             }
         },
-        "css-select": {
-            "version": "1.3.0-rc0",
-            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz",
-            "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=",
-            "dev": true,
-            "requires": {
-                "boolbase": "^1.0.0",
-                "css-what": "2.1",
-                "domutils": "1.5.1",
-                "nth-check": "^1.0.1"
-            }
-        },
-        "css-select-base-adapter": {
-            "version": "0.1.0",
-            "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz",
-            "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=",
-            "dev": true
-        },
         "css-selector-tokenizer": {
-            "version": "0.7.0",
-            "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
-            "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+            "version": "0.7.1",
+            "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+            "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
             "dev": true,
             "requires": {
                 "cssesc": "^0.1.0",
@@ -2583,36 +2303,6 @@
                 }
             }
         },
-        "css-tree": {
-            "version": "1.0.0-alpha25",
-            "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz",
-            "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==",
-            "dev": true,
-            "requires": {
-                "mdn-data": "^1.0.0",
-                "source-map": "^0.5.3"
-            },
-            "dependencies": {
-                "source-map": {
-                    "version": "0.5.7",
-                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-                    "dev": true
-                }
-            }
-        },
-        "css-url-regex": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
-            "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
-            "dev": true
-        },
-        "css-what": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
-            "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
-            "dev": true
-        },
         "cssesc": {
             "version": "0.1.0",
             "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
@@ -2779,12 +2469,13 @@
             "dev": true
         },
         "d": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
-            "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+            "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
             "dev": true,
             "requires": {
-                "es5-ext": "^0.10.9"
+                "es5-ext": "^0.10.50",
+                "type": "^1.0.1"
             }
         },
         "dashdash": {
@@ -2794,14 +2485,6 @@
             "dev": true,
             "requires": {
                 "assert-plus": "^1.0.0"
-            },
-            "dependencies": {
-                "assert-plus": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-                    "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-                    "dev": true
-                }
             }
         },
         "date-now": {
@@ -2810,12 +2493,6 @@
             "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
             "dev": true
         },
-        "dateformat": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
-            "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
-            "dev": true
-        },
         "de-indent": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -2843,194 +2520,19 @@
             "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
             "dev": true
         },
-        "decompress": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
-            "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
-            "dev": true,
-            "requires": {
-                "buffer-to-vinyl": "^1.0.0",
-                "concat-stream": "^1.4.6",
-                "decompress-tar": "^3.0.0",
-                "decompress-tarbz2": "^3.0.0",
-                "decompress-targz": "^3.0.0",
-                "decompress-unzip": "^3.0.0",
-                "stream-combiner2": "^1.1.1",
-                "vinyl-assign": "^1.0.1",
-                "vinyl-fs": "^2.2.0"
-            }
-        },
-        "decompress-response": {
-            "version": "3.3.0",
-            "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
-            "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
-            "dev": true,
-            "requires": {
-                "mimic-response": "^1.0.0"
-            }
-        },
-        "decompress-tar": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
-            "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
-            "dev": true,
-            "requires": {
-                "is-tar": "^1.0.0",
-                "object-assign": "^2.0.0",
-                "strip-dirs": "^1.0.0",
-                "tar-stream": "^1.1.1",
-                "through2": "^0.6.1",
-                "vinyl": "^0.4.3"
-            },
-            "dependencies": {
-                "clone": {
-                    "version": "0.2.0",
-                    "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-                    "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-                    "dev": true
-                },
-                "object-assign": {
-                    "version": "2.1.1",
-                    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-                    "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-                    "dev": true
-                },
-                "vinyl": {
-                    "version": "0.4.6",
-                    "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
-                    "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-                    "dev": true,
-                    "requires": {
-                        "clone": "^0.2.0",
-                        "clone-stats": "^0.0.1"
-                    }
-                }
-            }
-        },
-        "decompress-tarbz2": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
-            "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
-            "dev": true,
-            "requires": {
-                "is-bzip2": "^1.0.0",
-                "object-assign": "^2.0.0",
-                "seek-bzip": "^1.0.3",
-                "strip-dirs": "^1.0.0",
-                "tar-stream": "^1.1.1",
-                "through2": "^0.6.1",
-                "vinyl": "^0.4.3"
-            },
-            "dependencies": {
-                "clone": {
-                    "version": "0.2.0",
-                    "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-                    "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-                    "dev": true
-                },
-                "object-assign": {
-                    "version": "2.1.1",
-                    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-                    "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-                    "dev": true
-                },
-                "vinyl": {
-                    "version": "0.4.6",
-                    "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
-                    "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-                    "dev": true,
-                    "requires": {
-                        "clone": "^0.2.0",
-                        "clone-stats": "^0.0.1"
-                    }
-                }
-            }
-        },
-        "decompress-targz": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
-            "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
-            "dev": true,
-            "requires": {
-                "is-gzip": "^1.0.0",
-                "object-assign": "^2.0.0",
-                "strip-dirs": "^1.0.0",
-                "tar-stream": "^1.1.1",
-                "through2": "^0.6.1",
-                "vinyl": "^0.4.3"
-            },
-            "dependencies": {
-                "clone": {
-                    "version": "0.2.0",
-                    "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
-                    "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
-                    "dev": true
-                },
-                "object-assign": {
-                    "version": "2.1.1",
-                    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
-                    "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
-                    "dev": true
-                },
-                "vinyl": {
-                    "version": "0.4.6",
-                    "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
-                    "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
-                    "dev": true,
-                    "requires": {
-                        "clone": "^0.2.0",
-                        "clone-stats": "^0.0.1"
-                    }
-                }
-            }
-        },
-        "decompress-unzip": {
-            "version": "3.4.0",
-            "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
-            "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
-            "dev": true,
-            "requires": {
-                "is-zip": "^1.0.0",
-                "read-all-stream": "^3.0.0",
-                "stat-mode": "^0.2.0",
-                "strip-dirs": "^1.0.0",
-                "through2": "^2.0.0",
-                "vinyl": "^1.0.0",
-                "yauzl": "^2.2.1"
-            },
-            "dependencies": {
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
-                    }
-                }
-            }
-        },
         "deep-equal": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
             "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
             "dev": true
         },
-        "deep-extend": {
-            "version": "0.6.0",
-            "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-            "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-            "dev": true
-        },
         "define-properties": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
-            "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+            "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
             "dev": true,
             "requires": {
-                "foreach": "^2.0.5",
-                "object-keys": "^1.0.8"
+                "object-keys": "^1.0.12"
             }
         },
         "define-property": {
@@ -3138,9 +2640,9 @@
             }
         },
         "detect-node": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
-            "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+            "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
             "dev": true
         },
         "diffie-hellman": {
@@ -3179,46 +2681,12 @@
                 "buffer-indexof": "^1.0.0"
             }
         },
-        "dom-serializer": {
-            "version": "0.1.0",
-            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
-            "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
-            "dev": true,
-            "requires": {
-                "domelementtype": "~1.1.1",
-                "entities": "~1.1.1"
-            },
-            "dependencies": {
-                "domelementtype": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
-                    "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
-                    "dev": true
-                }
-            }
-        },
         "domain-browser": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
             "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
             "dev": true
         },
-        "domelementtype": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
-            "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
-            "dev": true
-        },
-        "domutils": {
-            "version": "1.5.1",
-            "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
-            "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
-            "dev": true,
-            "requires": {
-                "dom-serializer": "0",
-                "domelementtype": "1"
-            }
-        },
         "dotenv": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
@@ -3231,48 +2699,10 @@
             "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
             "dev": true
         },
-        "download": {
-            "version": "4.4.3",
-            "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
-            "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
-            "dev": true,
-            "requires": {
-                "caw": "^1.0.1",
-                "concat-stream": "^1.4.7",
-                "each-async": "^1.0.0",
-                "filenamify": "^1.0.1",
-                "got": "^5.0.0",
-                "gulp-decompress": "^1.2.0",
-                "gulp-rename": "^1.2.0",
-                "is-url": "^1.2.0",
-                "object-assign": "^4.0.1",
-                "read-all-stream": "^3.0.0",
-                "readable-stream": "^2.0.2",
-                "stream-combiner2": "^1.1.1",
-                "vinyl": "^1.0.0",
-                "vinyl-fs": "^2.2.0",
-                "ware": "^1.2.0"
-            }
-        },
-        "duplexer2": {
-            "version": "0.1.4",
-            "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
-            "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
-            "dev": true,
-            "requires": {
-                "readable-stream": "^2.0.2"
-            }
-        },
-        "duplexer3": {
-            "version": "0.1.4",
-            "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-            "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
-            "dev": true
-        },
         "duplexify": {
-            "version": "3.6.0",
-            "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
-            "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+            "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
             "dev": true,
             "requires": {
                 "end-of-stream": "^1.0.0",
@@ -3281,24 +2711,14 @@
                 "stream-shift": "^1.0.0"
             }
         },
-        "each-async": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
-            "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
-            "dev": true,
-            "requires": {
-                "onetime": "^1.0.0",
-                "set-immediate-shim": "^1.0.0"
-            }
-        },
         "ecc-jsbn": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
-            "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
             "dev": true,
-            "optional": true,
             "requires": {
-                "jsbn": "~0.1.0"
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
             }
         },
         "ee-first": {
@@ -3308,15 +2728,15 @@
             "dev": true
         },
         "electron-to-chromium": {
-            "version": "1.3.50",
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz",
-            "integrity": "sha1-dDi3b5K0G5GfP73TUPvQdX2s3fc=",
+            "version": "1.3.237",
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.237.tgz",
+            "integrity": "sha512-SPAFjDr/7iiVK2kgTluwxela6eaWjjFkS9rO/iYpB/KGXgccUom5YC7OIf19c8m8GGptWxLU0Em8xM64A/N7Fg==",
             "dev": true
         },
         "elliptic": {
-            "version": "6.4.0",
-            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
-            "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+            "version": "6.5.0",
+            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
+            "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
             "dev": true,
             "requires": {
                 "bn.js": "^4.4.0",
@@ -3361,12 +2781,6 @@
                 "tapable": "^0.2.7"
             }
         },
-        "entities": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
-            "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
-            "dev": true
-        },
         "errno": {
             "version": "0.1.7",
             "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -3386,47 +2800,48 @@
             }
         },
         "error-stack-parser": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz",
-            "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.3.tgz",
+            "integrity": "sha512-vRC4rKv87twMZy92X4+TmUdv3iYMsmePbpG/YguHsfzmZ8bYJZYYep7yrXH09yFUaCEPKgNK5X79+Yq7hwLVOA==",
             "dev": true,
             "requires": {
                 "stackframe": "^1.0.4"
             }
         },
         "es-abstract": {
-            "version": "1.12.0",
-            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
-            "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+            "version": "1.13.0",
+            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
+            "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
             "dev": true,
             "requires": {
-                "es-to-primitive": "^1.1.1",
+                "es-to-primitive": "^1.2.0",
                 "function-bind": "^1.1.1",
-                "has": "^1.0.1",
-                "is-callable": "^1.1.3",
-                "is-regex": "^1.0.4"
+                "has": "^1.0.3",
+                "is-callable": "^1.1.4",
+                "is-regex": "^1.0.4",
+                "object-keys": "^1.0.12"
             }
         },
         "es-to-primitive": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
-            "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+            "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
             "dev": true,
             "requires": {
-                "is-callable": "^1.1.1",
+                "is-callable": "^1.1.4",
                 "is-date-object": "^1.0.1",
-                "is-symbol": "^1.0.1"
+                "is-symbol": "^1.0.2"
             }
         },
         "es5-ext": {
-            "version": "0.10.45",
-            "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
-            "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
+            "version": "0.10.50",
+            "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
+            "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
             "dev": true,
             "requires": {
                 "es6-iterator": "~2.0.3",
                 "es6-symbol": "~3.1.1",
-                "next-tick": "1"
+                "next-tick": "^1.0.0"
             }
         },
         "es6-iterator": {
@@ -3488,14 +2903,14 @@
             }
         },
         "es6-weak-map": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
-            "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+            "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
             "dev": true,
             "requires": {
                 "d": "1",
-                "es5-ext": "^0.10.14",
-                "es6-iterator": "^2.0.1",
+                "es5-ext": "^0.10.46",
+                "es6-iterator": "^2.0.3",
                 "es6-symbol": "^3.1.1"
             }
         },
@@ -3539,15 +2954,15 @@
             }
         },
         "estraverse": {
-            "version": "4.2.0",
-            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
-            "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
             "dev": true
         },
         "esutils": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
-            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+            "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
             "dev": true
         },
         "etag": {
@@ -3567,15 +2982,15 @@
             }
         },
         "eventemitter3": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
-            "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+            "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
             "dev": true
         },
         "events": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
-            "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+            "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
             "dev": true
         },
         "eventsource": {
@@ -3597,29 +3012,6 @@
                 "safe-buffer": "^5.1.1"
             }
         },
-        "exec-buffer": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz",
-            "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==",
-            "dev": true,
-            "requires": {
-                "execa": "^0.7.0",
-                "p-finally": "^1.0.0",
-                "pify": "^3.0.0",
-                "rimraf": "^2.5.4",
-                "tempfile": "^2.0.0"
-            }
-        },
-        "exec-series": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
-            "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=",
-            "dev": true,
-            "requires": {
-                "async-each-series": "^1.1.0",
-                "object-assign": "^4.1.0"
-            }
-        },
         "execa": {
             "version": "0.7.0",
             "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
@@ -3648,15 +3040,6 @@
                 }
             }
         },
-        "executable": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz",
-            "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=",
-            "dev": true,
-            "requires": {
-                "meow": "^3.1.0"
-            }
-        },
         "expand-brackets": {
             "version": "2.1.4",
             "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -3701,91 +3084,40 @@
                 }
             }
         },
-        "expand-range": {
-            "version": "1.8.2",
-            "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
-            "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+        "express": {
+            "version": "4.17.1",
+            "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+            "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
             "dev": true,
             "requires": {
-                "fill-range": "^2.1.0"
-            },
-            "dependencies": {
-                "fill-range": {
-                    "version": "2.2.4",
-                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
-                    "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
-                    "dev": true,
-                    "requires": {
-                        "is-number": "^2.1.0",
-                        "isobject": "^2.0.0",
-                        "randomatic": "^3.0.0",
-                        "repeat-element": "^1.1.2",
-                        "repeat-string": "^1.5.2"
-                    }
-                },
-                "is-number": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
-                    "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-                    "dev": true,
-                    "requires": {
-                        "kind-of": "^3.0.2"
-                    }
-                },
-                "isobject": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-                    "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-                    "dev": true,
-                    "requires": {
-                        "isarray": "1.0.0"
-                    }
-                },
-                "kind-of": {
-                    "version": "3.2.2",
-                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-                    "dev": true,
-                    "requires": {
-                        "is-buffer": "^1.1.5"
-                    }
-                }
-            }
-        },
-        "express": {
-            "version": "4.16.3",
-            "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
-            "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
-            "dev": true,
-            "requires": {
-                "accepts": "~1.3.5",
+                "accepts": "~1.3.7",
                 "array-flatten": "1.1.1",
-                "body-parser": "1.18.2",
-                "content-disposition": "0.5.2",
+                "body-parser": "1.19.0",
+                "content-disposition": "0.5.3",
                 "content-type": "~1.0.4",
-                "cookie": "0.3.1",
+                "cookie": "0.4.0",
                 "cookie-signature": "1.0.6",
                 "debug": "2.6.9",
                 "depd": "~1.1.2",
                 "encodeurl": "~1.0.2",
                 "escape-html": "~1.0.3",
                 "etag": "~1.8.1",
-                "finalhandler": "1.1.1",
+                "finalhandler": "~1.1.2",
                 "fresh": "0.5.2",
                 "merge-descriptors": "1.0.1",
                 "methods": "~1.1.2",
                 "on-finished": "~2.3.0",
-                "parseurl": "~1.3.2",
+                "parseurl": "~1.3.3",
                 "path-to-regexp": "0.1.7",
-                "proxy-addr": "~2.0.3",
-                "qs": "6.5.1",
-                "range-parser": "~1.2.0",
-                "safe-buffer": "5.1.1",
-                "send": "0.16.2",
-                "serve-static": "1.13.2",
-                "setprototypeof": "1.1.0",
-                "statuses": "~1.4.0",
-                "type-is": "~1.6.16",
+                "proxy-addr": "~2.0.5",
+                "qs": "6.7.0",
+                "range-parser": "~1.2.1",
+                "safe-buffer": "5.1.2",
+                "send": "0.17.1",
+                "serve-static": "1.14.1",
+                "setprototypeof": "1.1.1",
+                "statuses": "~1.5.0",
+                "type-is": "~1.6.18",
                 "utils-merge": "1.0.1",
                 "vary": "~1.1.2"
             },
@@ -3806,42 +3138,17 @@
                     }
                 },
                 "qs": {
-                    "version": "6.5.1",
-                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
-                    "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
-                    "dev": true
-                },
-                "safe-buffer": {
-                    "version": "5.1.1",
-                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-                    "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+                    "version": "6.7.0",
+                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+                    "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
                     "dev": true
                 }
             }
         },
-        "ext-list": {
-            "version": "2.2.2",
-            "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
-            "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
-            "dev": true,
-            "requires": {
-                "mime-db": "^1.28.0"
-            }
-        },
-        "ext-name": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
-            "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
-            "dev": true,
-            "requires": {
-                "ext-list": "^2.0.0",
-                "sort-keys-length": "^1.0.0"
-            }
-        },
         "extend": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
-            "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
             "dev": true
         },
         "extend-shallow": {
@@ -3948,17 +3255,6 @@
             "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
             "dev": true
         },
-        "fancy-log": {
-            "version": "1.3.2",
-            "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
-            "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
-            "dev": true,
-            "requires": {
-                "ansi-gray": "^0.1.1",
-                "color-support": "^1.1.3",
-                "time-stamp": "^1.0.0"
-            }
-        },
         "fast-deep-equal": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
@@ -3972,9 +3268,9 @@
             "dev": true
         },
         "fastparse": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
-            "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+            "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
             "dev": true
         },
         "faye-websocket": {
@@ -3986,25 +3282,6 @@
                 "websocket-driver": ">=0.5.1"
             }
         },
-        "fd-slicer": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
-            "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
-            "dev": true,
-            "requires": {
-                "pend": "~1.2.0"
-            }
-        },
-        "figures": {
-            "version": "1.7.0",
-            "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-            "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-            "dev": true,
-            "requires": {
-                "escape-string-regexp": "^1.0.5",
-                "object-assign": "^4.1.0"
-            }
-        },
         "file-loader": {
             "version": "0.11.2",
             "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
@@ -4014,35 +3291,6 @@
                 "loader-utils": "^1.0.2"
             }
         },
-        "file-type": {
-            "version": "4.4.0",
-            "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
-            "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=",
-            "dev": true
-        },
-        "filename-regex": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
-            "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-            "dev": true
-        },
-        "filename-reserved-regex": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
-            "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=",
-            "dev": true
-        },
-        "filenamify": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
-            "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
-            "dev": true,
-            "requires": {
-                "filename-reserved-regex": "^1.0.0",
-                "strip-outer": "^1.0.0",
-                "trim-repeated": "^1.0.0"
-            }
-        },
         "fill-range": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -4067,17 +3315,17 @@
             }
         },
         "finalhandler": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
-            "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+            "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
             "dev": true,
             "requires": {
                 "debug": "2.6.9",
                 "encodeurl": "~1.0.2",
                 "escape-html": "~1.0.3",
                 "on-finished": "~2.3.0",
-                "parseurl": "~1.3.2",
-                "statuses": "~1.4.0",
+                "parseurl": "~1.3.3",
+                "statuses": "~1.5.0",
                 "unpipe": "~1.0.0"
             },
             "dependencies": {
@@ -4112,24 +3360,6 @@
                 "locate-path": "^2.0.0"
             }
         },
-        "find-versions": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
-            "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
-            "dev": true,
-            "requires": {
-                "array-uniq": "^1.0.0",
-                "get-stdin": "^4.0.1",
-                "meow": "^3.5.0",
-                "semver-regex": "^1.0.0"
-            }
-        },
-        "first-chunk-stream": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
-            "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
-            "dev": true
-        },
         "flatten": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
@@ -4137,22 +3367,22 @@
             "dev": true
         },
         "flush-write-stream": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
-            "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+            "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
             "dev": true,
             "requires": {
-                "inherits": "^2.0.1",
-                "readable-stream": "^2.0.4"
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.3.6"
             }
         },
         "follow-redirects": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
-            "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
+            "version": "1.5.10",
+            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
+            "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
             "dev": true,
             "requires": {
-                "debug": "^3.1.0"
+                "debug": "=3.1.0"
             }
         },
         "for-in": {
@@ -4162,20 +3392,14 @@
             "dev": true
         },
         "for-own": {
-            "version": "0.1.5",
-            "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
-            "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+            "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
             "dev": true,
             "requires": {
                 "for-in": "^1.0.1"
             }
         },
-        "foreach": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
-            "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
-            "dev": true
-        },
         "forever-agent": {
             "version": "0.6.1",
             "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -4183,13 +3407,13 @@
             "dev": true
         },
         "form-data": {
-            "version": "2.1.4",
-            "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
-            "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+            "version": "2.3.3",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+            "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
             "dev": true,
             "requires": {
                 "asynckit": "^0.4.0",
-                "combined-stream": "^1.0.5",
+                "combined-stream": "^1.0.6",
                 "mime-types": "^2.1.12"
             }
         },
@@ -4262,12 +3486,6 @@
                 "readable-stream": "^2.0.0"
             }
         },
-        "fs-constants": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-            "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-            "dev": true
-        },
         "fs-extra": {
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
@@ -4298,14 +3516,14 @@
             "dev": true
         },
         "fsevents": {
-            "version": "1.2.4",
-            "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
-            "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+            "version": "1.2.9",
+            "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+            "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
             "dev": true,
             "optional": true,
             "requires": {
-                "nan": "^2.9.2",
-                "node-pre-gyp": "^0.10.0"
+                "nan": "^2.12.1",
+                "node-pre-gyp": "^0.12.0"
             },
             "dependencies": {
                 "abbrev": {
@@ -4327,7 +3545,7 @@
                     "optional": true
                 },
                 "are-we-there-yet": {
-                    "version": "1.1.4",
+                    "version": "1.1.5",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
@@ -4353,7 +3571,7 @@
                     }
                 },
                 "chownr": {
-                    "version": "1.0.1",
+                    "version": "1.1.1",
                     "bundled": true,
                     "dev": true,
                     "optional": true
@@ -4383,16 +3601,16 @@
                     "optional": true
                 },
                 "debug": {
-                    "version": "2.6.9",
+                    "version": "4.1.1",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "ms": "2.0.0"
+                        "ms": "^2.1.1"
                     }
                 },
                 "deep-extend": {
-                    "version": "0.5.1",
+                    "version": "0.6.0",
                     "bundled": true,
                     "dev": true,
                     "optional": true
@@ -4441,7 +3659,7 @@
                     }
                 },
                 "glob": {
-                    "version": "7.1.2",
+                    "version": "7.1.3",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
@@ -4461,12 +3679,12 @@
                     "optional": true
                 },
                 "iconv-lite": {
-                    "version": "0.4.21",
+                    "version": "0.4.24",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "safer-buffer": "^2.1.0"
+                        "safer-buffer": ">= 2.1.2 < 3"
                     }
                 },
                 "ignore-walk": {
@@ -4531,17 +3749,17 @@
                     "optional": true
                 },
                 "minipass": {
-                    "version": "2.2.4",
+                    "version": "2.3.5",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "safe-buffer": "^5.1.1",
+                        "safe-buffer": "^5.1.2",
                         "yallist": "^3.0.0"
                     }
                 },
                 "minizlib": {
-                    "version": "1.1.0",
+                    "version": "1.2.1",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
@@ -4559,35 +3777,35 @@
                     }
                 },
                 "ms": {
-                    "version": "2.0.0",
+                    "version": "2.1.1",
                     "bundled": true,
                     "dev": true,
                     "optional": true
                 },
                 "needle": {
-                    "version": "2.2.0",
+                    "version": "2.3.0",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "debug": "^2.1.2",
+                        "debug": "^4.1.0",
                         "iconv-lite": "^0.4.4",
                         "sax": "^1.2.4"
                     }
                 },
                 "node-pre-gyp": {
-                    "version": "0.10.0",
+                    "version": "0.12.0",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
                         "detect-libc": "^1.0.2",
                         "mkdirp": "^0.5.1",
-                        "needle": "^2.2.0",
+                        "needle": "^2.2.1",
                         "nopt": "^4.0.1",
                         "npm-packlist": "^1.1.6",
                         "npmlog": "^4.0.2",
-                        "rc": "^1.1.7",
+                        "rc": "^1.2.7",
                         "rimraf": "^2.6.1",
                         "semver": "^5.3.0",
                         "tar": "^4"
@@ -4604,13 +3822,13 @@
                     }
                 },
                 "npm-bundled": {
-                    "version": "1.0.3",
+                    "version": "1.0.6",
                     "bundled": true,
                     "dev": true,
                     "optional": true
                 },
                 "npm-packlist": {
-                    "version": "1.1.10",
+                    "version": "1.4.1",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
@@ -4687,12 +3905,12 @@
                     "optional": true
                 },
                 "rc": {
-                    "version": "1.2.7",
+                    "version": "1.2.8",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "deep-extend": "^0.5.1",
+                        "deep-extend": "^0.6.0",
                         "ini": "~1.3.0",
                         "minimist": "^1.2.0",
                         "strip-json-comments": "~2.0.1"
@@ -4722,16 +3940,16 @@
                     }
                 },
                 "rimraf": {
-                    "version": "2.6.2",
+                    "version": "2.6.3",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "glob": "^7.0.5"
+                        "glob": "^7.1.3"
                     }
                 },
                 "safe-buffer": {
-                    "version": "5.1.1",
+                    "version": "5.1.2",
                     "bundled": true,
                     "dev": true,
                     "optional": true
@@ -4749,7 +3967,7 @@
                     "optional": true
                 },
                 "semver": {
-                    "version": "5.5.0",
+                    "version": "5.7.0",
                     "bundled": true,
                     "dev": true,
                     "optional": true
@@ -4802,17 +4020,17 @@
                     "optional": true
                 },
                 "tar": {
-                    "version": "4.4.1",
+                    "version": "4.4.8",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "chownr": "^1.0.1",
+                        "chownr": "^1.1.1",
                         "fs-minipass": "^1.2.5",
-                        "minipass": "^2.2.4",
-                        "minizlib": "^1.1.0",
+                        "minipass": "^2.3.4",
+                        "minizlib": "^1.1.1",
                         "mkdirp": "^0.5.0",
-                        "safe-buffer": "^5.1.1",
+                        "safe-buffer": "^5.1.2",
                         "yallist": "^3.0.2"
                     }
                 },
@@ -4823,12 +4041,12 @@
                     "optional": true
                 },
                 "wide-align": {
-                    "version": "1.1.2",
+                    "version": "1.1.3",
                     "bundled": true,
                     "dev": true,
                     "optional": true,
                     "requires": {
-                        "string-width": "^1.0.2"
+                        "string-width": "^1.0.2 || 2"
                     }
                 },
                 "wrappy": {
@@ -4838,7 +4056,7 @@
                     "optional": true
                 },
                 "yallist": {
-                    "version": "3.0.2",
+                    "version": "3.0.3",
                     "bundled": true,
                     "dev": true,
                     "optional": true
@@ -4846,9 +4064,9 @@
             }
         },
         "fstream": {
-            "version": "1.0.11",
-            "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
-            "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+            "version": "1.0.12",
+            "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+            "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
             "dev": true,
             "requires": {
                 "graceful-fs": "^4.1.2",
@@ -4910,36 +4128,12 @@
                 "globule": "^1.0.0"
             }
         },
-        "generate-function": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
-            "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
-            "dev": true
-        },
-        "generate-object-property": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
-            "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
-            "dev": true,
-            "requires": {
-                "is-property": "^1.0.0"
-            }
-        },
         "get-caller-file": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
-            "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+            "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
             "dev": true
         },
-        "get-proxy": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
-            "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
-            "dev": true,
-            "requires": {
-                "rc": "^1.1.2"
-            }
-        },
         "get-stdin": {
             "version": "4.0.1",
             "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
@@ -4965,31 +4159,12 @@
             "dev": true,
             "requires": {
                 "assert-plus": "^1.0.0"
-            },
-            "dependencies": {
-                "assert-plus": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-                    "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-                    "dev": true
-                }
-            }
-        },
-        "gifsicle": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz",
-            "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=",
-            "dev": true,
-            "requires": {
-                "bin-build": "^2.0.0",
-                "bin-wrapper": "^3.0.0",
-                "logalot": "^2.0.0"
             }
         },
         "glob": {
-            "version": "7.1.2",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-            "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+            "version": "7.1.4",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+            "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
             "dev": true,
             "requires": {
                 "fs.realpath": "^1.0.0",
@@ -5000,42 +4175,6 @@
                 "path-is-absolute": "^1.0.0"
             }
         },
-        "glob-base": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
-            "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-            "dev": true,
-            "requires": {
-                "glob-parent": "^2.0.0",
-                "is-glob": "^2.0.0"
-            },
-            "dependencies": {
-                "glob-parent": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-                    "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-                    "dev": true,
-                    "requires": {
-                        "is-glob": "^2.0.0"
-                    }
-                },
-                "is-extglob": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-                    "dev": true
-                },
-                "is-glob": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^1.0.0"
-                    }
-                }
-            }
-        },
         "glob-parent": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
@@ -5057,126 +4196,6 @@
                 }
             }
         },
-        "glob-stream": {
-            "version": "5.3.5",
-            "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
-            "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
-            "dev": true,
-            "requires": {
-                "extend": "^3.0.0",
-                "glob": "^5.0.3",
-                "glob-parent": "^3.0.0",
-                "micromatch": "^2.3.7",
-                "ordered-read-streams": "^0.3.0",
-                "through2": "^0.6.0",
-                "to-absolute-glob": "^0.1.1",
-                "unique-stream": "^2.0.2"
-            },
-            "dependencies": {
-                "arr-diff": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-                    "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-                    "dev": true,
-                    "requires": {
-                        "arr-flatten": "^1.0.1"
-                    }
-                },
-                "array-unique": {
-                    "version": "0.2.1",
-                    "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-                    "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-                    "dev": true
-                },
-                "braces": {
-                    "version": "1.8.5",
-                    "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-                    "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-                    "dev": true,
-                    "requires": {
-                        "expand-range": "^1.8.1",
-                        "preserve": "^0.2.0",
-                        "repeat-element": "^1.1.2"
-                    }
-                },
-                "expand-brackets": {
-                    "version": "0.1.5",
-                    "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
-                    "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-                    "dev": true,
-                    "requires": {
-                        "is-posix-bracket": "^0.1.0"
-                    }
-                },
-                "extglob": {
-                    "version": "0.3.2",
-                    "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
-                    "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^1.0.0"
-                    }
-                },
-                "glob": {
-                    "version": "5.0.15",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
-                    "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-                    "dev": true,
-                    "requires": {
-                        "inflight": "^1.0.4",
-                        "inherits": "2",
-                        "minimatch": "2 || 3",
-                        "once": "^1.3.0",
-                        "path-is-absolute": "^1.0.0"
-                    }
-                },
-                "is-extglob": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-                    "dev": true
-                },
-                "is-glob": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^1.0.0"
-                    }
-                },
-                "kind-of": {
-                    "version": "3.2.2",
-                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-                    "dev": true,
-                    "requires": {
-                        "is-buffer": "^1.1.5"
-                    }
-                },
-                "micromatch": {
-                    "version": "2.3.11",
-                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
-                    "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-                    "dev": true,
-                    "requires": {
-                        "arr-diff": "^2.0.0",
-                        "array-unique": "^0.2.1",
-                        "braces": "^1.8.2",
-                        "expand-brackets": "^0.1.4",
-                        "extglob": "^0.3.1",
-                        "filename-regex": "^2.0.0",
-                        "is-extglob": "^1.0.0",
-                        "is-glob": "^2.0.1",
-                        "kind-of": "^3.0.2",
-                        "normalize-path": "^2.0.1",
-                        "object.omit": "^2.0.0",
-                        "parse-glob": "^3.0.4",
-                        "regex-cache": "^0.4.2"
-                    }
-                }
-            }
-        },
         "globals": {
             "version": "9.18.0",
             "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
@@ -5224,48 +4243,10 @@
                 "minimatch": "~3.0.2"
             }
         },
-        "glogg": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
-            "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
-            "dev": true,
-            "requires": {
-                "sparkles": "^1.0.0"
-            }
-        },
-        "got": {
-            "version": "5.7.1",
-            "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
-            "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
-            "dev": true,
-            "requires": {
-                "create-error-class": "^3.0.1",
-                "duplexer2": "^0.1.4",
-                "is-redirect": "^1.0.0",
-                "is-retry-allowed": "^1.0.0",
-                "is-stream": "^1.0.0",
-                "lowercase-keys": "^1.0.0",
-                "node-status-codes": "^1.0.0",
-                "object-assign": "^4.0.1",
-                "parse-json": "^2.1.0",
-                "pinkie-promise": "^2.0.0",
-                "read-all-stream": "^3.0.0",
-                "readable-stream": "^2.0.5",
-                "timed-out": "^3.0.0",
-                "unzip-response": "^1.0.2",
-                "url-parse-lax": "^1.0.0"
-            }
-        },
         "graceful-fs": {
-            "version": "4.1.11",
-            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
-            "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
-            "dev": true
-        },
-        "graceful-readlink": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
-            "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+            "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
             "dev": true
         },
         "growly": {
@@ -5274,191 +4255,50 @@
             "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
             "dev": true
         },
-        "gulp-decompress": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
-            "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
-            "dev": true,
-            "requires": {
-                "archive-type": "^3.0.0",
-                "decompress": "^3.0.0",
-                "gulp-util": "^3.0.1",
-                "readable-stream": "^2.0.2"
-            }
+        "handle-thing": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
+            "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+            "dev": true
         },
-        "gulp-rename": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.3.0.tgz",
-            "integrity": "sha512-nEuZB7/9i0IZ8AXORTizl2QLP9tcC9uWc/s329zElBLJw1CfOhmMXBxwVlCRKjDyrWuhVP0uBKl61KeQ32TiCg==",
+        "har-schema": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
             "dev": true
         },
-        "gulp-sourcemaps": {
-            "version": "1.6.0",
-            "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
-            "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
+        "har-validator": {
+            "version": "5.1.3",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+            "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
             "dev": true,
             "requires": {
-                "convert-source-map": "^1.1.1",
-                "graceful-fs": "^4.1.2",
-                "strip-bom": "^2.0.0",
-                "through2": "^2.0.0",
-                "vinyl": "^1.0.0"
+                "ajv": "^6.5.5",
+                "har-schema": "^2.0.0"
             },
             "dependencies": {
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+                "ajv": {
+                    "version": "6.10.2",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+                    "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
                     "dev": true,
                     "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
-                    }
-                }
-            }
-        },
-        "gulp-util": {
-            "version": "3.0.8",
-            "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
-            "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
-            "dev": true,
-            "requires": {
-                "array-differ": "^1.0.0",
-                "array-uniq": "^1.0.2",
-                "beeper": "^1.0.0",
-                "chalk": "^1.0.0",
-                "dateformat": "^2.0.0",
-                "fancy-log": "^1.1.0",
-                "gulplog": "^1.0.0",
-                "has-gulplog": "^0.1.0",
-                "lodash._reescape": "^3.0.0",
-                "lodash._reevaluate": "^3.0.0",
-                "lodash._reinterpolate": "^3.0.0",
-                "lodash.template": "^3.0.0",
-                "minimist": "^1.1.0",
-                "multipipe": "^0.1.2",
-                "object-assign": "^3.0.0",
-                "replace-ext": "0.0.1",
-                "through2": "^2.0.0",
-                "vinyl": "^0.5.0"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-                    "dev": true
-                },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "minimist": {
-                    "version": "1.2.0",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-                    "dev": true
-                },
-                "object-assign": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
-                    "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
-                    "dev": true
-                },
-                "replace-ext": {
-                    "version": "0.0.1",
-                    "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
-                    "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
-                    "dev": true
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-                    "dev": true
-                },
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
+                        "fast-deep-equal": "^2.0.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
                     }
                 },
-                "vinyl": {
-                    "version": "0.5.3",
-                    "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
-                    "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
-                    "dev": true,
-                    "requires": {
-                        "clone": "^1.0.0",
-                        "clone-stats": "^0.0.1",
-                        "replace-ext": "0.0.1"
-                    }
-                }
-            }
-        },
-        "gulplog": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
-            "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
-            "dev": true,
-            "requires": {
-                "glogg": "^1.0.0"
-            }
-        },
-        "handle-thing": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
-            "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
-            "dev": true
-        },
-        "har-validator": {
-            "version": "2.0.6",
-            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
-            "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
-            "dev": true,
-            "requires": {
-                "chalk": "^1.1.1",
-                "commander": "^2.9.0",
-                "is-my-json-valid": "^2.12.4",
-                "pinkie-promise": "^2.0.0"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+                "fast-deep-equal": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+                    "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
                     "dev": true
                 },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
                     "dev": true
                 }
             }
@@ -5487,30 +4327,12 @@
             "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
             "dev": true
         },
-        "has-gulplog": {
-            "version": "0.1.0",
-            "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
-            "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
-            "dev": true,
-            "requires": {
-                "sparkles": "^1.0.0"
-            }
-        },
-        "has-symbol-support-x": {
-            "version": "1.4.2",
-            "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
-            "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+        "has-symbols": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+            "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
             "dev": true
         },
-        "has-to-string-tag-x": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
-            "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
-            "dev": true,
-            "requires": {
-                "has-symbol-support-x": "^1.4.1"
-            }
-        },
         "has-unicode": {
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
@@ -5538,6 +4360,12 @@
                 "kind-of": "^4.0.0"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "4.0.0",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
@@ -5566,31 +4394,19 @@
             "dev": true
         },
         "hash.js": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz",
-            "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==",
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+            "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
             "dev": true,
             "requires": {
                 "inherits": "^2.0.3",
-                "minimalistic-assert": "^1.0.0"
-            }
-        },
-        "hawk": {
-            "version": "3.1.3",
-            "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
-            "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
-            "dev": true,
-            "requires": {
-                "boom": "2.x.x",
-                "cryptiles": "2.x.x",
-                "hoek": "2.x.x",
-                "sntp": "1.x.x"
+                "minimalistic-assert": "^1.0.1"
             }
         },
         "he": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
-            "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+            "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
             "dev": true
         },
         "hmac-drbg": {
@@ -5604,12 +4420,6 @@
                 "minimalistic-crypto-utils": "^1.0.1"
             }
         },
-        "hoek": {
-            "version": "2.16.3",
-            "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
-            "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
-            "dev": true
-        },
         "home-or-tmp": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
@@ -5621,9 +4431,9 @@
             }
         },
         "hosted-git-info": {
-            "version": "2.6.1",
-            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz",
-            "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==",
+            "version": "2.8.4",
+            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
+            "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
             "dev": true
         },
         "hpack.js": {
@@ -5639,9 +4449,9 @@
             }
         },
         "html-comment-regex": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
-            "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+            "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
             "dev": true
         },
         "html-entities": {
@@ -5664,28 +4474,36 @@
             }
         },
         "html-minifier": {
-            "version": "3.5.17",
-            "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.17.tgz",
-            "integrity": "sha512-O+StuKL0UWfwX5Zv4rFxd60DPcT5DVjGq1AlnP6VQ8wzudft/W4hx5Wl98aSYNwFBHY6XWJreRw/BehX4l+diQ==",
+            "version": "3.5.21",
+            "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+            "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
             "dev": true,
             "requires": {
                 "camel-case": "3.0.x",
-                "clean-css": "4.1.x",
-                "commander": "2.15.x",
-                "he": "1.1.x",
+                "clean-css": "4.2.x",
+                "commander": "2.17.x",
+                "he": "1.2.x",
                 "param-case": "2.1.x",
                 "relateurl": "0.2.x",
                 "uglify-js": "3.4.x"
             },
             "dependencies": {
                 "uglify-js": {
-                    "version": "3.4.2",
-                    "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.2.tgz",
-                    "integrity": "sha512-/kVQDzwiE9Vy7Y63eMkMozF4jIt0C2+xHctF9YpqNWdE/NLOuMurshkpoYGUlAbeYhACPv0HJPIHJul0Ak4/uw==",
+                    "version": "3.4.10",
+                    "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+                    "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
                     "dev": true,
                     "requires": {
-                        "commander": "~2.15.0",
+                        "commander": "~2.19.0",
                         "source-map": "~0.6.1"
+                    },
+                    "dependencies": {
+                        "commander": {
+                            "version": "2.19.0",
+                            "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+                            "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+                            "dev": true
+                        }
                     }
                 }
             }
@@ -5697,21 +4515,30 @@
             "dev": true
         },
         "http-errors": {
-            "version": "1.6.3",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
-            "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+            "version": "1.7.2",
+            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+            "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
             "dev": true,
             "requires": {
                 "depd": "~1.1.2",
                 "inherits": "2.0.3",
-                "setprototypeof": "1.1.0",
-                "statuses": ">= 1.4.0 < 2"
+                "setprototypeof": "1.1.1",
+                "statuses": ">= 1.5.0 < 2",
+                "toidentifier": "1.0.0"
+            },
+            "dependencies": {
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                    "dev": true
+                }
             }
         },
         "http-parser-js": {
-            "version": "0.4.13",
-            "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
-            "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
+            "version": "0.4.10",
+            "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+            "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
             "dev": true
         },
         "http-proxy": {
@@ -5726,134 +4553,24 @@
             }
         },
         "http-proxy-middleware": {
-            "version": "0.17.4",
-            "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
-            "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+            "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
             "dev": true,
             "requires": {
-                "http-proxy": "^1.16.2",
-                "is-glob": "^3.1.0",
-                "lodash": "^4.17.2",
-                "micromatch": "^2.3.11"
-            },
-            "dependencies": {
-                "arr-diff": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-                    "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-                    "dev": true,
-                    "requires": {
-                        "arr-flatten": "^1.0.1"
-                    }
-                },
-                "array-unique": {
-                    "version": "0.2.1",
-                    "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-                    "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-                    "dev": true
-                },
-                "braces": {
-                    "version": "1.8.5",
-                    "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-                    "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-                    "dev": true,
-                    "requires": {
-                        "expand-range": "^1.8.1",
-                        "preserve": "^0.2.0",
-                        "repeat-element": "^1.1.2"
-                    }
-                },
-                "expand-brackets": {
-                    "version": "0.1.5",
-                    "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
-                    "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-                    "dev": true,
-                    "requires": {
-                        "is-posix-bracket": "^0.1.0"
-                    }
-                },
-                "extglob": {
-                    "version": "0.3.2",
-                    "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
-                    "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^1.0.0"
-                    },
-                    "dependencies": {
-                        "is-extglob": {
-                            "version": "1.0.0",
-                            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-                            "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-                            "dev": true
-                        }
-                    }
-                },
-                "is-glob": {
-                    "version": "3.1.0",
-                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
-                    "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^2.1.0"
-                    }
-                },
-                "kind-of": {
-                    "version": "3.2.2",
-                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-                    "dev": true,
-                    "requires": {
-                        "is-buffer": "^1.1.5"
-                    }
-                },
-                "micromatch": {
-                    "version": "2.3.11",
-                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
-                    "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-                    "dev": true,
-                    "requires": {
-                        "arr-diff": "^2.0.0",
-                        "array-unique": "^0.2.1",
-                        "braces": "^1.8.2",
-                        "expand-brackets": "^0.1.4",
-                        "extglob": "^0.3.1",
-                        "filename-regex": "^2.0.0",
-                        "is-extglob": "^1.0.0",
-                        "is-glob": "^2.0.1",
-                        "kind-of": "^3.0.2",
-                        "normalize-path": "^2.0.1",
-                        "object.omit": "^2.0.0",
-                        "parse-glob": "^3.0.4",
-                        "regex-cache": "^0.4.2"
-                    },
-                    "dependencies": {
-                        "is-extglob": {
-                            "version": "1.0.0",
-                            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-                            "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-                            "dev": true
-                        },
-                        "is-glob": {
-                            "version": "2.0.1",
-                            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-                            "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-                            "dev": true,
-                            "requires": {
-                                "is-extglob": "^1.0.0"
-                            }
-                        }
-                    }
-                }
+                "http-proxy": "^1.17.0",
+                "is-glob": "^4.0.0",
+                "lodash": "^4.17.11",
+                "micromatch": "^3.1.10"
             }
         },
         "http-signature": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
-            "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
             "dev": true,
             "requires": {
-                "assert-plus": "^0.2.0",
+                "assert-plus": "^1.0.0",
                 "jsprim": "^1.2.2",
                 "sshpk": "^1.7.0"
             }
@@ -5865,10 +4582,13 @@
             "dev": true
         },
         "iconv-lite": {
-            "version": "0.4.19",
-            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
-            "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
-            "dev": true
+            "version": "0.4.24",
+            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+            "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+            "dev": true,
+            "requires": {
+                "safer-buffer": ">= 2.1.2 < 3"
+            }
         },
         "icss-replace-symbols": {
             "version": "1.1.0",
@@ -5886,9 +4606,9 @@
             }
         },
         "ieee754": {
-            "version": "1.1.12",
-            "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
-            "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+            "version": "1.1.13",
+            "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+            "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
             "dev": true
         },
         "iferr": {
@@ -5897,234 +4617,51 @@
             "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
             "dev": true
         },
-        "imagemin": {
-            "version": "5.3.1",
-            "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-5.3.1.tgz",
-            "integrity": "sha1-8Zwu7h5xumxlWMUV+fyWaAGJptQ=",
+        "img-loader": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-3.0.1.tgz",
+            "integrity": "sha512-0jDJqexgzOuq3zlXwFTBKJlMcaP1uXyl5t4Qu6b1IgXb3IwBDjPfVylBC8vHFIIESDw/S+5QkBbtBrt4T8wESA==",
             "dev": true,
             "requires": {
-                "file-type": "^4.1.0",
-                "globby": "^6.1.0",
-                "make-dir": "^1.0.0",
-                "p-pipe": "^1.1.0",
-                "pify": "^2.3.0",
-                "replace-ext": "^1.0.0"
-            },
-            "dependencies": {
-                "pify": {
-                    "version": "2.3.0",
-                    "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-                    "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-                    "dev": true
-                }
+                "loader-utils": "^1.1.0"
             }
         },
-        "imagemin-gifsicle": {
-            "version": "5.2.0",
-            "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-5.2.0.tgz",
-            "integrity": "sha512-K01m5QuPK+0en8oVhiOOAicF7KjrHlCZxS++mfLI2mV/Ksfq/Y9nCXCWDz6jRv13wwlqe5T7hXT+ji2DnLc2yQ==",
+        "import-cwd": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+            "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
             "dev": true,
             "requires": {
-                "exec-buffer": "^3.0.0",
-                "gifsicle": "^3.0.0",
-                "is-gif": "^1.0.0"
+                "import-from": "^2.1.0"
             }
         },
-        "imagemin-mozjpeg": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-7.0.0.tgz",
-            "integrity": "sha1-2SZHf8bvXzp2ikIi97LYCNPrpWg=",
+        "import-fresh": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+            "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
             "dev": true,
             "requires": {
-                "execa": "^0.8.0",
-                "is-jpg": "^1.0.0",
-                "mozjpeg": "^5.0.0"
-            },
-            "dependencies": {
-                "cross-spawn": {
-                    "version": "5.1.0",
-                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-                    "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-                    "dev": true,
-                    "requires": {
-                        "lru-cache": "^4.0.1",
-                        "shebang-command": "^1.2.0",
-                        "which": "^1.2.9"
-                    }
-                },
-                "execa": {
-                    "version": "0.8.0",
-                    "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
-                    "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
-                    "dev": true,
-                    "requires": {
-                        "cross-spawn": "^5.0.1",
-                        "get-stream": "^3.0.0",
-                        "is-stream": "^1.1.0",
-                        "npm-run-path": "^2.0.0",
-                        "p-finally": "^1.0.0",
-                        "signal-exit": "^3.0.0",
-                        "strip-eof": "^1.0.0"
-                    }
-                }
+                "caller-path": "^2.0.0",
+                "resolve-from": "^3.0.0"
             }
         },
-        "imagemin-optipng": {
-            "version": "5.2.1",
-            "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz",
-            "integrity": "sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=",
+        "import-from": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+            "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
             "dev": true,
             "requires": {
-                "exec-buffer": "^3.0.0",
-                "is-png": "^1.0.0",
-                "optipng-bin": "^3.0.0"
+                "resolve-from": "^3.0.0"
             }
         },
-        "imagemin-pngquant": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-5.1.0.tgz",
-            "integrity": "sha512-RtIUPbp8/HYX5EKY6p/L1NLKnkxNj37I92IFNsrptzBVql8FqBgPra9DO/eUgE4EWx+zq6ih4a/Y9YhF3pNM5A==",
+        "import-local": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
+            "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
             "dev": true,
             "requires": {
-                "execa": "^0.10.0",
-                "is-png": "^1.0.0",
-                "is-stream": "^1.1.0",
-                "pngquant-bin": "^4.0.0"
-            },
-            "dependencies": {
-                "execa": {
-                    "version": "0.10.0",
-                    "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-                    "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
-                    "dev": true,
-                    "requires": {
-                        "cross-spawn": "^6.0.0",
-                        "get-stream": "^3.0.0",
-                        "is-stream": "^1.1.0",
-                        "npm-run-path": "^2.0.0",
-                        "p-finally": "^1.0.0",
-                        "signal-exit": "^3.0.0",
-                        "strip-eof": "^1.0.0"
-                    }
-                }
-            }
-        },
-        "imagemin-svgo": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-6.0.0.tgz",
-            "integrity": "sha512-xwjBZQKpbkklHtJYnCOwRJjTRJA/nR0hQzKMh+CUZRvm/L0QwKKPJQ9tkPWQHrg+cydPu2i1vLgHuy2E0hKEkg==",
-            "dev": true,
-            "requires": {
-                "buffer-from": "^0.1.1",
-                "is-svg": "^2.0.0",
-                "svgo": "^1.0.0"
-            },
-            "dependencies": {
-                "buffer-from": {
-                    "version": "0.1.2",
-                    "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz",
-                    "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==",
-                    "dev": true
-                },
-                "coa": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz",
-                    "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==",
-                    "dev": true,
-                    "requires": {
-                        "q": "^1.1.2"
-                    }
-                },
-                "csso": {
-                    "version": "3.5.1",
-                    "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
-                    "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
-                    "dev": true,
-                    "requires": {
-                        "css-tree": "1.0.0-alpha.29"
-                    },
-                    "dependencies": {
-                        "css-tree": {
-                            "version": "1.0.0-alpha.29",
-                            "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
-                            "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
-                            "dev": true,
-                            "requires": {
-                                "mdn-data": "~1.1.0",
-                                "source-map": "^0.5.3"
-                            }
-                        }
-                    }
-                },
-                "esprima": {
-                    "version": "4.0.0",
-                    "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
-                    "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
-                    "dev": true
-                },
-                "js-yaml": {
-                    "version": "3.10.0",
-                    "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
-                    "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
-                    "dev": true,
-                    "requires": {
-                        "argparse": "^1.0.7",
-                        "esprima": "^4.0.0"
-                    }
-                },
-                "source-map": {
-                    "version": "0.5.7",
-                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-                    "dev": true
-                },
-                "svgo": {
-                    "version": "1.0.5",
-                    "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz",
-                    "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==",
-                    "dev": true,
-                    "requires": {
-                        "coa": "~2.0.1",
-                        "colors": "~1.1.2",
-                        "css-select": "~1.3.0-rc0",
-                        "css-select-base-adapter": "~0.1.0",
-                        "css-tree": "1.0.0-alpha25",
-                        "css-url-regex": "^1.1.0",
-                        "csso": "^3.5.0",
-                        "js-yaml": "~3.10.0",
-                        "mkdirp": "~0.5.1",
-                        "object.values": "^1.0.4",
-                        "sax": "~1.2.4",
-                        "stable": "~0.1.6",
-                        "unquote": "~1.1.1",
-                        "util.promisify": "~1.0.0"
-                    }
-                }
-            }
-        },
-        "img-loader": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-2.0.1.tgz",
-            "integrity": "sha512-cD5D+zzIDvVPyX9nmz6+GL20BfpRUKUEXFur9IPeUC8/LRJT/PQ3YJVyKelIum8R5rCVZXgSFB0ccpsnS4IyAQ==",
-            "dev": true,
-            "requires": {
-                "imagemin": "^5.3.1",
-                "imagemin-gifsicle": "^5.2.0",
-                "imagemin-mozjpeg": "^7.0.0",
-                "imagemin-optipng": "^5.2.0",
-                "imagemin-pngquant": "^5.0.1",
-                "imagemin-svgo": "^6.0.0",
-                "loader-utils": "^1.1.0"
-            }
-        },
-        "import-local": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
-            "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
-            "dev": true,
-            "requires": {
-                "pkg-dir": "^2.0.0",
-                "resolve-cwd": "^2.0.0"
+                "pkg-dir": "^2.0.0",
+                "resolve-cwd": "^2.0.0"
             }
         },
         "imurmurhash": {
@@ -6154,12 +4691,6 @@
             "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
             "dev": true
         },
-        "indexof": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
-            "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
-            "dev": true
-        },
         "inflight": {
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6171,15 +4702,9 @@
             }
         },
         "inherits": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-            "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-            "dev": true
-        },
-        "ini": {
-            "version": "1.3.5",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
-            "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
             "dev": true
         },
         "internal-ip": {
@@ -6192,9 +4717,9 @@
             }
         },
         "interpret": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
-            "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+            "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
             "dev": true
         },
         "invariant": {
@@ -6218,27 +4743,12 @@
             "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
             "dev": true
         },
-        "ip-regex": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
-            "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=",
-            "dev": true
-        },
         "ipaddr.js": {
-            "version": "1.6.0",
-            "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
-            "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=",
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+            "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
             "dev": true
         },
-        "is-absolute": {
-            "version": "0.1.7",
-            "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
-            "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
-            "dev": true,
-            "requires": {
-                "is-relative": "^0.1.0"
-            }
-        },
         "is-absolute-url": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
@@ -6254,6 +4764,12 @@
                 "kind-of": "^3.0.2"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -6281,30 +4797,15 @@
             }
         },
         "is-buffer": {
-            "version": "1.1.6",
-            "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
-            "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
-            "dev": true
-        },
-        "is-builtin-module": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
-            "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
-            "dev": true,
-            "requires": {
-                "builtin-modules": "^1.0.0"
-            }
-        },
-        "is-bzip2": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
-            "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
+            "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
             "dev": true
         },
         "is-callable": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
-            "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+            "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
             "dev": true
         },
         "is-data-descriptor": {
@@ -6316,6 +4817,12 @@
                 "kind-of": "^3.0.2"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -6358,21 +4865,6 @@
             "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
             "dev": true
         },
-        "is-dotfile": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
-            "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-            "dev": true
-        },
-        "is-equal-shallow": {
-            "version": "0.1.3",
-            "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
-            "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-            "dev": true,
-            "requires": {
-                "is-primitive": "^2.0.0"
-            }
-        },
         "is-extendable": {
             "version": "0.1.1",
             "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -6400,58 +4892,15 @@
             "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
             "dev": true
         },
-        "is-gif": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
-            "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=",
-            "dev": true
-        },
         "is-glob": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-            "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+            "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
             "dev": true,
             "requires": {
                 "is-extglob": "^2.1.1"
             }
         },
-        "is-gzip": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
-            "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=",
-            "dev": true
-        },
-        "is-jpg": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.1.tgz",
-            "integrity": "sha1-KW1X/dmc4BBDSnKD40armhA16XU=",
-            "dev": true
-        },
-        "is-my-ip-valid": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
-            "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==",
-            "dev": true
-        },
-        "is-my-json-valid": {
-            "version": "2.17.2",
-            "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz",
-            "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==",
-            "dev": true,
-            "requires": {
-                "generate-function": "^2.0.0",
-                "generate-object-property": "^1.1.0",
-                "is-my-ip-valid": "^1.0.0",
-                "jsonpointer": "^4.0.0",
-                "xtend": "^4.0.0"
-            }
-        },
-        "is-natural-number": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
-            "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=",
-            "dev": true
-        },
         "is-number": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@@ -6461,6 +4910,12 @@
                 "kind-of": "^3.0.2"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -6472,18 +4927,6 @@
                 }
             }
         },
-        "is-obj": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
-            "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
-            "dev": true
-        },
-        "is-object": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
-            "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=",
-            "dev": true
-        },
         "is-path-cwd": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
@@ -6523,36 +4966,6 @@
                 "isobject": "^3.0.1"
             }
         },
-        "is-png": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz",
-            "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=",
-            "dev": true
-        },
-        "is-posix-bracket": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
-            "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-            "dev": true
-        },
-        "is-primitive": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
-            "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-            "dev": true
-        },
-        "is-property": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
-            "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
-            "dev": true
-        },
-        "is-redirect": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
-            "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
-            "dev": true
-        },
         "is-regex": {
             "version": "1.0.4",
             "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
@@ -6562,18 +4975,6 @@
                 "has": "^1.0.1"
             }
         },
-        "is-relative": {
-            "version": "0.1.3",
-            "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
-            "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=",
-            "dev": true
-        },
-        "is-retry-allowed": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
-            "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
-            "dev": true
-        },
         "is-stream": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -6590,16 +4991,13 @@
             }
         },
         "is-symbol": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
-            "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
-            "dev": true
-        },
-        "is-tar": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
-            "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=",
-            "dev": true
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+            "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+            "dev": true,
+            "requires": {
+                "has-symbols": "^1.0.0"
+            }
         },
         "is-typedarray": {
             "version": "1.0.0",
@@ -6607,24 +5005,12 @@
             "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
             "dev": true
         },
-        "is-url": {
-            "version": "1.2.4",
-            "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
-            "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
-            "dev": true
-        },
         "is-utf8": {
             "version": "0.2.1",
             "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
             "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
             "dev": true
         },
-        "is-valid-glob": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
-            "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
-            "dev": true
-        },
         "is-windows": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -6637,12 +5023,6 @@
             "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
             "dev": true
         },
-        "is-zip": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
-            "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=",
-            "dev": true
-        },
         "isarray": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -6667,26 +5047,16 @@
             "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
             "dev": true
         },
-        "isurl": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
-            "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
-            "dev": true,
-            "requires": {
-                "has-to-string-tag-x": "^1.2.0",
-                "is-object": "^1.0.1"
-            }
-        },
         "jquery": {
-            "version": "3.3.1",
-            "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
-            "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==",
+            "version": "3.4.1",
+            "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
+            "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==",
             "dev": true
         },
         "js-base64": {
-            "version": "2.4.5",
-            "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz",
-            "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==",
+            "version": "2.5.1",
+            "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+            "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
             "dev": true
         },
         "js-tokens": {
@@ -6697,8 +5067,7 @@
         },
         "js-yaml": {
             "version": "3.7.0",
-            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
-            "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+            "resolved": "",
             "dev": true,
             "requires": {
                 "argparse": "^1.0.7",
@@ -6709,8 +5078,7 @@
             "version": "0.1.1",
             "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
             "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
-            "dev": true,
-            "optional": true
+            "dev": true
         },
         "jsesc": {
             "version": "1.3.0",
@@ -6724,6 +5092,12 @@
             "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
             "dev": true
         },
+        "json-parse-better-errors": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+            "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+            "dev": true
+        },
         "json-schema": {
             "version": "0.2.3",
             "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -6736,15 +5110,6 @@
             "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
             "dev": true
         },
-        "json-stable-stringify": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
-            "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-            "dev": true,
-            "requires": {
-                "jsonify": "~0.0.0"
-            }
-        },
         "json-stringify-safe": {
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -6752,9 +5117,9 @@
             "dev": true
         },
         "json3": {
-            "version": "3.3.2",
-            "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
-            "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+            "version": "3.3.3",
+            "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+            "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
             "dev": true
         },
         "json5": {
@@ -6772,18 +5137,6 @@
                 "graceful-fs": "^4.1.6"
             }
         },
-        "jsonify": {
-            "version": "0.0.0",
-            "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-            "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-            "dev": true
-        },
-        "jsonpointer": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
-            "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
-            "dev": true
-        },
         "jsprim": {
             "version": "1.4.1",
             "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -6794,20 +5147,12 @@
                 "extsprintf": "1.3.0",
                 "json-schema": "0.2.3",
                 "verror": "1.10.0"
-            },
-            "dependencies": {
-                "assert-plus": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-                    "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-                    "dev": true
-                }
             }
         },
         "killable": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
-            "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+            "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
             "dev": true
         },
         "kind-of": {
@@ -6817,9 +5162,9 @@
             "dev": true
         },
         "laravel-mix": {
-            "version": "2.1.11",
-            "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-2.1.11.tgz",
-            "integrity": "sha512-+iDqVPOuHSq6Ng/WX0w8V2O7R8847u1N1jybB/AAuRca3nRw4iI9BNNJ307ViiXb1GulxKixLe67shPFatJjvQ==",
+            "version": "2.1.14",
+            "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-2.1.14.tgz",
+            "integrity": "sha512-M/Vzgr6+QQGukciAQ91SZvOhUyrPm41bq/nRyF2j2HR8/g3vzvTQbRkdTGOpq9Z+y3REEj8qR2A3ScnEG37Dgw==",
             "dev": true,
             "requires": {
                 "autoprefixer": "^7.2.6",
@@ -6828,7 +5173,7 @@
                 "babel-plugin-transform-object-rest-spread": "^6.26.0",
                 "babel-plugin-transform-runtime": "^6.23.0",
                 "babel-preset-env": "^1.5.1",
-                "chokidar": "^2.0.0",
+                "chokidar": "^2.0.3",
                 "clean-css": "^4.1.3",
                 "concatenate": "0.0.2",
                 "css-loader": "^0.28.9",
@@ -6840,10 +5185,10 @@
                 "fs-extra": "^3.0.1",
                 "glob": "^7.1.2",
                 "html-loader": "^0.4.5",
-                "img-loader": "^2.0.1",
+                "img-loader": "^3.0.0",
                 "lodash": "^4.17.5",
                 "md5": "^2.2.1",
-                "node-sass": "^4.7.2",
+                "node-sass": "^4.9.0",
                 "postcss-loader": "^2.1.0",
                 "resolve-url-loader": "^2.2.1",
                 "sass-loader": "^6.0.5",
@@ -6866,21 +5211,6 @@
             "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
             "dev": true
         },
-        "lazy-req": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
-            "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=",
-            "dev": true
-        },
-        "lazystream": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
-            "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
-            "dev": true,
-            "requires": {
-                "readable-stream": "^2.0.5"
-            }
-        },
         "lcid": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
@@ -6912,20 +5242,37 @@
             }
         },
         "loader-runner": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
-            "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+            "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
             "dev": true
         },
         "loader-utils": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
-            "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+            "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
             "dev": true,
             "requires": {
-                "big.js": "^3.1.3",
+                "big.js": "^5.2.2",
                 "emojis-list": "^2.0.0",
-                "json5": "^0.5.0"
+                "json5": "^1.0.1"
+            },
+            "dependencies": {
+                "json5": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "dev": true,
+                    "requires": {
+                        "minimist": "^1.2.0"
+                    }
+                },
+                "minimist": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                    "dev": true
+                }
             }
         },
         "locate-path": {
@@ -6939,9 +5286,9 @@
             }
         },
         "lodash": {
-            "version": "4.17.10",
-            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
-            "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+            "version": "4.17.15",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+            "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
             "dev": true
         },
         "lodash._baseassign": {
@@ -6960,18 +5307,6 @@
             "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
             "dev": true
         },
-        "lodash._basetostring": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
-            "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
-            "dev": true
-        },
-        "lodash._basevalues": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
-            "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
-            "dev": true
-        },
         "lodash._bindcallback": {
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
@@ -7001,30 +5336,6 @@
             "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
             "dev": true
         },
-        "lodash._reescape": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
-            "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
-            "dev": true
-        },
-        "lodash._reevaluate": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
-            "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
-            "dev": true
-        },
-        "lodash._reinterpolate": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
-            "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
-            "dev": true
-        },
-        "lodash._root": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
-            "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
-            "dev": true
-        },
         "lodash.assign": {
             "version": "4.2.0",
             "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
@@ -7037,33 +5348,12 @@
             "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
             "dev": true
         },
-        "lodash.clonedeep": {
-            "version": "4.5.0",
-            "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-            "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
-            "dev": true
-        },
-        "lodash.debounce": {
-            "version": "4.0.8",
-            "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-            "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
-            "dev": true
-        },
         "lodash.defaults": {
             "version": "4.2.0",
             "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
             "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
             "dev": true
         },
-        "lodash.escape": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
-            "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
-            "dev": true,
-            "requires": {
-                "lodash._root": "^3.0.0"
-            }
-        },
         "lodash.isarguments": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
@@ -7076,12 +5366,6 @@
             "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
             "dev": true
         },
-        "lodash.isequal": {
-            "version": "4.5.0",
-            "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
-            "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
-            "dev": true
-        },
         "lodash.keys": {
             "version": "3.1.2",
             "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
@@ -7099,12 +5383,6 @@
             "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
             "dev": true
         },
-        "lodash.mergewith": {
-            "version": "4.6.1",
-            "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
-            "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
-            "dev": true
-        },
         "lodash.restparam": {
             "version": "3.6.1",
             "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
@@ -7117,53 +5395,16 @@
             "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
             "dev": true
         },
-        "lodash.template": {
-            "version": "3.6.2",
-            "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
-            "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
-            "dev": true,
-            "requires": {
-                "lodash._basecopy": "^3.0.0",
-                "lodash._basetostring": "^3.0.0",
-                "lodash._basevalues": "^3.0.0",
-                "lodash._isiterateecall": "^3.0.0",
-                "lodash._reinterpolate": "^3.0.0",
-                "lodash.escape": "^3.0.0",
-                "lodash.keys": "^3.0.0",
-                "lodash.restparam": "^3.0.0",
-                "lodash.templatesettings": "^3.0.0"
-            }
-        },
-        "lodash.templatesettings": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
-            "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
-            "dev": true,
-            "requires": {
-                "lodash._reinterpolate": "^3.0.0",
-                "lodash.escape": "^3.0.0"
-            }
-        },
         "lodash.uniq": {
             "version": "4.5.0",
             "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
             "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
             "dev": true
         },
-        "logalot": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
-            "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
-            "dev": true,
-            "requires": {
-                "figures": "^1.3.5",
-                "squeak": "^1.0.0"
-            }
-        },
         "loglevel": {
-            "version": "1.6.1",
-            "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
-            "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
+            "version": "1.6.3",
+            "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz",
+            "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==",
             "dev": true
         },
         "longest": {
@@ -7173,12 +5414,12 @@
             "dev": true
         },
         "loose-envify": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
-            "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+            "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
             "dev": true,
             "requires": {
-                "js-tokens": "^3.0.0"
+                "js-tokens": "^3.0.0 || ^4.0.0"
             }
         },
         "loud-rejection": {
@@ -7197,28 +5438,10 @@
             "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
             "dev": true
         },
-        "lowercase-keys": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-            "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-            "dev": true
-        },
-        "lpad-align": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
-            "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=",
-            "dev": true,
-            "requires": {
-                "get-stdin": "^4.0.1",
-                "indent-string": "^2.1.0",
-                "longest": "^1.0.0",
-                "meow": "^3.3.0"
-            }
-        },
         "lru-cache": {
-            "version": "4.1.3",
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
-            "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+            "version": "4.1.5",
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+            "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
             "dev": true,
             "requires": {
                 "pseudomap": "^1.0.2",
@@ -7261,12 +5484,6 @@
             "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
             "dev": true
         },
-        "math-random": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
-            "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
-            "dev": true
-        },
         "md5": {
             "version": "2.2.1",
             "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
@@ -7276,24 +5493,27 @@
                 "charenc": "~0.0.1",
                 "crypt": "~0.0.1",
                 "is-buffer": "~1.1.1"
+            },
+            "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                }
             }
         },
         "md5.js": {
-            "version": "1.3.4",
-            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
-            "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+            "version": "1.3.5",
+            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+            "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
             "dev": true,
             "requires": {
                 "hash-base": "^3.0.0",
-                "inherits": "^2.0.1"
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
             }
         },
-        "mdn-data": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
-            "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
-            "dev": true
-        },
         "media-typer": {
             "version": "0.3.0",
             "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -7351,15 +5571,6 @@
             "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
             "dev": true
         },
-        "merge-stream": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
-            "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
-            "dev": true,
-            "requires": {
-                "readable-stream": "^2.0.1"
-            }
-        },
         "methods": {
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -7398,32 +5609,24 @@
             }
         },
         "mime": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
-            "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+            "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
             "dev": true
         },
         "mime-db": {
-            "version": "1.34.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz",
-            "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=",
+            "version": "1.40.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+            "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
             "dev": true
         },
         "mime-types": {
-            "version": "2.1.18",
-            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
-            "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+            "version": "2.1.24",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+            "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
             "dev": true,
             "requires": {
-                "mime-db": "~1.33.0"
-            },
-            "dependencies": {
-                "mime-db": {
-                    "version": "1.33.0",
-                    "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
-                    "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
-                    "dev": true
-                }
+                "mime-db": "1.40.0"
             }
         },
         "mimic-fn": {
@@ -7432,12 +5635,6 @@
             "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
             "dev": true
         },
-        "mimic-response": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz",
-            "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=",
-            "dev": true
-        },
         "minimalistic-assert": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -7481,24 +5678,12 @@
                 "pumpify": "^1.3.3",
                 "stream-each": "^1.1.0",
                 "through2": "^2.0.0"
-            },
-            "dependencies": {
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
-                    }
-                }
             }
         },
         "mixin-deep": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
-            "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+            "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
             "dev": true,
             "requires": {
                 "for-in": "^1.0.2",
@@ -7557,17 +5742,6 @@
                 "run-queue": "^1.0.3"
             }
         },
-        "mozjpeg": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-5.0.0.tgz",
-            "integrity": "sha1-uGccSSRWijY94AP/L9OXq4P3UsU=",
-            "dev": true,
-            "requires": {
-                "bin-build": "^2.2.0",
-                "bin-wrapper": "^3.0.0",
-                "logalot": "^2.0.0"
-            }
-        },
         "ms": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -7590,54 +5764,10 @@
             "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
             "dev": true
         },
-        "multipipe": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
-            "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
-            "dev": true,
-            "requires": {
-                "duplexer2": "0.0.2"
-            },
-            "dependencies": {
-                "duplexer2": {
-                    "version": "0.0.2",
-                    "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
-                    "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "~1.1.9"
-                    }
-                },
-                "isarray": {
-                    "version": "0.0.1",
-                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-                    "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-                    "dev": true
-                },
-                "readable-stream": {
-                    "version": "1.1.14",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-                    "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-                    "dev": true,
-                    "requires": {
-                        "core-util-is": "~1.0.0",
-                        "inherits": "~2.0.1",
-                        "isarray": "0.0.1",
-                        "string_decoder": "~0.10.x"
-                    }
-                },
-                "string_decoder": {
-                    "version": "0.10.31",
-                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-                    "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-                    "dev": true
-                }
-            }
-        },
         "nan": {
-            "version": "2.10.0",
-            "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
-            "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+            "version": "2.14.0",
+            "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+            "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
             "dev": true
         },
         "nanomatch": {
@@ -7660,15 +5790,15 @@
             }
         },
         "negotiator": {
-            "version": "0.6.1",
-            "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
-            "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+            "version": "0.6.2",
+            "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+            "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
             "dev": true
         },
         "neo-async": {
-            "version": "2.5.1",
-            "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
-            "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==",
+            "version": "2.6.1",
+            "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+            "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
             "dev": true
         },
         "next-tick": {
@@ -7678,9 +5808,9 @@
             "dev": true
         },
         "nice-try": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
-            "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==",
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+            "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
             "dev": true
         },
         "no-case": {
@@ -7699,9 +5829,9 @@
             "dev": true
         },
         "node-gyp": {
-            "version": "3.7.0",
-            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz",
-            "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==",
+            "version": "3.8.0",
+            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+            "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
             "dev": true,
             "requires": {
                 "fstream": "^1.0.0",
@@ -7711,7 +5841,7 @@
                 "nopt": "2 || 3",
                 "npmlog": "0 || 1 || 2 || 3 || 4",
                 "osenv": "0",
-                "request": ">=2.9.0 <2.82.0",
+                "request": "^2.87.0",
                 "rimraf": "2",
                 "semver": "~5.3.0",
                 "tar": "^2.0.0",
@@ -7727,9 +5857,9 @@
             }
         },
         "node-libs-browser": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
-            "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+            "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
             "dev": true,
             "requires": {
                 "assert": "^1.1.1",
@@ -7739,10 +5869,10 @@
                 "constants-browserify": "^1.0.0",
                 "crypto-browserify": "^3.11.0",
                 "domain-browser": "^1.1.1",
-                "events": "^1.0.0",
+                "events": "^3.0.0",
                 "https-browserify": "^1.0.0",
                 "os-browserify": "^0.3.0",
-                "path-browserify": "0.0.0",
+                "path-browserify": "0.0.1",
                 "process": "^0.11.10",
                 "punycode": "^1.2.4",
                 "querystring-es3": "^0.2.0",
@@ -7753,45 +5883,50 @@
                 "timers-browserify": "^2.0.4",
                 "tty-browserify": "0.0.0",
                 "url": "^0.11.0",
-                "util": "^0.10.3",
-                "vm-browserify": "0.0.4"
+                "util": "^0.11.0",
+                "vm-browserify": "^1.0.1"
             },
             "dependencies": {
-                "base64-js": {
-                    "version": "1.3.0",
-                    "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
-                    "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                    "dev": true
+                },
+                "punycode": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+                    "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
                     "dev": true
                 },
-                "buffer": {
-                    "version": "4.9.1",
-                    "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
-                    "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+                "util": {
+                    "version": "0.11.1",
+                    "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+                    "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
                     "dev": true,
                     "requires": {
-                        "base64-js": "^1.0.2",
-                        "ieee754": "^1.1.4",
-                        "isarray": "^1.0.0"
+                        "inherits": "2.0.3"
                     }
                 }
             }
         },
         "node-notifier": {
-            "version": "5.2.1",
-            "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz",
-            "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==",
+            "version": "5.4.3",
+            "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
+            "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
             "dev": true,
             "requires": {
                 "growly": "^1.3.0",
-                "semver": "^5.4.1",
+                "is-wsl": "^1.1.0",
+                "semver": "^5.5.0",
                 "shellwords": "^0.1.1",
                 "which": "^1.3.0"
             }
         },
         "node-sass": {
-            "version": "4.9.0",
-            "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz",
-            "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==",
+            "version": "4.12.0",
+            "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
+            "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
             "dev": true,
             "requires": {
                 "async-foreach": "^0.1.3",
@@ -7801,15 +5936,13 @@
                 "get-stdin": "^4.0.1",
                 "glob": "^7.0.3",
                 "in-publish": "^2.0.0",
-                "lodash.assign": "^4.2.0",
-                "lodash.clonedeep": "^4.3.2",
-                "lodash.mergewith": "^4.6.0",
+                "lodash": "^4.17.11",
                 "meow": "^3.7.0",
                 "mkdirp": "^0.5.1",
-                "nan": "^2.10.0",
-                "node-gyp": "^3.3.1",
+                "nan": "^2.13.2",
+                "node-gyp": "^3.8.0",
                 "npmlog": "^4.0.0",
-                "request": "~2.79.0",
+                "request": "^2.88.0",
                 "sass-graph": "^2.2.4",
                 "stdout-stream": "^1.4.0",
                 "true-case-path": "^1.0.2"
@@ -7852,12 +5985,6 @@
                 }
             }
         },
-        "node-status-codes": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
-            "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
-            "dev": true
-        },
         "nopt": {
             "version": "3.0.6",
             "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
@@ -7868,25 +5995,22 @@
             }
         },
         "normalize-package-data": {
-            "version": "2.4.0",
-            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
-            "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+            "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
             "dev": true,
             "requires": {
                 "hosted-git-info": "^2.1.4",
-                "is-builtin-module": "^1.0.0",
+                "resolve": "^1.10.0",
                 "semver": "2 || 3 || 4 || 5",
                 "validate-npm-package-license": "^3.0.1"
             }
         },
         "normalize-path": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-            "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-            "dev": true,
-            "requires": {
-                "remove-trailing-separator": "^1.0.1"
-            }
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+            "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+            "dev": true
         },
         "normalize-range": {
             "version": "0.1.2",
@@ -7906,16 +6030,6 @@
                 "sort-keys": "^1.0.0"
             }
         },
-        "npm-conf": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
-            "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
-            "dev": true,
-            "requires": {
-                "config-chain": "^1.1.11",
-                "pify": "^3.0.0"
-            }
-        },
         "npm-run-path": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -7937,15 +6051,6 @@
                 "set-blocking": "~2.0.0"
             }
         },
-        "nth-check": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
-            "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
-            "dev": true,
-            "requires": {
-                "boolbase": "~1.0.0"
-            }
-        },
         "num2fraction": {
             "version": "1.2.2",
             "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
@@ -7959,9 +6064,9 @@
             "dev": true
         },
         "oauth-sign": {
-            "version": "0.8.2",
-            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
-            "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
             "dev": true
         },
         "object-assign": {
@@ -7990,6 +6095,12 @@
                         "is-descriptor": "^0.1.0"
                     }
                 },
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -8002,9 +6113,9 @@
             }
         },
         "object-keys": {
-            "version": "1.0.12",
-            "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
-            "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+            "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
             "dev": true
         },
         "object-path": {
@@ -8022,26 +6133,6 @@
                 "isobject": "^3.0.0"
             }
         },
-        "object.getownpropertydescriptors": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
-            "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
-            "dev": true,
-            "requires": {
-                "define-properties": "^1.1.2",
-                "es-abstract": "^1.5.1"
-            }
-        },
-        "object.omit": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
-            "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-            "dev": true,
-            "requires": {
-                "for-own": "^0.1.4",
-                "is-extendable": "^0.1.1"
-            }
-        },
         "object.pick": {
             "version": "1.3.0",
             "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -8051,18 +6142,6 @@
                 "isobject": "^3.0.1"
             }
         },
-        "object.values": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
-            "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
-            "dev": true,
-            "requires": {
-                "define-properties": "^1.1.2",
-                "es-abstract": "^1.6.1",
-                "function-bind": "^1.1.0",
-                "has": "^1.0.1"
-            }
-        },
         "obuf": {
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
@@ -8079,9 +6158,9 @@
             }
         },
         "on-headers": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
-            "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+            "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
             "dev": true
         },
         "once": {
@@ -8093,49 +6172,22 @@
                 "wrappy": "1"
             }
         },
-        "onetime": {
-            "version": "1.1.0",
-            "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-            "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-            "dev": true
-        },
         "opn": {
-            "version": "5.3.0",
-            "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
-            "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+            "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
             "dev": true,
             "requires": {
                 "is-wsl": "^1.1.0"
             }
         },
-        "optipng-bin": {
-            "version": "3.1.4",
-            "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz",
-            "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=",
-            "dev": true,
-            "requires": {
-                "bin-build": "^2.0.0",
-                "bin-wrapper": "^3.0.0",
-                "logalot": "^2.0.0"
-            }
-        },
-        "ordered-read-streams": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
-            "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
-            "dev": true,
-            "requires": {
-                "is-stream": "^1.0.1",
-                "readable-stream": "^2.0.1"
-            }
-        },
         "original": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz",
-            "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+            "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
             "dev": true,
             "requires": {
-                "url-parse": "~1.4.0"
+                "url-parse": "^1.4.3"
             }
         },
         "os-browserify": {
@@ -8144,12 +6196,6 @@
             "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
             "dev": true
         },
-        "os-filter-obj": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz",
-            "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=",
-            "dev": true
-        },
         "os-homedir": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -8182,24 +6228,9 @@
             }
         },
         "osrm-text-instructions": {
-            "version": "0.13.1",
-            "resolved": "https://registry.npmjs.org/osrm-text-instructions/-/osrm-text-instructions-0.13.1.tgz",
-            "integrity": "sha512-42cS7J+BTo0d5QzcO1z79igOhrOrDp67kwD9L1ZJtEdv+2nCRcw2UDEakmkyLWVZiiWZnchTQQX2NAaYH1QIXA=="
-        },
-        "p-cancelable": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
-            "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
-            "dev": true
-        },
-        "p-event": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
-            "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
-            "dev": true,
-            "requires": {
-                "p-timeout": "^1.1.1"
-            }
+            "version": "0.13.3",
+            "resolved": "https://registry.npmjs.org/osrm-text-instructions/-/osrm-text-instructions-0.13.3.tgz",
+            "integrity": "sha512-r2T+024RtxM3SWkr5XzNthmgyPWiutfcHsTtQAHszpg9k0iWkyBeUxpzvgQz+IBa3sQYnxV4VF9s3wFNKEeliQ=="
         },
         "p-finally": {
             "version": "1.0.0",
@@ -8231,36 +6262,6 @@
             "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
             "dev": true
         },
-        "p-map-series": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz",
-            "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=",
-            "dev": true,
-            "requires": {
-                "p-reduce": "^1.0.0"
-            }
-        },
-        "p-pipe": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz",
-            "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=",
-            "dev": true
-        },
-        "p-reduce": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
-            "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
-            "dev": true
-        },
-        "p-timeout": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
-            "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
-            "dev": true,
-            "requires": {
-                "p-finally": "^1.0.0"
-            }
-        },
         "p-try": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
@@ -8268,9 +6269,9 @@
             "dev": true
         },
         "pako": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
-            "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+            "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
             "dev": true
         },
         "parallel-transform": {
@@ -8294,45 +6295,17 @@
             }
         },
         "parse-asn1": {
-            "version": "5.1.1",
-            "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
-            "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
+            "version": "5.1.4",
+            "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+            "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
             "dev": true,
             "requires": {
                 "asn1.js": "^4.0.0",
                 "browserify-aes": "^1.0.0",
                 "create-hash": "^1.1.0",
                 "evp_bytestokey": "^1.0.0",
-                "pbkdf2": "^3.0.3"
-            }
-        },
-        "parse-glob": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
-            "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-            "dev": true,
-            "requires": {
-                "glob-base": "^0.3.0",
-                "is-dotfile": "^1.0.0",
-                "is-extglob": "^1.0.0",
-                "is-glob": "^2.0.0"
-            },
-            "dependencies": {
-                "is-extglob": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
-                    "dev": true
-                },
-                "is-glob": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-                    "dev": true,
-                    "requires": {
-                        "is-extglob": "^1.0.0"
-                    }
-                }
+                "pbkdf2": "^3.0.3",
+                "safe-buffer": "^5.1.1"
             }
         },
         "parse-json": {
@@ -8345,9 +6318,9 @@
             }
         },
         "parseurl": {
-            "version": "1.3.2",
-            "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
-            "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+            "version": "1.3.3",
+            "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+            "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
             "dev": true
         },
         "pascalcase": {
@@ -8357,9 +6330,9 @@
             "dev": true
         },
         "path-browserify": {
-            "version": "0.0.0",
-            "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
-            "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+            "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
             "dev": true
         },
         "path-dirname": {
@@ -8390,427 +6363,98 @@
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
             "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-            "dev": true
-        },
-        "path-parse": {
-            "version": "1.0.5",
-            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
-            "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
-            "dev": true
-        },
-        "path-to-regexp": {
-            "version": "0.1.7",
-            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-            "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
-            "dev": true
-        },
-        "path-type": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
-            "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-            "dev": true,
-            "requires": {
-                "graceful-fs": "^4.1.2",
-                "pify": "^2.0.0",
-                "pinkie-promise": "^2.0.0"
-            },
-            "dependencies": {
-                "pify": {
-                    "version": "2.3.0",
-                    "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-                    "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-                    "dev": true
-                }
-            }
-        },
-        "pbkdf2": {
-            "version": "3.0.16",
-            "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
-            "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==",
-            "dev": true,
-            "requires": {
-                "create-hash": "^1.1.2",
-                "create-hmac": "^1.1.4",
-                "ripemd160": "^2.0.1",
-                "safe-buffer": "^5.0.1",
-                "sha.js": "^2.4.8"
-            }
-        },
-        "pend": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
-            "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
-            "dev": true
-        },
-        "pify": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-            "dev": true
-        },
-        "pinkie": {
-            "version": "2.0.4",
-            "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
-            "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
-            "dev": true
-        },
-        "pinkie-promise": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
-            "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
-            "dev": true,
-            "requires": {
-                "pinkie": "^2.0.0"
-            }
-        },
-        "pkg-dir": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
-            "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
-            "dev": true,
-            "requires": {
-                "find-up": "^2.1.0"
-            }
-        },
-        "pngquant-bin": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-4.0.0.tgz",
-            "integrity": "sha512-jhjMp87bvaUeQOfNaPhSKx3tLCEwRaAycgDpIhMflgFr2+vYhw4ZrcK06eQeYg4OprXPanFljXLl5VuuAP2IHw==",
-            "dev": true,
-            "requires": {
-                "bin-build": "^3.0.0",
-                "bin-wrapper": "^3.0.0",
-                "execa": "^0.10.0",
-                "logalot": "^2.0.0"
-            },
-            "dependencies": {
-                "bin-build": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
-                    "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==",
-                    "dev": true,
-                    "requires": {
-                        "decompress": "^4.0.0",
-                        "download": "^6.2.2",
-                        "execa": "^0.7.0",
-                        "p-map-series": "^1.0.0",
-                        "tempfile": "^2.0.0"
-                    },
-                    "dependencies": {
-                        "execa": {
-                            "version": "0.7.0",
-                            "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
-                            "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-                            "dev": true,
-                            "requires": {
-                                "cross-spawn": "^5.0.1",
-                                "get-stream": "^3.0.0",
-                                "is-stream": "^1.1.0",
-                                "npm-run-path": "^2.0.0",
-                                "p-finally": "^1.0.0",
-                                "signal-exit": "^3.0.0",
-                                "strip-eof": "^1.0.0"
-                            }
-                        },
-                        "get-stream": {
-                            "version": "3.0.0",
-                            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-                            "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-                            "dev": true
-                        }
-                    }
-                },
-                "caw": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
-                    "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
-                    "dev": true,
-                    "requires": {
-                        "get-proxy": "^2.0.0",
-                        "isurl": "^1.0.0-alpha5",
-                        "tunnel-agent": "^0.6.0",
-                        "url-to-options": "^1.0.1"
-                    }
-                },
-                "cross-spawn": {
-                    "version": "5.1.0",
-                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-                    "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-                    "dev": true,
-                    "requires": {
-                        "lru-cache": "^4.0.1",
-                        "shebang-command": "^1.2.0",
-                        "which": "^1.2.9"
-                    }
-                },
-                "decompress": {
-                    "version": "4.2.0",
-                    "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz",
-                    "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=",
-                    "dev": true,
-                    "requires": {
-                        "decompress-tar": "^4.0.0",
-                        "decompress-tarbz2": "^4.0.0",
-                        "decompress-targz": "^4.0.0",
-                        "decompress-unzip": "^4.0.1",
-                        "graceful-fs": "^4.1.10",
-                        "make-dir": "^1.0.0",
-                        "pify": "^2.3.0",
-                        "strip-dirs": "^2.0.0"
-                    }
-                },
-                "decompress-tar": {
-                    "version": "4.1.1",
-                    "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
-                    "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
-                    "dev": true,
-                    "requires": {
-                        "file-type": "^5.2.0",
-                        "is-stream": "^1.1.0",
-                        "tar-stream": "^1.5.2"
-                    }
-                },
-                "decompress-tarbz2": {
-                    "version": "4.1.1",
-                    "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
-                    "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
-                    "dev": true,
-                    "requires": {
-                        "decompress-tar": "^4.1.0",
-                        "file-type": "^6.1.0",
-                        "is-stream": "^1.1.0",
-                        "seek-bzip": "^1.0.5",
-                        "unbzip2-stream": "^1.0.9"
-                    },
-                    "dependencies": {
-                        "file-type": {
-                            "version": "6.2.0",
-                            "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
-                            "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
-                            "dev": true
-                        }
-                    }
-                },
-                "decompress-targz": {
-                    "version": "4.1.1",
-                    "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
-                    "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
-                    "dev": true,
-                    "requires": {
-                        "decompress-tar": "^4.1.1",
-                        "file-type": "^5.2.0",
-                        "is-stream": "^1.1.0"
-                    }
-                },
-                "decompress-unzip": {
-                    "version": "4.0.1",
-                    "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
-                    "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
-                    "dev": true,
-                    "requires": {
-                        "file-type": "^3.8.0",
-                        "get-stream": "^2.2.0",
-                        "pify": "^2.3.0",
-                        "yauzl": "^2.4.2"
-                    },
-                    "dependencies": {
-                        "file-type": {
-                            "version": "3.9.0",
-                            "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
-                            "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-                            "dev": true
-                        }
-                    }
-                },
-                "download": {
-                    "version": "6.2.5",
-                    "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
-                    "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
-                    "dev": true,
-                    "requires": {
-                        "caw": "^2.0.0",
-                        "content-disposition": "^0.5.2",
-                        "decompress": "^4.0.0",
-                        "ext-name": "^5.0.0",
-                        "file-type": "5.2.0",
-                        "filenamify": "^2.0.0",
-                        "get-stream": "^3.0.0",
-                        "got": "^7.0.0",
-                        "make-dir": "^1.0.0",
-                        "p-event": "^1.0.0",
-                        "pify": "^3.0.0"
-                    },
-                    "dependencies": {
-                        "get-stream": {
-                            "version": "3.0.0",
-                            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-                            "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-                            "dev": true
-                        },
-                        "pify": {
-                            "version": "3.0.0",
-                            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-                            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-                            "dev": true
-                        }
-                    }
-                },
-                "execa": {
-                    "version": "0.10.0",
-                    "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-                    "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
-                    "dev": true,
-                    "requires": {
-                        "cross-spawn": "^6.0.0",
-                        "get-stream": "^3.0.0",
-                        "is-stream": "^1.1.0",
-                        "npm-run-path": "^2.0.0",
-                        "p-finally": "^1.0.0",
-                        "signal-exit": "^3.0.0",
-                        "strip-eof": "^1.0.0"
-                    },
-                    "dependencies": {
-                        "cross-spawn": {
-                            "version": "6.0.5",
-                            "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-                            "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-                            "dev": true,
-                            "requires": {
-                                "nice-try": "^1.0.4",
-                                "path-key": "^2.0.1",
-                                "semver": "^5.5.0",
-                                "shebang-command": "^1.2.0",
-                                "which": "^1.2.9"
-                            }
-                        },
-                        "get-stream": {
-                            "version": "3.0.0",
-                            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-                            "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-                            "dev": true
-                        }
-                    }
-                },
-                "file-type": {
-                    "version": "5.2.0",
-                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
-                    "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
-                    "dev": true
-                },
-                "filename-reserved-regex": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
-                    "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=",
-                    "dev": true
-                },
-                "filenamify": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
-                    "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
-                    "dev": true,
-                    "requires": {
-                        "filename-reserved-regex": "^2.0.0",
-                        "strip-outer": "^1.0.0",
-                        "trim-repeated": "^1.0.0"
-                    }
-                },
-                "get-proxy": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
-                    "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
-                    "dev": true,
-                    "requires": {
-                        "npm-conf": "^1.1.0"
-                    }
-                },
-                "get-stream": {
-                    "version": "2.3.1",
-                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
-                    "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
-                    "dev": true,
-                    "requires": {
-                        "object-assign": "^4.0.1",
-                        "pinkie-promise": "^2.0.0"
-                    }
-                },
-                "got": {
-                    "version": "7.1.0",
-                    "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
-                    "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
-                    "dev": true,
-                    "requires": {
-                        "decompress-response": "^3.2.0",
-                        "duplexer3": "^0.1.4",
-                        "get-stream": "^3.0.0",
-                        "is-plain-obj": "^1.1.0",
-                        "is-retry-allowed": "^1.0.0",
-                        "is-stream": "^1.0.0",
-                        "isurl": "^1.0.0-alpha5",
-                        "lowercase-keys": "^1.0.0",
-                        "p-cancelable": "^0.3.0",
-                        "p-timeout": "^1.1.1",
-                        "safe-buffer": "^5.0.1",
-                        "timed-out": "^4.0.0",
-                        "url-parse-lax": "^1.0.0",
-                        "url-to-options": "^1.0.1"
-                    },
-                    "dependencies": {
-                        "get-stream": {
-                            "version": "3.0.0",
-                            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-                            "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-                            "dev": true
-                        }
-                    }
-                },
-                "is-natural-number": {
-                    "version": "4.0.1",
-                    "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
-                    "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=",
-                    "dev": true
-                },
+            "dev": true
+        },
+        "path-parse": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+            "dev": true
+        },
+        "path-to-regexp": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+            "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+            "dev": true
+        },
+        "path-type": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+            "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "pify": "^2.0.0",
+                "pinkie-promise": "^2.0.0"
+            },
+            "dependencies": {
                 "pify": {
                     "version": "2.3.0",
                     "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
                     "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
                     "dev": true
-                },
-                "strip-dirs": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
-                    "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
-                    "dev": true,
-                    "requires": {
-                        "is-natural-number": "^4.0.1"
-                    }
-                },
-                "timed-out": {
-                    "version": "4.0.1",
-                    "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
-                    "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
-                    "dev": true
-                },
-                "tunnel-agent": {
-                    "version": "0.6.0",
-                    "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-                    "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-                    "dev": true,
-                    "requires": {
-                        "safe-buffer": "^5.0.1"
-                    }
                 }
             }
         },
+        "pbkdf2": {
+            "version": "3.0.17",
+            "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+            "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+            "dev": true,
+            "requires": {
+                "create-hash": "^1.1.2",
+                "create-hmac": "^1.1.4",
+                "ripemd160": "^2.0.1",
+                "safe-buffer": "^5.0.1",
+                "sha.js": "^2.4.8"
+            }
+        },
+        "performance-now": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+            "dev": true
+        },
+        "pify": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+            "dev": true
+        },
+        "pinkie": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+            "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+            "dev": true
+        },
+        "pinkie-promise": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+            "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+            "dev": true,
+            "requires": {
+                "pinkie": "^2.0.0"
+            }
+        },
+        "pkg-dir": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+            "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+            "dev": true,
+            "requires": {
+                "find-up": "^2.1.0"
+            }
+        },
         "popper.js": {
-            "version": "1.14.4",
-            "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz",
-            "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=",
+            "version": "1.15.0",
+            "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz",
+            "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==",
             "dev": true
         },
         "portfinder": {
-            "version": "1.0.13",
-            "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
-            "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
+            "version": "1.0.23",
+            "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.23.tgz",
+            "integrity": "sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ==",
             "dev": true,
             "requires": {
                 "async": "^1.5.2",
@@ -9498,15 +7142,13 @@
             }
         },
         "postcss-load-config": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
-            "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+            "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
             "dev": true,
             "requires": {
-                "cosmiconfig": "^2.1.0",
-                "object-assign": "^4.1.0",
-                "postcss-load-options": "^1.2.0",
-                "postcss-load-plugins": "^2.3.0"
+                "cosmiconfig": "^5.0.0",
+                "import-cwd": "^2.0.0"
             }
         },
         "postcss-load-options": {
@@ -9517,6 +7159,29 @@
             "requires": {
                 "cosmiconfig": "^2.1.0",
                 "object-assign": "^4.1.0"
+            },
+            "dependencies": {
+                "cosmiconfig": {
+                    "version": "2.2.2",
+                    "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+                    "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+                    "dev": true,
+                    "requires": {
+                        "is-directory": "^0.3.1",
+                        "js-yaml": "^3.4.3",
+                        "minimist": "^1.2.0",
+                        "object-assign": "^4.1.0",
+                        "os-homedir": "^1.0.1",
+                        "parse-json": "^2.2.0",
+                        "require-from-string": "^1.1.0"
+                    }
+                },
+                "minimist": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                    "dev": true
+                }
             }
         },
         "postcss-load-plugins": {
@@ -9527,30 +7192,53 @@
             "requires": {
                 "cosmiconfig": "^2.1.1",
                 "object-assign": "^4.1.0"
+            },
+            "dependencies": {
+                "cosmiconfig": {
+                    "version": "2.2.2",
+                    "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+                    "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+                    "dev": true,
+                    "requires": {
+                        "is-directory": "^0.3.1",
+                        "js-yaml": "^3.4.3",
+                        "minimist": "^1.2.0",
+                        "object-assign": "^4.1.0",
+                        "os-homedir": "^1.0.1",
+                        "parse-json": "^2.2.0",
+                        "require-from-string": "^1.1.0"
+                    }
+                },
+                "minimist": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                    "dev": true
+                }
             }
         },
         "postcss-loader": {
-            "version": "2.1.5",
-            "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz",
-            "integrity": "sha512-pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==",
+            "version": "2.1.6",
+            "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz",
+            "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==",
             "dev": true,
             "requires": {
                 "loader-utils": "^1.1.0",
                 "postcss": "^6.0.0",
-                "postcss-load-config": "^1.2.0",
+                "postcss-load-config": "^2.0.0",
                 "schema-utils": "^0.4.0"
             },
             "dependencies": {
                 "ajv": {
-                    "version": "6.5.2",
-                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz",
-                    "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==",
+                    "version": "6.10.2",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+                    "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
                     "dev": true,
                     "requires": {
                         "fast-deep-equal": "^2.0.1",
                         "fast-json-stable-stringify": "^2.0.0",
                         "json-schema-traverse": "^0.4.1",
-                        "uri-js": "^4.2.1"
+                        "uri-js": "^4.2.2"
                     }
                 },
                 "fast-deep-equal": {
@@ -9566,9 +7254,9 @@
                     "dev": true
                 },
                 "schema-utils": {
-                    "version": "0.4.5",
-                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
-                    "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
+                    "version": "0.4.7",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+                    "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
                     "dev": true,
                     "requires": {
                         "ajv": "^6.1.0",
@@ -10106,9 +7794,9 @@
             }
         },
         "postcss-modules-extract-imports": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
-            "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
+            "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
             "dev": true,
             "requires": {
                 "postcss": "^6.0.1"
@@ -10736,9 +8424,9 @@
             }
         },
         "postcss-value-parser": {
-            "version": "3.3.0",
-            "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
-            "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+            "version": "3.3.1",
+            "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+            "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
             "dev": true
         },
         "postcss-zindex": {
@@ -10820,16 +8508,10 @@
             "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
             "dev": true
         },
-        "preserve": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
-            "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-            "dev": true
-        },
         "prettier": {
-            "version": "1.13.7",
-            "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz",
-            "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==",
+            "version": "1.18.2",
+            "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
+            "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
             "dev": true
         },
         "private": {
@@ -10845,9 +8527,9 @@
             "dev": true
         },
         "process-nextick-args": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
-            "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+            "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
             "dev": true
         },
         "promise-inflight": {
@@ -10856,20 +8538,14 @@
             "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
             "dev": true
         },
-        "proto-list": {
-            "version": "1.2.4",
-            "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
-            "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
-            "dev": true
-        },
         "proxy-addr": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
-            "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+            "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
             "dev": true,
             "requires": {
                 "forwarded": "~0.1.2",
-                "ipaddr.js": "1.6.0"
+                "ipaddr.js": "1.9.0"
             }
         },
         "prr": {
@@ -10884,17 +8560,24 @@
             "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
             "dev": true
         },
+        "psl": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
+            "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==",
+            "dev": true
+        },
         "public-encrypt": {
-            "version": "4.0.2",
-            "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
-            "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+            "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
             "dev": true,
             "requires": {
                 "bn.js": "^4.1.0",
                 "browserify-rsa": "^4.0.0",
                 "create-hash": "^1.1.0",
                 "parse-asn1": "^5.0.0",
-                "randombytes": "^2.0.1"
+                "randombytes": "^2.0.1",
+                "safe-buffer": "^5.1.2"
             }
         },
         "pump": {
@@ -10919,9 +8602,9 @@
             }
         },
         "punycode": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-            "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
             "dev": true
         },
         "q": {
@@ -10931,9 +8614,9 @@
             "dev": true
         },
         "qs": {
-            "version": "6.3.2",
-            "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
-            "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+            "version": "6.5.2",
+            "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+            "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
             "dev": true
         },
         "query-string": {
@@ -10959,34 +8642,15 @@
             "dev": true
         },
         "querystringify": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
-            "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+            "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
             "dev": true
         },
-        "randomatic": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
-            "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
-            "dev": true,
-            "requires": {
-                "is-number": "^4.0.0",
-                "kind-of": "^6.0.0",
-                "math-random": "^1.0.1"
-            },
-            "dependencies": {
-                "is-number": {
-                    "version": "4.0.0",
-                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
-                    "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
-                    "dev": true
-                }
-            }
-        },
         "randombytes": {
-            "version": "2.0.6",
-            "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
-            "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+            "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
             "dev": true,
             "requires": {
                 "safe-buffer": "^5.1.0"
@@ -11003,79 +8667,31 @@
             }
         },
         "range-parser": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
-            "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+            "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
             "dev": true
         },
         "raw-body": {
-            "version": "2.3.2",
-            "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
-            "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+            "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
             "dev": true,
             "requires": {
-                "bytes": "3.0.0",
-                "http-errors": "1.6.2",
-                "iconv-lite": "0.4.19",
+                "bytes": "3.1.0",
+                "http-errors": "1.7.2",
+                "iconv-lite": "0.4.24",
                 "unpipe": "1.0.0"
             },
             "dependencies": {
-                "depd": {
-                    "version": "1.1.1",
-                    "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
-                    "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
-                    "dev": true
-                },
-                "http-errors": {
-                    "version": "1.6.2",
-                    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
-                    "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
-                    "dev": true,
-                    "requires": {
-                        "depd": "1.1.1",
-                        "inherits": "2.0.3",
-                        "setprototypeof": "1.0.3",
-                        "statuses": ">= 1.3.1 < 2"
-                    }
-                },
-                "setprototypeof": {
-                    "version": "1.0.3",
-                    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
-                    "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
-                    "dev": true
-                }
-            }
-        },
-        "rc": {
-            "version": "1.2.8",
-            "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-            "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-            "dev": true,
-            "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "^1.2.0",
-                "strip-json-comments": "~2.0.1"
-            },
-            "dependencies": {
-                "minimist": {
-                    "version": "1.2.0",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                "bytes": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+                    "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
                     "dev": true
                 }
             }
         },
-        "read-all-stream": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
-            "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
-            "dev": true,
-            "requires": {
-                "pinkie-promise": "^2.0.0",
-                "readable-stream": "^2.0.0"
-            }
-        },
         "read-pkg": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -11134,15 +8750,14 @@
             }
         },
         "readdirp": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
-            "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+            "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
             "dev": true,
             "requires": {
-                "graceful-fs": "^4.1.2",
-                "minimatch": "^3.0.2",
-                "readable-stream": "^2.0.2",
-                "set-immediate-shim": "^1.0.1"
+                "graceful-fs": "^4.1.11",
+                "micromatch": "^3.1.10",
+                "readable-stream": "^2.0.2"
             }
         },
         "recast": {
@@ -11240,15 +8855,6 @@
                 "private": "^0.1.6"
             }
         },
-        "regex-cache": {
-            "version": "0.4.4",
-            "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
-            "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
-            "dev": true,
-            "requires": {
-                "is-equal-shallow": "^0.1.3"
-            }
-        },
         "regex-not": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
@@ -11260,9 +8866,9 @@
             }
         },
         "regex-parser": {
-            "version": "2.2.9",
-            "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.9.tgz",
-            "integrity": "sha512-VncXxOF6uFlYog5prG2j+e2UGJeam5MfNiJnB/qEgo4KTnMm2XrELCg4rNZ6IlaEUZnGlb8aB6lXowCRQtTkkA==",
+            "version": "2.2.10",
+            "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz",
+            "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==",
             "dev": true
         },
         "regexpu-core": {
@@ -11312,9 +8918,9 @@
             "dev": true
         },
         "repeat-element": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
-            "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+            "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
             "dev": true
         },
         "repeat-string": {
@@ -11332,38 +8938,32 @@
                 "is-finite": "^1.0.0"
             }
         },
-        "replace-ext": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
-            "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
-            "dev": true
-        },
         "request": {
-            "version": "2.79.0",
-            "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
-            "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+            "version": "2.88.0",
+            "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+            "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
             "dev": true,
             "requires": {
-                "aws-sign2": "~0.6.0",
-                "aws4": "^1.2.1",
-                "caseless": "~0.11.0",
-                "combined-stream": "~1.0.5",
-                "extend": "~3.0.0",
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
                 "forever-agent": "~0.6.1",
-                "form-data": "~2.1.1",
-                "har-validator": "~2.0.6",
-                "hawk": "~3.1.3",
-                "http-signature": "~1.1.0",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.0",
+                "http-signature": "~1.2.0",
                 "is-typedarray": "~1.0.0",
                 "isstream": "~0.1.2",
                 "json-stringify-safe": "~5.0.1",
-                "mime-types": "~2.1.7",
-                "oauth-sign": "~0.8.1",
-                "qs": "~6.3.0",
-                "stringstream": "~0.0.4",
-                "tough-cookie": "~2.3.0",
-                "tunnel-agent": "~0.4.1",
-                "uuid": "^3.0.0"
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.4.3",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
             }
         },
         "require-directory": {
@@ -11391,12 +8991,12 @@
             "dev": true
         },
         "resolve": {
-            "version": "1.8.1",
-            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
-            "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+            "version": "1.12.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+            "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
             "dev": true,
             "requires": {
-                "path-parse": "^1.0.5"
+                "path-parse": "^1.0.6"
             }
         },
         "resolve-cwd": {
@@ -11421,9 +9021,9 @@
             "dev": true
         },
         "resolve-url-loader": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz",
-            "integrity": "sha512-RaEUWgF/B6aTg9VKaOv2o6dfm5f75/lGh8S+SQwoMcBm48WkA2nhLR+V7KEawkxXjU4lLB16IVeHCe7F69nyVw==",
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.3.2.tgz",
+            "integrity": "sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g==",
             "dev": true,
             "requires": {
                 "adjust-sourcemap-loader": "^1.1.0",
@@ -11491,12 +9091,12 @@
             }
         },
         "rimraf": {
-            "version": "2.6.2",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
-            "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+            "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
             "dev": true,
             "requires": {
-                "glob": "^7.0.5"
+                "glob": "^7.1.3"
             }
         },
         "ripemd160": {
@@ -11649,26 +9249,6 @@
                 }
             }
         },
-        "seek-bzip": {
-            "version": "1.0.5",
-            "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
-            "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
-            "dev": true,
-            "requires": {
-                "commander": "~2.8.1"
-            },
-            "dependencies": {
-                "commander": {
-                    "version": "2.8.1",
-                    "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
-                    "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
-                    "dev": true,
-                    "requires": {
-                        "graceful-readlink": ">= 1.0.0"
-                    }
-                }
-            }
-        },
         "select-hose": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -11676,9 +9256,9 @@
             "dev": true
         },
         "selfsigned": {
-            "version": "1.10.3",
-            "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",
-            "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==",
+            "version": "1.10.4",
+            "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz",
+            "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==",
             "dev": true,
             "requires": {
                 "node-forge": "0.7.5"
@@ -11690,25 +9270,10 @@
             "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
             "dev": true
         },
-        "semver-regex": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
-            "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=",
-            "dev": true
-        },
-        "semver-truncate": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
-            "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
-            "dev": true,
-            "requires": {
-                "semver": "^5.3.0"
-            }
-        },
         "send": {
-            "version": "0.16.2",
-            "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
-            "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+            "version": "0.17.1",
+            "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+            "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
             "dev": true,
             "requires": {
                 "debug": "2.6.9",
@@ -11718,12 +9283,12 @@
                 "escape-html": "~1.0.3",
                 "etag": "~1.8.1",
                 "fresh": "0.5.2",
-                "http-errors": "~1.6.2",
-                "mime": "1.4.1",
-                "ms": "2.0.0",
+                "http-errors": "~1.7.2",
+                "mime": "1.6.0",
+                "ms": "2.1.1",
                 "on-finished": "~2.3.0",
-                "range-parser": "~1.2.0",
-                "statuses": "~1.4.0"
+                "range-parser": "~1.2.1",
+                "statuses": "~1.5.0"
             },
             "dependencies": {
                 "debug": {
@@ -11733,14 +9298,28 @@
                     "dev": true,
                     "requires": {
                         "ms": "2.0.0"
+                    },
+                    "dependencies": {
+                        "ms": {
+                            "version": "2.0.0",
+                            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                            "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+                            "dev": true
+                        }
                     }
+                },
+                "ms": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+                    "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+                    "dev": true
                 }
             }
         },
         "serialize-javascript": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
-            "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.8.0.tgz",
+            "integrity": "sha512-3tHgtF4OzDmeKYj6V9nSyceRS0UJ3C7VqyD2Yj28vC/z2j6jG5FmFGahOKMD9CrglxTm3tETr87jEypaYV8DUg==",
             "dev": true
         },
         "serve-index": {
@@ -11766,37 +9345,55 @@
                     "requires": {
                         "ms": "2.0.0"
                     }
+                },
+                "http-errors": {
+                    "version": "1.6.3",
+                    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+                    "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+                    "dev": true,
+                    "requires": {
+                        "depd": "~1.1.2",
+                        "inherits": "2.0.3",
+                        "setprototypeof": "1.1.0",
+                        "statuses": ">= 1.4.0 < 2"
+                    }
+                },
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+                    "dev": true
+                },
+                "setprototypeof": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+                    "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+                    "dev": true
                 }
             }
         },
         "serve-static": {
-            "version": "1.13.2",
-            "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
-            "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+            "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
             "dev": true,
             "requires": {
                 "encodeurl": "~1.0.2",
                 "escape-html": "~1.0.3",
-                "parseurl": "~1.3.2",
-                "send": "0.16.2"
+                "parseurl": "~1.3.3",
+                "send": "0.17.1"
             }
         },
         "set-blocking": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-            "dev": true
-        },
-        "set-immediate-shim": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
-            "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
             "dev": true
         },
         "set-value": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
-            "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+            "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
             "dev": true,
             "requires": {
                 "extend-shallow": "^2.0.1",
@@ -11823,9 +9420,9 @@
             "dev": true
         },
         "setprototypeof": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
-            "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+            "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
             "dev": true
         },
         "sha.js": {
@@ -12001,6 +9598,12 @@
                 "kind-of": "^3.2.0"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -12012,15 +9615,6 @@
                 }
             }
         },
-        "sntp": {
-            "version": "1.0.9",
-            "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
-            "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
-            "dev": true,
-            "requires": {
-                "hoek": "2.x.x"
-            }
-        },
         "sockjs": {
             "version": "0.3.19",
             "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
@@ -12032,9 +9626,9 @@
             }
         },
         "sockjs-client": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
-            "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
+            "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
             "dev": true,
             "requires": {
                 "debug": "^2.6.6",
@@ -12055,9 +9649,9 @@
                     }
                 },
                 "faye-websocket": {
-                    "version": "0.11.1",
-                    "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
-                    "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+                    "version": "0.11.3",
+                    "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+                    "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
                     "dev": true,
                     "requires": {
                         "websocket-driver": ">=0.5.1"
@@ -12074,19 +9668,10 @@
                 "is-plain-obj": "^1.0.0"
             }
         },
-        "sort-keys-length": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
-            "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
-            "dev": true,
-            "requires": {
-                "sort-keys": "^1.0.0"
-            }
-        },
         "source-list-map": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
-            "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+            "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
             "dev": true
         },
         "source-map": {
@@ -12131,16 +9716,10 @@
             "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
             "dev": true
         },
-        "sparkles": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
-            "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
-            "dev": true
-        },
         "spdx-correct": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
-            "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+            "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
             "dev": true,
             "requires": {
                 "spdx-expression-parse": "^3.0.0",
@@ -12148,9 +9727,9 @@
             }
         },
         "spdx-exceptions": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
-            "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+            "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
             "dev": true
         },
         "spdx-expression-parse": {
@@ -12164,58 +9743,79 @@
             }
         },
         "spdx-license-ids": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
-            "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
+            "version": "3.0.5",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+            "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
             "dev": true
         },
         "spdy": {
-            "version": "3.4.7",
-            "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
-            "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz",
+            "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==",
             "dev": true,
             "requires": {
-                "debug": "^2.6.8",
-                "handle-thing": "^1.2.5",
+                "debug": "^4.1.0",
+                "handle-thing": "^2.0.0",
                 "http-deceiver": "^1.2.7",
-                "safe-buffer": "^5.0.1",
                 "select-hose": "^2.0.0",
-                "spdy-transport": "^2.0.18"
+                "spdy-transport": "^3.0.0"
             },
             "dependencies": {
                 "debug": {
-                    "version": "2.6.9",
-                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
                     "dev": true,
                     "requires": {
-                        "ms": "2.0.0"
+                        "ms": "^2.1.1"
                     }
+                },
+                "ms": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+                    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+                    "dev": true
                 }
             }
         },
         "spdy-transport": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz",
-            "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==",
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+            "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
             "dev": true,
             "requires": {
-                "debug": "^2.6.8",
-                "detect-node": "^2.0.3",
+                "debug": "^4.1.0",
+                "detect-node": "^2.0.4",
                 "hpack.js": "^2.1.6",
-                "obuf": "^1.1.1",
-                "readable-stream": "^2.2.9",
-                "safe-buffer": "^5.0.1",
-                "wbuf": "^1.7.2"
+                "obuf": "^1.1.2",
+                "readable-stream": "^3.0.6",
+                "wbuf": "^1.7.3"
             },
             "dependencies": {
                 "debug": {
-                    "version": "2.6.9",
-                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
                     "dev": true,
                     "requires": {
-                        "ms": "2.0.0"
+                        "ms": "^2.1.1"
+                    }
+                },
+                "ms": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+                    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+                    "dev": true
+                },
+                "readable-stream": {
+                    "version": "3.4.0",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+                    "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+                    "dev": true,
+                    "requires": {
+                        "inherits": "^2.0.3",
+                        "string_decoder": "^1.1.1",
+                        "util-deprecate": "^1.0.1"
                     }
                 }
             }
@@ -12235,48 +9835,10 @@
             "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
             "dev": true
         },
-        "squeak": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
-            "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
-            "dev": true,
-            "requires": {
-                "chalk": "^1.0.0",
-                "console-stream": "^0.1.1",
-                "lpad-align": "^1.0.1"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-                    "dev": true
-                },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-                    "dev": true
-                }
-            }
-        },
         "sshpk": {
-            "version": "1.14.2",
-            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
-            "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+            "version": "1.16.1",
+            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
             "dev": true,
             "requires": {
                 "asn1": "~0.2.3",
@@ -12288,14 +9850,6 @@
                 "jsbn": "~0.1.0",
                 "safer-buffer": "^2.0.2",
                 "tweetnacl": "~0.14.0"
-            },
-            "dependencies": {
-                "assert-plus": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-                    "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-                    "dev": true
-                }
             }
         },
         "ssri": {
@@ -12307,24 +9861,12 @@
                 "safe-buffer": "^5.1.1"
             }
         },
-        "stable": {
-            "version": "0.1.8",
-            "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
-            "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
-            "dev": true
-        },
         "stackframe": {
             "version": "1.0.4",
             "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz",
             "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==",
             "dev": true
         },
-        "stat-mode": {
-            "version": "0.2.2",
-            "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
-            "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
-            "dev": true
-        },
         "static-extend": {
             "version": "0.1.2",
             "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -12347,44 +9889,34 @@
             }
         },
         "statuses": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
-            "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+            "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
             "dev": true
         },
         "stdout-stream": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
-            "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+            "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
             "dev": true,
             "requires": {
                 "readable-stream": "^2.0.1"
             }
         },
         "stream-browserify": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
-            "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+            "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
             "dev": true,
             "requires": {
                 "inherits": "~2.0.1",
                 "readable-stream": "^2.0.2"
             }
         },
-        "stream-combiner2": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
-            "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
-            "dev": true,
-            "requires": {
-                "duplexer2": "~0.1.0",
-                "readable-stream": "^2.0.2"
-            }
-        },
         "stream-each": {
-            "version": "1.2.2",
-            "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
-            "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+            "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
             "dev": true,
             "requires": {
                 "end-of-stream": "^1.1.0",
@@ -12452,12 +9984,6 @@
                 "safe-buffer": "~5.1.0"
             }
         },
-        "stringstream": {
-            "version": "0.0.6",
-            "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
-            "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
-            "dev": true
-        },
         "strip-ansi": {
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -12476,63 +10002,6 @@
                 "is-utf8": "^0.2.0"
             }
         },
-        "strip-bom-stream": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
-            "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
-            "dev": true,
-            "requires": {
-                "first-chunk-stream": "^1.0.0",
-                "strip-bom": "^2.0.0"
-            }
-        },
-        "strip-dirs": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
-            "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
-            "dev": true,
-            "requires": {
-                "chalk": "^1.0.0",
-                "get-stdin": "^4.0.1",
-                "is-absolute": "^0.1.5",
-                "is-natural-number": "^2.0.0",
-                "minimist": "^1.1.0",
-                "sum-up": "^1.0.1"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-                    "dev": true
-                },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "minimist": {
-                    "version": "1.2.0",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-                    "dev": true
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-                    "dev": true
-                }
-            }
-        },
         "strip-eof": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
@@ -12548,21 +10017,6 @@
                 "get-stdin": "^4.0.1"
             }
         },
-        "strip-json-comments": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-            "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-            "dev": true
-        },
-        "strip-outer": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
-            "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
-            "dev": true,
-            "requires": {
-                "escape-string-regexp": "^1.0.2"
-            }
-        },
         "style-loader": {
             "version": "0.18.2",
             "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz",
@@ -12573,46 +10027,10 @@
                 "schema-utils": "^0.3.0"
             }
         },
-        "sum-up": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
-            "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
-            "dev": true,
-            "requires": {
-                "chalk": "^1.0.0"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-                    "dev": true
-                },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-                    "dev": true
-                }
-            }
-        },
         "supports-color": {
-            "version": "5.4.0",
-            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
-            "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
             "dev": true,
             "requires": {
                 "has-flag": "^3.0.0"
@@ -12631,179 +10049,80 @@
                 "mkdirp": "~0.5.1",
                 "sax": "~1.2.1",
                 "whet.extend": "~0.9.9"
+            },
+            "dependencies": {
+                "js-yaml": {
+                    "version": "3.7.0",
+                    "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+                    "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+                    "dev": true,
+                    "requires": {
+                        "argparse": "^1.0.7",
+                        "esprima": "^2.6.0"
+                    }
+                }
             }
         },
         "tapable": {
-            "version": "0.2.8",
-            "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
-            "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
+            "version": "0.2.9",
+            "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
+            "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==",
             "dev": true
         },
         "tar": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
-            "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+            "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
             "dev": true,
             "requires": {
                 "block-stream": "*",
-                "fstream": "^1.0.2",
+                "fstream": "^1.0.12",
                 "inherits": "2"
             }
         },
-        "tar-stream": {
-            "version": "1.6.1",
-            "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz",
-            "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==",
-            "dev": true,
-            "requires": {
-                "bl": "^1.0.0",
-                "buffer-alloc": "^1.1.0",
-                "end-of-stream": "^1.0.0",
-                "fs-constants": "^1.0.0",
-                "readable-stream": "^2.3.0",
-                "to-buffer": "^1.1.0",
-                "xtend": "^4.0.0"
-            }
-        },
-        "temp-dir": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
-            "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
-            "dev": true
-        },
-        "tempfile": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
-            "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
-            "dev": true,
-            "requires": {
-                "temp-dir": "^1.0.0",
-                "uuid": "^3.0.1"
-            }
-        },
         "through": {
-            "version": "2.3.8",
-            "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-            "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-            "dev": true
-        },
-        "through2": {
-            "version": "0.6.5",
-            "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
-            "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
-            "dev": true,
-            "requires": {
-                "readable-stream": ">=1.0.33-1 <1.1.0-0",
-                "xtend": ">=4.0.0 <4.1.0-0"
-            },
-            "dependencies": {
-                "isarray": {
-                    "version": "0.0.1",
-                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-                    "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-                    "dev": true
-                },
-                "readable-stream": {
-                    "version": "1.0.34",
-                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
-                    "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
-                    "dev": true,
-                    "requires": {
-                        "core-util-is": "~1.0.0",
-                        "inherits": "~2.0.1",
-                        "isarray": "0.0.1",
-                        "string_decoder": "~0.10.x"
-                    }
-                },
-                "string_decoder": {
-                    "version": "0.10.31",
-                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-                    "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-                    "dev": true
-                }
-            }
+            "version": "2.3.8",
+            "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+            "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+            "dev": true
         },
-        "through2-filter": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
-            "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
+        "through2": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+            "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
             "dev": true,
             "requires": {
-                "through2": "~2.0.0",
-                "xtend": "~4.0.0"
-            },
-            "dependencies": {
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
-                    }
-                }
+                "readable-stream": "~2.3.6",
+                "xtend": "~4.0.1"
             }
         },
         "thunky": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
-            "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
+            "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
             "dev": true
         },
         "time-stamp": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
-            "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
-            "dev": true
-        },
-        "timed-out": {
-            "version": "3.1.3",
-            "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
-            "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=",
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz",
+            "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==",
             "dev": true
         },
         "timers-browserify": {
-            "version": "2.0.10",
-            "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
-            "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+            "version": "2.0.11",
+            "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+            "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
             "dev": true,
             "requires": {
                 "setimmediate": "^1.0.4"
             }
         },
-        "to-absolute-glob": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
-            "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
-            "dev": true,
-            "requires": {
-                "extend-shallow": "^2.0.1"
-            },
-            "dependencies": {
-                "extend-shallow": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-                    "dev": true,
-                    "requires": {
-                        "is-extendable": "^0.1.0"
-                    }
-                }
-            }
-        },
         "to-arraybuffer": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
             "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
             "dev": true
         },
-        "to-buffer": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
-            "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
-            "dev": true
-        },
         "to-fast-properties": {
             "version": "1.0.3",
             "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
@@ -12819,6 +10138,12 @@
                 "kind-of": "^3.0.2"
             },
             "dependencies": {
+                "is-buffer": {
+                    "version": "1.1.6",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+                    "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+                    "dev": true
+                },
                 "kind-of": {
                     "version": "3.2.2",
                     "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -12852,13 +10177,28 @@
                 "repeat-string": "^1.6.1"
             }
         },
+        "toidentifier": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+            "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+            "dev": true
+        },
         "tough-cookie": {
-            "version": "2.3.4",
-            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-            "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+            "version": "2.4.3",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+            "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
             "dev": true,
             "requires": {
+                "psl": "^1.1.24",
                 "punycode": "^1.4.1"
+            },
+            "dependencies": {
+                "punycode": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+                    "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+                    "dev": true
+                }
             }
         },
         "trim-newlines": {
@@ -12867,15 +10207,6 @@
             "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
             "dev": true
         },
-        "trim-repeated": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
-            "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
-            "dev": true,
-            "requires": {
-                "escape-string-regexp": "^1.0.2"
-            }
-        },
         "trim-right": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
@@ -12883,27 +10214,12 @@
             "dev": true
         },
         "true-case-path": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
-            "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+            "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
             "dev": true,
             "requires": {
-                "glob": "^6.0.4"
-            },
-            "dependencies": {
-                "glob": {
-                    "version": "6.0.4",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
-                    "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
-                    "dev": true,
-                    "requires": {
-                        "inflight": "^1.0.4",
-                        "inherits": "2",
-                        "minimatch": "2 || 3",
-                        "once": "^1.3.0",
-                        "path-is-absolute": "^1.0.0"
-                    }
-                }
+                "glob": "^7.1.2"
             }
         },
         "tty-browserify": {
@@ -12913,26 +10229,34 @@
             "dev": true
         },
         "tunnel-agent": {
-            "version": "0.4.3",
-            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
-            "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
-            "dev": true
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "^5.0.1"
+            }
         },
         "tweetnacl": {
             "version": "0.14.5",
             "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
             "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-            "dev": true,
-            "optional": true
+            "dev": true
+        },
+        "type": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/type/-/type-1.0.3.tgz",
+            "integrity": "sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==",
+            "dev": true
         },
         "type-is": {
-            "version": "1.6.16",
-            "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
-            "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+            "version": "1.6.18",
+            "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+            "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
             "dev": true,
             "requires": {
                 "media-typer": "0.3.0",
-                "mime-types": "~2.1.18"
+                "mime-types": "~2.1.24"
             }
         },
         "typedarray": {
@@ -12997,9 +10321,9 @@
             "optional": true
         },
         "uglifyjs-webpack-plugin": {
-            "version": "1.2.7",
-            "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz",
-            "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==",
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
+            "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
             "dev": true,
             "requires": {
                 "cacache": "^10.0.4",
@@ -13013,15 +10337,15 @@
             },
             "dependencies": {
                 "ajv": {
-                    "version": "6.5.2",
-                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz",
-                    "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==",
+                    "version": "6.10.2",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+                    "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
                     "dev": true,
                     "requires": {
                         "fast-deep-equal": "^2.0.1",
                         "fast-json-stable-stringify": "^2.0.0",
                         "json-schema-traverse": "^0.4.1",
-                        "uri-js": "^4.2.1"
+                        "uri-js": "^4.2.2"
                     }
                 },
                 "commander": {
@@ -13043,9 +10367,9 @@
                     "dev": true
                 },
                 "schema-utils": {
-                    "version": "0.4.5",
-                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
-                    "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
+                    "version": "0.4.7",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+                    "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
                     "dev": true,
                     "requires": {
                         "ajv": "^6.1.0",
@@ -13064,49 +10388,16 @@
                 }
             }
         },
-        "unbzip2-stream": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz",
-            "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==",
-            "dev": true,
-            "requires": {
-                "buffer": "^3.0.1",
-                "through": "^2.3.6"
-            }
-        },
         "union-value": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
-            "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+            "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
             "dev": true,
             "requires": {
                 "arr-union": "^3.1.0",
                 "get-value": "^2.0.6",
                 "is-extendable": "^0.1.1",
-                "set-value": "^0.4.3"
-            },
-            "dependencies": {
-                "extend-shallow": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-                    "dev": true,
-                    "requires": {
-                        "is-extendable": "^0.1.0"
-                    }
-                },
-                "set-value": {
-                    "version": "0.4.3",
-                    "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
-                    "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
-                    "dev": true,
-                    "requires": {
-                        "extend-shallow": "^2.0.1",
-                        "is-extendable": "^0.1.1",
-                        "is-plain-object": "^2.0.1",
-                        "to-object-path": "^0.3.0"
-                    }
-                }
+                "set-value": "^2.0.1"
             }
         },
         "uniq": {
@@ -13122,33 +10413,23 @@
             "dev": true
         },
         "unique-filename": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
-            "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+            "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
             "dev": true,
             "requires": {
                 "unique-slug": "^2.0.0"
             }
         },
         "unique-slug": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
-            "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+            "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
             "dev": true,
             "requires": {
                 "imurmurhash": "^0.1.4"
             }
         },
-        "unique-stream": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
-            "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
-            "dev": true,
-            "requires": {
-                "json-stable-stringify": "^1.0.0",
-                "through2-filter": "^2.0.0"
-            }
-        },
         "universalify": {
             "version": "0.1.2",
             "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -13161,12 +10442,6 @@
             "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
             "dev": true
         },
-        "unquote": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
-            "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
-            "dev": true
-        },
         "unset-value": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
@@ -13207,16 +10482,10 @@
                 }
             }
         },
-        "unzip-response": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
-            "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
-            "dev": true
-        },
         "upath": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
-            "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+            "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
             "dev": true
         },
         "upper-case": {
@@ -13232,14 +10501,6 @@
             "dev": true,
             "requires": {
                 "punycode": "^2.1.0"
-            },
-            "dependencies": {
-                "punycode": {
-                    "version": "2.1.1",
-                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-                    "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-                    "dev": true
-                }
             }
         },
         "urix": {
@@ -13267,47 +10528,20 @@
             }
         },
         "url-parse": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz",
-            "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==",
+            "version": "1.4.7",
+            "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+            "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
             "dev": true,
             "requires": {
-                "querystringify": "^2.0.0",
+                "querystringify": "^2.1.1",
                 "requires-port": "^1.0.0"
             }
         },
-        "url-parse-lax": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
-            "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
-            "dev": true,
-            "requires": {
-                "prepend-http": "^1.0.1"
-            }
-        },
-        "url-regex": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz",
-            "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=",
-            "dev": true,
-            "requires": {
-                "ip-regex": "^1.0.1"
-            }
-        },
-        "url-to-options": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
-            "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
-            "dev": true
-        },
         "use": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
-            "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
-            "dev": true,
-            "requires": {
-                "kind-of": "^6.0.2"
-            }
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+            "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+            "dev": true
         },
         "util": {
             "version": "0.10.3",
@@ -13332,16 +10566,6 @@
             "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
             "dev": true
         },
-        "util.promisify": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
-            "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
-            "dev": true,
-            "requires": {
-                "define-properties": "^1.1.2",
-                "object.getownpropertydescriptors": "^2.0.3"
-            }
-        },
         "utils-merge": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -13349,21 +10573,15 @@
             "dev": true
         },
         "uuid": {
-            "version": "3.3.2",
-            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-            "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-            "dev": true
-        },
-        "vali-date": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
-            "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
+            "version": "3.3.3",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+            "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
             "dev": true
         },
         "validate-npm-package-license": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
-            "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+            "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
             "dev": true,
             "requires": {
                 "spdx-correct": "^3.0.0",
@@ -13377,9 +10595,9 @@
             "dev": true
         },
         "vendors": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
-            "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==",
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz",
+            "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==",
             "dev": true
         },
         "verror": {
@@ -13391,107 +10609,30 @@
                 "assert-plus": "^1.0.0",
                 "core-util-is": "1.0.2",
                 "extsprintf": "^1.2.0"
-            },
-            "dependencies": {
-                "assert-plus": {
-                    "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-                    "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-                    "dev": true
-                }
-            }
-        },
-        "vinyl": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
-            "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
-            "dev": true,
-            "requires": {
-                "clone": "^1.0.0",
-                "clone-stats": "^0.0.1",
-                "replace-ext": "0.0.1"
-            },
-            "dependencies": {
-                "replace-ext": {
-                    "version": "0.0.1",
-                    "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
-                    "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
-                    "dev": true
-                }
-            }
-        },
-        "vinyl-assign": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
-            "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
-            "dev": true,
-            "requires": {
-                "object-assign": "^4.0.1",
-                "readable-stream": "^2.0.0"
-            }
-        },
-        "vinyl-fs": {
-            "version": "2.4.4",
-            "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
-            "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
-            "dev": true,
-            "requires": {
-                "duplexify": "^3.2.0",
-                "glob-stream": "^5.3.2",
-                "graceful-fs": "^4.0.0",
-                "gulp-sourcemaps": "1.6.0",
-                "is-valid-glob": "^0.3.0",
-                "lazystream": "^1.0.0",
-                "lodash.isequal": "^4.0.0",
-                "merge-stream": "^1.0.0",
-                "mkdirp": "^0.5.0",
-                "object-assign": "^4.0.0",
-                "readable-stream": "^2.0.4",
-                "strip-bom": "^2.0.0",
-                "strip-bom-stream": "^1.0.0",
-                "through2": "^2.0.0",
-                "through2-filter": "^2.0.0",
-                "vali-date": "^1.0.0",
-                "vinyl": "^1.0.0"
-            },
-            "dependencies": {
-                "through2": {
-                    "version": "2.0.3",
-                    "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-                    "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-                    "dev": true,
-                    "requires": {
-                        "readable-stream": "^2.1.5",
-                        "xtend": "~4.0.1"
-                    }
-                }
             }
         },
         "vm-browserify": {
-            "version": "0.0.4",
-            "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
-            "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
-            "dev": true,
-            "requires": {
-                "indexof": "0.0.1"
-            }
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
+            "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
+            "dev": true
         },
         "vue": {
-            "version": "2.5.16",
-            "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
-            "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==",
+            "version": "2.6.10",
+            "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
+            "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==",
             "dev": true
         },
         "vue-hot-reload-api": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz",
-            "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==",
+            "version": "2.3.3",
+            "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz",
+            "integrity": "sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g==",
             "dev": true
         },
         "vue-loader": {
-            "version": "13.7.2",
-            "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.2.tgz",
-            "integrity": "sha512-pgFWFsUjYO1v+J+3r7K0Q4lCp0eOyI24/q9j+cCudWyCTjgpjpcAa1MdwjlDUUettt9xkkUBbQ9fkAN1NC8t9w==",
+            "version": "13.7.3",
+            "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz",
+            "integrity": "sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w==",
             "dev": true,
             "requires": {
                 "consolidate": "^0.14.0",
@@ -13507,6 +10648,41 @@
                 "vue-hot-reload-api": "^2.2.0",
                 "vue-style-loader": "^3.0.0",
                 "vue-template-es2015-compiler": "^1.6.0"
+            },
+            "dependencies": {
+                "cosmiconfig": {
+                    "version": "2.2.2",
+                    "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+                    "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+                    "dev": true,
+                    "requires": {
+                        "is-directory": "^0.3.1",
+                        "js-yaml": "^3.4.3",
+                        "minimist": "^1.2.0",
+                        "object-assign": "^4.1.0",
+                        "os-homedir": "^1.0.1",
+                        "parse-json": "^2.2.0",
+                        "require-from-string": "^1.1.0"
+                    }
+                },
+                "minimist": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+                    "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+                    "dev": true
+                },
+                "postcss-load-config": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
+                    "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+                    "dev": true,
+                    "requires": {
+                        "cosmiconfig": "^2.1.0",
+                        "object-assign": "^4.1.0",
+                        "postcss-load-options": "^1.2.0",
+                        "postcss-load-plugins": "^2.3.0"
+                    }
+                }
             }
         },
         "vue-style-loader": {
@@ -13520,9 +10696,9 @@
             }
         },
         "vue-template-compiler": {
-            "version": "2.5.16",
-            "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz",
-            "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==",
+            "version": "2.6.10",
+            "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz",
+            "integrity": "sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==",
             "dev": true,
             "requires": {
                 "de-indent": "^1.0.2",
@@ -13530,20 +10706,11 @@
             }
         },
         "vue-template-es2015-compiler": {
-            "version": "1.6.0",
-            "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz",
-            "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==",
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+            "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
             "dev": true
         },
-        "ware": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
-            "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
-            "dev": true,
-            "requires": {
-                "wrap-fn": "^0.1.0"
-            }
-        },
         "watchpack": {
             "version": "1.6.0",
             "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
@@ -13595,15 +10762,15 @@
             },
             "dependencies": {
                 "ajv": {
-                    "version": "6.5.2",
-                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz",
-                    "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==",
+                    "version": "6.10.2",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+                    "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
                     "dev": true,
                     "requires": {
                         "fast-deep-equal": "^2.0.1",
                         "fast-json-stable-stringify": "^2.0.0",
                         "json-schema-traverse": "^0.4.1",
-                        "uri-js": "^4.2.1"
+                        "uri-js": "^4.2.2"
                     }
                 },
                 "fast-deep-equal": {
@@ -13669,39 +10836,25 @@
                 "path-is-absolute": "^1.0.0",
                 "range-parser": "^1.0.3",
                 "time-stamp": "^2.0.0"
-            },
-            "dependencies": {
-                "mime": {
-                    "version": "1.6.0",
-                    "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
-                    "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-                    "dev": true
-                },
-                "time-stamp": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
-                    "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
-                    "dev": true
-                }
             }
         },
         "webpack-dev-server": {
-            "version": "2.11.2",
-            "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz",
-            "integrity": "sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA==",
+            "version": "2.11.5",
+            "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz",
+            "integrity": "sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw==",
             "dev": true,
             "requires": {
                 "ansi-html": "0.0.7",
                 "array-includes": "^3.0.3",
                 "bonjour": "^3.5.0",
-                "chokidar": "^2.0.0",
-                "compression": "^1.5.2",
+                "chokidar": "^2.1.2",
+                "compression": "^1.7.3",
                 "connect-history-api-fallback": "^1.3.0",
                 "debug": "^3.1.0",
                 "del": "^3.0.0",
                 "express": "^4.16.2",
                 "html-entities": "^1.2.0",
-                "http-proxy-middleware": "~0.17.4",
+                "http-proxy-middleware": "^0.19.1",
                 "import-local": "^1.0.0",
                 "internal-ip": "1.2.0",
                 "ip": "^1.1.5",
@@ -13710,10 +10863,10 @@
                 "opn": "^5.1.0",
                 "portfinder": "^1.0.9",
                 "selfsigned": "^1.9.1",
-                "serve-index": "^1.7.2",
+                "serve-index": "^1.9.1",
                 "sockjs": "0.3.19",
-                "sockjs-client": "1.1.4",
-                "spdy": "^3.4.1",
+                "sockjs-client": "1.1.5",
+                "spdy": "^4.0.0",
                 "strip-ansi": "^3.0.0",
                 "supports-color": "^5.1.0",
                 "webpack-dev-middleware": "1.12.2",
@@ -13779,18 +10932,18 @@
             }
         },
         "webpack-merge": {
-            "version": "4.1.3",
-            "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.3.tgz",
-            "integrity": "sha512-zxwAIGK7nKdu5CIZL0BjTQoq3elV0t0MfB7rUC1zj668geid52abs6hN/ACwZdK6LeMS8dC9B6WmtF978zH5mg==",
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz",
+            "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==",
             "dev": true,
             "requires": {
                 "lodash": "^4.17.5"
             }
         },
         "webpack-notifier": {
-            "version": "1.6.0",
-            "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.6.0.tgz",
-            "integrity": "sha1-/6yOVf+MRpdSuMG7sBGhbxCYbgI=",
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.8.0.tgz",
+            "integrity": "sha512-I6t76NoPe5DZCCm5geELmDV2wlJ89LbU425uN6T2FG8Ywrrt1ZcUMz6g8yWGNg4pttqTPFQJYUPjWAlzUEQ+cQ==",
             "dev": true,
             "requires": {
                 "node-notifier": "^5.1.2",
@@ -13799,9 +10952,9 @@
             }
         },
         "webpack-sources": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
-            "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
+            "version": "1.4.3",
+            "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+            "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
             "dev": true,
             "requires": {
                 "source-list-map": "^2.0.0",
@@ -13809,12 +10962,13 @@
             }
         },
         "websocket-driver": {
-            "version": "0.7.0",
-            "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
-            "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+            "version": "0.7.3",
+            "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+            "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
             "dev": true,
             "requires": {
-                "http-parser-js": ">=0.4.0",
+                "http-parser-js": ">=0.4.0 <0.4.11",
+                "safe-buffer": ">=5.1.0",
                 "websocket-extensions": ">=0.1.1"
             }
         },
@@ -13867,9 +11021,9 @@
             "dev": true
         },
         "worker-farm": {
-            "version": "1.6.0",
-            "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
-            "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+            "version": "1.7.0",
+            "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+            "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
             "dev": true,
             "requires": {
                 "errno": "~0.1.7"
@@ -13907,23 +11061,6 @@
                 }
             }
         },
-        "wrap-fn": {
-            "version": "0.1.5",
-            "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
-            "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
-            "dev": true,
-            "requires": {
-                "co": "3.1.0"
-            },
-            "dependencies": {
-                "co": {
-                    "version": "3.1.0",
-                    "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
-                    "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
-                    "dev": true
-                }
-            }
-        },
         "wrappy": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -13931,9 +11068,9 @@
             "dev": true
         },
         "xtend": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
-            "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+            "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
             "dev": true
         },
         "y18n": {
@@ -14073,16 +11210,6 @@
                     "dev": true
                 }
             }
-        },
-        "yauzl": {
-            "version": "2.9.2",
-            "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.2.tgz",
-            "integrity": "sha1-T7G8euH8L1cDe1SvasyP4QMcW3c=",
-            "dev": true,
-            "requires": {
-                "buffer-crc32": "~0.2.3",
-                "fd-slicer": "~1.1.0"
-            }
         }
     }
 }
diff --git a/package.json b/package.json
index 74e6ae4197c7831eb3fdd504c480caf9d4a3b219..1cfa0c14f313f5603d9ad086e6399ab59d194701 100644
--- a/package.json
+++ b/package.json
@@ -10,16 +10,16 @@
         "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
     },
     "devDependencies": {
-        "axios": "^0.18",
-        "bootstrap": "^4.0.0",
-        "popper.js": "^1.12",
-        "cross-env": "^5.1",
-        "jquery": "^3.2",
-        "laravel-mix": "^2.0",
-        "lodash": "^4.17.4",
-        "vue": "^2.5.7"
+        "axios": "^0.18.1",
+        "bootstrap": "^4.3.1",
+        "cross-env": "^5.2.1",
+        "jquery": "^3.4.1",
+        "laravel-mix": "^2.1.14",
+        "lodash": "^4.17.15",
+        "popper.js": "^1.15.0",
+        "vue": "^2.6.10"
     },
     "dependencies": {
-        "osrm-text-instructions": "^0.13.1"
+        "osrm-text-instructions": "^0.13.3"
     }
 }
diff --git a/public/.htaccess b/public/.htaccess
deleted file mode 100644
index 903f6392ca410eceab8338afb27da72e985b3cc0..0000000000000000000000000000000000000000
--- a/public/.htaccess
+++ /dev/null
@@ -1,20 +0,0 @@
-<IfModule mod_rewrite.c>
-    <IfModule mod_negotiation.c>
-        Options -MultiViews
-    </IfModule>
-
-    RewriteEngine On
-
-    # Redirect Trailing Slashes If Not A Folder...
-    RewriteCond %{REQUEST_FILENAME} !-d
-    RewriteRule ^(.*)/$ /$1 [L,R=301]
-
-    # Handle Front Controller...
-    RewriteCond %{REQUEST_FILENAME} !-d
-    RewriteCond %{REQUEST_FILENAME} !-f
-    RewriteRule ^ index.php [L]
-
-    # Handle Authorization Header
-    RewriteCond %{HTTP:Authorization} .
-    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
-</IfModule>
diff --git a/resources/assets/css/offline-module.css b/resources/assets/css/offline-module.css
index 8020508d1751250f2ea1367edad132fbd1daa56a..168e20b1193c467da21dfea87c943c5d277fc94e 100644
--- a/resources/assets/css/offline-module.css
+++ b/resources/assets/css/offline-module.css
@@ -1,155 +1,248 @@
 #offline-addon {
-	display: none;
+  display: none;
+  z-index: 20003;
+  position: absolute;
+}
+
+@media (max-width: 767px) {
+  #offline-addon {
+    width: 100%;
+  }
 }
 
 #offline-addon .auto-updates {
-    display: flex;
-    align-items: center;
-    border: 1px solid #dfdfdf;
-    border-left: 0;
-    border-right: 0;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+      -ms-flex-align: center;
+          align-items: center;
+  border: 1px solid #dfdfdf;
+  border-left: 0;
+  border-right: 0;
 }
 
 #offline-addon .auto-updates > .option {
-    margin: 10px;
-        height: 20px;
+  margin: 10px;
+  height: 20px;
 }
 
 #offline-addon .auto-updates .text {
-    flex-grow: 1;
-    text-align: center;
-    padding: 10px 0;
-    border-left: 1px solid #dfdfdf;
+  -webkit-box-flex: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1;
+  text-align: center;
+  padding: 10px 0;
+  border-left: 1px solid #dfdfdf;
+}
+
+#offline-addon .area-selection {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+      -ms-flex-align: center;
+          align-items: center;
+  text-align: center;
+  font-weight: bold;
+  font-size: 12px;
+}
+
+#offline-addon .area-selection .download-information {
+  padding: 0 10px;
+}
+
+#offline-addon .area-selection .text {
+  margin: 0px 10px;
+  -webkit-box-flex: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1;
 }
 
-@media(max-width: 767px){
-	#offline-addon {
-		width: 100%;
-	}
+#offline-addon .area-selection #start-download {
+  padding: 5px;
+  color: green;
+  font-size: 20px;
 }
 
 #offline-addon .area-selection-info {
-    display: none;
-    font-weight: bold;
-    font-size: 11px;
+  display: none;
+  font-weight: bold;
+  font-size: 11px;
 }
 
 #offline-addon > #heading {
-	display:flex;
-	justify-content: space-between;
-	background-color: rgb(255,128,0);
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-pack: justify;
+      -ms-flex-pack: justify;
+          justify-content: space-between;
+  background-color: #ff8000;
 }
 
 #offline-addon > #heading > .exit {
-	padding:7px;
-	color: white;
+  padding: 7px;
+  color: white;
 }
 
-#offline-addon .progress-bar {
-    min-width: 40px;
+#offline-addon > #heading > .logo {
+  -ms-flex-item-align: center;
+      align-self: center;
+  padding: 7px;
 }
 
-
-#offline-addon > #heading > .logo {
-	align-self: center;
-	padding: 7px;
+#offline-addon .progress {
+  margin-left: 5px;
 }
 
 #offline-addon .add-area {
-	text-align: center;
-    padding: 10px 20px;
-    border-top: 1px solid #e7e7e7;
+  text-align: center;
+  padding: 10px 20px;
+  border-top: 1px solid #e7e7e7;
 }
 
 #offline-addon .add-area a:visited {
-	color: #337ab7
+  color: #337ab7;
 }
 
-#offline-addon .downloaded-areas, #offline-addon .available-areas {
-	list-style-type: none;
-    margin-bottom: 0;
+#offline-addon .add-area .downloaded-areas,
+#offline-addon .available-areas {
+  list-style-type: none;
+  margin-bottom: 0;
 }
 
 #offline-addon .download-progress {
-    display: flex;
-    margin: 0 10px;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  margin: 0 10px;
 }
 
 #offline-addon .download-progress > .progress {
-    flex-grow: 1;
+  -webkit-box-flex: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1;
 }
 
 #offline-addon .download-progress .abort {
-    margin: 0 10px;
-    color: red;
+  margin: 0 10px;
+  color: red;
+}
+
+#offline-addon .download-progress .downloaded-areas > div.placeholder,
+#offline-addon .available-areas > div.placeholder {
+  text-align: center;
+  padding-bottom: 5px;
 }
 
-#offline-addon .downloaded-areas > div.placeholder, #offline-addon .available-areas > div.placeholder {
-    text-align: center;
-    padding-bottom:5px;
+#offline-addon .available-areas > div {
+  display: none;
 }
 
-#offline-addon .area{
-    text-align: left;
-    display: flex;
-    align-items: center;
-    padding: 5px;
+#offline-addon .area {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+      -ms-flex-align: center;
+          align-items: center;
+  text-align: center;
+  font-weight: bold;
+  font-size: 12px;
+  border-bottom: 1px solid #dfdfdf;
+  padding: 0 10px;
 }
 
-#offline-addon .area > .texts {
-    flex-grow: 1;
+#offline-addon .area#area-template {
+  display: none;
 }
 
-#offline-addon .area > .texts > .name {
-    font-weight: bold;
+#offline-addon .area > .texts {
+  -webkit-box-flex: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1;
 }
 
 #offline-addon .area > .texts > .info {
-    display: flex;
-    color: #777;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  color: #777;
 }
 
-#offline-addon .area > .texts > .info > .seperator {
-    font-weight: bold;
-    padding: 0 3px;
+#offline-addon .area > .texts > .seperator {
+  font-weight: bold;
+  padding: 0 3px;
+}
+
+#offline-addon .area > .name {
+  font-weight: bold;
+  -webkit-box-flex: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1;
+}
+
+#offline-addon .area > .inspect {
+  padding: 0 20px;
+  /* color: green; */
+  font-size: 20px;
+}
+
+#offline-addon .area > .inspect > .glyphicon {
+  display: inline-block;
+}
+
+#offline-addon .area > .rename {
+  padding: 0 20px;
+  /* color: green; */
+  font-size: 20px;
+}
+
+#offline-addon .area > .rename > .glyphicon {
+  display: inline-block;
 }
 
 #offline-addon .area > .remove {
-    cursor: pointer;
-    padding: 5px;
+  cursor: pointer;
+  padding: 5px;
+  padding: 0 20px;
+  /* color: green; */
+  font-size: 20px;
 }
 
-#offline-addon .area > .remove > span {
-    font-size: 17px;
-    color: #777;
+#offline-addon .area > .remove > .glyphicon {
+  display: inline-block;
 }
 
-#offline-addon .available-areas > div {
-    display: none;
+#offline-addon .area > .remove > span {
+  font-size: 17px;
+  color: #777;
 }
 
 body > #selector {
-	width: 100%;
-    height: 100%;
-    position: absolute;
-    top: 0;
-    pointer-events: none;
-    display:none;
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  top: 0;
+  pointer-events: none;
+  display: none;
 }
 
 body > #selector-accept {
-	 position: absolute;
-    bottom: 10px;
-    right: 10px;
-    background-color: rgba(255, 255, 255, .9);
-    padding: 10px;
-    border-radius: 15px;
-    border: 2px solid rgb(255,128,0);
-    color: green;
-    cursor: pointer;
-    display: none;
+  position: absolute;
+  bottom: 10px;
+  right: 10px;
+  background-color: rgba(255, 255, 255, 0.9);
+  padding: 10px;
+  border-radius: 15px;
+  border: 2px solid #ff8000;
+  color: green;
+  cursor: pointer;
+  display: none;
 }
 
 body > #selector-accept > span {
-	font-size: 27px;
-}
\ No newline at end of file
+  font-size: 27px;
+}
+
diff --git a/resources/assets/js/OfflineModule.js b/resources/assets/js/OfflineModule.js
index 47fedeb3a523dc2852eebf14badfe02a5ca478fc..530fa713a1055c3e829c214207c692fac2d41b7d 100644
--- a/resources/assets/js/OfflineModule.js
+++ b/resources/assets/js/OfflineModule.js
@@ -1,633 +1,514 @@
+const EXTRACT_BOX_COLOR = "#ffb8eb";
+
 function OfflineModule(interactiveMap) {
   this.areaSelectionText =
     "Bewege die Karte, sodass das herunterzuladende Gebiet angezeigt wird und klicke rechts auf download.";
   this.interactiveMap = interactiveMap;
   this.areas = [];
-  this.vectorSource = new ol.source.Vector();
-  this.layer = new ol.layer.Vector({
-    source: this.vectorSource
-  });
-  this.interactiveMap.map.addLayer(this.layer);
-  this.initializeInterface();
-  this.addListeners();
-  this.status = "overview";
-  this.downloadedStyle = new ol.style.Style({
-    stroke: new ol.style.Stroke({
-      color: "green",
-      width: 2
-    }),
-    fill: new ol.style.Fill({
-      color: "rgba(0,255,0,.2)"
-    })
+
+  this.initializeInterface(this);
+  this.addListeners(this);
+
+  this.androidConnector = new OfflineModuleAndroidConnector();
+}
+
+OfflineModule.prototype.addListeners = function(offlineModule) {
+  $("#offline-addon .exit").off();
+  $("#offline-addon .exit").click(function() {
+    offlineModule.interactiveMap.switchModule("search");
   });
-  this.selectedStyle = new ol.style.Style({
-    stroke: new ol.style.Stroke({
-      color: "rgb(255,128,0)",
-      width: 2
-    }),
-    fill: new ol.style.Fill({
-      color: "rgba(255,128,0,.2)"
-    })
+
+  $("#offline-addon .add-area").off();
+  $("#offline-addon .add-area").click(function() {
+    offlineModule.startAreaSelection(offlineModule);
   });
+};
+
+function androidHasFunction(functionName) {
+  return (
+    typeof android != "undefined" && typeof android[functionName] == "function"
+  );
 }
 
-OfflineModule.prototype.loadDownloadedAreas = function() {
-  this.vectorSource.clear();
-
-  if (
-    typeof android != "undefined" &&
-    typeof android.getDownloadedAreas == "function"
-  ) {
-    // Show the user that we are now loading the areas
-    var downloadedAreas = android.getDownloadedAreas(); // JSON.parse(android.getDownloadedAreas());
-    downloadedAreas = JSON.parse(downloadedAreas);
-    if (Object.keys(downloadedAreas).length <= 0) {
-      $("#offline-addon .no-areas").show();
-    } else {
-      $("#offline-addon .auto-updates").show();
-      $("#offline-addon .no-areas").hide();
-    }
-    $.each(
-      downloadedAreas,
-      $.proxy(function(index, value) {
-        var bbox = value["bbox"];
-        var bboxPoints = [
-          [bbox[0], bbox[1]],
-          [bbox[2], bbox[1]],
-          [bbox[2], bbox[3]],
-          [bbox[0], bbox[3]]
-        ];
-        var feature = this.addArea(bboxPoints, true);
-        var size = value["size"];
-        var unit = "B";
-        if (size > 1024) {
-          size /= 1024;
-          unit = "KB";
-          if (size > 1024) {
-            size /= 1024;
-            unit = "MB";
-            if (size > 1024) {
-              size /= 1024;
-              unit = "GB";
-            }
-          }
-        }
-        // Round the size to three digits
-        size = Math.ceil(size);
-        var date = new Date(value["last-modified"]);
-        var month = date.getMonth();
-        month += 1;
-        month = month < 10 ? "0" + month : month;
-        var day = date.getDate();
-        day = day < 10 ? "0" + day : day;
-        var lastModified = day + "." + month + "." + date.getFullYear();
-        var newItem = $(
-          '\
-				<div class="area" style="display: flex;align-items: center;text-align: center;font-weight: bold;font-size: 12px; border-bottom: 1px solid #dfdfdf">\
-                         <div id="" style="padding: 0 10px;">\
-                            <div class="size">' +
-            size +
-            " " +
-            unit +
-            '</div>\
-                            <div class="last-modified">' +
-            lastModified +
-            '</div>\
-                        </div>\
-                        <div class="text" style="flex-grow: 1;">' +
-            index +
-            '</div>\
-                        <div class="inspect-item" data-name="' +
-            index +
-            '" style="padding: 0 20px;/* color: green; */font-size: 20px;">\
-                            <span class="glyphicon glyphicon-search" style="display: inline-block;"></span>\
-                            <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">\
-                        </div>\
-                        <div class="rename" data-name="' +
-            index +
-            '" style="display: none; padding: 0 20px;/* color: green; */font-size: 20px;">\
-                            <span class="glyphicon glyphicon-pencil" style="display: inline-block;"></span>\
-                            <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">\
-                        </div>\
-                        <div class="remove-download" data-name="' +
-            index +
-            '" style="display: none; padding: 0 20px;/* color: green; */font-size: 20px;">\
-                            <span class="glyphicon glyphicon-trash" style="display: inline-block;"></span>\
-                            <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">\
-                        </div>\
-                    </div>'
-        );
-        var caller = this;
-        $(newItem).click(
-          $.proxy(function() {
-            this.focusDownloadedArea(feature, $(newItem));
-          }, this)
-        );
-        $(newItem)
-          .find(".rename")
-          .click(function() {
-            var newName = prompt(
-              "Geben Sie einen neuen Namen für dieses Gebiet ein:"
-            );
-            var oldName = $(newItem)
-              .find(".text")
-              .text();
-            if (newName != null && android.renameArea(oldName, newName)) {
-              $("#offline-addon .exit").off();
-              $("#offline-addon .exit").click(function() {
-                caller.interactiveMap.switchModule("search");
-              });
-              $("#offline-addon .add-area").show("slow");
-              $(".downloaded-areas > .area").remove();
-              caller.loadDownloadedAreas();
-            }
-          });
-        $(newItem)
-          .find(".remove-download")
-          .click(function() {
-            var name = $(newItem)
-              .find(".text")
-              .text();
-            if (
-              confirm(
-                "Soll das ausgewählte Gebiet wirklich gelöscht werden?"
-              ) &&
-              android.removeArea(name)
-            ) {
-              $("#offline-addon .exit").off();
-              $("#offline-addon .exit").click(function() {
-                caller.interactiveMap.switchModule("search");
-              });
-              $("#offline-addon .add-area").show("slow");
-              $(".downloaded-areas > .area").remove();
-              caller.loadDownloadedAreas();
-            }
-          });
-        $(".downloaded-areas").append(newItem);
-      }, this)
-    );
-  } else {
+OfflineModule.prototype.loadExtractList = function(offlineModule) {
+  $("#offline-addon .exit").off();
+  $("#offline-addon .exit").click(function() {
+    offlineModule.interactiveMap.switchModule("search");
+  });
+  $("#offline-addon .add-area").show("slow");
+  $(".loading-areas").show();
+
+  $(".downloaded-areas > .area")
+    .not("#area-template")
+    .remove();
+
+  var extractListJSON = offlineModule.androidConnector.getExtractList();
+  var extracts = JSON.parse(extractListJSON);
+
+  $(".loading-areas").hide();
+
+  if (extracts.length == 0) {
     $("#offline-addon .no-areas").show();
+    return;
+  } else {
+    $("#offline-addon .auto-updates").show();
+    $("#offline-addon .no-areas").hide();
   }
-  $("#offline-addon .loading-areas").hide();
+
+  extracts.forEach(function(extract) {
+    var sizeString = filesizeToString(extract.fileSize);
+    var lastModifiedString = dateToString(new Date(extract.lastModified));
+
+    var extractDomElement = offlineModule.createExtractDomElement(
+      offlineModule,
+      extract.name,
+      sizeString,
+      lastModifiedString
+    );
+
+    extractDomElement.click(function() {
+      offlineModule.focusExtract(
+        offlineModule,
+        extract.boundingBox,
+        extractDomElement
+      );
+    });
+
+    extractDomElement.find(".rename").click(function() {
+      offlineModule.renameExtract(offlineModule, extract.name);
+    });
+
+    extractDomElement.find(".remove").click(function() {
+      offlineModule.removeExtract(offlineModule, extract.name);
+    });
+
+    $(".downloaded-areas").append(extractDomElement);
+  }, offlineModule);
 };
 
-OfflineModule.prototype.focusDownloadedArea = function(feature, element) {
-  var caller = this;
-  var name = $(element)
-    .find(".remove-download")
-    .attr("data-name");
-  $(element).off();
-  $(".downloaded-areas > div.area").each(function(index, value) {
-    var tmpName = $(value)
-      .find(".remove-download")
-      .attr("data-name");
-    if (tmpName != name) {
-      $(value).hide("slow");
-      return true;
-    } else {
-      $(value)
-        .find(".inspect-item")
-        .hide("slow");
-      $(value)
-        .find(".rename")
-        .show("slow");
-      $(value)
-        .find(".remove-download")
-        .show("slow");
+OfflineModule.prototype.renameExtract = function(offlineModule, oldName) {
+  var newName = prompt("Geben Sie einen neuen Namen für dieses Gebiet ein:");
+  if (newName != null) {
+    if (!offlineModule.androidConnector.renameExtract(oldName, newName)) {
+      // TODO
+    }
+
+    offlineModule.clearBoundingBoxes(offlineModule);
+
+    offlineModule.loadExtractList(offlineModule);
+  }
+};
+
+OfflineModule.prototype.removeExtract = function(offlineModule, name) {
+  if (confirm("Soll das ausgewählte Gebiet wirklich gelöscht werden?")) {
+    if (!offlineModule.androidConnector.removeExtract(name)) {
+      // TODO
     }
+
+    offlineModule.clearBoundingBoxes(offlineModule);
+
     $("#offline-addon .exit").off();
     $("#offline-addon .exit").click(function() {
-      $(".downloaded-areas > div.area").show("slow");
-      $(".downloaded-areas > div.area .inspect-item").show("slow");
-      $(".downloaded-areas > div.area .rename").hide("slow");
-      $(".downloaded-areas > div.area .remove-download").hide("slow");
-      $("#offline-addon .add-area").show("slow");
-      $("#offline-addon .auto-updates").show();
-      $("#offline-addon .exit").off();
-      feature.setStyle(caller.downloadedStyle);
-      $("#offline-addon .exit").click(function() {
-        caller.interactiveMap.switchModule("search");
-      });
-      $(element).click(
-        $.proxy(function() {
-          caller.focusDownloadedArea(feature, element);
-        }, this)
-      );
+      offlineModule.interactiveMap.switchModule("search");
     });
-  });
-  var item = $(element);
-  $("#offline-addon .add-area, #offline-addon .auto-updates").hide(
-    "slow",
-    function() {
-      caller.interactiveMap.map.getView().fit(feature.getGeometry(), {
-        duration: 500,
-        callback: function() {
-          feature.setStyle(caller.selectedStyle);
+    $("#offline-addon .add-area").show("slow");
+
+    offlineModule.loadExtractList(offlineModule);
+  }
+};
+
+OfflineModule.prototype.drawBoundingBox = function(
+  offlineModule,
+  boundingBox,
+  color
+) {
+  var boundingBoxGeoJSON = [];
+  boundingBoxGeoJSON.push([boundingBox.minLon, boundingBox.minLat]);
+  boundingBoxGeoJSON.push([boundingBox.maxLon, boundingBox.minLat]);
+  boundingBoxGeoJSON.push([boundingBox.maxLon, boundingBox.maxLat]);
+  boundingBoxGeoJSON.push([boundingBox.minLon, boundingBox.maxLat]);
+  boundingBoxGeoJSON.push(boundingBoxGeoJSON[0]);
+
+  offlineModule.interactiveMap.map.addLayer({
+    id: "extractBox", // TODO use different ids so multiple bounding boxes can be shown at once
+    type: "fill",
+    layout: {},
+    paint: {
+      "fill-color": color, // TODO pick different color for each bounding box
+      "fill-opacity": 0.8
+    },
+    source: {
+      type: "geojson",
+      data: {
+        type: "Feature",
+        geometry: {
+          type: "Polygon",
+          coordinates: [boundingBoxGeoJSON]
         }
-      });
+      }
     }
-  );
+  });
+};
+
+OfflineModule.prototype.clearBoundingBoxes = function(offlineModule) {
+  offlineModule.interactiveMap.map.removeLayer("extractBox"); // TODO adjust for multiple boxes with different ids
+  offlineModule.interactiveMap.map.removeSource("extractBox"); // TODO adjust for multiple boxes with different ids
+};
+
+function filesizeToString(filesize) {
+  var unit = "B";
+  if (filesize > 1024) {
+    filesize /= 1024;
+    unit = "KB";
+    if (filesize > 1024) {
+      filesize /= 1024;
+      unit = "MB";
+      if (filesize > 1024) {
+        filesize /= 1024;
+        unit = "GB";
+      }
+    }
+  }
+  return Number(filesize).toFixed(2) + " " + unit;
+}
+
+function dateToString(date) {
+  var month = date.getMonth();
+  month += 1;
+  month = month < 10 ? "0" + month : month;
+  var day = date.getDate();
+  day = day < 10 ? "0" + day : day;
+  var lastModified = day + "." + month + "." + date.getFullYear();
+  return lastModified;
+}
+
+OfflineModule.prototype.createExtractDomElement = function(
+  offlineModule,
+  name,
+  sizeString,
+  lastModifiedString
+) {
+  var extractDomElement = $("#area-template").clone();
+  extractDomElement.removeAttr("id");
+  extractDomElement.removeClass("hidden");
+  extractDomElement.removeAttr("style");
+
+  extractDomElement.find(".size").html(sizeString);
+  extractDomElement.find(".last-modified").html(lastModifiedString);
+  extractDomElement.find(".name").html(name);
+
+  extractDomElement.find(".inspect").attr("data-name", name);
+  extractDomElement.find(".rename").attr("data-name", name);
+  extractDomElement.find(".remove").attr("data-name", name);
+
+  return extractDomElement;
 };
 
-OfflineModule.prototype.addListeners = function() {
-  var caller = this;
+OfflineModule.prototype.focusExtract = function(
+  offlineModule,
+  boundingBox,
+  extractDomElement
+) {
+  // Turn off action listeners
+  extractDomElement.off();
+
+  // Switch displayed control elements
+  extractDomElement.find(".inspect").hide("slow");
+  extractDomElement.find(".rename").show("slow");
+  extractDomElement.find(".remove").show("slow");
+
+  var name = extractDomElement.find(".name").html();
+
+  hideAllExtractsExcept(name);
+
   $("#offline-addon .exit").off();
   $("#offline-addon .exit").click(function() {
-    caller.interactiveMap.switchModule("search");
-  });
-  $("#offline-addon .add-area").off();
-  $("#offline-addon .add-area").click(function() {
-    caller.startAreaSelection();
+    offlineModule.unfocusExtract(offlineModule, extractDomElement, boundingBox);
   });
 
-  $("#offline-addon .auto-updates input").change(function() {
-    var state = $(this).is(":checked");
-    if (typeof android != "undefined") {
-      var success = android.setProperty("auto-update", state);
-      if (!success) {
-        $(this).prop("checked", !state);
-      }
-    } else {
-      $(this).prop("checked", !state);
+  $("#offline-addon .add-area, #offline-addon .auto-updates").hide("slow");
+
+  offlineModule.drawBoundingBox(offlineModule, boundingBox, EXTRACT_BOX_COLOR);
+
+  offlineModule.fitToBoundingBox(offlineModule, boundingBox);
+};
+
+function hideAllExtractsExcept(shownAreaName) {
+  $(".downloaded-areas > .area").each(function(index, extractDomElement) {
+    // Has to be turned into a jquery object, because each delivers vanilla js dom objects
+    extractDomElement = $(extractDomElement);
+
+    var areaName = extractDomElement.find(".name").html();
+    if (areaName != shownAreaName) {
+      extractDomElement.addClass("hidden");
+      return true;
     }
   });
+}
 
-  $("#start-download").off();
-  $("#start-download").click($.proxy(this.startDownload, this));
-};
+OfflineModule.prototype.unfocusExtract = function(
+  offlineModule,
+  extractDomElement,
+  extractBoundingBox
+) {
+  $(".downloaded-areas > div.area").show("slow");
+  $(".downloaded-areas > div.area .inspect").show("slow");
+  $(".downloaded-areas > div.area .rename").hide("slow");
+  $(".downloaded-areas > div.area .remove").hide("slow");
 
-OfflineModule.prototype.addArea = function(area, downloaded) {
-  var style = null;
-  if (downloaded) {
-    style = this.downloadedStyle;
-  } else {
-    style = this.selectedStyle;
-  }
+  $("#offline-addon .add-area").show("slow");
+  $("#offline-addon .auto-updates").show();
 
-  var coordinates = [];
-  $(area).each(
-    $.proxy(function(index, value) {
-      coordinates.push(
-        this.interactiveMap.map.transformToMapCoordinates(value)
-      );
-    }, this)
-  );
-  coordinates.push(coordinates[0]);
-  var feature = new ol.Feature({
-    geometry: new ol.geom.Polygon([coordinates]),
-    name: "Selected Area"
+  $("#offline-addon .exit").off();
+  $("#offline-addon .exit").click(function() {
+    offlineModule.interactiveMap.switchModule("search");
   });
 
-  feature.setStyle(style);
-  this.vectorSource.addFeature(feature);
-  return feature;
+  offlineModule.clearBoundingBoxes(offlineModule);
+
+  offlineModule.loadExtractList(offlineModule);
+
+  extractDomElement.click(function() {
+    offlineModule.focusExtract(
+      offlineModule,
+      extractBoundingBox,
+      extractDomElement
+    );
+  });
 };
 
-OfflineModule.prototype.removeArea = function(feature) {
-  this.vectorSource.removeFeature(feature);
+OfflineModule.prototype.fitToBoundingBox = function(
+  offlineModule,
+  boundingBox
+) {
+  offlineModule.interactiveMap.map.fitBounds(
+    [
+      [boundingBox.minLon, boundingBox.minLat],
+      [boundingBox.maxLon, boundingBox.maxLat]
+    ],
+    {
+      padding: 10,
+      linear: true
+    }
+  );
 };
 
-OfflineModule.prototype.startAreaSelection = function() {
+OfflineModule.prototype.startAreaSelection = function(offlineModule) {
   $("#offline-addon .downloaded-areas").hide("slow");
   $("#offline-addon .area-selection").show("slow");
+
+  $("#start-download").show();
+
+  offlineModule.interactiveMap.map.on("touchend", function() {
+    offlineModule.selectedAreaChanged(offlineModule);
+  });
+  offlineModule.interactiveMap.map.on("mouseup", function() {
+    offlineModule.selectedAreaChanged(offlineModule);
+  });
+
   $("#offline-addon .exit").off();
-  $("#offline-addon .exit").click(
-    $.proxy(function() {
-      this.stopAreaSelection();
-    }, this)
-  );
+  $("#offline-addon .exit").click(function() {
+    $(offlineModule.interactiveMap.map).off("touchend");
+    $(offlineModule.interactiveMap.map).off("mouseup");
+    offlineModule.stopAreaSelection(offlineModule);
+  });
 
-  $(this.interactiveMap.map).on(
-    "moveend",
-    $.proxy(this.selectedAreaChanged, this)
-  );
-  this.selectedAreaChanged();
-  this.status = "area-selection";
-};
+  $("#start-download").off();
+  $("#start-download").click(function() {
+    $(offlineModule.interactiveMap.map).off("touchend");
+    $(offlineModule.interactiveMap.map).off("mouseup");
+    offlineModule.startDownload(offlineModule);
+  });
 
-OfflineModule.prototype.selectedAreaChanged = function() {
-  this.selectedArea = null;
-  var bbox = this.interactiveMap.map.getView().calculateExtent();
-  var min = this.interactiveMap.map.transformToWorldCoordinates([
-    bbox[0],
-    bbox[1]
-  ]);
-  var max = this.interactiveMap.map.transformToWorldCoordinates([
-    bbox[2],
-    bbox[3]
-  ]);
-  if (this.loadingFileList != null) this.loadingFileList.abort();
-  //localhost:8000/img/ajax-loader.gif
-  http: $("#download-information > .last-modified").html(
-    '<img src="/img/ajax-loader.gif" alt="loading"></img>'
-  );
-  $("#download-information > .size").html("");
-  $("#start-download > span").hide();
-  $("#start-download > img").show();
-  this.loadingFileList = $.getJSON(
-    "/download/list-files/" +
-      min[0] +
-      "/" +
-      min[1] +
-      "/" +
-      max[0] +
-      "/" +
-      max[1],
-    $.proxy(function(data) {
-      var date = new Date(data["last-modified"]);
-      var month = date.getMonth();
-      month += 1;
-      month = month < 10 ? "0" + month : month;
-      var day = date.getDate();
-      day = day < 10 ? "0" + day : day;
-      $("#download-information > .last-modified").html(
-        day + "." + month + "." + date.getFullYear()
-      );
-      // We will decide which Unit of datasize to show
-      var size = data["size"];
-      var unit = "B";
-      if (size > 1024) {
-        size /= 1024;
-        unit = "KB";
-        if (size > 1024) {
-          size /= 1024;
-          unit = "MB";
-          if (size > 1024) {
-            size /= 1024;
-            unit = "GB";
-          }
-        }
-      }
-      // Round the size to three digits
-      size = Math.ceil(size);
-      $("#download-information > .size").html(size + " " + unit);
-      $("#start-download > span").show();
-      $("#start-download > img").hide();
-      this.selectedArea = data;
-    }, this)
-  );
+  offlineModule.selectedAreaChanged(offlineModule);
 };
 
-OfflineModule.prototype.stopAreaSelection = function() {
+OfflineModule.prototype.stopAreaSelection = function(offlineModule) {
   $("#offline-addon .downloaded-areas").show("slow");
   $("#offline-addon .area-selection").hide("slow");
+  offlineModule.loadExtractList(offlineModule);
 
-  this.addListeners();
-  $(this.interactiveMap.map).off("moveend");
-  this.status = "overview";
+  offlineModule.addListeners(offlineModule);
+  $(offlineModule.interactiveMap.map).off("touchend");
+  $(offlineModule.interactiveMap.map).off("mouseup");
 };
 
-OfflineModule.prototype.addToDownloadedInterface = function(area) {
-  var newElement = $(
-    '\
-		<div class="area downloaded" style="display: none;" id="area-' +
-      area.id +
-      '">\
-    		<div class="texts">\
-        		<div class="name">' +
-      area.name +
-      '</div>\
-        		<div class="info">\
-            		<div class="size">' +
-      area.filesize +
-      '</div>\
-    				<div class="seperator">·</div>\
-            		<div class="date">' +
-      area.date +
-      '</div>\
-        		</div>\
-    		</div>\
-    		<div class="remove"><span class="glyphicon glyphicon-trash"></span></div>\
-		</div>'
-  );
-  var caller = this;
-  $(newElement)
-    .find(".remove")
-    .click(
-      $.proxy(function() {
-        caller.removeArea(this);
-      }, area)
-    );
-  // Hide the placeholder
-  $(
-    "#offline-addon .downloaded-areas > div.placeholder:not(.area-selection-info)"
-  ).hide("slow");
-  // Add this new Element to the Front of the List
-  $("#offline-addon .downloaded-areas").prepend(newElement);
+OfflineModule.prototype.selectedAreaChanged = function(offlineModule) {
+  offlineModule.updateDownloadSizeExpectation(offlineModule);
 };
 
-OfflineModule.prototype.addToAvailableInterface = function(area) {
-  var newElement = $(
-    '\
-		<div class="area available" style="display: none;" id="area-' +
-      area.id +
-      '">\
-    		<div class="texts">\
-        		<div class="name">' +
-      area.name +
-      '</div>\
-        		<div class="info">\
-            		<div class="size">' +
-      area.filesize +
-      '</div>\
-    				<div class="seperator">·</div>\
-            		<div class="date">' +
-      area.date +
-      '</div>\
-        		</div>\
-    		</div>\
-    		<div class="remove"><span class="glyphicon glyphicon-download-alt"></span></div>\
-		</div>'
+OfflineModule.prototype.updateDownloadSizeExpectation = function(
+  offlineModule
+) {
+  boundingBox = offlineModule.getBoundingBoxFromMap(offlineModule);
+  var expectedDownloadSize = offlineModule.androidConnector.getExpectedDownloadSize(
+    boundingBox
   );
-  var caller = this;
-  $(newElement)
-    .find(".remove")
-    .click(
-      $.proxy(function() {
-        caller.startDownload(this);
-      }, area)
-    );
-  // Add this new Element to the Front of the List
-  $("#offline-addon .available-areas").prepend(newElement);
+  if (expectedDownloadSize >= 0) {
+    expectedDownloadSizeString = filesizeToString(expectedDownloadSize);
+    $(".download-information > .size").html(expectedDownloadSizeString);
+  } else {
+    $(".download-information > .size").html("Error");
+  }
 };
 
-OfflineModule.prototype.startDownload = function() {
-  if (this.selectedArea == null) return;
-
-  // If the user is not connected to a wlan we will inform him of that fact
-  if (
-    typeof android != "undefined" &&
-    typeof android.isWireless == "function" &&
-    !android.isWireless()
-  ) {
-    var confirmed = confirm(
-      "Die Download Größe beträgt " +
-        $("#download-information > .size").html() +
-        ". Ohne WLan fortfahren?"
-    );
-    if (!confirmed) return;
+OfflineModule.prototype.startDownload = function(offlineModule, selectedArea) {
+  if (!offlineModule.androidConnector.isInternetAvailable) {
+    alert("Sie haben zurzeit kein Internet.");
+    return;
+  }
+
+  if (!offlineModule.reassureDownloadIfNoWireless(offlineModule)) {
+    return;
+  }
+
+  var extractName = offlineModule.askForExtractName(offlineModule);
+  if (extractName == null || extractName == "") {
+    return;
   }
 
-  $("#start-download > span").hide("fast");
-  $("#start-download > img").show("fast");
   $(".exit").hide("fast");
-  $(".area-selection > div.text").html("Downloading...");
-  this.interactiveMap.map.un("moveend", this.selectedAreaChanged, this);
-  $(".download-progress").show(
-    "slow",
-    $.proxy(function() {
-      var data = this.selectedArea;
-      var bboxPoints = [
-        [data["bbox"][0], data["bbox"][1]],
-        [data["bbox"][2], data["bbox"][1]],
-        [data["bbox"][2], data["bbox"][3]],
-        [data["bbox"][0], data["bbox"][3]]
-      ];
-      this.selectedAreaFeature = this.addArea(bboxPoints, false);
-      // Show the downloading area
-      this.interactiveMap.map
-        .getView()
-        .fit(this.selectedAreaFeature.getGeometry(), {
-          padding: [$("#offline-addon").outerHeight(), 0, 0, 0],
-          duration: 900,
-          callback: $.proxy(function() {
-            // Now send the download command to the android app
-            if (typeof android != "undefined") {
-              var origBbox = data["original-bbox"];
-              var downloadUrl =
-                "/download/download-files/" +
-                origBbox[0] +
-                "/" +
-                origBbox[1] +
-                "/" +
-                origBbox[2] +
-                "/" +
-                origBbox[3];
-              var started = android.download(downloadUrl, JSON.stringify(data));
-              if (started) {
-                $("#offline-addon .download-progress .abort").off();
-                $("#offline-addon .download-progress .abort").click(
-                  $.proxy(function() {
-                    $("#offline-addon .download-progress .abort").off();
-                    this.stopDownload();
-                  }, this)
-                );
-                this.updateDownloadStatus();
-              }
-            } else {
-              this.stopDownload();
-            }
-          }, this)
-        });
-    }, this)
-  );
-};
+  $(".area-selection").hide();
+  $(".area-downloading").show();
+  $(".download-progress").show();
 
-OfflineModule.prototype.stopDownload = function(abort) {
-  if (typeof abort == "undefined") abort = true;
-  if (typeof android != "undefined" && abort) android.stopDownload();
-  $("#start-download > span").show("fast");
-  $("#start-download > img").hide("fast");
-  $(".exit").show("fast");
-  $(".area-selection > div.text").html(this.areaSelectionText);
-  this.interactiveMap.map.on("moveend", this.selectedAreaChanged, this);
   $("#offline-addon .progress-bar").attr("aria-valuenow", 0);
   $("#offline-addon .progress-bar").css("width", "0%");
-  $("#offline-addon .progress-bar").html("0%");
-  $(".download-progress").hide("slow");
-  this.selectedAreaFeature = this.removeArea(this.selectedAreaFeature);
-  $(".exit").click();
+  $("#offline-addon .progress-label").html("0%");
+
+  var boundingBox = offlineModule.getBoundingBoxFromMap(offlineModule);
+  var downloadStarted = offlineModule.androidConnector.downloadTilesInBoundingBox(
+    boundingBox,
+    extractName
+  );
+
+  if (downloadStarted) {
+    $("#offline-addon .download-progress .abort").off();
+    $("#offline-addon .download-progress .abort").click(function() {
+      $("#offline-addon .download-progress .abort").off();
+      offlineModule.cancelDownload(offlineModule);
+    });
+
+    offlineModule.updateDownloadStatus(offlineModule);
+  } else {
+    offlineModule.cancelDownload(offlineModule);
+  }
+};
+
+OfflineModule.prototype.askForExtractName = function(offlineModule) {
+  var extractName = prompt("Bitte Namen für Kartenausschnitt eingeben.");
+  return extractName;
 };
 
-OfflineModule.prototype.updateDownloadStatus = function() {
+OfflineModule.prototype.reassureDownloadIfNoWireless = function(offlineModule) {
+  if (offlineModule.androidConnector.isWireless()) {
+    return true;
+  } else {
+    var prompt =
+      "Die Download-Größe beträgt " +
+      $(".download-information > .size").html() +
+      ". Ohne WLan fortfahren?";
+    var confirmation = confirm(prompt);
+    return confirmation;
+  }
+};
+
+OfflineModule.prototype.getBoundingBoxFromMap = function(offlineModule) {
+  var bbox_raw = offlineModule.interactiveMap.map.getBounds();
+  var bbox = {
+    minLon: bbox_raw.getWest(),
+    maxLon: bbox_raw.getEast(),
+    minLat: bbox_raw.getSouth(),
+    maxLat: bbox_raw.getNorth()
+  };
+  return bbox;
+};
+
+OfflineModule.prototype.updateDownloadStatus = function(offlineModule) {
   var error;
-  if ((error = android.getError()) != "") {
+  if ((error = offlineModule.androidConnector.getError()) != "") {
     $("#offline-addon .download-progress").before(
       $('\
 			<div class="download-failed alert alert-danger">' + error + "</div>")
     );
-    window.setTimeout(
-      $.proxy(function() {
-        $("#offline-addon .download-failed").remove();
-        this.stopDownload();
-      }, this),
-      5000
-    );
-    this.downloading = null;
+
+    window.setTimeout(function() {
+      $("#offline-addon .download-failed").remove();
+      offlineModule.cancelDownload(offlineModule);
+    }, 5000);
+
     return;
   }
 
-  var total = android.getDownloadSize();
-  var downloaded = android.getDownloadStatus();
-  var caller = this;
-  if (total != 0) {
-    var percent = Math.round((downloaded / total) * 100);
-    $("#offline-addon .progress-bar").attr("aria-valuemax", total);
-    $("#offline-addon .progress-bar").attr("aria-valuenow", downloaded);
-    $("#offline-addon .progress-bar").css("width", percent + "%");
-    $("#offline-addon .progress-bar").html(android.getDownloadStatusMessage());
-    if (
-      android.getStage() != android.getMaxStage() ||
-      downloaded != total ||
-      !android.isDownloadFinished()
-    ) {
-      window.setTimeout($.proxy(this.updateDownloadStatus, this), 100);
-    } else {
-      this.downloading = null;
-      this.stopDownload(false);
-      $(".downloaded-areas > .area").remove();
-      this.loadDownloadedAreas();
-      return;
-    }
+  var downloadedPercentage = offlineModule.androidConnector.getDownloadPercentage();
+  if (offlineModule.androidConnector.isDownloadFinished()) {
+    offlineModule.exitDownload(offlineModule);
   } else {
-    window.setTimeout($.proxy(this.updateDownloadStatus, this), 100);
+    $("#offline-addon .download-progress .progress-bar").attr(
+      "aria-valuemax",
+      1
+    );
+    $("#offline-addon .download-progress .progress-bar").attr(
+      "aria-valuenow",
+      downloadedPercentage
+    );
+    $("#offline-addon .download-progress .progress-bar").css(
+      "width",
+      downloadedPercentage * 100 + "%"
+    );
+    $("#offline-addon .progress-label").html(
+      (downloadedPercentage * 100).toFixed(1) + " %"
+    );
+
+    window.setTimeout(function() {
+      offlineModule.updateDownloadStatus(offlineModule);
+    }, 100);
   }
 };
 
-OfflineModule.prototype.initializeInterface = function() {
+OfflineModule.prototype.cancelDownload = function(offlineModule) {
+  offlineModule.androidConnector.cancelDownload();
+  offlineModule.exitDownload(offlineModule);
+};
+
+OfflineModule.prototype.exitDownload = function(offlineModule) {
+  $(".exit").show("fast");
+  $(".area-selection").show();
+  $(".area-downloading").hide();
+  $(".download-progress").hide();
+};
+
+OfflineModule.prototype.initializeInterface = function(offlineModule) {
   // Hide everything from Map that is not needed:
   $(".ol-zoom, .ol-zoomslider").hide("slow");
   $("#offline-addon .no-areas").hide();
   $("#offline-addon .loading-areas").show();
-  if (
-    typeof android != "undefined" &&
-    typeof android.getProperty == "function"
-  ) {
-    var autoUpdates =
-      android.getProperty("auto-update").toLowerCase() == "true" ? true : false;
-    $("#offline-addon .auto-updates input").prop("checked", autoUpdates);
-  }
-  this.interactiveMap.reversePositionManager.setActive(false);
+  offlineModule.interactiveMap.reversePositionManager.setActive(false);
   $("#offline-addon").show(
     "slow",
     $.proxy(function() {
-      this.loadDownloadedAreas();
-    }, this)
+      offlineModule.loadExtractList(offlineModule);
+    }, offlineModule)
   );
-  this.vectorSource = new ol.source.Vector();
-  this.layer = new ol.layer.Vector({
-    source: this.vectorSource
-  });
-  this.interactiveMap.map.addLayer(this.layer);
+
+  // this.interactiveMap.map.addLayer(this.layer); // TODO
 };
 
 OfflineModule.prototype.exit = function() {
-  // Show everything again that got hidden on intialization
-  $(".ol-zoom, .ol-zoomslider").show();
   $("#offline-addon .placeholder.area-selection-info").hide();
-  this.interactiveMap.reversePositionManager.setActive(true);
   $("#offline-addon").hide("slow");
-  this.interactiveMap.map.removeLayer(this.layer);
-  this.layer = null;
-  this.vectorSource = null;
 
   $("#offline-addon .exit").off();
   $("#start-download").off();
-  $("#offline-addon .downloaded-areas > div:not(.placeholder)").remove();
+
+  //$("#offline-addon .downloaded-areas > div:not(.placeholder)").remove();
+
+  $(".ol-zoom, .ol-zoomslider").show();
   $(".downloaded-areas .placeholder").show();
+
+  this.interactiveMap.reversePositionManager.setActive(true);
 };
 
-OfflineModule.prototype.enableGps = function() {};
+OfflineModule.prototype.enableGps = function(offlineModule) {};
 
-OfflineModule.prototype.disableGps = function() {};
+OfflineModule.prototype.disableGps = function(offlineModule) {};
diff --git a/resources/assets/js/OfflineModuleAndroidConnector.js b/resources/assets/js/OfflineModuleAndroidConnector.js
new file mode 100644
index 0000000000000000000000000000000000000000..b94fbc90555b0656f7c6a29a1bdf6926c4a0c9bc
--- /dev/null
+++ b/resources/assets/js/OfflineModuleAndroidConnector.js
@@ -0,0 +1,170 @@
+function OfflineModuleAndroidConnector() {}
+
+OfflineModuleAndroidConnector.prototype.getExtractList = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getExtractList"] == "function"
+  ) {
+    return android.getExtractList();
+  } else {
+    throw 'Android does not have function "getExtractList"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.renameExtract = function(
+  oldName,
+  newName
+) {
+  return android.renameExtract(oldName, newName);
+};
+
+OfflineModuleAndroidConnector.prototype.removeExtract = function(name) {
+  if (
+    typeof android != "undefined" &&
+    typeof android["removeExtract"] == "function"
+  ) {
+    return android.removeExtract(name);
+  } else {
+    throw 'Android does not have function "removeExtract"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.isWireless = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["isWireless"] == "function"
+  ) {
+    return android.isWireless();
+  } else {
+    throw 'Android does not have function "isWireless"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.isInternetAvailable = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["isInternetAvailable"] == "function"
+  ) {
+    return android.isInternetAvailable();
+  } else {
+    throw 'Android does not have function "isInternetAvailable"';
+  }
+};
+
+/**
+ * @return Expected Download size or -1 on error
+ */
+OfflineModuleAndroidConnector.prototype.getExpectedDownloadSize = function(
+  boundingBox
+) {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getExpectedDownloadSize"] == "function"
+  ) {
+    return android.getExpectedDownloadSize(
+      boundingBox.minLon,
+      boundingBox.maxLon,
+      boundingBox.minLat,
+      boundingBox.maxLat
+    );
+  } else {
+    throw 'Android does not have function "getExpectedDownloadSize"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.downloadTilesInBoundingBox = function(
+  boundingBox,
+  extractName
+) {
+  if (
+    typeof android != "undefined" &&
+    typeof android["downloadTilesInLonLatBounds"] == "function"
+  ) {
+    return android.downloadTilesInLonLatBounds(
+      boundingBox.minLon,
+      boundingBox.maxLon,
+      boundingBox.minLat,
+      boundingBox.maxLat,
+      extractName
+    );
+  } else {
+    throw 'Android does not have function "downloadTilesInLonLatBounds"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.cancelDownload = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["cancelDownload"] == "function"
+  ) {
+    return android.cancelDownload();
+  } else {
+    throw 'Android does not have function "cancelDownload"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.getDownloadPercentage = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getDownloadPercentage"] == "function"
+  ) {
+    return android.getDownloadPercentage();
+  } else {
+    throw 'Android does not have function "getDownloadPercentage"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.getDownloadStatusMessage = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getDownloadStatusMessage"] == "function"
+  ) {
+    return android.getDownloadStatusMessage();
+  } else {
+    throw 'Android does not have function "getDownloadStatusMessage"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.isDownloadFinished = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["isDownloadFinished"] == "function"
+  ) {
+    return android.isDownloadFinished();
+  } else {
+    throw 'Android does not have function "isDownloadFinished"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.getStage = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getStage"] == "function"
+  ) {
+    return android.getStage();
+  } else {
+    throw 'Android does not have function "getStage"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.getMaxStage = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getMaxStage"] == "function"
+  ) {
+    return android.getMaxStage();
+  } else {
+    throw 'Android does not have function "getMaxStage"';
+  }
+};
+
+OfflineModuleAndroidConnector.prototype.getError = function() {
+  if (
+    typeof android != "undefined" &&
+    typeof android["getError"] == "function"
+  ) {
+    return android.getError();
+  } else {
+    throw 'Android does not have function "getError"';
+  }
+};
diff --git a/resources/assets/js/SearchModule.js b/resources/assets/js/SearchModule.js
index 425fd0a71fc214a3bfd88506d2c83fc69e5c55d7..7e1fac5d48a0125a8183c07469286baea5f35514 100644
--- a/resources/assets/js/SearchModule.js
+++ b/resources/assets/js/SearchModule.js
@@ -6,7 +6,7 @@ function SearchModule(interactiveMap, query) {
   // Add the Listener for the routing button
   $("#start-navigation").show();
   $("#start-navigation").click(
-    $.proxy(function () {
+    $.proxy(function() {
       this.interactiveMap.switchModule("route-finding", {
         waypoints: [],
         vehicle: "car"
@@ -37,39 +37,39 @@ function SearchModule(interactiveMap, query) {
   }
 }
 
-SearchModule.prototype.initializeInterface = function () {
+SearchModule.prototype.initializeInterface = function() {
   $("#search-addon").show("slow");
 };
 
-SearchModule.prototype.addLogoClick = function () {
+SearchModule.prototype.addLogoClick = function() {
   $("div.logo").click(
-    $.proxy(function () {
+    $.proxy(function() {
       this.interactiveMap.switchModule("search");
     }, this)
   );
 };
 
-SearchModule.prototype.removeLogoClick = function () {
+SearchModule.prototype.removeLogoClick = function() {
   $("div.logo").off();
 };
 
-SearchModule.prototype.addOptionsMenu = function () {
+SearchModule.prototype.addOptionsMenu = function() {
   var caller = this;
   $("#search-addon #options").show("slow");
   // If this is the App in the correct version we will show the Offline Module
   if (
     typeof android != "undefined" &&
     typeof android.getVersionCode == "function" &&
-    android.getVersionCode() >= 13
+    android.getVersionCode() >= 20
   ) {
-    $("#options > ul > li").click(function () {
+    $("#options > ul > li").click(function() {
       caller.interactiveMap.switchModule("offline-karten");
     });
   } else {
     $("#options > ul > li.offline-karten").hide();
   }
   $("#options > ul > li.hilfe").click(
-    $.proxy(function () {
+    $.proxy(function() {
       $("#hilfe").show("slow");
       $("#follow-location").hide();
       $("#lock-location").hide();
@@ -79,7 +79,7 @@ SearchModule.prototype.addOptionsMenu = function () {
     }, this)
   );
   $("#hilfe .close").click(
-    $.proxy(function () {
+    $.proxy(function() {
       $("#hilfe").hide("slow");
       $("#follow-location").show();
       $("#lock-location").show();
@@ -88,22 +88,22 @@ SearchModule.prototype.addOptionsMenu = function () {
   );
 };
 
-SearchModule.prototype.removeOptionsMenu = function () {
+SearchModule.prototype.removeOptionsMenu = function() {
   $("#options > ul > li").off();
   $("#search-addon #options").hide("slow");
 };
 
-SearchModule.prototype.addSearchListeners = function () {
+SearchModule.prototype.addSearchListeners = function() {
   // When the searchfield got focussed
   // Mainly just displays the history
-  $("#search-addon").focusin({ caller: this }, function (event) {
+  $("#search-addon").focusin({ caller: this }, function(event) {
     event.data.caller.focusSearchInput();
   });
-  $("#search-addon").focusout({ caller: this }, function (event) {
+  $("#search-addon").focusout({ caller: this }, function(event) {
     event.data.caller.unfocusSearchInput();
   });
 
-  $("#search").submit({ caller: this }, function (event) {
+  $("#search").submit({ caller: this }, function(event) {
     try {
       event.data.caller.startSearch();
     } catch (e) {
@@ -113,12 +113,12 @@ SearchModule.prototype.addSearchListeners = function () {
   });
 };
 
-SearchModule.prototype.removeSearchListeners = function () {
+SearchModule.prototype.removeSearchListeners = function() {
   $("#search-addon").off();
   $("#search").off();
 };
 
-SearchModule.prototype.startSearch = function (moveMap) {
+SearchModule.prototype.startSearch = function(moveMap) {
   this.query = $("#search input[name=q]").val();
   var caller = this;
   // Conditions for not executing the search
@@ -155,7 +155,7 @@ SearchModule.prototype.startSearch = function (moveMap) {
   this.searching = $.ajax({
     url: url,
     dataType: "json",
-    success: $.proxy(function (data) {
+    success: $.proxy(function(data) {
       if (data.length > 0) {
         if (typeof moveMap == "boolean")
           this.results = new Results(
@@ -189,14 +189,14 @@ SearchModule.prototype.startSearch = function (moveMap) {
           placement: "bottom"
         });
         $("#search input[name=q]").tooltip("show");
-        window.setTimeout(function () {
+        window.setTimeout(function() {
           $("#search input[name=q]").tooltip("destroy");
         }, 3000);
       }
       this.unlockSearchFunctions();
     }, this),
     timeout: timeout * 1000,
-    error: $.proxy(function (jqxr) {
+    error: $.proxy(function(jqxr) {
       console.log(jqxr);
       // We encountered an error while trying to fetch the search results.
       // It can be an abortion error in case the user clicked abort, or a timeout/connection error
@@ -209,7 +209,7 @@ SearchModule.prototype.startSearch = function (moveMap) {
         $("#search-addon .results .wait-for-search .no-internet").show("slow");
         $("#search input[name=q]").val(this.query);
         this.retrySearch = window.setTimeout(
-          $.proxy(function () {
+          $.proxy(function() {
             this.retrySearch = undefined;
             this.startSearch();
           }, this),
@@ -218,13 +218,13 @@ SearchModule.prototype.startSearch = function (moveMap) {
       }
     }, this)
   }).always(
-    $.proxy(function () {
+    $.proxy(function() {
       this.searching = undefined;
     }, this)
   );
 };
 
-SearchModule.prototype.lockSearchFunctions = function () {
+SearchModule.prototype.lockSearchFunctions = function() {
   if (
     this.searchFunctionsLocked == undefined ||
     this.searchFunctionsLocked == false
@@ -246,7 +246,7 @@ SearchModule.prototype.lockSearchFunctions = function () {
 		    '
     );
     $(cancelSearch).click(
-      $.proxy(function () {
+      $.proxy(function() {
         console.log("aborting");
         if (this.retrySearch != undefined) {
           window.clearTimeout(this.retrySearch); // We retry fetching search results with a window.setTimeout() which needs to get cleared when we abort
@@ -260,7 +260,7 @@ SearchModule.prototype.lockSearchFunctions = function () {
     $("#search input[name=q]").after(cancelSearch);
   }
 };
-SearchModule.prototype.unlockSearchFunctions = function () {
+SearchModule.prototype.unlockSearchFunctions = function() {
   if (
     this.searchFunctionsLocked != undefined &&
     this.searchFunctionsLocked == true
@@ -279,7 +279,7 @@ SearchModule.prototype.unlockSearchFunctions = function () {
   }
 };
 
-SearchModule.prototype.enableGps = function () {
+SearchModule.prototype.enableGps = function() {
   if (
     typeof this.query == "undefined" &&
     this.interactiveMap.updateMapPositionOnGps
@@ -288,20 +288,20 @@ SearchModule.prototype.enableGps = function () {
     this.interactiveMap.map.easeTo({
       center: this.interactiveMap.GpsManager.location,
       zoom: 12
-    })
+    });
   }
 };
 
-SearchModule.prototype.disableGps = function () { };
+SearchModule.prototype.disableGps = function() {};
 
-SearchModule.prototype.focusSearchInput = function () {
+SearchModule.prototype.focusSearchInput = function() {
   // Add the Listener for the SearchBox
-  $("#search-addon input[name=q]").keyup(function () {
+  $("#search-addon input[name=q]").keyup(function() {
     var value = $(this)
       .val()
       .toLowerCase();
     // Each past search:
-    $("#search-addon .history-container .searches > .item").each(function (
+    $("#search-addon .history-container .searches > .item").each(function(
       index,
       item
     ) {
@@ -318,20 +318,20 @@ SearchModule.prototype.focusSearchInput = function () {
   });
 };
 
-SearchModule.prototype.unfocusSearchInput = function () {
+SearchModule.prototype.unfocusSearchInput = function() {
   // Add the Listener for the SearchBox
   $("#search-addon input[name=q]").off();
   $("#search-addon .history-container .item").hide();
 };
 
-SearchModule.prototype.addURLUpdater = function () {
+SearchModule.prototype.addURLUpdater = function() {
   // Add the moveend event to the map
   this.urlUpdater = $.proxy(this.updateURL, this);
   this.interactiveMap.map.on("moveend", this.urlUpdater);
   $(window).on("popstate", $.proxy(this.popUrl, this));
 };
 
-SearchModule.prototype.updateURL = function () {
+SearchModule.prototype.updateURL = function() {
   // Register the Popstate Listener if not already done
   var pos = this.interactiveMap.map.getCenter();
   var zoom = this.interactiveMap.map.getZoom();
@@ -382,7 +382,7 @@ SearchModule.prototype.updateURL = function () {
   }
 };
 
-SearchModule.prototype.popUrl = function (e) {
+SearchModule.prototype.popUrl = function(e) {
   var state = e.originalEvent.state;
   if (state != null) {
     // We need to determine if the state was produced by the Route Finder
@@ -423,23 +423,23 @@ SearchModule.prototype.popUrl = function (e) {
   }
 };
 
-SearchModule.prototype.updatePastSearchContainer = function () {
+SearchModule.prototype.updatePastSearchContainer = function() {
   // Clear current Content
   $("#search-addon .history-container > .searches").html("");
   $.each(
     this.searchHistory.results,
-    $.proxy(function (index, value) {
+    $.proxy(function(index, value) {
       var item = $(
         '\
 			<div class="item inactive">\
 				<div class="icon"><span class="glyphicon glyphicon-time"></span></div>\
 				<div class="search-query">' +
-        value.query +
-        "</div>\
+          value.query +
+          "</div>\
 			</div>"
       );
       $("#search-addon .history-container > .searches").append(item);
-      $(item).mousedown({ caller: this }, function (event) {
+      $(item).mousedown({ caller: this }, function(event) {
         // Add the query to the Input Field and start a search
         $("#search-addon input[name=q]").val(
           $(this)
@@ -454,7 +454,7 @@ SearchModule.prototype.updatePastSearchContainer = function () {
   $("#search-addon .history-container > .searches > .inactive").hide();
 };
 
-SearchModule.prototype.removeURLUpdater = function () {
+SearchModule.prototype.removeURLUpdater = function() {
   // Add the moveend event to the map
   if (typeof this.urlUpdater != "undefined") {
     this.interactiveMap.map.off("moveend", this.urlUpdater);
@@ -462,7 +462,7 @@ SearchModule.prototype.removeURLUpdater = function () {
   $(window).off("popstate", $.proxy(this.popUrl, this));
 };
 
-SearchModule.prototype.exit = function () {
+SearchModule.prototype.exit = function() {
   if (this.results !== null && this.results !== undefined)
     this.results.deleteSearch();
   $("#popup-closer").click();
diff --git a/resources/assets/js/map.js b/resources/assets/js/map.js
index 556218a9910b803ff6ce5858b4d8732125ea6d14..715da71e67ae53ad569603e107c9d35acbfebd51 100644
--- a/resources/assets/js/map.js
+++ b/resources/assets/js/map.js
@@ -1,4 +1,4 @@
-function Map(type) { }
+function Map(type) {}
 
 function InteractiveMap(
   long = 9.841943417968748,
@@ -30,18 +30,21 @@ function InteractiveMap(
 InteractiveMap.prototype = Object.create(Map.prototype);
 InteractiveMap.prototype.constructor = InteractiveMap;
 
-InteractiveMap.prototype.initMap = function () {
-  mapboxgl.setRTLTextPlugin('https://tileserver.metager.de/mapbox-gl-rtl-text.js');
+InteractiveMap.prototype.initMap = function() {
+  mapboxgl.setRTLTextPlugin(
+    "https://tileserver.metager.de/mapbox-gl-rtl-text.js"
+  );
   var map = new mapboxgl.Map({
-    container: 'map',
-    style: 'https://tileserver.metager.de/styles/osm-bright/style.json?optimize=true',
+    container: "map",
+    style:
+      "https://tileserver.metager.de/styles/osm-bright/style.json?optimize=true",
     hash: false,
     center: this.initPos,
     zoom: this.initZoom,
     scrollZoom: false
   });
-  map.addControl(new mapboxgl.NavigationControl(), 'bottom-left');
-  map.addControl(new mapboxgl.ScaleControl(), 'bottom-right');
+  map.addControl(new mapboxgl.NavigationControl(), "bottom-left");
+  map.addControl(new mapboxgl.ScaleControl(), "bottom-right");
 
   /**
    * This is our custom scrollwheel function
@@ -50,46 +53,48 @@ InteractiveMap.prototype.initMap = function () {
   var caller = this;
   var timeout = undefined;
   var zoomChange = 0;
-  map.on("zoomend", function (event) {
+  map.on("zoomend", function(event) {
     if (typeof event.scrollZoom == "boolean" && event.scrollZoom) {
       if (typeof timeout != "undefined") {
         clearTimeout(timeout);
         timeout = undefined;
       }
-      timeout = setTimeout(function () {
+      timeout = setTimeout(function() {
         zoomChange = 0;
       }, 100);
     }
   });
-  $(window).bind('wheel', function (event) {
+  $(window).bind("wheel", function(event) {
     var delta = event.originalEvent.deltaY;
     if (delta < 0) {
-      if (zoomChange >= 0)
-        zoomChange += .5;
-      else
-        zoomChange = .5;
+      if (zoomChange >= 0) zoomChange += 0.5;
+      else zoomChange = 0.5;
     } else {
-      if (zoomChange <= 0)
-        zoomChange -= .5;
-      else
-        zoomChange = -.5;
+      if (zoomChange <= 0) zoomChange -= 0.5;
+      else zoomChange = -0.5;
     }
     var newZoom = Math.min(caller.map.getZoom() + zoomChange, 22);
     newZoom = Math.max(1, newZoom);
 
-    map.easeTo({
-      zoom: newZoom,
-      around: map.unproject([event.originalEvent.clientX, event.originalEvent.clientY]),
-    }, { scrollZoom: true });
+    map.easeTo(
+      {
+        zoom: newZoom,
+        around: map.unproject([
+          event.originalEvent.clientX,
+          event.originalEvent.clientY
+        ])
+      },
+      { scrollZoom: true }
+    );
   });
   return map;
 };
 
-InteractiveMap.prototype.scrollZoomHandler = function (event) {
+InteractiveMap.prototype.scrollZoomHandler = function(event) {
   console.log(event);
-}
+};
 
-InteractiveMap.prototype.switchModule = function (name, args) {
+InteractiveMap.prototype.switchModule = function(name, args) {
   if (this.module !== null) {
     // Every Module must implement this method for deinitialization
     this.module.exit();
@@ -110,8 +115,7 @@ InteractiveMap.prototype.switchModule = function (name, args) {
     case "navigatiion":
       break;
     case "offline-karten":
-      alert("Offline Karten wurden für Wartungsarbeiten deaktiviert. Sie stehen bald wieder zur Verfügung!");
-      //this.module = new OfflineModule(this);
+      this.module = new OfflineModule(this);
       break;
     case "navigation":
       this.module = new NavigationModule(this, args);
@@ -120,23 +124,27 @@ InteractiveMap.prototype.switchModule = function (name, args) {
   }
 };
 
-InteractiveMap.prototype.removeDownloadedAreas = function () {
+InteractiveMap.prototype.removeDownloadedAreas = function() {
   /**
    * Removes areas that might have been downloaded by our old app.
    * This Feature will be reworked and we want to clean up before the new app comes
    */
-  if (typeof android != "undefined" &&
-    typeof android.getDownloadedAreas == "function") {
+  if (
+    typeof android != "undefined" &&
+    typeof android.getDownloadedAreas == "function"
+  ) {
     var downloadedAreas = android.getDownloadedAreas(); // JSON.parse(android.getDownloadedAreas());
     downloadedAreas = JSON.parse(downloadedAreas);
     if (Object.keys(downloadedAreas).length > 0) {
-      $.each(downloadedAreas, function (index, value) {
+      $.each(downloadedAreas, function(index, value) {
         android.removeArea(index);
       });
-      alert("Offline Karten wurden für Wartungsarbeiten deaktiviert. Sie stehen bald wieder zur Verfügung!");
+      alert(
+        "Offline Karten wurden für Wartungsarbeiten deaktiviert. Sie stehen bald wieder zur Verfügung!"
+      );
     }
   }
-}
+};
 
 function StaticMap() {
   Map.call(this);
diff --git a/resources/assets/sass/offline-module.scss b/resources/assets/sass/offline-module.scss
new file mode 100644
index 0000000000000000000000000000000000000000..de82e566a72104f0a501fb1be6017474f2bfb0a3
--- /dev/null
+++ b/resources/assets/sass/offline-module.scss
@@ -0,0 +1,213 @@
+#offline-addon {
+  display: none;
+  z-index: 20003;
+  position: absolute;
+
+  @media (max-width: 767px) {
+    width: 100%;
+  }
+
+  .auto-updates {
+    display: flex;
+    align-items: center;
+    border: 1px solid #dfdfdf;
+    border-left: 0;
+    border-right: 0;
+
+    & > .option {
+      margin: 10px;
+      height: 20px;
+    }
+
+    .text {
+      flex-grow: 1;
+      text-align: center;
+      padding: 10px 0;
+      border-left: 1px solid #dfdfdf;
+    }
+  }
+
+  .area-selection {
+    display: flex;
+    align-items: center;
+    text-align: center;
+    font-weight: bold;
+    font-size: 12px;
+
+    .download-information {
+      padding: 0 10px;
+    }
+
+    .text {
+      margin: 0px 10px;
+      flex-grow: 1;
+    }
+
+    #start-download {
+      padding: 5px;
+      color: green;
+      font-size: 20px;
+    }
+  }
+
+  .area-selection-info {
+    display: none;
+    font-weight: bold;
+    font-size: 11px;
+  }
+
+  & > #heading {
+    display: flex;
+    justify-content: space-between;
+    background-color: rgb(255, 128, 0);
+
+    & > .exit {
+      padding: 7px;
+      color: white;
+    }
+
+    & > .logo {
+      align-self: center;
+      padding: 7px;
+    }
+  }
+
+  .progress {
+    margin-left: 5px;
+  }
+
+  .add-area {
+    text-align: center;
+    padding: 10px 20px;
+    border-top: 1px solid #e7e7e7;
+
+    a:visited {
+      color: #337ab7;
+    }
+  }
+
+  .add-area .downloaded-areas,
+  .available-areas {
+    list-style-type: none;
+    margin-bottom: 0;
+  }
+
+  .download-progress {
+    display: flex;
+    margin: 0 10px;
+
+    & > .progress {
+      flex-grow: 1;
+    }
+
+    .abort {
+      margin: 0 10px;
+      color: red;
+    }
+  }
+
+  .download-progress .downloaded-areas > div.placeholder,
+  .available-areas > div.placeholder {
+    text-align: center;
+    padding-bottom: 5px;
+  }
+
+  .available-areas > div {
+    display: none;
+  }
+
+  .area {
+    &#area-template {
+      display: none;
+    }
+
+    display: flex;
+    align-items: center;
+    text-align: center;
+    font-weight: bold;
+    font-size: 12px;
+    border-bottom: 1px solid #dfdfdf;
+    padding: 0 10px;
+
+    & > .texts {
+      flex-grow: 1;
+
+      & > .info {
+        display: flex;
+        color: #777;
+      }
+
+      & > .seperator {
+        font-weight: bold;
+        padding: 0 3px;
+      }
+    }
+
+    & > .name {
+      font-weight: bold;
+      flex-grow: 1;
+    }
+
+    & > .inspect {
+      padding: 0 20px; /* color: green; */
+      font-size: 20px;
+
+      & > .glyphicon {
+        display: inline-block;
+      }
+    }
+
+    & > .rename {
+      padding: 0 20px; /* color: green; */
+      font-size: 20px;
+
+      & > .glyphicon {
+        display: inline-block;
+      }
+    }
+
+    & > .remove {
+      cursor: pointer;
+      padding: 5px;
+      padding: 0 20px; /* color: green; */
+      font-size: 20px;
+
+      & > .glyphicon {
+        display: inline-block;
+      }
+
+      & > span {
+        font-size: 17px;
+        color: #777;
+      }
+    }
+  }
+}
+
+body {
+  & > #selector {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    pointer-events: none;
+    display: none;
+  }
+
+  & > #selector-accept {
+    position: absolute;
+    bottom: 10px;
+    right: 10px;
+    background-color: rgba(255, 255, 255, 0.9);
+    padding: 10px;
+    border-radius: 15px;
+    border: 2px solid rgb(255, 128, 0);
+    color: green;
+    cursor: pointer;
+    display: none;
+
+    & > span {
+      font-size: 27px;
+    }
+  }
+}
diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php
deleted file mode 100644
index e5506df2907a7c8f63f3841a918611b93d67e84e..0000000000000000000000000000000000000000
--- a/resources/lang/en/auth.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Authentication Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used during authentication for various
-    | messages that we need to display to the user. You are free to modify
-    | these language lines according to your application's requirements.
-    |
-    */
-
-    'failed' => 'These credentials do not match our records.',
-    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
-
-];
diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php
deleted file mode 100644
index fcab34b253172b61762a9cb6a343299977cb564e..0000000000000000000000000000000000000000
--- a/resources/lang/en/pagination.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Pagination Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used by the paginator library to build
-    | the simple pagination links. You are free to change them to anything
-    | you want to customize your views to better match your application.
-    |
-    */
-
-    'previous' => '&laquo; Previous',
-    'next'     => 'Next &raquo;',
-
-];
diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php
deleted file mode 100644
index e5544d2016657f3b661a279f89194440ea7ba256..0000000000000000000000000000000000000000
--- a/resources/lang/en/passwords.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are the default lines which match reasons
-    | that are given by the password broker for a password update attempt
-    | has failed, such as for an invalid token or invalid new password.
-    |
-    */
-
-    'password' => 'Passwords must be at least six characters and match the confirmation.',
-    'reset' => 'Your password has been reset!',
-    'sent' => 'We have e-mailed your password reset link!',
-    'token' => 'This password reset token is invalid.',
-    'user' => "We can't find a user with that e-mail address.",
-
-];
diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php
deleted file mode 100644
index 73b49d084d21f47bee8e4b1e896f593d93226d5e..0000000000000000000000000000000000000000
--- a/resources/lang/en/validation.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines contain the default error messages used by
-    | the validator class. Some of these rules have multiple versions such
-    | as the size rules. Feel free to tweak each of these messages here.
-    |
-    */
-
-    'accepted'             => 'The :attribute must be accepted.',
-    'active_url'           => 'The :attribute is not a valid URL.',
-    'after'                => 'The :attribute must be a date after :date.',
-    'alpha'                => 'The :attribute may only contain letters.',
-    'alpha_dash'           => 'The :attribute may only contain letters, numbers, and dashes.',
-    'alpha_num'            => 'The :attribute may only contain letters and numbers.',
-    'array'                => 'The :attribute must be an array.',
-    'before'               => 'The :attribute must be a date before :date.',
-    'between'              => [
-        'numeric' => 'The :attribute must be between :min and :max.',
-        'file'    => 'The :attribute must be between :min and :max kilobytes.',
-        'string'  => 'The :attribute must be between :min and :max characters.',
-        'array'   => 'The :attribute must have between :min and :max items.',
-    ],
-    'boolean'              => 'The :attribute field must be true or false.',
-    'confirmed'            => 'The :attribute confirmation does not match.',
-    'date'                 => 'The :attribute is not a valid date.',
-    'date_format'          => 'The :attribute does not match the format :format.',
-    'different'            => 'The :attribute and :other must be different.',
-    'digits'               => 'The :attribute must be :digits digits.',
-    'digits_between'       => 'The :attribute must be between :min and :max digits.',
-    'dimensions'           => 'The :attribute has invalid image dimensions.',
-    'distinct'             => 'The :attribute field has a duplicate value.',
-    'email'                => 'The :attribute must be a valid email address.',
-    'exists'               => 'The selected :attribute is invalid.',
-    'file'                 => 'The :attribute must be a file.',
-    'filled'               => 'The :attribute field is required.',
-    'image'                => 'The :attribute must be an image.',
-    'in'                   => 'The selected :attribute is invalid.',
-    'in_array'             => 'The :attribute field does not exist in :other.',
-    'integer'              => 'The :attribute must be an integer.',
-    'ip'                   => 'The :attribute must be a valid IP address.',
-    'json'                 => 'The :attribute must be a valid JSON string.',
-    'max'                  => [
-        'numeric' => 'The :attribute may not be greater than :max.',
-        'file'    => 'The :attribute may not be greater than :max kilobytes.',
-        'string'  => 'The :attribute may not be greater than :max characters.',
-        'array'   => 'The :attribute may not have more than :max items.',
-    ],
-    'mimes'                => 'The :attribute must be a file of type: :values.',
-    'mimetypes'            => 'The :attribute must be a file of type: :values.',
-    'min'                  => [
-        'numeric' => 'The :attribute must be at least :min.',
-        'file'    => 'The :attribute must be at least :min kilobytes.',
-        'string'  => 'The :attribute must be at least :min characters.',
-        'array'   => 'The :attribute must have at least :min items.',
-    ],
-    'not_in'               => 'The selected :attribute is invalid.',
-    'numeric'              => 'The :attribute must be a number.',
-    'present'              => 'The :attribute field must be present.',
-    'regex'                => 'The :attribute format is invalid.',
-    'required'             => 'The :attribute field is required.',
-    'required_if'          => 'The :attribute field is required when :other is :value.',
-    'required_unless'      => 'The :attribute field is required unless :other is in :values.',
-    'required_with'        => 'The :attribute field is required when :values is present.',
-    'required_with_all'    => 'The :attribute field is required when :values is present.',
-    'required_without'     => 'The :attribute field is required when :values is not present.',
-    'required_without_all' => 'The :attribute field is required when none of :values are present.',
-    'same'                 => 'The :attribute and :other must match.',
-    'size'                 => [
-        'numeric' => 'The :attribute must be :size.',
-        'file'    => 'The :attribute must be :size kilobytes.',
-        'string'  => 'The :attribute must be :size characters.',
-        'array'   => 'The :attribute must contain :size items.',
-    ],
-    'string'               => 'The :attribute must be a string.',
-    'timezone'             => 'The :attribute must be a valid zone.',
-    'unique'               => 'The :attribute has already been taken.',
-    'uploaded'             => 'The :attribute failed to upload.',
-    'url'                  => 'The :attribute format is invalid.',
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | Here you may specify custom validation messages for attributes using the
-    | convention "attribute.rule" to name the lines. This makes it quick to
-    | specify a specific custom language line for a given attribute rule.
-    |
-    */
-
-    'custom' => [
-        'attribute-name' => [
-            'rule-name' => 'custom-message',
-        ],
-    ],
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Attributes
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used to swap attribute place-holders
-    | with something more reader friendly such as E-Mail Address instead
-    | of "email". This simply helps us make messages a little cleaner.
-    |
-    */
-
-    'attributes' => [],
-
-];
diff --git a/resources/views/addons/navigation.blade.php b/resources/views/addons/navigation.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..714a2f2a2295b764cc348ccc8d4a12b0ff4c7a1b
--- /dev/null
+++ b/resources/views/addons/navigation.blade.php
@@ -0,0 +1,59 @@
+<figure id="navigation" class="inactive">
+    <div id="next-step">
+        <div class="step">
+            <div class="image">
+            </div>
+            <div class="step-string">
+            </div>
+            <div class="step-length">
+            </div>
+        </div>
+    </div>
+    <div id="general-information">
+        <div class="exit" title="Navigation beenden"><span class="glyphicon glyphicon-remove"
+                style="color: #777;"></span></div>
+        <div class="information">
+            <div class="duration"></div>
+            <div class="seperator">·</div>
+            <div class="length"></div>
+            <div class="seperator">·</div>
+            <div class="time"></div>
+        </div>
+    </div>
+    <div class="leg-finish">
+        <div class="container">
+            <div class="text">Sie haben Ihr Ziel<br> "Gehägestraße 43" <br> erreicht</div>
+            <div class="information">
+                <div class="start-time">
+                    <div class="label">Startzeit</div>
+                    <div class="time">
+                        <span class="glyphicon glyphicon-time"></span>
+                        7:55
+                    </div>
+                </div>
+                <div class="arrival-time">
+                    <div class="label">Ankunftszeit</div>
+                    <div class="time">
+                        <span class="glyphicon glyphicon-time"></span>
+                        7:58
+                    </div>
+                </div>
+            </div>
+            <div class="duration">
+                <div class="label">Dauer</div>
+                <div class="time">
+                    <span class="glyphicon glyphicon-time"></span>
+                    3 Min <span class="plus"> (+ 5 Min)</span>
+                </div>
+            </div>
+            <div class="options">
+                <div class="continue">
+                    <a href="javascript:void(0)" class="btn btn-info btn-xs">nächster Wegpunkt</a>
+                </div>
+                <div class="abort">
+                    <a href="javascript:void(0)" class="btn btn-info btn-xs">Navigation verlassen</a>
+                </div>
+            </div>
+        </div>
+    </div>
+</figure>
\ No newline at end of file
diff --git a/resources/views/addons/offline.blade.php b/resources/views/addons/offline.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..92f72ce010dd5eead4935513223fdfed3f98ed5f
--- /dev/null
+++ b/resources/views/addons/offline.blade.php
@@ -0,0 +1,87 @@
+<figure id="offline-addon" class="addon">
+    <div id="heading">
+        <div class="exit">
+            <span class="glyphicon glyphicon-arrow-left"></span>
+        </div>
+        <div class="logo">
+            <div>
+                <h1>Maps.MetaGer.de<small>Offline</small></h1>
+            </div>
+        </div>
+    </div>
+    <div class="results">
+        <div class="downloaded-areas">
+            <div class="placeholder no-areas">
+                <span>Noch kein Gebiet heruntergeladen</span>
+            </div>
+            <div class="placeholder loading-areas"><img src="/img/ajax-loader.gif" alt="loading" />
+                <span>Lade Gebiete</span>
+            </div>
+            <div class="add-area placeholder">
+                <a href="#">+ Gebiet für Download hinzufügen</a>
+            </div>
+            <!--
+                <div class="auto-updates palceholder inactive">
+                <div class="option">
+                    <label class="switch">
+                        <input type="checkbox" checked>
+                        <span class="slider round"></span>
+                    </label>
+                </div>
+                <div class="text">
+                    <span>Automatische Updates</span>
+                </div>
+            </div>
+            -->
+            <div id="area-template" class="area">
+                <div>
+                    <div class="size"></div>
+                    <div class="last-modified"></div>
+                </div>
+                <div class="name"></div>
+                <div class="inspect">
+                    <span class="glyphicon glyphicon-search"></span>
+                    <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">
+                </div>
+                <div class="rename" style="display: none;">
+                    <span class="glyphicon glyphicon-pencil"></span>
+                    <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">
+                </div>
+                <div class="remove" style="display: none;">
+                    <span class="glyphicon glyphicon-trash"></span>
+                    <img src="/img/ajax-loader.gif" alt="loading" style="display: none;">
+                </div>
+            </div>
+        </div>
+        <div class="area-selection inactive">
+            <div class="download-information">
+                <div class="size"></div>
+            </div>
+            <div class="text">
+                <p>Bewege die Karte, sodass das herunterzuladende Gebiet angezeigt wird und klicke rechts auf download.
+                </p>
+            </div>
+            <div id="start-download">
+                <span class="glyphicon glyphicon-download-alt"></span>
+            </div>
+        </div>
+        <div class="area-downloading inactive">
+            <div id="download-information">
+                <div class="size"></div>
+            </div>
+            <div class="text">
+                <p>Lädt Karte ...</p>
+            </div>
+        </div>
+        <div class="download-progress inactive">
+            <span class="progress-label">0%</span>
+            <div class="progress">
+                <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
+                    style="width: 0%;"></div>
+            </div>
+            <div class="abort">
+                <span class="glyphicon glyphicon-remove-sign"></span>
+            </div>
+        </div>
+    </div>
+</figure>
\ No newline at end of file
diff --git a/resources/views/addons/route.blade.php b/resources/views/addons/route.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e876400aa5b511d25c0815fa7f4efb997efe7b6
--- /dev/null
+++ b/resources/views/addons/route.blade.php
@@ -0,0 +1,67 @@
+<figure id="route-finder-addon">
+    <div id="vehicle-chooser">
+        <label class="radio-inline" title="Fußgänger">
+            <input type="radio" name="vehicle" value="foot">
+            <div><img src="/img/silhouette-walk.png" height="20px" /></div>
+        </label>
+        <label class="radio-inline" title="Fahrrad">
+            <input type="radio" name="vehicle" value="bicycle">
+            <div><img src="/img/bike.png" height="20px" /></div>
+        </label>
+        <label class="radio-inline" title="Auto">
+            <input type="radio" name="vehicle" value="car">
+            <div><img src="/img/car.png" height="20px" /></div>
+        </label>
+        <button type="button" class="btn btn-sm btn-success start-navigation inactive">Navigation
+            starten</button>
+        <button type="button" class="close" aria-label="Close" title="Routenplanung abbrechen">
+            <span aria-hidden="true">&times;</span>
+        </button>
+    </div>
+    <div class="results">
+        <div class="container-fluid wait-for-search">
+            <p>
+                Ergebnisse werden geladen
+            </p>
+            <div class="no-internet">
+                <div class="status">
+                    <p>
+                        <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte
+                        Internetverbindung
+                    </p>
+
+                </div>
+            </div>
+            <div>
+                <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
+            </div>
+        </div>
+        <div class="results-container">
+        </div>
+    </div>
+    <div id="waypoint-list-container">
+        <div class="mobiles-window"></div>
+        <div class="route-information">
+            <div class="length"></div>
+            <div class="duration"></div>
+        </div>
+        <div class="container-fluid wait-for-search">
+            <p>
+                Route wird berechnet
+            </p>
+            <div class="no-internet">
+                <div class="status">
+                    <p>
+                        <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte
+                        Internetverbindung
+                    </p>
+
+                </div>
+            </div>
+            <div>
+                <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
+            </div>
+        </div>
+        <ul id="waypoint-list" class="list-unstyled"></ul>
+    </div>
+</figure>
\ No newline at end of file
diff --git a/resources/views/addons/search.blade.php b/resources/views/addons/search.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..b83f3789c333709cda750db1d06ba055b0d51caf
--- /dev/null
+++ b/resources/views/addons/search.blade.php
@@ -0,0 +1,64 @@
+<figure id="search-addon" class="">
+    <form accept-charset="UTF-8" id="search" class="form-inline">
+        <div class="form-group">
+            <div class="input-group">
+                <div class="input-group-addon hidden" id="exit-suggestions">
+                    <span class="glyphicon glyphicon-arrow-left">
+                    </span>
+                </div>
+                <div class="input-group-addon hidden-xs logo">
+                    <div>
+                        <h1>
+                            Maps.MetaGer.de
+                        </h1>
+                    </div>
+                </div>
+                <div class="input-group-addon dropdown inactive" id="options">
+                    <button id="options-button" type="button" data-toggle="dropdown" aria-haspopup="true"
+                        aria-expanded="false" class="glyphicon glyphicon-menu-hamburger"></button>
+                    <ul class="dropdown-menu" aria-labelledby="options-button">
+                        <li class="offline-karten"><a href="#" class="">Offline Karten</a></li>
+                        <li class="hilfe"><a href="javascript:void(null);">Hilfe</a></li>
+                    </ul>
+                </div>
+                <input class="form-control" name="q" placeholder="Karten durchsuchen..." type="text" autocomplete="off"
+                    value="@if(isset($search)){{urldecode($search)}}@endif"/ onsubmit="return false;">
+                <div class="input-group-addon" id="doSearch">
+                    <button type="submit" class="glyphicon glyphicon-search">
+                    </button>
+                </div>
+            </div>
+            <div class="history-container">
+                <div class="searches"></div>
+            </div>
+        </div>
+    </form>
+    <div class="results">
+        <div class="container-fluid wait-for-search">
+            <p>
+                Ergebnisse werden geladen
+            </p>
+            <div class="no-internet">
+                <div class="status">
+                    <p>
+                        <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte
+                        Internetverbindung
+                    </p>
+
+                </div>
+            </div>
+            <div>
+                <p>
+                    <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
+                </p>
+            </div>
+        </div>
+        <div class="results-container" data-status="in">
+
+        </div>
+
+    </div>
+    <div id="result-toggler" class="hidden" title="Ergebnisliste ausklappen">
+        Liste anzeigen
+    </div>
+</figure>
\ No newline at end of file
diff --git a/resources/views/map.blade.php b/resources/views/map.blade.php
index a2d1610de87b8f418c028445bb90bc1f02c7a947..7af81230e1f8b1b9ac2ccfd471f7bbbd5e3322a8 100644
--- a/resources/views/map.blade.php
+++ b/resources/views/map.blade.php
@@ -1,321 +1,95 @@
 <!DOCTYPE html>
 <html lang="de">
-    <head>
-        <meta charset="utf-8"/>
-        <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
-        <meta content="width=device-width, initial-scale=1, user-scalable=no" name="viewport"/>
-        <title>
-            Maps - MetaGer
-        </title>
-        @if(isset($css))
-            @foreach($css as $el)
-                <link href="{{$el}}" rel="stylesheet" type="text/css"/>
-            @endforeach
-        @endif
-        <link rel="stylesheet" type="text/css" href="https://tileserver.metager.de/mapbox-gl.css" />
-        <script src="https://tileserver.metager.de/mapbox-gl.js"></script>
-        <link rel="stylesheet" type="text/css" href="https://tileserver.metager.de/mapbox.css" />
-        <script src="https://tileserver.metager.de/mapbox.js"></script>
-        <script src="https://tileserver.metager.de/leaflet-hash.js"></script>
-    </head>
-    <body>
-        <main>
-            <figure id="hilfe" class="inactive">
-                <iframe src=""></iframe>
-                <span class="close">&#10005;</span>
-            </figure>
-            <figure id="search-addon" class="">
-                <form accept-charset="UTF-8" id="search" class="form-inline">
-                        <div class="form-group">
-                            <div class="input-group">
-                                <div class="input-group-addon hidden" id="exit-suggestions">
-                                    <span class="glyphicon glyphicon-arrow-left">
-                                    </span>
-                                </div>
-                                <div class="input-group-addon hidden-xs logo">
-                                    <div >
-                                        <h1>
-                                            Maps.MetaGer.de
-                                        </h1>
-                                    </div>
-                                </div>
-                                <div class="input-group-addon dropdown inactive" id="options">
-                                    <button id="options-button" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="glyphicon glyphicon-menu-hamburger"></button>
-                                    <ul class="dropdown-menu" aria-labelledby="options-button">
-                                        <li class="offline-karten"><a href="#" class="">Offline Karten</a></li>
-                                        <li class="hilfe"><a href="javascript:void(null);">Hilfe</a></li>
-                                    </ul>
-                                </div>
-                                <input class="form-control" name="q" placeholder="Karten durchsuchen..." type="text" autocomplete="off" value="@if(isset($search)){{urldecode($search)}}@endif"/ onsubmit="return false;">
-                                <div class="input-group-addon" id="doSearch">
-                                    <button type="submit" class="glyphicon glyphicon-search">
-                                    </button>
-                                </div>
-                            </div>
-                            <div class="history-container">
-                                <div class="searches"></div>
-                            </div>
-                        </div>
-                    </form>
-                    <div class="results">
-                        <div class="container-fluid wait-for-search">
-                            <p>
-                                Ergebnisse werden geladen
-                            </p>
-                            <div class="no-internet">
-                                <div class="status">
-                                    <p>
-                                        <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte Internetverbindung
-                                    </p>
 
-                                </div>
-                            </div>
-                            <div>
-                                <p>
-                                    <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
-                                </p>
-                            </div>
-                        </div>
-                        <div class="results-container" data-status="in">
+<head>
+    <meta charset="utf-8" />
+    <meta content="IE=edge" http-equiv="X-UA-Compatible" />
+    <meta content="width=device-width, initial-scale=1, user-scalable=no" name="viewport" />
+    <title>
+        Maps - MetaGer
+    </title>
+    @if(isset($css))
+    @foreach($css as $el)
+    <link href="{{$el}}" rel="stylesheet" type="text/css" />
+    @endforeach
+    @endif
+    <link rel="stylesheet" type="text/css" href="https://tileserver.metager.de/mapbox-gl.css" />
+    <script src="https://tileserver.metager.de/mapbox-gl.js"></script>
+    <link rel="stylesheet" type="text/css" href="https://tileserver.metager.de/mapbox.css" />
+    <script src="https://tileserver.metager.de/mapbox.js"></script>
+    <script src="https://tileserver.metager.de/leaflet-hash.js"></script>
+</head>
 
-                        </div>
+<body>
+    <main>
+        <figure id="hilfe" class="inactive">
+            <iframe src=""></iframe>
+            <span class="close">&#10005;</span>
+        </figure>
 
-                    </div>
-                    <div id="result-toggler" class="hidden" title="Ergebnisliste ausklappen">
-                        Liste anzeigen
-                    </div>
-            </figure>
-            <figure id="route-finder-addon">
-                <div id="vehicle-chooser">
-                    <label class="radio-inline" title="Fußgänger">
-                      <input type="radio" name="vehicle" value="foot"> <div><img src="/img/silhouette-walk.png" height="20px" /></div>
-                    </label>
-                    <label class="radio-inline" title="Fahrrad">
-                      <input type="radio" name="vehicle" value="bicycle"> <div><img src="/img/bike.png" height="20px" /></div>
-                    </label>
-                    <label class="radio-inline" title="Auto">
-                      <input type="radio" name="vehicle" value="car"> <div><img src="/img/car.png" height="20px" /></div>
-                    </label>
-                    <button type="button" class="btn btn-sm btn-success start-navigation inactive">Navigation starten</button>
-                    <button type="button" class="close" aria-label="Close" title="Routenplanung abbrechen">
-                      <span aria-hidden="true">&times;</span>
-                    </button>
-                </div>
-                <div class="results">
-                    <div class="container-fluid wait-for-search">
-                        <p>
-                            Ergebnisse werden geladen
-                        </p>
-                        <div class="no-internet">
-                            <div class="status">
-                                <p>
-                                    <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte Internetverbindung
-                                </p>
+        @include('addons/search')
+        @include('addons/navigation')
+        @include('addons/route')
+        @include('addons/offline')
 
-                            </div>
-                        </div>
-                        <div>
-                            <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
-                        </div>
-                    </div>
-                    <div class="results-container">
-                    </div>
-                </div>
-                <div id="waypoint-list-container" >
-                    <div class="mobiles-window"></div>
-                    <div class="route-information">
-                        <div class="length"></div>
-                        <div class="duration"></div>
-                    </div>
-                    <div class="container-fluid wait-for-search">
-                        <p>
-                            Route wird berechnet
-                        </p>
-                        <div class="no-internet">
-                            <div class="status">
-                                <p>
-                                    <span class="glyphicon glyphicon-warning-sign" style="color:red;"></span> Schlechte Internetverbindung
-                                </p>
+        <div class="map" id="map">
+        </div>
 
-                            </div>
-                        </div>
-                        <div>
-                            <img src="/img/ajax-loader.gif" alt="loading..." id="loading-search-results" />
-                        </div>
-                    </div>
-                    <ul id="waypoint-list" class="list-unstyled"></ul>
-                </div>
-            </figure>
-            <figure id="offline-addon" class="addon">
-                <div id="heading">
-                    <div class="exit">
-                        <span class="glyphicon glyphicon-arrow-left">
-                        </span>
-                    </div>
-                    <div class="logo">
-                        <div>
-                            <h1>
-                                Maps.MetaGer.de
-                                <small>Offline</small>
-                            </h1>
-                        </div>
-                    </div>
-                </div>
-                <div class="results">
-                    <div class="downloaded-areas">
-                        <div class="placeholder no-areas">Noch kein Gebiet heruntergeladen</div>
-                        <div class="placeholder loading-areas"><img src="/img/ajax-loader.gif" alt="loading" /> Lade Gebiete</div>
-                        <div class="add-area placeholder">
-                            <a href="#">+ Gebiet für Download hinzufügen</a>
-                        </div>
-                        <div class="auto-updates palceholder inactive">
-                            <div class="option">
-                                <label class="switch">
-                                  <input type="checkbox" checked>
-                                  <span class="slider round"></span>
-                                </label>
-                            </div>
-                            <div class="text">
-                                Automatische Updates
-                            </div>
-                        </div>
-                    </div>
-                    <div class="area-selection inactive" style="display: flex; align-items: center; text-align:center; font-weight: bold; font-size: 12px;">
-                         <div id="download-information" style="padding: 0 10px;">
-                            <div class="size"></div>
-                            <div class="last-modified"></div>
-                        </div>
-                        <div class="text" style="flex-grow: 1;">Bewege die Karte, sodass das herunterzuladende Gebiet angezeigt wird und klicke rechts auf download.</div>
-                        <div id="start-download" style="padding: 0 20px;color: green;font-size: 20px;">
-                            <span class="glyphicon glyphicon-download-alt inactive"></span>
-                            <img src="/img/ajax-loader.gif" alt="loading" />
-                        </div>
-                    </div>
-                    <div class="download-progress inactive">
-                        <div class="progress">
-                            <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">
-                                0%
-                            </div>
+        <div id="start-navigation" title="Routenplaner starten">
+            <img src="/img/start-navigation.png" alt="Start Navigation" />
+        </div>
+        <div id="gps-error" class="hidden">
+            <span>MetaGer konnte Ihren genauen Standort nicht ermitteln.</span> <a href="/hilfe"
+                target="_blank">Warum?</a>
+        </div>
+    </main>
+    <script>
+        /**
+         * Check for WebGL Support
+         */
+        var canvas = document.createElement('canvas');
+        var gl;
 
-                        </div>
-                        <div class="abort"><span class="glyphicon glyphicon-remove-sign"></span></div>
-                    </div>
-                </div>
-            </figure>
-            <figure id="navigation" class="inactive">
-                <div id="next-step">
-                    <div class="step">
-                        <div class="image">
-                        </div>
-                        <div class="step-string">
-                        </div>
-                        <div class="step-length">
-                        </div>
-            </div>
-                </div>
-                <div id="general-information">
-                    <div class="exit" title="Navigation beenden"><span class="glyphicon glyphicon-remove" style="color: #777;"></span></div>
-                    <div class="information">
-                        <div class="duration"></div>
-                        <div class="seperator">·</div>
-                        <div class="length"></div>
-                        <div class="seperator">·</div>
-                        <div class="time"></div>
-                    </div>
-                </div>
-                <div class="leg-finish">
-                    <div class="container">
-                        <div class="text">Sie haben Ihr Ziel<br> "Gehägestraße 43" <br> erreicht</div>
-                        <div class="information">
-                            <div class="start-time">
-                                <div class="label">Startzeit</div>
-                                <div class="time">
-                                    <span class="glyphicon glyphicon-time"></span>
-                                    7:55
-                                </div>
-                            </div>
-                            <div class="arrival-time">
-                                <div class="label">Ankunftszeit</div>
-                                <div class="time">
-                                    <span class="glyphicon glyphicon-time"></span>
-                                    7:58
-                                </div>
-                            </div>
-                        </div>
-                        <div class="duration">
-                            <div class="label">Dauer</div>
-                            <div class="time">
-                                <span class="glyphicon glyphicon-time"></span>
-                                3 Min <span class="plus"> (+ 5 Min)</span>
-                            </div>
-                        </div>
-                        <div class="options">
-                            <div class="continue">
-                                <a href="javascript:void(0)" class="btn btn-info btn-xs">nächster Wegpunkt</a>
-                            </div>
-                            <div class="abort">
-                                <a href="javascript:void(0)" class="btn btn-info btn-xs">Navigation verlassen</a>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </figure>
-            <div class="map" id="map">
-            </div>
+        try { gl = canvas.getContext("webgl"); }
+        catch (x) { gl = null; }
 
-            <div id="start-navigation" title="Routenplaner starten">
-                <img src="/img/start-navigation.png" alt="Start Navigation" />
-            </div>
-            <div id="gps-error" class="hidden">
-            <span>MetaGer konnte Ihren genauen Standort nicht ermitteln.</span> <a href="/hilfe" target="_blank">Warum?</a>
-            </div>
-        </main>
-        <script>
-            /**
-             * Check for WebGL Support
-             */
-            var canvas = document.createElement('canvas');
-            var gl;
-
-            try { gl = canvas.getContext("webgl"); }
-            catch (x) { gl = null; }
-
-            if (gl == null) {
-                document.getElementsByTagName("body")[0].innerHTML = '<div style="text-align: center; margin-top: 40%; font-size: 18px;">WebGL is required to use MetaGer Maps. Please check your Browser Configuration.</div>';
-            }
-            canvas = undefined;
-        </script>
-        <script>
-            // Script for Serviceworker management
-            // Disable Webworker for the current App since it cannot handle it
-            if(typeof(android) == "undefined" && 1 == 0){
-                if( 'serviceWorker' in navigator ){
-                    window.addEventListener('load', function(){
-                        navigator.serviceWorker.register('/service-worker.js').then(function(registration){
-                            navigator.serviceWorker.controller.postMessage("update-cache");
-                        }, function(err){
-                            console.log('ServiceWorker could not be registered:', err);
-                        });
-                    });
-                    navigator.serviceWorker.addEventListener('message', event => {
-                        var message = event.data;
-                        if(message == "reload"){
-                            console.log("reloading");
-                            location.reload();
-                        }
-                    });
-                }
-            }else if( 'serviceWorker' in navigator ){
-                navigator.serviceWorker.getRegistrations().then(function(registrations) {
-                    registrations.forEach(function(registration){
-                        registration.unregister();
+        if (gl == null) {
+            document.getElementsByTagName("body")[0].innerHTML = '<div style="text-align: center; margin-top: 40%; font-size: 18px;">WebGL is required to use MetaGer Maps. Please check your Browser Configuration.</div>';
+        }
+        canvas = undefined;
+    </script>
+    <script>
+        // Script for Serviceworker management
+        // Disable Webworker for the current App since it cannot handle it
+        if(typeof(android) == "undefined" && 1 == 0){
+            if( 'serviceWorker' in navigator ){
+                window.addEventListener('load', function(){
+                    navigator.serviceWorker.register('/service-worker.js').then(function(registration){
+                        navigator.serviceWorker.controller.postMessage("update-cache");
+                    }, function(err){
+                        console.log('ServiceWorker could not be registered:', err);
                     });
                 });
+                navigator.serviceWorker.addEventListener('message', event => {
+                    var message = event.data;
+                    if(message == "reload"){
+                        console.log("reloading");
+                        location.reload();
+                    }
+                });
             }
-        </script>
-        <script src="/js/turf.min.js" type="text/javascript" defer></script>
-        <script src="{{ mix('/js/modules.js') }}" type="text/javascript" defer></script>
-        <script src="{{ mix('/js/lib.js') }}" type="text/javascript" defer></script>
-        <script src="{{ mix('js/map.js') }}" type="text/javascript" defer></script>
-    </body>
-</html>
+        }else if( 'serviceWorker' in navigator ){
+            navigator.serviceWorker.getRegistrations().then(function(registrations) {
+                registrations.forEach(function(registration){
+                    registration.unregister();
+                });
+            });
+        }
+    </script>
+    <script src="/js/turf.min.js" type="text/javascript" defer></script>
+    <script src="{{ mix('/js/modules.js') }}" type="text/javascript" defer></script>
+    <script src="{{ mix('/js/lib.js') }}" type="text/javascript" defer></script>
+    <script src="{{ mix('js/map.js') }}" type="text/javascript" defer></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 79bd55ab30d0e35637560b785689233a845afe68..229e5988fd8a373e2a641de4efa7775412f8e3f4 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -12,9 +12,9 @@ use Illuminate\Http\Request;
 | contains the "web" middleware group. Now create something great!
 |
  */
+
 Route::get('/', function () {
     return redirect('map');
-
 });
 
 Route::get('/last-modified', function (Request $request) {
@@ -70,7 +70,6 @@ Route::get('files/list', function (Request $request) {
 
     return Response::make(json_encode(["offline-data" => $files]), 200)
         ->header("Content-Type", "application/json");
-
 });
 
 Route::group(['prefix' => 'download'], function () {
diff --git a/webpack.mix.js b/webpack.mix.js
index 71b28722bdd407cc5e232de6ffde416db740c9c0..bf81d22199bad1ec947c60dd1c25eea7f017dc09 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -11,69 +11,58 @@ let mix = require("laravel-mix");
  |
  */
 
+var mapJsFiles = [
+  "resources/assets/js/app.js",
+  "resources/assets/js/map.js",
+  "resources/assets/js/NominatimParser.js",
+  "resources/assets/js/ReversePositionManager.js",
+  "resources/assets/js/GpsManager.js",
+  "resources/assets/js/SearchModule.js",
+  "resources/assets/js/LocalHistory.js",
+  "resources/assets/js/Results.js",
+  "resources/assets/js/RouteFinder.js",
+  "resources/assets/js/Waypoint.js",
+  "resources/assets/js/RouteFinderSearchResults.js",
+  "resources/assets/js/Route.js",
+  "resources/assets/js/Leg.js",
+  "resources/assets/js/Step.js",
+  "resources/assets/js/OfflineModule.js",
+  "resources/assets/js/OfflineModuleAndroidConnector.js",
+  "resources/assets/js/NavigationModule.js"
+];
+
 mix
   .js("resources/assets/js/modules.js", "public/js")
-  .babel([
-    "resources/assets/js/md5.js",
-    "resources/assets/js/jquery.min.js",
-    "resources/assets/js/jquery-ui.min.js",
-    "resources/assets/js/jquery.ui.touch-punch.min.js",
-    "resources/assets/js/bootstrap.min.js"
-  ], "public/js/lib.js");
+  .babel(
+    [
+      "resources/assets/js/md5.js",
+      "resources/assets/js/jquery.min.js",
+      "resources/assets/js/jquery-ui.min.js",
+      "resources/assets/js/jquery.ui.touch-punch.min.js",
+      "resources/assets/js/bootstrap.min.js"
+    ],
+    "public/js/lib.js"
+  );
 if (mix.inProduction()) {
-  mix.babel([
-
-    "resources/assets/js/app.js",
-    "resources/assets/js/map.js",
-    "resources/assets/js/NominatimParser.js",
-    "resources/assets/js/ReversePositionManager.js",
-    "resources/assets/js/GpsManager.js",
-    "resources/assets/js/SearchModule.js",
-    "resources/assets/js/LocalHistory.js",
-    "resources/assets/js/Results.js",
-    "resources/assets/js/RouteFinder.js",
-    "resources/assets/js/Waypoint.js",
-    "resources/assets/js/RouteFinderSearchResults.js",
-    "resources/assets/js/Route.js",
-    "resources/assets/js/Leg.js",
-    "resources/assets/js/Step.js",
-    "resources/assets/js/OfflineModule.js",
-    "resources/assets/js/NavigationModule.js"
-  ],
-    "public/js/map.js");
+  mix.babel(mapJsFiles, "public/js/map.js");
 } else {
-  mix.scripts(
+  mix
+    .scripts(mapJsFiles, "public/js/map-normal.js")
+    .babel("public/js/map-normal.js", "public/js/map.js");
+}
+mix
+  .styles(
     [
-
-      "resources/assets/js/app.js",
-      "resources/assets/js/map.js",
-      "resources/assets/js/NominatimParser.js",
-      "resources/assets/js/ReversePositionManager.js",
-      "resources/assets/js/GpsManager.js",
-      "resources/assets/js/SearchModule.js",
-      "resources/assets/js/LocalHistory.js",
-      "resources/assets/js/Results.js",
-      "resources/assets/js/RouteFinder.js",
-      "resources/assets/js/Waypoint.js",
-      "resources/assets/js/RouteFinderSearchResults.js",
-      "resources/assets/js/Route.js",
-      "resources/assets/js/Leg.js",
-      "resources/assets/js/Step.js",
-      "resources/assets/js/OfflineModule.js",
-      "resources/assets/js/NavigationModule.js"
+      "resources/assets/css/bootstrap.min.css",
+      "resources/assets/css/style.css",
+      "resources/assets/css/staticPages.css"
     ],
-    "public/js/map-normal.js"
+    "public/css/staticPages.css"
+  )
+  .sass(
+    "resources/assets/sass/offline-module.scss",
+    "../resources/assets/css/offline-module.css"
   )
-    .babel("public/js/map-normal.js", "public/js/map.js");
-}
-mix.styles(
-  [
-    "resources/assets/css/bootstrap.min.css",
-    "resources/assets/css/style.css",
-    "resources/assets/css/staticPages.css"
-  ],
-  "public/css/staticPages.css"
-)
   .styles(
     [
       "resources/assets/css/bootstrap.min.css",