diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e0cb80002..65d99dbb6 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -23,4 +23,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: gwt-site
- path: 'target/generated-site/'
+ path: 'content/target/generated-site/'
diff --git a/.gitignore b/.gitignore
index b39850e0b..cefd0358d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,11 @@
target/
.idea/
-gwt-site.iml
+*.iml
.DS_Store
npm-debug.log
node/
node_modules/
-src/main/site/assets/build/css/
-src/main/site/assets/build/img/
-src/main/site/assets/build/js/global.js
-src/main/site/assets/build/js/global.min.js
+content/src/main/site/assets/build/css/
+content/src/main/site/assets/build/img/
+content/src/main/site/assets/build/js/global.js
+content/src/main/site/assets/build/js/global.min.js
diff --git a/README.md b/README.md
index a1ad53f95..c2313f283 100644
--- a/README.md
+++ b/README.md
@@ -10,24 +10,31 @@
* See: https://www.gwtproject.org/makinggwtbetter.html#webpage
+## Requirements
+[Apache Maven](http://maven.apache.org) 3.8 or greater, and JDK 11+ in order to run.
+
## Building
If you have Grunt installed :
* build the assets using Grunt: `grunt`
* then run: `mvn clean install`
-* after that you will find the generated documentation in `target/generated-site/`.
+* after that you will find the generated documentation in `content/target/generated-site/`.
If you don't have Grunt installer :
* build the assets using Maven and Grunt plugin: `mvn clean install -Pgrunt`
-* after that you will find the generated documentation in `target/generated-site/`.
+* after that you will find the generated documentation in `content/target/generated-site/`.
### Running locally
Run the site locally for easy visual testing
Run without server:
-* Change to the `target/generated-site` folder.
+* Change to the `content/target/generated-site` folder.
* Open the `index.html` file in your browser.
Run with Maven:
-* Run: `mvn jetty:run`
+* Run: `mvn -pl content jetty:run`
* Open URL `http://localhost:9999` in your browser.
+
+# gwt-site-webapp
+
+
diff --git a/Gruntfile.js b/content/Gruntfile.js
similarity index 100%
rename from Gruntfile.js
rename to content/Gruntfile.js
diff --git a/content/package-lock.json b/content/package-lock.json
new file mode 100644
index 000000000..8da068b58
--- /dev/null
+++ b/content/package-lock.json
@@ -0,0 +1,5173 @@
+{
+ "name": "GWTSite",
+ "version": "2.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
+ },
+ "dependencies": {
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "ansi-gray": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
+ "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-wrap": "0.1.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "ansi-wrap": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
+ "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==",
+ "dev": true,
+ "optional": true
+ },
+ "archive-type": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
+ "integrity": "sha512-6cAWDM0lUYTbb7F436FAjbBYnsn5E3L2AgTOLzrFfLt7FVM6uJwKUvllE8VjLKTmKCU8PqtWlUAezEYjg5iGqA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-type": "^3.1.0"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+ "dev": true,
+ "optional": true
+ },
+ "array-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+ "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "dev": true
+ },
+ "array-slice": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+ "dev": true
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "optional": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true,
+ "optional": true
+ },
+ "asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha512-u1L0ZLywRziOVjUhRxI0Qg9G+4RnFB9H/Rq40YWn0dieDgO7vAYeJz6jKAO6t/aruzlDFLAPkQTT87e+f8Imaw==",
+ "dev": true,
+ "optional": true
+ },
+ "async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "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": "sha512-/VIpPVIJJlJObJiXkHBJ1RhjDtydBRG/3/dWpsXoVGOShNw5tameXnC7Yys+wpb0p/myItxGmSGgNi/dNlsIiA==",
+ "dev": true,
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha512-JnJpAS0p9RmixkOvW2XwDxxzs1bd4/VAGIl6Q0EC5YOo+p+hqIhtDhn/nmFnB/xUNXbLkpE2mOjgVIBRKD4xYw==",
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "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": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==",
+ "dev": true,
+ "optional": true
+ },
+ "bin-build": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
+ "integrity": "sha512-m8gaq/BdoePIT5RlHW3KNJZwNkg9YtPn2C89x85/0KYIExoHMm3D/RL/Wxrvum9CI6pbF2KUQa8a/WWFudVmng==",
+ "dev": true,
+ "optional": 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"
+ }
+ },
+ "bin-check": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
+ "integrity": "sha512-jf6fesAGnXBynRU3JLpo0qe8vw8JBPBJCKK0v8NV3iH1P2UkQ6UEcIy7uPw1OdWkPUtpmX1uqeyTGrpeKd2CwQ==",
+ "dev": true,
+ "optional": 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": "sha512-o9u3aS7w6RqoH9BErxuilhQG2fn3srr3ZekEEGailMnj5F+0p+R3TXENvO+vGaLnKlmq8xhhh/Fvl1RRxx/FdQ==",
+ "dev": true,
+ "optional": 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": "sha512-3lUeqGAbnWQG7OCfIiHXw1EmzzvAGlMYqqgRahkr7oDeY1Qra8r2DZH2bbfXZI4NA3aaD1Ap+xt8CeVO/fftrw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bin-version": "^1.0.0",
+ "minimist": "^1.1.0",
+ "semver": "^4.0.3",
+ "semver-truncate": "^1.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "bin-wrapper": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
+ "integrity": "sha512-5QEiUnaE7hgRlQxaV2jpeTg0+IA3o4zZ2sduuSqyJCdOuJ1wDuEmM1ntGelDf4ueCOaOam4bOMtOU4W6lG+hUg==",
+ "dev": true,
+ "optional": 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"
+ }
+ },
+ "bl": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
+ "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "body": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
+ "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==",
+ "dev": true,
+ "requires": {
+ "continuable-cache": "^0.3.1",
+ "error": "^7.0.0",
+ "raw-body": "~1.1.0",
+ "safe-json-parse": "~1.0.1"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha512-KbiZEa9/vofNcVJXGwdWWn25reQ3V3dHBWbS07FTF3/TOehLnm9GEhJV4T6ZvGPkShRpmUqYwnaCrkj0mRnP6Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.1.1"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==",
+ "dev": true,
+ "requires": {
+ "pako": "~0.2.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,
+ "optional": 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,
+ "optional": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "optional": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
+ "dev": true,
+ "optional": true
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "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": "sha512-t6B4HXJ3YdJ/lXKhK3nlGW1aAvpQH2FMyHh25SmfdYkQAU3/R2MYo4VrY1DlQuZd8zLNOqWPxZFJILRuTkqaEQ==",
+ "dev": true,
+ "requires": {
+ "file-type": "^3.1.0",
+ "readable-stream": "^2.0.2",
+ "uuid": "^2.0.1",
+ "vinyl": "^1.0.0"
+ }
+ },
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "dev": true,
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ }
+ },
+ "call-bind-apply-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ }
+ },
+ "call-bound": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
+ "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "dev": true,
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "get-intrinsic": "^1.2.6"
+ }
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "capture-stack-trace": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz",
+ "integrity": "sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==",
+ "dev": true,
+ "optional": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true,
+ "optional": true
+ },
+ "caw": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
+ "integrity": "sha512-GIAlMoessjWW8p0mkStU4kMvV35toVCAyOWhUajk7O0d7wJI8F9TDjfrkSoO26b0d1QsnDLmw5I3X+yd6OKorQ==",
+ "dev": true,
+ "optional": 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": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "clap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^1.1.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "optional": 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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==",
+ "dev": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true
+ },
+ "clone-stats": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==",
+ "dev": true
+ },
+ "co": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
+ "integrity": "sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA==",
+ "dev": true,
+ "optional": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "q": "^1.1.2"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "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,
+ "optional": true
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "console-stream": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
+ "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==",
+ "dev": true,
+ "optional": true
+ },
+ "continuable-cache": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
+ "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha512-FFN5KwpvvQTTS5hWPxrU8/QE4kQUc6uwZcrnlMBN82t1MgAtq8mnoDwINBly9Tdr02seeIIhtdF+UH1feBYGog==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "csso": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz",
+ "integrity": "sha512-tckZA0LhyEnToPoQDmncCA+TUS3aoIVl/MsSaoipR52Sfa+H83fJvIHRVOHMFn9zW6kIV1L0D7tUDFFjvN28lg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "clap": "^1.0.9",
+ "source-map": "^0.5.3"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dev": true,
+ "optional": 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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "dateformat": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
+ "decompress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
+ "integrity": "sha512-QCl8WTT4FSft5F+0M0InHKO6UYFfYhw5++vktTKpmUsQ6YUMPcBwMu7Sp3P0lMGk00hTNHohdhfdi9+OswLJuQ==",
+ "dev": true,
+ "optional": 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-tar": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
+ "integrity": "sha512-YuF7b9jA2bnBhf0/HQ/5UDgX5Ogzw1xJz6mWOFRctyOcmZPjJx3jjde9tCBjysvYscutRTPi35Q20mPDA74SKQ==",
+ "dev": true,
+ "optional": 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": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==",
+ "dev": true,
+ "optional": true
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==",
+ "dev": true,
+ "optional": 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": "sha512-UVCUT54LTEf8uqoytmEMVSwTVl/rZJ0o6bUJsJ7psRmICUzCsz9BJ31drbX0NtgwD9cFzIwKProa2yThmVBKvQ==",
+ "dev": true,
+ "optional": 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": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==",
+ "dev": true,
+ "optional": true
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==",
+ "dev": true,
+ "optional": 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": "sha512-umeSWvrmd9/qcmGaf0oAc+Gx7La0B4Uxo+HXoo0HqrjEbCzn7SMiWvmE5sS56B+GqaoJ8z64ORZCRaOzKCYi/w==",
+ "dev": true,
+ "optional": 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": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==",
+ "dev": true,
+ "optional": true
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==",
+ "dev": true,
+ "optional": 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": "sha512-rclee6Q/+aChW77vbHmtGNZi3ko1Qhsp9Brs5mVyhBSeg+K4n+6MHo47y/+7GsmYZuEqVJ46LjwT3/N8N50jZQ==",
+ "dev": true,
+ "optional": 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.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "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,
+ "optional": true
+ },
+ "define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ }
+ },
+ "define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "optional": true
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+ "dev": true
+ },
+ "download": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
+ "integrity": "sha512-yOTsksXxUQ9b/p/HA3g9L97JZThcAKq8v3+Afwhf/kIoV0spu6pOvj+OKQbyGKYAwBGqSPbO+x1pCFSg5ce9OA==",
+ "dev": true,
+ "optional": 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"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dev": true,
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ }
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "duplexify": {
+ "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",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "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": "sha512-0hJGub96skwr+sUojv7zQ0kc9i4jn3SwLiLk8Jr7KDz7aaaMzkN5UX3a/9ZhzC0OfZVyXHhlHcjC0KVOiKZ+HQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "onetime": "^1.0.0",
+ "set-immediate-shim": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz",
+ "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==",
+ "dev": true,
+ "requires": {
+ "string-template": "~0.2.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "dev": true
+ },
+ "es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true
+ },
+ "es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "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
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
+ "dev": true
+ },
+ "exec-buffer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz",
+ "integrity": "sha512-or7SADjL54VpD0Z3mzsJ6LpSLiqy1VLeAuamwa4k1gXVJCKY+5Y2H+DTgAru5UuEzmN2RqiHHGTEjzT5YLnE/A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "rimraf": "^2.2.6",
+ "tempfile": "^1.0.0"
+ }
+ },
+ "exec-series": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
+ "integrity": "sha512-VkmGmKa4oWkVBcPPfSzOEmry9ELWKk4oodvXpmtYmvGD82k/TnT0CGNw9VoxQLYGwNJR6fIaXpHUhBm4tNTSMQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async-each-series": "^1.1.0",
+ "object-assign": "^4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "executable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz",
+ "integrity": "sha512-qZLuUgqTqYRLdF8Gl56y/JhT+X15uPX6y0Vpmj0cF4SCwbswBPc6yxzr1nClQa+SwRQ5Sk9+Mxa3ZBX9t6aWzg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "meow": "^3.1.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==",
+ "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": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==",
+ "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": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "extend": {
+ "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": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==",
+ "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": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "dev": true
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "dev": true,
+ "optional": true
+ },
+ "fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==",
+ "dev": true,
+ "requires": {
+ "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": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ }
+ }
+ },
+ "file-type": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
+ "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
+ "dev": true
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==",
+ "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": "sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg==",
+ "dev": true,
+ "optional": true
+ },
+ "filenamify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
+ "integrity": "sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "filename-reserved-regex": "^1.0.0",
+ "strip-outer": "^1.0.0",
+ "trim-repeated": "^1.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "find-versions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
+ "integrity": "sha512-t0ciYD8XnoFVirFJN2niUJAQ/kyZU5UDSJobyekmiMPCBsYsWd4nd75e7HU2Xf4m+1Y7iLEo3fovNRNIV5MaDQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "array-uniq": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "meow": "^3.5.0",
+ "semver-regex": "^1.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
+ "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "fined": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
+ }
+ },
+ "first-chunk-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+ "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==",
+ "dev": true
+ },
+ "flagged-respawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha512-8HWGSLAPr+AG0hBpsqi5Ob8HrLStN/LWeqhpFl14d7FJgHK48TmgLoALPz69XSUR65YJzDfLUX/BM8+MLJLghQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "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,
+ "optional": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
+ "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
+ "dev": true,
+ "requires": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.0",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ }
+ },
+ "get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "dev": true,
+ "requires": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ }
+ },
+ "get-proxy": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
+ "integrity": "sha512-3cJ+77wC52qD2PqWNXtB2HkU6tQXc/X3hSMtSN0Y8c8nbYMMxF7vpsjH4H0iSt+28l/NK13DKl8iKAVGkqDFnA==",
+ "dev": true,
+ "optional": 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",
+ "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+ "dev": true
+ },
+ "getobject": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
+ "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dev": true,
+ "optional": 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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "gifsicle": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz",
+ "integrity": "sha512-bfwYZooxxqCHpu3qUMn3En9xij/rrQd1fD9TNr+f7r5y/Inqj0WGkL7AeqQffBe/Sd6M/MIHzRKeD9hgI6Xavg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bin-build": "^2.0.0",
+ "bin-wrapper": "^3.0.0",
+ "logalot": "^2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "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": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==",
+ "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": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==",
+ "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": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "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",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "glob-stream": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+ "integrity": "sha512-piN8XVAO2sNxwVLokL4PswgJvK/uQ6+awwXUVRTGF+rRfgCZpn4hOqxiRuTEbU/k3qgKl0DACYQ/0Sge54UMQg==",
+ "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": {
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==",
+ "dev": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==",
+ "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": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "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": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==",
+ "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"
+ }
+ }
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "globule": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
+ "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
+ "dev": true,
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "^4.17.21",
+ "minimatch": "~3.0.2"
+ }
+ },
+ "glogg": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
+ "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "sparkles": "^1.0.0"
+ }
+ },
+ "gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "dev": true
+ },
+ "got": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
+ "integrity": "sha512-1qd54GLxvVgzuidFmw9ze9umxS3rzhdBH6Wt6BTYrTQUXTN01vGGYXwzLzYLowNx8HBH3/c7kRyvx90fh13i7Q==",
+ "dev": true,
+ "optional": 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"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "grunt": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz",
+ "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==",
+ "dev": true,
+ "requires": {
+ "dateformat": "~4.6.2",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.2",
+ "findup-sync": "~5.0.0",
+ "glob": "~7.1.6",
+ "grunt-cli": "~1.4.3",
+ "grunt-known-options": "~2.0.0",
+ "grunt-legacy-log": "~3.0.0",
+ "grunt-legacy-util": "~2.0.1",
+ "iconv-lite": "~0.6.3",
+ "js-yaml": "~3.14.0",
+ "minimatch": "~3.0.4",
+ "nopt": "~3.0.6"
+ },
+ "dependencies": {
+ "grunt-cli": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
+ "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
+ "dev": true,
+ "requires": {
+ "grunt-known-options": "~2.0.0",
+ "interpret": "~1.1.0",
+ "liftup": "~3.0.1",
+ "nopt": "~4.0.1",
+ "v8flags": "~3.2.0"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ }
+ }
+ }
+ }
+ },
+ "grunt-cli": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.5.0.tgz",
+ "integrity": "sha512-rILKAFoU0dzlf22SUfDtq2R1fosChXXlJM5j7wI6uoW8gwmXDXzbUvirlKZSYCdXl3LXFbR+8xyS+WFo+b6vlA==",
+ "dev": true,
+ "requires": {
+ "grunt-known-options": "~2.0.0",
+ "interpret": "~1.1.0",
+ "liftup": "~3.0.1",
+ "nopt": "~5.0.0",
+ "v8flags": "^4.0.1"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "v8flags": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz",
+ "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
+ "integrity": "sha512-QdTmcxe8aim2Z0dFeuSJ+f7fHIeY7PZaTMZxgvosjXwyMhpy2GUR5WHkr12lksHfZVE80v2wUwqF56wyfPUwoQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "source-map": "^0.5.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-imagemin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz",
+ "integrity": "sha512-5QM+e2zgC3eYn6f7XMZnEPQvunp0cSktW7ryyX9wMqv+LB5Q5rgKGwpjUwy5XQovK82JnMAelhodS3ylpKGAxw==",
+ "dev": true,
+ "requires": {
+ "async": "^1.5.2",
+ "chalk": "^1.0.0",
+ "gulp-rename": "^1.2.0",
+ "imagemin": "^4.0.0",
+ "pretty-bytes": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-less": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz",
+ "integrity": "sha512-NI8pp1KL3c43iR6OLWRyla6I5FLSpvbT5R6UzGHvdRDT0cM0WVfDiIAqqnjDL9z7pPr3ZyOrum5Jn1CIATmHxQ==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.0",
+ "chalk": "^1.0.0",
+ "less": "~2.7.1",
+ "lodash": "^4.8.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz",
+ "integrity": "sha512-hdV6W7OwRCcYb6MJoSK8OE/D3dFJ02ykp+UMoGNBGusKxiX0TBreQ0JD/PHMsBUfCmp8vOYEbL9np90qO4bJJQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "maxmin": "^1.1.0",
+ "object.assign": "^4.0.4",
+ "uglify-js": "~2.8.21",
+ "uri-path": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-watch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
+ "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.0",
+ "gaze": "^1.1.0",
+ "lodash": "^4.17.10",
+ "tiny-lr": "^1.1.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
+ "grunt-known-options": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
+ "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
+ "dev": true
+ },
+ "grunt-legacy-log": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz",
+ "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==",
+ "dev": true,
+ "requires": {
+ "colors": "~1.1.2",
+ "grunt-legacy-log-utils": "~2.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.19"
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
+ "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
+ "dev": true,
+ "requires": {
+ "chalk": "~4.1.0",
+ "lodash": "~4.17.19"
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz",
+ "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==",
+ "dev": true,
+ "requires": {
+ "async": "~3.2.0",
+ "exit": "~0.1.2",
+ "getobject": "~1.0.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.21",
+ "underscore.string": "~3.3.5",
+ "which": "~2.0.2"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "gulp-decompress": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
+ "integrity": "sha512-ChTv+4/4BwAdQLUgQoAvLFjYFvxYF6p9Mmf/b19/Lp7yNCvb8+KRkdXV8Gd7XErxtrEh8XDCCVon3DgqW4TgfA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "archive-type": "^3.0.0",
+ "decompress": "^3.0.0",
+ "gulp-util": "^3.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "gulp-rename": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz",
+ "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
+ "dev": true
+ },
+ "gulp-sourcemaps": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
+ "integrity": "sha512-NjRy6+Qb5K1xbwOvPviD3uA4KSq2zsalPL+4vxPQPuL+kKzHjXJL10/kLaESic3LmBto8VIBHr3gIN3F9AjnhA==",
+ "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"
+ },
+ "dependencies": {
+ "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": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "gulp-util": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+ "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==",
+ "dev": true,
+ "optional": 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": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "optional": 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"
+ }
+ },
+ "dateformat": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
+ "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==",
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==",
+ "dev": true,
+ "optional": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "optional": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "vinyl": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+ "integrity": "sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==",
+ "dev": true,
+ "optional": 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": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glogg": "^1.0.0"
+ }
+ },
+ "gzip-size": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
+ "integrity": "sha512-mu66twX6zg8WB6IPfUtrquS7fjwGnDJ7kdVcggd5rpjwBItQKjHtvhu6VcQMkqPYAR7DjWpEaN3xiBSNmxvzPg==",
+ "dev": true,
+ "requires": {
+ "browserify-zlib": "^0.1.4",
+ "concat-stream": "^1.4.1"
+ }
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+ "integrity": "sha512-f8xf2GOR6Rgwc9FPTLNzgwB+JQ2/zMauYXSWmX5YV5acex6VomT0ocSuwR7BfXo5MpHi+jL+saaux2fwsGJDKQ==",
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+ "integrity": "sha512-5Gbp6RAftMYYV3UEI4c4Vv3+a4dQ7taVyvHt+/L6kRt+f4HX1GweAk5UDWN0SvdVnRBzGQ6OG89pGaD9uSFnVw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "^4.9.1",
+ "har-schema": "^1.0.5"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-gulplog": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+ "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "sparkles": "^1.0.0"
+ }
+ },
+ "has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0"
+ }
+ },
+ "has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "dev": true
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha512-X8xbmTc1cbPXcQV4WkLcRMALuyoxhfpFATmyuCxJPOAvrDS4DNnsTAOmKUxMTOWU6TzrTOkxPKwIx5ZOpJVSrg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha512-V6Yw1rIcYV/4JsnggjBU0l4Kr+EXhpwqXRusENU1Xx6ro00IHPHYNynCuBTOZAPlr3AAmLvchH9I7N/VUdvOwQ==",
+ "dev": true,
+ "optional": true
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "http-parser-js": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz",
+ "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha512-iUn0NcRULlDGtqNLN1Jxmzayk8ogm7NToldASyZBpM2qggbphjXzNOiw3piN8tgz+e/DRs6X5gAzFwTI6BCRcg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
+ "dev": true,
+ "optional": true
+ },
+ "imagemin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz",
+ "integrity": "sha512-iJyJW7JAHHGsbmb729CEpEILUXx8xXvczQ8SAS8nT97UPKkawgoMGIuW+It9lyRerPSiB7eliZ/tE2K3Bww5uA==",
+ "dev": true,
+ "requires": {
+ "buffer-to-vinyl": "^1.0.0",
+ "concat-stream": "^1.4.6",
+ "imagemin-gifsicle": "^4.0.0",
+ "imagemin-jpegtran": "^4.0.0",
+ "imagemin-optipng": "^4.0.0",
+ "imagemin-svgo": "^4.0.0",
+ "optional": "^0.1.0",
+ "readable-stream": "^2.0.0",
+ "stream-combiner2": "^1.1.1",
+ "vinyl-fs": "^2.1.1"
+ }
+ },
+ "imagemin-gifsicle": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz",
+ "integrity": "sha512-YrmI8O4hbNLoS7LDG65QwA92k5pRQ0UkJJSeAq44Pc2fWTMUKTLEYjCBBvSC22qKRZUB7nTEezI/hWC5xE6HTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "gifsicle": "^3.0.0",
+ "is-gif": "^1.0.0",
+ "through2": "^0.6.1"
+ }
+ },
+ "imagemin-jpegtran": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz",
+ "integrity": "sha512-rTcs0JPWSPUKJKTc2IoFF4Tes34FLKZLSXkxl4z1fS86/zdSjIutA5VZgte/iZZPzyGzKo+EiFbd/T3p2odt9w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-jpg": "^1.0.0",
+ "jpegtran-bin": "^3.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "imagemin-optipng": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz",
+ "integrity": "sha512-URpRIva07RB3k+v3cUFpMT8sj0MGU349pRfWIZRDrxLrhh0iDxnnzmsD79QCZ4swv51RWgQat3pZnaR8RuQtlg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "exec-buffer": "^2.0.0",
+ "is-png": "^1.0.0",
+ "optipng-bin": "^3.0.0",
+ "through2": "^0.6.1"
+ }
+ },
+ "imagemin-svgo": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz",
+ "integrity": "sha512-kAHl0IIfJcrCdje1z4PcVzz7nE2wMgIX9Nolkyl0nNAjEz2P7c2o0ZrJr1FfhKx372cJPWpttALKQ2rE0UpoZg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-svg": "^1.0.0",
+ "svgo": "^0.6.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
+ "integrity": "sha512-HjpCHTuxbR/6jWJroc/VN+npo5j0T4Vv2TAI5qdEHQx7hsL767MeccGFSsLtF694EiZKTSEqgoeU6DtGFCcuqQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "dev": true,
+ "requires": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "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-bzip2": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
+ "integrity": "sha512-v5DA9z/rmk4UdJtb3N1jYqjvCA5roRVf5Q6vprHOcF6U/98TmAJ/AvbPeRMEOYWDW4eMr/pJj5Fnfe0T2wL1Bg==",
+ "dev": true,
+ "optional": true
+ },
+ "is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.2"
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==",
+ "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": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==",
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
+ },
+ "is-gif": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
+ "integrity": "sha512-WDzHvXD3xfQ5einLRHRH7iReMuPwuXImHikxQeTWP09kGIv2mf2ZM63e9YHVSq9kEgjJuxRSp5AzH8Hga0+lNw==",
+ "dev": true,
+ "optional": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "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": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-jpg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.1.tgz",
+ "integrity": "sha512-X5PVpLMBH/OaeTN8quzbcLTlwXCb/6n3tcfYTtEDzp0ZwAlgAOtIAIBHN4mS5OcscMgO8etZ5Ol1mNrXSqwBVQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-natural-number": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
+ "integrity": "sha512-88gG/Fur5/8RkhB6UonqOuwQfNJvuaDStW/+r6oIB/hOQPUQe7DiiDQq0fitGOnARt+mQl/S6rg6Vku+i0sA4w==",
+ "dev": true,
+ "optional": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true,
+ "optional": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-png": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz",
+ "integrity": "sha512-23Rmps8UEx3Bzqr0JqAtQo0tYP6sDfIfMt1rL9rzlla/zbteftI9LSJoqsIoGgL06sJboDGdVns4RTakAW/WTw==",
+ "dev": true,
+ "optional": true
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==",
+ "dev": true
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==",
+ "dev": true,
+ "optional": true
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "dev": true,
+ "requires": {
+ "is-unc-path": "^1.0.0"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "dev": true,
+ "optional": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz",
+ "integrity": "sha512-o6rxtFf0DlA6nJLX/5IrDRjuRJ4FeSmoFhJW/wKNF8WrcS7jg/zXM5od1HFMVnymFhFWcvLEXXcqUq0Np3e4MA==",
+ "dev": true,
+ "optional": true
+ },
+ "is-tar": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
+ "integrity": "sha512-8sR603bS6APKxcdkQ1e5rAC9JDCxM3OlbGJDWv5ajhHqIh6cTaqcpeOTch1iIeHYY4nHEFTgmCiGSLfvmODH4w==",
+ "dev": true,
+ "optional": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true,
+ "optional": true
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "dev": true,
+ "requires": {
+ "unc-path-regex": "^0.1.2"
+ }
+ },
+ "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,
+ "optional": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==",
+ "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": "sha512-CvG8EtJZ8FyzVOGPzrDorzyN65W1Ld8BVnqshRCah6pFIsprGx3dKgFtjLn/Vw9kGqR4OlR84U7yhT9ZVTyWIQ==",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-zip": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
+ "integrity": "sha512-aym/dLqHZVMW/+bbNrA/eTeWTyW4fE6koLSoFSsM2GF3/pho7aPCcmHFWFLvzHu7MDuf67domYn36GDwU/cJkQ==",
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true,
+ "optional": true
+ },
+ "jpegtran-bin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz",
+ "integrity": "sha512-XdDj5m/ssa1Anieqd8/JVQLrIsBZ6A9rYzASfpNI0/o/rfsmQx1TP3zZ1GvkMMW5sVlqM2RcMjy8bg428UE9fQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bin-build": "^2.0.0",
+ "bin-wrapper": "^3.0.0",
+ "logalot": "^2.0.0"
+ }
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true,
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz",
+ "integrity": "sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "isarray": "^2.0.5",
+ "jsonify": "^0.0.1",
+ "object-keys": "^1.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true,
+ "optional": true
+ },
+ "jsonify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
+ "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
+ "dev": true
+ },
+ "lazy-req": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
+ "integrity": "sha512-Vn/JuGaYykbelAVNAhfVJxuwHQCOSNE6mqMtD+gnd+QORlAHwWVmVFqQga3yWt84G5vAwEwpT6sAsZ+tgJ88/Q==",
+ "dev": true,
+ "optional": true
+ },
+ "lazystream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "less": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz",
+ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.1",
+ "graceful-fs": "^4.1.2",
+ "image-size": "~0.5.0",
+ "mime": "^1.2.11",
+ "mkdirp": "^0.5.0",
+ "promise": "^7.1.1",
+ "request": "2.81.0",
+ "source-map": "^0.5.3"
+ }
+ },
+ "liftup": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
+ "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==",
+ "dev": true,
+ "requires": {
+ "extend": "^3.0.2",
+ "findup-sync": "^4.0.0",
+ "fined": "^1.2.0",
+ "flagged-respawn": "^1.0.1",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.1",
+ "rechoir": "^0.7.0",
+ "resolve": "^1.19.0"
+ },
+ "dependencies": {
+ "findup-sync": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
+ "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "resolve-dir": "^1.0.1"
+ }
+ }
+ }
+ },
+ "livereload-js": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
+ "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._basetostring": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+ "integrity": "sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._basevalues": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+ "integrity": "sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._reescape": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+ "integrity": "sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._reevaluate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+ "integrity": "sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash._root": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.escape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+ "integrity": "sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ==",
+ "dev": true,
+ "optional": 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",
+ "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "dev": true
+ },
+ "lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
+ }
+ },
+ "lodash.restparam": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+ "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.template": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+ "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==",
+ "dev": true,
+ "optional": 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": "sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0"
+ }
+ },
+ "logalot": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
+ "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "figures": "^1.3.5",
+ "squeak": "^1.0.0"
+ }
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "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,
+ "optional": true
+ },
+ "lpad-align": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
+ "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "indent-string": "^2.1.0",
+ "longest": "^1.0.0",
+ "meow": "^3.3.0"
+ }
+ },
+ "make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "dev": true
+ },
+ "math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true
+ },
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
+ "dev": true
+ },
+ "maxmin": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
+ "integrity": "sha512-jypoV6wTPuz/ngkc2sDZnFvpvx14QICNKS/jK9RbkmiQQJZ4JWstIszA8iT/z9tPSF/vXQ5qtG0h65N9tiLIKA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "figures": "^1.0.1",
+ "gzip-size": "^1.0.0",
+ "pretty-bytes": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "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"
+ }
+ },
+ "pretty-bytes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
+ "integrity": "sha512-LNisJvAjy+hruxp3GV4IkZZscTI34+ISfeM1hesB9V6ezIDfXYrBi9TIXVjjMcEB4QFN7tL+dFDEk4s8jMBMyA==",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true
+ }
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "optional": true
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "optional": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "multipipe": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+ "integrity": "sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "duplexer2": "0.0.2"
+ },
+ "dependencies": {
+ "duplexer2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+ "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~1.1.9"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true,
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+ "dev": true,
+ "optional": 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": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha512-1cBMgRxdMWE8KeWCqk2RIOrvUb0XCwYfEsY5/y2NlXyq4Y/RumnOZvTj4Nbr77+Vb2C+kyBoRTdkNOS8L3d/aQ==",
+ "dev": true,
+ "optional": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "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",
+ "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": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha512-VlF07iu3VV3+BTXj43Nmp6Irt/G7j/NgEctUS6IweH1RGhURjjCc2NWtzXFPXXWWfc7hgbXQdtiQu2LGp6MxUg==",
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==",
+ "dev": true,
+ "optional": true
+ },
+ "object-keys": {
+ "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.assign": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
+ "dev": true,
+ "requires": {
+ "array-each": "^1.0.1",
+ "array-slice": "^1.0.0",
+ "for-own": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
+ "dev": true,
+ "requires": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==",
+ "dev": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ },
+ "dependencies": {
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ }
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==",
+ "dev": true,
+ "optional": true
+ },
+ "optional": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
+ "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==",
+ "dev": true
+ },
+ "optipng-bin": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz",
+ "integrity": "sha512-gsHt71VXDuI7ymHq5pBdzKS5Q1dcHLW6V6j13gnutO1mS8ezulK5Q+Xj/9/e6AwtjOResu2/UOBO/AiGrBo6+A==",
+ "dev": true,
+ "optional": 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": "sha512-xQvd8qvx9U1iYY9aVqPpoF5V9uaWJKV6ZGljkh/jkiNX0DiQsjbWvRumbh10QTMDE8DheaOEU8xi0szbrgjzcw==",
+ "dev": true,
+ "requires": {
+ "is-stream": "^1.0.1",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "os-filter-obj": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz",
+ "integrity": "sha512-rohpWX8f46ASEOR77j8ZlJ2j5Rzg0j7gxC73ceZaDeMyE6H3nXnwgEjgg5ySlcT0bDuPUw7qcdWtd8Pzp/FJxg==",
+ "dev": true,
+ "optional": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
+ "dev": true
+ },
+ "parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
+ "dev": true,
+ "requires": {
+ "is-absolute": "^1.0.0",
+ "map-cache": "^0.2.0",
+ "path-root": "^0.1.1"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==",
+ "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": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "parse-node-version": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
+ "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
+ "dev": true,
+ "optional": true
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-root": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+ "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
+ "dev": true,
+ "requires": {
+ "path-root-regex": "^0.1.0"
+ }
+ },
+ "path-root-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+ "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true,
+ "optional": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+ "integrity": "sha512-YHk5ez1hmMR5LOkb9iJkLKqoBlL7WD5M8ljC75ZfzXriuBIVNuecaXuU7e+hOwyqf24Wxhh7Vxgt7Hnw9288Tg==",
+ "dev": true,
+ "optional": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
+ "dev": true,
+ "optional": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==",
+ "dev": true
+ },
+ "pretty-bytes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
+ "integrity": "sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "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": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true,
+ "optional": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true,
+ "optional": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.1.tgz",
+ "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "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
+ }
+ }
+ },
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==",
+ "dev": true,
+ "requires": {
+ "bytes": "1",
+ "string_decoder": "0.10"
+ },
+ "dependencies": {
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+ "dev": true
+ }
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ }
+ },
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha512-DI1drPHbmBcUDWrJ7ull/F2Qb8HkwBncVx8/RpKYFSIACYaVRQReISYPdZz/mt1y1+qMCOrfReTopERmaxtP6w==",
+ "dev": true,
+ "optional": 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",
+ "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rechoir": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
+ "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.9.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "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"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "replace-ext": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+ "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==",
+ "dev": true
+ },
+ "request": {
+ "version": "2.81.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+ "integrity": "sha512-IZnsR7voF0miGSu29EXPRgPTuEsI/+aibNSBbN1pplrfartF5wDYGADz3iD9vmBVf2r00rckWZf8BtS5kk7Niw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~4.2.1",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.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",
+ "performance-now": "^0.2.0",
+ "qs": "~6.4.0",
+ "safe-buffer": "^5.0.1",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.0.0"
+ },
+ "dependencies": {
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-json-parse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
+ "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true,
+ "optional": true
+ },
+ "seek-bzip": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
+ "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "commander": "^2.8.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true
+ },
+ "semver-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
+ "integrity": "sha512-1vZcoRC+LPtHFkLUPyrabsATDSHerxW+hJBN8h04HZOZBuewbXaNROtUVdEPrTdZsWNq6sfsXDhd48GB2xTG4g==",
+ "dev": true,
+ "optional": true
+ },
+ "semver-truncate": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
+ "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "semver": "^5.3.0"
+ }
+ },
+ "set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ }
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==",
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha512-7bgVOAnPj3XjrKY577S+puCKGCRlUrcrEdsMeRXlg9Ghf5df/xNi6sONUa43WrHUd3TjJBF7O04jYoiY0FVa0A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "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,
+ "optional": true
+ },
+ "spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.21",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
+ "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "dev": true
+ },
+ "squeak": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
+ "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==",
+ "dev": true,
+ "optional": 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": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "optional": 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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "stat-mode": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
+ "integrity": "sha512-o+7DC0OM5Jt3+gratXXqfXf62V/CBoqQbT7Kp7jCxTYW2PLOB2/ZSGIfm9T5/QZe1Vw1MCbu6DoB6JnhVtxcJw==",
+ "dev": true,
+ "optional": true
+ },
+ "stream-combiner2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
+ "dev": true,
+ "requires": {
+ "duplexer2": "~0.1.0",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+ "dev": true
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "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,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+ "dev": true,
+ "requires": {
+ "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": "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==",
+ "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": "sha512-+0QvOUTIs3xMridKraQAUSIp/kq7FRt/QjevB40+U6qJfeuPpTDQENFVfAbfZp59GpJkxY+yMdjR5cgKZyR2vg==",
+ "dev": true,
+ "optional": 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": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "optional": 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"
+ }
+ },
+ "is-absolute": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
+ "integrity": "sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-relative": "^0.1.0"
+ }
+ },
+ "is-relative": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
+ "integrity": "sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==",
+ "dev": true,
+ "optional": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "dev": true,
+ "optional": 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,
+ "optional": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "sum-up": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
+ "integrity": "sha512-zw5P8gnhiqokJUWRdR6F4kIIIke0+ubQSGyYUY506GCbJWtV7F6Xuy0j6S125eSX2oF+a8KdivsZ8PlVEH0Mcw==",
+ "dev": true,
+ "optional": 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": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+ "dev": true,
+ "optional": 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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "svgo": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz",
+ "integrity": "sha512-C5A1r5SjFesNoKsmc+kWBxmB04iBGH2D/nFy8HJaME9+SyZKcmqcN8QG+GwxIc7D2+JWhaaW7uaM9+XwfplTEQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "coa": "~1.0.1",
+ "colors": "~1.1.2",
+ "csso": "~2.0.0",
+ "js-yaml": "~3.6.0",
+ "mkdirp": "~0.5.1",
+ "sax": "~1.2.1",
+ "whet.extend": "~0.9.9"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==",
+ "dev": true,
+ "optional": true
+ },
+ "js-yaml": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
+ "integrity": "sha512-BLv3oxhfET+w5fjPwq3PsAsxzi9i3qzU//HMpWVz0A6KplF86HdR9x2TGnv9DXhSUrO7LO8czUiTd3yb3mLSvg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^2.6.0"
+ }
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.2.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "tempfile": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
+ "integrity": "sha512-NjT12fW6pSEKz1eVcADgaKfeM+XZ4+zSaqVz46XH7+CiEwcelnwtGWRRjF1p+xyW2PVgKKKS2UUw1LzRelntxg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-tmpdir": "^1.0.0",
+ "uuid": "^2.0.1"
+ }
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+ "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": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+ "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": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==",
+ "dev": true
+ }
+ }
+ },
+ "through2-filter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+ "integrity": "sha512-miwWajb1B80NvIVKXFPN/o7+vJc4jYUvnZCwvhicRAoTxdD9wbcjri70j+BenCrN/JXEPKDjhpw4iY7yiNsCGg==",
+ "dev": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "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": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "time-stamp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
+ "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==",
+ "dev": true,
+ "optional": true
+ },
+ "timed-out": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
+ "integrity": "sha512-3RB4qgvPkxF/FGPnrzaWLhW1rxNK2sdH0mFjbhxkfTR6QXvcM3EtYm9L44UrhODZrZ+yhDXeMncLqi8QXn2MJg==",
+ "dev": true,
+ "optional": true
+ },
+ "tiny-lr": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
+ "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
+ "dev": true,
+ "requires": {
+ "body": "^5.1.0",
+ "debug": "^3.1.0",
+ "faye-websocket": "~0.10.0",
+ "livereload-js": "^2.3.0",
+ "object-assign": "^4.1.0",
+ "qs": "^6.4.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ }
+ }
+ },
+ "to-absolute-glob": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+ "integrity": "sha512-Vvl5x6zNf9iVG1QTWeknmWrKzZxaeKfIDRibrZCR3b2V/2NlFJuD2HV7P7AVjaKLZNqLPHqyr0jGrW0fTcxCPQ==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1"
+ }
+ },
+ "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,
+ "optional": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
+ "dev": true
+ },
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha512-e0IoVDWx8SDHc/hwFTqJDQ7CCDTEeGhmcT9jkWJjoGQSpgBz20nAMr80E3Tpk7PatJ1b37DQDgJR3CNSzcMOZQ==",
+ "dev": true,
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true,
+ "optional": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
+ "dev": true
+ },
+ "underscore.string": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
+ "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "^1.1.1",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "dev": true,
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ },
+ "dependencies": {
+ "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": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "dev": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha512-pwCcjjhEcpW45JZIySExBHYv5Y9EeL2OIGEfrSKp2dMUFGFv4CpvZkwJbVge8OvGH2BNNtJBx67DuKuJhf+N5Q==",
+ "dev": true,
+ "optional": true
+ },
+ "uri-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
+ "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==",
+ "dev": true
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
+ "dev": true,
+ "optional": 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": "sha512-dQ9cJzMou5OKr6ZzfvwJkCq3rC72PNXhqz0v3EIhF4a3Np+ujr100AhUx2cKx5ei3iymoJpJrPB3sVSEMdqAeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ip-regex": "^1.0.1"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==",
+ "dev": true
+ },
+ "v8flags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
+ "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "vali-date": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+ "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "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",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "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": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "vinyl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+ "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
+ "replace-ext": "0.0.1"
+ }
+ },
+ "vinyl-assign": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
+ "integrity": "sha512-jUVK1MkXgsZDdyUAy0rnrcmPeuR/ZLwsaS377zaaciz9SoDRVPIjHlUcYVcUAzLD+AolsLxMMwSe/VP77lAvow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "vinyl-fs": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
+ "integrity": "sha512-lxMlQW/Wxk/pwhooY3Ut0Q11OH5ZvZfV0Gg1c306fBNWznQ6ZeQaCdE7XX0O/PpGSqgAsHMBxwFgcGxiYW3hZg==",
+ "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": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ },
+ "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": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "ware": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
+ "integrity": "sha512-Y2HUDMktriUm+SR2gZWxlrszcgtXExlhQYZ8QJNYbl22jum00KIUcHJ/h/sdAXhWTJcbSkiMYN9Z2tWbWYSrrw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "wrap-fn": "^0.1.0"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "dev": true
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==",
+ "dev": true,
+ "optional": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==",
+ "dev": true
+ },
+ "wrap-fn": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
+ "integrity": "sha512-xDLdGx0M8JQw9QDAC9s5NUxtg9MI09F6Vbxa2LYoSoCvzJnx2n81YMIfykmXEGsUvuLaxnblJTzhSOjUOX37ag==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "3.1.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/content/package.json
similarity index 100%
rename from package.json
rename to content/package.json
diff --git a/content/pom.xml b/content/pom.xml
new file mode 100644
index 000000000..2529f7385
--- /dev/null
+++ b/content/pom.xml
@@ -0,0 +1,250 @@
+
+ 4.0.0
+
+
+ org.gwtproject.site
+ 2.0-SNAPSHOT
+ gwt-site-parent
+
+ gwt-site-content
+
+ jar
+
+
+ markdown
+ http://www.gwtproject.org
+
+
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+ generated-site
+
+
+ src/main/markdown
+
+
+ src/main/site
+
+
+ src/main/resources
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.1.1
+
+
+ prepare-package
+
+ java
+
+
+ com.google.gwt.site.markdown.MarkDown
+
+ ${basedir}/src/main/markdown/
+ ${basedir}/target/generated-site
+ ${basedir}/src/main/resources/main.tpl
+ ${basedir}/src/main/resources/toc.md
+
+
+
+
+
+
+
+ maven-resources-plugin
+ 2.6
+
+
+ copy doc resources
+
+ prepare-package
+
+ copy-resources
+
+
+
+ woff2
+ woff
+ ttf
+ eot
+
+ ${basedir}/target/generated-site
+
+
+ src/main/site/
+
+ assets/img/*
+ assets/js/*
+ assets/less/*
+
+ true
+
+
+
+
+
+
+
+ maven-dependency-plugin
+
+
+ unpack
+ prepare-package
+
+ unpack
+
+
+
+
+ org.gwtproject
+ gwt-dev
+ 2.12.2
+ javadoc
+
+
+ ${project.build.directory}/generated-site/javadoc/latest
+
+
+
+ unpack-dependencies
+ prepare-package
+
+ unpack-dependencies
+
+
+ org.gwtproject.site
+ gwt-site-webapp
+ true
+ ${project.build.directory}/generated-site/
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ assemble
+ package
+
+ single
+
+
+
+
+
+ src/main/assembly/generated-site.xml
+
+
+
+
+ org.eclipse.jetty
+ jetty-maven-plugin
+ 9.4.28.v20200408
+
+
+ 9999
+
+
+ jar
+
+ ${project.build.directory}/generated-site
+
+
+
+
+
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
+
+ org.commonmark
+ commonmark
+
+ 0.21.0
+
+
+
+ org.commonmark
+ commonmark-ext-gfm-tables
+
+ 0.21.0
+
+
+ commons-io
+ commons-io
+ 2.7
+
+
+ org.gwtproject.site
+ gwt-site-webapp
+ ${project.version}
+ war
+
+
+
+
+
+ grunt
+
+
+
+
+ com.github.eirslett
+ frontend-maven-plugin
+ 1.9.1
+
+
+ install node and npm
+ generate-resources
+
+ install-node-and-npm
+
+
+ v10.16.0
+ 6.9.0
+
+
+
+ npm install
+ generate-resources
+
+ npm
+
+
+ install
+
+
+
+ grunt build
+ generate-resources
+
+ grunt
+
+
+
+ concat uglify imagemin less
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/assembly/generated-site.xml b/content/src/main/assembly/generated-site.xml
similarity index 100%
rename from src/main/assembly/generated-site.xml
rename to content/src/main/assembly/generated-site.xml
diff --git a/src/main/java/com/google/gwt/site/markdown/MDHelper.java b/content/src/main/java/com/google/gwt/site/markdown/MDHelper.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/MDHelper.java
rename to content/src/main/java/com/google/gwt/site/markdown/MDHelper.java
diff --git a/src/main/java/com/google/gwt/site/markdown/MDHelperException.java b/content/src/main/java/com/google/gwt/site/markdown/MDHelperException.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/MDHelperException.java
rename to content/src/main/java/com/google/gwt/site/markdown/MDHelperException.java
diff --git a/src/main/java/com/google/gwt/site/markdown/MDTranslator.java b/content/src/main/java/com/google/gwt/site/markdown/MDTranslator.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/MDTranslator.java
rename to content/src/main/java/com/google/gwt/site/markdown/MDTranslator.java
diff --git a/src/main/java/com/google/gwt/site/markdown/MarkDown.java b/content/src/main/java/com/google/gwt/site/markdown/MarkDown.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/MarkDown.java
rename to content/src/main/java/com/google/gwt/site/markdown/MarkDown.java
diff --git a/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java b/content/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/MarkupWriter.java
rename to content/src/main/java/com/google/gwt/site/markdown/MarkupWriter.java
diff --git a/src/main/java/com/google/gwt/site/markdown/TranslatorException.java b/content/src/main/java/com/google/gwt/site/markdown/TranslatorException.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/TranslatorException.java
rename to content/src/main/java/com/google/gwt/site/markdown/TranslatorException.java
diff --git a/src/main/java/com/google/gwt/site/markdown/Util.java b/content/src/main/java/com/google/gwt/site/markdown/Util.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/Util.java
rename to content/src/main/java/com/google/gwt/site/markdown/Util.java
diff --git a/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java b/content/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java
rename to content/src/main/java/com/google/gwt/site/markdown/fs/FileSystemTraverser.java
diff --git a/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java b/content/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/fs/MDNode.java
rename to content/src/main/java/com/google/gwt/site/markdown/fs/MDNode.java
diff --git a/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java b/content/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/fs/MDParent.java
rename to content/src/main/java/com/google/gwt/site/markdown/fs/MDParent.java
diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java
rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocCreator.java
diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java
rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocFromMdCreator.java
diff --git a/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java b/content/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java
similarity index 100%
rename from src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java
rename to content/src/main/java/com/google/gwt/site/markdown/toc/TocFromTemplateCreator.java
diff --git a/src/main/markdown/GWTPolicy.md b/content/src/main/markdown/GWTPolicy.md
similarity index 100%
rename from src/main/markdown/GWTPolicy.md
rename to content/src/main/markdown/GWTPolicy.md
diff --git a/src/main/markdown/articles/articles.md b/content/src/main/markdown/articles/articles.md
similarity index 100%
rename from src/main/markdown/articles/articles.md
rename to content/src/main/markdown/articles/articles.md
diff --git a/src/main/markdown/articles/config.xml b/content/src/main/markdown/articles/config.xml
similarity index 100%
rename from src/main/markdown/articles/config.xml
rename to content/src/main/markdown/articles/config.xml
diff --git a/src/main/markdown/articles/dom_events_memory_leaks_and_you.md b/content/src/main/markdown/articles/dom_events_memory_leaks_and_you.md
similarity index 100%
rename from src/main/markdown/articles/dom_events_memory_leaks_and_you.md
rename to content/src/main/markdown/articles/dom_events_memory_leaks_and_you.md
diff --git a/src/main/markdown/articles/dynamic_host_page.md b/content/src/main/markdown/articles/dynamic_host_page.md
similarity index 100%
rename from src/main/markdown/articles/dynamic_host_page.md
rename to content/src/main/markdown/articles/dynamic_host_page.md
diff --git a/src/main/markdown/articles/elemental.md b/content/src/main/markdown/articles/elemental.md
similarity index 100%
rename from src/main/markdown/articles/elemental.md
rename to content/src/main/markdown/articles/elemental.md
diff --git a/src/main/markdown/articles/fragment_merging.md b/content/src/main/markdown/articles/fragment_merging.md
similarity index 100%
rename from src/main/markdown/articles/fragment_merging.md
rename to content/src/main/markdown/articles/fragment_merging.md
diff --git a/src/main/markdown/articles/gss_migration.md b/content/src/main/markdown/articles/gss_migration.md
similarity index 100%
rename from src/main/markdown/articles/gss_migration.md
rename to content/src/main/markdown/articles/gss_migration.md
diff --git a/src/main/markdown/articles/gwt-iphone.md b/content/src/main/markdown/articles/gwt-iphone.md
similarity index 100%
rename from src/main/markdown/articles/gwt-iphone.md
rename to content/src/main/markdown/articles/gwt-iphone.md
diff --git a/src/main/markdown/articles/mvp-architecture-2.md b/content/src/main/markdown/articles/mvp-architecture-2.md
similarity index 100%
rename from src/main/markdown/articles/mvp-architecture-2.md
rename to content/src/main/markdown/articles/mvp-architecture-2.md
diff --git a/src/main/markdown/articles/mvp-architecture.md b/content/src/main/markdown/articles/mvp-architecture.md
similarity index 100%
rename from src/main/markdown/articles/mvp-architecture.md
rename to content/src/main/markdown/articles/mvp-architecture.md
diff --git a/src/main/markdown/articles/security_for_gwt_applications.md b/content/src/main/markdown/articles/security_for_gwt_applications.md
similarity index 100%
rename from src/main/markdown/articles/security_for_gwt_applications.md
rename to content/src/main/markdown/articles/security_for_gwt_applications.md
diff --git a/src/main/markdown/articles/superdevmode.md b/content/src/main/markdown/articles/superdevmode.md
similarity index 100%
rename from src/main/markdown/articles/superdevmode.md
rename to content/src/main/markdown/articles/superdevmode.md
diff --git a/src/main/markdown/articles/testing_methodologies_using_gwt.md b/content/src/main/markdown/articles/testing_methodologies_using_gwt.md
similarity index 100%
rename from src/main/markdown/articles/testing_methodologies_using_gwt.md
rename to content/src/main/markdown/articles/testing_methodologies_using_gwt.md
diff --git a/src/main/markdown/articles/using_gwt_for_json_mashups.md b/content/src/main/markdown/articles/using_gwt_for_json_mashups.md
similarity index 100%
rename from src/main/markdown/articles/using_gwt_for_json_mashups.md
rename to content/src/main/markdown/articles/using_gwt_for_json_mashups.md
diff --git a/src/main/markdown/articles/using_gwt_with_hibernate.md b/content/src/main/markdown/articles/using_gwt_with_hibernate.md
similarity index 100%
rename from src/main/markdown/articles/using_gwt_with_hibernate.md
rename to content/src/main/markdown/articles/using_gwt_with_hibernate.md
diff --git a/src/main/markdown/benchmarks.md b/content/src/main/markdown/benchmarks.md
similarity index 100%
rename from src/main/markdown/benchmarks.md
rename to content/src/main/markdown/benchmarks.md
diff --git a/src/main/markdown/books.md b/content/src/main/markdown/books.md
similarity index 100%
rename from src/main/markdown/books.md
rename to content/src/main/markdown/books.md
diff --git a/src/main/markdown/casestudies.md b/content/src/main/markdown/casestudies.md
similarity index 100%
rename from src/main/markdown/casestudies.md
rename to content/src/main/markdown/casestudies.md
diff --git a/src/main/markdown/community-group-charter.md b/content/src/main/markdown/community-group-charter.md
similarity index 100%
rename from src/main/markdown/community-group-charter.md
rename to content/src/main/markdown/community-group-charter.md
diff --git a/src/main/markdown/community.md b/content/src/main/markdown/community.md
similarity index 100%
rename from src/main/markdown/community.md
rename to content/src/main/markdown/community.md
diff --git a/src/main/markdown/config.xml b/content/src/main/markdown/config.xml
similarity index 100%
rename from src/main/markdown/config.xml
rename to content/src/main/markdown/config.xml
diff --git a/src/main/markdown/developer_spotlight.md b/content/src/main/markdown/developer_spotlight.md
similarity index 100%
rename from src/main/markdown/developer_spotlight.md
rename to content/src/main/markdown/developer_spotlight.md
diff --git a/src/main/markdown/doc/config.xml b/content/src/main/markdown/doc/config.xml
similarity index 100%
rename from src/main/markdown/doc/config.xml
rename to content/src/main/markdown/doc/config.xml
diff --git a/src/main/markdown/doc/latest/DevGuide.md b/content/src/main/markdown/doc/latest/DevGuide.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuide.md
rename to content/src/main/markdown/doc/latest/DevGuide.md
diff --git a/src/main/markdown/doc/latest/DevGuideA11y.md b/content/src/main/markdown/doc/latest/DevGuideA11y.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideA11y.md
rename to content/src/main/markdown/doc/latest/DevGuideA11y.md
diff --git a/src/main/markdown/doc/latest/DevGuideAutoBeans.md b/content/src/main/markdown/doc/latest/DevGuideAutoBeans.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideAutoBeans.md
rename to content/src/main/markdown/doc/latest/DevGuideAutoBeans.md
diff --git a/src/main/markdown/doc/latest/DevGuideClientBundle.md b/content/src/main/markdown/doc/latest/DevGuideClientBundle.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideClientBundle.md
rename to content/src/main/markdown/doc/latest/DevGuideClientBundle.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodeSplitting.md b/content/src/main/markdown/doc/latest/DevGuideCodeSplitting.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodeSplitting.md
rename to content/src/main/markdown/doc/latest/DevGuideCodeSplitting.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasics.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasics.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasics.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasics.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsClient.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsCompatibility.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsDeferred.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsDelayed.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsFormatting.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsHistory.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSNI.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJSON.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsJsInterop.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsOverlay.md
diff --git a/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md b/content/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md
rename to content/src/main/markdown/doc/latest/DevGuideCodingBasicsXML.md
diff --git a/src/main/markdown/doc/latest/DevGuideCompileReport.md b/content/src/main/markdown/doc/latest/DevGuideCompileReport.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCompileReport.md
rename to content/src/main/markdown/doc/latest/DevGuideCompileReport.md
diff --git a/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md b/content/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
rename to content/src/main/markdown/doc/latest/DevGuideCompilingAndDebugging.md
diff --git a/src/main/markdown/doc/latest/DevGuideDeploying.md b/content/src/main/markdown/doc/latest/DevGuideDeploying.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideDeploying.md
rename to content/src/main/markdown/doc/latest/DevGuideDeploying.md
diff --git a/src/main/markdown/doc/latest/DevGuideGlossary.md b/content/src/main/markdown/doc/latest/DevGuideGlossary.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideGlossary.md
rename to content/src/main/markdown/doc/latest/DevGuideGlossary.md
diff --git a/src/main/markdown/doc/latest/DevGuideGssVsCss.md b/content/src/main/markdown/doc/latest/DevGuideGssVsCss.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideGssVsCss.md
rename to content/src/main/markdown/doc/latest/DevGuideGssVsCss.md
diff --git a/src/main/markdown/doc/latest/DevGuideHtml5.md b/content/src/main/markdown/doc/latest/DevGuideHtml5.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideHtml5.md
rename to content/src/main/markdown/doc/latest/DevGuideHtml5.md
diff --git a/src/main/markdown/doc/latest/DevGuideHtml5Storage.md b/content/src/main/markdown/doc/latest/DevGuideHtml5Storage.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideHtml5Storage.md
rename to content/src/main/markdown/doc/latest/DevGuideHtml5Storage.md
diff --git a/src/main/markdown/doc/latest/DevGuideI18n.md b/content/src/main/markdown/doc/latest/DevGuideI18n.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideI18n.md
rename to content/src/main/markdown/doc/latest/DevGuideI18n.md
diff --git a/src/main/markdown/doc/latest/DevGuideI18nConstants.md b/content/src/main/markdown/doc/latest/DevGuideI18nConstants.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideI18nConstants.md
rename to content/src/main/markdown/doc/latest/DevGuideI18nConstants.md
diff --git a/src/main/markdown/doc/latest/DevGuideI18nLocale.md b/content/src/main/markdown/doc/latest/DevGuideI18nLocale.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideI18nLocale.md
rename to content/src/main/markdown/doc/latest/DevGuideI18nLocale.md
diff --git a/src/main/markdown/doc/latest/DevGuideI18nMessages.md b/content/src/main/markdown/doc/latest/DevGuideI18nMessages.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideI18nMessages.md
rename to content/src/main/markdown/doc/latest/DevGuideI18nMessages.md
diff --git a/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md b/content/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideI18nPluralForms.md
rename to content/src/main/markdown/doc/latest/DevGuideI18nPluralForms.md
diff --git a/src/main/markdown/doc/latest/DevGuideIE9.md b/content/src/main/markdown/doc/latest/DevGuideIE9.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideIE9.md
rename to content/src/main/markdown/doc/latest/DevGuideIE9.md
diff --git a/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md b/content/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideLightweightMetrics.md
rename to content/src/main/markdown/doc/latest/DevGuideLightweightMetrics.md
diff --git a/src/main/markdown/doc/latest/DevGuideLinkers.md b/content/src/main/markdown/doc/latest/DevGuideLinkers.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideLinkers.md
rename to content/src/main/markdown/doc/latest/DevGuideLinkers.md
diff --git a/src/main/markdown/doc/latest/DevGuideLogging.md b/content/src/main/markdown/doc/latest/DevGuideLogging.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideLogging.md
rename to content/src/main/markdown/doc/latest/DevGuideLogging.md
diff --git a/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md b/content/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md
rename to content/src/main/markdown/doc/latest/DevGuideMvpActivitiesAndPlaces.md
diff --git a/src/main/markdown/doc/latest/DevGuideOptimizing.md b/content/src/main/markdown/doc/latest/DevGuideOptimizing.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideOptimizing.md
rename to content/src/main/markdown/doc/latest/DevGuideOptimizing.md
diff --git a/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md b/content/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideOrganizingProjects.md
rename to content/src/main/markdown/doc/latest/DevGuideOrganizingProjects.md
diff --git a/src/main/markdown/doc/latest/DevGuideRequestFactory.md b/content/src/main/markdown/doc/latest/DevGuideRequestFactory.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideRequestFactory.md
rename to content/src/main/markdown/doc/latest/DevGuideRequestFactory.md
diff --git a/src/main/markdown/doc/latest/DevGuideSecurity.md b/content/src/main/markdown/doc/latest/DevGuideSecurity.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideSecurity.md
rename to content/src/main/markdown/doc/latest/DevGuideSecurity.md
diff --git a/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md b/content/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md
rename to content/src/main/markdown/doc/latest/DevGuideSecurityRpcXsrf.md
diff --git a/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md b/content/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md
rename to content/src/main/markdown/doc/latest/DevGuideSecuritySafeHtml.md
diff --git a/src/main/markdown/doc/latest/DevGuideServerCommunication.md b/content/src/main/markdown/doc/latest/DevGuideServerCommunication.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideServerCommunication.md
rename to content/src/main/markdown/doc/latest/DevGuideServerCommunication.md
diff --git a/src/main/markdown/doc/latest/DevGuideTesting.md b/content/src/main/markdown/doc/latest/DevGuideTesting.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideTesting.md
rename to content/src/main/markdown/doc/latest/DevGuideTesting.md
diff --git a/src/main/markdown/doc/latest/DevGuideTestingCoverage.md b/content/src/main/markdown/doc/latest/DevGuideTestingCoverage.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideTestingCoverage.md
rename to content/src/main/markdown/doc/latest/DevGuideTestingCoverage.md
diff --git a/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md b/content/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md
rename to content/src/main/markdown/doc/latest/DevGuideTestingHtmlUnit.md
diff --git a/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md b/content/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md
rename to content/src/main/markdown/doc/latest/DevGuideTestingRemoteTesting.md
diff --git a/src/main/markdown/doc/latest/DevGuideUi.md b/content/src/main/markdown/doc/latest/DevGuideUi.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUi.md
rename to content/src/main/markdown/doc/latest/DevGuideUi.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiBinder.md b/content/src/main/markdown/doc/latest/DevGuideUiBinder.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiBinder.md
rename to content/src/main/markdown/doc/latest/DevGuideUiBinder.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md b/content/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiBinderI18n.md
rename to content/src/main/markdown/doc/latest/DevGuideUiBinderI18n.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiBrowser.md b/content/src/main/markdown/doc/latest/DevGuideUiBrowser.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiBrowser.md
rename to content/src/main/markdown/doc/latest/DevGuideUiBrowser.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiCellTable.md b/content/src/main/markdown/doc/latest/DevGuideUiCellTable.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiCellTable.md
rename to content/src/main/markdown/doc/latest/DevGuideUiCellTable.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiCellWidgets.md
rename to content/src/main/markdown/doc/latest/DevGuideUiCellWidgets.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiCss.md b/content/src/main/markdown/doc/latest/DevGuideUiCss.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiCss.md
rename to content/src/main/markdown/doc/latest/DevGuideUiCss.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiCustomCells.md b/content/src/main/markdown/doc/latest/DevGuideUiCustomCells.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiCustomCells.md
rename to content/src/main/markdown/doc/latest/DevGuideUiCustomCells.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md
rename to content/src/main/markdown/doc/latest/DevGuideUiCustomWidgets.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiDom.md b/content/src/main/markdown/doc/latest/DevGuideUiDom.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiDom.md
rename to content/src/main/markdown/doc/latest/DevGuideUiDom.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiEditors.md b/content/src/main/markdown/doc/latest/DevGuideUiEditors.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiEditors.md
rename to content/src/main/markdown/doc/latest/DevGuideUiEditors.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiHandlers.md b/content/src/main/markdown/doc/latest/DevGuideUiHandlers.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiHandlers.md
rename to content/src/main/markdown/doc/latest/DevGuideUiHandlers.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiImageBundles.md b/content/src/main/markdown/doc/latest/DevGuideUiImageBundles.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiImageBundles.md
rename to content/src/main/markdown/doc/latest/DevGuideUiImageBundles.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiPanels.md b/content/src/main/markdown/doc/latest/DevGuideUiPanels.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiPanels.md
rename to content/src/main/markdown/doc/latest/DevGuideUiPanels.md
diff --git a/src/main/markdown/doc/latest/DevGuideUiWidgets.md b/content/src/main/markdown/doc/latest/DevGuideUiWidgets.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideUiWidgets.md
rename to content/src/main/markdown/doc/latest/DevGuideUiWidgets.md
diff --git a/src/main/markdown/doc/latest/DevGuideValidation.md b/content/src/main/markdown/doc/latest/DevGuideValidation.md
similarity index 100%
rename from src/main/markdown/doc/latest/DevGuideValidation.md
rename to content/src/main/markdown/doc/latest/DevGuideValidation.md
diff --git a/src/main/markdown/doc/latest/FAQ.md b/content/src/main/markdown/doc/latest/FAQ.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ.md
rename to content/src/main/markdown/doc/latest/FAQ.md
diff --git a/src/main/markdown/doc/latest/FAQ_Client.md b/content/src/main/markdown/doc/latest/FAQ_Client.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_Client.md
rename to content/src/main/markdown/doc/latest/FAQ_Client.md
diff --git a/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md b/content/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md
rename to content/src/main/markdown/doc/latest/FAQ_DebuggingAndCompiling.md
diff --git a/src/main/markdown/doc/latest/FAQ_GettingStarted.md b/content/src/main/markdown/doc/latest/FAQ_GettingStarted.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_GettingStarted.md
rename to content/src/main/markdown/doc/latest/FAQ_GettingStarted.md
diff --git a/src/main/markdown/doc/latest/FAQ_Server.md b/content/src/main/markdown/doc/latest/FAQ_Server.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_Server.md
rename to content/src/main/markdown/doc/latest/FAQ_Server.md
diff --git a/src/main/markdown/doc/latest/FAQ_Troubleshooting.md b/content/src/main/markdown/doc/latest/FAQ_Troubleshooting.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_Troubleshooting.md
rename to content/src/main/markdown/doc/latest/FAQ_Troubleshooting.md
diff --git a/src/main/markdown/doc/latest/FAQ_UI.md b/content/src/main/markdown/doc/latest/FAQ_UI.md
similarity index 100%
rename from src/main/markdown/doc/latest/FAQ_UI.md
rename to content/src/main/markdown/doc/latest/FAQ_UI.md
diff --git a/src/main/markdown/doc/latest/RefCommandLineTools.md b/content/src/main/markdown/doc/latest/RefCommandLineTools.md
similarity index 100%
rename from src/main/markdown/doc/latest/RefCommandLineTools.md
rename to content/src/main/markdown/doc/latest/RefCommandLineTools.md
diff --git a/src/main/markdown/doc/latest/RefGWTClassAPI.md b/content/src/main/markdown/doc/latest/RefGWTClassAPI.md
similarity index 100%
rename from src/main/markdown/doc/latest/RefGWTClassAPI.md
rename to content/src/main/markdown/doc/latest/RefGWTClassAPI.md
diff --git a/src/main/markdown/doc/latest/RefGuide.md b/content/src/main/markdown/doc/latest/RefGuide.md
similarity index 100%
rename from src/main/markdown/doc/latest/RefGuide.md
rename to content/src/main/markdown/doc/latest/RefGuide.md
diff --git a/src/main/markdown/doc/latest/RefJreEmulation.md b/content/src/main/markdown/doc/latest/RefJreEmulation.md
similarity index 100%
rename from src/main/markdown/doc/latest/RefJreEmulation.md
rename to content/src/main/markdown/doc/latest/RefJreEmulation.md
diff --git a/src/main/markdown/doc/latest/RefWidgetGallery.md b/content/src/main/markdown/doc/latest/RefWidgetGallery.md
similarity index 100%
rename from src/main/markdown/doc/latest/RefWidgetGallery.md
rename to content/src/main/markdown/doc/latest/RefWidgetGallery.md
diff --git a/src/main/markdown/doc/latest/ReleaseNotes.md b/content/src/main/markdown/doc/latest/ReleaseNotes.md
similarity index 100%
rename from src/main/markdown/doc/latest/ReleaseNotes.md
rename to content/src/main/markdown/doc/latest/ReleaseNotes.md
diff --git a/src/main/markdown/doc/latest/config.xml b/content/src/main/markdown/doc/latest/config.xml
similarity index 100%
rename from src/main/markdown/doc/latest/config.xml
rename to content/src/main/markdown/doc/latest/config.xml
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/create.md b/content/src/main/markdown/doc/latest/polymer-tutorial/create.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/create.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/create.md
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md b/content/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/elements-applogic.md
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md b/content/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/elements-buildui.md
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/introduction.md b/content/src/main/markdown/doc/latest/polymer-tutorial/introduction.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/introduction.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/introduction.md
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md b/content/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/widgets-applogic.md
diff --git a/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md b/content/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md
similarity index 100%
rename from src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md
rename to content/src/main/markdown/doc/latest/polymer-tutorial/widgets-buildui.md
diff --git a/src/main/markdown/doc/latest/tutorial/JSON.md b/content/src/main/markdown/doc/latest/tutorial/JSON.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/JSON.md
rename to content/src/main/markdown/doc/latest/tutorial/JSON.md
diff --git a/src/main/markdown/doc/latest/tutorial/JSONphp.md b/content/src/main/markdown/doc/latest/tutorial/JSONphp.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/JSONphp.md
rename to content/src/main/markdown/doc/latest/tutorial/JSONphp.md
diff --git a/src/main/markdown/doc/latest/tutorial/JUnit.md b/content/src/main/markdown/doc/latest/tutorial/JUnit.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/JUnit.md
rename to content/src/main/markdown/doc/latest/tutorial/JUnit.md
diff --git a/src/main/markdown/doc/latest/tutorial/RPC.md b/content/src/main/markdown/doc/latest/tutorial/RPC.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/RPC.md
rename to content/src/main/markdown/doc/latest/tutorial/RPC.md
diff --git a/src/main/markdown/doc/latest/tutorial/Xsite.md b/content/src/main/markdown/doc/latest/tutorial/Xsite.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/Xsite.md
rename to content/src/main/markdown/doc/latest/tutorial/Xsite.md
diff --git a/src/main/markdown/doc/latest/tutorial/appengine.md b/content/src/main/markdown/doc/latest/tutorial/appengine.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/appengine.md
rename to content/src/main/markdown/doc/latest/tutorial/appengine.md
diff --git a/src/main/markdown/doc/latest/tutorial/buildui.md b/content/src/main/markdown/doc/latest/tutorial/buildui.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/buildui.md
rename to content/src/main/markdown/doc/latest/tutorial/buildui.md
diff --git a/src/main/markdown/doc/latest/tutorial/clientserver.md b/content/src/main/markdown/doc/latest/tutorial/clientserver.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/clientserver.md
rename to content/src/main/markdown/doc/latest/tutorial/clientserver.md
diff --git a/src/main/markdown/doc/latest/tutorial/codeclient.md b/content/src/main/markdown/doc/latest/tutorial/codeclient.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/codeclient.md
rename to content/src/main/markdown/doc/latest/tutorial/codeclient.md
diff --git a/src/main/markdown/doc/latest/tutorial/compile.md b/content/src/main/markdown/doc/latest/tutorial/compile.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/compile.md
rename to content/src/main/markdown/doc/latest/tutorial/compile.md
diff --git a/src/main/markdown/doc/latest/tutorial/config.xml b/content/src/main/markdown/doc/latest/tutorial/config.xml
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/config.xml
rename to content/src/main/markdown/doc/latest/tutorial/config.xml
diff --git a/src/main/markdown/doc/latest/tutorial/create.md b/content/src/main/markdown/doc/latest/tutorial/create.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/create.md
rename to content/src/main/markdown/doc/latest/tutorial/create.md
diff --git a/src/main/markdown/doc/latest/tutorial/debug.md b/content/src/main/markdown/doc/latest/tutorial/debug.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/debug.md
rename to content/src/main/markdown/doc/latest/tutorial/debug.md
diff --git a/src/main/markdown/doc/latest/tutorial/design.md b/content/src/main/markdown/doc/latest/tutorial/design.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/design.md
rename to content/src/main/markdown/doc/latest/tutorial/design.md
diff --git a/src/main/markdown/doc/latest/tutorial/gettingstarted.md b/content/src/main/markdown/doc/latest/tutorial/gettingstarted.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/gettingstarted.md
rename to content/src/main/markdown/doc/latest/tutorial/gettingstarted.md
diff --git a/src/main/markdown/doc/latest/tutorial/i18n.md b/content/src/main/markdown/doc/latest/tutorial/i18n.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/i18n.md
rename to content/src/main/markdown/doc/latest/tutorial/i18n.md
diff --git a/src/main/markdown/doc/latest/tutorial/index.md b/content/src/main/markdown/doc/latest/tutorial/index.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/index.md
rename to content/src/main/markdown/doc/latest/tutorial/index.md
diff --git a/src/main/markdown/doc/latest/tutorial/manageevents.md b/content/src/main/markdown/doc/latest/tutorial/manageevents.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/manageevents.md
rename to content/src/main/markdown/doc/latest/tutorial/manageevents.md
diff --git a/src/main/markdown/doc/latest/tutorial/style.md b/content/src/main/markdown/doc/latest/tutorial/style.md
similarity index 100%
rename from src/main/markdown/doc/latest/tutorial/style.md
rename to content/src/main/markdown/doc/latest/tutorial/style.md
diff --git a/src/main/markdown/download.md b/content/src/main/markdown/download.md
similarity index 100%
rename from src/main/markdown/download.md
rename to content/src/main/markdown/download.md
diff --git a/src/main/markdown/examples.md b/content/src/main/markdown/examples.md
similarity index 100%
rename from src/main/markdown/examples.md
rename to content/src/main/markdown/examples.md
diff --git a/src/main/markdown/gettingstarted-v2.md b/content/src/main/markdown/gettingstarted-v2.md
similarity index 100%
rename from src/main/markdown/gettingstarted-v2.md
rename to content/src/main/markdown/gettingstarted-v2.md
diff --git a/src/main/markdown/gettingstarted.md b/content/src/main/markdown/gettingstarted.md
similarity index 100%
rename from src/main/markdown/gettingstarted.md
rename to content/src/main/markdown/gettingstarted.md
diff --git a/src/main/markdown/index.md b/content/src/main/markdown/index.md
similarity index 100%
rename from src/main/markdown/index.md
rename to content/src/main/markdown/index.md
diff --git a/src/main/markdown/learnmore-sdk.md b/content/src/main/markdown/learnmore-sdk.md
similarity index 100%
rename from src/main/markdown/learnmore-sdk.md
rename to content/src/main/markdown/learnmore-sdk.md
diff --git a/src/main/markdown/lifeofanissue.md b/content/src/main/markdown/lifeofanissue.md
similarity index 100%
rename from src/main/markdown/lifeofanissue.md
rename to content/src/main/markdown/lifeofanissue.md
diff --git a/src/main/markdown/makinggwtbetter.md b/content/src/main/markdown/makinggwtbetter.md
similarity index 100%
rename from src/main/markdown/makinggwtbetter.md
rename to content/src/main/markdown/makinggwtbetter.md
diff --git a/src/main/markdown/meetingnotes.md b/content/src/main/markdown/meetingnotes.md
similarity index 100%
rename from src/main/markdown/meetingnotes.md
rename to content/src/main/markdown/meetingnotes.md
diff --git a/src/main/markdown/meetingnotes/2015-02-11.md b/content/src/main/markdown/meetingnotes/2015-02-11.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2015-02-11.md
rename to content/src/main/markdown/meetingnotes/2015-02-11.md
diff --git a/src/main/markdown/meetingnotes/2015-06-17.md b/content/src/main/markdown/meetingnotes/2015-06-17.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2015-06-17.md
rename to content/src/main/markdown/meetingnotes/2015-06-17.md
diff --git a/src/main/markdown/meetingnotes/2015-08-19.md b/content/src/main/markdown/meetingnotes/2015-08-19.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2015-08-19.md
rename to content/src/main/markdown/meetingnotes/2015-08-19.md
diff --git a/src/main/markdown/meetingnotes/2015-10-28.md b/content/src/main/markdown/meetingnotes/2015-10-28.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2015-10-28.md
rename to content/src/main/markdown/meetingnotes/2015-10-28.md
diff --git a/src/main/markdown/meetingnotes/2016-01-10.md b/content/src/main/markdown/meetingnotes/2016-01-10.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2016-01-10.md
rename to content/src/main/markdown/meetingnotes/2016-01-10.md
diff --git a/src/main/markdown/meetingnotes/2016-02-10.md b/content/src/main/markdown/meetingnotes/2016-02-10.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2016-02-10.md
rename to content/src/main/markdown/meetingnotes/2016-02-10.md
diff --git a/src/main/markdown/meetingnotes/2016-04-13.md b/content/src/main/markdown/meetingnotes/2016-04-13.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2016-04-13.md
rename to content/src/main/markdown/meetingnotes/2016-04-13.md
diff --git a/src/main/markdown/meetingnotes/2016-07-20.md b/content/src/main/markdown/meetingnotes/2016-07-20.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2016-07-20.md
rename to content/src/main/markdown/meetingnotes/2016-07-20.md
diff --git a/src/main/markdown/meetingnotes/2017-01-11.md b/content/src/main/markdown/meetingnotes/2017-01-11.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2017-01-11.md
rename to content/src/main/markdown/meetingnotes/2017-01-11.md
diff --git a/src/main/markdown/meetingnotes/2017-02-08.md b/content/src/main/markdown/meetingnotes/2017-02-08.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2017-02-08.md
rename to content/src/main/markdown/meetingnotes/2017-02-08.md
diff --git a/src/main/markdown/meetingnotes/2017-03-08.md b/content/src/main/markdown/meetingnotes/2017-03-08.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2017-03-08.md
rename to content/src/main/markdown/meetingnotes/2017-03-08.md
diff --git a/src/main/markdown/meetingnotes/2017-04-12.md b/content/src/main/markdown/meetingnotes/2017-04-12.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2017-04-12.md
rename to content/src/main/markdown/meetingnotes/2017-04-12.md
diff --git a/src/main/markdown/meetingnotes/2017-05-10.md b/content/src/main/markdown/meetingnotes/2017-05-10.md
similarity index 100%
rename from src/main/markdown/meetingnotes/2017-05-10.md
rename to content/src/main/markdown/meetingnotes/2017-05-10.md
diff --git a/src/main/markdown/overview.md b/content/src/main/markdown/overview.md
similarity index 100%
rename from src/main/markdown/overview.md
rename to content/src/main/markdown/overview.md
diff --git a/src/main/markdown/presentations.md b/content/src/main/markdown/presentations.md
similarity index 100%
rename from src/main/markdown/presentations.md
rename to content/src/main/markdown/presentations.md
diff --git a/src/main/markdown/privacy.md b/content/src/main/markdown/privacy.md
similarity index 100%
rename from src/main/markdown/privacy.md
rename to content/src/main/markdown/privacy.md
diff --git a/src/main/markdown/release-notes.md b/content/src/main/markdown/release-notes.md
similarity index 100%
rename from src/main/markdown/release-notes.md
rename to content/src/main/markdown/release-notes.md
diff --git a/src/main/markdown/resources.md b/content/src/main/markdown/resources.md
similarity index 100%
rename from src/main/markdown/resources.md
rename to content/src/main/markdown/resources.md
diff --git a/src/main/markdown/roadmap.md b/content/src/main/markdown/roadmap.md
similarity index 100%
rename from src/main/markdown/roadmap.md
rename to content/src/main/markdown/roadmap.md
diff --git a/src/main/markdown/steering.md b/content/src/main/markdown/steering.md
similarity index 100%
rename from src/main/markdown/steering.md
rename to content/src/main/markdown/steering.md
diff --git a/src/main/markdown/terms.md b/content/src/main/markdown/terms.md
similarity index 100%
rename from src/main/markdown/terms.md
rename to content/src/main/markdown/terms.md
diff --git a/src/main/markdown/usingeclipse.md b/content/src/main/markdown/usingeclipse.md
similarity index 100%
rename from src/main/markdown/usingeclipse.md
rename to content/src/main/markdown/usingeclipse.md
diff --git a/src/main/markdown/usingintellij.md b/content/src/main/markdown/usingintellij.md
similarity index 100%
rename from src/main/markdown/usingintellij.md
rename to content/src/main/markdown/usingintellij.md
diff --git a/src/main/markdown/versions.md b/content/src/main/markdown/versions.md
similarity index 100%
rename from src/main/markdown/versions.md
rename to content/src/main/markdown/versions.md
diff --git a/src/main/markdown/whos_using_gwt.md b/content/src/main/markdown/whos_using_gwt.md
similarity index 100%
rename from src/main/markdown/whos_using_gwt.md
rename to content/src/main/markdown/whos_using_gwt.md
diff --git a/src/main/resources/main.tpl b/content/src/main/resources/main.tpl
similarity index 100%
rename from src/main/resources/main.tpl
rename to content/src/main/resources/main.tpl
diff --git a/src/main/resources/toc.md b/content/src/main/resources/toc.md
similarity index 100%
rename from src/main/resources/toc.md
rename to content/src/main/resources/toc.md
diff --git a/src/main/site/articles/index.html b/content/src/main/site/articles/index.html
similarity index 100%
rename from src/main/site/articles/index.html
rename to content/src/main/site/articles/index.html
diff --git a/src/main/site/assets/build/fonts/icons/icons.css b/content/src/main/site/assets/build/fonts/icons/icons.css
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.css
rename to content/src/main/site/assets/build/fonts/icons/icons.css
diff --git a/src/main/site/assets/build/fonts/icons/icons.eot b/content/src/main/site/assets/build/fonts/icons/icons.eot
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.eot
rename to content/src/main/site/assets/build/fonts/icons/icons.eot
diff --git a/src/main/site/assets/build/fonts/icons/icons.svg b/content/src/main/site/assets/build/fonts/icons/icons.svg
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.svg
rename to content/src/main/site/assets/build/fonts/icons/icons.svg
diff --git a/src/main/site/assets/build/fonts/icons/icons.ttf b/content/src/main/site/assets/build/fonts/icons/icons.ttf
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.ttf
rename to content/src/main/site/assets/build/fonts/icons/icons.ttf
diff --git a/src/main/site/assets/build/fonts/icons/icons.woff b/content/src/main/site/assets/build/fonts/icons/icons.woff
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.woff
rename to content/src/main/site/assets/build/fonts/icons/icons.woff
diff --git a/src/main/site/assets/build/fonts/icons/icons.woff2 b/content/src/main/site/assets/build/fonts/icons/icons.woff2
similarity index 100%
rename from src/main/site/assets/build/fonts/icons/icons.woff2
rename to content/src/main/site/assets/build/fonts/icons/icons.woff2
diff --git a/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js b/content/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js
similarity index 100%
rename from src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js
rename to content/src/main/site/assets/build/js/vendor/jquery-1.11.0.min.js
diff --git a/src/main/site/assets/build/js/vendor/jquery.flexnav.js b/content/src/main/site/assets/build/js/vendor/jquery.flexnav.js
similarity index 100%
rename from src/main/site/assets/build/js/vendor/jquery.flexnav.js
rename to content/src/main/site/assets/build/js/vendor/jquery.flexnav.js
diff --git a/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js b/content/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js
similarity index 100%
rename from src/main/site/assets/build/js/vendor/jquery.flexnav.min.js
rename to content/src/main/site/assets/build/js/vendor/jquery.flexnav.min.js
diff --git a/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js b/content/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js
similarity index 100%
rename from src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js
rename to content/src/main/site/assets/build/js/vendor/modernizr-2.6.2.min.js
diff --git a/src/main/site/assets/img/apple-touch-icon-precomposed.png b/content/src/main/site/assets/img/apple-touch-icon-precomposed.png
similarity index 100%
rename from src/main/site/assets/img/apple-touch-icon-precomposed.png
rename to content/src/main/site/assets/img/apple-touch-icon-precomposed.png
diff --git a/src/main/site/assets/img/logoBig.png b/content/src/main/site/assets/img/logoBig.png
similarity index 100%
rename from src/main/site/assets/img/logoBig.png
rename to content/src/main/site/assets/img/logoBig.png
diff --git a/src/main/site/assets/img/navLogoBig.png b/content/src/main/site/assets/img/navLogoBig.png
similarity index 100%
rename from src/main/site/assets/img/navLogoBig.png
rename to content/src/main/site/assets/img/navLogoBig.png
diff --git a/src/main/site/assets/img/navLogoSmall.png b/content/src/main/site/assets/img/navLogoSmall.png
similarity index 100%
rename from src/main/site/assets/img/navLogoSmall.png
rename to content/src/main/site/assets/img/navLogoSmall.png
diff --git a/src/main/site/assets/js/global.js b/content/src/main/site/assets/js/global.js
similarity index 100%
rename from src/main/site/assets/js/global.js
rename to content/src/main/site/assets/js/global.js
diff --git a/src/main/site/assets/less/colors.less b/content/src/main/site/assets/less/colors.less
similarity index 100%
rename from src/main/site/assets/less/colors.less
rename to content/src/main/site/assets/less/colors.less
diff --git a/src/main/site/assets/less/flexnav.less b/content/src/main/site/assets/less/flexnav.less
similarity index 100%
rename from src/main/site/assets/less/flexnav.less
rename to content/src/main/site/assets/less/flexnav.less
diff --git a/src/main/site/assets/less/functions.less b/content/src/main/site/assets/less/functions.less
similarity index 100%
rename from src/main/site/assets/less/functions.less
rename to content/src/main/site/assets/less/functions.less
diff --git a/src/main/site/assets/less/grid.less b/content/src/main/site/assets/less/grid.less
similarity index 100%
rename from src/main/site/assets/less/grid.less
rename to content/src/main/site/assets/less/grid.less
diff --git a/src/main/site/assets/less/layout.less b/content/src/main/site/assets/less/layout.less
similarity index 100%
rename from src/main/site/assets/less/layout.less
rename to content/src/main/site/assets/less/layout.less
diff --git a/src/main/site/assets/less/normalize.less b/content/src/main/site/assets/less/normalize.less
similarity index 100%
rename from src/main/site/assets/less/normalize.less
rename to content/src/main/site/assets/less/normalize.less
diff --git a/src/main/site/assets/less/print.less b/content/src/main/site/assets/less/print.less
similarity index 100%
rename from src/main/site/assets/less/print.less
rename to content/src/main/site/assets/less/print.less
diff --git a/src/main/site/assets/less/style.less b/content/src/main/site/assets/less/style.less
similarity index 100%
rename from src/main/site/assets/less/style.less
rename to content/src/main/site/assets/less/style.less
diff --git a/src/main/site/css/jenkins-theme.css b/content/src/main/site/css/jenkins-theme.css
similarity index 100%
rename from src/main/site/css/jenkins-theme.css
rename to content/src/main/site/css/jenkins-theme.css
diff --git a/src/main/site/css/main.css b/content/src/main/site/css/main.css
similarity index 100%
rename from src/main/site/css/main.css
rename to content/src/main/site/css/main.css
diff --git a/src/main/site/doc/index.html b/content/src/main/site/doc/index.html
similarity index 100%
rename from src/main/site/doc/index.html
rename to content/src/main/site/doc/index.html
diff --git a/src/main/site/doc/latest/images/AnatomyOfServices.png b/content/src/main/site/doc/latest/images/AnatomyOfServices.png
similarity index 100%
rename from src/main/site/doc/latest/images/AnatomyOfServices.png
rename to content/src/main/site/doc/latest/images/AnatomyOfServices.png
diff --git a/src/main/site/doc/latest/images/Button.png b/content/src/main/site/doc/latest/images/Button.png
similarity index 100%
rename from src/main/site/doc/latest/images/Button.png
rename to content/src/main/site/doc/latest/images/Button.png
diff --git a/src/main/site/doc/latest/images/CellBrowser.png b/content/src/main/site/doc/latest/images/CellBrowser.png
similarity index 100%
rename from src/main/site/doc/latest/images/CellBrowser.png
rename to content/src/main/site/doc/latest/images/CellBrowser.png
diff --git a/src/main/site/doc/latest/images/CellList.png b/content/src/main/site/doc/latest/images/CellList.png
similarity index 100%
rename from src/main/site/doc/latest/images/CellList.png
rename to content/src/main/site/doc/latest/images/CellList.png
diff --git a/src/main/site/doc/latest/images/CheckBox.png b/content/src/main/site/doc/latest/images/CheckBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/CheckBox.png
rename to content/src/main/site/doc/latest/images/CheckBox.png
diff --git a/src/main/site/doc/latest/images/CodeSplittingFragments.odg b/content/src/main/site/doc/latest/images/CodeSplittingFragments.odg
similarity index 100%
rename from src/main/site/doc/latest/images/CodeSplittingFragments.odg
rename to content/src/main/site/doc/latest/images/CodeSplittingFragments.odg
diff --git a/src/main/site/doc/latest/images/CodeSplittingFragments.png b/content/src/main/site/doc/latest/images/CodeSplittingFragments.png
similarity index 100%
rename from src/main/site/doc/latest/images/CodeSplittingFragments.png
rename to content/src/main/site/doc/latest/images/CodeSplittingFragments.png
diff --git a/src/main/site/doc/latest/images/CustomCells-BasicRender.png b/content/src/main/site/doc/latest/images/CustomCells-BasicRender.png
similarity index 100%
rename from src/main/site/doc/latest/images/CustomCells-BasicRender.png
rename to content/src/main/site/doc/latest/images/CustomCells-BasicRender.png
diff --git a/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png b/content/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png
similarity index 100%
rename from src/main/site/doc/latest/images/CustomCells-HandlingEvents.png
rename to content/src/main/site/doc/latest/images/CustomCells-HandlingEvents.png
diff --git a/src/main/site/doc/latest/images/DatePicker.png b/content/src/main/site/doc/latest/images/DatePicker.png
similarity index 100%
rename from src/main/site/doc/latest/images/DatePicker.png
rename to content/src/main/site/doc/latest/images/DatePicker.png
diff --git a/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png b/content/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png
rename to content/src/main/site/doc/latest/images/DevGuideDirectoriesPackageConventions.png
diff --git a/src/main/site/doc/latest/images/DevModeCollage.png b/content/src/main/site/doc/latest/images/DevModeCollage.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevModeCollage.png
rename to content/src/main/site/doc/latest/images/DevModeCollage.png
diff --git a/src/main/site/doc/latest/images/DevModeTypical.jpg b/content/src/main/site/doc/latest/images/DevModeTypical.jpg
similarity index 100%
rename from src/main/site/doc/latest/images/DevModeTypical.jpg
rename to content/src/main/site/doc/latest/images/DevModeTypical.jpg
diff --git a/src/main/site/doc/latest/images/DevelopmentShell1.png b/content/src/main/site/doc/latest/images/DevelopmentShell1.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevelopmentShell1.png
rename to content/src/main/site/doc/latest/images/DevelopmentShell1.png
diff --git a/src/main/site/doc/latest/images/DevelopmentShell2.png b/content/src/main/site/doc/latest/images/DevelopmentShell2.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevelopmentShell2.png
rename to content/src/main/site/doc/latest/images/DevelopmentShell2.png
diff --git a/src/main/site/doc/latest/images/DevelopmentShell3.png b/content/src/main/site/doc/latest/images/DevelopmentShell3.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevelopmentShell3.png
rename to content/src/main/site/doc/latest/images/DevelopmentShell3.png
diff --git a/src/main/site/doc/latest/images/DevelopmentShell4.png b/content/src/main/site/doc/latest/images/DevelopmentShell4.png
similarity index 100%
rename from src/main/site/doc/latest/images/DevelopmentShell4.png
rename to content/src/main/site/doc/latest/images/DevelopmentShell4.png
diff --git a/src/main/site/doc/latest/images/DialogBox.png b/content/src/main/site/doc/latest/images/DialogBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/DialogBox.png
rename to content/src/main/site/doc/latest/images/DialogBox.png
diff --git a/src/main/site/doc/latest/images/DisclosurePanel.png b/content/src/main/site/doc/latest/images/DisclosurePanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/DisclosurePanel.png
rename to content/src/main/site/doc/latest/images/DisclosurePanel.png
diff --git a/src/main/site/doc/latest/images/DockLayoutPanel.png b/content/src/main/site/doc/latest/images/DockLayoutPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/DockLayoutPanel.png
rename to content/src/main/site/doc/latest/images/DockLayoutPanel.png
diff --git a/src/main/site/doc/latest/images/DockPanel.png b/content/src/main/site/doc/latest/images/DockPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/DockPanel.png
rename to content/src/main/site/doc/latest/images/DockPanel.png
diff --git a/src/main/site/doc/latest/images/DockPanel_Showcase.png b/content/src/main/site/doc/latest/images/DockPanel_Showcase.png
similarity index 100%
rename from src/main/site/doc/latest/images/DockPanel_Showcase.png
rename to content/src/main/site/doc/latest/images/DockPanel_Showcase.png
diff --git a/src/main/site/doc/latest/images/FAQ_UILayout1.png b/content/src/main/site/doc/latest/images/FAQ_UILayout1.png
similarity index 100%
rename from src/main/site/doc/latest/images/FAQ_UILayout1.png
rename to content/src/main/site/doc/latest/images/FAQ_UILayout1.png
diff --git a/src/main/site/doc/latest/images/FAQ_UILayout2.png b/content/src/main/site/doc/latest/images/FAQ_UILayout2.png
similarity index 100%
rename from src/main/site/doc/latest/images/FAQ_UILayout2.png
rename to content/src/main/site/doc/latest/images/FAQ_UILayout2.png
diff --git a/src/main/site/doc/latest/images/FAQ_UILayout3.png b/content/src/main/site/doc/latest/images/FAQ_UILayout3.png
similarity index 100%
rename from src/main/site/doc/latest/images/FAQ_UILayout3.png
rename to content/src/main/site/doc/latest/images/FAQ_UILayout3.png
diff --git a/src/main/site/doc/latest/images/FAQ_UILayout4.png b/content/src/main/site/doc/latest/images/FAQ_UILayout4.png
similarity index 100%
rename from src/main/site/doc/latest/images/FAQ_UILayout4.png
rename to content/src/main/site/doc/latest/images/FAQ_UILayout4.png
diff --git a/src/main/site/doc/latest/images/FlowPanel.png b/content/src/main/site/doc/latest/images/FlowPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/FlowPanel.png
rename to content/src/main/site/doc/latest/images/FlowPanel.png
diff --git a/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png b/content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png
similarity index 100%
rename from src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png
rename to content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls1.png
diff --git a/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png b/content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png
similarity index 100%
rename from src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png
rename to content/src/main/site/doc/latest/images/GettingUsedToAsyncCalls2.png
diff --git a/src/main/site/doc/latest/images/HTML5_Badge_64.png b/content/src/main/site/doc/latest/images/HTML5_Badge_64.png
similarity index 100%
rename from src/main/site/doc/latest/images/HTML5_Badge_64.png
rename to content/src/main/site/doc/latest/images/HTML5_Badge_64.png
diff --git a/src/main/site/doc/latest/images/HelloWorld.png b/content/src/main/site/doc/latest/images/HelloWorld.png
similarity index 100%
rename from src/main/site/doc/latest/images/HelloWorld.png
rename to content/src/main/site/doc/latest/images/HelloWorld.png
diff --git a/src/main/site/doc/latest/images/HorizontalPanel.png b/content/src/main/site/doc/latest/images/HorizontalPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/HorizontalPanel.png
rename to content/src/main/site/doc/latest/images/HorizontalPanel.png
diff --git a/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png b/content/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png
similarity index 100%
rename from src/main/site/doc/latest/images/HorizontalPanel_Showcase.png
rename to content/src/main/site/doc/latest/images/HorizontalPanel_Showcase.png
diff --git a/src/main/site/doc/latest/images/HorizontalSplitPanel.png b/content/src/main/site/doc/latest/images/HorizontalSplitPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/HorizontalSplitPanel.png
rename to content/src/main/site/doc/latest/images/HorizontalSplitPanel.png
diff --git a/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png b/content/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png
similarity index 100%
rename from src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png
rename to content/src/main/site/doc/latest/images/HorizontalSplitPanel_Showcase.png
diff --git a/src/main/site/doc/latest/images/HostedMode1.png b/content/src/main/site/doc/latest/images/HostedMode1.png
similarity index 100%
rename from src/main/site/doc/latest/images/HostedMode1.png
rename to content/src/main/site/doc/latest/images/HostedMode1.png
diff --git a/src/main/site/doc/latest/images/Hyperlink.png b/content/src/main/site/doc/latest/images/Hyperlink.png
similarity index 100%
rename from src/main/site/doc/latest/images/Hyperlink.png
rename to content/src/main/site/doc/latest/images/Hyperlink.png
diff --git a/src/main/site/doc/latest/images/LayoutPanel.png b/content/src/main/site/doc/latest/images/LayoutPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/LayoutPanel.png
rename to content/src/main/site/doc/latest/images/LayoutPanel.png
diff --git a/src/main/site/doc/latest/images/ListBox.png b/content/src/main/site/doc/latest/images/ListBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/ListBox.png
rename to content/src/main/site/doc/latest/images/ListBox.png
diff --git a/src/main/site/doc/latest/images/LoggingExample.png b/content/src/main/site/doc/latest/images/LoggingExample.png
similarity index 100%
rename from src/main/site/doc/latest/images/LoggingExample.png
rename to content/src/main/site/doc/latest/images/LoggingExample.png
diff --git a/src/main/site/doc/latest/images/MenuBar.png b/content/src/main/site/doc/latest/images/MenuBar.png
similarity index 100%
rename from src/main/site/doc/latest/images/MenuBar.png
rename to content/src/main/site/doc/latest/images/MenuBar.png
diff --git a/src/main/site/doc/latest/images/PasswordTextBox.png b/content/src/main/site/doc/latest/images/PasswordTextBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/PasswordTextBox.png
rename to content/src/main/site/doc/latest/images/PasswordTextBox.png
diff --git a/src/main/site/doc/latest/images/PopupPanel.png b/content/src/main/site/doc/latest/images/PopupPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/PopupPanel.png
rename to content/src/main/site/doc/latest/images/PopupPanel.png
diff --git a/src/main/site/doc/latest/images/PushButton.png b/content/src/main/site/doc/latest/images/PushButton.png
similarity index 100%
rename from src/main/site/doc/latest/images/PushButton.png
rename to content/src/main/site/doc/latest/images/PushButton.png
diff --git a/src/main/site/doc/latest/images/RadioButton.png b/content/src/main/site/doc/latest/images/RadioButton.png
similarity index 100%
rename from src/main/site/doc/latest/images/RadioButton.png
rename to content/src/main/site/doc/latest/images/RadioButton.png
diff --git a/src/main/site/doc/latest/images/RichTextArea-clipped.png b/content/src/main/site/doc/latest/images/RichTextArea-clipped.png
similarity index 100%
rename from src/main/site/doc/latest/images/RichTextArea-clipped.png
rename to content/src/main/site/doc/latest/images/RichTextArea-clipped.png
diff --git a/src/main/site/doc/latest/images/RichTextArea.png b/content/src/main/site/doc/latest/images/RichTextArea.png
similarity index 100%
rename from src/main/site/doc/latest/images/RichTextArea.png
rename to content/src/main/site/doc/latest/images/RichTextArea.png
diff --git a/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png b/content/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png
similarity index 100%
rename from src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png
rename to content/src/main/site/doc/latest/images/SplitLayoutPanel-gallery.png
diff --git a/src/main/site/doc/latest/images/SplitLayoutPanel.png b/content/src/main/site/doc/latest/images/SplitLayoutPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/SplitLayoutPanel.png
rename to content/src/main/site/doc/latest/images/SplitLayoutPanel.png
diff --git a/src/main/site/doc/latest/images/StackLayoutPanel.png b/content/src/main/site/doc/latest/images/StackLayoutPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/StackLayoutPanel.png
rename to content/src/main/site/doc/latest/images/StackLayoutPanel.png
diff --git a/src/main/site/doc/latest/images/StackPanel.png b/content/src/main/site/doc/latest/images/StackPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/StackPanel.png
rename to content/src/main/site/doc/latest/images/StackPanel.png
diff --git a/src/main/site/doc/latest/images/SuggestBox.png b/content/src/main/site/doc/latest/images/SuggestBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/SuggestBox.png
rename to content/src/main/site/doc/latest/images/SuggestBox.png
diff --git a/src/main/site/doc/latest/images/TabBar.png b/content/src/main/site/doc/latest/images/TabBar.png
similarity index 100%
rename from src/main/site/doc/latest/images/TabBar.png
rename to content/src/main/site/doc/latest/images/TabBar.png
diff --git a/src/main/site/doc/latest/images/TabLayoutPanel.png b/content/src/main/site/doc/latest/images/TabLayoutPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/TabLayoutPanel.png
rename to content/src/main/site/doc/latest/images/TabLayoutPanel.png
diff --git a/src/main/site/doc/latest/images/TabPanel.png b/content/src/main/site/doc/latest/images/TabPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/TabPanel.png
rename to content/src/main/site/doc/latest/images/TabPanel.png
diff --git a/src/main/site/doc/latest/images/TabPanel_Showcase.png b/content/src/main/site/doc/latest/images/TabPanel_Showcase.png
similarity index 100%
rename from src/main/site/doc/latest/images/TabPanel_Showcase.png
rename to content/src/main/site/doc/latest/images/TabPanel_Showcase.png
diff --git a/src/main/site/doc/latest/images/Table.png b/content/src/main/site/doc/latest/images/Table.png
similarity index 100%
rename from src/main/site/doc/latest/images/Table.png
rename to content/src/main/site/doc/latest/images/Table.png
diff --git a/src/main/site/doc/latest/images/TestCoverageFinal.jpg b/content/src/main/site/doc/latest/images/TestCoverageFinal.jpg
similarity index 100%
rename from src/main/site/doc/latest/images/TestCoverageFinal.jpg
rename to content/src/main/site/doc/latest/images/TestCoverageFinal.jpg
diff --git a/src/main/site/doc/latest/images/TestCoverageInitial.jpg b/content/src/main/site/doc/latest/images/TestCoverageInitial.jpg
similarity index 100%
rename from src/main/site/doc/latest/images/TestCoverageInitial.jpg
rename to content/src/main/site/doc/latest/images/TestCoverageInitial.jpg
diff --git a/src/main/site/doc/latest/images/TextArea.png b/content/src/main/site/doc/latest/images/TextArea.png
similarity index 100%
rename from src/main/site/doc/latest/images/TextArea.png
rename to content/src/main/site/doc/latest/images/TextArea.png
diff --git a/src/main/site/doc/latest/images/TextBox.png b/content/src/main/site/doc/latest/images/TextBox.png
similarity index 100%
rename from src/main/site/doc/latest/images/TextBox.png
rename to content/src/main/site/doc/latest/images/TextBox.png
diff --git a/src/main/site/doc/latest/images/ToggleButton.png b/content/src/main/site/doc/latest/images/ToggleButton.png
similarity index 100%
rename from src/main/site/doc/latest/images/ToggleButton.png
rename to content/src/main/site/doc/latest/images/ToggleButton.png
diff --git a/src/main/site/doc/latest/images/Tree.png b/content/src/main/site/doc/latest/images/Tree.png
similarity index 100%
rename from src/main/site/doc/latest/images/Tree.png
rename to content/src/main/site/doc/latest/images/Tree.png
diff --git a/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png b/content/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png
similarity index 100%
rename from src/main/site/doc/latest/images/UnresponsiveScriptDialog.png
rename to content/src/main/site/doc/latest/images/UnresponsiveScriptDialog.png
diff --git a/src/main/site/doc/latest/images/ValidationScreenshot.png b/content/src/main/site/doc/latest/images/ValidationScreenshot.png
similarity index 100%
rename from src/main/site/doc/latest/images/ValidationScreenshot.png
rename to content/src/main/site/doc/latest/images/ValidationScreenshot.png
diff --git a/src/main/site/doc/latest/images/VerticalPanel.png b/content/src/main/site/doc/latest/images/VerticalPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/VerticalPanel.png
rename to content/src/main/site/doc/latest/images/VerticalPanel.png
diff --git a/src/main/site/doc/latest/images/VerticalSplitPanel.png b/content/src/main/site/doc/latest/images/VerticalSplitPanel.png
similarity index 100%
rename from src/main/site/doc/latest/images/VerticalSplitPanel.png
rename to content/src/main/site/doc/latest/images/VerticalSplitPanel.png
diff --git a/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png b/content/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png
similarity index 100%
rename from src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png
rename to content/src/main/site/doc/latest/images/VerticalSplitPanel_Showcase.png
diff --git a/src/main/site/doc/latest/images/WebMode1.png b/content/src/main/site/doc/latest/images/WebMode1.png
similarity index 100%
rename from src/main/site/doc/latest/images/WebMode1.png
rename to content/src/main/site/doc/latest/images/WebMode1.png
diff --git a/src/main/site/doc/latest/images/appengine_lowres.png b/content/src/main/site/doc/latest/images/appengine_lowres.png
similarity index 100%
rename from src/main/site/doc/latest/images/appengine_lowres.png
rename to content/src/main/site/doc/latest/images/appengine_lowres.png
diff --git a/src/main/site/doc/latest/images/apps_mp.png b/content/src/main/site/doc/latest/images/apps_mp.png
similarity index 100%
rename from src/main/site/doc/latest/images/apps_mp.png
rename to content/src/main/site/doc/latest/images/apps_mp.png
diff --git a/src/main/site/doc/latest/images/compileReport-Dependencies.gif b/content/src/main/site/doc/latest/images/compileReport-Dependencies.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-Dependencies.gif
rename to content/src/main/site/doc/latest/images/compileReport-Dependencies.gif
diff --git a/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif b/content/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif
rename to content/src/main/site/doc/latest/images/compileReport-InitialDownloadExample.gif
diff --git a/src/main/site/doc/latest/images/compileReport-Overview.gif b/content/src/main/site/doc/latest/images/compileReport-Overview.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-Overview.gif
rename to content/src/main/site/doc/latest/images/compileReport-Overview.gif
diff --git a/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif b/content/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif
rename to content/src/main/site/doc/latest/images/compileReport-PackageBreakdown.gif
diff --git a/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif b/content/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-PermutationOverview.gif
rename to content/src/main/site/doc/latest/images/compileReport-PermutationOverview.gif
diff --git a/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif b/content/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif
similarity index 100%
rename from src/main/site/doc/latest/images/compileReport-splitPointStatus.gif
rename to content/src/main/site/doc/latest/images/compileReport-splitPointStatus.gif
diff --git a/src/main/site/doc/latest/images/google-plugin.png b/content/src/main/site/doc/latest/images/google-plugin.png
similarity index 100%
rename from src/main/site/doc/latest/images/google-plugin.png
rename to content/src/main/site/doc/latest/images/google-plugin.png
diff --git a/src/main/site/doc/latest/images/gph_logo.png b/content/src/main/site/doc/latest/images/gph_logo.png
similarity index 100%
rename from src/main/site/doc/latest/images/gph_logo.png
rename to content/src/main/site/doc/latest/images/gph_logo.png
diff --git a/src/main/site/doc/latest/images/icon_android.jpg b/content/src/main/site/doc/latest/images/icon_android.jpg
similarity index 100%
rename from src/main/site/doc/latest/images/icon_android.jpg
rename to content/src/main/site/doc/latest/images/icon_android.jpg
diff --git a/src/main/site/doc/latest/images/localStorage.png b/content/src/main/site/doc/latest/images/localStorage.png
similarity index 100%
rename from src/main/site/doc/latest/images/localStorage.png
rename to content/src/main/site/doc/latest/images/localStorage.png
diff --git a/src/main/site/doc/latest/index.html b/content/src/main/site/doc/latest/index.html
similarity index 100%
rename from src/main/site/doc/latest/index.html
rename to content/src/main/site/doc/latest/index.html
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-01.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-02.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-03.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-04.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-05.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-06.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-07.png
diff --git a/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png b/content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png
similarity index 100%
rename from src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png
rename to content/src/main/site/doc/latest/polymer-tutorial/images/todo-list-08.png
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css b/content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.css
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html b/content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/StockWatcher.html
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png b/content/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/images/gwt.png
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/2293D04F6B35190160A90C78400C3926.cache.js
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/images/hborder.png
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/gwt/standard/standard.css
diff --git a/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js b/content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js
similarity index 100%
rename from src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js
rename to content/src/main/site/doc/latest/tutorial/gettingstarted/stockwatcher/stockwatcher.nocache.js
diff --git a/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png b/content/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png
rename to content/src/main/site/doc/latest/tutorial/images/AnatomyOfServices.png
diff --git a/src/main/site/doc/latest/tutorial/images/BuildUI.png b/content/src/main/site/doc/latest/tutorial/images/BuildUI.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/BuildUI.png
rename to content/src/main/site/doc/latest/tutorial/images/BuildUI.png
diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png b/content/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png
rename to content/src/main/site/doc/latest/tutorial/images/CodeClientAddStock.png
diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientBug.png b/content/src/main/site/doc/latest/tutorial/images/CodeClientBug.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CodeClientBug.png
rename to content/src/main/site/doc/latest/tutorial/images/CodeClientBug.png
diff --git a/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg b/content/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg
rename to content/src/main/site/doc/latest/tutorial/images/CodeClientNewJavaClass.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg b/content/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg
rename to content/src/main/site/doc/latest/tutorial/images/CreateEclipseImport.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg b/content/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg
rename to content/src/main/site/doc/latest/tutorial/images/CreateGWTComponents.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png b/content/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png
rename to content/src/main/site/doc/latest/tutorial/images/CreateStarterApplication.png
diff --git a/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png b/content/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png
rename to content/src/main/site/doc/latest/tutorial/images/DebugVariablesBug.png
diff --git a/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png b/content/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png
rename to content/src/main/site/doc/latest/tutorial/images/DeployAppEngineProject.png
diff --git a/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png b/content/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png
rename to content/src/main/site/doc/latest/tutorial/images/DesignStockWatcherFinal.png
diff --git a/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png b/content/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png
rename to content/src/main/site/doc/latest/tutorial/images/DevModeNoEclipse.png
diff --git a/src/main/site/doc/latest/tutorial/images/DevModeTab.png b/content/src/main/site/doc/latest/tutorial/images/DevModeTab.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/DevModeTab.png
rename to content/src/main/site/doc/latest/tutorial/images/DevModeTab.png
diff --git a/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png b/content/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/GWTCompileProject.png
rename to content/src/main/site/doc/latest/tutorial/images/GWTCompileProject.png
diff --git a/src/main/site/doc/latest/tutorial/images/JSONdata.png b/content/src/main/site/doc/latest/tutorial/images/JSONdata.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JSONdata.png
rename to content/src/main/site/doc/latest/tutorial/images/JSONdata.png
diff --git a/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png b/content/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JSONerrormessage.png
rename to content/src/main/site/doc/latest/tutorial/images/JSONerrormessage.png
diff --git a/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png b/content/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png
rename to content/src/main/site/doc/latest/tutorial/images/JSONstockPricesphp.png
diff --git a/src/main/site/doc/latest/tutorial/images/JUnitFailed.png b/content/src/main/site/doc/latest/tutorial/images/JUnitFailed.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JUnitFailed.png
rename to content/src/main/site/doc/latest/tutorial/images/JUnitFailed.png
diff --git a/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png b/content/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png
rename to content/src/main/site/doc/latest/tutorial/images/JUnitSimpleTestDev.png
diff --git a/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png b/content/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png
rename to content/src/main/site/doc/latest/tutorial/images/JUnitcreatetest.png
diff --git a/src/main/site/doc/latest/tutorial/images/ManageEvents.png b/content/src/main/site/doc/latest/tutorial/images/ManageEvents.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/ManageEvents.png
rename to content/src/main/site/doc/latest/tutorial/images/ManageEvents.png
diff --git a/src/main/site/doc/latest/tutorial/images/MissingPlugin.png b/content/src/main/site/doc/latest/tutorial/images/MissingPlugin.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/MissingPlugin.png
rename to content/src/main/site/doc/latest/tutorial/images/MissingPlugin.png
diff --git a/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png b/content/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png
rename to content/src/main/site/doc/latest/tutorial/images/NewWebApplicationProject.png
diff --git a/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png b/content/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/RPCerrormessage.png
rename to content/src/main/site/doc/latest/tutorial/images/RPCerrormessage.png
diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg
rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel1.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg
rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel2.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg
rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel3.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg b/content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg
rename to content/src/main/site/doc/latest/tutorial/images/StockWatcherUIpanel4.jpg
diff --git a/src/main/site/doc/latest/tutorial/images/StyleAfter.png b/content/src/main/site/doc/latest/tutorial/images/StyleAfter.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StyleAfter.png
rename to content/src/main/site/doc/latest/tutorial/images/StyleAfter.png
diff --git a/src/main/site/doc/latest/tutorial/images/StyleBefore.png b/content/src/main/site/doc/latest/tutorial/images/StyleBefore.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StyleBefore.png
rename to content/src/main/site/doc/latest/tutorial/images/StyleBefore.png
diff --git a/src/main/site/doc/latest/tutorial/images/StyleSecondary.png b/content/src/main/site/doc/latest/tutorial/images/StyleSecondary.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/StyleSecondary.png
rename to content/src/main/site/doc/latest/tutorial/images/StyleSecondary.png
diff --git a/src/main/site/doc/latest/tutorial/images/i18nEnglish.png b/content/src/main/site/doc/latest/tutorial/images/i18nEnglish.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/i18nEnglish.png
rename to content/src/main/site/doc/latest/tutorial/images/i18nEnglish.png
diff --git a/src/main/site/doc/latest/tutorial/images/i18nGerman.png b/content/src/main/site/doc/latest/tutorial/images/i18nGerman.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/i18nGerman.png
rename to content/src/main/site/doc/latest/tutorial/images/i18nGerman.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-dashboard.png b/content/src/main/site/doc/latest/tutorial/images/spring-dashboard.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-dashboard.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-dashboard.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-databrowser.png b/content/src/main/site/doc/latest/tutorial/images/spring-databrowser.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-databrowser.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-databrowser.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-devserver.png b/content/src/main/site/doc/latest/tutorial/images/spring-devserver.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-devserver.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-devserver.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-extensions.png b/content/src/main/site/doc/latest/tutorial/images/spring-extensions.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-extensions.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-extensions.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-package.png b/content/src/main/site/doc/latest/tutorial/images/spring-package.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-package.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-package.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-projects.png b/content/src/main/site/doc/latest/tutorial/images/spring-projects.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-projects.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-projects.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-prompt.png b/content/src/main/site/doc/latest/tutorial/images/spring-prompt.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-prompt.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-prompt.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png b/content/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-roo-shell.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-roo-shell.png
diff --git a/src/main/site/doc/latest/tutorial/images/spring-runas.png b/content/src/main/site/doc/latest/tutorial/images/spring-runas.png
similarity index 100%
rename from src/main/site/doc/latest/tutorial/images/spring-runas.png
rename to content/src/main/site/doc/latest/tutorial/images/spring-runas.png
diff --git a/src/main/site/doctype/2.10.0/gwt-module.dtd b/content/src/main/site/doctype/2.10.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.10.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.10.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.11.0/gwt-module.dtd b/content/src/main/site/doctype/2.11.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.11.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.11.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.12.0/gwt-module.dtd b/content/src/main/site/doctype/2.12.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.12.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.12.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.12.1/gwt-module.dtd b/content/src/main/site/doctype/2.12.1/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.12.1/gwt-module.dtd
rename to content/src/main/site/doctype/2.12.1/gwt-module.dtd
diff --git a/src/main/site/doctype/2.12.2/gwt-module.dtd b/content/src/main/site/doctype/2.12.2/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.12.2/gwt-module.dtd
rename to content/src/main/site/doctype/2.12.2/gwt-module.dtd
diff --git a/src/main/site/doctype/2.4.0/gwt-module.dtd b/content/src/main/site/doctype/2.4.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.4.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.4.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.5.0/gwt-module.dtd b/content/src/main/site/doctype/2.5.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.5.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.5.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.5.1/gwt-module.dtd b/content/src/main/site/doctype/2.5.1/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.5.1/gwt-module.dtd
rename to content/src/main/site/doctype/2.5.1/gwt-module.dtd
diff --git a/src/main/site/doctype/2.6.0/gwt-module.dtd b/content/src/main/site/doctype/2.6.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.6.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.6.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.6.1/gwt-module.dtd b/content/src/main/site/doctype/2.6.1/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.6.1/gwt-module.dtd
rename to content/src/main/site/doctype/2.6.1/gwt-module.dtd
diff --git a/src/main/site/doctype/2.7.0/gwt-module.dtd b/content/src/main/site/doctype/2.7.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.7.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.7.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.8.0/gwt-module.dtd b/content/src/main/site/doctype/2.8.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.8.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.8.0/gwt-module.dtd
diff --git a/src/main/site/doctype/2.8.1/gwt-module.dtd b/content/src/main/site/doctype/2.8.1/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.8.1/gwt-module.dtd
rename to content/src/main/site/doctype/2.8.1/gwt-module.dtd
diff --git a/src/main/site/doctype/2.8.2/gwt-module.dtd b/content/src/main/site/doctype/2.8.2/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.8.2/gwt-module.dtd
rename to content/src/main/site/doctype/2.8.2/gwt-module.dtd
diff --git a/src/main/site/doctype/2.9.0/gwt-module.dtd b/content/src/main/site/doctype/2.9.0/gwt-module.dtd
similarity index 100%
rename from src/main/site/doctype/2.9.0/gwt-module.dtd
rename to content/src/main/site/doctype/2.9.0/gwt-module.dtd
diff --git a/src/main/site/images/I18N.jpg b/content/src/main/site/images/I18N.jpg
similarity index 100%
rename from src/main/site/images/I18N.jpg
rename to content/src/main/site/images/I18N.jpg
diff --git a/src/main/site/images/app_gal_blueprint.png b/content/src/main/site/images/app_gal_blueprint.png
similarity index 100%
rename from src/main/site/images/app_gal_blueprint.png
rename to content/src/main/site/images/app_gal_blueprint.png
diff --git a/src/main/site/images/app_gal_contactoffice.png b/content/src/main/site/images/app_gal_contactoffice.png
similarity index 100%
rename from src/main/site/images/app_gal_contactoffice.png
rename to content/src/main/site/images/app_gal_contactoffice.png
diff --git a/src/main/site/images/app_gal_dotemplate.jpg b/content/src/main/site/images/app_gal_dotemplate.jpg
similarity index 100%
rename from src/main/site/images/app_gal_dotemplate.jpg
rename to content/src/main/site/images/app_gal_dotemplate.jpg
diff --git a/src/main/site/images/app_gal_gogrid.png b/content/src/main/site/images/app_gal_gogrid.png
similarity index 100%
rename from src/main/site/images/app_gal_gogrid.png
rename to content/src/main/site/images/app_gal_gogrid.png
diff --git a/src/main/site/images/app_gal_iphonereader.png b/content/src/main/site/images/app_gal_iphonereader.png
similarity index 100%
rename from src/main/site/images/app_gal_iphonereader.png
rename to content/src/main/site/images/app_gal_iphonereader.png
diff --git a/src/main/site/images/app_gal_kaching.png b/content/src/main/site/images/app_gal_kaching.png
similarity index 100%
rename from src/main/site/images/app_gal_kaching.png
rename to content/src/main/site/images/app_gal_kaching.png
diff --git a/src/main/site/images/app_gal_queweb.png b/content/src/main/site/images/app_gal_queweb.png
similarity index 100%
rename from src/main/site/images/app_gal_queweb.png
rename to content/src/main/site/images/app_gal_queweb.png
diff --git a/src/main/site/images/app_gal_riflethru.png b/content/src/main/site/images/app_gal_riflethru.png
similarity index 100%
rename from src/main/site/images/app_gal_riflethru.png
rename to content/src/main/site/images/app_gal_riflethru.png
diff --git a/src/main/site/images/app_gal_scenechronize.png b/content/src/main/site/images/app_gal_scenechronize.png
similarity index 100%
rename from src/main/site/images/app_gal_scenechronize.png
rename to content/src/main/site/images/app_gal_scenechronize.png
diff --git a/src/main/site/images/app_gal_studyblue.png b/content/src/main/site/images/app_gal_studyblue.png
similarity index 100%
rename from src/main/site/images/app_gal_studyblue.png
rename to content/src/main/site/images/app_gal_studyblue.png
diff --git a/src/main/site/images/app_gal_typeracer.png b/content/src/main/site/images/app_gal_typeracer.png
similarity index 100%
rename from src/main/site/images/app_gal_typeracer.png
rename to content/src/main/site/images/app_gal_typeracer.png
diff --git a/src/main/site/images/app_gal_venda.png b/content/src/main/site/images/app_gal_venda.png
similarity index 100%
rename from src/main/site/images/app_gal_venda.png
rename to content/src/main/site/images/app_gal_venda.png
diff --git a/src/main/site/images/app_gal_whirled.png b/content/src/main/site/images/app_gal_whirled.png
similarity index 100%
rename from src/main/site/images/app_gal_whirled.png
rename to content/src/main/site/images/app_gal_whirled.png
diff --git a/src/main/site/images/arrow-48.png b/content/src/main/site/images/arrow-48.png
similarity index 100%
rename from src/main/site/images/arrow-48.png
rename to content/src/main/site/images/arrow-48.png
diff --git a/src/main/site/images/arrow-closed.png b/content/src/main/site/images/arrow-closed.png
similarity index 100%
rename from src/main/site/images/arrow-closed.png
rename to content/src/main/site/images/arrow-closed.png
diff --git a/src/main/site/images/arrow-md.png b/content/src/main/site/images/arrow-md.png
similarity index 100%
rename from src/main/site/images/arrow-md.png
rename to content/src/main/site/images/arrow-md.png
diff --git a/src/main/site/images/arrow-open.png b/content/src/main/site/images/arrow-open.png
similarity index 100%
rename from src/main/site/images/arrow-open.png
rename to content/src/main/site/images/arrow-open.png
diff --git a/src/main/site/images/bookedin.png b/content/src/main/site/images/bookedin.png
similarity index 100%
rename from src/main/site/images/bookedin.png
rename to content/src/main/site/images/bookedin.png
diff --git a/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png b/content/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png
similarity index 100%
rename from src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png
rename to content/src/main/site/images/books/Developing_with_Ext_GWT_Enterprise_RIA_Development.png
diff --git a/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg b/content/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg
similarity index 100%
rename from src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg
rename to content/src/main/site/images/books/Essential_GWT_Building_for_the_Web_with_Google_Web_Toolkit_2.jpg
diff --git a/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg b/content/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg
similarity index 100%
rename from src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg
rename to content/src/main/site/images/books/ExtGWT_Rich_Internet_Application_Cookbook.jpg
diff --git a/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg b/content/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg
similarity index 100%
rename from src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg
rename to content/src/main/site/images/books/Ext_GWT_20_Beginners_Guide.jpg
diff --git a/src/main/site/images/books/GWT_in_Practice.jpg b/content/src/main/site/images/books/GWT_in_Practice.jpg
similarity index 100%
rename from src/main/site/images/books/GWT_in_Practice.jpg
rename to content/src/main/site/images/books/GWT_in_Practice.jpg
diff --git a/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg b/content/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg
similarity index 100%
rename from src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg
rename to content/src/main/site/images/books/Google_App_Engine_Java_and_GWT_Application_Development.jpg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg
rename to content/src/main/site/images/books/Google_Web_Toolkit_2_Application_Development_Cookbook.jpg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg
rename to content/src/main/site/images/books/Google_Web_Toolkit_Applications.jpeg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg
rename to content/src/main/site/images/books/Google_Web_Toolkit_GWT_Java_AJAX_Programming.jpg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg
rename to content/src/main/site/images/books/Google_Web_Toolkit_Solutions_Digital_Short_Cut_Cool_Useful_Stuff.jpeg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg b/content/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg
rename to content/src/main/site/images/books/Google_Web_Toolkit_Solutions_More_Cool_Useful_Stuff.jpeg
diff --git a/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg b/content/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg
similarity index 100%
rename from src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg
rename to content/src/main/site/images/books/Google_Web_Toolkit_Taking_the_Pain_Out_of_Ajax.jpg
diff --git a/src/main/site/images/books/Vaadin_7_Cookbook.jpg b/content/src/main/site/images/books/Vaadin_7_Cookbook.jpg
similarity index 100%
rename from src/main/site/images/books/Vaadin_7_Cookbook.jpg
rename to content/src/main/site/images/books/Vaadin_7_Cookbook.jpg
diff --git a/src/main/site/images/books/Vaadin_Recipes.jpg b/content/src/main/site/images/books/Vaadin_Recipes.jpg
similarity index 100%
rename from src/main/site/images/books/Vaadin_Recipes.jpg
rename to content/src/main/site/images/books/Vaadin_Recipes.jpg
diff --git a/src/main/site/images/books/gwt_in_action.jpg b/content/src/main/site/images/books/gwt_in_action.jpg
similarity index 100%
rename from src/main/site/images/books/gwt_in_action.jpg
rename to content/src/main/site/images/books/gwt_in_action.jpg
diff --git a/src/main/site/images/books/gwt_in_action_second_edition.jpg b/content/src/main/site/images/books/gwt_in_action_second_edition.jpg
similarity index 100%
rename from src/main/site/images/books/gwt_in_action_second_edition.jpg
rename to content/src/main/site/images/books/gwt_in_action_second_edition.jpg
diff --git a/src/main/site/images/books/learning_vaddin.jpg b/content/src/main/site/images/books/learning_vaddin.jpg
similarity index 100%
rename from src/main/site/images/books/learning_vaddin.jpg
rename to content/src/main/site/images/books/learning_vaddin.jpg
diff --git a/src/main/site/images/cloudorado.png b/content/src/main/site/images/cloudorado.png
similarity index 100%
rename from src/main/site/images/cloudorado.png
rename to content/src/main/site/images/cloudorado.png
diff --git a/src/main/site/images/community.gif b/content/src/main/site/images/community.gif
similarity index 100%
rename from src/main/site/images/community.gif
rename to content/src/main/site/images/community.gif
diff --git a/src/main/site/images/contact-list-view.png b/content/src/main/site/images/contact-list-view.png
similarity index 100%
rename from src/main/site/images/contact-list-view.png
rename to content/src/main/site/images/contact-list-view.png
diff --git a/src/main/site/images/contacts-project-hierarchy-testing.png b/content/src/main/site/images/contacts-project-hierarchy-testing.png
similarity index 100%
rename from src/main/site/images/contacts-project-hierarchy-testing.png
rename to content/src/main/site/images/contacts-project-hierarchy-testing.png
diff --git a/src/main/site/images/contacts-project-hierarchy.png b/content/src/main/site/images/contacts-project-hierarchy.png
similarity index 100%
rename from src/main/site/images/contacts-project-hierarchy.png
rename to content/src/main/site/images/contacts-project-hierarchy.png
diff --git a/src/main/site/images/data_presentation_widgets.png b/content/src/main/site/images/data_presentation_widgets.png
similarity index 100%
rename from src/main/site/images/data_presentation_widgets.png
rename to content/src/main/site/images/data_presentation_widgets.png
diff --git a/src/main/site/images/dev_gal_blueprint.jpg b/content/src/main/site/images/dev_gal_blueprint.jpg
similarity index 100%
rename from src/main/site/images/dev_gal_blueprint.jpg
rename to content/src/main/site/images/dev_gal_blueprint.jpg
diff --git a/src/main/site/images/dev_gal_gogrid.jpg b/content/src/main/site/images/dev_gal_gogrid.jpg
similarity index 100%
rename from src/main/site/images/dev_gal_gogrid.jpg
rename to content/src/main/site/images/dev_gal_gogrid.jpg
diff --git a/src/main/site/images/dev_gal_scenechronize.jpg b/content/src/main/site/images/dev_gal_scenechronize.jpg
similarity index 100%
rename from src/main/site/images/dev_gal_scenechronize.jpg
rename to content/src/main/site/images/dev_gal_scenechronize.jpg
diff --git a/src/main/site/images/dev_gal_whirled.jpg b/content/src/main/site/images/dev_gal_whirled.jpg
similarity index 100%
rename from src/main/site/images/dev_gal_whirled.jpg
rename to content/src/main/site/images/dev_gal_whirled.jpg
diff --git a/src/main/site/images/docs.gif b/content/src/main/site/images/docs.gif
similarity index 100%
rename from src/main/site/images/docs.gif
rename to content/src/main/site/images/docs.gif
diff --git a/src/main/site/images/down.png b/content/src/main/site/images/down.png
similarity index 100%
rename from src/main/site/images/down.png
rename to content/src/main/site/images/down.png
diff --git a/src/main/site/images/dynamictable.jpg b/content/src/main/site/images/dynamictable.jpg
similarity index 100%
rename from src/main/site/images/dynamictable.jpg
rename to content/src/main/site/images/dynamictable.jpg
diff --git a/src/main/site/images/eclipse/eclipse-install-options.png b/content/src/main/site/images/eclipse/eclipse-install-options.png
similarity index 100%
rename from src/main/site/images/eclipse/eclipse-install-options.png
rename to content/src/main/site/images/eclipse/eclipse-install-options.png
diff --git a/src/main/site/images/eclipse/web-app-src.png b/content/src/main/site/images/eclipse/web-app-src.png
similarity index 100%
rename from src/main/site/images/eclipse/web-app-src.png
rename to content/src/main/site/images/eclipse/web-app-src.png
diff --git a/src/main/site/images/eclipse/web-app-wizard.png b/content/src/main/site/images/eclipse/web-app-wizard.png
similarity index 100%
rename from src/main/site/images/eclipse/web-app-wizard.png
rename to content/src/main/site/images/eclipse/web-app-wizard.png
diff --git a/src/main/site/images/favicon.png b/content/src/main/site/images/favicon.png
similarity index 100%
rename from src/main/site/images/favicon.png
rename to content/src/main/site/images/favicon.png
diff --git a/src/main/site/images/flow1-sm.png b/content/src/main/site/images/flow1-sm.png
similarity index 100%
rename from src/main/site/images/flow1-sm.png
rename to content/src/main/site/images/flow1-sm.png
diff --git a/src/main/site/images/flow2-sm.png b/content/src/main/site/images/flow2-sm.png
similarity index 100%
rename from src/main/site/images/flow2-sm.png
rename to content/src/main/site/images/flow2-sm.png
diff --git a/src/main/site/images/flow3-sm.png b/content/src/main/site/images/flow3-sm.png
similarity index 100%
rename from src/main/site/images/flow3-sm.png
rename to content/src/main/site/images/flow3-sm.png
diff --git a/src/main/site/images/flow4-sm.png b/content/src/main/site/images/flow4-sm.png
similarity index 100%
rename from src/main/site/images/flow4-sm.png
rename to content/src/main/site/images/flow4-sm.png
diff --git a/src/main/site/images/fragment_merging_after.jpg b/content/src/main/site/images/fragment_merging_after.jpg
similarity index 100%
rename from src/main/site/images/fragment_merging_after.jpg
rename to content/src/main/site/images/fragment_merging_after.jpg
diff --git a/src/main/site/images/fragment_merging_before.jpg b/content/src/main/site/images/fragment_merging_before.jpg
similarity index 100%
rename from src/main/site/images/fragment_merging_before.jpg
rename to content/src/main/site/images/fragment_merging_before.jpg
diff --git a/src/main/site/images/gaestudio.png b/content/src/main/site/images/gaestudio.png
similarity index 100%
rename from src/main/site/images/gaestudio.png
rename to content/src/main/site/images/gaestudio.png
diff --git a/src/main/site/images/gilead_diagram.png b/content/src/main/site/images/gilead_diagram.png
similarity index 100%
rename from src/main/site/images/gilead_diagram.png
rename to content/src/main/site/images/gilead_diagram.png
diff --git a/src/main/site/images/gitter-logo-mark-white.png b/content/src/main/site/images/gitter-logo-mark-white.png
similarity index 100%
rename from src/main/site/images/gitter-logo-mark-white.png
rename to content/src/main/site/images/gitter-logo-mark-white.png
diff --git a/src/main/site/images/go_grid.jpg b/content/src/main/site/images/go_grid.jpg
similarity index 100%
rename from src/main/site/images/go_grid.jpg
rename to content/src/main/site/images/go_grid.jpg
diff --git a/src/main/site/images/gwt-architecture.png b/content/src/main/site/images/gwt-architecture.png
similarity index 100%
rename from src/main/site/images/gwt-architecture.png
rename to content/src/main/site/images/gwt-architecture.png
diff --git a/src/main/site/images/gwt-logo.png b/content/src/main/site/images/gwt-logo.png
similarity index 100%
rename from src/main/site/images/gwt-logo.png
rename to content/src/main/site/images/gwt-logo.png
diff --git a/src/main/site/images/gwt-sm.png b/content/src/main/site/images/gwt-sm.png
similarity index 100%
rename from src/main/site/images/gwt-sm.png
rename to content/src/main/site/images/gwt-sm.png
diff --git a/src/main/site/images/gwtdesigner.png b/content/src/main/site/images/gwtdesigner.png
similarity index 100%
rename from src/main/site/images/gwtdesigner.png
rename to content/src/main/site/images/gwtdesigner.png
diff --git a/src/main/site/images/gwtproject.org-2015-banner@2x.png b/content/src/main/site/images/gwtproject.org-2015-banner@2x.png
similarity index 100%
rename from src/main/site/images/gwtproject.org-2015-banner@2x.png
rename to content/src/main/site/images/gwtproject.org-2015-banner@2x.png
diff --git a/src/main/site/images/helloworld.jpg b/content/src/main/site/images/helloworld.jpg
similarity index 100%
rename from src/main/site/images/helloworld.jpg
rename to content/src/main/site/images/helloworld.jpg
diff --git a/src/main/site/images/hosted_hibernate_error.png b/content/src/main/site/images/hosted_hibernate_error.png
similarity index 100%
rename from src/main/site/images/hosted_hibernate_error.png
rename to content/src/main/site/images/hosted_hibernate_error.png
diff --git a/src/main/site/images/import-into-intellij.png b/content/src/main/site/images/import-into-intellij.png
similarity index 100%
rename from src/main/site/images/import-into-intellij.png
rename to content/src/main/site/images/import-into-intellij.png
diff --git a/src/main/site/images/inbox.png b/content/src/main/site/images/inbox.png
similarity index 100%
rename from src/main/site/images/inbox.png
rename to content/src/main/site/images/inbox.png
diff --git a/src/main/site/images/intellij-project.png b/content/src/main/site/images/intellij-project.png
similarity index 100%
rename from src/main/site/images/intellij-project.png
rename to content/src/main/site/images/intellij-project.png
diff --git a/src/main/site/images/intellij-run-code-server.png b/content/src/main/site/images/intellij-run-code-server.png
similarity index 100%
rename from src/main/site/images/intellij-run-code-server.png
rename to content/src/main/site/images/intellij-run-code-server.png
diff --git a/src/main/site/images/intellij-run-server.png b/content/src/main/site/images/intellij-run-server.png
similarity index 100%
rename from src/main/site/images/intellij-run-server.png
rename to content/src/main/site/images/intellij-run-server.png
diff --git a/src/main/site/images/jsonrpc.jpg b/content/src/main/site/images/jsonrpc.jpg
similarity index 100%
rename from src/main/site/images/jsonrpc.jpg
rename to content/src/main/site/images/jsonrpc.jpg
diff --git a/src/main/site/images/kicthensink.jpg b/content/src/main/site/images/kicthensink.jpg
similarity index 100%
rename from src/main/site/images/kicthensink.jpg
rename to content/src/main/site/images/kicthensink.jpg
diff --git a/src/main/site/images/kitchensink.jpg b/content/src/main/site/images/kitchensink.jpg
similarity index 100%
rename from src/main/site/images/kitchensink.jpg
rename to content/src/main/site/images/kitchensink.jpg
diff --git a/src/main/site/images/learnmore.gif b/content/src/main/site/images/learnmore.gif
similarity index 100%
rename from src/main/site/images/learnmore.gif
rename to content/src/main/site/images/learnmore.gif
diff --git a/src/main/site/images/logo-wire.png b/content/src/main/site/images/logo-wire.png
similarity index 100%
rename from src/main/site/images/logo-wire.png
rename to content/src/main/site/images/logo-wire.png
diff --git a/src/main/site/images/lombardi_blueprint.jpg b/content/src/main/site/images/lombardi_blueprint.jpg
similarity index 100%
rename from src/main/site/images/lombardi_blueprint.jpg
rename to content/src/main/site/images/lombardi_blueprint.jpg
diff --git a/src/main/site/images/mail.jpg b/content/src/main/site/images/mail.jpg
similarity index 100%
rename from src/main/site/images/mail.jpg
rename to content/src/main/site/images/mail.jpg
diff --git a/src/main/site/images/mvp_diagram.png b/content/src/main/site/images/mvp_diagram.png
similarity index 100%
rename from src/main/site/images/mvp_diagram.png
rename to content/src/main/site/images/mvp_diagram.png
diff --git a/src/main/site/images/myapplication-browser.png b/content/src/main/site/images/myapplication-browser.png
similarity index 100%
rename from src/main/site/images/myapplication-browser.png
rename to content/src/main/site/images/myapplication-browser.png
diff --git a/src/main/site/images/myapplication-devmode.png b/content/src/main/site/images/myapplication-devmode.png
similarity index 100%
rename from src/main/site/images/myapplication-devmode.png
rename to content/src/main/site/images/myapplication-devmode.png
diff --git a/src/main/site/images/myapplication-missing-plugin.png b/content/src/main/site/images/myapplication-missing-plugin.png
similarity index 100%
rename from src/main/site/images/myapplication-missing-plugin.png
rename to content/src/main/site/images/myapplication-missing-plugin.png
diff --git a/src/main/site/images/mywebapp.png b/content/src/main/site/images/mywebapp.png
similarity index 100%
rename from src/main/site/images/mywebapp.png
rename to content/src/main/site/images/mywebapp.png
diff --git a/src/main/site/images/newwindow.gif b/content/src/main/site/images/newwindow.gif
similarity index 100%
rename from src/main/site/images/newwindow.gif
rename to content/src/main/site/images/newwindow.gif
diff --git a/src/main/site/images/noscreenshot.jpg b/content/src/main/site/images/noscreenshot.jpg
similarity index 100%
rename from src/main/site/images/noscreenshot.jpg
rename to content/src/main/site/images/noscreenshot.jpg
diff --git a/src/main/site/images/ruxit.png b/content/src/main/site/images/ruxit.png
similarity index 100%
rename from src/main/site/images/ruxit.png
rename to content/src/main/site/images/ruxit.png
diff --git a/src/main/site/images/scenechronize.jpg b/content/src/main/site/images/scenechronize.jpg
similarity index 100%
rename from src/main/site/images/scenechronize.jpg
rename to content/src/main/site/images/scenechronize.jpg
diff --git a/src/main/site/images/sdk-sm.png b/content/src/main/site/images/sdk-sm.png
similarity index 100%
rename from src/main/site/images/sdk-sm.png
rename to content/src/main/site/images/sdk-sm.png
diff --git a/src/main/site/images/sdm-debugger-breakpoint.png b/content/src/main/site/images/sdm-debugger-breakpoint.png
similarity index 100%
rename from src/main/site/images/sdm-debugger-breakpoint.png
rename to content/src/main/site/images/sdm-debugger-breakpoint.png
diff --git a/src/main/site/images/sdm-debugger.png b/content/src/main/site/images/sdm-debugger.png
similarity index 100%
rename from src/main/site/images/sdm-debugger.png
rename to content/src/main/site/images/sdm-debugger.png
diff --git a/src/main/site/images/showcase.jpg b/content/src/main/site/images/showcase.jpg
similarity index 100%
rename from src/main/site/images/showcase.jpg
rename to content/src/main/site/images/showcase.jpg
diff --git a/src/main/site/images/speedtracer-large.png b/content/src/main/site/images/speedtracer-large.png
similarity index 100%
rename from src/main/site/images/speedtracer-large.png
rename to content/src/main/site/images/speedtracer-large.png
diff --git a/src/main/site/images/spring_logo.png b/content/src/main/site/images/spring_logo.png
similarity index 100%
rename from src/main/site/images/spring_logo.png
rename to content/src/main/site/images/spring_logo.png
diff --git a/src/main/site/images/st_server_trace.png b/content/src/main/site/images/st_server_trace.png
similarity index 100%
rename from src/main/site/images/st_server_trace.png
rename to content/src/main/site/images/st_server_trace.png
diff --git a/src/main/site/images/sticky.png b/content/src/main/site/images/sticky.png
similarity index 100%
rename from src/main/site/images/sticky.png
rename to content/src/main/site/images/sticky.png
diff --git a/src/main/site/images/sts_dashboard.png b/content/src/main/site/images/sts_dashboard.png
similarity index 100%
rename from src/main/site/images/sts_dashboard.png
rename to content/src/main/site/images/sts_dashboard.png
diff --git a/src/main/site/images/superdevmode_dialog.png b/content/src/main/site/images/superdevmode_dialog.png
similarity index 100%
rename from src/main/site/images/superdevmode_dialog.png
rename to content/src/main/site/images/superdevmode_dialog.png
diff --git a/src/main/site/images/superdevmode_enablesourcemaps.png b/content/src/main/site/images/superdevmode_enablesourcemaps.png
similarity index 100%
rename from src/main/site/images/superdevmode_enablesourcemaps.png
rename to content/src/main/site/images/superdevmode_enablesourcemaps.png
diff --git a/src/main/site/images/testing_methodologies_mvc.png b/content/src/main/site/images/testing_methodologies_mvc.png
similarity index 100%
rename from src/main/site/images/testing_methodologies_mvc.png
rename to content/src/main/site/images/testing_methodologies_mvc.png
diff --git a/src/main/site/images/testing_methodologies_mvp.png b/content/src/main/site/images/testing_methodologies_mvp.png
similarity index 100%
rename from src/main/site/images/testing_methodologies_mvp.png
rename to content/src/main/site/images/testing_methodologies_mvp.png
diff --git a/src/main/site/images/testing_methodologies_object_diagram.png b/content/src/main/site/images/testing_methodologies_object_diagram.png
similarity index 100%
rename from src/main/site/images/testing_methodologies_object_diagram.png
rename to content/src/main/site/images/testing_methodologies_object_diagram.png
diff --git a/src/main/site/images/testing_methodologies_screenshot.png b/content/src/main/site/images/testing_methodologies_screenshot.png
similarity index 100%
rename from src/main/site/images/testing_methodologies_screenshot.png
rename to content/src/main/site/images/testing_methodologies_screenshot.png
diff --git a/src/main/site/images/war_output_dir.png b/content/src/main/site/images/war_output_dir.png
similarity index 100%
rename from src/main/site/images/war_output_dir.png
rename to content/src/main/site/images/war_output_dir.png
diff --git a/src/main/site/images/wave.jpg b/content/src/main/site/images/wave.jpg
similarity index 100%
rename from src/main/site/images/wave.jpg
rename to content/src/main/site/images/wave.jpg
diff --git a/src/main/site/images/whirled.jpg b/content/src/main/site/images/whirled.jpg
similarity index 100%
rename from src/main/site/images/whirled.jpg
rename to content/src/main/site/images/whirled.jpg
diff --git a/src/main/site/index.html b/content/src/main/site/index.html
similarity index 100%
rename from src/main/site/index.html
rename to content/src/main/site/index.html
diff --git a/src/main/site/missing-plugin/download.gif b/content/src/main/site/missing-plugin/download.gif
similarity index 100%
rename from src/main/site/missing-plugin/download.gif
rename to content/src/main/site/missing-plugin/download.gif
diff --git a/src/main/site/missing-plugin/index.html b/content/src/main/site/missing-plugin/index.html
similarity index 100%
rename from src/main/site/missing-plugin/index.html
rename to content/src/main/site/missing-plugin/index.html
diff --git a/src/main/site/missing-plugin/unsupported.gif b/content/src/main/site/missing-plugin/unsupported.gif
similarity index 100%
rename from src/main/site/missing-plugin/unsupported.gif
rename to content/src/main/site/missing-plugin/unsupported.gif
diff --git a/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java b/content/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java
similarity index 100%
rename from src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java
rename to content/src/test/java/com/google/gwt/site/markdown/MDTranslatorTest.java
diff --git a/pom.xml b/pom.xml
index 9d12536bd..573ecda87 100644
Binary files a/pom.xml and b/pom.xml differ
diff --git a/web-app/pom.xml b/web-app/pom.xml
new file mode 100644
index 000000000..265b68b05
--- /dev/null
+++ b/web-app/pom.xml
@@ -0,0 +1,136 @@
+
+
+
+ 4.0.0
+
+ org.gwtproject.site
+ 2.0-SNAPSHOT
+ gwt-site-parent
+
+ gwt-site-webapp
+ gwt-app
+
+
+ yyyy-MM-dd
+ UTF-8
+
+ 2.12.1
+
+ 4.13.2
+
+
+ 2.17
+ 3.1
+
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+
+
+ org.gwtproject
+ gwt-user
+ ${gwt.version}
+
+
+ com.google.elemental2
+ elemental2-dom
+ 1.1.0
+
+
+ org.gwtproject
+ gwt-dev
+ ${gwt.version}
+
+
+ org.gwtproject
+ gwt-codeserver
+ ${gwt.version}
+
+
+
+
+
+
+ ${basedir}/src/test/java
+
+
+ compiled-js
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${compiler-plugin.version}
+
+ 1.8
+ 1.8
+
+
+
+
+ net.ltgt.gwt.maven
+ gwt-maven-plugin
+ 1.0.1
+ true
+
+ com.google.gwt.site.webapp.GWTProject
+
+ -saveSource
+
+
+ true
+
+ true
+ ${project.build.directory}/www
+ ${project.build.directory}/extra
+
+ **/*Test.java
+
+ false
+
+
+
+ maven-resources-plugin
+
+
+
+ copy-sourcemap-resources
+ prepare-package
+
+ copy-resources
+
+
+ ${project.build.directory}/${project.build.finalName}/
+
+
+
+ ${project.build.directory}/extra/gwtproject/src
+ src
+
+
+
+ ${project.build.directory}/extra/gwtproject/symbolMaps
+
+ *.json
+
+ src
+
+
+
+
+
+
+
+
+
diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java b/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java
new file mode 100644
index 000000000..d2d2c08fc
--- /dev/null
+++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/GWTProjectEntryPoint.java
@@ -0,0 +1,525 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.google.gwt.site.webapp.client;
+
+import static elemental2.dom.DomGlobal.*;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.regexp.shared.RegExp;
+import com.google.gwt.site.webapp.client.highlight.JsHighlight;
+import com.google.gwt.user.client.Window;
+import elemental2.core.JsArray;
+import elemental2.core.JsWeakMap;
+import elemental2.dom.*;
+import jsinterop.annotations.JsFunction;
+import jsinterop.base.JsArrayLike;
+
+public class GWTProjectEntryPoint implements EntryPoint {
+
+ private static final int ANIMATION_TIME = 200;
+
+ // Visible for testing
+ // The absolute path to the url root (http://gwtproject.com)
+ static String origin = GWT.getModuleBaseForStaticFiles()
+ .replaceFirst("^(\\w+://.+?)/.*", "$1").toLowerCase();
+
+ // Visible for testing
+ // We discard links with different origin, hashes, starting with protocol, javadocs,
+ // and media links.
+ static final RegExp isSameOriginRexp = RegExp.compile("^" + origin
+ + "|^(?!(#|[a-z#]+:))(?!.*(|/)javadoc/)(?!.*\\.(jpe?g|png|mpe?g|mp[34]|avi)$)",
+ "i");
+
+ private static boolean ajaxEnabled = origin.startsWith("http");
+ private static String currentPage = Window.Location.getPath();
+ private HandlerRegistration resizeHandler;
+ private EventListener homeScrollHandler;
+ private final JsWeakMap clickHandlers = new JsWeakMap<>();
+
+ private void slideToggle(HTMLElement el, int animationTime, boolean open) {
+ if (open) {
+ slideDown(el, animationTime);
+ } else {
+ slideUp(el, animationTime);
+ }
+ }
+
+ private void slideDown(HTMLElement el, int animationTime) {
+ el.style.display = "";
+ animateMaxHeight(el, 0, estimateHeight(el), animationTime);
+ }
+
+ private void slideUp(HTMLElement el, int animationTime) {
+ animateMaxHeight(el, estimateHeight(el), 0, animationTime);
+ }
+
+ private int estimateHeight(HTMLElement el) {
+ // applied as max-height, so overestimating only makes the animation
+ // lag slightly towards the start/end
+ return el.childElementCount * 33;
+ }
+
+ private void animateMaxHeight(HTMLElement el, int from, int to, int animationTime) {
+ if (animationTime == 0) {
+ el.style.setProperty("display", to == 0 ? "none" : "");
+ return;
+ }
+ el.style.setProperty("max-height", from + "px");
+ el.style.setProperty("overflow", "hidden");
+ el.style.setProperty("transition", "max-height " + animationTime + "ms ease-in-out");
+ if (!el.dataset.has("transitionListener")) {
+ el.addEventListener("transitionend", evt -> {
+ String maxHeight = el.style.removeProperty("max-height");
+ el.style.removeProperty("overflow");
+ if ("0px".equals(maxHeight)) {
+ el.style.setProperty("display", "none");
+ }
+ });
+ el.dataset.set("transitionListener", "true");
+ }
+ Scheduler.get().scheduleDeferred(() -> el.style.setProperty("max-height", to + "px"));
+ }
+
+ @Override
+ public void onModuleLoad() {
+ bindSearch();
+
+ enhancePage();
+ enhanceMenu();
+
+ onPageLoaded(false);
+ querySelector(".holder").style.display = "";
+ }
+
+ private HTMLElement querySelector(String selector) {
+ return (HTMLElement) document.querySelector(selector);
+ }
+
+ private void highLight() {
+ JsHighlight.INSTANCE.initialize();
+ forEach("pre > code", JsHighlight.INSTANCE::highlightBlock);
+ }
+
+ private void bindSearch() {
+ HTMLElement form = querySelector("#search form");
+ form.addEventListener("submit", (evt) -> {
+ HTMLInputElement input = (HTMLInputElement) form.querySelector("input");
+ doSearch(input.value);
+ evt.preventDefault();
+ });
+ }
+
+ private void enhanceMenu() {
+ HTMLElement nav = querySelector("#nav");
+ nav.addEventListener("mouseenter", evt -> {
+ if (!nav.classList.contains("alwaysOpen")) {
+ nav.classList.remove("closed");
+ }
+ });
+ nav.addEventListener("mouseleave", evt -> {
+ if (!nav.classList.contains("alwaysOpen")) {
+ nav.classList.add("closed");
+ }
+ });
+ }
+
+ /*
+ * Open the branch and select the item corresponding to the current url.
+ */
+ private void openMenu() {
+ // close all submenus
+ // todo hide first anchor with css
+ forEach("#submenu > nav > ul > li", el -> {
+ el.style.display = "none";
+ forEachChild(el, "a", child -> child.style.display = "none");
+ });
+
+ String path = Window.Location.getPath();
+ JsArrayLike extends Element> matchingLinks = document
+ .querySelectorAll("#submenu a[href='" + path + "']");
+ HTMLElement selectedItem = (HTMLElement) JsArray.from(matchingLinks)
+ .find((el, index, parent) -> !"none".equals(((HTMLElement) el).style.display));
+ String mainNavigationHref;
+ String mainTitle;
+ if (selectedItem != null) {
+
+ showBranch(selectedItem);
+
+ JsArray liParents = parentMenuItems(selectedItem);
+
+ HTMLElement subMenuItem = liParents.getAt(liParents.length - 1);
+
+ subMenuItem.style.display = "";
+ forEach("#submenu .active", el -> {
+ if (liParents.indexOf(el) < 0) {
+ el.classList.remove("active");
+ }
+ });
+ liParents.push(selectedItem);
+ liParents.forEach((el, index, array) -> {
+ if (el != selectedItem.parentElement) {
+ el.classList.add("active");
+ }
+ return null;
+ });
+ mainNavigationHref = subMenuItem.querySelector("a").getAttribute("href");
+ mainTitle = subMenuItem.querySelector("a").textContent + " - " + selectedItem.textContent;
+ } else {
+ mainNavigationHref = Window.Location.getPath();
+ mainTitle = isOverviewPage(mainNavigationHref) ? "Overview" : "Project";
+ }
+
+ forEach("#nav a.active", el -> el.classList.remove("active"));
+ forEach("#nav a[href='" + mainNavigationHref + "']", el -> el.classList.add("active"));
+
+
+ // Change the page title for easy bookmarking
+ querySelector("title").textContent = "[GWT] " + mainTitle;
+
+ boolean homePage = isHomePage(path);
+ boolean overviewPage = isOverviewPage(path);
+ querySelector("#nav").classList.toggle("alwaysOpen", homePage);
+ querySelector("#content").classList.toggle("home", homePage);
+ if (querySelector("#submenu") != null) {
+ if (homePage || overviewPage) {
+ querySelector("#submenu").style.display = "none";
+ } else {
+ querySelector("#submenu").style.display = "";
+ }
+ }
+
+ maybeStyleHomepage();
+ }
+
+ private JsArray parentMenuItems(HTMLElement selectedItem) {
+ JsArray ret = new JsArray<>();
+ Element current = selectedItem;
+ while (current != null) {
+ if (current.tagName.equalsIgnoreCase("li")) {
+ ret.push((HTMLElement) current);
+ }
+ if ("submenu".equals(current.id)) {
+ break;
+ }
+ current = current.parentElement;
+ }
+ return ret;
+ }
+
+ /*
+ * Enhance the page adding handlers and replacing relative by absolute urls
+ */
+ private void enhancePage() {
+ HTMLElement nav = querySelector("#nav");
+ nav.addEventListener("mouseenter", evt -> nav.classList.remove("closed"));
+ nav.addEventListener("mouseleave", evt -> {
+ if (!nav.classList.contains("alwaysOpen")) {
+ nav.classList.add("closed");
+ }
+ });
+
+ enhanceLinks();
+
+ // Do not continue enhancing if Ajax is disabled
+ if (!ajaxEnabled) {
+ // Select current item from the URL info
+ loadPage(null);
+ return;
+ }
+
+ // Use Ajax instead of default behaviour
+ document.body.addEventListener("click", evt -> {
+ Element target = (Element) evt.target;
+ if (target.closest("a") == null) {
+ return;
+ }
+ if (shouldEnhanceLink(target)
+ // Is it a normal click (not ctrl/cmd/shift/right/middle click) ?
+ && handleAsClick((MouseEvent) evt)) {
+
+ // In mobile, if menu is visible, close it
+ forEach("#submenu.show", el -> el.classList.remove("show"));
+
+ // Load the page using Ajax
+ loadPage(target);
+ evt.preventDefault();
+ }
+ });
+
+ // Select the TOC item when URL changes
+ window.addEventListener("popstate", evt -> loadPage(null));
+ }
+
+
+ private boolean handleAsClick(MouseEvent event) {
+ int mouseButtons = event.button;
+ boolean modifiers = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+ boolean middle = mouseButtons == 4;
+ boolean right = mouseButtons == 2;
+ return !modifiers && !middle && !right;
+ }
+
+ private boolean shouldEnhanceLink(Element link) {
+ return
+ // Enhance only local links
+ isSameOriginRexp.test(link.getAttribute("href"))
+ // Do not load links that are marked as full page reload
+ && !Boolean.parseBoolean(link.getAttribute("data-full-load"));
+ }
+
+ private void enhanceLinks() {
+ // Replace relative paths in anchors by absolute ones
+ // exclude all anchors in the conHighlight and collapse menutent area.
+ // TODO could be done on server side
+
+ forEach("a:not(#content a)", el -> {
+ if (shouldEnhanceLink(el)) {
+ // No need to make complicated things for computing
+ // the absolute path: anchor.pathname is the way
+ HTMLAnchorElement link = (HTMLAnchorElement) el;
+ link.href = link.pathname;
+ }
+ });
+
+ // We add a span with the +/- icon so as the click area is well defined
+ // this span is not rendered in server side because it is only needed
+ // for enhancing the page.
+ JsArray parentItems = new JsArray<>();
+ forEach("#submenu ul > li li", el -> {
+ if (el.querySelector("ul") != null) {
+ parentItems.push(el);
+ el.parentElement.insertBefore(document.createElement("span"), el);
+ }
+ });
+ String spanOrLocalLink = "span,a[href='#']";
+ forEachChild(querySelector("#submenu"), spanOrLocalLink, el -> {
+ el.removeEventListener("click", clickHandlers.get(el));
+ });
+ // Toggle the branch when clicking on the arrow or anchor without content
+ parentItems.forEach((item, index, array) -> {
+ forEachChild(item, spanOrLocalLink, element -> {
+ EventListener eventListener = (evt) ->
+ toggleMenu((HTMLElement) ((Element) evt.target).parentElement);
+ element.addEventListener("click", eventListener);
+ clickHandlers.set(element, eventListener);
+ });
+ item.classList.add("folder");
+ if (!item.classList.contains("open")) {
+ forEachChild(item, "ul",
+ child -> slideUp(child, 0));
+ }
+ return null;
+ });
+ }
+
+ private void toggleMenu(HTMLElement menu) {
+ boolean open = menu.classList.toggle("open");
+ forEachChild(menu, "ul",
+ child -> slideToggle(child, ANIMATION_TIME, open));
+ }
+
+ private void showBranch(final HTMLElement item) {
+ Scheduler.get().scheduleDeferred(() -> {
+ Element parent = item.closest("li");
+ while (parent != null) {
+ parent.classList.add("open");
+ forEachChild(parent, "ul",
+ (htmlElement) -> slideDown(htmlElement, ajaxEnabled ? ANIMATION_TIME : 0));
+ parent = parent.parentElement.closest("li");
+ }
+ });
+ }
+
+ /*
+ * Change URL via pushState and load the page via Ajax.
+ */
+ private void loadPage(Element link) {
+ String pageUrl = link == null ? null : ((HTMLAnchorElement) link).pathname;
+
+ boolean shouldReplaceMenu = shouldReplaceMenu(pageUrl);
+ if (!currentPage.equals(pageUrl)) {
+ if (pageUrl != null) {
+ // Preserve QueryString, useful for the gwt.codesvr parameter in dev-mode.
+ pageUrl = pageUrl.replaceFirst("(#.*|)$", Window.Location.getQueryString() + "$1");
+ // Set the page to load in the URL
+ history.pushState(null, null, pageUrl);
+ }
+
+ pageUrl = Window.Location.getPath();
+ if (!currentPage.equals(pageUrl)) {
+ forEach("#spinner", el -> el.style.display = "");
+ ajaxLoad(pageUrl, shouldReplaceMenu);
+ } else {
+ scrollToHash();
+ }
+ currentPage = pageUrl;
+ }
+ }
+
+ private void ajaxLoad(String pageUrl, final boolean shouldReplaceMenu) {
+ fetch(pageUrl).then(Response::text).then(responseText -> {
+ HTMLElement content = (HTMLElement) document.createElement("div");
+ content.innerHTML = responseText;
+
+ if (shouldReplaceMenu) {
+ document.querySelector("#submenu")
+ .replaceWith(content.querySelector("#submenu"));
+ }
+
+ document.querySelector("#content").replaceWith(content.querySelector("#content"));
+
+ onPageLoaded(shouldReplaceMenu);
+ return null;
+ });
+ }
+
+ private boolean shouldReplaceMenu(String pageUrl) {
+ String path = Window.Location.getPath();
+
+ boolean isHomeOrOverview = isHomePage(path) || isOverviewPage(path);
+
+ return isHomeOrOverview && (!isHomePage(pageUrl) || !isOverviewPage(pageUrl));
+ }
+
+ private void onPageLoaded(boolean menuReplaced) {
+ if (menuReplaced) {
+ enhanceLinks();
+ }
+ document.documentElement.style.removeProperty("scroll-behavior");
+ openMenu();
+ scrollToHash();
+ forEach("#spinner", spinner -> spinner.style.display = "none");
+ HTMLElement editLink = querySelector("#editLink");
+ HTMLElement heading = querySelector("#content h1");
+ if (editLink != null && heading != null) {
+ heading.appendChild(editLink);
+ }
+ // highlight loaded page
+ highLight();
+ }
+
+ /*
+ * Move the scroll to the hash fragment in the URL
+ */
+ private void scrollToHash() {
+ String hash = Window.Location.getHash();
+ Element anchor = hash.length() > 1 ? document.querySelector(
+ hash + ", [name='" + hash.substring(1) + "']") : null;
+ if (anchor == null) {
+ Window.scrollTo(0, 0);
+ } else {
+ anchor.scrollIntoView();
+ }
+ }
+
+ private void maybeStyleHomepage() {
+ if (querySelector("#content").classList.contains("home")) {
+ document.documentElement.style.setProperty("scroll-behavior", "smooth");
+ styleHomepage();
+ resizeHandler = Window.addResizeHandler(event -> styleHomepage());
+
+ // Pager
+ forEach(".next, .pager a", (element) -> element.addEventListener("click", event -> {
+ event.preventDefault();
+ document.documentElement.scrollTop =
+ getElementOffset(document.querySelector(element.getAttribute("href")));
+ }));
+
+ forEach(".pager a", (element) -> element.addEventListener("click", event -> {
+ forEach(".pager a", e -> e.classList.remove("active"));
+ element.classList.add("active");
+ }));
+ if (homeScrollHandler == null) {
+ homeScrollHandler = evt -> {
+ forEach(".pager a", el -> el.classList.remove("active"));
+ if (window.scrollY + 100 > getElementOffset(document.querySelector("#letsbegin"))) {
+ querySelector(".pager a:nth-child(3)").classList.add("active");
+ } else if (window.scrollY + 100 > getElementOffset(document.querySelector("#gwt"))) {
+ querySelector(".pager a:nth-child(2)").classList.add("active");
+ } else {
+ querySelector(".pager a:nth-child(1)").classList.add("active");
+ }
+ };
+ }
+ window.addEventListener("scroll", homeScrollHandler);
+ } else {
+ window.removeEventListener("scroll", homeScrollHandler);
+ if (resizeHandler != null) {
+ resizeHandler.removeHandler();
+ resizeHandler = null;
+ }
+ }
+ }
+
+ private int getElementOffset(Element element) {
+ return ((HTMLElement) element).offsetTop;
+ }
+
+ private boolean isOverviewPage(String path) {
+ return "/overview.html".compareToIgnoreCase(path) == 0;
+ }
+
+ private boolean isHomePage(String path) {
+ return "/".equals(path);
+ }
+
+ private void styleHomepage() {
+ final int windowHeight = window.innerHeight;
+ int sectionHeight = ((HTMLElement) document.querySelector("#letsbegin")).offsetHeight;
+
+ if (windowHeight > sectionHeight) {
+ forEach(".home section", element -> {
+ element.style.setProperty("height", windowHeight + "px");
+ element.style.setProperty("padding", "0");
+ HTMLElement container = (HTMLElement) element.querySelector(".container");
+ container.style.setProperty("padding-top",
+ (windowHeight - container.offsetHeight) / 2 + "px");
+ });
+ }
+ }
+
+ private void forEach(String selector, ElementConsumer consumer) {
+ document.querySelectorAll(selector).forEach((element, index, parent) -> {
+ consumer.accept((HTMLElement) element);
+ return null;
+ });
+ }
+
+ private void forEachChild(Element parent, String selector, ElementConsumer consumer) {
+ parent.childNodes.forEach((element, index, p) -> {
+ if (element instanceof HTMLElement) {
+ if (((HTMLElement) element).matches(selector)) {
+ consumer.accept((HTMLElement) element);
+ }
+ }
+ return null;
+ });
+ }
+
+ private native void doSearch(String value) /*-{
+ var element = $wnd.google.search.cse.element.getElement('searchresults');
+ element.execute(value);
+ }-*/;
+
+ @JsFunction
+ private interface ElementConsumer {
+ void accept(HTMLElement element);
+ }
+}
diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java
new file mode 100644
index 000000000..395a554cf
--- /dev/null
+++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/JsHighlight.java
@@ -0,0 +1,41 @@
+package com.google.gwt.site.webapp.client.highlight;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.ScriptInjector;
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.resources.client.TextResource;
+import elemental2.dom.DomGlobal;
+import elemental2.dom.HTMLElement;
+import jsinterop.base.Js;
+
+public class JsHighlight {
+
+ interface CssHighlight extends ClientBundle {
+ CssHighlight INSTANCE = GWT.create(CssHighlight.class);
+
+ @Source("idea.css")
+ CssResource idea();
+
+ @Source("highlight.pack.js")
+ TextResource highlight();
+
+ }
+
+ private static boolean initialized;
+ public static final JsHighlight INSTANCE = GWT.create(JsHighlight.class);
+
+
+ public void initialize() {
+ if (!initialized) {
+ initialized = true;
+ ScriptInjector.fromString(CssHighlight.INSTANCE.highlight().getText())
+ .setWindow(Js.uncheckedCast(DomGlobal.window)).inject();
+ CssHighlight.INSTANCE.idea().ensureInjected();
+ }
+ }
+
+ public native void highlightBlock(HTMLElement e) /*-{
+ e && $wnd.hljs && $wnd.hljs.highlightBlock(e);
+ }-*/;
+}
diff --git a/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js
new file mode 100644
index 000000000..2f3351f0a
--- /dev/null
+++ b/web-app/src/main/java/com/google/gwt/site/webapp/client/highlight/highlight.pack.js
@@ -0,0 +1,1306 @@
+/**
+ * This is a reduced version of highlight for gwt site supporting:
+ * java, javascript, html, xml, css, json, bash.
+ *
+ * Produced from https://github.com/isagalaev/highlight.js.git
+ * node tools/build.js -n java javascript html xml bash css json
+ */
+
+(function(factory) {
+
+ // Setup highlight.js for different environments. First is Node.js or
+ // CommonJS.
+ if(typeof exports !== 'undefined') {
+ factory(exports);
+ } else {
+ // Export hljs globally even when using AMD for cases when this script
+ // is loaded with others that may still expect a global hljs.
+ window.hljs = factory({});
+
+ // Finally register the global hljs with AMD.
+ if(typeof define === 'function' && define.amd) {
+ define('hljs', [], function() {
+ return window.hljs;
+ });
+ }
+ }
+
+}(function(hljs) {
+
+ /* Utility functions */
+
+ function escape(value) {
+ return value.replace(/&/gm, '&').replace(//gm, '>');
+ }
+
+ function tag(node) {
+ return node.nodeName.toLowerCase();
+ }
+
+ function testRe(re, lexeme) {
+ var match = re && re.exec(lexeme);
+ return match && match.index == 0;
+ }
+
+ function isNotHighlighted(language) {
+ return /no-?highlight|plain|text/.test(language);
+ }
+
+ function blockLanguage(block) {
+ var i, match, length,
+ classes = block.className + ' ';
+
+ classes += block.parentNode ? block.parentNode.className : '';
+
+ // language-* takes precedence over non-prefixed class names and
+ match = /\blang(?:uage)?-([\w-]+)\b/.exec(classes);
+ if (match) {
+ return getLanguage(match[1]) ? match[1] : 'no-highlight';
+ }
+
+ classes = classes.split(/\s+/);
+ for(i = 0, length = classes.length; i < length; i++) {
+ if(getLanguage(classes[i]) || isNotHighlighted(classes[i])) {
+ return classes[i];
+ }
+ }
+
+ }
+
+ function inherit(parent, obj) {
+ var result = {}, key;
+ for (key in parent)
+ result[key] = parent[key];
+ if (obj)
+ for (key in obj)
+ result[key] = obj[key];
+ return result;
+ }
+
+ /* Stream merging */
+
+ function nodeStream(node) {
+ var result = [];
+ (function _nodeStream(node, offset) {
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ if (child.nodeType == 3)
+ offset += child.nodeValue.length;
+ else if (child.nodeType == 1) {
+ result.push({
+ event: 'start',
+ offset: offset,
+ node: child
+ });
+ offset = _nodeStream(child, offset);
+ // Prevent void elements from having an end tag that would actually
+ // double them in the output. There are more void elements in HTML
+ // but we list only those realistically expected in code display.
+ if (!tag(child).match(/br|hr|img|input/)) {
+ result.push({
+ event: 'stop',
+ offset: offset,
+ node: child
+ });
+ }
+ }
+ }
+ return offset;
+ })(node, 0);
+ return result;
+ }
+
+ function mergeStreams(original, highlighted, value) {
+ var processed = 0;
+ var result = '';
+ var nodeStack = [];
+
+ function selectStream() {
+ if (!original.length || !highlighted.length) {
+ return original.length ? original : highlighted;
+ }
+ if (original[0].offset != highlighted[0].offset) {
+ return (original[0].offset < highlighted[0].offset) ? original : highlighted;
+ }
+
+ /*
+ To avoid starting the stream just before it should stop the order is
+ ensured that original always starts first and closes last:
+
+ if (event1 == 'start' && event2 == 'start')
+ return original;
+ if (event1 == 'start' && event2 == 'stop')
+ return highlighted;
+ if (event1 == 'stop' && event2 == 'start')
+ return original;
+ if (event1 == 'stop' && event2 == 'stop')
+ return highlighted;
+
+ ... which is collapsed to:
+ */
+ return highlighted[0].event == 'start' ? original : highlighted;
+ }
+
+ function open(node) {
+ function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
+ result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>';
+ }
+
+ function close(node) {
+ result += '' + tag(node) + '>';
+ }
+
+ function render(event) {
+ (event.event == 'start' ? open : close)(event.node);
+ }
+
+ while (original.length || highlighted.length) {
+ var stream = selectStream();
+ result += escape(value.substr(processed, stream[0].offset - processed));
+ processed = stream[0].offset;
+ if (stream == original) {
+ /*
+ On any opening or closing tag of the original markup we first close
+ the entire highlighted node stack, then render the original tag along
+ with all the following original tags at the same offset and then
+ reopen all the tags on the highlighted stack.
+ */
+ nodeStack.reverse().forEach(close);
+ do {
+ render(stream.splice(0, 1)[0]);
+ stream = selectStream();
+ } while (stream == original && stream.length && stream[0].offset == processed);
+ nodeStack.reverse().forEach(open);
+ } else {
+ if (stream[0].event == 'start') {
+ nodeStack.push(stream[0].node);
+ } else {
+ nodeStack.pop();
+ }
+ render(stream.splice(0, 1)[0]);
+ }
+ }
+ return result + escape(value.substr(processed));
+ }
+
+ /* Initialization */
+
+ function compileLanguage(language) {
+
+ function reStr(re) {
+ return (re && re.source) || re;
+ }
+
+ function langRe(value, global) {
+ return new RegExp(
+ reStr(value),
+ 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
+ );
+ }
+
+ function compileMode(mode, parent) {
+ if (mode.compiled)
+ return;
+ mode.compiled = true;
+
+ mode.keywords = mode.keywords || mode.beginKeywords;
+ if (mode.keywords) {
+ var compiled_keywords = {};
+
+ var flatten = function(className, str) {
+ if (language.case_insensitive) {
+ str = str.toLowerCase();
+ }
+ str.split(' ').forEach(function(kw) {
+ var pair = kw.split('|');
+ compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
+ });
+ };
+
+ if (typeof mode.keywords == 'string') { // string
+ flatten('keyword', mode.keywords);
+ } else {
+ Object.keys(mode.keywords).forEach(function (className) {
+ flatten(className, mode.keywords[className]);
+ });
+ }
+ mode.keywords = compiled_keywords;
+ }
+ mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true);
+
+ if (parent) {
+ if (mode.beginKeywords) {
+ mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
+ }
+ if (!mode.begin)
+ mode.begin = /\B|\b/;
+ mode.beginRe = langRe(mode.begin);
+ if (!mode.end && !mode.endsWithParent)
+ mode.end = /\B|\b/;
+ if (mode.end)
+ mode.endRe = langRe(mode.end);
+ mode.terminator_end = reStr(mode.end) || '';
+ if (mode.endsWithParent && parent.terminator_end)
+ mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
+ }
+ if (mode.illegal)
+ mode.illegalRe = langRe(mode.illegal);
+ if (mode.relevance === undefined)
+ mode.relevance = 1;
+ if (!mode.contains) {
+ mode.contains = [];
+ }
+ var expanded_contains = [];
+ mode.contains.forEach(function(c) {
+ if (c.variants) {
+ c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
+ } else {
+ expanded_contains.push(c == 'self' ? mode : c);
+ }
+ });
+ mode.contains = expanded_contains;
+ mode.contains.forEach(function(c) {compileMode(c, mode);});
+
+ if (mode.starts) {
+ compileMode(mode.starts, parent);
+ }
+
+ var terminators =
+ mode.contains.map(function(c) {
+ return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
+ })
+ .concat([mode.terminator_end, mode.illegal])
+ .map(reStr)
+ .filter(Boolean);
+ mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
+ }
+
+ compileMode(language);
+ }
+
+ /*
+ Core highlighting function. Accepts a language name, or an alias, and a
+ string with the code to highlight. Returns an object with the following
+ properties:
+
+ - relevance (int)
+ - value (an HTML string with highlighting markup)
+
+ */
+ function highlight(name, value, ignore_illegals, continuation) {
+
+ function subMode(lexeme, mode) {
+ for (var i = 0; i < mode.contains.length; i++) {
+ if (testRe(mode.contains[i].beginRe, lexeme)) {
+ return mode.contains[i];
+ }
+ }
+ }
+
+ function endOfMode(mode, lexeme) {
+ if (testRe(mode.endRe, lexeme)) {
+ while (mode.endsParent && mode.parent) {
+ mode = mode.parent;
+ }
+ return mode;
+ }
+ if (mode.endsWithParent) {
+ return endOfMode(mode.parent, lexeme);
+ }
+ }
+
+ function isIllegal(lexeme, mode) {
+ return !ignore_illegals && testRe(mode.illegalRe, lexeme);
+ }
+
+ function keywordMatch(mode, match) {
+ var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
+ return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
+ }
+
+ function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
+ var classPrefix = noPrefix ? '' : options.classPrefix,
+ openSpan = '';
+
+ return openSpan + insideSpan + closeSpan;
+ }
+
+ function processKeywords() {
+ if (!top.keywords)
+ return escape(mode_buffer);
+ var result = '';
+ var last_index = 0;
+ top.lexemesRe.lastIndex = 0;
+ var match = top.lexemesRe.exec(mode_buffer);
+ while (match) {
+ result += escape(mode_buffer.substr(last_index, match.index - last_index));
+ var keyword_match = keywordMatch(top, match);
+ if (keyword_match) {
+ relevance += keyword_match[1];
+ result += buildSpan(keyword_match[0], escape(match[0]));
+ } else {
+ result += escape(match[0]);
+ }
+ last_index = top.lexemesRe.lastIndex;
+ match = top.lexemesRe.exec(mode_buffer);
+ }
+ return result + escape(mode_buffer.substr(last_index));
+ }
+
+ function processSubLanguage() {
+ var explicit = typeof top.subLanguage == 'string';
+ if (explicit && !languages[top.subLanguage]) {
+ return escape(mode_buffer);
+ }
+
+ var result = explicit ?
+ highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
+ highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
+
+ // Counting embedded language score towards the host language may be disabled
+ // with zeroing the containing mode relevance. Usecase in point is Markdown that
+ // allows XML everywhere and makes every XML snippet to have a much larger Markdown
+ // score.
+ if (top.relevance > 0) {
+ relevance += result.relevance;
+ }
+ if (explicit) {
+ continuations[top.subLanguage] = result.top;
+ }
+ return buildSpan(result.language, result.value, false, true);
+ }
+
+ function processBuffer() {
+ return top.subLanguage !== undefined ? processSubLanguage() : processKeywords();
+ }
+
+ function startNewMode(mode, lexeme) {
+ var markup = mode.className? buildSpan(mode.className, '', true): '';
+ if (mode.returnBegin) {
+ result += markup;
+ mode_buffer = '';
+ } else if (mode.excludeBegin) {
+ result += escape(lexeme) + markup;
+ mode_buffer = '';
+ } else {
+ result += markup;
+ mode_buffer = lexeme;
+ }
+ top = Object.create(mode, {parent: {value: top}});
+ }
+
+ function processLexeme(buffer, lexeme) {
+
+ mode_buffer += buffer;
+ if (lexeme === undefined) {
+ result += processBuffer();
+ return 0;
+ }
+
+ var new_mode = subMode(lexeme, top);
+ if (new_mode) {
+ result += processBuffer();
+ startNewMode(new_mode, lexeme);
+ return new_mode.returnBegin ? 0 : lexeme.length;
+ }
+
+ var end_mode = endOfMode(top, lexeme);
+ if (end_mode) {
+ var origin = top;
+ if (!(origin.returnEnd || origin.excludeEnd)) {
+ mode_buffer += lexeme;
+ }
+ result += processBuffer();
+ do {
+ if (top.className) {
+ result += '';
+ }
+ relevance += top.relevance;
+ top = top.parent;
+ } while (top != end_mode.parent);
+ if (origin.excludeEnd) {
+ result += escape(lexeme);
+ }
+ mode_buffer = '';
+ if (end_mode.starts) {
+ startNewMode(end_mode.starts, '');
+ }
+ return origin.returnEnd ? 0 : lexeme.length;
+ }
+
+ if (isIllegal(lexeme, top))
+ throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '') + '"');
+
+ /*
+ Parser should not reach this point as all types of lexemes should be caught
+ earlier, but if it does due to some bug make sure it advances at least one
+ character forward to prevent infinite looping.
+ */
+ mode_buffer += lexeme;
+ return lexeme.length || 1;
+ }
+
+ var language = getLanguage(name);
+ if (!language) {
+ throw new Error('Unknown language: "' + name + '"');
+ }
+
+ compileLanguage(language);
+ var top = continuation || language;
+ var continuations = {}; // keep continuations for sub-languages
+ var result = '', current;
+ for(current = top; current != language; current = current.parent) {
+ if (current.className) {
+ result = buildSpan(current.className, '', true) + result;
+ }
+ }
+ var mode_buffer = '';
+ var relevance = 0;
+ try {
+ var match, count, index = 0;
+ while (true) {
+ top.terminators.lastIndex = index;
+ match = top.terminators.exec(value);
+ if (!match)
+ break;
+ count = processLexeme(value.substr(index, match.index - index), match[0]);
+ index = match.index + count;
+ }
+ processLexeme(value.substr(index));
+ for(current = top; current.parent; current = current.parent) { // close dangling modes
+ if (current.className) {
+ result += '';
+ }
+ }
+ return {
+ relevance: relevance,
+ value: result,
+ language: name,
+ top: top
+ };
+ } catch (e) {
+ if (e.message.indexOf('Illegal') != -1) {
+ return {
+ relevance: 0,
+ value: escape(value)
+ };
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ /*
+ Highlighting with language detection. Accepts a string with the code to
+ highlight. Returns an object with the following properties:
+
+ - language (detected language)
+ - relevance (int)
+ - value (an HTML string with highlighting markup)
+ - second_best (object with the same structure for second-best heuristically
+ detected language, may be absent)
+
+ */
+ function highlightAuto(text, languageSubset) {
+ languageSubset = languageSubset || options.languages || Object.keys(languages);
+ var result = {
+ relevance: 0,
+ value: escape(text)
+ };
+ var second_best = result;
+ languageSubset.forEach(function(name) {
+ if (!getLanguage(name)) {
+ return;
+ }
+ var current = highlight(name, text, false);
+ current.language = name;
+ if (current.relevance > second_best.relevance) {
+ second_best = current;
+ }
+ if (current.relevance > result.relevance) {
+ second_best = result;
+ result = current;
+ }
+ });
+ if (second_best.language) {
+ result.second_best = second_best;
+ }
+ return result;
+ }
+
+ /*
+ Post-processing of the highlighted markup:
+
+ - replace TABs with something more useful
+ - replace real line-breaks with '
' for non-pre containers
+
+ */
+ function fixMarkup(value) {
+ if (options.tabReplace) {
+ value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) {
+ return p1.replace(/\t/g, options.tabReplace);
+ });
+ }
+ if (options.useBR) {
+ value = value.replace(/\n/g, '
');
+ }
+ return value;
+ }
+
+ function buildClassName(prevClassName, currentLang, resultLang) {
+ var language = currentLang ? aliases[currentLang] : resultLang,
+ result = [prevClassName.trim()];
+
+ if (!prevClassName.match(/\bhljs\b/)) {
+ result.push('hljs');
+ }
+
+ if (prevClassName.indexOf(language) === -1) {
+ result.push(language);
+ }
+
+ return result.join(' ').trim();
+ }
+
+ /*
+ Applies highlighting to a DOM node containing code. Accepts a DOM node and
+ two optional parameters for fixMarkup.
+ */
+ function highlightBlock(block) {
+ var language = blockLanguage(block);
+ if (isNotHighlighted(language))
+ return;
+
+ var node;
+ if (options.useBR) {
+ node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
+ node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/
/g, '\n');
+ } else {
+ node = block;
+ }
+ var text = node.textContent;
+ var result = language ? highlight(language, text, true) : highlightAuto(text);
+
+ var originalStream = nodeStream(node);
+ if (originalStream.length) {
+ var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
+ resultNode.innerHTML = result.value;
+ result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
+ }
+ result.value = fixMarkup(result.value);
+
+ block.innerHTML = result.value;
+ block.className = buildClassName(block.className, language, result.language);
+ block.result = {
+ language: result.language,
+ re: result.relevance
+ };
+ if (result.second_best) {
+ block.second_best = {
+ language: result.second_best.language,
+ re: result.second_best.relevance
+ };
+ }
+ }
+
+ var options = {
+ classPrefix: 'hljs-',
+ tabReplace: null,
+ useBR: false,
+ languages: undefined
+ };
+
+ /*
+ Updates highlight.js global options with values passed in the form of an object
+ */
+ function configure(user_options) {
+ options = inherit(options, user_options);
+ }
+
+ /*
+ Applies highlighting to all ..
blocks on a page.
+ */
+ function initHighlighting() {
+ if (initHighlighting.called)
+ return;
+ initHighlighting.called = true;
+
+ var blocks = document.querySelectorAll('pre code');
+ Array.prototype.forEach.call(blocks, highlightBlock);
+ }
+
+ /*
+ Attaches highlighting to the page load event.
+ */
+ function initHighlightingOnLoad() {
+ addEventListener('DOMContentLoaded', initHighlighting, false);
+ addEventListener('load', initHighlighting, false);
+ }
+
+ var languages = {};
+ var aliases = {};
+
+ function registerLanguage(name, language) {
+ var lang = languages[name] = language(hljs);
+ if (lang.aliases) {
+ lang.aliases.forEach(function(alias) {aliases[alias] = name;});
+ }
+ }
+
+ function listLanguages() {
+ return Object.keys(languages);
+ }
+
+ function getLanguage(name) {
+ return languages[name] || languages[aliases[name]];
+ }
+
+ /* Interface definition */
+
+ hljs.highlight = highlight;
+ hljs.highlightAuto = highlightAuto;
+ hljs.fixMarkup = fixMarkup;
+ hljs.highlightBlock = highlightBlock;
+ hljs.configure = configure;
+ hljs.initHighlighting = initHighlighting;
+ hljs.initHighlightingOnLoad = initHighlightingOnLoad;
+ hljs.registerLanguage = registerLanguage;
+ hljs.listLanguages = listLanguages;
+ hljs.getLanguage = getLanguage;
+ hljs.inherit = inherit;
+
+ // Common regexps
+ hljs.IDENT_RE = '[a-zA-Z]\\w*';
+ hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
+ hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
+ hljs.C_NUMBER_RE = '(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
+ hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
+ hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
+
+ // Common modes
+ hljs.BACKSLASH_ESCAPE = {
+ begin: '\\\\[\\s\\S]', relevance: 0
+ };
+ hljs.APOS_STRING_MODE = {
+ className: 'string',
+ begin: '\'', end: '\'',
+ illegal: '\\n',
+ contains: [hljs.BACKSLASH_ESCAPE]
+ };
+ hljs.QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: [hljs.BACKSLASH_ESCAPE]
+ };
+ hljs.PHRASAL_WORDS_MODE = {
+ begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/
+ };
+ hljs.COMMENT = function (begin, end, inherits) {
+ var mode = hljs.inherit(
+ {
+ className: 'comment',
+ begin: begin, end: end,
+ contains: []
+ },
+ inherits || {}
+ );
+ mode.contains.push(hljs.PHRASAL_WORDS_MODE);
+ mode.contains.push({
+ className: 'doctag',
+ begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
+ relevance: 0
+ });
+ return mode;
+ };
+ hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
+ hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
+ hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
+ hljs.NUMBER_MODE = {
+ className: 'number',
+ begin: hljs.NUMBER_RE,
+ relevance: 0
+ };
+ hljs.C_NUMBER_MODE = {
+ className: 'number',
+ begin: hljs.C_NUMBER_RE,
+ relevance: 0
+ };
+ hljs.BINARY_NUMBER_MODE = {
+ className: 'number',
+ begin: hljs.BINARY_NUMBER_RE,
+ relevance: 0
+ };
+ hljs.CSS_NUMBER_MODE = {
+ className: 'number',
+ begin: hljs.NUMBER_RE + '(' +
+ '%|em|ex|ch|rem' +
+ '|vw|vh|vmin|vmax' +
+ '|cm|mm|in|pt|pc|px' +
+ '|deg|grad|rad|turn' +
+ '|s|ms' +
+ '|Hz|kHz' +
+ '|dpi|dpcm|dppx' +
+ ')?',
+ relevance: 0
+ };
+ hljs.REGEXP_MODE = {
+ className: 'regexp',
+ begin: /\//, end: /\/[gimuy]*/,
+ illegal: /\n/,
+ contains: [
+ hljs.BACKSLASH_ESCAPE,
+ {
+ begin: /\[/, end: /\]/,
+ relevance: 0,
+ contains: [hljs.BACKSLASH_ESCAPE]
+ }
+ ]
+ };
+ hljs.TITLE_MODE = {
+ className: 'title',
+ begin: hljs.IDENT_RE,
+ relevance: 0
+ };
+ hljs.UNDERSCORE_TITLE_MODE = {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE,
+ relevance: 0
+ };
+
+hljs.registerLanguage('bash', function(hljs) {
+ var VAR = {
+ className: 'variable',
+ variants: [
+ {begin: /\$[\w\d#@][\w\d_]*/},
+ {begin: /\$\{(.*?)}/}
+ ]
+ };
+ var QUOTE_STRING = {
+ className: 'string',
+ begin: /"/, end: /"/,
+ contains: [
+ hljs.BACKSLASH_ESCAPE,
+ VAR,
+ {
+ className: 'variable',
+ begin: /\$\(/, end: /\)/,
+ contains: [hljs.BACKSLASH_ESCAPE]
+ }
+ ]
+ };
+ var APOS_STRING = {
+ className: 'string',
+ begin: /'/, end: /'/
+ };
+
+ return {
+ aliases: ['sh', 'zsh'],
+ lexemes: /-?[a-z\.]+/,
+ keywords: {
+ keyword:
+ 'if then else elif fi for while in do done case esac function',
+ literal:
+ 'true false',
+ built_in:
+ // Shell built-ins
+ // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
+ 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
+ 'trap umask unset mvn ant webAppCreator i18nCreator ' +
+ // Bash built-ins
+ 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
+ 'read readarray source type typeset ulimit unalias ' +
+ // Shell modifiers
+ 'set shopt ' +
+ // Zsh built-ins
+ 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
+ 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
+ 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
+ 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
+ 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
+ 'zpty zregexparse zsocket zstyle ztcp',
+ operator:
+ '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
+ },
+ contains: [
+ {
+ className: 'shebang',
+ begin: /^#![^\n]+sh\s*$/,
+ relevance: 10
+ },
+ {
+ className: 'function',
+ begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
+ returnBegin: true,
+ contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
+ relevance: 0
+ },
+ hljs.HASH_COMMENT_MODE,
+ hljs.NUMBER_MODE,
+ QUOTE_STRING,
+ APOS_STRING,
+ VAR
+ ]
+ };
+});
+
+hljs.registerLanguage('css', function(hljs) {
+ var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
+ var FUNCTION = {
+ className: 'function',
+ begin: IDENT_RE + '\\(',
+ returnBegin: true,
+ excludeEnd: true,
+ end: '\\('
+ };
+ var RULE = {
+ className: 'rule',
+ begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true,
+ contains: [
+ {
+ className: 'attribute',
+ begin: /\S/, end: ':', excludeEnd: true,
+ starts: {
+ className: 'value',
+ endsWithParent: true, excludeEnd: true,
+ contains: [
+ FUNCTION,
+ hljs.CSS_NUMBER_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'hexcolor', begin: '#[0-9A-Fa-f]+'
+ },
+ {
+ className: 'important', begin: '!important'
+ }
+ ]
+ }
+ }
+ ]
+ };
+
+ return {
+ case_insensitive: true,
+ illegal: /[=\/|'\$]/,
+ contains: [
+ hljs.C_BLOCK_COMMENT_MODE,
+ RULE,
+ {
+ className: 'id', begin: /\#[A-Za-z0-9_-]+/
+ },
+ {
+ className: 'class', begin: /\.[A-Za-z0-9_-]+/
+ },
+ {
+ className: 'attr_selector',
+ begin: /\[/, end: /\]/,
+ illegal: '$'
+ },
+ {
+ className: 'pseudo',
+ begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/
+ },
+ {
+ className: 'at_rule',
+ begin: '@(font-face|page)',
+ lexemes: '[a-z-]+',
+ keywords: 'font-face page'
+ },
+ {
+ className: 'at_rule',
+ begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
+ // because it doesn’t let it to be parsed as
+ // a rule set but instead drops parser into
+ // the default mode which is how it should be.
+ contains: [
+ {
+ className: 'keyword',
+ begin: /\S+/
+ },
+ {
+ begin: /\s/, endsWithParent: true, excludeEnd: true,
+ relevance: 0,
+ contains: [
+ FUNCTION,
+ hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
+ hljs.CSS_NUMBER_MODE
+ ]
+ }
+ ]
+ },
+ {
+ className: 'tag', begin: IDENT_RE,
+ relevance: 0
+ },
+ {
+ className: 'rules',
+ begin: '{', end: '}',
+ illegal: /\S/,
+ contains: [
+ hljs.C_BLOCK_COMMENT_MODE,
+ RULE,
+ ]
+ }
+ ]
+ };
+});
+
+hljs.registerLanguage('java', function(hljs) {
+ var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<' + hljs.UNDERSCORE_IDENT_RE + '>)?';
+ var KEYWORDS =
+ 'false synchronized int abstract float private char boolean static null if const ' +
+ 'for true while long strictfp finally protected import native final void ' +
+ 'enum else break transient catch instanceof byte super volatile case assert short ' +
+ 'package default double public try this switch continue throws protected public private';
+
+ // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
+ var JAVA_NUMBER_RE = '\\b' +
+ '(' +
+ '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
+ '|' +
+ '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
+ '|' +
+ '(' +
+ '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
+ '|' +
+ '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
+ ')' +
+ '([eE][-+]?\\d+)?' + // octal, decimal, float
+ ')' +
+ '[lLfF]?';
+ var JAVA_NUMBER_MODE = {
+ className: 'number',
+ begin: JAVA_NUMBER_RE,
+ relevance: 0
+ };
+
+ return {
+ aliases: ['jsp'],
+ keywords: KEYWORDS,
+ illegal: /<\//,
+ contains: [
+ hljs.COMMENT(
+ '/\\*\\*',
+ '\\*/',
+ {
+ relevance : 0,
+ contains : [{
+ className : 'doctag',
+ begin : '@[A-Za-z]+'
+ }]
+ }
+ ),
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ {
+ className: 'class',
+ beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
+ keywords: 'class interface',
+ illegal: /[:"\[\]]/,
+ contains: [
+ {beginKeywords: 'extends implements'},
+ hljs.UNDERSCORE_TITLE_MODE
+ ]
+ },
+ {
+ // Expression keywords prevent 'keyword Name(...)' from being
+ // recognized as a function definition
+ beginKeywords: 'new throw return else',
+ relevance: 0
+ },
+ {
+ className: 'function',
+ begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
+ excludeEnd: true,
+ keywords: KEYWORDS,
+ contains: [
+ {
+ begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
+ relevance: 0,
+ contains: [hljs.UNDERSCORE_TITLE_MODE]
+ },
+ {
+ className: 'params',
+ begin: /\(/, end: /\)/,
+ keywords: KEYWORDS,
+ relevance: 0,
+ contains: [
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ]
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ]
+ },
+ JAVA_NUMBER_MODE,
+ {
+ className: 'annotation', begin: '@[A-Za-z]+'
+ }
+ ]
+ };
+});
+
+hljs.registerLanguage('javascript', function(hljs) {
+ return {
+ aliases: ['js'],
+ keywords: {
+ keyword:
+ 'in of if for while finally var new function do return void else break catch ' +
+ 'instanceof with throw case default try this switch continue typeof delete ' +
+ 'let yield const export super debugger as async await',
+ literal:
+ 'true false null undefined NaN Infinity',
+ built_in:
+ 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
+ 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
+ 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
+ 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
+ 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
+ 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
+ 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
+ 'Promise'
+ },
+ contains: [
+ {
+ className: 'pi',
+ relevance: 10,
+ begin: /^\s*['"]use (strict|asm)['"]/
+ },
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ { // template string
+ className: 'string',
+ begin: '`', end: '`',
+ contains: [
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'subst',
+ begin: '\\$\\{', end: '\\}'
+ }
+ ]
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'number',
+ variants: [
+ { begin: '\\b(0[bB][01]+)' },
+ { begin: '\\b(0[oO][0-7]+)' },
+ { begin: hljs.C_NUMBER_RE }
+ ],
+ relevance: 0
+ },
+ { // "value" container
+ begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
+ keywords: 'return throw case',
+ contains: [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.REGEXP_MODE,
+ { // E4X / JSX
+ begin: /, end: />\s*[);\]]/,
+ relevance: 0,
+ subLanguage: 'xml'
+ }
+ ],
+ relevance: 0
+ },
+ {
+ className: 'function',
+ beginKeywords: 'function', end: /\{/, excludeEnd: true,
+ contains: [
+ hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
+ {
+ className: 'params',
+ begin: /\(/, end: /\)/,
+ excludeBegin: true,
+ excludeEnd: true,
+ contains: [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ],
+ illegal: /["'\(]/
+ }
+ ],
+ illegal: /\[|%/
+ },
+ {
+ begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
+ },
+ {
+ begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
+ },
+ // ECMAScript 6 modules import
+ {
+ beginKeywords: 'import', end: '[;$]',
+ keywords: 'import from as',
+ contains: [
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE
+ ]
+ },
+ { // ES6 class
+ className: 'class',
+ beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
+ illegal: /[:"\[\]]/,
+ contains: [
+ {beginKeywords: 'extends'},
+ hljs.UNDERSCORE_TITLE_MODE
+ ]
+ }
+ ]
+ };
+});
+
+hljs.registerLanguage('json', function(hljs) {
+ var LITERALS = {literal: 'true false null'};
+ var TYPES = [
+ hljs.QUOTE_STRING_MODE,
+ hljs.C_NUMBER_MODE
+ ];
+ var VALUE_CONTAINER = {
+ className: 'value',
+ end: ',', endsWithParent: true, excludeEnd: true,
+ contains: TYPES,
+ keywords: LITERALS
+ };
+ var OBJECT = {
+ begin: '{', end: '}',
+ contains: [
+ {
+ className: 'attribute',
+ begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
+ contains: [hljs.BACKSLASH_ESCAPE],
+ illegal: '\\n',
+ starts: VALUE_CONTAINER
+ }
+ ],
+ illegal: '\\S'
+ };
+ var ARRAY = {
+ begin: '\\[', end: '\\]',
+ contains: [hljs.inherit(VALUE_CONTAINER, {className: null})], // inherit is also a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
+ illegal: '\\S'
+ };
+ TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
+ return {
+ contains: TYPES,
+ keywords: LITERALS,
+ illegal: '\\S'
+ };
+});
+
+hljs.registerLanguage('xml', function(hljs) {
+ var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
+ var PHP = {
+ begin: /<\?(php)?(?!\w)/, end: /\?>/,
+ subLanguage: 'php'
+ };
+ var TAG_INTERNALS = {
+ endsWithParent: true,
+ illegal: /,
+ relevance: 0,
+ contains: [
+ PHP,
+ {
+ className: 'attribute',
+ begin: XML_IDENT_RE,
+ relevance: 0
+ },
+ {
+ begin: '=',
+ relevance: 0,
+ contains: [
+ {
+ className: 'value',
+ contains: [PHP],
+ variants: [
+ {begin: /"/, end: /"/},
+ {begin: /'/, end: /'/},
+ {begin: /[^\s\/>]+/}
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ return {
+ aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
+ case_insensitive: true,
+ contains: [
+ {
+ className: 'doctype',
+ begin: '',
+ relevance: 10,
+ contains: [{begin: '\\[', end: '\\]'}]
+ },
+ hljs.COMMENT(
+ '',
+ {
+ relevance: 10
+ }
+ ),
+ {
+ className: 'cdata',
+ begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
+ relevance: 10
+ },
+ {
+ className: 'tag',
+ /*
+ The lookahead pattern (?=...) ensures that 'begin' only matches
+ '', returnEnd: true,
+ subLanguage: 'css'
+ }
+ },
+ {
+ className: 'tag',
+ // See the comment in the